From patchwork Tue May 30 00:29:48 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: 41886 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:c51c:b0:10c:5e6f:955f with SMTP id gm28csp2095304pzb; Mon, 29 May 2023 17:30:01 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7cRGRoUlqw/nry6PE9y9sStdtZFGFrsf4xL7GmPtLvzdLaKmaqtueWGQT1bmc9i0TWGAcx X-Received: by 2002:a17:906:dac1:b0:973:cb21:8479 with SMTP id xi1-20020a170906dac100b00973cb218479mr636534ejb.70.1685406600969; Mon, 29 May 2023 17:30:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685406600; cv=none; d=google.com; s=arc-20160816; b=DIh0Gj8K1SHroaNnuvQnIrlCZ/2m/3+7DfCi8+vq2hHgCAxi+I3rhCahU7Wn1nXdwz MP0WXKrd21G9HLECEc40n/wIVQomeQejLxHTEupdfE7AbSo9Q+ueEEQu7LmvjIn9gZ9D r9D2BgzarBARUDofhKI2HuQLLYtys176RSOC5/vQVnmP3CSbhYWo+X9XhtoMV49uLe35 Wx+24aRHu0bjA/Ssmb1Nn7mf4N3147kauq/atuT3QT6WFF/iJKqjP5CNBq7jqrQN4whA La64CMLY0R0yf6hfv5zjhSFvYtHbaLyAABcBeFeGRcoIKN9VmeIe9J4ygl5Ekgq0uMtP JbXA== 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=RoPb1WehNvI0MNK3C5tlx+GjBdEm8FDlaSEjytoV3tpER32/BnCL6njLOiNjNzrYDV EU1x8qXFuGTtYTWU7ltE1gBSYWKeepXT2xYOAjw9/rJ5m8XhmeYjEglFwNXYQr4E4bnz 1COwNlf5yywxE//GZxzXyKwhk2aOTdBf6fvytYxZoEGVs/GZh0WHMzmZ1WEyWTIQC4ro MzhUpHQmeTBoX9tvMJQCrnJHH/d+LxsoCahA3j6fat3IhrKXH9ZhXXrVF4xcNezFDdrs yyQSKfnz9as+pfJJTbzmns9OhFFShq/eE4TXxl1rDn113s72Yi02RJ4RbCz5uM3OY8+I 6POg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=Mdy+KGKD; 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 uz10-20020a170907118a00b00965d87098b3si6762136ejb.987.2023.05.29.17.30.00; Mon, 29 May 2023 17:30:00 -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=Mdy+KGKD; 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 3660E68C212; Tue, 30 May 2023 03:29:56 +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 0AB8A68BE95 for ; Tue, 30 May 2023 03:29:48 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1685406594; x=1716942594; h=from:to:subject:date:message-id:mime-version: content-transfer-encoding; bh=jGKMmV1usHodb36vSAjUfiVBRXwiX/Gv8k/L6BYCFZU=; b=Mdy+KGKDu3oWB56VY+FA5J5rab0xUDG2QXcqntekS70wtw0DiSdTEJjx Im2Ta+WESaStKHAyTlnZw8UYeGqG9Ak4QZdim+pofqebd97517Hmvu8L1 OIjwF+E0MkO3h3nwbZNyuiaNBwJrV0Z6aoQ9l50WVtrVzTOI8/68zGtNS fNEmyETkbAsyE9AR0BoSeYSfQolJe4WPB1blj+fFGbz7bBr0D7hKVynqQ XZywhmDHbpi1oIJFtC7ETDFG2R2XROMGXNqdeATaCAbOxZUmaA033fMCG JDqqyhm2ZXMMHmCz24crmmTo82FcUPobKKCRwIKK2lIvuPWuRd1ehTpD9 w==; X-IronPort-AV: E=McAfee;i="6600,9927,10725"; a="383041733" X-IronPort-AV: E=Sophos;i="6.00,201,1681196400"; d="scan'208";a="383041733" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 May 2023 17:29:46 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10725"; a="1036367625" X-IronPort-AV: E=Sophos;i="6.00,201,1681196400"; d="scan'208";a="1036367625" Received: from t.sh.intel.com ([10.239.159.159]) by fmsmga005.fm.intel.com with ESMTP; 29 May 2023 17:29:45 -0700 From: Fei Wang To: ffmpeg-devel@ffmpeg.org Date: Tue, 30 May 2023 08:29:48 +0800 Message-Id: <20230530002950.1590409-1-fei.w.wang@intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v1 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: Ixy/EeS5MGvP 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