From: "Ruiling, Song" <[email protected]> 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 <[email protected]> --- 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"); - 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 [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
