[gstreamer-bugs] [Bug 421543] New: [GstPad] Doesn't check if pad accepts caps after caps change

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Thu Mar 22 09:55:48 PDT 2007


Do not reply to this via email (we are currently unable to handle email
responses and they get discarded).  You can add comments to this bug at
http://bugzilla.gnome.org/show_bug.cgi?id=421543

  GStreamer | gstreamer (core) | Ver: HEAD CVS

           Summary: [GstPad] Doesn't check if pad accepts caps after caps
                    change
           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: slomo at circular-chaos.org
         QAContact: gstreamer-bugs at lists.sourceforge.net
     GNOME version: Unspecified
   GNOME milestone: Unspecified


Hi,
currently GstPad doesn't check if the peer pad accepts the new caps when they
changed. Only the setcaps function of the peer pad is called, not
gst_pad_accept_caps().

This breaks in the following scenario:

pipeline: A ! B
A has "audio/x-raw-int,width={16,32},depth={16,32}" as static caps template for
the src pad.
B has "audio/x-raw-int,width=32,depth={16,32}" as static caps template for the
sink pad.

A and B can apparently link to each other.

These caps are not more specified while calling the setcaps function of A's src
pad but only when the first buffer is pushed out of A's src pad.
A sets the caps to "audio/x-raw-int,width=16,depth=16" which are incompatible
with B's sink pad caps.

Now only the setcaps function of B's src pad is called in
gst_pad_configure_sink() and not gst_pad_accept_caps(). As the setcaps function
assumes that only caps compatible with the static caps of the pad are set at
all it returns TRUE and now the sink pad of B has caps set that are not
compatible with B at all. Dataflow works fine though.

Attached is a patch that fixes it for my case (modulo a flacdec bug) but might
have other problems.

Bye


-- 
Configure bugmail: http://bugzilla.gnome.org/userprefs.cgi?tab=email




More information about the Gstreamer-bugs mailing list