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 579912 - [decodebin2] multiqueue is too small in time (interleave issues)
[decodebin2] multiqueue is too small in time (interleave issues)
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal blocker
: 0.10.23
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2009-04-23 06:39 UTC by Edward Hervey
Modified: 2009-04-23 09:56 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Leave the multiqueue max-size-time untouched when exposing groups. (1.16 KB, patch)
2009-04-23 06:44 UTC, Edward Hervey
committed Details | Review

Description Edward Hervey 2009-04-23 06:39:32 UTC
Now that totem uses playbin2 (and decodebin2), an issue I never noticed has just popped up.

In decodebin2, during preroll (filling up the stream groups) the max-size-time of the multiqueue is 5s, allowing pretty much every heavily interleaved file to be prerolled correctly...

... but then when that group is exposed, the max-size-time is set back to 2s ... which makes all files with an interleave greater than 2s screw up massively (read: qos kicks in, stuttery playback with low bandwith/cpu-usage but high interleave files/streams).

The max-size-time limit is too low for most files.

My proposal is, when exposing the gruops, to *not* modify the max-size-time (i.e. leaving it at the 5s initial value) but still reduce the max-size-buffer/max-size-bytes sizes.

With that modification, the 100+ files I tested which have that regression now work fine.

I'm marking this as a blocker, otherwise we're going to have a *really* bad experience with playbin2 (and totem now it supports it) for the next 3 months.

This doesn't prevent us from doing the *proper* fix which is for demuxers to output GST_EVENT_BUFFER_SIZE events with their interleave parameters and multiqueue taking them into account for its limits (i.e. ending up with the perfect multiqueue limits).
Comment 1 Edward Hervey 2009-04-23 06:44:06 UTC
Created attachment 133163 [details] [review]
Leave the multiqueue max-size-time untouched when exposing groups.

Proposed patch.

I forgot to mention that since we still reduce the max-size-buffers/max-size-bytes limit we stay as memory efficient as before.
Comment 2 Edward Hervey 2009-04-23 09:56:00 UTC
commit 71a372c8473d9126c0b7661c30991f83fd14eb9a
Author: Edward Hervey <bilboed@bilboed.com>
Date:   Thu Apr 23 08:41:19 2009 +0200

    decodebin2: Don't reduce max-size-time of exposed groups. Fixes #579912
    
    The 2s limit is way too small for a lot of files (which have an interleave
    in time of between 3 and 5s). Instead, leave it to the initial 5s value
    and reduce the other limits (allowing us to stay memory-efficient).