From patchwork Thu Apr 18 08:59:03 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wu, Tong1" X-Patchwork-Id: 48142 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:ce4e:b0:1a9:af23:56c1 with SMTP id id14csp1552241pzb; Thu, 18 Apr 2024 02:02:14 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCV01LaCXRxIMNpQyUlp8BP8/VkeFyciAv02eQ7ld5c6+h4bdpUnEqs9jSHw/rnzpINkVz4IekhJk3mAYbe/afLaDgLEH3tUkSOCGA== X-Google-Smtp-Source: AGHT+IH1Qm+UUzpeiCPoklG09CBHf0yz+OOrI9E5R1aZXnoxAuYyNXEUZvbDYS0IQJjswsBPIXPG X-Received: by 2002:a2e:900e:0:b0:2da:4a18:c0b9 with SMTP id h14-20020a2e900e000000b002da4a18c0b9mr1084731ljg.5.1713430933782; Thu, 18 Apr 2024 02:02:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1713430933; cv=none; d=google.com; s=arc-20160816; b=Ax9fg6TZRkXKHnpvJvPcYvA5Ha4OWF+wOfbL2aEIKTfnF8MN+ApvUfznf2dkk/Zk2G xYxMMFiW9inVKNMVcGwLNYT/DG7DAVQjjnuYAuOSQZdCUFUl963qpQ1BFC8/T3UGlXMr 2otZip8bVWSILX6dZbC3nxe9ihPYXkTR4kcUbK7YTTqSP8UOu0rYjnWLTfQHxaSLdyh3 r2dIFnf4NVFcQkBqCR0IMIR/asrCqHJfMhtXtgh6g6P2G6AbJijjO5A53WFW0Y2RgRmH ygVIOXZTSbPUaQ8JrDwtawPL24rrlrmJMXMxtta60Eiaym10aBodXodQNxMlL6/6BDSh NRuw== 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:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=OzcxA4lthEQTxuCQW8svD1Mx4uB2cVtJcNbhPNwMdmY=; fh=CX/m9qTuMDwrotqtm4RkAOJT6yXlKL2vcfWDitFPXZs=; b=AjjpLEZ6+u+fK2mEWS723TLdlNRZYLJ31F63WP3NqcXfFQTOntJuCNTIfM+TyATIpH b0O35MythtGKPFZ6lI5vt3x6VFyg6EFrvlsjL+UfT7HUpQK+irnjWP3GCTPgcPi0csM2 IV61oIfGtEPVlw9237a3MjnxeZ2RuJWaoj5dTQXpp/ZxwmJTANBHxPpHxYt7P0BwePOT ssnH5OOBXB6ZQW5iYm6/9A49NjuKtS37N/ZwvxOmbcmW1WSL+oYprDjvJXGAuxOfsiLB 64xjspUCcfc84fCXTrcsIhNYv0yx2iY1F5PW9sVEeWevsxNgNJ8W8HnpH7BCulSOK5p+ deyA==; 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=E5k5KXli; 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 b18-20020a05640202d200b0056e47321892si626521edx.374.2024.04.18.02.02.13; Thu, 18 Apr 2024 02:02:13 -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=E5k5KXli; 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 73F9C68D43E; Thu, 18 Apr 2024 12:01:12 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B9DF868D41D for ; Thu, 18 Apr 2024 12:01:09 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1713430870; x=1744966870; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=hbBU3X8U+lBANwN1oBcLSgvsZLJC+yGUPfdn8eqeh1Q=; b=E5k5KXliAaS/7VXn0/KpYOsc4gBaw/pDjDtF47mQoYDHakf6u3mmW4WN y4fAsMsM+QFs0o6Mr0ZA5EYKJ03Hl68+X09ycHG5e7wTXhepwaqF0tfiT 54glPJYPyE6Zqaz1exXJS3k2eAxML0zHHbf9y1U8aIXPMZYM/iIxpXohe doCC33omyyjBMiMkjDlYz5tFGc6pdU5IND7i+Fpl3HC2IuzWy6uNCYgz8 hgoFY6qYwZC6ry8zBk9oJmDQzZ7O6o4ApwvLL7Et1iX373p0GuBeeeAOb 6MXk1x0c8neW5oz8+Gcs2qllWp8xczBXbWGvnoyUiA53v8b336yB0Uqfr w==; X-CSE-ConnectionGUID: LD0UycM1RAm3XYC6YpxSIw== X-CSE-MsgGUID: VD6PKd9+QeSOtlYFL2Q4Ig== X-IronPort-AV: E=McAfee;i="6600,9927,11047"; a="12748343" X-IronPort-AV: E=Sophos;i="6.07,211,1708416000"; d="scan'208";a="12748343" Received: from fmviesa001.fm.intel.com ([10.60.135.141]) by fmvoesa106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Apr 2024 02:00:56 -0700 X-CSE-ConnectionGUID: 50DDhbQ4T6yJrLL/pYN0iw== X-CSE-MsgGUID: ZC2hg/y0RreI7DHjaldeBA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,211,1708416000"; d="scan'208";a="54127580" Received: from unknown (HELO localhost.localdomain) ([10.239.160.66]) by fmviesa001.fm.intel.com with ESMTP; 18 Apr 2024 02:00:52 -0700 From: tong1.wu-at-intel.com@ffmpeg.org To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Apr 2024 16:59:03 +0800 Message-ID: <20240418085910.547-9-tong1.wu@intel.com> X-Mailer: git-send-email 2.41.0.windows.1 In-Reply-To: <20240418085910.547-1-tong1.wu@intel.com> References: <20240418085910.547-1-tong1.wu@intel.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v8 09/15] avcodec/vaapi_encode: extract a close function for base layer 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: 2NmOka55QyZG From: Tong Wu Signed-off-by: Tong Wu --- libavcodec/hw_base_encode.c | 16 ++++++++++++++++ libavcodec/hw_base_encode.h | 2 ++ libavcodec/vaapi_encode.c | 8 +------- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/libavcodec/hw_base_encode.c b/libavcodec/hw_base_encode.c index 6e450f9dca..fa954d984d 100644 --- a/libavcodec/hw_base_encode.c +++ b/libavcodec/hw_base_encode.c @@ -685,3 +685,19 @@ int ff_hw_base_encode_init(AVCodecContext *avctx) return 0; } + +int ff_hw_base_encode_close(AVCodecContext *avctx) +{ + HWBaseEncodeContext *ctx = avctx->priv_data; + + av_fifo_freep2(&ctx->encode_fifo); + + av_frame_free(&ctx->frame); + av_packet_free(&ctx->tail_pkt); + + av_buffer_unref(&ctx->device_ref); + av_buffer_unref(&ctx->input_frames_ref); + av_buffer_unref(&ctx->recon_frames_ref); + + return 0; +} diff --git a/libavcodec/hw_base_encode.h b/libavcodec/hw_base_encode.h index 3eea3ef998..d822175fcf 100644 --- a/libavcodec/hw_base_encode.h +++ b/libavcodec/hw_base_encode.h @@ -209,6 +209,8 @@ int ff_hw_base_init_gop_structure(AVCodecContext *avctx, uint32_t ref_l0, uint32 int ff_hw_base_encode_init(AVCodecContext *avctx); +int ff_hw_base_encode_close(AVCodecContext *avctx); + #define HW_BASE_ENCODE_COMMON_OPTIONS \ { "idr_interval", \ "Distance (in I-frames) between key frames", \ diff --git a/libavcodec/vaapi_encode.c b/libavcodec/vaapi_encode.c index 8640a888b7..41d0d0f2bc 100644 --- a/libavcodec/vaapi_encode.c +++ b/libavcodec/vaapi_encode.c @@ -2397,16 +2397,10 @@ av_cold int ff_vaapi_encode_close(AVCodecContext *avctx) ctx->va_config = VA_INVALID_ID; } - av_frame_free(&base_ctx->frame); - av_packet_free(&base_ctx->tail_pkt); - av_freep(&ctx->codec_sequence_params); av_freep(&ctx->codec_picture_params); - av_fifo_freep2(&base_ctx->encode_fifo); - av_buffer_unref(&base_ctx->recon_frames_ref); - av_buffer_unref(&base_ctx->input_frames_ref); - av_buffer_unref(&base_ctx->device_ref); + ff_hw_base_encode_close(avctx); return 0; }