[Bug 770225] multiqueue: High CPU usage with multiple audio tracks in playbin3

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Wed Aug 24 07:19:38 UTC 2016


https://bugzilla.gnome.org/show_bug.cgi?id=770225

--- Comment #4 from Edward Hervey <bilboed at bilboed.com> ---
Note that compute_high_id also does also introduce a noticeable overheader in
that loop.

So the idea here should be to:
1) only call compute_high_{time|id} when one of the parameters involved in the
calculation changed.
2) And only call that function from wherever one of the values changed (that
waiting loop is *not* modifying any of the parameters involved)

Readers that don't modify the values (such as that waiting loop function) would
only need to check against the stored value.

Values involved in both compute_high_id and compute_high_time:
* single queues being added/removed
* single queue nextid/oldid being updated
* single queue flow return *changing* (to/from GST_FLOW_NOT_LINKED or
GST_FLOW_EOS)
* after pushing a GST_EVENT_EOS
* after flushing

Values involved in compute_high_id:
* single queue nextid/oldid being updated

Values involved in compute_high_time:
* single queue next_time/last_time being updated

The potentially tricky part is regarding the groupid feature for
compute_high_time. We might to store the high_time by groupid in addition
(maybe with a lookup table)

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