[FFmpeg-cvslog] jpeg2000dec: initialize static data just once

Janne Grunau git at videolan.org
Wed May 8 11:54:01 CEST 2013


ffmpeg | branch: master | Janne Grunau <janne-libav at jannau.net> | Mon May  6 22:42:27 2013 +0200| [70f9661542a581dfe93b636b1c55b5558e4a4e3c] | committer: Janne Grunau

jpeg2000dec: initialize static data just once

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=70f9661542a581dfe93b636b1c55b5558e4a4e3c
---

 libavcodec/jpeg2000dec.c |   32 ++++++++++++++++++--------------
 1 file changed, 18 insertions(+), 14 deletions(-)

diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c
index 97e706a..11211d3 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)
 };



More information about the ffmpeg-cvslog mailing list