[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