[gstreamer-bugs] [Bug 449197] New: [capsfilter] Should set src pad caps on buffer

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Tue Jun 19 10:12:39 PDT 2007


If you have any questions why you received this email, please see the text at
the end of this email. Replies to this email are NOT read, please see the text
at the end of this email. You can add comments to this bug at:
  http://bugzilla.gnome.org/show_bug.cgi?id=449197

  GStreamer | gstreamer (core) | Ver: HEAD CVS
           Summary: [capsfilter] Should set src pad caps on buffer
           Product: GStreamer
           Version: HEAD CVS
          Platform: Other
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gstreamer (core)
        AssignedTo: gstreamer-bugs at lists.sourceforge.net
        ReportedBy: bilboed at bilboed.com
         QAContact: gstreamer-bugs at lists.sourceforge.net
     GNOME version: Unspecified
   GNOME milestone: Unspecified


Use case where capsfilter acts in a weird fashion (pushes out buffers that
don't have the same caps as the src pad causing mad renegotiation).

gst-launch-0.10 -v videotestsrc !
video/x-raw-yuv,width=320,height=240,framerate=5/1 ! gdppay ! gdpdepay !
capsfilter
caps=video/x-raw-yuv,width=320,height=240,framerate=5/1,pixel-aspect-ratio=1/1
! xvimagesink

Since gdpdepay doesn't buffer_alloc() downstream what happens is the following:

* buffer is being pushed on the second capsfilter sink pad
* gst_pad_set_caps() is called on the sink pad with the buffer caps
* basetransform ends up putting the capsfilter caps on the src pad
* gst_pad_set_caps() sets the buffer caps on the sink pad
* the chain function of the sink pad is called
* when the buffer is being pushed out of the capsfilter srcpad, the buffer caps
is different from the srcpad caps, therefore calls gst_pad_set_caps() on the
srcpad with the buffer caps
* gst_pad_set_caps() sets the buffer caps on the src pad (SWITCHES)

everytime a buffer comes through the src pad caps go ping-pong.

The buffers going through capsfilter should end up with the same caps as what
basetransform put on the source pad. It might be the same, but they might also
contain additional information (as in this case).


-- 
See http://bugzilla.gnome.org/page.cgi?id=email.html for more info about why you received
this email, why you can't respond via email, how to stop receiving
emails (or reduce the number you receive), and how to contact someone
if you are having problems with the system.

You can add comments to this bug at http://bugzilla.gnome.org/show_bug.cgi?id=449197.




More information about the Gstreamer-bugs mailing list