From patchwork Fri Jun 16 00:58:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wang, Fei W" X-Patchwork-Id: 42125 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:c526:b0:117:ac03:c9de with SMTP id gm38csp1172933pzb; Thu, 15 Jun 2023 17:58:48 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4NrimOQMW2XKrTIsr6fnqu/iyrGF+ONouzk2Fad7F78HzGccHO7aB+XXQuODJtB4gw6wqo X-Received: by 2002:a05:6512:32b1:b0:4ef:f09c:c505 with SMTP id q17-20020a05651232b100b004eff09cc505mr170343lfe.37.1686877127825; Thu, 15 Jun 2023 17:58:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686877127; cv=none; d=google.com; s=arc-20160816; b=NUY6JGjjpbPBRnqI30Uvh9UzUgwg19cz/Gr8DhXldxmUa6m8jXvBgO+d8p6dBiBUqN E6+xuEk3kQrxNE6LRzz9p2Ba20tCjX9GeEdFYyqBsJGBCnuH9yyD0aPk2l4VOZIu4YEc p8TkEwa5E5SdzDHQhwW09ulqC8Pmw7I5SU1dNVXrqQCVk2eDv3acUJo1/dzBfNMQH/PN iU9y3BUz1yN1XwiXqNN7Fmo1vfRoU1oYG2c69LHYixFWClY954l2E2cK/bcVJrZEUfRx k5TD/TnTLuDxMowYlqK6ewfXCboh0GRSricRMNZChRmIC9x9eON/K9M0zZdlBvShhCcF vAYg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=Z+zBdhcWBsWEVnVLu4UWqEBmepdqkplQJWhw40xZiRY=; b=oOYDUBbALd8WGf6aJGUUdnba0oGUEzeW6Yyh4yYkH6rULF1e9ckfVZKWzG4iFmAj/W ATduOoWSkUTVMnYngPpeNRM9aQtNeIyZAqEADKJZruhPpkNcZldlq8n+fqYDuS80aQi3 MgQzQN3zhSveoHFRb3NgczInHWFMVgBn5EbTPkZSd5wfVt0UOi/iVOosOorRP+OByRC5 fmIy5nhX554vB2mXFr6J1WWN8nb5UT5+P0nth90AwPmygDP8y8wnRL1M1mSVxvEti7BF Z3TG9xpfmHwyV8DpYF+6DfFgBkDGrdnrYKrwUJ1fywGSOfdIZ4dvndIdtz5tWBEoYOPV vJbQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=AIvxoKa2; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id r16-20020aa7cfd0000000b00514a41ecf6bsi5970262edy.628.2023.06.15.17.58.47; Thu, 15 Jun 2023 17:58:47 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=AIvxoKa2; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 810B368C59C; Fri, 16 Jun 2023 03:58:43 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BFA4D68C51F for ; Fri, 16 Jun 2023 03:58:35 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1686877120; x=1718413120; h=from:to:subject:date:message-id:mime-version: content-transfer-encoding; bh=jGKMmV1usHodb36vSAjUfiVBRXwiX/Gv8k/L6BYCFZU=; b=AIvxoKa2701G/tIx9uOSoZYyA9q6KXkE4JOsgbZOupi0O6my6s4Dd59a mwp+klz6DScGFwH/Rk9UWUgA9zwCmUYNC9E7uaADtOvEKlNfdibvOH3ap ca0GtUnLX6Js9ETykFhEwDYmpPygAiaha/svIHjTeVZdEbXkgVzDZidgI gF9exFuyoq4U5iBI9WfVgL95m0lXxM+IQjyibTMQSq9ucuoI5eb5KZWid FDJGI40usdy9/NzvAe+i69Gt0apMHknYLgOi5mWXPZez+KnPS5vI8y80R TELK19e+Sve59DjG8QwwVCLsmH0BupvAiWp2BtTPJnee/ofbTuUAInURj w==; X-IronPort-AV: E=McAfee;i="6600,9927,10742"; a="387700939" X-IronPort-AV: E=Sophos;i="6.00,246,1681196400"; d="scan'208";a="387700939" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Jun 2023 17:58:22 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10742"; a="1042892207" X-IronPort-AV: E=Sophos;i="6.00,246,1681196400"; d="scan'208";a="1042892207" Received: from t-dg2.sh.intel.com ([10.238.200.108]) by fmsmga005.fm.intel.com with ESMTP; 15 Jun 2023 17:58:22 -0700 From: Fei Wang To: ffmpeg-devel@ffmpeg.org Date: Fri, 16 Jun 2023 08:58:08 +0800 Message-Id: <20230616005810.792849-1-fei.w.wang@intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 1/3] lavfi/vaapi: Add function to get surface ID from AVFrame X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: j/tHZNkcCk7K Signed-off-by: Fei Wang --- 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