Chris Rankin escribió:
Hi,

This patch has killed the sound on World of Warcraft. Instead, I now get 
silence and a stream of
errors like this:

err:dsound:DSOUND_CalcPlayPosition Bad length in CalcPlayPosition!
err:dsound:DSOUND_CalcPlayPosition Bad length in CalcPlayPosition!
err:dsound:DSOUND_CalcPlayPosition Bad length in CalcPlayPosition!
err:dsound:DSOUND_CalcPlayPosition Bad length in CalcPlayPosition!
err:dsound:DSOUND_CalcPlayPosition Bad length in CalcPlayPosition!
err:dsound:DSOUND_CalcPlayPosition Bad length in CalcPlayPosition!
err:dsound:DSOUND_CalcPlayPosition Bad length in CalcPlayPosition!
err:dsound:DSOUND_CalcPlayPosition Bad length in CalcPlayPosition!
err:dsound:DSOUND_CalcPlayPosition Bad length in CalcPlayPosition!
err:dsound:DSOUND_CalcPlayPosition Bad length in CalcPlayPosition!
err:dsound:DSOUND_CalcPlayPosition Bad length in CalcPlayPosition!
err:dsound:DSOUND_CalcPlayPosition Bad length in CalcPlayPosition!
err:dsound:DSOUND_CalcPlayPosition Bad length in CalcPlayPosition!

The following change makes the sound work again without error messages, but 
there is still a brief
burst of sound/noise before the music starts properly:

$ cvswine diff dlls/dsound/buffer.c
Index: dlls/dsound/buffer.c
===================================================================
RCS file: /home/wine/wine/dlls/dsound/buffer.c,v
retrieving revision 1.70
diff -u -r1.70 buffer.c
--- dlls/dsound/buffer.c        22 Jun 2007 12:37:22 -0000      1.70
+++ dlls/dsound/buffer.c        25 Jun 2007 19:08:34 -0000
@@ -442,15 +442,15 @@
        pmix *= This->pwfx->nBlockAlign;
TRACE("this back-offset=%d\n", pmix);
-
+#if 0
        /* sanity */
        if(pmix > This->buflen){
                ERR("Bad length in CalcPlayPosition!\n");
                return 0;
        }
-
+#endif
        /* subtract from our last mixed position */
-       if (bplay < pmix) bplay += This->buflen; /* wraparound */
+       while (bplay < pmix) bplay += This->buflen; /* wraparound */
        bplay -= pmix;
/* check for lead-in */


Cheers,
Chris



        
        
                
___________________________________________________________ New Yahoo! Mail is the ultimate force in competitive emailing. Find out more at the Yahoo! Mail Championships. Plus: play games and win prizes. http://uk.rd.yahoo.com/evt=44106/*http://mail.yahoo.net/uk
You might try the patch with the title "DSOUND: recover from mismatch between time spanned by primary buffer being longer than the one spanned by secondary buffer", which I sent along with some other patches today. It looks somewhat similar to the one you sent.

Alex Villacís Lasso

--
perl -e '$x=2.4;print sprintf("%.0f + %.0f = %.0f\n",$x,$x,$x+$x);'



Reply via email to