summaryrefslogtreecommitdiff
path: root/libavfilter
diff options
context:
space:
mode:
authorMark Thompson <sw@jkqxz.net>2017-02-09 19:26:11 +0000
committerMark Thompson <sw@jkqxz.net>2017-02-17 23:20:39 +0000
commit2d518aec4c781316092be65893b47922c8f71b67 (patch)
tree18488affbfb9deb562eb0a33f0782e65b50008e0 /libavfilter
parent17aeee5832b9188b570c3d3de4197e4cdc54c634 (diff)
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.
Diffstat (limited to 'libavfilter')
-rw-r--r--libavfilter/vf_deinterlace_vaapi.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/libavfilter/vf_deinterlace_vaapi.c b/libavfilter/vf_deinterlace_vaapi.c
index 022baa11fc..ab2a432914 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;