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.
This commit is contained in:
Mark Thompson 2017-02-09 19:26:11 +00:00
parent 17aeee5832
commit 2d518aec4c
1 changed files with 6 additions and 5 deletions

View File

@ -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;