[Bug 658541] New: [API change] caps negotiation failures

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Thu Sep 8 03:30:04 PDT 2011


https://bugzilla.gnome.org/show_bug.cgi?id=658541
  GStreamer | gstreamer (core) | git

           Summary: [API change] caps negotiation failures
    Classification: Platform
           Product: GStreamer
           Version: git
        OS/Version: Linux
            Status: NEW
          Severity: blocker
          Priority: Normal
         Component: gstreamer (core)
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: mnauw at users.sourceforge.net
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


Recent commits to core [*] changed some default caps acceptance behaviour. 
Incoming caps are now required to have all fields as indicated in accepted pad
caps (e.g. pad template caps).

Presently, this introduces lots of caps negotiation failures.  E.g. ffmpeg
decoders have width and height fields in caps, but can (and do) typically
determine this from the data itself, whereas depayloaded caps usually do not
hold width and height info.

In practice, this may require stripping all sorts of pad templates of almost
all fields (since they need not always be present and also often not
necessarily needed) and to rely on subsequent (setcaps) negotiation to
determine whether or not all needed is available.  On the other hand, such
stripping does not help auto-plugging.

Last but not least and unfortunately (in case we care, as afaik we usually do)
it could (and probably will) break 3rd party demuxers and/or decoders (or
whatever) whose template/caps handling is not "fixed" according to the new
behaviour. 

Some other example problems:

ffdec_aac caps:
audio/mpeg
               channels: [ 1, 6 ]
                   rate: [ 4000, 96000 ]
            mpegversion: { 2, 4 }
          stream-format: { raw, adts, adif }
but I would not bet on depayloaded caps to have stream-format set (or even rate
or channels), or for this to be set on all demuxers caps or wherever it may be
coming from.

mad caps:
audio/mpeg
            mpegversion: 1
                  layer: [ 1, 3 ]
                   rate: { 8000, 11025, 12000, 16000, 22050, 24000, 32000,
44100, 48000 }
               channels: [ 1, 2 ]
Same here basically, little hope for depayloaded caps, and not sure for all
above details on other incoming caps "in the wild" either.


[*]
http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=0c5d50207326d74a4805bcd898bfac887540f12b
http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=5e5cc5e89e7e2858a6352fa4c81a374f6e5a6297

-- 
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