http://bugs.winehq.org/show_bug.cgi?id=24869
Summary: Worms Armageddon: Dismissing post-mission frontend dialogues after sound has finished playing causes a freeze Product: Wine Version: unspecified Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: quartz AssignedTo: wine-bugs@winehq.org ReportedBy: thecybershadow@gmail.com
Created an attachment (id=31476) --> (http://bugs.winehq.org/attachment.cgi?id=31476) Patch
Worms Armageddon will display a dialog before beginning a training mission (describing the tasks to be performed), or after a mission or training mission (displaying the player's results). This dialog is accompanied with a sound, which is streamed from a .wav file using DirectShow.
If the dialog is dismissed after the sound has stopped playing, the game freezes.
The reason for the freeze appears to be as follows:
When the dialog is dismissed, the game will attempt to stop the sound, whether it's still playing or not. Part of its procedure to stop the sound involves pausing the graph (using IMediaControl::Pause()). After that, it calls IMediaControl::GetState(INFINITE, ...), which locks up the game.
The freeze occurs in Wine's DSoundRender_GetState - it will wait indefinitely for the state_change event to be signalled - which will never happen. The reason for this seems to be that the intended implementation of DSoundRender_Pause is to put the filter into an intermediary state, and complete the transition when a media sample is received (in DSoundRender_Receive). However, since the end of file has been reached, a new sample is never received, and the filter get stuck into an intermediary state.
The attached patch seems to fix the problem at hand, but I'm not certain about its correctness.
http://bugs.winehq.org/show_bug.cgi?id=24869
--- Comment #1 from Dmitry Timoshkov dmitry@codeweavers.com 2010-10-24 00:56:46 CDT --- Please specify Wine version you are using (in the Version field above).
http://bugs.winehq.org/show_bug.cgi?id=24869
Vladimir Panteleev thecybershadow@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|unspecified |1.3.5
--- Comment #2 from Vladimir Panteleev thecybershadow@gmail.com 2010-10-24 00:57:41 CDT --- Latest git :P
http://bugs.winehq.org/show_bug.cgi?id=24869
--- Comment #3 from Vladimir Panteleev thecybershadow@gmail.com 2010-11-04 08:15:55 CDT --- The bug does not seem to manifest itself in Wine 1.3.6, probably due to the gstreamer changes. Are bugs in quartz still worth fixing?
Also, I sent an RFC for the patch to wine-devel, but didn't get any replies...
http://bugs.winehq.org/show_bug.cgi?id=24869
Aric Stewart aric@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |aric@codeweavers.com, | |m.b.lankhorst@gmail.com
http://bugs.winehq.org/show_bug.cgi?id=24869
--- Comment #4 from Aric Stewart aric@codeweavers.com 2010-11-08 11:32:25 CST --- there is quite a bit of work being done here. It would be worth continuing to retest.
http://bugs.winehq.org/show_bug.cgi?id=24869
Jerome Leclanche adys.wh@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |adys.wh@gmail.com
--- Comment #5 from Jerome Leclanche adys.wh@gmail.com 2011-11-02 16:40:29 CDT --- Please retest in wine-1.3.31.
http://bugs.winehq.org/show_bug.cgi?id=24869
Murray Colpman muzerakascooby@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |muzerakascooby@gmail.com
--- Comment #6 from Murray Colpman muzerakascooby@gmail.com 2011-11-15 17:47:34 CST --- The bug does not occur in the latest git as of this comment.
http://bugs.winehq.org/show_bug.cgi?id=24869
Jerome Leclanche adys.wh@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |FIXED
--- Comment #7 from Jerome Leclanche adys.wh@gmail.com 2011-11-15 17:59:08 CST --- Fixed
http://bugs.winehq.org/show_bug.cgi?id=24869
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #8 from Alexandre Julliard julliard@winehq.org 2011-11-18 13:03:35 CST --- Closing bugs fixed in 1.3.33.