we are trying to use a webcam on an i.mx dualite based board using the i.mx-gstreamer plugins. This works at least with the following commandline:
# gst-launch-1.0 imxv4l2videosrc device=/dev/video0 input=0 capture-mode=14 ! videoconvert ! imxipuvideosink
"capture-mode=14" instructs the resolution to use is 960x720.
But as soon as we remove the videoconvert element, which we think will run the conversion in software which breaks
hardware accelerated handling, gstreamer breaks with the debug message:
basesrc gstbasesrc.c:2838:gst_base_src_loop:<imxv4l2videosrc0> marking pending DISCONT
basesrc gstbasesrc.c:2943:gst_base_src_loop:<imxv4l2videosrc0> error: Internal data flow error.
basesrc gstbasesrc.c:2943:gst_base_src_loop:<imxv4l2videosrc0> error: streaming task paused, reason not-negotiated (-4)
GST_ERROR_SYSTEM gstelement.c:1837:gst_element_message_full:<imxv4l2videosrc0> posting message: Internal data flow error.
This also happens if we replace the "videoconvert" element with the "imxipuvideotransform" plugin.
The webcam is a logitech device, HD 720p. Kernel uses uvcvideo driver which finds an "UVC 1.00 device <unnamed> (046d:0825)".
We were not able to find much other examples on how to grab from the webcam device using the gstreamer plugins (see also Yocto/gstreamer/video – Gateworks ).
Maybe we miss a plugin paramter or piped in the wrong order or anything else.
Thanks in advance for any hints!