You want to do it in this order: def __stream_created_cb(self, channel, stream): print "Start of stream created!" stream.connect("src-pad-added", self.__src_pad_added_cb) srcpad = stream.get_property ("sink-pad") from gst import element_factory_make, STATE_PLAYING src = element_factory_make("audiotestsrc") src.set_property("is-live", True) self.__pipeline.add(src) src.get_pad("src").link(srcpad) src.set_state(STATE_PLAYING)
On Fri, 2011-06-17 at 18:35 -0400, Mystilleef wrote: > 2011/6/17 Olivier Crête <olivier.cr...@collabora.com>: > > Hi, > > > > On Fri, 2011-06-17 at 18:04 -0400, Mystilleef wrote: > >> On Fri, Jun 17, 2011 at 5:51 PM, Tiago Katcipis <katci...@inf.ufsc.br> > >> wrote: > >> >> ======================================================================== > >> >> def __stream_created_cb(self, channel, stream): > >> >> print "Start of stream created!" > >> >> stream.connect("src-pad-added", self.__src_pad_added_cb) > >> >> srcpad = stream.get_property ("sink-pad") > >> >> from gst import element_factory_make, STATE_PLAYING > >> >> src = element_factory_make("audiotestsrc") > >> >> src.get_pad("src").link(srcpad) > >> >> src.set_property("is-live", True) > >> >> src.set_state(STATE_PLAYING) > >> >> self.__pipeline.add(src) > >> > > >> > here it seems to be the problem, self.__pipeline.add(src) and > >> > src.set_state(STATE_PLAYING) should be called before you call > >> > src.get_pad("src").link(srcpad). You can link pads of elements that > >> > belong > >> > to the same pipeline (bin) and are on the same state. > >> > >> I think you're right. I also had to set "STATE_PLAYING" in an idle handler. > > > > You don't have to change the state in a idle handler, it should matter. > > > > It crashes with the following error if I don't put it in an idle handler > > =================================================================================================== > (run:14061): GStreamer-CRITICAL **: > Trying to dispose element autoaudiosrc0, but it is in PLAYING instead > of the NULL state. > You need to explicitly set elements to the NULL state before > dropping the final reference, to allow them to clean up. > This problem may also be caused by a refcounting bug in the > application or some element. > > (run:14061): tp-fs-DEBUG: stream 0 0xa25b020 (audio) > _tf_stream_bus_message: Codecs changed > (run:14061): tp-fs-DEBUG: stream 0 0xa25b020 (audio) > _tf_stream_try_sending_codecs: called (send_local:0 send_supported:0) > (run:14061): tp-fs-DEBUG: stream 0 0xa25b020 (audio) > _tf_stream_try_sending_codecs: 0: audio PCMU clock:8000 channels:0 > (run:14061): tp-fs-DEBUG: stream 0 0xa25b020 (audio) > _tf_stream_try_sending_codecs: 101: audio telephone-event clock:8000 > channels:0 events=0-15 > (run:14061): tp-fs-DEBUG: stream 0 0xa25b020 (audio) > _tf_stream_bus_message: Send codec changed: 0: audio PCMU clock:8000 > channels:0 params:(nil) > fish: Job 1, “./run ” terminated by signal SIGSEGV (Address boundary error) > ========================================================================================== -- Olivier Crête olivier.cr...@collabora.com
signature.asc
Description: This is a digitally signed message part
_______________________________________________ telepathy mailing list telepathy@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/telepathy