All pastes #676892 Raw Edit

Anonymous

public text v1 · immutable
#676892 ·published 2007-08-31 14:19 UTC
rendered paste body
#!/usr/bin/python

import pygst
pygst.require("0.10")
import gst, gobject, time
import pygtk
import gtk

class Main:
    def __init__(self):
        self.pipeline = gst.Pipeline("mypipeline")

        self.filesrc = gst.element_factory_make("filesrc", "source")
        self.pipeline.add(self.filesrc)
        self.filesrc.set_property("location", "/home/sac/record.ts")

        self.decode = gst.element_factory_make("ffdemux_mpegts", "decode")
        self.decode.connect("pad-added", self.OnDynamicPad)
        self.pipeline.add(self.decode)

        self.filesrc.link(self.decode)

        bus = self.pipeline.get_bus()
        bus.add_signal_watch()
        bus.connect('message', self.on_message)
                
        self.pipeline.set_state(gst.STATE_PLAYING)

    def OnDynamicPad(self, dbin, pad):
        print "OnDynamicPad Called!"
        print pad.get_name()
        sink = gst.element_factory_make("filesink", "sink-"+pad.get_name())
        sink.set_property("location","/tmp/output_"+pad.get_name()+".raw")
        queue = gst.element_factory_make("queue", "queue-"+pad.get_name())
        self.pipeline.add(queue)
        self.pipeline.add(sink)
        
        pad.link(queue.get_pad("sink"))
        queue.link(sink)
        queue.set_state(gst.STATE_PAUSED)
        sink.set_state(gst.STATE_PAUSED)
        
    def on_message(self, bus, message):
        print message
        t = message.type

gobject.threads_init()
start=Main()
while (True):
    time.sleep(3)