Re: [FFmpeg-devel] [PATCH 3/6] vaapi: Always free parameter buffers after vaEndPicture() with libva2

2017-10-08 Thread Derek Buitenhuis
On 10/8/2017 4:11 PM, Mark Thompson wrote:
> This is an ABI change in libva2: previously the Intel driver had this
> behaviour and it was implemented as a driver quirk, but now it is part
> of the specification so all drivers must do it.
> ---
>  libavcodec/vaapi_decode.c  | 4 ++--
>  libavcodec/vaapi_encode.c  | 4 ++--
>  libavfilter/vf_deinterlace_vaapi.c | 2 +-
>  libavfilter/vf_scale_vaapi.c   | 2 +-
>  4 files changed, 6 insertions(+), 6 deletions(-)

Seems correct to me.

- Derek
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH 3/6] vaapi: Always free parameter buffers after vaEndPicture() with libva2

2017-10-08 Thread Mark Thompson
This is an ABI change in libva2: previously the Intel driver had this
behaviour and it was implemented as a driver quirk, but now it is part
of the specification so all drivers must do it.
---
 libavcodec/vaapi_decode.c  | 4 ++--
 libavcodec/vaapi_encode.c  | 4 ++--
 libavfilter/vf_deinterlace_vaapi.c | 2 +-
 libavfilter/vf_scale_vaapi.c   | 2 +-
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/libavcodec/vaapi_decode.c b/libavcodec/vaapi_decode.c
index 4f0ff84e01..5a555b2bd3 100644
--- a/libavcodec/vaapi_decode.c
+++ b/libavcodec/vaapi_decode.c
@@ -188,14 +188,14 @@ int ff_vaapi_decode_issue(AVCodecContext *avctx,
 av_log(avctx, AV_LOG_ERROR, "Failed to end picture decode "
"issue: %d (%s).\n", vas, vaErrorStr(vas));
 err = AVERROR(EIO);
-if (ctx->hwctx->driver_quirks &
+if (CONFIG_VAAPI_1 || ctx->hwctx->driver_quirks &
 AV_VAAPI_DRIVER_QUIRK_RENDER_PARAM_BUFFERS)
 goto fail;
 else
 goto fail_at_end;
 }
 
-if (ctx->hwctx->driver_quirks &
+if (CONFIG_VAAPI_1 || ctx->hwctx->driver_quirks &
 AV_VAAPI_DRIVER_QUIRK_RENDER_PARAM_BUFFERS)
 ff_vaapi_decode_destroy_buffers(avctx, pic);
 
diff --git a/libavcodec/vaapi_encode.c b/libavcodec/vaapi_encode.c
index e13e99587d..590f4be4ed 100644
--- a/libavcodec/vaapi_encode.c
+++ b/libavcodec/vaapi_encode.c
@@ -399,14 +399,14 @@ static int vaapi_encode_issue(AVCodecContext *avctx,
 err = AVERROR(EIO);
 // vaRenderPicture() has been called here, so we should not destroy
 // the parameter buffers unless separate destruction is required.
-if (ctx->hwctx->driver_quirks &
+if (CONFIG_VAAPI_1 || ctx->hwctx->driver_quirks &
 AV_VAAPI_DRIVER_QUIRK_RENDER_PARAM_BUFFERS)
 goto fail;
 else
 goto fail_at_end;
 }
 
-if (ctx->hwctx->driver_quirks &
+if (CONFIG_VAAPI_1 || ctx->hwctx->driver_quirks &
 AV_VAAPI_DRIVER_QUIRK_RENDER_PARAM_BUFFERS) {
 for (i = 0; i < pic->nb_param_buffers; i++) {
 vas = vaDestroyBuffer(ctx->hwctx->display,
diff --git a/libavfilter/vf_deinterlace_vaapi.c 
b/libavfilter/vf_deinterlace_vaapi.c
index 838eb89c90..44c5ae7642 100644
--- a/libavfilter/vf_deinterlace_vaapi.c
+++ b/libavfilter/vf_deinterlace_vaapi.c
@@ -539,7 +539,7 @@ static int deint_vaapi_filter_frame(AVFilterLink *inlink, 
AVFrame *input_frame)
 goto fail_after_render;
 }
 
-if (ctx->hwctx->driver_quirks &
+if (CONFIG_VAAPI_1 || ctx->hwctx->driver_quirks &
 AV_VAAPI_DRIVER_QUIRK_RENDER_PARAM_BUFFERS) {
 vas = vaDestroyBuffer(ctx->hwctx->display, params_id);
 if (vas != VA_STATUS_SUCCESS) {
diff --git a/libavfilter/vf_scale_vaapi.c b/libavfilter/vf_scale_vaapi.c
index 5f049a5d7b..22e928c098 100644
--- a/libavfilter/vf_scale_vaapi.c
+++ b/libavfilter/vf_scale_vaapi.c
@@ -361,7 +361,7 @@ static int scale_vaapi_filter_frame(AVFilterLink *inlink, 
AVFrame *input_frame)
 goto fail_after_render;
 }
 
-if (ctx->hwctx->driver_quirks &
+if (CONFIG_VAAPI_1 || ctx->hwctx->driver_quirks &
 AV_VAAPI_DRIVER_QUIRK_RENDER_PARAM_BUFFERS) {
 vas = vaDestroyBuffer(ctx->hwctx->display, params_id);
 if (vas != VA_STATUS_SUCCESS) {
-- 
2.11.0

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel