Q: gst-launch & videoconvert

Ran Shalit ranshalit at gmail.com
Wed Apr 5 15:02:38 UTC 2017


Hello,

I am getting unexpected behavior when using videoconvert with gst-launch:

On doing option (1) below I get errors:

  gst-launch-1.0 v4l2src !  'video/x-raw, width=640, height=480,
framerate=30/1'  ! autovideosink

The erros is:

ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
Internal data flow error. Additional debug info: gstbasesrc.c(2865):
gst_base_src_loop():/GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
streaming task paused, reason not-negotiated (-4)

The error does make sense, because probably the format of filter does
not match format of v4l2src or format of autovideosink.


But by using videoconvert in both options (2&3) below, it works OK
without any errors:

I see that option (2) below works without any errors:

  gst-launch-1.0 v4l2src !  videoconvert !   'video/x-raw, width=640,
height=480, framerate=30/1'  ! autovideosink

I also see that option (3) below works without any errors:

  gst-launch-1.0 v4l2src  !   'video/x-raw, width=640, height=480,
framerate=30/1'  ! videoconvert ! autovideosink

The question is why is works in both cases (2&3), and not just in one of them:

I would assume that it should only work in one of them because if src
of v4l2src does not match filter(width=640, height=480) then we must
convert the format of v4l2src to match filter.

On the other hand, if the format of autovideosink does not match
filter (width=640, height=480) then we must do the conversion right
after the filter.

So, I would assume that only (2) or (3) should work but not both.

Thank you,
Ran


More information about the gstreamer-devel mailing list