I have written a video player in gstreamer as specified here: https://github.com/dschreij/media_player_gst/blob/master/media_player_gst.py
In Windows it works fine in 'normal' and multiprocessing mode (that is all Gstreamer parts and the player object are created in a separate process). In Ubuntu 13.10, however, when the player run in its own process a call to
self.bus.peek() # Reference to the playbin2 player's bus
causes the following error and crashes the whole program (also parent process):
python: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.
python: Fatal IO error 4 (Interrupted system call) on X server :0.
The player otherwise runs fine in a new process. Only the call to self.bus.peek() makes it crash. I needed to check for events on the bus queue itself, because connecting the bus to a function that handles its messages also didn't seem to work (only in Ubuntu again!)
Basically I only use the bus to see if the end of stream (gst.MESSAGE_EOS) has been reached, so if it is possible to determine this without using the playbin2 bus, I'm fine with such a solution too. Is there anyone who could help me out with this?