Package: mozilla-mplayer
Version: 3.15-1

This bug seems to still be existant in CVS.

If trying to use the web radio with some real streams on the swedish
public service radio's web site at http://www.sr.se/ the plugin fails.
Basically what the content provider is doing is trying to create a web
radio window with minimal controls according to instructions found on
the following web site:

http://service.real.com/help/library/guides/production8/htmfiles/control.htm

They specify to use the statusbar and controlpanel attributes, which I
guess is ok with real player. However the mplayer plugin makes the
assumption that any window that specifies these attributes is either

1) a pure control window
2) a mix of control and video window

A pure audio window is neither. But still the if-logic in plugin-setup.cpp
marks the window a control window (controlwindow=1) thus disabling audio
output. From what I understand from the code comments, it assumes there
MUST be another instance running - which is not the case here.

My work-around was to comment out a few lines according to the attached
patch. This I assume breaks other web pages, which have separated
control and media windows.

A couple of simpler webpages to demonstrate the problem are attached as
well.

I don't know the proper fix. Upstream is X-Debbugs-Cc:ed, but I'm not
sure if that list is moderated or if this mail will actually get there.
--
/Martin
diff -ur mplayerplug-in-3.15/Source/plugin-setup.cpp 
mplayerplug-in-3.15-patched/Source/plugin-setup.cpp
--- mplayerplug-in-3.15/Source/plugin-setup.cpp 2005-10-28 00:35:13.000000000 
+0200
+++ mplayerplug-in-3.15-patched/Source/plugin-setup.cpp 2005-11-23 
21:52:32.594677924 +0100
@@ -753,13 +753,13 @@
                    || strstr(parameters->argv[i], "1")
                    || strstr(parameters->argv[i], "all")
                    || strstr(parameters->argv[i], "statusfield")
-                   || strstr(parameters->argv[i], "statusbar")
+/*                 || strstr(parameters->argv[i], "statusbar")*/
                    || strstr(parameters->argv[i], "statuspanel")
                    || strstr(parameters->argv[i], "playbutton")
                    || strstr(parameters->argv[i], "volumeslider")
                    || strstr(parameters->argv[i], "stopbutton")
                    || strstr(parameters->argv[i], "positionslider")
-                   || strstr(parameters->argv[i], "controlpanel")) {
+/*                 || strstr(parameters->argv[i], "controlpanel")*/) {
                    instance->controlwindow = 1;
                } else {
                    instance->controlwindow = 0;

Reply via email to