[Bug 668471] [h264parse] Negotiation regression for autoplugging

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Jan 23 02:43:38 PST 2012


https://bugzilla.gnome.org/show_bug.cgi?id=668471
  GStreamer | gst-plugins-bad | 0.11.x

--- Comment #2 from Sebastian Dröge <slomo at circular-chaos.org> 2012-01-23 10:43:34 UTC ---
(In reply to comment #1)
> That sounds well, but what real meaning has h264parse's selection in such case
> ?
> 
> It will then happen to pick whatever caps happened to end up first in those
> filter caps, which may then very well come down to non-passthrough, although
> passthrough would be possible, and that happening is what prompted the above
> commit.

The caps are ordered by the ranks of the decoders. The preferred decoder on the
system should have the highest rank (possibly the hardware decoder, only
supporting bytestream) and other decoders lower ranks (e.g. software decoders
that can decode all profiles/levels and actually support avc too).

In this case passthrough might be possible for avc but bytestream conversion
would be the better decision by h264parse. And it would do conversion if it
looked at the caps instead of preferring passthrough.

> Also, if the filter caps are set to all *possible* caps and h264parse finds
> that passthrough is among these and selects that, then it should not go wrong
> afterwards since they were included in possible caps (so there should have been
> a decoder capable of handling that selected passthrough case).
> 
> Problem might be due to decodebin2 (afaics) always adding the (non-fixed)
> parser src pad caps to the filter_caps which renders mute the rest of the
> *possible* caps as well as any sort of nifty negotiation a parser might be
> trying to do (like avoiding useless conversion if possible).

That's what I've written above, yes. It's necessary to add the parser caps to
the filter caps, otherwise negotiation would fail if a decoder is missing
instead of properly reporting a missing-plugin error. The parser srcpad caps
are *always* the last structures in the caps and would only be selected by the
parser if everything before that was incompatible and only if this has to end
in a missing-plugin error anyway.

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