After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 745937 - multiqueue: enters the buffering state when the use-buffering property is set
multiqueue: enters the buffering state when the use-buffering property is set
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
1.4.5
Other All
: Normal normal
: 1.4.6
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2015-03-10 02:56 UTC by Duncan Palmer
Modified: 2015-04-10 14:13 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Don't automatically enter the buffering state when use-buffering is set. (1018 bytes, patch)
2015-04-10 00:18 UTC, Duncan Palmer
committed Details | Review

Description Duncan Palmer 2015-03-10 02:56:06 UTC
When the 'use-buffering' property is set on a multiqueue, the internal mq->buffering variable is set to TRUE, which causes the element to enter the buffering state, and begin emitting buffering messages, regardless of buffer levels.

decodebin sets the use-buffering property when making a decode group active. So, an effect of the current multiqueue behaviour is that playback may pause unnecessarily when a decode group becomes active (the multiqueue max-size-time property is also reduced when a decode group is made active, so this bad behaviour is only seen when the current buffer level is smaller than the new max-size-time value).

There is no reason I can see to set mq->buffering = TRUE when use_buffering is set; the code here also calls update_buffering(), which will set mq->buffering = TRUE if this is warranted because of low buffer levels.
Comment 1 Thiago Sousa Santos 2015-04-09 20:19:11 UTC
Makes sense, can you provide a patch?
Comment 2 Duncan Palmer 2015-04-10 00:18:18 UTC
Created attachment 301243 [details] [review]
Don't automatically enter the buffering state when use-buffering is set.

Sorry, thought I'd attached it when I raised the issue. Here it is - applies to 1.4.5 and master.
Comment 3 Thiago Sousa Santos 2015-04-10 13:50:47 UTC
Review of attachment 301243 [details] [review]:

commit 0ad06434daae08fea343741de1fa8fc386f52808
Author: Duncan Palmer <dpalmer@digisoft.tv>
Date:   Tue Mar 10 12:57:44 2015 +1000

    multiqueue: Don't automatically enter the buffering state when use-buffering is set.
    
    There is no reason I can see to set mq->buffering = TRUE when
    use_buffering is set; the code here also calls update_buffering(), which
    will set mq->buffering = TRUE if this is warranted because of low buffer
    levels.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=745937
Comment 4 Thiago Sousa Santos 2015-04-10 13:50:48 UTC
Review of attachment 301243 [details] [review]:

commit 0ad06434daae08fea343741de1fa8fc386f52808
Author: Duncan Palmer <dpalmer@digisoft.tv>
Date:   Tue Mar 10 12:57:44 2015 +1000

    multiqueue: Don't automatically enter the buffering state when use-buffering is set.
    
    There is no reason I can see to set mq->buffering = TRUE when
    use_buffering is set; the code here also calls update_buffering(), which
    will set mq->buffering = TRUE if this is warranted because of low buffer
    levels.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=745937
Comment 5 Thiago Sousa Santos 2015-04-10 14:13:22 UTC
And also pushed for 1.4 branch.

commit 197b1d509c85df89ee22c03916c13cd10f8323a4
Author: Duncan Palmer <dpalmer@digisoft.tv>
Date:   Tue Mar 10 12:57:44 2015 +1000

    multiqueue: Don't automatically enter the buffering state when use-buffering is set.
    
    There is no reason I can see to set mq->buffering = TRUE when
    use_buffering is set; the code here also calls update_buffering(), which
    will set mq->buffering = TRUE if this is warranted because of low buffer
    levels.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=745937