Trouble playing HTTP-URIs gapless in "playbin"
Tim-Philipp Müller
t.i.m at zen.co.uk
Thu Apr 18 01:30:13 PDT 2013
On Wed, 2013-04-17 at 23:46 -0700, Henner Zeller wrote:
Hi,
> Did any of the developers had a chance to take a look ? I might want
> to investigate the reasons next weekend, but it might be helpful to
> have some rough plan of action.
>
> This is essentially a regression from 0.10: gapless playing of
> non-file URIs used to work with the suggested about-to-finish
> callback, but doesn't with 1.0.
> (but in 0.10 it was leaking threads...)
It sounds like a bug. Please file a bug report in bugzilla:
http://gstreamer.freedesktop.org/bugs/
I don't think there's much you can do wrong in your sample app (though I
have not looked at it).
Cheers
-Tim
>
> On 15 April 2013 23:13, Henner Zeller <h.zeller at acm.org> wrote:
> Hi,
> I am maintainer of gmrender-resurrect [1], a UPnP renderer
> (forked from the dormant 'gmrender' project). It is using
> gstreamer as backend.
>
>
> Using the gstreamer "playbin" feature to set the next URI in
> an "about-to-finish" callback, this UPnP renderer successfully
> implements gapless playback, alas, not without trouble.
>
>
> It turns out, that playing gapless with inputs from HTTP-URLs
> is leaking threads, up to the point that things stop working.
> This is with gstreamer-0.10. With gstreamer-1.0 setting HTTP
> URLs in the "about-to-finish" callback does not seem to work
> at all.
>
>
> This _does_ work with local file-URIs, so I believe this has
> to do with different handling of network resources vs. local
> resources, i.e. buffering, probably a separate thread handling
> the network input (and it would explain why this hasn't been
> noticed before, because the usual use-case is to read from
> files).
>
>
> To reproduce, I created simplified test-code including
> Makefile and test-sound in this public git repository that
> illustrates the behavior:
>
>
> https://github.com/hzeller/gstreamer-gapless-test
>
>
> All it does is to re-set the original URI back once the
> "about-to-finish" callback is called ... and exhibiting the
> described behavior:
> - gstreamer-0.1: runs out of threads on gapless playing URIs
> - gstreamer-1.0: does not handle well having the URI set in
> about-to-finish callback.
> - both work with file URIs
>
>
> Instructions to reproduce are under
>
> https://github.com/hzeller/gstreamer-gapless-test/blob/master/README.md
>
>
>
> Maybe, this is a usage error, but I suspect it to be a bug. If
> you can confirm that this _should_ work, then I am happy to
> file a bug, and probably dig into the code to help working on
> a fix.
>
>
> Thanks,
> Henner.
>
>
> [1] https://github.com/hzeller/gmrender-resurrect
>
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
More information about the gstreamer-devel
mailing list