After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 724032 - gst-rtsp-server proxy
gst-rtsp-server proxy
Status: RESOLVED NOTABUG
Product: GStreamer
Classification: Platform
Component: gst-rtsp-server
unspecified
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-02-10 13:43 UTC by Cristian
Modified: 2014-02-10 16:18 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
gstreamer debug log (148.64 KB, application/tgz)
2014-02-10 13:58 UTC, Cristian
Details

Description Cristian 2014-02-10 13:43:03 UTC
Hello, I'm trying to use gst-rtsp-server as a proxy. I'm modifying test-launch.c example; I set the factory to shared and I'm passing to the program the following pipeline:

GST_DEBUG=3 ./test "( rtspsrc protocols=4 location=rtsp://IP:PORT/12 ! queue ! rtph264depay ! queue ! rtph264pay name=pay0 pt=96 )"

all seems to work fine, but when a client is connected the stream only last 1 minute and then clients ( vlc, gstreamer with rtspsrc) receive EOS.

In the server part I have the following log with GST_DEBUG=3:

0:00:03.934200119 19883 0x7f41c80294f0 WARN         rtpjitterbuffer rtpjitterbuffer.c:183:rtp_jitter_buffer_set_clock_rate: Clock rate changed from 0 to 90000
0:00:03.936932486 19883      0x11df8f0 FIXME              rtspmedia rtsp-media.c:2588:gst_rtsp_media_suspend: suspend for dynamic pipelines needs fixing
0:00:59.185018301 19883 0x7f41c80294f0 WARN                 rtspsrc gstrtspsrc.c:4153:gst_rtspsrc_loop_interleaved:<rtspsrc0> error: Could not receive message. (Parse error)
0:00:59.185190903 19883 0x7f41d0037940 WARN               rtspmedia rtsp-media.c:1762:default_handle_message: 0x7f41d003a000: got error Could not read from resource. (gstrtspsrc.c(4153): gst_rtspsrc_loop_interleaved (): /GstPipeline:media-pipeline/GstBin:bin0/GstRTSPSrc:rtspsrc0:
Could not receive message. (Parse error))
0:00:59.185278444 19883 0x7f41c80294f0 WARN                 rtspsrc gstrtspsrc.c:4587:gst_rtspsrc_loop:<rtspsrc0> error: Internal data flow error.
0:00:59.185348291 19883 0x7f41c80294f0 WARN                 rtspsrc gstrtspsrc.c:4587:gst_rtspsrc_loop:<rtspsrc0> error: streaming task paused, reason error (-5)
0:00:59.185440714 19883 0x7f41d0037940 WARN               rtspmedia rtsp-media.c:1762:default_handle_message: 0x7f41d003a000: got error Internal data flow error. (gstrtspsrc.c(4587): gst_rtspsrc_loop (): /GstPipeline:media-pipeline/GstBin:bin0/GstRTSPSrc:rtspsrc0:
streaming task paused, reason error (-5))
0:01:02.592001139 19883      0x11df8f0 WARN               rtspmedia rtsp-media.c:2864:gst_rtsp_media_set_state: media 0x7f41d003a000 in error status while changing to state 3
0:01:02.609288259 19883      0x11df8f0 WARN               rtspmedia rtsp-media.c:2864:gst_rtsp_media_set_state: media 0x7f41d003a000 in error status while changing to state 1
0:01:02.609328914 19883      0x11df8f0 WARN               rtspmedia rtsp-media.c:2864:gst_rtsp_media_set_state: media 0x7f41d003a000 in error status while changing to state 1

(test:19883): GLib-CRITICAL **: unblock_source: assertion `!SOURCE_DESTROYED (source)' failed
0:01:02.616460299 19883 0x7f41c80294f0 WARN                 rtspsrc gstrtspsrc.c:4153:gst_rtspsrc_loop_interleaved:<rtspsrc0> error: Could not receive message. (Parse error)
0:01:02.616519779 19883 0x7f41c80294f0 WARN                 rtspsrc gstrtspsrc.c:4587:gst_rtspsrc_loop:<rtspsrc0> error: Internal data flow error.
0:01:02.616563401 19883 0x7f41c80294f0 WARN                 rtspsrc gstrtspsrc.c:4587:gst_rtspsrc_loop:<rtspsrc0> error: streaming task paused, reason error (-5)


If I restart clients stream continue for another minute without the need to restart the server.

I'm using gstreamer 1.2.3 with gst-rtsp-server 1.1.90 compiled by source on Ubuntu 12.04.4 64bits.

When using test-video program, clients do not receive EOS, so I think problem is between rtsp-server and the ip camera. rtsp-server and ip camera are on the same lan. Is there a way to know what cause this strange behaviour?

Regards
Cristian
Comment 1 Wim Taymans 2014-02-10 13:47:29 UTC
try GST_DEBUG=*rtsp*:8 and redirect to a file like:

GST_DEBUG=*rtsp*:8 ./test "( rtspsrc protocols=4 location=rtsp://IP:PORT/12 ! queue ! rtph264depay ! queue ! rtph264pay name=pay0 pt=96 )" >debug.log 2>&1

then zip and attach the debug log, if not too large.
Comment 2 Cristian 2014-02-10 13:58:01 UTC
Created attachment 268677 [details]
gstreamer debug log

debug log as requested
Comment 3 Wim Taymans 2014-02-10 14:14:56 UTC
Seems like a problem with keepalive messages on the server. try to set "do-rtsp-keep-alive=false" on rtspsrc
Comment 4 Cristian 2014-02-10 16:18:55 UTC
I added do-rtsp-keep-alive=0 and do-rtcp=0 and problem is gone.

Thanks