[PATCH v2 3/3] dsound: Pass sample count to the normfunction.

Andrew Eikum aeikum at codeweavers.com
Wed Mar 1 10:37:54 CST 2017


Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>

On Wed, Mar 01, 2017 at 04:01:00PM +0000, Huw Davies wrote:
> Signed-off-by: Huw Davies <huw at codeweavers.com>
> ---
>  dlls/dsound/dsound_convert.c | 27 ++++++++++++---------------
>  dlls/dsound/mixer.c          |  2 +-
>  2 files changed, 13 insertions(+), 16 deletions(-)
> 
> diff --git a/dlls/dsound/dsound_convert.c b/dlls/dsound/dsound_convert.c
> index 0c9a34b..6887bae 100644
> --- a/dlls/dsound/dsound_convert.c
> +++ b/dlls/dsound/dsound_convert.c
> @@ -286,10 +286,10 @@ void mixieee32(float *src, float *dst, unsigned samples)
>          *(dst++) += *(src++);
>  }
>  
> -static void norm8(float *src, unsigned char *dst, unsigned len)
> +static void norm8(float *src, unsigned char *dst, unsigned samples)
>  {
> -    TRACE("%p - %p %d\n", src, dst, len);
> -    while (len--)
> +    TRACE("%p - %p %d\n", src, dst, samples);
> +    while (samples--)
>      {
>          *dst = f_to_8(*src);
>          ++dst;
> @@ -297,11 +297,10 @@ static void norm8(float *src, unsigned char *dst, unsigned len)
>      }
>  }
>  
> -static void norm16(float *src, SHORT *dst, unsigned len)
> +static void norm16(float *src, SHORT *dst, unsigned samples)
>  {
> -    TRACE("%p - %p %d\n", src, dst, len);
> -    len /= 2;
> -    while (len--)
> +    TRACE("%p - %p %d\n", src, dst, samples);
> +    while (samples--)
>      {
>          *dst = f_to_16(*src);
>          ++dst;
> @@ -309,11 +308,10 @@ static void norm16(float *src, SHORT *dst, unsigned len)
>      }
>  }
>  
> -static void norm24(float *src, BYTE *dst, unsigned len)
> +static void norm24(float *src, BYTE *dst, unsigned samples)
>  {
> -    TRACE("%p - %p %d\n", src, dst, len);
> -    len /= 3;
> -    while (len--)
> +    TRACE("%p - %p %d\n", src, dst, samples);
> +    while (samples--)
>      {
>          LONG t = f_to_24(*src);
>          dst[0] = (t >> 8) & 0xFF;
> @@ -324,11 +322,10 @@ static void norm24(float *src, BYTE *dst, unsigned len)
>      }
>  }
>  
> -static void norm32(float *src, INT *dst, unsigned len)
> +static void norm32(float *src, INT *dst, unsigned samples)
>  {
> -    TRACE("%p - %p %d\n", src, dst, len);
> -    len /= 4;
> -    while (len--)
> +    TRACE("%p - %p %d\n", src, dst, samples);
> +    while (samples--)
>      {
>          *dst = f_to_32(*src);
>          ++dst;
> diff --git a/dlls/dsound/mixer.c b/dlls/dsound/mixer.c
> index 049a345..1180594 100644
> --- a/dlls/dsound/mixer.c
> +++ b/dlls/dsound/mixer.c
> @@ -716,7 +716,7 @@ static void DSOUND_PerformMix(DirectSoundDevice *device)
>  			/* do the mixing */
>  			DSOUND_MixToPrimary(device, (float*)device->buffer, frames, &all_stopped);
>  
> -			device->normfunction(device->buffer, buffer, frames * block);
> +			device->normfunction(device->buffer, buffer, frames * device->pwfx->nChannels);
>  		}
>  
>  		hr = IAudioRenderClient_ReleaseBuffer(device->render, frames, 0);
> -- 
> 2.10.2
> 
> 
> 



More information about the wine-patches mailing list