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;