Merge remote-tracking branch 'qatar/master'
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 9 Jan 2014 19:56:49 +0000 (20:56 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 9 Jan 2014 19:58:03 +0000 (20:58 +0100)
* qatar/master:
  ATRAC3+ decoder

Conflicts:
Changelog
configure
libavcodec/atrac3plus.c
libavcodec/atrac3plus.h
libavcodec/atrac3plus_data.h
libavcodec/atrac3plusdec.c
libavcodec/atrac3plusdsp.c
libavcodec/version.h

See: 2e1fb96af36348479e14aa85f445915ea09e70fa
Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/atrac3plus.c
libavcodec/atrac3plus.h
libavcodec/atrac3plusdec.c
libavcodec/atrac3plusdsp.c
libavcodec/version.h

diff --combined libavcodec/atrac3plus.c
@@@ -3,20 -3,20 +3,20 @@@
   *
   * Copyright (c) 2010-2013 Maxim Poliakovski
   *
 - * This file is part of Libav.
 + * This file is part of FFmpeg.
   *
 - * Libav is free software; you can redistribute it and/or
 + * FFmpeg is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or (at your option) any later version.
   *
 - * Libav is distributed in the hope that it will be useful,
 + * FFmpeg is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   * Lesser General Public License for more details.
   *
   * You should have received a copy of the GNU Lesser General Public
 - * License along with Libav; if not, write to the Free Software
 + * License along with FFmpeg; if not, write to the Free Software
   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
   */
  
@@@ -80,7 -80,7 +80,7 @@@ static av_cold void build_canonical_huf
      *tab_offset += 1 << max_len;
  }
  
 -av_cold void ff_atrac3p_init_vlcs(AVCodec *codec)
 +av_cold void ff_atrac3p_init_vlcs(void)
  {
      int i, wl_vlc_offs, ct_vlc_offs, sf_vlc_offs, tab_offset;
  
@@@ -247,6 -247,7 +247,7 @@@ static int num_coded_units(GetBitContex
   *
   * @param[in,out] ctx           ptr to the channel unit context
   * @param[in,out] chan          ptr to the channel parameters
+  * @param[in]     wtab_idx      index of the table of weights
   * @param[in]     avctx         ptr to the AVCodecContext
   * @return result code: 0 = OK, otherwise - error code
   */
diff --combined libavcodec/atrac3plus.h
@@@ -3,20 -3,20 +3,20 @@@
   *
   * Copyright (c) 2010-2013 Maxim Poliakovski
   *
 - * This file is part of Libav.
 + * This file is part of FFmpeg.
   *
 - * Libav is free software; you can redistribute it and/or
 + * FFmpeg is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or (at your option) any later version.
   *
 - * Libav is distributed in the hope that it will be useful,
 + * FFmpeg is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   * Lesser General Public License for more details.
   *
   * You should have received a copy of the GNU Lesser General Public
 - * License along with Libav; if not, write to the Free Software
 + * License along with FFmpeg; if not, write to the Free Software
   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
   */
  
@@@ -155,8 -155,10 +155,8 @@@ typedef struct Atrac3pChanUnitCtx 
  
  /**
   * Initialize VLC tables for bitstream parsing.
 - *
 - * @param[in]   codec    ptr to the AVCodec
   */
 -void ff_atrac3p_init_vlcs(AVCodec *codec);
 +void ff_atrac3p_init_vlcs(void);
  
  /**
   * Decode bitstream data of a channel unit.
   * @param[in]     avctx         ptr to the AVCodecContext
   * @return result code: 0 = OK, otherwise - error code
   */
 -int  ff_atrac3p_decode_channel_unit(GetBitContext *gb, Atrac3pChanUnitCtx *ctx,
 -                                    int num_channels, AVCodecContext *avctx);
 +int ff_atrac3p_decode_channel_unit(GetBitContext *gb, Atrac3pChanUnitCtx *ctx,
 +                                   int num_channels, AVCodecContext *avctx);
  
  /**
   * Initialize IMDCT transform.
@@@ -202,7 -204,7 +202,7 @@@ void ff_atrac3p_generate_tones(Atrac3pC
   * @param[in]      ch_index    which channel to process
   * @param[in,out]  sp          ptr to channel spectrum to process
   * @param[in]      rng_index   indicates which RNG table to use
-  * @param[in]      sb          which subband to process
+  * @param[in]      sb_num      which subband to process
   */
  void ff_atrac3p_power_compensation(Atrac3pChanUnitCtx *ctx, int ch_index,
                                     float *sp, int rng_index, int sb_num);
@@@ -3,20 -3,20 +3,20 @@@
   *
   * Copyright (c) 2010-2013 Maxim Poliakovski
   *
 - * This file is part of Libav.
 + * This file is part of FFmpeg.
   *
 - * Libav is free software; you can redistribute it and/or
 + * FFmpeg is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or (at your option) any later version.
   *
 - * Libav is distributed in the hope that it will be useful,
 + * FFmpeg is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   * Lesser General Public License for more details.
   *
   * You should have received a copy of the GNU Lesser General Public
 - * License along with Libav; if not, write to the Free Software
 + * License along with FFmpeg; if not, write to the Free Software
   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
   */
  
@@@ -135,8 -135,11 +135,13 @@@ static av_cold int atrac3p_decode_init(
      ATRAC3PContext *ctx = avctx->priv_data;
      int i, ch, ret;
  
+     if (!avctx->block_align) {
+         av_log(avctx, AV_LOG_ERROR, "block_align is not set\n");
+         return AVERROR(EINVAL);
+     }
 +    ff_atrac3p_init_vlcs();
 +
      avpriv_float_dsp_init(&ctx->fdsp, avctx->flags & CODEC_FLAG_BITEXACT);
  
      /* initialize IPQF */
@@@ -372,12 -375,13 +377,12 @@@ static int atrac3p_decode_frame(AVCodec
  }
  
  AVCodec ff_atrac3p_decoder = {
 -    .name             = "atrac3plus",
 -    .long_name        = NULL_IF_CONFIG_SMALL("ATRAC3+ (Adaptive TRansform Acoustic Coding 3+)"),
 -    .type             = AVMEDIA_TYPE_AUDIO,
 -    .id               = AV_CODEC_ID_ATRAC3P,
 -    .priv_data_size   = sizeof(ATRAC3PContext),
 -    .init             = atrac3p_decode_init,
 -    .init_static_data = ff_atrac3p_init_vlcs,
 -    .close            = atrac3p_decode_close,
 -    .decode           = atrac3p_decode_frame,
 +    .name           = "atrac3plus",
 +    .long_name      = NULL_IF_CONFIG_SMALL("ATRAC3+ (Adaptive TRansform Acoustic Coding 3+)"),
 +    .type           = AVMEDIA_TYPE_AUDIO,
 +    .id             = AV_CODEC_ID_ATRAC3P,
 +    .priv_data_size = sizeof(ATRAC3PContext),
 +    .init           = atrac3p_decode_init,
 +    .close          = atrac3p_decode_close,
 +    .decode         = atrac3p_decode_frame,
  };
@@@ -3,20 -3,20 +3,20 @@@
   *
   * Copyright (c) 2010-2013 Maxim Poliakovski
   *
 - * This file is part of Libav.
 + * This file is part of FFmpeg.
   *
 - * Libav is free software; you can redistribute it and/or
 + * FFmpeg is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or (at your option) any later version.
   *
 - * Libav is distributed in the hope that it will be useful,
 + * FFmpeg is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   * Lesser General Public License for more details.
   *
   * You should have received a copy of the GNU Lesser General Public
 - * License along with Libav; if not, write to the Free Software
 + * License along with FFmpeg; if not, write to the Free Software
   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
   */
  
@@@ -116,6 -116,7 +116,7 @@@ av_cold void ff_atrac3p_init_wave_synth
   *  @param[in]    synth_param   ptr to common synthesis parameters
   *  @param[in]    waves_info    parameters for each sine wave
   *  @param[in]    envelope      envelope data for all waves in a group
+  *  @param[in]    phase_shift   flag indicates 180° phase shift
   *  @param[in]    reg_offset    region offset for trimming envelope data
   *  @param[out]   out           receives sythesized data
   */
diff --combined libavcodec/version.h
@@@ -1,19 -1,19 +1,19 @@@
  /*
   *
 - * This file is part of Libav.
 + * This file is part of FFmpeg.
   *
 - * Libav is free software; you can redistribute it and/or
 + * FFmpeg is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or (at your option) any later version.
   *
 - * Libav is distributed in the hope that it will be useful,
 + * FFmpeg is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   * Lesser General Public License for more details.
   *
   * You should have received a copy of the GNU Lesser General Public
 - * License along with Libav; if not, write to the Free Software
 + * License along with FFmpeg; if not, write to the Free Software
   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
   */
  
@@@ -29,8 -29,8 +29,8 @@@
  #include "libavutil/version.h"
  
  #define LIBAVCODEC_VERSION_MAJOR 55
 -#define LIBAVCODEC_VERSION_MINOR 32
 -#define LIBAVCODEC_VERSION_MICRO  0
 +#define LIBAVCODEC_VERSION_MINOR  47
- #define LIBAVCODEC_VERSION_MICRO 100
++#define LIBAVCODEC_VERSION_MICRO 101
  
  #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
                                                 LIBAVCODEC_VERSION_MINOR, \
  #ifndef FF_API_REQUEST_CHANNELS
  #define FF_API_REQUEST_CHANNELS (LIBAVCODEC_VERSION_MAJOR < 56)
  #endif
 +#ifndef FF_API_OLD_DECODE_AUDIO
 +#define FF_API_OLD_DECODE_AUDIO (LIBAVCODEC_VERSION_MAJOR < 56)
 +#endif
 +#ifndef FF_API_OLD_ENCODE_AUDIO
 +#define FF_API_OLD_ENCODE_AUDIO (LIBAVCODEC_VERSION_MAJOR < 56)
 +#endif
 +#ifndef FF_API_OLD_ENCODE_VIDEO
 +#define FF_API_OLD_ENCODE_VIDEO (LIBAVCODEC_VERSION_MAJOR < 56)
 +#endif
 +#ifndef FF_API_CODEC_ID
 +#define FF_API_CODEC_ID          (LIBAVCODEC_VERSION_MAJOR < 56)
 +#endif
 +#ifndef FF_API_AUDIO_CONVERT
 +#define FF_API_AUDIO_CONVERT     (LIBAVCODEC_VERSION_MAJOR < 56)
 +#endif
 +#ifndef FF_API_AVCODEC_RESAMPLE
 +#define FF_API_AVCODEC_RESAMPLE  FF_API_AUDIO_CONVERT
 +#endif
  #ifndef FF_API_DEINTERLACE
  #define FF_API_DEINTERLACE       (LIBAVCODEC_VERSION_MAJOR < 56)
  #endif