aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJanne Grunau <janne-libav@jannau.net>2013-05-06 22:42:27 +0200
committerJanne Grunau <janne-libav@jannau.net>2013-05-06 22:45:47 +0200
commit70f9661542a581dfe93b636b1c55b5558e4a4e3c (patch)
tree17ccfc66e6c0d6104922a3d0476740f5eace0d8f
parent45a1694fde251ee56e23aec073d73172c00aa470 (diff)
downloadffmpeg-70f9661542a581dfe93b636b1c55b5558e4a4e3c.tar.gz
jpeg2000dec: initialize static data just once
-rw-r--r--libavcodec/jpeg2000dec.c32
1 files changed, 18 insertions, 14 deletions
diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c
index 97e706a020..11211d3c8e 100644
--- a/libavcodec/jpeg2000dec.c
+++ b/libavcodec/jpeg2000dec.c
@@ -1264,8 +1264,6 @@ static int jpeg2000_decode_frame(AVCodecContext *avctx, void *data,
// reduction factor, i.e number of resolution levels to skip
s->reduction_factor = s->lowres;
- ff_jpeg2000_init_tier1_luts();
-
if (s->buf_end - s->buf < 2)
return AVERROR(EINVAL);
@@ -1308,6 +1306,11 @@ end:
return ret ? ret : s->buf - s->buf_start;
}
+static void jpeg2000_init_static_data(AVCodec *codec)
+{
+ ff_jpeg2000_init_tier1_luts();
+}
+
#define OFFSET(x) offsetof(Jpeg2000DecoderContext, x)
#define VD AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_DECODING_PARAM
@@ -1334,16 +1337,17 @@ static const AVClass class = {
};
AVCodec ff_jpeg2000_decoder = {
- .name = "jpeg2000",
- .long_name = NULL_IF_CONFIG_SMALL("JPEG 2000"),
- .type = AVMEDIA_TYPE_VIDEO,
- .id = AV_CODEC_ID_JPEG2000,
- .capabilities = CODEC_CAP_FRAME_THREADS,
- .priv_data_size = sizeof(Jpeg2000DecoderContext),
- .decode = jpeg2000_decode_frame,
- .priv_class = &class,
- .pix_fmts = (enum PixelFormat[]) { AV_PIX_FMT_XYZ12,
- AV_PIX_FMT_GRAY8,
- -1 },
- .profiles = NULL_IF_CONFIG_SMALL(profiles)
+ .name = "jpeg2000",
+ .long_name = NULL_IF_CONFIG_SMALL("JPEG 2000"),
+ .type = AVMEDIA_TYPE_VIDEO,
+ .id = AV_CODEC_ID_JPEG2000,
+ .capabilities = CODEC_CAP_FRAME_THREADS,
+ .priv_data_size = sizeof(Jpeg2000DecoderContext),
+ .init_static_data = jpeg2000_init_static_data,
+ .decode = jpeg2000_decode_frame,
+ .priv_class = &class,
+ .pix_fmts = (enum PixelFormat[]) { AV_PIX_FMT_XYZ12,
+ AV_PIX_FMT_GRAY8,
+ -1 },
+ .profiles = NULL_IF_CONFIG_SMALL(profiles)
};