python, appsrc, signal "need-data" emitted only once
Jan Martinek
honza at dp.fce.vutbr.cz
Tue May 30 10:18:10 UTC 2017
Hi everyone,
some time ago (2009?) I wrote a couple of Python scripts playing some
generated waveform on the speakers. It used to work fine.
Now my programs are obsolete and do not work. I made a very simplified
example:
------------------------
#!/usr/bin/python
import gobject
gobject.threads_init()
import gst, gtk
import random
class Sound:
def __init__(self):
self.player = gst.parse_launch('''appsrc name=source !
capsfilter
caps=audio/x-raw-int,rate=44100,channels=2,depth=16,signed=true !
gconfaudiosink''')
playersrc = self.player.get_by_name('source')
playersrc.connect('need-data', self.needdata)
self.player.set_state(gst.STATE_PLAYING)
gtk.main()
def needdata(self, src, length):
print 'need-data:', length
data = ''
for i in range(length):
data = data + chr(random.randint(0, 255))
src.emit('push-buffer', gst.Buffer(data))
sa = Sound()
-----------------
This should produce a noise from random data. It does not work because
"need-data" signal is called only once.
On the old system it plays a noise. Is is possible to make it work?
Thank you
Jan
More information about the gstreamer-devel
mailing list