[Bug 415754] [API] GstCollectPads2; muxing sparse/subtitle streams

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Thu Aug 18 15:57:21 PDT 2011


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

--- Comment #44 from Ben Cahill <ben.m.cahill at intel.com> 2011-08-18 22:57:06 UTC ---
Created an attachment (id=194175)
 View: https://bugzilla.gnome.org/attachment.cgi?id=194175
 Review: https://bugzilla.gnome.org/review?bug=415754&attachment=194175

Change GstCollectPad2 collection and WAIT algos to use bitfields

Use bitfield algo to determine pads are collected in GstCollectPads2 ...

Instead of using totals (e.g. numpads, queuedpads), use bitfields to preserve
info about *which* pads have characteristics of queued (has data), sparse
(other pads should not wait for this pad), and eos.

The bitfield provides a simpler, more robust way to determine when "collection"
occurs, with no need for tricky maneuvering of "waiting" status to properly
increment/decrement the previously-used totals.

The bitfield also provides a robust way to decide whether to WAIT a pad,
making sure that another pad provides a reliable wakeup in a timely way.

This solves a problem, especially when multiplexing only 2 streams, in which
a continuous stream could be put on WAIT when the only other stream was a
sparse stream.  For example, multiplexing a continuous audio stream with
a gap-filled video stream sourced from ximagesrc, which has gaps when the
screen does not change ... if an audio buffer got WAITed because the "best"
buffer was video, it might be a long time before that audio buffer got awoken
by arrival of another video buffer.

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