Re: WINMM problem with Half-Life

2004-01-23 Thread Mike McCormack
Here you go.

wine --debugmsg +mciavi,+winmm,+seh hl.exe  hl-winmm.log

Pressed ^C after it hung.

Mike

Eric Pouech wrote:

yup. can you post a -debugmsg +mciavi trace
A+


hl-winmm.log.gz
Description: Unix tar archive


Re: WINMM problem with Half-Life

2004-01-22 Thread Eric Pouech
Well, it sort of does... but with that patch, sometimes westuck in the 
critical section.  I guess the question is why does dwEventCount count 
further than expected?
yup. can you post a -debugmsg +mciavi trace
A+



Re: WINMM problem with Half-Life

2004-01-21 Thread Mike McCormack


Mike McCormack wrote:
Eric Pouech wrote:

Any ideas?


as an ugly hack, does setting the dwEventCount in the WINE_MCIAVI 
struct as volatile help ? (private_mciavi.h).


No, that didn't help, the one below does:
Well, it sort of does... but with that patch, sometimes westuck in the 
critical section.  I guess the question is why does dwEventCount count 
further than expected?

Mike



WINMM problem with Half-Life

2004-01-20 Thread Mike McCormack
Hi Eric,

After implementing the ICCVID codec, the intro AVI in Half-Life plays 
nicely, however when it finishes, WinMM gets stuck in a loop while 
cleaning up in MCIAVI_mciPlay.

I think it's trying to wait for the sound to finish, however I'm not 
sure how to fix the problem.  The patch below makes it work, but I'm not 
sure what bad side effects it will have...

Any ideas?

Mike
Index: dlls/winmm/mciavi/mciavi.c
===
RCS file: /cvstrees/crossover/office/wine/dlls/winmm/mciavi/mciavi.c,v
retrieving revision 1.1.1.10
diff -u -r1.1.1.10 mciavi.c
--- dlls/winmm/mciavi/mciavi.c  10 Jan 2004 00:11:58 -  1.1.1.10
+++ dlls/winmm/mciavi/mciavi.c  20 Jan 2004 16:22:23 -
@@ -503,12 +503,14 @@
 }
 
 if (wma-lpWaveFormat) {
+#if 0
while (wma-dwEventCount != nHdr - 1)
 {
 LeaveCriticalSection(wma-cs);
 Sleep(100);
 EnterCriticalSection(wma-cs);
 }
+#endif
 
/* just to get rid of some race conditions between play, stop and pause */
waveOutReset(wma-hWave);


Re: WINMM problem with Half-Life

2004-01-20 Thread Eric Pouech
Mike McCormack a écrit :
Hi Eric,

After implementing the ICCVID codec, the intro AVI in Half-Life plays 
nicely, however when it finishes, WinMM gets stuck in a loop while 
cleaning up in MCIAVI_mciPlay.

I think it's trying to wait for the sound to finish, however I'm not 
sure how to fix the problem.  The patch below makes it work, but I'm not 
sure what bad side effects it will have...

Any ideas?
as an ugly hack, does setting the dwEventCount in the WINE_MCIAVI struct 
as volatile help ? (private_mciavi.h).

A+




Re: WINMM problem with Half-Life

2004-01-20 Thread Mike McCormack
Eric Pouech wrote:

Any ideas?
as an ugly hack, does setting the dwEventCount in the WINE_MCIAVI struct 
as volatile help ? (private_mciavi.h).
No, that didn't help, the one below does:

Mike

diff -u -r1.1.1.10 mciavi.c
--- dlls/winmm/mciavi/mciavi.c  10 Jan 2004 00:11:58 -  1.1.1.10
+++ dlls/winmm/mciavi/mciavi.c  21 Jan 2004 02:51:15 -
@@ -503,7 +503,7 @@
 }
 if (wma-lpWaveFormat) {
-   while (wma-dwEventCount != nHdr - 1)
+   while (wma-dwEventCount  (nHdr - 1) )
 {
 LeaveCriticalSection(wma-cs);
 Sleep(100);