summaryrefslogtreecommitdiff
path: root/libavcodec/atrac3.c
diff options
context:
space:
mode:
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>2012-11-27 20:48:17 +0100
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>2012-11-28 16:41:48 +0100
commit8aa29f063c8d082bb01a3f36b804b902b884ef69 (patch)
tree90eac5d21381beca2613a7ffb98f515acec9f046 /libavcodec/atrac3.c
parent23101ceaa226f6ea22141a4d5fc167fed832074c (diff)
atrac3: do not use init_static_data to init VLC data.
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 <Reimar.Doeffinger@gmx.de>
Diffstat (limited to 'libavcodec/atrac3.c')
-rw-r--r--libavcodec/atrac3.c8
1 files changed, 6 insertions, 2 deletions
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,