summaryrefslogtreecommitdiffstats
path: root/libavcodec/nvenc_hevc.c
diff options
context:
space:
mode:
authorRoman Arzumanyan <rarzumanyan@nvidia.com>2019-02-14 13:20:25 +0100
committerTimo Rothenpieler <timo@rothenpieler.org>2019-02-14 13:22:09 +0100
commitf1f66df6a204fdc08b8763004de2df3e20bab8f3 (patch)
tree635b459f1d4f92265d469d0480127a2d3e489422 /libavcodec/nvenc_hevc.c
parent15c6390139096b7e7634bf0f6aaab1cd8b3aa509 (diff)
downloadffmpeg-streaming-f1f66df6a204fdc08b8763004de2df3e20bab8f3.zip
ffmpeg-streaming-f1f66df6a204fdc08b8763004de2df3e20bab8f3.tar.gz
avcodec/nvenc: add b_as_ref support for HEVC
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
Diffstat (limited to 'libavcodec/nvenc_hevc.c')
-rw-r--r--libavcodec/nvenc_hevc.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/libavcodec/nvenc_hevc.c b/libavcodec/nvenc_hevc.c
index 0df7eab..d567d96 100644
--- a/libavcodec/nvenc_hevc.c
+++ b/libavcodec/nvenc_hevc.c
@@ -116,6 +116,17 @@ static const AVOption options[] = {
OFFSET(cqp), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 51, VE },
{ "weighted_pred","Set 1 to enable weighted prediction",
OFFSET(weighted_pred),AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE },
+#ifdef NVENC_HAVE_HEVC_BFRAME_REF_MODE
+ { "b_ref_mode", "Use B frames as references", OFFSET(b_ref_mode), AV_OPT_TYPE_INT, { .i64 = NV_ENC_BFRAME_REF_MODE_DISABLED }, NV_ENC_BFRAME_REF_MODE_DISABLED, NV_ENC_BFRAME_REF_MODE_MIDDLE, VE, "b_ref_mode" },
+ { "disabled", "B frames will not be used for reference", 0, AV_OPT_TYPE_CONST, { .i64 = NV_ENC_BFRAME_REF_MODE_DISABLED }, 0, 0, VE, "b_ref_mode" },
+ { "each", "Each B frame will be used for reference", 0, AV_OPT_TYPE_CONST, { .i64 = NV_ENC_BFRAME_REF_MODE_EACH }, 0, 0, VE, "b_ref_mode" },
+ { "middle", "Only (number of B frames)/2 will be used for reference", 0,AV_OPT_TYPE_CONST, { .i64 = NV_ENC_BFRAME_REF_MODE_MIDDLE }, 0, 0, VE, "b_ref_mode" },
+#else
+ { "b_ref_mode", "(not supported)", OFFSET(b_ref_mode), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, VE, "b_ref_mode" },
+ { "disabled", "", 0, AV_OPT_TYPE_CONST, { .i64 = 0 }, 0, 0, VE, "b_ref_mode" },
+ { "each", "", 0, AV_OPT_TYPE_CONST, { .i64 = 1 }, 0, 0, VE, "b_ref_mode" },
+ { "middle", "", 0, AV_OPT_TYPE_CONST, { .i64 = 2 }, 0, 0, VE, "b_ref_mode" },
+#endif
{ NULL }
};
OpenPOWER on IntegriCloud