[Bug 664221] New: [baseparse] ::sink_get_caps() vfunc breaks API/ABI
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Wed Nov 16 10:52:32 PST 2011
https://bugzilla.gnome.org/show_bug.cgi?id=664221
GStreamer | gstreamer (core) | 0.10.36
Summary: [baseparse] ::sink_get_caps() vfunc breaks API/ABI
Classification: Platform
Product: GStreamer
Version: 0.10.36
OS/Version: Linux
Status: NEW
Severity: blocker
Priority: Normal
Component: gstreamer (core)
AssignedTo: gstreamer-bugs at lists.freedesktop.org
ReportedBy: slomo at circular-chaos.org
QAContact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
> + if (klass->get_sink_caps)
> + caps = klass->get_sink_caps (parse);
> + else
> + caps = gst_pad_proxy_getcaps (pad);
this is completely breaking backwards compatibility with the old
baseparse subclasses. Let's take two examples:
1) h264parse allows to convert between different stream-formats. If
downstream now requires a specific stream-format,
gst_pad_proxy_getcaps() will propagate this singla stream-format to
upstream and if upstream wants to provide something different
negotiation will fail. But it shouldn't, h264parse can convert between
the stream-formats. f3f9e4b9786d00299e0c6909180c4cd326489bdf fixes this
in h264parse but it's nonetheless API/ABI breakage.
2) Consider a parser and downstream requests parsed=true on the caps.
gst_pad_proxy_getcaps() will propagate the parsed=true field to the
sinkpad caps and if upstream provides unparsed input negotiation will
fail again.
--
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list