aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2024-09-24 23:43:09 +0200
committerMichael Niedermayer <michael@niedermayer.cc>2024-09-25 19:45:28 +0200
commita9c83e43f2fc9128e20851291b0270add1a6b95f (patch)
tree70f1331b6ebb72f9ff9f4aca3f8303dc89b794ad
parent747e1a26afbb2b4eb367dce8ae186f776706f02c (diff)
downloadffmpeg-a9c83e43f2fc9128e20851291b0270add1a6b95f.tar.gz
avcodec/ffv1enc: Fix >8bit context size
Fixes: Ticket5405 Sponsored-by: Sovereign Tech Fund Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r--libavcodec/ffv1enc.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/libavcodec/ffv1enc.c b/libavcodec/ffv1enc.c
index 1c37f61ada..a6f405289e 100644
--- a/libavcodec/ffv1enc.c
+++ b/libavcodec/ffv1enc.c
@@ -724,19 +724,21 @@ static av_cold int encode_init(AVCodecContext *avctx)
s->quant_tables[1][2][i]= 11*11*quant5 [i];
s->quant_tables[1][3][i]= 5*11*11*quant5 [i];
s->quant_tables[1][4][i]= 5*5*11*11*quant5 [i];
+ s->context_count[0] = (11 * 11 * 11 + 1) / 2;
+ s->context_count[1] = (11 * 11 * 5 * 5 * 5 + 1) / 2;
} else {
s->quant_tables[0][0][i]= quant9_10bit[i];
- s->quant_tables[0][1][i]= 11*quant9_10bit[i];
- s->quant_tables[0][2][i]= 11*11*quant9_10bit[i];
+ s->quant_tables[0][1][i]= 9*quant9_10bit[i];
+ s->quant_tables[0][2][i]= 9*9*quant9_10bit[i];
s->quant_tables[1][0][i]= quant9_10bit[i];
- s->quant_tables[1][1][i]= 11*quant9_10bit[i];
- s->quant_tables[1][2][i]= 11*11*quant5_10bit[i];
- s->quant_tables[1][3][i]= 5*11*11*quant5_10bit[i];
- s->quant_tables[1][4][i]= 5*5*11*11*quant5_10bit[i];
+ s->quant_tables[1][1][i]= 9*quant9_10bit[i];
+ s->quant_tables[1][2][i]= 9*9*quant5_10bit[i];
+ s->quant_tables[1][3][i]= 5*9*9*quant5_10bit[i];
+ s->quant_tables[1][4][i]= 5*5*9*9*quant5_10bit[i];
+ s->context_count[0] = (9 * 9 * 9 + 1) / 2;
+ s->context_count[1] = (9 * 9 * 5 * 5 * 5 + 1) / 2;
}
}
- s->context_count[0] = (11 * 11 * 11 + 1) / 2;
- s->context_count[1] = (11 * 11 * 5 * 5 * 5 + 1) / 2;
if ((ret = ff_ffv1_allocate_initial_states(s)) < 0)
return ret;