v4l2src does not support progressive interlacing

Nicolas Dufresne nicolas at ndufresne.ca
Wed Jan 23 00:28:35 UTC 2019


Le lun. 21 janv. 2019 19 h 47, Tim Harvey <tharvey at gateworks.com> a écrit :

> On Mon, Oct 29, 2018 at 11:58 AM Tim Harvey <tharvey at gateworks.com> wrote:
> >
> > On Mon, Oct 29, 2018 at 11:56 AM Nicolas Dufresne <nicolas at ndufresne.ca>
> wrote:
> > >
> > >
> > >
> > > Le lun. 29 oct. 2018 18 h 32, Tim Harvey <tharvey at gateworks.com> a
> écrit :
> > >>
> > >> On Sun, Oct 28, 2018 at 3:44 PM Nicolas Dufresne <
> nicolas at ndufresne.ca> wrote:
> > >> >
> > >> >
> > >> >
> > >> > Le dim. 28 oct. 2018 20 h 43, Antoine Villeret <
> antoine.villeret at gmail.com> a écrit :
> > >> >>
> > >> >> hi Nicolas,
> > >> >>
> > >> >> as far as i understand v4l2-compliance output (
> https://gist.github.com/avilleret/0eb894d58612d91aba7ab81f9d823dbf)
> > >> >> bttv driver does support TRY_FMT
> > >> >> but I might be wrong
> > >> >>
> > >> >> on the other side, I made further test with your path, and it
> seems to work.
> > >> >> 'it seems' because strangely a test pipeline abord with the output
> you've already look at.
> > >> >> But my program (based on OpenFrameworks) does work with your patch
> while it didn't with gstreamer 1.14 from Ubuntu 18.04 repo.
> > >> >> I don't know actually what trigs the error you see and why the
> test pipeline abord before displaying anything,
> > >> >> maybe I miss some extensions/plugins.
> > >> >
> > >> >
> > >> > Ok, so it seems like the patch does something. I'll reread with the
> assumption TRY_FMT isn't supported, I might better understand. I always
> believed that without that, it would always fail.
> > >> >
> > >> >>
> > >> >> Thanks for your time, and I might make further test tomorrow if
> you need.
> > >> >>
> > >>
> > >> Nicolas,
> > >>
> > >> Did you receive the log I sent you regarding my experience with this
> > >> issue? I can send again if needed.
> > >>
> > >> Regards,
> > >
> > >
> > > I haven't I believe. Maybe the ML have eaten it, was it big ?
> >
> > I sent it off-list... it probably went to your spam :)
> >
> > I've attached it (135K) here.
> >
> > Tim
>
> Nicolas,
>
> Sorry to resurrect a fairly dated thread but this issue still exists
> using gstreamer master.
>
> root at imx6q-gw5404:~/gst/master# v4l2-ctl -d7 --get-fmt-video
> Format Video Capture:
>         Width/Height      : 720/480
>         Pixel Format      : 'UYVY' (UYVY 4:2:2)
>         Field             : Sequential Bottom-Top
>         Bytes per Line    : 1440
>         Size Image        : 691200
>         Colorspace        : SMPTE 170M
>         Transfer Function : Rec. 709
>         YCbCr/HSV Encoding: ITU-R 601
>         Quantization      : Limited Range
>         Flags             :
> root at imx6q-gw5404:~/gst/master# gst-launch-1.0 v4l2src
> device=/dev/video7 ! video/x-raw,format=UYVY !  jpegenc ! rtpjpegpay !
> udpsink host=172.24.20.19 port=5000
> Setting pipeline to PAUSED ...
> Pipeline is live and does not need PREROLL ...
> Setting pipeline to PLAYING ...
> New clock: GstSystemClock
> ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Device
> '/dev/video7' does not support progressive interlacing
> Additional debug info:
> gstv4l2object.c(3821): gst_v4l2_object_set_format_full ():
> /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
> Device wants interleaved interlacing
> Execution ended after 0:00:00.003732076
>
> I've put the GST_DEBUG log here:
> https://gist.github.com/tharvey/fb3ef7ded7cb686739aeac1ba947a8ca
>
> I've got a gstreamer devel environment handy now for testing if you
> have some ideas.
>

It shouldn't be too hard to implement. First the new layout should be added
to the interlaced-mode enum on libgstvideo (-base). I believe there is
something there already that match, but needs to be detailed in the
documentation.

Second thing is to solve how userspace is supposed to locate the start of
the second field. Is it half the buffer allocation size or the display
height * stride ? As it is, it's unlikely anyone thought about that, it's
probably whatever the HW is doing. The thing is of it does not match, how
do we signal that in GST ? The existing unimplemented doc is suggesting
having two VideoMeta, could be an option (similar to stereoscopic streams).


> Regards,
>
> Tim
>
> Setting pipeline to PAUSED ...
> Setting pipeline to READY ...
> Setting pipeline to NULL ...
> Freeing pipeline ...
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20190122/e6ac9535/attachment.html>


More information about the gstreamer-devel mailing list