GNOME Bugzilla – Bug 395688
playbin is unable to play rtsp stream for 3gp from Darwin Server.
Last modified: 2007-01-25 17:44:47 UTC
I am trying to access rtsp://192.168.3.9/sample_50kbit.3gp where 192.168.3.9 is IP address on which Darwin server is running but I am unable to play it. I am using the following command : $gst-launch-0.10 --gst-debug=2 --gst-debug-no-color playbin uri=rtsp://192.168.3.9/sample_50kbit.3gp I can play the same URL from players like Mp4player. My System has Fedora 6 Linux. Also I have checkedout gstreamer,gst-plugins-base,gst-plugins-good,gst-plugins-bad & gst-plugins-ugly from CVS head and installed in my system. Error log is attached.
Created attachment 80102 [details] Error Log This is the error log taken with following command: gst-launch-0.10 --gst-debug=5 --gst-debug-no-color playbin uri=rtsp://192.168.3.9/sample_50kbit.3gp 2> error_log.txt
you don't have an AMR audio decoder, you might want to install the amr library and rebuild -ugly.
Created attachment 81051 [details] Error log after installing amrnb library This is the new error log attachment for following command after installing the amrnb library and rebuilding/reinstalling the -ugly plugin. $gst-launch-0.10 --gst-debug=5 --gst-debug-no-color playbin uri=rtsp://192.168.3.9/sample_50kbit.3gp 2> error_log.txt
I am still not able to run rtsp://192.168.3.9/sample_50kbit.3gp file from darwin server using playbin. same file can be played locally using playbin. I downloaded the amrnb source code from site http://www.archlinux.org/packages/10745/ and then rebuild/reinstall the gstreamer -ugly source code. out put of command "$gst-inspect-0.10 |grep amr" is as follows: --------------- amrnb: amrnbenc: AMR-NB encoder amrnb: amrnbparse: AMR-NB parser amrnb: amrnbdec: AMR-NB decoder rtp: rtpamrpay: RTP packet payloader rtp: rtpamrdepay: RTP packet depayloader typefindfunctions: audio/x-amr-wb-sh: amr typefindfunctions: audio/x-amr-nb-sh: amr ---------
There is a race in linking and unblocking the pads, causing errors. Just commited this fix in cvs for it. Can you retest? * gst/rtsp/gstrtspsrc.c: (pad_unblocked), (pad_blocked): Unblock pads after adding the pads to the element so that autopluggers get a change to link something. Possibly fixes #395688.
This should fix it: * gst/rtsp/gstrtspsrc.c: (pad_blocked), (gst_rtspsrc_stream_configure_transport), (gst_rtspsrc_activate_streams), (gst_rtspsrc_loop_udp): * gst/rtsp/gstrtspsrc.h: Only unblock the udp pads when we linked and activated them all. Fixes #395688.
Hi Wim, Thanks for the changes. Its working now with latest gstreamer/plugin code. I can see 3gp file playing in my system successfully. (sometime it give internal data flow error) When I am running the following command: $gst-launch-0.10 playbin uri=rtsp://192.168.1.225/sample_50kbit.3gp Then few error messages displayed while file was being played which you may want to look into. ------------------- Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... Setting pipeline to PLAYING ... New clock: GstSystemClock (gst-launch-0.10:7298): GStreamer-CRITICAL **: gst_caps_append_structure: assertion `IS_WRITABLE (caps)' failed (gst-launch-0.10:7298): GStreamer-CRITICAL **: gst_caps_append_structure: assertion `IS_WRITABLE (caps)' failed (gst-launch-0.10:7298): GStreamer-CRITICAL **: gst_caps_append_structure: assertion `IS_WRITABLE (caps)' failed (gst-launch-0.10:7298): GStreamer-CRITICAL **: gst_caps_append_structure: assertion `IS_WRITABLE (caps)' failed 0:00:00.205429000 7298 0x9bae200 ERROR ffmpeg :0:: header damaged 0:00:00.205533000 7298 0x9bae200 ERROR ffmpeg gstffmpegdec.c:1043:gst_ffmpegdec_frame:<ffdec_mpeg40> ffdec_mpeg4: decoding error (len: -1, have_data: 0) --------------------------------
Following patch to -core should fix the warnings and errors resulting from it. * gst/gstcaps.c: (_gst_caps_free), (gst_static_caps_get): Add some refcount debugging. Make gst_static_caps_get threadsafe, which is needed when autoplugging in multiple streaming threads.