GNOME Bugzilla – Bug 762924
interlace: negotiation fails unexpectedly
Last modified: 2016-03-25 10:05:03 UTC
The following launch-line fails with a negotiation error: gst-launch-1.0 videotestsrc is-live=TRUE ! capsfilter caps="video/x-raw,framerate=50/1,interlace-mode=progressive" ! interlace field-pattern=0 ! capsfilter caps="video/x-raw,framerate=25/1,interlace-mode=interleaved" ! fakesink Looking at the debug log, you'll find the following conflict: 0:00:00.076040227 1195 0x109aa00 DEBUG GST_CAPS gstpad.c:2192:gst_pad_link_check_compatible_unlocked:<interlace0:src> src caps video/x-raw, framerate=(fraction)50/1, interlace-mode=(string)interleaved, format=(string){ I420, YV12, YUY2, UYVY, AYUV, Y42B, Y444, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ] 0:00:00.076044830 1195 0x109aa00 DEBUG GST_CAPS gstpad.c:2194:gst_pad_link_check_compatible_unlocked:<capsfilter1:sink> sink caps video/x-raw, framerate=(fraction)25/1, interlace-mode=(string)interleaved 0:00:00.076048207 1195 0x109aa00 DEBUG GST_CAPS gstpad.c:2212:gst_pad_link_check_compatible_unlocked: caps are not compatible It is strange that interlace reports a frame rate of 50/1 here, and the above launch-line shouldn't fail to negotiate.
Created attachment 324183 [details] [review] fix negotiation with fixed framerate downstream Hard to fix, until I had the idea of looking at deinterlace, which had already solved it, so mostly a copy of the interlace method, inverted.
Comment on attachment 324183 [details] [review] fix negotiation with fixed framerate downstream Seems correct but the negotiation in interlace probably has to be cleaned up in general, similar like in deinterlace recently.
commit 5b786ce5b731cabd990c96051d217f7aa760a748 Author: Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> Date: Thu Mar 17 13:44:13 2016 +0000 interlace: fix negotiation with fixed framerate downstream https://bugzilla.gnome.org/show_bug.cgi?id=762924