diff options
author | Christophe Gisquet <christophe.gisquet@gmail.com> | 2014-06-15 12:07:16 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-06-15 15:13:28 +0200 |
commit | 9dc17919777a637aae0cf69949c55d8186e928ce (patch) | |
tree | 3ae22a25d8f83558c4680fe2a57928d46b71c5d7 | |
parent | 083cd3d1f7715ee3a63305b472cf3824ed481715 (diff) | |
download | ffmpeg-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.c | 10 |
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) |