[FFmpeg-cvslog] H264: factor if() out of coef decoding loop of decode_cabac_residual_internal()

Michael Niedermayer git at videolan.org
Sun Apr 10 22:42:38 CEST 2011


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sun Apr 10 19:53:43 2011 +0200| [179106ed7890600956f95b42279c4c45cda27f7e] | committer: Michael Niedermayer

H264: factor if() out of coef decoding loop of decode_cabac_residual_internal()
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

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

 libavcodec/h264_cabac.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/libavcodec/h264_cabac.c b/libavcodec/h264_cabac.c
index b9c1c62..7873c28 100644
--- a/libavcodec/h264_cabac.c
+++ b/libavcodec/h264_cabac.c
@@ -1101,12 +1101,12 @@ static av_always_inline void decode_cabac_residual_internal( H264Context *h, DCT
         }
     }
 
-    do {
-        uint8_t *ctx = coeff_abs_level1_ctx[node_ctx] + abs_level_m1_ctx_base;
-
-        int j= scantable[index[--coeff_count]];
 
 #define STORE_BLOCK(type) \
+    do {\
+        uint8_t *ctx = coeff_abs_level1_ctx[node_ctx] + abs_level_m1_ctx_base;\
+\
+        int j= scantable[index[--coeff_count]];\
         if( get_cabac( CC, ctx ) == 0 ) { \
             node_ctx = coeff_abs_level_transition[0][node_ctx]; \
             if( is_dc ) { \
@@ -1141,14 +1141,14 @@ static av_always_inline void decode_cabac_residual_internal( H264Context *h, DCT
             }else{ \
                 ((type*)block)[j] = ((int)(get_cabac_bypass_sign( CC, -coeff_abs ) * qmul[j] + 32)) >> 6; \
             } \
-        }
+        }\
+    } while( coeff_count );
 
         if (h->pixel_shift) {
             STORE_BLOCK(int32_t)
         } else {
             STORE_BLOCK(int16_t)
         }
-    } while( coeff_count );
 #ifdef CABAC_ON_STACK
             h->cabac.range     = cc.range     ;
             h->cabac.low       = cc.low       ;



More information about the ffmpeg-cvslog mailing list