mirror of
https://github.com/LizardByte/Sunshine.git
synced 2026-08-07 10:20:46 +00:00
feat(nvenc): support intraRefresh for h264, add outputRecoveryPointSEI=1 to intra-refresh config for h264 and hevc (#5091)
This commit is contained in:
@@ -340,6 +340,21 @@ namespace nvenc {
|
||||
set_ref_frames(format_config.maxNumRefFrames, format_config.numRefL0, 5);
|
||||
set_minqp_if_enabled(config.min_qp_h264);
|
||||
fill_h264_hevc_vui(format_config.h264VUIParameters);
|
||||
if (client_config.enableIntraRefresh == 1) {
|
||||
if (get_encoder_cap(NV_ENC_CAPS_SUPPORT_INTRA_REFRESH)) {
|
||||
format_config.enableIntraRefresh = 1;
|
||||
format_config.intraRefreshPeriod = 300;
|
||||
format_config.intraRefreshCnt = 299;
|
||||
format_config.outputRecoveryPointSEI = 1;
|
||||
if (get_encoder_cap(NV_ENC_CAPS_SINGLE_SLICE_INTRA_REFRESH)) {
|
||||
format_config.singleSliceIntraRefresh = 1;
|
||||
} else {
|
||||
BOOST_LOG(warning) << "NvEnc: Single Slice Intra Refresh not supported";
|
||||
}
|
||||
} else {
|
||||
BOOST_LOG(error) << "NvEnc: Client asked for intra-refresh but the encoder does not support intra-refresh";
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -360,6 +375,7 @@ namespace nvenc {
|
||||
format_config.enableIntraRefresh = 1;
|
||||
format_config.intraRefreshPeriod = 300;
|
||||
format_config.intraRefreshCnt = 299;
|
||||
format_config.outputRecoveryPointSEI = 1;
|
||||
if (get_encoder_cap(NV_ENC_CAPS_SINGLE_SLICE_INTRA_REFRESH)) {
|
||||
format_config.singleSliceIntraRefresh = 1;
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user