[FFmpeg-cvslog] r22279 - trunk/libavcodec/indeo5.c

kostya subversion
Sun Mar 7 13:12:43 CET 2010


Author: kostya
Date: Sun Mar  7 13:12:42 2010
New Revision: 22279

Log:
Band quant tables should not be assigned inside band tile loop,
one time is enough.
Patch by Maxim (max_pole, gmx de)

Modified:
   trunk/libavcodec/indeo5.c

Modified: trunk/libavcodec/indeo5.c
==============================================================================
--- trunk/libavcodec/indeo5.c	Sun Mar  7 10:25:57 2010	(r22278)
+++ trunk/libavcodec/indeo5.c	Sun Mar  7 13:12:42 2010	(r22279)
@@ -568,6 +568,18 @@ static int decode_band(IVI5DecContext *c
         return -1;
     }
 
+    if (band->blk_size == 8) {
+        band->intra_base  = &ivi5_base_quant_8x8_intra[band->quant_mat][0];
+        band->inter_base  = &ivi5_base_quant_8x8_inter[band->quant_mat][0];
+        band->intra_scale = &ivi5_scale_quant_8x8_intra[band->quant_mat][0];
+        band->inter_scale = &ivi5_scale_quant_8x8_inter[band->quant_mat][0];
+    } else {
+        band->intra_base  = ivi5_base_quant_4x4_intra;
+        band->inter_base  = ivi5_base_quant_4x4_inter;
+        band->intra_scale = ivi5_scale_quant_4x4_intra;
+        band->inter_scale = ivi5_scale_quant_4x4_inter;
+    }
+
     band->rv_map = &ctx->rvmap_tabs[band->rvmap_sel];
 
     /* apply corrections to the selected rvmap table if present */
@@ -593,18 +605,6 @@ static int decode_band(IVI5DecContext *c
             if (result < 0)
                 break;
 
-            if (band->blk_size == 8) {
-                band->intra_base  = &ivi5_base_quant_8x8_intra[band->quant_mat][0];
-                band->inter_base  = &ivi5_base_quant_8x8_inter[band->quant_mat][0];
-                band->intra_scale = &ivi5_scale_quant_8x8_intra[band->quant_mat][0];
-                band->inter_scale = &ivi5_scale_quant_8x8_inter[band->quant_mat][0];
-            } else {
-                band->intra_base  = ivi5_base_quant_4x4_intra;
-                band->inter_base  = ivi5_base_quant_4x4_inter;
-                band->intra_scale = ivi5_scale_quant_4x4_intra;
-                band->inter_scale = ivi5_scale_quant_4x4_inter;
-            }
-
             result = ff_ivi_decode_blocks(&ctx->gb, band, tile);
             if (result < 0) {
                 av_log(avctx, AV_LOG_ERROR, "Corrupted blocks data encountered!\n");



More information about the ffmpeg-cvslog mailing list