From patchwork Thu Feb 8 07:38:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wu, Tong1" X-Patchwork-Id: 46098 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:a586:b0:19e:8a94:b663 with SMTP id gd6csp102373pzc; Wed, 7 Feb 2024 23:39:41 -0800 (PST) X-Google-Smtp-Source: AGHT+IFG6IxqwcvBqc/vbxOYyPSuRmmXDZKOr+QdAQAoV/13Ja+/85fOU7xGADgMsZ+UZBv4I57D X-Received: by 2002:a17:906:f117:b0:a38:20ed:e07a with SMTP id gv23-20020a170906f11700b00a3820ede07amr4901872ejb.3.1707377980960; Wed, 07 Feb 2024 23:39:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1707377980; cv=none; d=google.com; s=arc-20160816; b=BFy+dlDQ4AGwZV1Z19Kse7QF7l7bDQQIzYAEFOL4dP+bZbyBnyGlKxrSrabJHZmiTi MHlTCoDA+Meq8JXdAxCY1dVFbxeM0pQEYJHwSvy/QtBRMk1mMkk5By4KSXgOf0GgFExE ZygGzbjNSLKzjAXVePO7nmJtTfHqU9PCJjZfAvvtUsBa5k6jd25Hp3wI8RikCkTSx9/Q Y7eTjZnYv4+3Frp82j40WfgpT5JEkblVVOn71xQSJB9f/Qe7KmgHEjNx2cgErPEsKTRf euhJEeUDHxqCK3NoUcRUALYMvd/3a19Za3ZqGQwoygF24mbHKbNgZ+37yI3iCueUD4SK G/nA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc: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=uzI+IRkcIMcYhTr7+YMQVvzNxUZqtPWdSsILtTlBp7M=; fh=1LG8COdjIV56xMgmJhaJQSWU3iHhXzApoZMKZdv544E=; b=NxgLTKyypmcVb/+amlOYHrHAIDJxaBwXIJgsskawrXUzWxvU6rHJUn/eFa111rFOeJ fQpctGoHuLxzhVLagdZfvhMwEJxU2KpXxwW/JWQRKZQtTKRqt0h7QKbsYYTDjEfyvxUF 9G30cNgY8d0YBA+6F2AYqfIppZ/j++S2xFQjkoRiJZ+M4DLK8OON0XRMqfUdw8vfLKay toYhH3VkHNMVA0C91wTpg+nSTETer1Byv0KQyeVrPmnYWYxGrVR0GE7Vn/p+fun0BOZb xznPNONBuzXYyM3BzyAs2MrhMb16zUxIzI1aSps9h4bXEJEw/f47ysoacxR15e306JGz Ry0w==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=nztvlYmj; 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 X-Forwarded-Encrypted: i=1; AJvYcCUHzqS/0ewCXMieSII37jEtKiFOEHXYZXyWJn7e3lPF1IrpZmTeU9sCdd2v/qqkG60MKjM2nVCfp2bWTh++aWwv3ol+Kq572q/+KbPI0ZhRnZ2wpaIn/FOYE4L533ANPgg7sFgMu4yniolb/L3x1WKvP0Nc0b5dqHGe6BYfEbKx0TCYINshkPweQA9+xNZJ5O1Q4mAgwzSlEn9yviykKw0mC6VjlCcaatxy1AEo4sgoh6nLhx5bEda9FgaSvhI0b8wPq7IaR3ImA0ptWSdvf0NNNrfsmkIBq+DJggXTfhr6bIvMezvLb/dgEN1sB6P6XImN/54Wwqt5kd9QjTOYv+b00mwTggLg+lxZbhDtpntvJpguC1Yytnu3wX4xO6NUAK6MXi5NUEkJC0w3BaVLJOplH6kyLW7HbsWVPx6jcMPZgD8cpoBMZsg7ehttxkRFSiKAV5IxR3bbFhOe+FoJHRjxMIeO4BCrU8X8XYjn3Ktm6L2DC3IAh81VS9I7I4Z1Ak68uUXQj/R9fWWaQ2BcglyPB2Bhi7iZLp/44fc9DXIrkdXGMx4QH6yj+XJdYHOybFmO+Y52l8hN72xJn89S2F8gFd//SEjwi6/8keeII0Y3kt4Rirt92zcr+t9jrjreC75Qqm5EuUhBvHN2xmK/5bxSJF3Tq5AMd9rs6qeAMWEHTJbH+kMeILV9EXqgWckXuNOz0L34ZObdMXBMoUC1TNNFVX1nRvxXdlm/GWVsGriS2AkxWs8ioeXBIgLv/YApOk8CCgpyhF5bfJXs5CKKVK4gKSNplmla/4mq5qmZee/t7HUyJ+d/6EjcpW8q59t6sI2VCZGt/Ym1M2143n/IJckvqm7ERK4Tj3Gx95IxwmIX8VJI0vfU3c1llSjM3nKQICNXdkHT0C1jctzhpMf8+FUqklk0g82I5u6BIGIxvcZq0nQNV7Zr0DOhXMRXazshlShLAD W1H8J/qt/6hT/uTWPecIAzXGx/Ct5Dt6RfjEKsK+iAqDgm8yUTgjd5y/wmhpt6e7edJHF9/2HVfEYoFTG6UC2GXSme0MRRF09JB5i7r3qbwbyJVJLmwitVafqa6dAIFcW53O5RYQsewBwS3v6WcHH5n1bMxHfIkrTlLgcNRco1ivtNNHIwMbSEYPR5G3u5iprrN+SLplvZZJogyyjXyTtKsULLYFLxOs46r5By+SU3XlxSAWJdrSiPqW2GDSaKWg6PC/lHpws3diBrTOB1pj5rlQF4MkJz6WEt0yX3YqYkIG344lgsIZRuuMYZpAtlNY7EXXmHDDSEhyEFbIJO3lLPrqjS/QZd+rTbbryhIiDRhrANwMoDh4hws1jdBHEGPJkYA2BQxutVfsBYjyMcAfn3zMzoOBbCoAjtRwCbqZWl6BeJRcOzqeSzocWDRahwn6lsybpM8QY+2l3BSadG1+gq5TR+gODVZLkJ2T1gbV2EKv39hS2/ALHwzju6pePkRJf452jhHrzcpE5X/0Pr5NAuZxh7EAQXYtrgP8JDi4TbLu1UzrP6XESz4IOItPf+io3P/lB/iGSo04O9tF0Vema32lAc/jyKGQ== Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id g19-20020a1709061c9300b00a381b930bdcsi1888838ejh.846.2024.02.07.23.39.40; Wed, 07 Feb 2024 23:39:40 -0800 (PST) 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=nztvlYmj; 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 08D7768D17E; Thu, 8 Feb 2024 09:39:37 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.18]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BD24E68D0D2 for ; Thu, 8 Feb 2024 09:39:29 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1707377975; x=1738913975; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=nPX8hDdQDoHgrEuen6hklEx9JFyoZve2MB3Rt7SgoFQ=; b=nztvlYmjJFkkXDPlYqefthDc4/2lXTtryiltsZqSCpMcTOqiUcGYWovv /oWBCfW1X86eoaMpWilHlWHOBO4FkfbZR4YLV9EyWRbgw74yCWpgop1O5 6y/M6YiYAiIEwlpSFG0f//aTQz1CcuvTnmtOArU515OPBmaf2/btsDBNp WcH+B7WEYCy4q7TO/bRzRrCDVIoJMPbON+XteJJsoWhHy785R8dB/gFYO Swh1o5/qKlkOcqJU5xAo1304VmeBD2ekLslq0Rk6exBXY7T68kX3c9nCf fAS0OuP79vjFBmJ/q/UHMe7guAGSM2M2bIFF0RNbNy9w9mlNJEwmsxmoB Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10977"; a="1047691" X-IronPort-AV: E=Sophos;i="6.05,252,1701158400"; d="scan'208";a="1047691" Received: from orviesa002.jf.intel.com ([10.64.159.142]) by fmvoesa112.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Feb 2024 23:39:27 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.05,252,1701158400"; d="scan'208";a="32390247" Received: from desktop-qn7n0nf.sh.intel.com (HELO localhost.localdomain) ([10.239.160.66]) by orviesa002.jf.intel.com with ESMTP; 07 Feb 2024 23:39:26 -0800 From: tong1.wu-at-intel.com@ffmpeg.org To: ffmpeg-devel@ffmpeg.org Date: Thu, 8 Feb 2024 15:38:16 +0800 Message-ID: <20240208073824.206-1-tong1.wu@intel.com> X-Mailer: git-send-email 2.41.0.windows.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v4 1/9] avcodec/vaapi_encode: move pic->input_surface initialization to encode_alloc 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 Cc: Tong Wu Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 4l/n2VuKJWR9 From: Tong Wu When allocating the VAAPIEncodePicture, pic->input_surface can be initialized right in the place. This movement simplifies the send_frame logic and is the preparation for moving vaapi_encode_send_frame to the base layer. Signed-off-by: Tong Wu --- libavcodec/vaapi_encode.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libavcodec/vaapi_encode.c b/libavcodec/vaapi_encode.c index 86f4110cd2..38d855fbd4 100644 --- a/libavcodec/vaapi_encode.c +++ b/libavcodec/vaapi_encode.c @@ -878,7 +878,8 @@ static int vaapi_encode_discard(AVCodecContext *avctx, return 0; } -static VAAPIEncodePicture *vaapi_encode_alloc(AVCodecContext *avctx) +static VAAPIEncodePicture *vaapi_encode_alloc(AVCodecContext *avctx, + const AVFrame *frame) { VAAPIEncodeContext *ctx = avctx->priv_data; VAAPIEncodePicture *pic; @@ -895,7 +896,7 @@ static VAAPIEncodePicture *vaapi_encode_alloc(AVCodecContext *avctx) } } - pic->input_surface = VA_INVALID_ID; + pic->input_surface = (VASurfaceID)(uintptr_t)frame->data[3]; pic->recon_surface = VA_INVALID_ID; pic->output_buffer = VA_INVALID_ID; @@ -1332,7 +1333,7 @@ static int vaapi_encode_send_frame(AVCodecContext *avctx, AVFrame *frame) if (err < 0) return err; - pic = vaapi_encode_alloc(avctx); + pic = vaapi_encode_alloc(avctx, frame); if (!pic) return AVERROR(ENOMEM); @@ -1345,7 +1346,6 @@ static int vaapi_encode_send_frame(AVCodecContext *avctx, AVFrame *frame) if (ctx->input_order == 0 || frame->pict_type == AV_PICTURE_TYPE_I) pic->force_idr = 1; - pic->input_surface = (VASurfaceID)(uintptr_t)frame->data[3]; pic->pts = frame->pts; pic->duration = frame->duration;