mirror of
https://github.com/thinkonmay/sunshine-sdk.git
synced 2026-01-03 07:02:26 +00:00
adjust encoder
This commit is contained in:
parent
3164a3201f
commit
eff2c54104
@ -409,9 +409,20 @@ namespace nvenc {
|
||||
|
||||
void
|
||||
nvenc_base::update_bitrate(int bitrate) {
|
||||
auto get_encoder_cap = [&](NV_ENC_CAPS cap) {
|
||||
NV_ENC_CAPS_PARAM param = { NV_ENC_CAPS_PARAM_VER, cap };
|
||||
int value = 0;
|
||||
nvenc->nvEncGetEncodeCaps(encoder, init_params.encodeGUID, ¶m, &value);
|
||||
return value;
|
||||
};
|
||||
|
||||
|
||||
NV_ENC_RECONFIGURE_PARAMS reconfigure_params = { NV_ENC_RECONFIGURE_PARAMS_VER };
|
||||
/* reset rate control state and start from IDR */
|
||||
init_params.encodeConfig->rcParams.averageBitRate = bitrate;
|
||||
init_params.encodeConfig->rcParams.averageBitRate = bitrate * 1000;
|
||||
if (get_encoder_cap(NV_ENC_CAPS_SUPPORT_CUSTOM_VBV_BUF_SIZE)) {
|
||||
init_params.encodeConfig->rcParams.vbvBufferSize = bitrate * 1000 / init_params.frameRateNum;
|
||||
}
|
||||
reconfigure_params.reInitEncodeParams = init_params;
|
||||
reconfigure_params.resetEncoder = TRUE;
|
||||
reconfigure_params.forceIDR = TRUE;
|
||||
|
||||
@ -446,9 +446,10 @@ namespace video {
|
||||
|
||||
void
|
||||
update_bitrate(int bitrate) override {
|
||||
// bitrate = bitrate * 1000;
|
||||
// avcodec_ctx->rc_max_rate = bitrate;
|
||||
// avcodec_ctx->bit_rate = bitrate;
|
||||
bitrate = bitrate * 1000;
|
||||
avcodec_ctx->rc_max_rate = bitrate;
|
||||
avcodec_ctx->bit_rate = bitrate;
|
||||
avcodec_ctx->rc_min_rate = bitrate;
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
Loading…
Reference in New Issue
Block a user