]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
Move eatgq blocks array from the stack to the codec context and make sure
authorreimar <reimar@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Fri, 22 May 2009 18:39:00 +0000 (18:39 +0000)
committerreimar <reimar@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Fri, 22 May 2009 18:39:00 +0000 (18:39 +0000)
it is aligned as necessary for DSPContext's idct_put.
Just aligning it on the stack would have been possible but less reliable
and without any real benefit.

git-svn-id: file:///var/local/repositories/ffmpeg/trunk@18896 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavcodec/eatgq.c

index a854d5f4f8b4d826da5086c7ac6aa84950299d82..3c8be15911f1b797b5c016ae30b10293ab18b51f 100644 (file)
@@ -42,6 +42,7 @@ typedef struct TgqContext {
     int width,height;
     ScanTable scantable;
     int qtable[64];
+    DECLARE_ALIGNED_16(DCTELEM, block[6][64]);
 } TgqContext;
 
 static av_cold int tgq_decode_init(AVCodecContext *avctx){
@@ -144,7 +145,6 @@ static void tgq_decode_mb(TgqContext *s, int mb_y, int mb_x, const uint8_t **bs,
     int mode;
     int i;
     int8_t dc[6];
-    DCTELEM block[6][64];
 
     mode = bytestream_get_byte(bs);
     if (mode>buf_end-*bs) {
@@ -156,8 +156,8 @@ static void tgq_decode_mb(TgqContext *s, int mb_y, int mb_x, const uint8_t **bs,
         GetBitContext gb;
         init_get_bits(&gb, *bs, mode*8);
         for(i=0; i<6; i++)
-            tgq_decode_block(s, block[i], &gb);
-        tgq_idct_put_mb(s, block, mb_x, mb_y);
+            tgq_decode_block(s, s->block[i], &gb);
+        tgq_idct_put_mb(s, s->block, mb_x, mb_y);
     }else{
         if (mode==3) {
             memset(dc, (*bs)[0], 4);