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;