[2/2] lavc/qsvenc: add the Access Unit Delimiter NAL Unit support

Message ID 1521108132-19466-2-git-send-email-zhong.li@intel.com
State Committed
Commit deefca02c275ce4bc5ccbee690463ffef81a18b8
Headers show
Series
  • [1/2] lavc/qsvenc: fix the typo of FrameRateExtD
Related show

Commit Message

Li, Zhong March 15, 2018, 10:02 a.m.
Signed-off-by: Zhong Li <zhong.li@intel.com>
---
 libavcodec/qsvenc.c      | 1 +
 libavcodec/qsvenc.h      | 2 ++
 libavcodec/qsvenc_h264.c | 2 ++
 3 files changed, 5 insertions(+)

Comments

Luca Barbato March 15, 2018, 11:14 a.m. | #1
On 15/03/2018 11:02, Zhong Li wrote:
> Signed-off-by: Zhong Li <zhong.li@intel.com>
> ---
>   libavcodec/qsvenc.c      | 1 +
>   libavcodec/qsvenc.h      | 2 ++
>   libavcodec/qsvenc_h264.c | 2 ++
>   3 files changed, 5 insertions(+)
> 
> diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c
> index baa2c630..f6b1a0d 100644
> --- a/libavcodec/qsvenc.c
> +++ b/libavcodec/qsvenc.c
> @@ -600,6 +600,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
>               if (q->recovery_point_sei >= 0)
>                   q->extco.RecoveryPointSEI = q->recovery_point_sei ? MFX_CODINGOPTION_ON : MFX_CODINGOPTION_OFF;
>               q->extco.MaxDecFrameBuffering = q->max_dec_frame_buffering;
> +            q->extco.AUDelimiter          = q->aud ? MFX_CODINGOPTION_ON : MFX_CODINGOPTION_OFF;
>           }
>   
>           q->extparam_internal[q->nb_extparam_internal++] = (mfxExtBuffer *)&q->extco;
> diff --git a/libavcodec/qsvenc.h b/libavcodec/qsvenc.h
> index 31537b2..ab55795 100644
> --- a/libavcodec/qsvenc.h
> +++ b/libavcodec/qsvenc.h
> @@ -137,6 +137,8 @@ typedef struct QSVEncContext {
>       int max_frame_size;
>       int max_slice_size;
>   
> +    int aud;
> +
>       int single_sei_nal_unit;
>       int max_dec_frame_buffering;
>       int trellis;
> diff --git a/libavcodec/qsvenc_h264.c b/libavcodec/qsvenc_h264.c
> index 1552d76..634a7d3 100644
> --- a/libavcodec/qsvenc_h264.c
> +++ b/libavcodec/qsvenc_h264.c
> @@ -91,6 +91,8 @@ static const AVOption options[] = {
>       { "main"    , NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_PROFILE_AVC_MAIN     }, INT_MIN, INT_MAX,     VE, "profile" },
>       { "high"    , NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_PROFILE_AVC_HIGH     }, INT_MIN, INT_MAX,     VE, "profile" },
>   
> +    { "aud", "Insert the Access Unit Delimiter NAL", OFFSET(qsv.aud), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE},
> +
>       { NULL },
>   };
>   
> 

Sounds Ok.

Patch

diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c
index baa2c630..f6b1a0d 100644
--- a/libavcodec/qsvenc.c
+++ b/libavcodec/qsvenc.c
@@ -600,6 +600,7 @@  FF_ENABLE_DEPRECATION_WARNINGS
             if (q->recovery_point_sei >= 0)
                 q->extco.RecoveryPointSEI = q->recovery_point_sei ? MFX_CODINGOPTION_ON : MFX_CODINGOPTION_OFF;
             q->extco.MaxDecFrameBuffering = q->max_dec_frame_buffering;
+            q->extco.AUDelimiter          = q->aud ? MFX_CODINGOPTION_ON : MFX_CODINGOPTION_OFF;
         }
 
         q->extparam_internal[q->nb_extparam_internal++] = (mfxExtBuffer *)&q->extco;
diff --git a/libavcodec/qsvenc.h b/libavcodec/qsvenc.h
index 31537b2..ab55795 100644
--- a/libavcodec/qsvenc.h
+++ b/libavcodec/qsvenc.h
@@ -137,6 +137,8 @@  typedef struct QSVEncContext {
     int max_frame_size;
     int max_slice_size;
 
+    int aud;
+
     int single_sei_nal_unit;
     int max_dec_frame_buffering;
     int trellis;
diff --git a/libavcodec/qsvenc_h264.c b/libavcodec/qsvenc_h264.c
index 1552d76..634a7d3 100644
--- a/libavcodec/qsvenc_h264.c
+++ b/libavcodec/qsvenc_h264.c
@@ -91,6 +91,8 @@  static const AVOption options[] = {
     { "main"    , NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_PROFILE_AVC_MAIN     }, INT_MIN, INT_MAX,     VE, "profile" },
     { "high"    , NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_PROFILE_AVC_HIGH     }, INT_MIN, INT_MAX,     VE, "profile" },
 
+    { "aud", "Insert the Access Unit Delimiter NAL", OFFSET(qsv.aud), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE},
+
     { NULL },
 };