Prevent GStreamer from changing camera format
Nicolas Dufresne
nicolas at ndufresne.ca
Sun Oct 18 23:28:04 UTC 2020
Le dim. 18 oct. 2020 17 h 00, Nikola Pantelic <pantelicn63 at gmail.com> a
écrit :
> (This question is also available at
> https://stackoverflow.com/questions/64415461.)
>
>
> Running GStreamer pipeline that feeds from v4l2src element may change
> camera format implicitly.
>
> Here is an example (also note that /dev/video0 is everywhere implied).
>
> One of my cameras supports these formats
>
> $ v4l2-ctl --list-formats-ext
> ioctl: VIDIOC_ENUM_FMT
> Type: Video Capture
>
> [0]: 'YUYV' (YUYV 4:2:2)
> Size: Discrete 640x480
> Interval: Discrete 0.033s (30.000 fps)
> Interval: Discrete 0.067s (15.000 fps)
> Size: Discrete 320x240
> Interval: Discrete 0.033s (30.000 fps)
> Interval: Discrete 0.067s (15.000 fps)
> Size: Discrete 1280x800
> Interval: Discrete 0.133s (7.500 fps)
> Size: Discrete 1280x1024
> Interval: Discrete 0.133s (7.500 fps)
>
> The current format is
>
> $ v4l2-ctl --get-fmt-video
> Format Video Capture:
> Width/Height : 640/480
> Pixel Format : 'YUYV' (YUYV 4:2:2)
> Field : None
> Bytes per Line : 1280
> Size Image : 614400
> Colorspace : Default
> Transfer Function : Default (maps to Rec. 709)
> YCbCr/HSV Encoding: Default (maps to ITU-R 601)
> Quantization : Default (maps to Limited Range)
> Flags :
>
> If I just run this pipeline
>
> $ gst-launch-1.0 -e v4l2src ! videoconvert ! autovideosink
>
> This will change the current format (before the pipeline is run, but
> it will also be left in that state) to
>
> $ v4l2-ctl --get-fmt-video
> Format Video Capture:
> Width/Height : 1280/1024
> Pixel Format : 'YUYV' (YUYV 4:2:2)
> Field : None
> Bytes per Line : 2560
> Size Image : 2621440
> Colorspace : Default
> Transfer Function : Default (maps to Rec. 709)
> YCbCr/HSV Encoding: Default (maps to ITU-R 601)
> Quantization : Default (maps to Limited Range)
> Flags :
>
> And this is not what I want. What I want is for GStreamer to use
> already set format and not change it. How I can accomplish that
> programmatically (gst-launch-1.0 was just an example, I'm primarily
> interested in doing this in code)?
>
When it reach ready state, you can get through properties the device fd,
you can then configure a caps filter to preserve the last format used.
_______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20201018/79497b39/attachment.htm>
More information about the gstreamer-devel
mailing list