rendered paste bodyimport 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()