Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-07-24 21:56:46 +0300
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-09-18 02:57:09 +0300
commit943a4581570728b4b1a2bf97e5601e24f3f80404 (patch)
treea5789d5870876975c7104362e1fa2d82e8ffeb25 /libavcodec/smacker.c
parent77c9507253cab75474825be0836dd147dd2ab602 (diff)
avcodec/smacker: Remove redundant check when decoding header trees
When length is zero for a leaf node (which happens iff the Huffman tree consists of one leaf node only), prefix is also automatically zero. Performance impact is negligible: For GCC 9 and the sample from #2425, the time for one call to smka_decode_frame() decreased from 2053758 to 2053671 decicycles; for Clang 9 it went from 1523153 to 1521288. Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Diffstat (limited to 'libavcodec/smacker.c')
-rw-r--r--libavcodec/smacker.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/libavcodec/smacker.c b/libavcodec/smacker.c
index c249ce7514..991622eb0e 100644
--- a/libavcodec/smacker.c
+++ b/libavcodec/smacker.c
@@ -105,13 +105,8 @@ static int smacker_decode_tree(GetBitContext *gb, HuffContext *hc, uint32_t pref
av_log(NULL, AV_LOG_ERROR, "Tree size exceeded!\n");
return AVERROR_INVALIDDATA;
}
- if(length){
- hc->bits[hc->current] = prefix;
- hc->lengths[hc->current] = length;
- } else {
- hc->bits[hc->current] = 0;
- hc->lengths[hc->current] = 0;
- }
+ hc->bits[hc->current] = prefix;
+ hc->lengths[hc->current] = length;
hc->values[hc->current] = get_bits(gb, 8);
hc->current++;
return 0;