From: Christophe Gisquet Date: Sun, 15 Jun 2014 10:07:16 +0000 (+0200) Subject: huffyuvdec: swap code blocks X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=9dc17919777a637aae0cf69949c55d8186e928ce;p=ffmpeg 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 --- diff --git a/libavcodec/huffyuvdec.c b/libavcodec/huffyuvdec.c index bc9d038dced..c069d00b4ed 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)