Using gst-python with multiple pipelines
Gary Thomas
gary at mlbassoc.com
Thu Mar 22 03:39:13 PDT 2012
On 2012-03-22 04:20, Tim-Philipp Müller wrote:
>
> Hi,
>
>> Not sure I understand the question. I'm adapting some code I found
>> on the web which uses gst pipelines + wxPython (which was adapted from
>> the wxGTK version).
>>
>> I create the pipeline like this
>> self.player = gst.element_factory_make("playbin", "player")
>> self.playing = False
>> bus = self.player.get_bus()
>> bus.add_signal_watch()
>> bus.enable_sync_message_emission()
>> bus.connect('message', self.on_message, colour)
>> bus.connect('sync-message::element', self.on_sync_message, colour)
>> within the code that creates the pane. Then I initiate the pipeline with
>> self.player.set_property('uri',"file://" + path)
>> self.player.set_state(gst.STATE_PLAYING)
>> self.playing = True
>>
>> I'm happy to share my actual code if that helps - it's currently just
>> a sandbox for ideas anyway.
>
> Yes, a small example that demonstrates the issue would definitely be
> useful.
Should I send it to this list or you directly? Currently it's very
raw and around 200 lines.
>
> What I was trying to find out was if you are using (for example)
> ximagesink, or perhaps some other video sink or perhaps appsinks.
I'm just using the simple 'playbin'
> X11/Gtk doesn't do multi-threading well, so one must take care not to do
> anything X11/Gtk related from GStreamer streaming threads (like a sync
> message handler).
Here's my sync_message handler:
def on_sync_message(self, bus, message, data):
print "on_sync_message: " + data
if message.structure is None:
return
message_name = message.structure.get_name()
if message_name == 'prepare-xwindow-id':
imagesink = message.src
imagesink.set_property('force-aspect-ratio', True)
imagesink.set_xwindow_id(self.GetHandle())
I tried moving the GetHandle() call which is the only X11 function
I can see out of the sync handler and it didn't change the behaviour.
--
------------------------------------------------------------
Gary Thomas | Consulting for the
MLB Associates | Embedded world
------------------------------------------------------------
More information about the gstreamer-devel
mailing list