v4l2src does not support progressive interlacing

Tim Harvey tharvey at gateworks.com
Mon Jan 28 16:46:57 UTC 2019


On Sat, Jan 26, 2019 at 7:18 AM Nicolas Dufresne <nicolas at ndufresne.ca> wrote:
>
> 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.

Ok, I understand. Is there a discussion or patches posted for
ALTERNATE? It seems that SEQ_TB/BT would likely be a minor change to
that?

>
> 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.
>

Right - that 'does' work for something like the adv7180 but doesn't
work for anything with a width or height > 1024 such as the tda1997x
HDMI decoder I'm also working with. I'm trying to write documentation
for our boards that have these two sensors so I'm trying to cover all
combinations and figure out what works, what doesn't, and provide
recommendations. For anything >1024 that is alternate/seq-bt/seq-tb it
may be the best solution is to use the CSI to downscale by 2 first.

Regards,

Tim


More information about the gstreamer-devel mailing list