sugarlabs / record-activity

A activity to record audio, video and take photos, for Sugar, the learning environment.
Other
1 stars 8 forks source link

sugar-record 201 fails to access webcam with Sugar 0.118 #27

Open aperezbios opened 3 years ago

aperezbios commented 3 years ago

Documenting this, as it effectively makes the Record activity useless. This is under Fedora 34 SoaS pre-release.

Here's the output of the record activity log:

1613334369.351688 ERROR glive: bus error=gst-stream-error-quark: Internal data stream error. (1) debug=../libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:src:
streaming stopped, reason not-negotiated (-4)
Normal successful completion, pid 1700 activity_id bc3ca8dd7231cbf0b5ea4f4a6d6d840e3dcbbdaa
quozl commented 3 years ago

GStreamer has been unable to negotiate the pipeline elements. All we know so far from your log is that GStreamer stopped trying, we don't know why. GStreamer debugging may help. Or, try these Terminal commands that gradually get to the same pipeline;

A test pattern

gst-launch-1.0 --eos-on-shutdown videotestsrc ! autovideosink sync=false

Default camera without limiting

gst-launch-1.0 --eos-on-shutdown \
v4l2src ! \
videoconvert ! \
autovideosink sync=false

Default camera with frame rate limiting and flipping

gst-launch-1.0 --eos-on-shutdown \
v4l2src ! \
videorate max-rate=10 ! \
videoflip ! \
videoconvert ! \
autovideosink sync=false

Complete pipeline

gst-launch-1.0 --eos-on-shutdown \
v4l2src ! \
videorate max-rate=10 ! \
tee name=tee tee.! \
videoconvert ! \
queue leaky=2 ! \
videoflip name=flip ! \
autovideosink sync=false tee.! \
videoconvert ! \
queue ! \
gdkpixbufsink name=photo

New camerabin element

gst-launch-1.0 camerabin