> From: libav-devel [mailto:libav-devel-boun...@libav.org] On Behalf Of
> Ruiling Song
> Sent: Friday, January 26, 2018 9:17 AM
> To: libav-devel@libav.org
> Subject: [libav-devel] [PATCH] hwcontext_qsv: Fix qsv hwupload failure issue
> 
> From: "Ruiling, Song" <ruiling.s...@intel.com>
> 
> 1.) the initial_pool_size need to be set instead of zero.
> 2.) the PicStruct is required by MediaSDK, so give a default value.
> 
> A simple command to reproduce the issue:
> avconv -i INPUT -init_hw_device qsv=foo -filter_hw_device foo -vf
> format=nv12,hwupload -c:v h264_qsv ... OUTPUT
> 
> Signed-off-by: Ruiling Song <ruiling.s...@intel.com>
> ---
>  libavutil/hwcontext_qsv.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/libavutil/hwcontext_qsv.c b/libavutil/hwcontext_qsv.c index
> 9270b22..14f26c6 100644
> --- a/libavutil/hwcontext_qsv.c
> +++ b/libavutil/hwcontext_qsv.c
> @@ -313,6 +313,7 @@ static int qsv_init_surface(AVHWFramesContext *ctx,
> mfxFrameSurface1 *surf)
>      surf->Info.CropH          = ctx->height;
>      surf->Info.FrameRateExtN  = 25;
>      surf->Info.FrameRateExtD  = 1;
> +    surf->Info.PicStruct      = MFX_PICSTRUCT_PROGRESSIVE;
> 
>      return 0;
>  }
> @@ -325,8 +326,7 @@ static int qsv_init_pool(AVHWFramesContext *ctx,
> uint32_t fourcc)
>      int i, ret = 0;
> 
>      if (ctx->initial_pool_size <= 0) {
> -        av_log(ctx, AV_LOG_ERROR, "QSV requires a fixed frame pool
> size\n");

Should keep this log message as a warning be better? 

> -        return AVERROR(EINVAL);
> +        ctx->initial_pool_size = 64;
>      }
> 
>      s->surfaces_internal = av_mallocz_array(ctx->initial_pool_size,
> --
> 2.7.4
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to