libvorbis: fix use of minrate/maxrate AVOptions
- enable the options for audio encoding - properly check for user-set maxrate - use correct calling order in vorbis_encode_setup_managed()
This commit is contained in:
@@ -93,12 +93,12 @@ static av_cold int oggvorbis_init_encoder(vorbis_info *vi,
|
|||||||
goto error;
|
goto error;
|
||||||
} else {
|
} else {
|
||||||
int minrate = avctx->rc_min_rate > 0 ? avctx->rc_min_rate : -1;
|
int minrate = avctx->rc_min_rate > 0 ? avctx->rc_min_rate : -1;
|
||||||
int maxrate = avctx->rc_min_rate > 0 ? avctx->rc_max_rate : -1;
|
int maxrate = avctx->rc_max_rate > 0 ? avctx->rc_max_rate : -1;
|
||||||
|
|
||||||
/* average bitrate */
|
/* average bitrate */
|
||||||
if ((ret = vorbis_encode_setup_managed(vi, avctx->channels,
|
if ((ret = vorbis_encode_setup_managed(vi, avctx->channels,
|
||||||
avctx->sample_rate, minrate,
|
avctx->sample_rate, maxrate,
|
||||||
avctx->bit_rate, maxrate)))
|
avctx->bit_rate, minrate)))
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
/* variable bitrate by estimate, disable slow rate management */
|
/* variable bitrate by estimate, disable slow rate management */
|
||||||
|
@@ -195,8 +195,8 @@ static const AVOption options[]={
|
|||||||
{"rc_qmod_freq", "experimental quantizer modulation", OFFSET(rc_qmod_freq), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
|
{"rc_qmod_freq", "experimental quantizer modulation", OFFSET(rc_qmod_freq), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
|
||||||
{"rc_override_count", NULL, OFFSET(rc_override_count), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
|
{"rc_override_count", NULL, OFFSET(rc_override_count), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
|
||||||
{"rc_eq", "set rate control equation", OFFSET(rc_eq), AV_OPT_TYPE_STRING, {.str = NULL}, CHAR_MIN, CHAR_MAX, V|E},
|
{"rc_eq", "set rate control equation", OFFSET(rc_eq), AV_OPT_TYPE_STRING, {.str = NULL}, CHAR_MIN, CHAR_MAX, V|E},
|
||||||
{"maxrate", "set max video bitrate tolerance (in bits/s)", OFFSET(rc_max_rate), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
|
{"maxrate", "set max bitrate tolerance (in bits/s)", OFFSET(rc_max_rate), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|A|E},
|
||||||
{"minrate", "set min video bitrate tolerance (in bits/s)", OFFSET(rc_min_rate), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
|
{"minrate", "set min bitrate tolerance (in bits/s)", OFFSET(rc_min_rate), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|A|E},
|
||||||
{"bufsize", "set ratecontrol buffer size (in bits)", OFFSET(rc_buffer_size), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, A|V|E},
|
{"bufsize", "set ratecontrol buffer size (in bits)", OFFSET(rc_buffer_size), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, A|V|E},
|
||||||
{"rc_buf_aggressivity", "currently useless", OFFSET(rc_buffer_aggressivity), AV_OPT_TYPE_FLOAT, {.dbl = 1.0 }, -FLT_MAX, FLT_MAX, V|E},
|
{"rc_buf_aggressivity", "currently useless", OFFSET(rc_buffer_aggressivity), AV_OPT_TYPE_FLOAT, {.dbl = 1.0 }, -FLT_MAX, FLT_MAX, V|E},
|
||||||
{"i_qfactor", "qp factor between P and I frames", OFFSET(i_quant_factor), AV_OPT_TYPE_FLOAT, {.dbl = -0.8 }, -FLT_MAX, FLT_MAX, V|E},
|
{"i_qfactor", "qp factor between P and I frames", OFFSET(i_quant_factor), AV_OPT_TYPE_FLOAT, {.dbl = -0.8 }, -FLT_MAX, FLT_MAX, V|E},
|
||||||
|
Reference in New Issue
Block a user