[FFmpeg-devel] [PATCH 15/16] vmdaudio: remove unnecessary fields from VmdAudioContext and use the corresponding AVCodecContext fields instead.

Kostya kostya.shishkov
Wed Feb 23 20:02:32 CET 2011


On Wed, Feb 23, 2011 at 01:11:12PM -0500, Justin Ruggles wrote:
> ---
>  libavcodec/vmdav.c |   20 ++++++++------------
>  1 files changed, 8 insertions(+), 12 deletions(-)
> 

> diff --git a/libavcodec/vmdav.c b/libavcodec/vmdav.c
> index bd71ae4..88f674a 100644
> --- a/libavcodec/vmdav.c
> +++ b/libavcodec/vmdav.c
> @@ -421,9 +421,6 @@ static av_cold int vmdvideo_decode_end(AVCodecContext *avctx)
>  typedef struct VmdAudioContext {
>      AVCodecContext *avctx;
>      int out_bps;
> -    int channels;
> -    int bits;
> -    int block_align;
>      int predictors[2];
>  } VmdAudioContext;
>  
> @@ -448,14 +445,13 @@ static av_cold int vmdaudio_decode_init(AVCodecContext *avctx)
>      VmdAudioContext *s = avctx->priv_data;
>  
>      s->avctx = avctx;
> -    s->channels = avctx->channels;
> -    s->bits = avctx->bits_per_coded_sample;
> -    s->block_align = avctx->block_align;
>      avctx->sample_fmt = AV_SAMPLE_FMT_S16;
>      s->out_bps = av_get_bits_per_sample_fmt(avctx->sample_fmt) >> 3;
>  
> -    av_log(s->avctx, AV_LOG_DEBUG, "%d channels, %d bits/sample, block align = %d, sample rate = %d\n",
> -            s->channels, s->bits, s->block_align, avctx->sample_rate);
> +    av_log(avctx, AV_LOG_DEBUG, "%d channels, %d bits/sample, "
> +           "block align = %d, sample rate = %d\n",
> +           avctx->channels, avctx->bits_per_coded_sample, avctx->block_align,
> +           avctx->sample_rate);
>  
>      return 0;
>  }
> @@ -482,14 +478,14 @@ static int vmdaudio_loadsound(VmdAudioContext *s, unsigned char *data,
>      const uint8_t *buf, int silent_chunks, int data_size)
>  {
>      int i;
> -    int silent_size = s->block_align * silent_chunks * s->out_bps;
> +    int silent_size = s->avctx->block_align * silent_chunks * s->out_bps;
>  
>      if (silent_chunks) {
>          memset(data, 0, silent_size);
>          data += silent_size;
>      }
> -    if (s->bits == 16)
> -        vmdaudio_decode_audio(s, data, buf, data_size, s->channels == 2);
> +    if (s->avctx->bits_per_coded_sample == 16)
> +        vmdaudio_decode_audio(s, data, buf, data_size, s->avctx->channels == 2);
>      else {
>          /* copy the data but convert it to signed */
>          for (i = 0; i < data_size; i++){
> @@ -537,7 +533,7 @@ static int vmdaudio_decode_frame(AVCodecContext *avctx,
>      }
>  
>      /* ensure output buffer is large enough */
> -    if (*data_size < (s->block_align*silent_chunks + buf_size) * s->out_bps)
> +    if (*data_size < (avctx->block_align*silent_chunks + buf_size) * s->out_bps)
>          return -1;
>  
>      *data_size = vmdaudio_loadsound(s, output_samples, buf, silent_chunks, buf_size);

looks ok



More information about the ffmpeg-devel mailing list