From: Marco B. <gib...@gm...> - 2011-02-09 08:02:30
|
Hi, On Wed, Feb 9, 2011 at 1:41 AM, Thierry Panthier <thi...@gm...> wrote: > Hi Marco, > > Sorry I didn't make myself clear. You were right I'm actually looking > for a way to handle the RTCP timeout for a specific SSRC. > >> as you're likely using UDP as transport layer, RTP packets cannot be >> timed out (yes, it's an unreliable protocol). RTCP can help you here, >> as you'd just need to enable it and listen for (missing) Sender >> Reports, translated in "on-ssrc-active" signals from the session >> element in the GstRtspSrc (which is usually a GstRtpBin). > > The problem is that the rtspsrc bin does not have this signal. And if > I try to connect to it I get: > > TypeError: <__main__.GstRTSPSrc object (rtspsrc0) at > 0x919beb4>: unknown signal name: on-ssrc-active > > The rtspsrc documentation says it is built on top of gstrtpbin but how > do I get access to it? it's not possible to get such a signal from the rtspsrc, which is just a specialised bin (see here to believe: http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-rtspsrc.html). As you already suspect, it's instead possible to get such a signal from the GstRtpBin used as a manager (I'm sorry I mistakenly wrote "session" earlier, but it's actually possible to do the same with the GstRtpSession element) inside the RtspSrc. You can get it through the GstBin api: http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html Basically, iterate through the children and get the one instantiating a GstRtpBin. A more quick-and-dirty way would be to use gst_bin_get_by_name and something like "rtpbin0" for the name. Regards > > If could simply have access to the signals "on-ssrc-active" and > "on-timeout" that would be great. > > However if the implementation does not allow me to do that then I > would like to know if it is possible to add an element to my bin to > detect a "frozen stream". I've gone through all the options given by > gst-inspect but couldn't find anything useful. > >> RTCP packets are (usually) sent with intervals of 5s. If you want >> something faster, you can install a data probe somewhere in the pipe >> resetting a timeout each time a buffer transits through the pad. When >> the timer triggers, then a timeout occurred and you can unilaterally >> terminate the communication. > > 5s for me it's good enough for my application. > > > Thanks in advance, > > Thierry > > ------------------------------------------------------------------------------ > The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE: > Pinpoint memory and threading errors before they happen. > Find and fix more than 250 security defects in the development cycle. > Locate bottlenecks in serial and parallel code that limit performance. > http://p.sf.net/sfu/intel-dev2devfeb > _______________________________________________ > gstreamer-devel mailing list > gst...@li... > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel > |