Skip to content

Latest commit

 

History

History
56 lines (34 loc) · 1.59 KB

README.md

File metadata and controls

56 lines (34 loc) · 1.59 KB

This is to investigate various odd behavior of gapless play with URIs.

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

To reproduce:

Build both both versions with

 make

(This expects pkg-config to work for gstreamer-0.10 and gstreamer-1.0)

Preparation: provide sound-file via webserver

Run a webserver that serves the test sound file.

Webfsd is a lightweight solution (sudo aptitude install webfs). There is a file in the sounds/ directory, let's serve that.

 webfsd -r sounds/ -p 9999

Playing URI with gstreamer 0.10

Run the binary

 ./test-loop-0.1 http://localhost:9999/test-sound.ogg

In another thread, watch how the number of threads increase over time

 $ while : ; do ps -eLf | grep test-loop | grep -v grep | wc -l ; sleep 1 ; done

.. and after some amount of repeats (~30-100) the whole process just stops working, with many threads stuck.

Playing URI with gstreamer 1.0

Running the 1.0 binary:

 ./test-loop-1.0 http://localhost:9999/test-sound.ogg

This only plays the URI once and then goes into an endless loop.

Playing a file-uri works fine

Same thing works fine with both versions, if the input is a file

 ./test-loop-0.1 file://`pwd`/sounds/test-sound.ogg
 ./test-loop-1.0 file://`pwd`/sounds/test-sound.ogg

(works means: plays the same sound indefinetly, and only uses a limited amount of threads).