[Bug 754230] qtdemux: support sparse time ranges in qtdemux without needing a seek for MSE

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Mon Aug 31 01:48:14 PDT 2015


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

--- Comment #4 from Enrique Ocaña González <eocanha at igalia.com> ---
Thank you both for your suggestions.

Just to let you know: I've been working for some time on top of the WebKit code
pointed by Sebastian, mainly making the Youtube conformance tests [1] pass,
with a big deal of success. I even got Youtube TV [2] working... until I bumped
into the seek feature and realized about some limitations of the design I was
using.

I always tried to perform appends and playbacks in the same pipeline and
suffered the consequences of sharing the pipeline for operations that should be
completely independent. Also, both the MSE spec and the MSE framework layed out
by Apple in WebCore suggest that the Samples (after the demuxer) should be
encapsulated and provided to the upper MSE layer by the lower GStreamer MSE
implementation layer. In practice, I implemented it by using a probe in the
demuxer src pads to "steal" the GstBuffers. Later, when the upper MSE layer
wanted to perform the playback, I pushed the buffers again in the pads.
Needless to say, I had lots of problems trying to convince the seeks and
flushes to play well with all this. :-/

Now I'm changing approach and I'm splitting the original pipeline: N append
pipelines (one per SourceBuffer) and one common playback pipeline. Each append
pipeline holds a demuxer and reports the received samples to the upper MSE
layer. The playback pipeline, still based on playbin, performs the playback in
a simpler way than the original pipeline in the current upstream WebKit code. I
hope this new design will simplify things and ease the debugging of the
remaining issues I still have.

I'll be around in Dublin in the next GStreamer Conference. If you have interest
in the topic, I'll be glad to give you more details about my experience
implementing all this and discuss the advantages and drawbacks of the different
designs.


[1]
http://yt-dash-mse-test.commondatastorage.googleapis.com/unit-tests/2015.html
[2] https://www.youtube.com/tv

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