[Bug 705332] queue2: global state is affected by buffery query handling
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Fri Aug 16 08:55:40 PDT 2013
https://bugzilla.gnome.org/show_bug.cgi?id=705332
GStreamer | gstreamer (core) | git
Tim-Philipp Müller <t.i.m> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
Target Milestone|HEAD |1.1.4
--- Comment #1 from Tim-Philipp Müller <t.i.m at zen.co.uk> 2013-08-16 15:55:36 UTC ---
I hope this fixes it:
commit c02081ca30631824c116ef1057c1bd9054c70507
Author: Tim-Philipp Müller <tim at centricular.net>
Date: Fri Aug 16 16:28:12 2013 +0100
queue2: don't change global buffering state from within query handler
When a buffering query is handled it uses the get_buffering_percent()
function to get some statitics. Unfortunately this function also
calculates whether the queue should be buffering and adapts the
global queue2 state in case of state transitions from/to buffering
(including whether a buffering message was posted on the bus!).
This means that there is a race which can cause buffering messages
to never posted if the global state changes happen as a result of aa
query instead of resulting from bytes flowing in/out.
Spotted by Sjoerd Simons.
Change to only query state in get_buffering_percent() and update
state only in update_buffering().
https://bugzilla.gnome.org/show_bug.cgi?id=705332
(Bit hard to test, since there's something messed up with queue2 download
buffering in both totem and the playback test utility, but it's not related to
this patch and also happens with 1.0 and 0.10.)
--
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