// bit_rate or qp
if (self->bit_rate) {
AV_DICT_SET_BIT_RATE(opts, self->bit_rate);
+ AV_DICT_SET_INT(opts, "maxrate", (self->bit_rate) * 1000, AV_DICT_DONT_OVERWRITE);
+ AV_DICT_SET_INT(opts, "bufsize", ((self->bit_rate) * 1000) * 2, AV_DICT_DONT_OVERWRITE);
+ AV_DICT_SET(opts, "force_key_frames", "expr:gte(t,n_forced*3)", AV_DICT_DONT_OVERWRITE);
}
else {
AV_DICT_SET_QP(opts, self->qp, 20);
// bit_rate or qp
if (self->bit_rate) {
AV_DICT_SET_BIT_RATE(opts, self->bit_rate);
+ AV_DICT_SET_INT(opts, "maxrate", (self->bit_rate) * 1000, AV_DICT_DONT_OVERWRITE);
+ AV_DICT_SET_INT(opts, "bufsize", ((self->bit_rate) * 1000) * 2, AV_DICT_DONT_OVERWRITE);
+ AV_DICT_SET(opts, "force_key_frames", "expr:gte(t,n_forced*3)", AV_DICT_DONT_OVERWRITE);
}
else {
AV_DICT_SET_QP(opts, self->qp, 25);
// max_b_frames
// XXX: remove when b-frames handling in vaapi_encode is fixed
AV_DICT_SET_INT(opts, "bf", 0, 0);
+
return 0;
}