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 709191 - query in control URLs does not work
query in control URLs does not work
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-rtsp-server
git master
Other Linux
: Normal normal
: 1.2.3
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2013-10-01 14:12 UTC by Jonas Holmberg
Modified: 2014-02-25 22:29 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Add query to control path (3.84 KB, patch)
2013-10-01 14:14 UTC, Jonas Holmberg
committed Details | Review
Append query to control (4.43 KB, patch)
2013-10-01 14:15 UTC, Jonas Holmberg
rejected Details | Review

Description Jonas Holmberg 2013-10-01 14:12:51 UTC
A query in the describe url is not copied to the stream control urls and if it is done by a subclass it does not really work since handle_setup_request() does not copy it to the path when trying to find the stream, which results in 404 Not Found.
Comment 1 Jonas Holmberg 2013-10-01 14:14:33 UTC
Created attachment 256189 [details] [review]
Add query to control path

If the SETUP url contains a query it must be appended to the control
path so that it matches any already created stream in the media. The
query will also be appended to the session media path.
Comment 2 Jonas Holmberg 2013-10-01 14:15:50 UTC
Created attachment 256190 [details] [review]
Append query to control

Includes check test
Comment 3 Wim Taymans 2013-10-04 04:32:00 UTC
commit 1742399e2369eebf5744d493b8a3c9a3f8d9bf7c
Author: Jonas Holmberg <jonashg@axis.com>
Date:   Tue Oct 1 14:04:17 2013 +0200

    client: Add query to control path
    
    If the SETUP url contains a query it must be appended to the control
    path so that it matches any already created stream in the media. The
    query will also be appended to the session media path.
Comment 4 Wim Taymans 2013-10-04 04:42:51 UTC
The second path does not make sense to me. 

If the control url ends up in the SDP as foo?bar then the client will pass that query to the SETUP and we should use the complete control to identify the stream. For example, I can make 2 streams with the following control urls: audio?language=nl and audio?language=fr.

For this, you need to explicitly set the control url in the streams with gst_rtsp_stream_set_control().

You patch changes the default name of the stream to return something different depending on the query and then it uses a bug (?) of the control compare function where it only checks the first part of the url (stream=%u).
Comment 5 Jonas Holmberg 2013-10-10 09:23:00 UTC
OK. I'm fine with implementing that in a subclass instead.

And now with d4b8a8249c1826c1074bcd5b12973d442057a94b it would also be possible to use different facories with the same path (but different query) by making make_path_from_uri() virtual instead of having to create different paths in ::make_path() when the aggregate control url is created.
Comment 6 Wim Taymans 2013-11-22 11:01:20 UTC
commit 8ce453d97d5a986f68cf34a57b0d663539634614
Author: Patricia Muscalu <patricia@axis.com>
Date:   Thu Nov 7 13:22:09 2013 +0100

    client: make make_path_from_uri a vmethod