aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/h264.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2006-10-17 22:18:29 +0000
committerMichael Niedermayer <michaelni@gmx.at>2006-10-17 22:18:29 +0000
commiteb73bf723d7657bd5bbaaeb63dd9b77f21048a87 (patch)
treea550d53f9f65d7432de5ec4403365a07e7515396 /libavcodec/h264.c
parent5b9d79bd770608073a3245f50269ad8c36d7ef5d (diff)
downloadffmpeg-eb73bf723d7657bd5bbaaeb63dd9b77f21048a87.tar.gz
x86 asm version of the decode significance loop (not 8x8) of decode_residual() 5% faster decode_residual() on P3
Originally committed as revision 6724 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/h264.c')
-rw-r--r--libavcodec/h264.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index 37e373f1ef..14bc99f338 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -6116,14 +6116,18 @@ static int decode_cabac_residual( H264Context *h, DCTELEM *block, int cat, int n
break; \
} \
} \
+ }\
+ if( last == max_coeff -1 ) {\
+ index[coeff_count++] = last;\
}
const uint8_t *sig_off = significant_coeff_flag_offset_8x8[MB_FIELD];
DECODE_SIGNIFICANCE( 63, sig_off[last], last_coeff_flag_offset_8x8[last] );
} else {
+#ifdef ARCH_X86
+ coeff_count= decode_significance_x86(&h->cabac, max_coeff, significant_coeff_ctx_base, index);
+#else
DECODE_SIGNIFICANCE( max_coeff - 1, last, last );
- }
- if( last == max_coeff -1 ) {
- index[coeff_count++] = last;
+#endif
}
assert(coeff_count > 0);