[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