vf_scale_vaapi: Respect driver quirks around buffer destruction

This commit is contained in:
Mark Thompson 2016-06-26 22:35:49 +01:00
parent 221ffca631
commit 582d4211e0

View File

@ -342,13 +342,14 @@ static int scale_vaapi_filter_frame(AVFilterLink *inlink, AVFrame *input_frame)
goto fail_after_render; goto fail_after_render;
} }
// This doesn't get freed automatically for some reason. if (ctx->hwctx->driver_quirks &
vas = vaDestroyBuffer(ctx->hwctx->display, params_id); AV_VAAPI_DRIVER_QUIRK_RENDER_PARAM_BUFFERS) {
if (vas != VA_STATUS_SUCCESS) { vas = vaDestroyBuffer(ctx->hwctx->display, params_id);
av_log(ctx, AV_LOG_ERROR, "Failed to free parameter buffer: " if (vas != VA_STATUS_SUCCESS) {
"%d (%s).\n", vas, vaErrorStr(vas)); av_log(ctx, AV_LOG_ERROR, "Failed to free parameter buffer: "
err = AVERROR(EIO); "%d (%s).\n", vas, vaErrorStr(vas));
goto fail; // And ignore.
}
} }
av_frame_copy_props(output_frame, input_frame); av_frame_copy_props(output_frame, input_frame);