[FFmpeg-devel] [PATCH v2 1/3] lavfi/vaapi: Add function to get surface ID from AVFrame
Xiang, Haihao
haihao.xiang at intel.com
Tue Jun 20 05:33:49 EEST 2023
On Vr, 2023-06-16 at 08:58 +0800, Fei Wang wrote:
> Signed-off-by: Fei Wang <fei.w.wang at intel.com>
> ---
> libavfilter/vaapi_vpp.c | 10 ++--------
> libavfilter/vaapi_vpp.h | 5 +++++
> 2 files changed, 7 insertions(+), 8 deletions(-)
>
> diff --git a/libavfilter/vaapi_vpp.c b/libavfilter/vaapi_vpp.c
> index a323dab8b8..10d31977c6 100644
> --- a/libavfilter/vaapi_vpp.c
> +++ b/libavfilter/vaapi_vpp.c
> @@ -518,7 +518,6 @@ int ff_vaapi_vpp_init_params(AVFilterContext *avctx,
> AVFrame *output_frame)
> {
> VAAPIVPPContext *ctx = avctx->priv;
> - VASurfaceID input_surface;
> int err;
>
> ctx->input_region = (VARectangle) {
> @@ -534,10 +533,8 @@ int ff_vaapi_vpp_init_params(AVFilterContext *avctx,
> output_frame->crop_left = 0;
> output_frame->crop_right = 0;
>
> - input_surface = (VASurfaceID)(uintptr_t)input_frame->data[3],
> -
> *params = (VAProcPipelineParameterBuffer) {
> - .surface = input_surface,
> + .surface = ff_vaapi_vpp_get_surface_id(input_frame),
> .surface_region = &ctx->input_region,
> .output_region = NULL,
> .output_background_color = VAAPI_VPP_BACKGROUND_BLACK,
> @@ -623,7 +620,6 @@ int ff_vaapi_vpp_render_pictures(AVFilterContext *avctx,
> AVFrame *output_frame)
> {
> VAAPIVPPContext *ctx = avctx->priv;
> - VASurfaceID output_surface;
> VABufferID *params_ids;
> VAStatus vas;
> int err;
> @@ -635,10 +631,8 @@ int ff_vaapi_vpp_render_pictures(AVFilterContext *avctx,
> for (int i = 0; i < cout; i++)
> params_ids[i] = VA_INVALID_ID;
>
> - output_surface = (VASurfaceID)(uintptr_t)output_frame->data[3];
> -
> vas = vaBeginPicture(ctx->hwctx->display,
> - ctx->va_context, output_surface);
> + ctx->va_context,
> ff_vaapi_vpp_get_surface_id(output_frame));
> if (vas != VA_STATUS_SUCCESS) {
> av_log(avctx, AV_LOG_ERROR, "Failed to attach new picture: "
> "%d (%s).\n", vas, vaErrorStr(vas));
> diff --git a/libavfilter/vaapi_vpp.h b/libavfilter/vaapi_vpp.h
> index ead07036dc..cc845b854c 100644
> --- a/libavfilter/vaapi_vpp.h
> +++ b/libavfilter/vaapi_vpp.h
> @@ -27,6 +27,11 @@
>
> #include "avfilter.h"
>
> +static inline VASurfaceID ff_vaapi_vpp_get_surface_id(const AVFrame *frame)
> +{
> + return (uintptr_t)frame->data[3];
> +}
> +
> // ARGB black, for VAProcPipelineParameterBuffer.output_background_color.
> #define VAAPI_VPP_BACKGROUND_BLACK 0xff000000
>
Patchset LGTM and will apply.
Thanks
Haihao
More information about the ffmpeg-devel
mailing list