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

Reply via email to