GNOME Bugzilla – Bug 575961
Playback of two gnlcompositions ends too early
Last modified: 2009-03-19 15:22:09 UTC
Playing two gnlcompositions ends playback too early, it ends when the shortest gnlfilesource ends. The playback should propably end when the longest gnlfilesource ends. Here's overview of the pipeline: gnlcomposition1(gnlfilesource1) -> adder -> alsasink gnlcomposition2(gnlfilesource2) / gnlfilesource1 plays a 5 seconds long audio file and gnlfilesource2 plays a 10 seconds long audio file. The pipeline stops playing after 5 seconds. If gnlcomposition2 is removed, the pipeline stops after 10 seconds. Using Ubuntu 8.10 basic installation, GStreamer 0.10.21, gstreamer0.10-gnonlin 0.10.9-1, Macbook 1,1, Intel Core Duo CPU Tried with ogg theora audio files and wav audio files, no difference.
Created attachment 130967 [details] Python script Python script, which was used to notice the problem.
Created attachment 130968 [details] song5secs.ogg First song used by the script
Created attachment 130969 [details] song10secs.ogg Second song used by the script
Created attachment 130971 [details] Python script with "silent source" to play even after filesource has ended. Got a suggestion that gnlcomposition needs to play something all the time. That's why the shorter gnlcomposition stops the whole pipeline after 5 secs - it doesn't have anything to play out. This script adds an audiotestsrc, which should play even if gnlfilesource has ended. Sadly, even this doesn't work for me.
First of all... you should be listening to messages on the bus. bus = self.pipeline.get_bus() bus.add_signal_watch() bus.connect(self._busMessageCb) def _busMessageCb(self, bus, message): if message.type == gst.MESSAGE_ERROR: print "ERROR !!!" ... and then you would have seen there's an error somewhere.
The real issue is due to asynchronous segment handling. I'm marking this as a duplicate of #575972 *** This bug has been marked as a duplicate of 575972 ***