Segmentation fault in sending raw video through RTP (via rtpbin)

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Segmentation fault in sending raw video through RTP (via rtpbin)

Antonio Marqués
Hello,

I got some problems in sending raw video through rtpbin plugin. I am
using rtpvrawpay and rtpvrawdepay plugins in order to payload YUV video.
It seems to work ok but after a few seconds, the receiver gets a
segmentation fault and stops playing the video.
I have tested it with a single video (videotestsrc) and it fails.
However, if I don't add the RTCP part there is no segmentation fault.
Any idea of what is happening? Those are the pipelines launched:

Sending pipeline:
gst-launch  gstrtpbin name=rtpbin videotestsrc ! queue !
ffmpegcolorspace !
video/x-raw-yuv,format="(fourcc)I420",width=640,height=480,framerate=15/1 ! queue ! rtpvrawpay mtu=8000 ! queue ! rtpbin.send_rtp_sink_0 udpsrc port=5005 ! rtpbin.recv_rtcp_sink_0  rtpbin.send_rtp_src_0 ! queue ! udpsink host=captura4 port=5000 rtpbin.send_rtcp_src_0 ! queue ! udpsink host=captura4 port=5001 async=false qos=false sync=false

Reception pipeline:
gst-launch -v  gstrtpbin latency=500 name=rtpbin udpsrc port=5000
typefind=true
caps="application/x-rtp,media=video,clock-rate=90000,encoding-name=RAW,sampling=YCbCr-4:2:0,depth=8,width=(string)640,height=(string)480" ! queue ! rtpbin.recv_rtp_sink_0 udpsrc udpsrc port=5001 ! queue ! rtpbin.recv_rtcp_sink_0  rtpbin. ! queue ! rtpvrawdepay ! ffmpegcolorspace ! ximagesink  
rtpbin.send_rtcp_src_0 ! udpsink port=5005 host=captura4 sync=false
async=false qos=false


Thanks in advance.
--
Toni Marqués Marqués
Telefónica I+D
División de Tecnologías de Video
[hidden email]
933653188





------------------------------------------------------------------------------
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image
processing features enabled. http://p.sf.net/sfu/kodak-com
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Segmentation fault in sending raw video through RTP (via rtpbin)

Antonio Marqués
Hello,

I have seen that the problem came when the gstrtpssrcdemux plugin inside
gstrtpbin tries to push the NEWSEGMENT event on its rtcp_src pad (when
the RTCP message is received). In gstrtpbin this pad is linked to an
internal pad named as "sync_%d", where %d is the ssrc.
If I comment the push event function in gstrtpssrcdemux (in rtcp sink
event function) the pipeline works ok, but I don't know if it would lose
some synchronisation performance without sending this NEWSEGMENT event.
However, it only fails in the case of RAW video, with other codecs works
ok.
Why could it happen?
Thanks in advance.
Best regards
On Mon, 2009-05-11 at 13:15 +0200, Antonio Marqués wrote:

> Hello,
>
> I got some problems in sending raw video through rtpbin plugin. I am
> using rtpvrawpay and rtpvrawdepay plugins in order to payload YUV video.
> It seems to work ok but after a few seconds, the receiver gets a
> segmentation fault and stops playing the video.
> I have tested it with a single video (videotestsrc) and it fails.
> However, if I don't add the RTCP part there is no segmentation fault.
> Any idea of what is happening? Those are the pipelines launched:
>
> Sending pipeline:
> gst-launch  gstrtpbin name=rtpbin videotestsrc ! queue !
> ffmpegcolorspace !
> video/x-raw-yuv,format="(fourcc)I420",width=640,height=480,framerate=15/1 ! queue ! rtpvrawpay mtu=8000 ! queue ! rtpbin.send_rtp_sink_0 udpsrc port=5005 ! rtpbin.recv_rtcp_sink_0  rtpbin.send_rtp_src_0 ! queue ! udpsink host=captura4 port=5000 rtpbin.send_rtcp_src_0 ! queue ! udpsink host=captura4 port=5001 async=false qos=false sync=false
>
> Reception pipeline:
> gst-launch -v  gstrtpbin latency=500 name=rtpbin udpsrc port=5000
> typefind=true
> caps="application/x-rtp,media=video,clock-rate=90000,encoding-name=RAW,sampling=YCbCr-4:2:0,depth=8,width=(string)640,height=(string)480" ! queue ! rtpbin.recv_rtp_sink_0 udpsrc udpsrc port=5001 ! queue ! rtpbin.recv_rtcp_sink_0  rtpbin. ! queue ! rtpvrawdepay ! ffmpegcolorspace ! ximagesink  
> rtpbin.send_rtcp_src_0 ! udpsink port=5005 host=captura4 sync=false
> async=false qos=false
>
>
> Thanks in advance.
--
Toni Marqués Marqués
Telefónica I+D
División de Tecnologías de Video
[hidden email]
933653188





------------------------------------------------------------------------------
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image
processing features enabled. http://p.sf.net/sfu/kodak-com
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel