When feeding the phonon gstreamer sources faster than it can play them, the streamreader will be deleted before gstreamer is done using it. This in turn triggers various asserts in the stream interface as well as deadlocks the eventloop. Greetings to Trever. Reproducible: Always
Git commit 973f82c4611da4aa182d75cc5c8f860746aba90b by Harald Sitter. Committed on 10/12/2012 at 00:13. Pushed by sitter into branch 'master'. fix assertation fails due to gstreamer reading from deleted readers instead of deleting a read in setsource it is now deleted on setupsource which is a callback from gstreamer when the new source is being actually set up. in particular we may still be playing on stream1 when setsource is called with stream2 (e.g. set while abouttofinish was in progress), so previously stream1 would have been deleted while gstreamer was still reading, now it is not. also start a newly created reader right away as gstreamer may do probing calls while we are still working in setupsource, so our reader needs to be ready to handle those. starting asap is fine here as the setup is only done once we start loading the source anyway (targeting playing/paused, so technically statewise we are somewhere between stopped and playing). M +15 -10 gstreamer/pipeline.cpp http://commits.kde.org/phonon-gstreamer/973f82c4611da4aa182d75cc5c8f860746aba90b