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 721003 - rtspsrc: play requests can't find media with query parameters
rtspsrc: play requests can't find media with query parameters
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other Linux
: Normal normal
: 1.2.2
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2013-12-24 03:31 UTC by Philip Craig
Modified: 2013-12-26 11:03 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Philip Craig 2013-12-24 03:31:44 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().
Comment 1 Wim Taymans 2013-12-26 10:41:40 UTC
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