libavcodec/ffv1enc: Add option to select the quantization table

Sponsored-by: Sovereign Tech Fund
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
master
Michael Niedermayer 2 months ago
parent 81a360a5ed
commit d0927ed0a8
No known key found for this signature in database
GPG Key ID: B18E8928B3948D64
  1. 1
      libavcodec/ffv1.h
  2. 4
      libavcodec/ffv1enc.c

@ -138,6 +138,7 @@ typedef struct FFV1Context {
int intra;
int key_frame_ok;
int context_model;
int qtable;
int bits_per_raw_sample;
int packed_at_lsb;

@ -728,7 +728,7 @@ static av_cold int encode_init(AVCodecContext *avctx)
for (i = 0; i < MAX_QUANT_TABLE_SIZE; i++) {
s->quant_table_count = 2;
if (s->bits_per_raw_sample <= 8) {
if ((s->qtable == -1 && s->bits_per_raw_sample <= 8) || s->qtable == 1) {
s->quant_tables[0][0][i]= quant11[i];
s->quant_tables[0][1][i]= 11*quant11[i];
s->quant_tables[0][2][i]= 11*11*quant11[i];
@ -1289,6 +1289,8 @@ static const AVOption options[] = {
{ .i64 = 1 }, INT_MIN, INT_MAX, VE, .unit = "coder" },
{ "context", "Context model", OFFSET(context_model), AV_OPT_TYPE_INT,
{ .i64 = 0 }, 0, 1, VE },
{ "qtable", "Quantization table", OFFSET(qtable), AV_OPT_TYPE_INT,
{ .i64 = -1 }, -1, 2, VE },
{ NULL }
};

Loading…
Cancel
Save