Request for feedback: New DASH plugin implementation (dashdemux)
bilboed at gmail.com
Tue Oct 23 00:01:53 PDT 2012
On Mon, 2012-10-22 at 17:44 +0200, David Corvoysier wrote:
> Dashbin now has a kid brother !
> After a first implementation of DASH in gstreamer brought to the
> attention of the community in May (see
> https://bugzilla.gnome.org/show_bug.cgi?id=675625), we would like people
> interested to evaluate dashdemux, a brand new implementation that tries
> to address most of the concerns raised by the previous one.
> This new plugin is the result of a joint effort from ST MicroElectronics
> and Orange, and tries to take advantage of a few generic classes
> introduced by the existing HLS Demux from gst-plugins-good.
> The code is available here:
> https://github.com/Orange-OpenSource/gstdashdemux, and is licensed under
> LGPL V2.1.
> When evaluating the plugin, please keep in mind that despite our
> efforts, it is still a prototype that would require some work to reach
> production grade:
> - the seek is unreliable (sorry !),
> - there may be a memory leak, as under certain circumstances, the memory
> increases a lot (but it's still hard to figure out which part is
> responsible, as decodebin for instance doesn't prune drained chains
> before the end of the pipeline),
> - if multiple audio languages are available, they are all downloaded
> (otherwise we cannot change the audio dynamically),
> - a few other things need to be fixed in the code (look for FIXME),
> - it is not compatible with gstreamer 1.x ...
> Based on your feedback, we are ready to discuss of a plan to include
> dashdemux to the existing suite of gstreamer plugins (probably sitting
> next to HLS demux inside a 'fragmented' plugin is the best option).
I'll let someone more familiar with HLS and DASH comment about the
implementation itself, but a few first comments:
* All the bugs/patches you mentioned in the README are pushed upstream
in both 0.10 and master. The problem is that ... there's no guarantee
there will be a future 0.10 release.
* The various source files you are re-using are already ported to 1.0
(along with hlsdemux itself).
* Most of the development effort is concentrated on 1.0 these days, and
in combination with the above-mentioned release issue, I fear you might
not get much help by sticking to 0.10 :(
* For the plugin to make it into -bad (and not -good as you mentionned),
it would be a good move to make your repository based on -bad (and not a
standalone repository as is the case right now).
* Quite a bit of your code isn't related to gstreamer API but more to
protocol handling (which is agnostic to the 0.10/1.0 changes).
Considering all the above, I'd therefore recommend you do the following:
* Re-use the current master (1.0) code of gstfragmented and related
* For that, clone gst-plugins-bad and adapt your commits/code on top.
Since hlsdemux is already ported, and you inspired yourself from that
code, you can see how it is now handling the gstreamer parts in 1.0.
* Open a bug report on the gstreamer bug tracker pointing to that
repository so we can track/comment/assist on the progress
Nice work !
> David Corvoysier
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
More information about the gstreamer-devel