GNOME Bugzilla – Bug 721003
rtspsrc: play requests can't find media with query parameters
Last modified: 2013-12-26 11:03:16 UTC
Run examples/test-readme, and try to connect to it with: gst-launch-1.0 rtspsrc location=rtsp://127.0.0.1:8554/test?query ! rtph264depay ! avdec_h264 ! xvimagesink sync=false The output is: Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... Progress: (open) Opening Stream Progress: (connect) Connecting to rtsp://127.0.0.1:8554/test?query Progress: (open) Retrieving server options Progress: (open) Retrieving media info Progress: (request) SETUP stream 0 Progress: (open) Opened Stream Setting pipeline to PLAYING ... New clock: GstSystemClock Progress: (request) Sending PLAY request Progress: (request) Sending PLAY request ERROR: from element /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0: Resource not found. Additional debug info: gstrtspsrc.c(5065): gst_rtspsrc_send (): /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0: Not Found Execution ended after 0:00:00.001341483 Setting pipeline to PAUSED ... Setting pipeline to READY ... Setting pipeline to NULL ... Freeing pipeline ... This used to work; git-bisect points at d4b8a8249c1826c1074bcd5b12973d442057a94b (client: append query string in PAUSE/PLAY/TEARDOWN as well). The problem seems to be that handle_setup_request() passes the truncated path to gst_rtsp_session_manage_media(), but handle_play_request() uses the full path for gst_rtsp_session_get_media().
It was actually a bug in rtspsrc that didn't use the correct base url for the aggregate control. fixed in -good: commit bf878d75d110fd0e32898c26d617b85ac1603539 Author: Wim Taymans <wtaymans@redhat.com> Date: Thu Dec 26 11:21:36 2013 +0100 rtspsrc: use aggregate control for PLAY/PAUSE/TEARDOWN Use the aggregate control instead of the original request url to perform PAUSE/PLAY and TEARDOWN. Fixes https://bugzilla.gnome.org/show_bug.cgi?id=721003