On Fri, 21 Sep 2012 11:23:38 -0400, Justin Ruggles <[email protected]> 
wrote:
> ---
>  libavcodec/mace.c |   32 +++++++++++++++-----------------
>  1 files changed, 15 insertions(+), 17 deletions(-)
> 
> diff --git a/libavcodec/mace.c b/libavcodec/mace.c
> index 9d07180..8fef839 100644
> --- a/libavcodec/mace.c
> +++ b/libavcodec/mace.c
> @@ -187,9 +187,7 @@ static int16_t read_table(ChannelData *chd, uint8_t val, 
> int tab_idx)
>      return current;
>  }
>  
> -static void chomp3(ChannelData *chd, int16_t *output, uint8_t val,
> -                   int tab_idx,
> -                   uint32_t numChannels)
> +static void chomp3(ChannelData *chd, int16_t *output, uint8_t val, int 
> tab_idx)
>  {
>  
>      int16_t current = read_table(chd, val, tab_idx);
> @@ -200,9 +198,7 @@ static void chomp3(ChannelData *chd, int16_t *output, 
> uint8_t val,
>      *output = QT_8S_2_16S(current);
>  }
>  
> -static void chomp6(ChannelData *chd, int16_t *output, uint8_t val,
> -                   int tab_idx,
> -                   uint32_t numChannels)
> +static void chomp6(ChannelData *chd, int16_t *output, uint8_t val, int 
> tab_idx)
>  {
>      int16_t current = read_table(chd, val, tab_idx);
>  
> @@ -222,8 +218,8 @@ static void chomp6(ChannelData *chd, int16_t *output, 
> uint8_t val,
>  
>      output[0] = QT_8S_2_16S(chd->previous + chd->prev2 -
>                              ((chd->prev2-current) >> 2));
> -    output[numChannels] = QT_8S_2_16S(chd->previous + current +
> -                                      ((chd->prev2-current) >> 2));
> +    output[1] = QT_8S_2_16S(chd->previous + current +
> +                            ((chd->prev2-current) >> 2));
>      chd->prev2 = chd->previous;
>      chd->previous = current;
>  }
> @@ -234,7 +230,7 @@ static av_cold int mace_decode_init(AVCodecContext * 
> avctx)
>  
>      if (avctx->channels > 2)
>          return -1;
> -    avctx->sample_fmt = AV_SAMPLE_FMT_S16;
> +    avctx->sample_fmt = AV_SAMPLE_FMT_S16P;
>  
>      avcodec_get_frame_defaults(&ctx->frame);
>      avctx->coded_frame = &ctx->frame;
> @@ -247,7 +243,7 @@ static int mace_decode_frame(AVCodecContext *avctx, void 
> *data,
>  {
>      const uint8_t *buf = avpkt->data;
>      int buf_size = avpkt->size;
> -    int16_t *samples;
> +    int16_t **samples;
>      MACEContext *ctx = avctx->priv_data;
>      int i, j, k, l, ret;
>      int is_mace3 = (avctx->codec_id == AV_CODEC_ID_MACE3);
> @@ -258,10 +254,10 @@ static int mace_decode_frame(AVCodecContext *avctx, 
> void *data,
>          av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
>          return ret;
>      }
> -    samples = (int16_t *)ctx->frame.data[0];
> +    samples = (int16_t **)ctx->frame.extended_data;
>  
>      for(i = 0; i < avctx->channels; i++) {
> -        int16_t *output = samples + i;
> +        int16_t *output = samples[i];
>  
>          for (j=0; j < buf_size / (avctx->channels << is_mace3); j++)
>              for (k=0; k < (1 << is_mace3); k++) {
> @@ -273,13 +269,11 @@ static int mace_decode_frame(AVCodecContext *avctx, 
> void *data,
>  
>                  for (l=0; l < 3; l++) {
>                      if (is_mace3)
> -                        chomp3(&ctx->chd[i], output, val[1][l], l,
> -                               avctx->channels);
> +                        chomp3(&ctx->chd[i], output, val[1][l], l);
>                      else
> -                        chomp6(&ctx->chd[i], output, val[0][l], l,
> -                               avctx->channels);
> +                        chomp6(&ctx->chd[i], output, val[0][l], l);
>  
> -                    output += avctx->channels << (1-is_mace3);
> +                    output += 1 << (1-is_mace3);
>                  }
>              }
>      }
> @@ -299,6 +293,8 @@ AVCodec ff_mace3_decoder = {
>      .decode         = mace_decode_frame,
>      .capabilities   = CODEC_CAP_DR1,
>      .long_name      = NULL_IF_CONFIG_SMALL("MACE (Macintosh Audio 
> Compression/Expansion) 3:1"),
> +    .sample_fmts    = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16P,
> +                                                      AV_SAMPLE_FMT_NONE },
>  };
>  
>  AVCodec ff_mace6_decoder = {
> @@ -310,4 +306,6 @@ AVCodec ff_mace6_decoder = {
>      .decode         = mace_decode_frame,
>      .capabilities   = CODEC_CAP_DR1,
>      .long_name      = NULL_IF_CONFIG_SMALL("MACE (Macintosh Audio 
> Compression/Expansion) 6:1"),
> +    .sample_fmts    = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16P,
> +                                                      AV_SAMPLE_FMT_NONE },
>  };
> -- 
> 1.7.1
>

Looks ok. 

-- 
Anton Khirnov
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to