Browse Source

lavc: Deprecate avctx.{inter,intra}_quant_bias

They are used by dnxhd and mpegvideo_enc exclusively, move them to codec
private options instead.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
tags/n2.8
Vittorio Giovara 10 years ago
parent
commit
910247f172
8 changed files with 40 additions and 16 deletions
  1. +6
    -8
      libavcodec/avcodec.h
  2. +13
    -5
      libavcodec/dnxhdenc.c
  3. +1
    -0
      libavcodec/dnxhdenc.h
  4. +4
    -0
      libavcodec/internal.h
  5. +2
    -0
      libavcodec/mpegvideo.h
  6. +8
    -2
      libavcodec/mpegvideo_enc.c
  7. +2
    -0
      libavcodec/options_table.h
  8. +4
    -1
      libavcodec/version.h

+ 6
- 8
libavcodec/avcodec.h View File

@@ -1563,20 +1563,18 @@ typedef struct AVCodecContext {
*/ */
int me_range; int me_range;


#if FF_API_QUANT_BIAS
/** /**
* intra quantizer bias
* - encoding: Set by user.
* - decoding: unused
* @deprecated use encoder private option instead
*/ */
int intra_quant_bias;
attribute_deprecated int intra_quant_bias;
#define FF_DEFAULT_QUANT_BIAS 999999 #define FF_DEFAULT_QUANT_BIAS 999999


/** /**
* inter quantizer bias
* - encoding: Set by user.
* - decoding: unused
* @deprecated use encoder private option instead
*/ */
int inter_quant_bias;
attribute_deprecated int inter_quant_bias;
#endif


/** /**
* slice flags * slice flags


+ 13
- 5
libavcodec/dnxhdenc.c View File

@@ -45,6 +45,9 @@
static const AVOption options[] = { static const AVOption options[] = {
{ "nitris_compat", "encode with Avid Nitris compatibility", { "nitris_compat", "encode with Avid Nitris compatibility",
offsetof(DNXHDEncContext, nitris_compat), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE }, offsetof(DNXHDEncContext, nitris_compat), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE },
{ "ibias", "intra quant bias",
offsetof(DNXHDEncContext, intra_quant_bias), AV_OPT_TYPE_INT,
{ .i64 = FF_DEFAULT_QUANT_BIAS }, INT_MIN, INT_MAX, VE },
{ NULL } { NULL }
}; };


@@ -205,14 +208,14 @@ static av_cold int dnxhd_init_qmat(DNXHDEncContext *ctx, int lbias, int cbias)
weight_matrix[j] = ctx->cid_table->luma_weight[i]; weight_matrix[j] = ctx->cid_table->luma_weight[i];
} }
ff_convert_matrix(&ctx->m, ctx->qmatrix_l, ctx->qmatrix_l16, ff_convert_matrix(&ctx->m, ctx->qmatrix_l, ctx->qmatrix_l16,
weight_matrix, ctx->m.intra_quant_bias, 1,
weight_matrix, ctx->intra_quant_bias, 1,
ctx->m.avctx->qmax, 1); ctx->m.avctx->qmax, 1);
for (i = 1; i < 64; i++) { for (i = 1; i < 64; i++) {
int j = ctx->m.idsp.idct_permutation[ff_zigzag_direct[i]]; int j = ctx->m.idsp.idct_permutation[ff_zigzag_direct[i]];
weight_matrix[j] = ctx->cid_table->chroma_weight[i]; weight_matrix[j] = ctx->cid_table->chroma_weight[i];
} }
ff_convert_matrix(&ctx->m, ctx->qmatrix_c, ctx->qmatrix_c16, ff_convert_matrix(&ctx->m, ctx->qmatrix_c, ctx->qmatrix_c16,
weight_matrix, ctx->m.intra_quant_bias, 1,
weight_matrix, ctx->intra_quant_bias, 1,
ctx->m.avctx->qmax, 1); ctx->m.avctx->qmax, 1);


for (qscale = 1; qscale <= ctx->m.avctx->qmax; qscale++) { for (qscale = 1; qscale <= ctx->m.avctx->qmax; qscale++) {
@@ -339,10 +342,15 @@ static av_cold int dnxhd_encode_init(AVCodecContext *avctx)


ctx->m.mb_num = ctx->m.mb_height * ctx->m.mb_width; ctx->m.mb_num = ctx->m.mb_height * ctx->m.mb_width;


if (avctx->intra_quant_bias != FF_DEFAULT_QUANT_BIAS)
ctx->m.intra_quant_bias = avctx->intra_quant_bias;
#if FF_API_QUANT_BIAS
FF_DISABLE_DEPRECATION_WARNINGS
if (ctx->intra_quant_bias == FF_DEFAULT_QUANT_BIAS &&
avctx->intra_quant_bias != FF_DEFAULT_QUANT_BIAS)
ctx->intra_quant_bias = avctx->intra_quant_bias;
FF_ENABLE_DEPRECATION_WARNINGS
#endif
// XXX tune lbias/cbias // XXX tune lbias/cbias
if ((ret = dnxhd_init_qmat(ctx, ctx->m.intra_quant_bias, 0)) < 0)
if ((ret = dnxhd_init_qmat(ctx, ctx->intra_quant_bias, 0)) < 0)
return ret; return ret;


/* Avid Nitris hardware decoder requires a minimum amount of padding /* Avid Nitris hardware decoder requires a minimum amount of padding


+ 1
- 0
libavcodec/dnxhdenc.h View File

@@ -63,6 +63,7 @@ typedef struct DNXHDEncContext {


int nitris_compat; int nitris_compat;
unsigned min_padding; unsigned min_padding;
int intra_quant_bias;


DECLARE_ALIGNED(16, int16_t, blocks)[8][64]; DECLARE_ALIGNED(16, int16_t, blocks)[8][64];




+ 4
- 0
libavcodec/internal.h View File

@@ -61,6 +61,10 @@
#endif #endif




#if !FF_API_QUANT_BIAS
#define FF_DEFAULT_QUANT_BIAS 999999
#endif

#define FF_SANE_NB_CHANNELS 63U #define FF_SANE_NB_CHANNELS 63U


#define FF_SIGNBIT(x) (x >> CHAR_BIT * sizeof(x) - 1) #define FF_SIGNBIT(x) (x >> CHAR_BIT * sizeof(x) - 1)


+ 2
- 0
libavcodec/mpegvideo.h View File

@@ -571,6 +571,8 @@ typedef struct MpegEncContext {
{"border_mask", "increase the quantizer for macroblocks close to borders", FF_MPV_OFFSET(border_masking), AV_OPT_TYPE_FLOAT, {.dbl = 0 }, -FLT_MAX, FLT_MAX, FF_MPV_OPT_FLAGS}, \ {"border_mask", "increase the quantizer for macroblocks close to borders", FF_MPV_OFFSET(border_masking), AV_OPT_TYPE_FLOAT, {.dbl = 0 }, -FLT_MAX, FLT_MAX, FF_MPV_OPT_FLAGS}, \
{"lmin", "minimum Lagrange factor (VBR)", FF_MPV_OFFSET(lmin), AV_OPT_TYPE_INT, {.i64 = 2*FF_QP2LAMBDA }, 0, INT_MAX, FF_MPV_OPT_FLAGS }, \ {"lmin", "minimum Lagrange factor (VBR)", FF_MPV_OFFSET(lmin), AV_OPT_TYPE_INT, {.i64 = 2*FF_QP2LAMBDA }, 0, INT_MAX, FF_MPV_OPT_FLAGS }, \
{"lmax", "maximum Lagrange factor (VBR)", FF_MPV_OFFSET(lmax), AV_OPT_TYPE_INT, {.i64 = 31*FF_QP2LAMBDA }, 0, INT_MAX, FF_MPV_OPT_FLAGS }, \ {"lmax", "maximum Lagrange factor (VBR)", FF_MPV_OFFSET(lmax), AV_OPT_TYPE_INT, {.i64 = 31*FF_QP2LAMBDA }, 0, INT_MAX, FF_MPV_OPT_FLAGS }, \
{"ibias", "intra quant bias", FF_MPV_OFFSET(intra_quant_bias), AV_OPT_TYPE_INT, {.i64 = FF_DEFAULT_QUANT_BIAS }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS }, \
{"pbias", "inter quant bias", FF_MPV_OFFSET(inter_quant_bias), AV_OPT_TYPE_INT, {.i64 = FF_DEFAULT_QUANT_BIAS }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS }, \


extern const AVOption ff_mpv_generic_options[]; extern const AVOption ff_mpv_generic_options[];




+ 8
- 2
libavcodec/mpegvideo_enc.c View File

@@ -542,10 +542,16 @@ av_cold int ff_mpv_encode_init(AVCodecContext *avctx)
s->inter_quant_bias = -(1 << (QUANT_BIAS_SHIFT - 2)); s->inter_quant_bias = -(1 << (QUANT_BIAS_SHIFT - 2));
} }


if (avctx->intra_quant_bias != FF_DEFAULT_QUANT_BIAS)
#if FF_API_QUANT_BIAS
FF_DISABLE_DEPRECATION_WARNINGS
if (s->intra_quant_bias == FF_DEFAULT_QUANT_BIAS &&
avctx->intra_quant_bias != FF_DEFAULT_QUANT_BIAS)
s->intra_quant_bias = avctx->intra_quant_bias; s->intra_quant_bias = avctx->intra_quant_bias;
if (avctx->inter_quant_bias != FF_DEFAULT_QUANT_BIAS)
if (s->inter_quant_bias == FF_DEFAULT_QUANT_BIAS &&
avctx->inter_quant_bias != FF_DEFAULT_QUANT_BIAS)
s->inter_quant_bias = avctx->inter_quant_bias; s->inter_quant_bias = avctx->inter_quant_bias;
FF_ENABLE_DEPRECATION_WARNINGS
#endif


if (avctx->codec_id == AV_CODEC_ID_MPEG4 && if (avctx->codec_id == AV_CODEC_ID_MPEG4 &&
s->avctx->time_base.den > (1 << 16) - 1) { s->avctx->time_base.den > (1 << 16) - 1) {


+ 2
- 0
libavcodec/options_table.h View File

@@ -290,8 +290,10 @@ static const AVOption avcodec_options[] = {
{"dtg_active_format", NULL, OFFSET(dtg_active_format), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX}, {"dtg_active_format", NULL, OFFSET(dtg_active_format), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX},
#endif #endif
{"me_range", "limit motion vectors range (1023 for DivX player)", OFFSET(me_range), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E}, {"me_range", "limit motion vectors range (1023 for DivX player)", OFFSET(me_range), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E},
#if FF_API_QUANT_BIAS
{"ibias", "intra quant bias", OFFSET(intra_quant_bias), AV_OPT_TYPE_INT, {.i64 = FF_DEFAULT_QUANT_BIAS }, INT_MIN, INT_MAX, V|E}, {"ibias", "intra quant bias", OFFSET(intra_quant_bias), AV_OPT_TYPE_INT, {.i64 = FF_DEFAULT_QUANT_BIAS }, INT_MIN, INT_MAX, V|E},
{"pbias", "inter quant bias", OFFSET(inter_quant_bias), AV_OPT_TYPE_INT, {.i64 = FF_DEFAULT_QUANT_BIAS }, INT_MIN, INT_MAX, V|E}, {"pbias", "inter quant bias", OFFSET(inter_quant_bias), AV_OPT_TYPE_INT, {.i64 = FF_DEFAULT_QUANT_BIAS }, INT_MIN, INT_MAX, V|E},
#endif
{"global_quality", NULL, OFFSET(global_quality), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|A|E}, {"global_quality", NULL, OFFSET(global_quality), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|A|E},
{"coder", NULL, OFFSET(coder_type), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E, "coder"}, {"coder", NULL, OFFSET(coder_type), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E, "coder"},
{"vlc", "variable length coder / Huffman coder", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CODER_TYPE_VLC }, INT_MIN, INT_MAX, V|E, "coder"}, {"vlc", "variable length coder / Huffman coder", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CODER_TYPE_VLC }, INT_MIN, INT_MAX, V|E, "coder"},


+ 4
- 1
libavcodec/version.h View File

@@ -30,7 +30,7 @@


#define LIBAVCODEC_VERSION_MAJOR 56 #define LIBAVCODEC_VERSION_MAJOR 56
#define LIBAVCODEC_VERSION_MINOR 31 #define LIBAVCODEC_VERSION_MINOR 31
#define LIBAVCODEC_VERSION_MICRO 0
#define LIBAVCODEC_VERSION_MICRO 1


#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \ LIBAVCODEC_VERSION_MINOR, \
@@ -165,5 +165,8 @@
#ifndef FF_API_STREAM_CODEC_TAG #ifndef FF_API_STREAM_CODEC_TAG
#define FF_API_STREAM_CODEC_TAG (LIBAVCODEC_VERSION_MAJOR < 59) #define FF_API_STREAM_CODEC_TAG (LIBAVCODEC_VERSION_MAJOR < 59)
#endif #endif
#ifndef FF_API_QUANT_BIAS
#define FF_API_QUANT_BIAS (LIBAVCODEC_VERSION_MAJOR < 59)
#endif


#endif /* AVCODEC_VERSION_H */ #endif /* AVCODEC_VERSION_H */

Loading…
Cancel
Save