[FFmpeg-devel] [PATCH 12/21] avcodec/smacker: Remove redundant check when decoding header trees

Paul B Mahol onemda at gmail.com
Sat Aug 1 17:17:13 EEST 2020


probably fine

On 8/1/20, Andreas Rheinhardt <andreas.rheinhardt at gmail.com> wrote:
> 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.
>
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
> ---
>  libavcodec/smacker.c | 9 ++-------
>  1 file 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;
> --
> 2.20.1
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list