|
|
|
@ -367,7 +367,7 @@ static av_cold void wmavoice_flush(AVCodecContext *ctx) |
|
|
|
|
static av_cold int wmavoice_decode_init(AVCodecContext *ctx) |
|
|
|
|
{ |
|
|
|
|
static AVOnce init_static_once = AV_ONCE_INIT; |
|
|
|
|
int n, flags, pitch_range, lsp16_flag; |
|
|
|
|
int n, flags, pitch_range, lsp16_flag, ret; |
|
|
|
|
WMAVoiceContext *s = ctx->priv_data; |
|
|
|
|
|
|
|
|
|
ff_thread_once(&init_static_once, wmavoice_init_static_data); |
|
|
|
@ -395,10 +395,11 @@ static av_cold int wmavoice_decode_init(AVCodecContext *ctx) |
|
|
|
|
s->spillover_bitsize = 3 + av_ceil_log2(ctx->block_align); |
|
|
|
|
s->do_apf = flags & 0x1; |
|
|
|
|
if (s->do_apf) { |
|
|
|
|
ff_rdft_init(&s->rdft, 7, DFT_R2C); |
|
|
|
|
ff_rdft_init(&s->irdft, 7, IDFT_C2R); |
|
|
|
|
ff_dct_init(&s->dct, 6, DCT_I); |
|
|
|
|
ff_dct_init(&s->dst, 6, DST_I); |
|
|
|
|
if ((ret = ff_rdft_init(&s->rdft, 7, DFT_R2C)) < 0 || |
|
|
|
|
(ret = ff_rdft_init(&s->irdft, 7, IDFT_C2R)) < 0 || |
|
|
|
|
(ret = ff_dct_init (&s->dct, 6, DCT_I)) < 0 || |
|
|
|
|
(ret = ff_dct_init (&s->dst, 6, DST_I)) < 0) |
|
|
|
|
return ret; |
|
|
|
|
|
|
|
|
|
ff_sine_window_init(s->cos, 256); |
|
|
|
|
memcpy(&s->sin[255], s->cos, 256 * sizeof(s->cos[0])); |
|
|
|
|