aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristophe Gisquet <christophe.gisquet@gmail.com>2014-06-15 12:07:16 +0200
committerMichael Niedermayer <michaelni@gmx.at>2014-06-15 15:13:28 +0200
commit9dc17919777a637aae0cf69949c55d8186e928ce (patch)
tree3ae22a25d8f83558c4680fe2a57928d46b71c5d7
parent083cd3d1f7715ee3a63305b472cf3824ed481715 (diff)
downloadffmpeg-9dc17919777a637aae0cf69949c55d8186e928ce.tar.gz
huffyuvdec: swap code blocks
The effect is not really deterministic, as it seems to be a combination on x86_64 of fewer registers used, different jump offsets and, for all archs, of likely branches. Speedup is around 15%. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavcodec/huffyuvdec.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/libavcodec/huffyuvdec.c b/libavcodec/huffyuvdec.c
index bc9d038dce..c069d00b4e 100644
--- a/libavcodec/huffyuvdec.c
+++ b/libavcodec/huffyuvdec.c
@@ -591,17 +591,17 @@ static av_cold int decode_init_thread_copy(AVCodecContext *avctx)
unsigned int index = SHOW_UBITS(name, gb, bits); \
int code, n = dtable[index][1]; \
\
- if (n>0) { \
- code = dtable[index][0]; \
- OP(dst0, dst1, code); \
- LAST_SKIP_BITS(name, gb, n); \
- } else { \
+ if (n<=0) { \
int nb_bits; \
VLC_INTERN(dst0, table1, gb, name, bits, max_depth); \
\
UPDATE_CACHE(re, gb); \
index = SHOW_UBITS(name, gb, bits); \
VLC_INTERN(dst1, table2, gb, name, bits, max_depth); \
+ } else { \
+ code = dtable[index][0]; \
+ OP(dst0, dst1, code); \
+ LAST_SKIP_BITS(name, gb, n); \
} \
} while (0)