GNOME Bugzilla – Bug 545864
Totem removes get parameters from url before passing it to gstreamer
Last modified: 2008-08-20 09:42:22 UTC
If you go to: http://rtlgemist.nl/ And then click on one of the videos, a window with an embedded totem plugin opens, but no video is shown (this used to work). If one then right clicks and selects copy, and then do open location in a stand alone totem, the following error is given: "You do not have a decoder installed to handle this file. You might need to install the necessary plugins." Which is not correct, as wgetting the url and then manual copying the http://.......wmv url from the ASX playlist the url delivers, results in gstmmssrc getting invoked to open the file, followed by the following error: "Could not open location; you might not have permission to open the file." Which is somewhat weird, maybe they are doing http referer checking now? Anyways I believe that there also is something going wrong when parsing the ASX playlist, otherwise I would expect the playlist to also give the "Could not open location; you might not have permission to open the file." Error when opened in a standalone totem. I'll attach an example playlist file here.
Created attachment 115688 [details] Example playlist file.
Okay, I've been doing some more research into this and the problem is not in the .ASX parsing. The problem is that the latest totem (2.23.4) removes the get parameters from the URL before passing it on to gstreamer. Using Fedora 9 with totem 2.23.2 (from Fedora 9 updates) opening the following url works fine: mmsh://av.rtl.nl/web/components/actueel/editienl/2008/week33/vr18.Editie_NL_15-08-2008.MiMedia_WM_1500K_V9.wmv?MSWMExt=.asf And using gstreamer debugging I can see the full URL gets passed to mmssrc Using the same Fedora 9 (and thus 100% identical gstreamer) with totem updated to 2.23.4 (from rawhide) and having the rawhide evolution-data-server parallel installed to the F-9 one for deps, opening the same URL, only the following part gets passed to mmssrc: mmsh://av.rtl.nl/web/components/actueel/editienl/2008/week33/vr18.Editie_NL_15-08-2008.MiMedia_WM_1500K_V9.wmv Notice the missing: "?MSWMExt=.asf" at the end. This breaks playback of mmsh video streams.
$ ./test-parser "http://bugzilla.gnome.org/attachment.cgi?id=115688&action=view" ###################### parsing ################ added URI 'http://ad.uk.doubleclick.net/adx/rtlgemist.rtl.nl/rtlgemist;channel=service;progid=rtlgemist;sz=62x90;abr=ec;bw=1537;pos=streamspot;key=videoplayer;vm=service_gemist_home;tile=2;ord=1217602478780' added URI 'mmsh://av.rtl.nl/web/components/service/rtlgemist/snacks/2008/week31/vr_snacks_hermanhelpt.avi.MiMedia_WM_1500K_V9_av_an_t4b4l4r4_712x400.wmv?MSWMExt=.asf' Which version of totem-pl-parser are you using? I'm actually getting errors on the doubleclick URL first, and the expected error on the MMS stream.
As I tried to explain in commment #2, the asx parsing is fine. I can reproduce this bug without using an ASX file at all, if I direct open the second playlist entry from a playlist like the one attached on the cmdline on a stock F-9, like this: totem mmsh://av.rtl.nl/web/components/actueel/editienl/2008/week33/vr18.Editie_NL_15-08-2008.MiMedia_WM_1500K_V9.wmv?MSWMExt=.asf It works fine and if I first do: export GST_DEBUG=mmssrc:5 I see the full URL as it is on the cmdline getting passed to mmssrc . If I now update totem and only totem (totem-pl-parser) to the rawhide versions and to the same, so again I do: export GST_DEBUG=mmssrc:5 totem mmsh://av.rtl.nl/web/components/actueel/editienl/2008/week33/vr18.Editie_NL_15-08-2008.MiMedia_WM_1500K_V9.wmv?MSWMExt=.asf I only see the following part of the URL getting passed to mmssrc: mmsh://av.rtl.nl/web/components/actueel/editienl/2008/week33/vr18.Editie_NL_15-08-2008.MiMedia_WM_1500K_V9.wmv IOW the get parameter: "?MSWMExt=.asf" is no longer reaching mmssrc and without this parameter the mmsh server returns 404 instead of the stream. As all I've done is updated totem and totem-pl-parser (I did this to narrow down the problem I first saw it on a rawhide system). I guess that totem is somewhere removing the get parameter from the URL, as my gstreamer has not changed. To answer your question about the totem-pl-parser version, it is the version from rawhide, which is 2.23.something (I'm not behind the test machine in question atm).
This is a bug in gvfs, see bug 548598. Worked around in Totem 2008-08-20 Bastien Nocera <hadess@hadess.net> * src/backend/bacon-video-widget-gst-0.10.c (bacon_video_widget_open_with_subtitle): * src/backend/bacon-video-widget-xine.c (bacon_video_widget_open_with_subtitle): g_file_get_uri() might lose arguments for some MRLs, so don't use it, and just copy the MRL itself instead (Closes: #545864)