[1/2] lavc/qsvenc_jpeg: add async_depth support

Message ID 1539249973-29957-1-git-send-email-zhong.li@intel.com
State Committed
Commit 4c5e77e0bf14aa3cb838e788dbaf88441c82e5d2
Headers show
Series
  • [1/2] lavc/qsvenc_jpeg: add async_depth support
Related show

Commit Message

Li, Zhong Oct. 11, 2018, 9:26 a.m.
Currently qsv (m)jpeg encoding is broken.
Regression introducing by the commit(id: c1bcd3): fix async support,
which requires the minimum async_depth to be 1, instead previous zero.
But the default async_depth of qsv (m)jpeg encoding is still initialized
(mostly) as zero.

This patch also abviously improves qsv (m)jpeg encoding performance
due to the default async_depth is changed to 4.

Signed-off-by: Zhong Li <zhong.li@intel.com>
---
 libavcodec/qsvenc_jpeg.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Luca Barbato Oct. 11, 2018, 9:33 a.m. | #1
On 11/10/2018 11:26, Zhong Li wrote:
> Currently qsv (m)jpeg encoding is broken.
> Regression introducing by the commit(id: c1bcd3): fix async support,
> which requires the minimum async_depth to be 1, instead previous zero.
> But the default async_depth of qsv (m)jpeg encoding is still initialized
> (mostly) as zero.
> 
> This patch also abviously improves qsv (m)jpeg encoding performance
> due to the default async_depth is changed to 4.
> 
> Signed-off-by: Zhong Li <zhong.li@intel.com>
> ---
>  libavcodec/qsvenc_jpeg.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/libavcodec/qsvenc_jpeg.c b/libavcodec/qsvenc_jpeg.c
> index e11b74d..7465bb9 100644
> --- a/libavcodec/qsvenc_jpeg.c
> +++ b/libavcodec/qsvenc_jpeg.c
> @@ -64,6 +64,7 @@ static av_cold int qsv_enc_close(AVCodecContext *avctx)
>  #define OFFSET(x) offsetof(QSVMJPEGEncContext, x)
>  #define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM
>  static const AVOption options[] = {
> +    { "async_depth", "Maximum processing parallelism", OFFSET(qsv.async_depth), AV_OPT_TYPE_INT, { .i64 = ASYNC_DEPTH_DEFAULT }, 1, INT_MAX, VE },
>      { NULL },
>  };
>  
> 

both look fine. I'd merge them this evening.

lu
Li, Zhong Oct. 11, 2018, 9:49 a.m. | #2
> From: libav-devel [mailto:libav-devel-bounces@libav.org] On Behalf Of Luca
> Barbato
> Sent: Thursday, October 11, 2018 5:34 PM
> To: libav-devel@libav.org
> Subject: Re: [libav-devel] [PATCH 1/2] lavc/qsvenc_jpeg: add async_depth
> support
> 
> On 11/10/2018 11:26, Zhong Li wrote:
> > Currently qsv (m)jpeg encoding is broken.
> > Regression introducing by the commit(id: c1bcd3): fix async support,
> > which requires the minimum async_depth to be 1, instead previous zero.
> > But the default async_depth of qsv (m)jpeg encoding is still
> > initialized
> > (mostly) as zero.
> >
> > This patch also abviously improves qsv (m)jpeg encoding performance
> > due to the default async_depth is changed to 4.
> >
> > Signed-off-by: Zhong Li <zhong.li@intel.com>
> > ---
> >  libavcodec/qsvenc_jpeg.c | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/libavcodec/qsvenc_jpeg.c b/libavcodec/qsvenc_jpeg.c index
> > e11b74d..7465bb9 100644
> > --- a/libavcodec/qsvenc_jpeg.c
> > +++ b/libavcodec/qsvenc_jpeg.c
> > @@ -64,6 +64,7 @@ static av_cold int qsv_enc_close(AVCodecContext
> > *avctx)  #define OFFSET(x) offsetof(QSVMJPEGEncContext, x)  #define
> VE
> > AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM
> static const
> > AVOption options[] = {
> > +    { "async_depth", "Maximum processing parallelism",
> > + OFFSET(qsv.async_depth), AV_OPT_TYPE_INT, { .i64 =
> > + ASYNC_DEPTH_DEFAULT }, 1, INT_MAX, VE },
> >      { NULL },
> >  };
> >
> >
> 
> both look fine. I'd merge them this evening.
> 
> lu

Thanks for quick reply, : )

Patch

diff --git a/libavcodec/qsvenc_jpeg.c b/libavcodec/qsvenc_jpeg.c
index e11b74d..7465bb9 100644
--- a/libavcodec/qsvenc_jpeg.c
+++ b/libavcodec/qsvenc_jpeg.c
@@ -64,6 +64,7 @@  static av_cold int qsv_enc_close(AVCodecContext *avctx)
 #define OFFSET(x) offsetof(QSVMJPEGEncContext, x)
 #define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM
 static const AVOption options[] = {
+    { "async_depth", "Maximum processing parallelism", OFFSET(qsv.async_depth), AV_OPT_TYPE_INT, { .i64 = ASYNC_DEPTH_DEFAULT }, 1, INT_MAX, VE },
     { NULL },
 };