[SPAM] Problem with patch "dsound: Simplify mixing by removing remixing support, and fix its waveout breakage"

Alex Villací­s Lasso a_villacis at palosanto.com
Mon Jun 25 17:11:18 CDT 2007


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);'




More information about the wine-devel mailing list