From 18dbbff525dd03ed4faefadbe08f5916b9e23666 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Mon, 31 Aug 2020 19:18:03 +0200 Subject: [PATCH] avcodec/magicyuv: Unify qsort comparison functions Up until now, there were three comparison functions depending upon bitness. But they all are actually the same, namely a lexical ordering: entry a > entry b iff a.len > b.len or a.len == b.len and a.sym < b.sym. So they can be easily unified. Reviewed-by: Paul B Mahol Signed-off-by: Andreas Rheinhardt --- libavcodec/magicyuv.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/libavcodec/magicyuv.c b/libavcodec/magicyuv.c index f630464162..5578374429 100644 --- a/libavcodec/magicyuv.c +++ b/libavcodec/magicyuv.c @@ -77,18 +77,6 @@ typedef struct MagicYUVContext { } MagicYUVContext; static int huff_cmp_len(const void *a, const void *b) -{ - const HuffEntry *aa = a, *bb = b; - return (aa->len - bb->len) * 256 + bb->sym - aa->sym; -} - -static int huff_cmp_len10(const void *a, const void *b) -{ - const HuffEntry *aa = a, *bb = b; - return (aa->len - bb->len) * 1024 + bb->sym - aa->sym; -} - -static int huff_cmp_len12(const void *a, const void *b) { const HuffEntry *aa = a, *bb = b; return (aa->len - bb->len) * 4096 + bb->sym - aa->sym; @@ -106,7 +94,7 @@ static int huff_build10(VLC *vlc, uint8_t *len) if (len[i] == 0 || len[i] > 32) return AVERROR_INVALIDDATA; } - AV_QSORT(he, 1024, HuffEntry, huff_cmp_len10); + AV_QSORT(he, 1024, HuffEntry, huff_cmp_len); code = 1; for (i = 1023; i >= 0; i--) { @@ -133,7 +121,7 @@ static int huff_build12(VLC *vlc, uint8_t *len) if (len[i] == 0 || len[i] > 32) return AVERROR_INVALIDDATA; } - AV_QSORT(he, 4096, HuffEntry, huff_cmp_len12); + AV_QSORT(he, 4096, HuffEntry, huff_cmp_len); code = 1; for (i = 4095; i >= 0; i--) {