All pastes #1368322 Raw Edit

sample

public python v1 · immutable
#1368322 ·published 2009-03-22 19:50 UTC
rendered paste body
import os, sys, timeimport gobjectgobject.threads_init()import gtkimport pygstpygst.require('0.10')import gstclass Stream(gst.Pipeline):    def __init__(self, filename):        gst.Pipeline.__init__(self)        self.filename = filename        self.caps = gst.Caps("audio/x-raw-float, rate=(int)44100;"                 "audio/x-raw-int, rate=(int)44100") # default to cd quality.         self.caps2 = gst.Caps("audio/x-raw-float, rate=(int)8000;"                 "audio/x-raw-int, rate=(int)8000")        self.dec = gst.element_factory_make("uridecodebin")        self.dec.set_property("uri", "file://" + self.filename)        self.conv = gst.element_factory_make("audioconvert")        self.resam = gst.element_factory_make("audioresample")        self.capsfilter = gst.element_factory_make("capsfilter")        self.capsfilter.set_property("caps", self.caps)        self.vol = gst.element_factory_make("volume")        self.sink = gst.element_factory_make("autoaudiosink")        self.elems = (self.dec, self.conv, self.resam,                 self.capsfilter, self.vol, self.sink)        self.add(*self.elems)        self.dec.connect('no-more-pads', self._dec_pad_cb, self.conv)        self.conv.link(self.resam)        self.resam.link(self.capsfilter)        self.capsfilter.link(self.vol)        self.vol.link(self.sink)    def set_caps(self, caps):        self.capsfilter.set_property("caps", caps)        def _dec_pad_cb(self, dec, v):        dec.link(v)if __name__ == '__main__':    files = sys.argv[1:]    s = Stream(files[0])    s.set_state(gst.STATE_PLAYING)    gobject.timeout_add(10000, s.set_caps, s.caps2)    gtk.main()