X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fnellymoserdec.c;h=8976467f61736bcf685d5a17040c1ee85461bfc5;hb=06d01188e94321113684a271f62f6b0f2b818e53;hp=8ed4298fc2bf4fbba683d967c7a5d3af1bd9c90a;hpb=b8cef7be5c6bb2150d82ac64f00adfd2093cc913;p=ffmpeg diff --git a/libavcodec/nellymoserdec.c b/libavcodec/nellymoserdec.c index 8ed4298fc2b..8976467f617 100644 --- a/libavcodec/nellymoserdec.c +++ b/libavcodec/nellymoserdec.c @@ -26,7 +26,7 @@ */ /** - * @file libavcodec/nellymoserdec.c + * @file * The 3 alphanumeric copyright notices are md5summed they are from the original * implementors. The original code is available from http://code.google.com/p/nelly2pcm/ */ @@ -36,6 +36,7 @@ #include "libavutil/random_seed.h" #include "avcodec.h" #include "dsputil.h" +#include "fft.h" #define ALT_BITSTREAM_READER_LE #include "get_bits.h" @@ -43,7 +44,7 @@ typedef struct NellyMoserDecodeContext { AVCodecContext* avctx; - DECLARE_ALIGNED_16(float,float_buf[NELLY_SAMPLES]); + DECLARE_ALIGNED(16, float,float_buf)[NELLY_SAMPLES]; float state[128]; AVLFG random_state; GetBitContext gb; @@ -51,7 +52,7 @@ typedef struct NellyMoserDecodeContext { float scale_bias; DSPContext dsp; FFTContext imdct_ctx; - DECLARE_ALIGNED_16(float,imdct_out[NELLY_BUF_LEN * 2]); + DECLARE_ALIGNED(16, float,imdct_out)[NELLY_BUF_LEN * 2]; } NellyMoserDecodeContext; static void overlap_and_window(NellyMoserDecodeContext *s, float *state, float *audio, float *a_in) @@ -144,7 +145,7 @@ static av_cold int decode_init(AVCodecContext * avctx) { /* Generate overlap window */ if (!ff_sine_128[127]) - ff_sine_window_init(ff_sine_128, 128); + ff_init_ff_sine_windows(7); avctx->sample_fmt = SAMPLE_FMT_S16; avctx->channel_layout = CH_LAYOUT_MONO; @@ -165,21 +166,18 @@ static int decode_tag(AVCodecContext * avctx, if (buf_size < avctx->block_align) return buf_size; - switch (buf_size) { - case 64: // 8000Hz - blocks = 1; break; - case 128: // 11025Hz - blocks = 2; break; - case 192: // 16000Hz - blocks = 3; break; - case 256: // 22050Hz - blocks = 4; break; - case 512: // 44100Hz - blocks = 8; break; - default: - av_log(avctx, AV_LOG_DEBUG, "Tag size %d.\n", buf_size); - return buf_size; + if (buf_size % 64) { + av_log(avctx, AV_LOG_ERROR, "Tag size %d.\n", buf_size); + return buf_size; } + blocks = buf_size / 64; + /* Normal numbers of blocks for sample rates: + * 8000 Hz - 1 + * 11025 Hz - 2 + * 16000 Hz - 3 + * 22050 Hz - 4 + * 44100 Hz - 8 + */ for (i=0 ; ifloat_buf); @@ -199,7 +197,7 @@ static av_cold int decode_end(AVCodecContext * avctx) { AVCodec nellymoser_decoder = { "nellymoser", - CODEC_TYPE_AUDIO, + AVMEDIA_TYPE_AUDIO, CODEC_ID_NELLYMOSER, sizeof(NellyMoserDecodeContext), decode_init,