[Wolves] Python GStreamer problem
Richard Barker
rtbarker2004 at gmail.com
Sat Mar 17 17:27:19 GMT 2007
Hi,
Here's an interesting one, possibly o/t for this list, but I'll be cheeky
and ask anyway. :)
I'm writing a meditation timer program in Python, it waits for 'n' minutes
then plays an ogg encoded bell sound. Everything is great, got the GUI and
it plays the sound via a GStreamer playbin.
My problem is that there is a slight delay between the end of the time
period and the sound playing as playbin loads it. So I think I need to read
the file into memory during my program initialisation and play it from there
rather than the disk.
I was playing with the code below, but when I try to add the buffer into the
pipeline with "gst.element_link_many(buffer, decode)", it complains it's not
a gstreamer object.
My question is, can anyone give me any guidance on how to pre-buffer /
pre-decode the ogg sound, or what I'm doing wrong with this buffer please?
Thanks,
Rich.
-----SOF
#!/usr/bin/python
import os
import pygst
pygst.require("0.10")
import gst
class playit:
def main(self):
size = os.path.getsize("./test.ogg")
file = open("./test.ogg","r")
# Construct the GStreamer pipeline
player = gst.Pipeline("testplayer")
#Buffer source
buffer = gst.buffer_new_and_alloc(size)
buffer = file.read
#Binary decoder
decode = gst.element_factory_make("decodebin", "decode")
decode.connect("new-decoded-pad", self.OnDynamicPad)
player.add(decode)
#Audio converter
converter = gst.element_factory_make("audioconvert","converter")
player.add(converter)
#ALSA Sink
sink = gst.element_factory_make("alsasink","sink")
player.add(sink)
#Link them up
gst.element_link_many(buffer, decode)
gst.element_link_many(converter, sink)
#Play
player.set_state(gst.STATE_PLAYING)
def OnDynamicPad(self, dbin, pad, islast):
pad.link(self.converter.get_pad("sink"))
if __name__ == "__main__":
gsttest = playit()
gsttest.main()
------EOF
--
http://quietwatercourse.wordpress.com
http://www.myspace.com/quietwatercourse
Visit my sites, I don't bite unless you're in fishnets!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.lug.org.uk/pipermail/wolves/attachments/20070317/47c80a50/attachment.html
More information about the Wolves
mailing list