From 8aa29f063c8d082bb01a3f36b804b902b884ef69 Mon Sep 17 00:00:00 2001 From: Reimar Döffinger Date: Tue, 27 Nov 2012 20:48:17 +0100 Subject: atrac3: do not use init_static_data to init VLC data. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It would be called while registering the codec, which means it needlessly wastes memory when it is never used. Instead do the work when first opening the codec. Signed-off-by: Reimar Döffinger --- libavcodec/atrac3.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'libavcodec/atrac3.c') diff --git a/libavcodec/atrac3.c b/libavcodec/atrac3.c index b14fd466e3..052bef0e1c 100644 --- a/libavcodec/atrac3.c +++ b/libavcodec/atrac3.c @@ -837,7 +837,7 @@ static int atrac3_decode_frame(AVCodecContext *avctx, void *data, return avctx->block_align; } -static void atrac3_init_static_data(AVCodec *codec) +static void atrac3_init_static_data(void) { int i; @@ -864,6 +864,7 @@ static void atrac3_init_static_data(AVCodec *codec) static av_cold int atrac3_decode_init(AVCodecContext *avctx) { + static int static_init_done; int i, ret; int version, delay, samples_per_frame, frame_factor; const uint8_t *edata_ptr = avctx->extradata; @@ -874,6 +875,10 @@ static av_cold int atrac3_decode_init(AVCodecContext *avctx) return AVERROR(EINVAL); } + if (!static_init_done) + atrac3_init_static_data(); + static_init_done = 1; + /* Take care of the codec-specific extradata. */ if (avctx->extradata_size == 14) { /* Parse the extradata, WAV format */ @@ -1003,7 +1008,6 @@ AVCodec ff_atrac3_decoder = { .id = AV_CODEC_ID_ATRAC3, .priv_data_size = sizeof(ATRAC3Context), .init = atrac3_decode_init, - .init_static_data = atrac3_init_static_data, .close = atrac3_decode_close, .decode = atrac3_decode_frame, .capabilities = CODEC_CAP_SUBFRAMES | CODEC_CAP_DR1, -- cgit v1.2.3