diff options
author | Andreas Rheinhardt <andreas.rheinhardt@gmail.com> | 2021-02-13 11:39:12 +0100 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@gmail.com> | 2021-02-23 10:14:26 +0100 |
commit | 84bb18d4e706882cf6e662b5973fb7ad40457769 (patch) | |
tree | fd9af070dec0a48b5e1507c3a9ac0a35543858ff /libavcodec/scpr3.c | |
parent | cff09fee1f972d857447130e5254cf1f77e97619 (diff) | |
download | ffmpeg-84bb18d4e706882cf6e662b5973fb7ad40457769.tar.gz |
avcodec/scpr3: Avoid code duplication when updating models
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Diffstat (limited to 'libavcodec/scpr3.c')
-rw-r--r-- | libavcodec/scpr3.c | 24 |
1 files changed, 4 insertions, 20 deletions
diff --git a/libavcodec/scpr3.c b/libavcodec/scpr3.c index 1ed764baa1..78c58889cb 100644 --- a/libavcodec/scpr3.c +++ b/libavcodec/scpr3.c @@ -524,32 +524,16 @@ static int update_model1_to_4(PixelModel3 *m, uint32_t val) static int update_model1_to_5(PixelModel3 *m, uint32_t val) { - PixelModel3 n = {0}; int i, size, freqs; uint32_t a; + update_model1_to_4(m, val); size = m->size; - n.size = size; - for (i = 0; i < size; i++) { - n.symbols[i] = m->symbols[i]; - } - AV_QSORT(n.symbols, size, uint8_t, cmpbytes); - size = n.size; - for (i = 0; i < size; i++) { - if (val == n.symbols[i]) { - n.freqs[i] = 100; - n.maxpos = i; - } else { - n.freqs[i] = 50; - } - } a = 256 - size; for (i = 0; i < size; i++, a += freqs) - freqs = n.freqs[i]; - n.type = 5; - n.cntsum = a; - - memcpy(m, &n, sizeof(n)); + freqs = m->freqs[i]; + m->type = 5; + m->cntsum = a; return 0; } |