[libav-devel] [PATCH 6/7] shorten: do not modify samples pointer when interleaving

Kostya Shishkov kostya.shishkov at gmail.com
Thu Nov 10 16:56:56 CET 2011


On Thu, Nov 10, 2011 at 10:44:58AM -0500, Justin Ruggles wrote:
> ---
>  libavcodec/shorten.c |    7 ++++---
>  1 files changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/libavcodec/shorten.c b/libavcodec/shorten.c
> index f510bcc..da36bd5 100644
> --- a/libavcodec/shorten.c
> +++ b/libavcodec/shorten.c
> @@ -252,12 +252,13 @@ static int decode_wave_header(AVCodecContext *avctx, const uint8_t *header,
>      return 0;
>  }
>  
> -static int16_t * interleave_buffer(int16_t *samples, int nchan, int blocksize, int32_t **buffer) {
> +static void interleave_buffer(int16_t *samples, int nchan, int blocksize,
> +                              int32_t **buffer)
> +{
>      int i, chan;
>      for (i=0; i<blocksize; i++)
>          for (chan=0; chan < nchan; chan++)
>              *samples++ = av_clip_int16(buffer[chan][i]);
> -    return samples;
>  }
>  
>  static const int fixed_coeffs[3][3] = {
> @@ -576,7 +577,7 @@ static int shorten_decode_frame(AVCodecContext *avctx,
>                      av_log(avctx, AV_LOG_ERROR, "Output buffer is too small\n");
>                      return AVERROR(EINVAL);
>                  }
> -                samples = interleave_buffer(samples, s->channels, s->blocksize, s->decoded);
> +                interleave_buffer(samples, s->channels, s->blocksize, s->decoded);
>                  *data_size = out_size;
>              }
>          }
> -- 

looks OK


More information about the libav-devel mailing list