[Bug 707636] dashdemux: offline playback not buffering correctly

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Sat Feb 22 14:53:06 PST 2014


https://bugzilla.gnome.org/show_bug.cgi?id=707636
  GStreamer | gst-plugins-base | git

Sebastian Dröge (slomo) <slomo> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED
         AssignedTo|slomo at coaxion.net           |gstreamer-bugs at lists.freede
                   |                            |sktop.org
   Target Milestone|HEAD                        |1.3.1

--- Comment #14 from Sebastian Dröge (slomo) <slomo at coaxion.net> 2014-02-22 23:14:01 UTC ---
Pushed with lots of follow-up fixes and some major refactoring of hlsdemux:

commit b47a4faf5f4899ad20fe4c09b3a98a48720528ad
Author: Sebastian Dröge <sebastian at centricular.com>
Date:   Thu Feb 20 15:09:36 2014 +0100

    ext: Use Codec/Demuxer/Adaptive for the adaptive streaming demuxers

commit a51116add3f7db0924628dde08bf9439dd3cb935
Author: Sebastian Dröge <sebastian at centricular.com>
Date:   Mon Feb 17 09:19:32 2014 +0100

    hlsdemux: Refactor threading and downloading

    We now download fragments as fast as possible and push them downstream
    while another thread is just responsible for updating live playlists
    every now and then.

    This simplifies the code a lot and together with the new buffering
    mode for adaptive streams in multiqueue makes streams start much faster.

    Also simplify threading a bit and hopefully make the GstTask usage safer.

commit 76e74547c73eda04399af5068a9ad5c002554933
Author: Sebastian Dröge <sebastian at centricular.com>
Date:   Wed Feb 19 09:35:45 2014 +0100

    hlsdemux: Only switch pads if the caps are changing



commit 2df1e56bb7240e158373313d2dfa577c40f10766
Author: Sebastian Dröge <sebastian at centricular.com>
Date:   Fri Feb 21 09:53:09 2014 +0100

    decodebin: If we have a demuxer without dynamic srcpads, just assume
no-more-pads

    Otherwise we will wait until the multiqueue after the demuxer will
    overrun, which is clearly not needed then.

commit f149c27a619a5c77f8da39c1baf45c1a6c2605db
Author: Sebastian Dröge <sebastian at centricular.com>
Date:   Fri Feb 21 09:43:38 2014 +0100

    decodebin: Also make sure to not duplicate an element factory after a group

    If we are using an adaptive stream demuxer, which outputs a non-container
    stream, we are putting another multiqueue after the *parser* following
    the adaptive stream demuxer. We do not want to add another instance of
    the same parser right after this multiqueue.

commit 41117606dd84002fc94045f9e6969a5ab12939b7
Author: Sebastian Dröge <sebastian at centricular.com>
Date:   Thu Feb 20 15:38:48 2014 +0100

    decodebin: During pre-rolling always use the auto-preroll limits on
multiqueues

    Even if we're buffering in the multiqueues.

commit 2d2aa02b77d68bfb9ae9fca286c23f5b653aa8b1
Author: Sebastian Dröge <sebastian at centricular.com>
Date:   Thu Feb 20 15:37:54 2014 +0100

    decodebin: Pass through the seekability information when setting multiqueue
limits

commit db771185ed750627a6a1824c42b651d739e1b4a4
Author: Sebastian Dröge <sebastian at centricular.com>
Date:   Thu Feb 20 15:36:47 2014 +0100

    decodebin: During exposing of pads don't set the multiqueue limits multiple
times to different values

    Instead just set them once in the very end to the correct values.

commit c4caeb73cef79470334c70ba7cc85d07de860e44
Author: Sebastian Dröge <sebastian at centricular.com>
Date:   Thu Feb 20 15:07:26 2014 +0100

    decodebin: Only enable multiqueue buffering once we're pre-rolled

    Otherwise we will emit buffering messages not just from the last
    multiqueue but also from previous multiqueues... confusing the
    application with different percentages during pre-rolling.

commit 4f320109167d4e998cd15f5bd7b81f6260e71c9a
Author: Sebastian Dröge <sebastian at centricular.com>
Date:   Thu Feb 20 15:02:09 2014 +0100

    decodebin: Make sure that we always have a second multiqueue for adaptive
streaming demuxers

    For adaptive streaming demuxer we insert a multiqueue after
    this demuxer. This multiqueue will get one fragment per buffer.
    Now for the case where we have a container stream inside these
    buffers, another demuxer will be plugged and after this second
    demuxer there will be a second multiqueue. This second multiqueue
    will get smaller buffers and will be the one emitting buffering
    messages.
    If we don't have a container stream inside the fragment buffers,
    we'll insert a multiqueue below right after the next element after
    the adaptive streaming demuxer. This is going to be a parser or
    decoder, and will output smaller buffers.

commit ad51b38b7cd9c7829431cb39ea9f89add0e7156f
Author: Sebastian Dröge <sebastian at centricular.com>
Date:   Wed Feb 19 10:21:16 2014 +0100

    uridecodebin: Always use buffering in multiqueue for adaptive streams

commit a2837a22a53071e42f610d994ffd8b2b87a8e609
Author: Sebastian Dröge <sebastian at centricular.com>
Date:   Wed Feb 19 10:06:13 2014 +0100

    uridecodebin: Only add a queue2 for buffering for non-adaptive streaming
streams

commit 89c9e23bfecead322d2f5a8a0487a1acc90d8a22
Author: Thiago Santos <thiago.sousa.santos at collabora.com>
Date:   Wed Feb 6 08:46:58 2013 -0300

    uridecodebin: pass on the buffering property for adaptive streams

    Adaptive streams should download its data inside the demuxer, so
    we want to use multiqueue's buffering messages to control the
    pipeline flow and avoid losing sync if download rates are low;

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

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