aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZhong Li <zhong.li@intel.com>2018-10-25 19:14:16 +0800
committerZhong Li <zhong.li@intel.com>2018-12-07 17:13:36 +0800
commitc9f0cff5efd8096caf8a6fa37b0640abddcde8e8 (patch)
tree7874eaccd453fcb2a60fcb0d6fa53d00bdd89ca0
parentc4a4cfa7628b0b958b7406012d7cfe1e11f1ca10 (diff)
downloadffmpeg-c9f0cff5efd8096caf8a6fa37b0640abddcde8e8.tar.gz
lavc/qsvenc: add an option to set h264 pps for every frame
RepeatPPS is enabled by default in mfx. It is not necessary mostly and wasting encoding bits. Add an option to control it and disable it by default. Reviewed-by: Mark Thompson <sw@jkqxz.net> Signed-off-by: Zhong Li <zhong.li@intel.com>
-rw-r--r--libavcodec/qsvenc.c1
-rw-r--r--libavcodec/qsvenc.h2
-rw-r--r--libavcodec/qsvenc_h264.c2
-rw-r--r--libavcodec/version.h2
4 files changed, 6 insertions, 1 deletions
diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c
index 48bfec70c4..53ba7cad15 100644
--- a/libavcodec/qsvenc.c
+++ b/libavcodec/qsvenc.c
@@ -654,6 +654,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
#if QSV_VERSION_ATLEAST(1, 8)
q->extco2.LookAheadDS = q->look_ahead_downsampling;
+ q->extco2.RepeatPPS = q->repeat_pps ? MFX_CODINGOPTION_ON : MFX_CODINGOPTION_OFF;
#if FF_API_PRIVATE_OPT
FF_DISABLE_DEPRECATION_WARNINGS
diff --git a/libavcodec/qsvenc.h b/libavcodec/qsvenc.h
index fbdc19900d..4316a101ca 100644
--- a/libavcodec/qsvenc.h
+++ b/libavcodec/qsvenc.h
@@ -162,6 +162,8 @@ typedef struct QSVEncContext {
int int_ref_qp_delta;
int recovery_point_sei;
+ int repeat_pps;
+
int a53_cc;
#if QSV_HAVE_MF
diff --git a/libavcodec/qsvenc_h264.c b/libavcodec/qsvenc_h264.c
index 07c9d64e6b..8e61826eef 100644
--- a/libavcodec/qsvenc_h264.c
+++ b/libavcodec/qsvenc_h264.c
@@ -154,6 +154,8 @@ static const AVOption options[] = {
{ "auto" , NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_MF_AUTO }, INT_MIN, INT_MAX, VE, "mfmode" },
#endif
+ { "repeat_pps", "repeat pps for every frame", OFFSET(qsv.repeat_pps), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE },
+
{ NULL },
};
diff --git a/libavcodec/version.h b/libavcodec/version.h
index f758093582..372a6f45b4 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -29,7 +29,7 @@
#define LIBAVCODEC_VERSION_MAJOR 58
#define LIBAVCODEC_VERSION_MINOR 41
-#define LIBAVCODEC_VERSION_MICRO 101
+#define LIBAVCODEC_VERSION_MICRO 102
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \