Заглянул я тут в баг, и пошёл искать в коде, где там что интересное написано.
И нашёл. https://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/drivers/radeon/radeon...
static void radeon_enc_op_speed(struct radeon_encoder *enc)
{
RADEON_ENC_BEGIN(RENCODE_IB_OP_SET_SPEED_ENCODING_MODE);
RADEON_ENC_END();
}
А в https://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/drivers/radeon/radeon...
есть такие определения:
#define RENCODE_IB_OP_SET_SPEED_ENCODING_MODE 0x01000006
#define RENCODE_IB_OP_SET_BALANCE_ENCODING_MODE 0x01000007
#define RENCODE_IB_OP_SET_QUALITY_ENCODING_MODE 0x01000008
Отсюда вопрос, как изменится качество, если поменять этот параметр? Ну и вывести его как-то наружу, может через переменные окружения?
Там ещё есть разные крутилки, не уверен что их можно просто включить без доп. кодинга.
static void radeon_enc_quality_params(struct radeon_encoder *enc)
{
enc->enc_pic.quality_params.vbaq_mode = 0;
enc->enc_pic.quality_params.scene_change_sensitivity = 0;
enc->enc_pic.quality_params.scene_change_min_idr_interval = 0;
RADEON_ENC_BEGIN(enc->cmd.quality_params);
RADEON_ENC_CS(enc->enc_pic.quality_params.vbaq_mode);
RADEON_ENC_CS(enc->enc_pic.quality_params.scene_change_sensitivity);
RADEON_ENC_CS(enc->enc_pic.quality_params.scene_change_min_idr_interval);
RADEON_ENC_END();
}
Ну и
#define RENCODE_VIDEO_BITSTREAM_BUFFER_MODE_LINEAR 0
#define RENCODE_VIDEO_BITSTREAM_BUFFER_MODE_CIRCULAR 1
в заголовке тоже интересно ....