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 437563 - URIs with upper-case protocol don't play
URIs with upper-case protocol don't play
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
0.10.12
Other All
: Normal normal
: 0.10.13
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2007-05-10 21:51 UTC by Jeroen Wouters
Modified: 2007-05-11 14:30 UTC
See Also:
GNOME target: ---
GNOME version: 2.17/2.18



Description Jeroen Wouters 2007-05-10 21:51:57 UTC
Please describe the problem:
I can not play MMS URIs with an uppercase protocol part. For example the following command will not work in Ubuntu Feisty:
"gst-launch-0.10 playbin uri=MMS://wm.rbcmp3.com/45599/45599-01.asf"

Steps to reproduce:
1. Open a terminal
2. Execute the following command:
"gst-launch-0.10 playbin uri=MMS://wm.rbcmp3.com/45599/45599-01.asf"


Actual results:
gst-launch exits with the following output:

Setting pipeline to PAUSED ...
ERROR: Pipeline doesn't want to pause.
ERROR: from element /playbin0: A MMS protocol source plugin is required to play this stream, but not installed.
Additional debug info:
gstplaybasebin.c(1581): gen_source_element (): /playbin0:
No URI handler for MMS
Setting pipeline to NULL ...
FREEING pipeline ...

Expected results:
The same command but with lower case protocol starts playing music with the following output:
jeroen@jeroen-desktop:~$ gst-launch-0.10 playbin uri=mms://wm.rbcmp3.com/45599/45599-01.asf
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstAudioSinkClock


Does this happen every time?
Yes

Other information:
I have fixed this problem by lower-casing the protocol part in the function  gst_uri_get_protocol, before having it compared to the feature list in the registry. This may not be a perfect solution, but it works for me.

--- gstreamer0.10-0.10.12/gst/gsturi.c  2006-11-06 16:18:57.000000000 +0100
+++ gstreamer0.10-0.10.12_test/gst/gsturi.c     2007-05-09 19:19:29.000000000 +0200
@@ -369,7 +369,7 @@
 
   colon = strstr (uri, "://");
 
-  return g_strndup (uri, colon - uri);
+  return g_strdown (g_strndup (uri, colon - uri));
 }
 
 /**
Comment 1 Tim-Philipp Müller 2007-05-11 14:30:04 UTC
Ah, why not. Committed, thanks for the patch:


  2007-05-11  Tim-Philipp Müller  <tim at centricular dot net>

       Patch by: Jeroen Wouters <woutersj at gmail com>

       * gst/gsturi.c: (gst_uri_get_protocol), (search_by_entry):
         Treat protocol strings in a case-insensitive way (#437563).