v4l2src does not support progressive interlacing

Nicolas Dufresne nicolas at ndufresne.ca
Sat Jan 26 15:18:31 UTC 2019


Le vendredi 25 janvier 2019 à 16:56 -0800, Tim Harvey a écrit :
> gst-launch-1.0 v4l2src device=/dev/video7 !
> video/x-raw,width=720,height=480,format=UYVY ! jpegenc ! rtpjpegpay !
> udpsink host=$SERVER port=5000
> # ^^^ still fails with gstreamer-1.14.3/master
> 
> So again it used to work and got broken with 1.14. It seems that
> gstreamer is trying to set the field to V4L2_FIELD_NONE.

Yes, it used to ignore what the driver was producing and let random
images comes out. In some cases (notably ALTERNATE) not validating the
value returned by the driver would lead to GStreamer crash. I made the
decision that things should be signalled correctly in GStreamer, so if
there is a random / unsupported field layout, we will rather return an
error then let these image come out. I am totally aware that SEQ_TB,
SEQ_BT and ALTERNATE interlace layout aren't supported in GStreamer.
Someone is working on ALTERNATE as we are speaking, someone else need
to work on SEQ_TB/BT.

Now, you are using an IMX.6, which has VDIC and PRP IPs. Just construct
your media pipeline using these nodes and the HW will deinterlace the
images for you. I'm not sure why you must grab these images in
SEQ_TB/BT in the first place. If this is just for testing your HW, you
can use v4l2-ctl. In GStreamer I made an effort to produce correct
images that are properly signal, so they are usable outside a simple
"test" environment.

If you need more detail on how to setup your IMX.6 media controller,
please refer to 
https://linuxtv.org/downloads/v4l-dvb-apis/v4l-drivers/imx.html and the
linux-media mailing list.

Nicolas





More information about the gstreamer-devel mailing list