[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