-
-
Save deepch/d7cc65d92bfe1066448d6ad6abeb2bf3 to your computer and use it in GitHub Desktop.
Lower surfaces usage for nvenc encoding process
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c | |
index a3a2ef5..1691d15 100644 | |
--- a/libavcodec/nvenc.c | |
+++ b/libavcodec/nvenc.c | |
@@ -1157,7 +1157,7 @@ static av_cold int nvenc_setup_surfaces(AVCodecContext *avctx) | |
NvencContext *ctx = avctx->priv_data; | |
int i, res; | |
int num_mbs = ((avctx->width + 15) >> 4) * ((avctx->height + 15) >> 4); | |
- ctx->nb_surfaces = FFMAX((num_mbs >= 8160) ? 32 : 48, | |
+ ctx->nb_surfaces = FFMAX((num_mbs >= 8160) ? 8 : 12, | |
ctx->nb_surfaces); | |
ctx->async_depth = FFMIN(ctx->async_depth, ctx->nb_surfaces - 1); | |
diff --git a/libavcodec/nvenc_h264.c b/libavcodec/nvenc_h264.c | |
index 6914046b..7f050af 100644 | |
--- a/libavcodec/nvenc_h264.c | |
+++ b/libavcodec/nvenc_h264.c | |
@@ -80,7 +80,7 @@ static const AVOption options[] = { | |
{ "vbr_2pass", "Multi-pass variable bitrate mode", 0, AV_OPT_TYPE_CONST, { .i64 = NV_ENC_PARAMS_RC_2_PASS_VBR }, 0, 0, VE, "rc" }, | |
{ "rc-lookahead", "Number of frames to look ahead for rate-control", | |
OFFSET(rc_lookahead), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, INT_MAX, VE }, | |
- { "surfaces", "Number of concurrent surfaces", OFFSET(nb_surfaces), AV_OPT_TYPE_INT, { .i64 = 32 }, 0, INT_MAX, VE }, | |
+ { "surfaces", "Number of concurrent surfaces", OFFSET(nb_surfaces), AV_OPT_TYPE_INT, { .i64 = 8 }, 0, INT_MAX, VE }, | |
{ "cbr", "Use cbr encoding mode", OFFSET(cbr), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE }, | |
{ "2pass", "Use 2pass encoding mode", OFFSET(twopass), AV_OPT_TYPE_BOOL, { .i64 = -1 }, -1, 1, VE }, | |
{ "gpu", "Selects which NVENC capable GPU to use. First GPU is 0, second is 1, and so on.", |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment