Skip to content

Commit 8940b44

Browse files
committed
vcomp/lavc: nvenc: don't set rc_buffer_size if not intra-refresh
1 parent 40dd353 commit 8940b44

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/video_compress/libavcodec.cpp

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2042,13 +2042,18 @@ static void configure_nvenc(AVCodecContext *codec_ctx, struct setparam_param *pa
20422042
check_av_opt_set<int>(codec_ctx->priv_data, "zerolatency", 1, "zero latency operation (no reordering delay)");
20432043
check_av_opt_set<const char *>(codec_ctx->priv_data, "b_ref_mode", "disabled", 0);
20442044
codec_ctx->rc_max_rate = codec_ctx->bit_rate;
2045-
double lavc_rc_buffer_size_factor = DEFAULT_NVENC_RC_BUF_SIZE_FACTOR;
2045+
2046+
double lavc_rc_buffer_size_factor =
2047+
param->periodic_intra == 1 ? DEFAULT_NVENC_RC_BUF_SIZE_FACTOR : 0.0;
20462048
if (const char *val = get_commandline_param("lavc-rc-buffer-size-factor")) {
20472049
lavc_rc_buffer_size_factor = stof(val);
20482050
}
2049-
codec_ctx->rc_buffer_size =
2050-
(int) ((double) codec_ctx->rc_max_rate / param->desc.fps *
2051-
lavc_rc_buffer_size_factor);
2051+
if (lavc_rc_buffer_size_factor > 0.0) {
2052+
codec_ctx->rc_buffer_size =
2053+
(int) ((double) codec_ctx->rc_max_rate / param->desc.fps *
2054+
lavc_rc_buffer_size_factor);
2055+
}
2056+
20522057
if (param->desc.interlacing == INTERLACED_MERGED && param->interlaced_dct == 1) {
20532058
codec_ctx->flags |= AV_CODEC_FLAG_INTERLACED_DCT;
20542059
}

0 commit comments

Comments
 (0)