changeset 9272:bb2fa003a336 libavcodec

Make ipvideo_decode_block array constant, compile-time initialized instead of initializing it each time the decoder is initialized.
author reimar
date Sun, 29 Mar 2009 17:15:42 +0000
parents 527759ed54fb
children 42c63846b321
files interplayvideo.c
diffstat 1 files changed, 10 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/interplayvideo.c	Sun Mar 29 14:42:52 2009 +0000
+++ b/interplayvideo.c	Sun Mar 29 17:15:42 2009 +0000
@@ -778,7 +778,16 @@
     return 0;
 }
 
-static int (*ipvideo_decode_block[16])(IpvideoContext *s);
+static int (* const ipvideo_decode_block[])(IpvideoContext *s) = {
+    ipvideo_decode_block_opcode_0x0, ipvideo_decode_block_opcode_0x1,
+    ipvideo_decode_block_opcode_0x2, ipvideo_decode_block_opcode_0x3,
+    ipvideo_decode_block_opcode_0x4, ipvideo_decode_block_opcode_0x5,
+    ipvideo_decode_block_opcode_0x6, ipvideo_decode_block_opcode_0x7,
+    ipvideo_decode_block_opcode_0x8, ipvideo_decode_block_opcode_0x9,
+    ipvideo_decode_block_opcode_0xA, ipvideo_decode_block_opcode_0xB,
+    ipvideo_decode_block_opcode_0xC, ipvideo_decode_block_opcode_0xD,
+    ipvideo_decode_block_opcode_0xE, ipvideo_decode_block_opcode_0xF,
+};
 
 static void ipvideo_decode_opcodes(IpvideoContext *s)
 {
@@ -852,24 +861,6 @@
     /* decoding map contains 4 bits of information per 8x8 block */
     s->decoding_map_size = avctx->width * avctx->height / (8 * 8 * 2);
 
-    /* assign block decode functions */
-    ipvideo_decode_block[0x0] = ipvideo_decode_block_opcode_0x0;
-    ipvideo_decode_block[0x1] = ipvideo_decode_block_opcode_0x1;
-    ipvideo_decode_block[0x2] = ipvideo_decode_block_opcode_0x2;
-    ipvideo_decode_block[0x3] = ipvideo_decode_block_opcode_0x3;
-    ipvideo_decode_block[0x4] = ipvideo_decode_block_opcode_0x4;
-    ipvideo_decode_block[0x5] = ipvideo_decode_block_opcode_0x5;
-    ipvideo_decode_block[0x6] = ipvideo_decode_block_opcode_0x6;
-    ipvideo_decode_block[0x7] = ipvideo_decode_block_opcode_0x7;
-    ipvideo_decode_block[0x8] = ipvideo_decode_block_opcode_0x8;
-    ipvideo_decode_block[0x9] = ipvideo_decode_block_opcode_0x9;
-    ipvideo_decode_block[0xA] = ipvideo_decode_block_opcode_0xA;
-    ipvideo_decode_block[0xB] = ipvideo_decode_block_opcode_0xB;
-    ipvideo_decode_block[0xC] = ipvideo_decode_block_opcode_0xC;
-    ipvideo_decode_block[0xD] = ipvideo_decode_block_opcode_0xD;
-    ipvideo_decode_block[0xE] = ipvideo_decode_block_opcode_0xE;
-    ipvideo_decode_block[0xF] = ipvideo_decode_block_opcode_0xF;
-
     s->current_frame.data[0] = s->last_frame.data[0] =
     s->second_last_frame.data[0] = NULL;