summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2021-02-13 11:39:12 +0100
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2021-02-23 10:14:26 +0100
commit84bb18d4e706882cf6e662b5973fb7ad40457769 (patch)
treefd9af070dec0a48b5e1507c3a9ac0a35543858ff
parentcff09fee1f972d857447130e5254cf1f77e97619 (diff)
avcodec/scpr3: Avoid code duplication when updating models
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
-rw-r--r--libavcodec/scpr3.c24
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;
}