All pastes #283977 Raw Edit

Anonymous

public python v1 · immutable
#283977 ·published 2006-12-18 19:51 UTC
rendered paste body
class GStreamerPlayer2(threading.Thread):    def __init__(self):        threading.Thread.__init__(self, name='GStreamer Sound Player 2 Thread')        self.setDaemon(True)        self.quit = False        self.pipeline = gst.Pipeline('pipeline')        self.autoaudiosink = gst.element_factory_make('autoaudiosink', 'autoaudiosink')        self.pipeline.add(self.autoaudiosink)        self.adder = gst.element_factory_make('adder', 'adder')        self.pipeline.add(self.adder)        self.adder.link(self.autoaudiosink)                self.bus = self.pipeline.get_bus()        self.bus.add_signal_watch()        self.bus.connect('message', self.handle_message)    def run(self):        while not self.quit:            time.sleep(1.0)        self.pipeline.set_state(gst.STATE_NULL)    def play_file(self, filename):        sys.stderr.write('%f: playing file: %s %s\n' % (time.time(), filename, type(filename)))        sys.stderr.flush()        decodebin = gst.element_factory_make('decodebin')        decodebin.connect('new-decoded-pad', self.new_decoded_pad)        decodebin.connect('removed-decoded-pad', self.removed_decoded_pad)        decodebin.connect('unknown-type', self.unknown_type)                self.pipeline.add(decodebin)                filesrc = gst.element_factory_make('filesrc')        filesrc.set_property('location', filename)                self.pipeline.add(filesrc)        filesrc.link(decodebin)        structure = gst.Structure('gajim')        structure['filename'] = str(filename)        self.bus.post(gst.message_new_application(filesrc, structure))                          def new_decoded_pad(self, object, pad, b, u):        sys.stderr.write('%f: new decoded pad!\n' % time.time())        caps = pad.get_caps()        sys.stderr.write('%f: caps: %s\n' % (time.time(), caps))        pad.link(self.adder)            def removed_decoded_pad(self, object, pad, u):        sys.stderr.write('%f: removed decoded pad!\n' % time.time())    def unknown_type(self, object, pad, caps, u):        pass    def handle_message(self, bus, message):        if message.structure.get_name() == 'gajim':            message.src.set_state(gst.STATE_PLAYING)        else:            sys.stderr.write('%f: some other message %s\n' % (time.time(), message))