Module: libav
Branch: master
Commit: 2d518aec4c781316092be65893b47922c8f71b67

Author:    Mark Thompson <[email protected]>
Committer: Mark Thompson <[email protected]>
Date:      Thu Feb  9 19:26:11 2017 +0000

vf_deinterlace_vaapi: Create filter buffer after context

The Intel proprietary VAAPI driver enforces the restriction that a
buffer must be created inside an existing context, so just ensure
this is always true.

---

 libavfilter/vf_deinterlace_vaapi.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/libavfilter/vf_deinterlace_vaapi.c 
b/libavfilter/vf_deinterlace_vaapi.c
index 022baa1..ab2a432 100644
--- a/libavfilter/vf_deinterlace_vaapi.c
+++ b/libavfilter/vf_deinterlace_vaapi.c
@@ -278,10 +278,6 @@ static int deint_vaapi_config_output(AVFilterLink *outlink)
         goto fail;
     }
 
-    err = deint_vaapi_build_filter_params(avctx);
-    if (err < 0)
-        goto fail;
-
     ctx->output_frames_ref = av_hwframe_ctx_alloc(ctx->device_ref);
     if (!ctx->output_frames_ref) {
         av_log(avctx, AV_LOG_ERROR, "Failed to create HW frame context "
@@ -319,9 +315,14 @@ static int deint_vaapi_config_output(AVFilterLink *outlink)
     if (vas != VA_STATUS_SUCCESS) {
         av_log(avctx, AV_LOG_ERROR, "Failed to create processing pipeline "
                "context: %d (%s).\n", vas, vaErrorStr(vas));
-        return AVERROR(EIO);
+        err = AVERROR(EIO);
+        goto fail;
     }
 
+    err = deint_vaapi_build_filter_params(avctx);
+    if (err < 0)
+        goto fail;
+
     outlink->w = ctx->output_width;
     outlink->h = ctx->output_height;
 

_______________________________________________
libav-commits mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-commits

Reply via email to