From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id B068149A67 for ; Sun, 28 Apr 2024 07:39:37 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 38E7668D3C1; Sun, 28 Apr 2024 10:39:34 +0300 (EEST) Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.9]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0834568CAFB for ; Sun, 28 Apr 2024 10:39:26 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1714289972; x=1745825972; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=gWtcdV8wg8IHBSL9viRb6RE/sKmwDL3vZcLmDXwef4Q=; b=Ssg6tRFCAExroVvB8XtjUIO0ixy0IsWTr96Q5N99IAPhMkZ5LzN8q+ST yyU9nb7SbKTiMdXgbZOcDfIz6hzs/AbmXu/Z3NW8mIbtdktKM+QaqLrFM s77alnjlG73iakaV/Z0GAIpRvcPvBOxNoHZ4YQ0mtFe3iz+BQ54fzEgLd 0I4J4N0Y+j25MCIvH4p93c25kkzjpRXgaxofe6yy8+EFULnSgxMFtjFfS SV/Cwr/u9wlGbcqHvQnWi94FTK6M41grvBlaXqQrpVmqAwaHqPvypj7Pr ubV/YMEc6suFU/XC8a4Tng96y5gD9xVGRQLhyfWzgVttPLihvFu7ejVXu w==; X-CSE-ConnectionGUID: ishrYgtyRYO4c8clIYIYqw== X-CSE-MsgGUID: Pagt1Xm6Tbaimz2fJav9tQ== X-IronPort-AV: E=McAfee;i="6600,9927,11057"; a="20662189" X-IronPort-AV: E=Sophos;i="6.07,237,1708416000"; d="scan'208";a="20662189" Received: from orviesa003.jf.intel.com ([10.64.159.143]) by fmvoesa103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Apr 2024 00:39:24 -0700 X-CSE-ConnectionGUID: wX4+Xgg2RDqH5R1XJNpyQQ== X-CSE-MsgGUID: mRcGtlBvSBy2Wd163flu3Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,237,1708416000"; d="scan'208";a="30491620" Received: from unknown (HELO xhh-dg264.sh.intel.com) ([10.238.2.76]) by ORVIESA003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Apr 2024 00:39:23 -0700 From: "Xiang, Haihao" To: ffmpeg-devel@ffmpeg.org Date: Sun, 28 Apr 2024 15:39:03 +0800 Message-Id: <20240428073911.423287-1-haihao.xiang@intel.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/9] lavu/hwcontext_qsv: update AVQSVFramesContext to support dynamic frame pool 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: Haihao Xiang Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: From: Haihao Xiang Add AVQSVFramesContext.info and update the description. Signed-off-by: Haihao Xiang --- doc/APIchanges | 3 +++ libavutil/hwcontext_qsv.c | 4 ++-- libavutil/hwcontext_qsv.h | 28 +++++++++++++++++++++++++--- libavutil/version.h | 4 ++-- 4 files changed, 32 insertions(+), 7 deletions(-) diff --git a/doc/APIchanges b/doc/APIchanges index 0566fcdcc5..4a434b2877 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -2,6 +2,9 @@ The last version increases of all libraries were on 2024-03-07 API changes, most recent first: +2024-04-xx - xxxxxxxxxx - lavu 59.17.100 - hwcontext_qsv.h + Add AVQSVFramesContext.info + 2024-04-24 - 8616cfe0890 - lavu 59.16.100 - opt.h Add AV_OPT_SERIALIZE_SEARCH_CHILDREN. diff --git a/libavutil/hwcontext_qsv.c b/libavutil/hwcontext_qsv.c index c7c7878644..f552811346 100644 --- a/libavutil/hwcontext_qsv.c +++ b/libavutil/hwcontext_qsv.c @@ -627,7 +627,7 @@ static mfxStatus frame_alloc(mfxHDL pthis, mfxFrameAllocRequest *req, QSVFramesContext *s = ctx->hwctx; AVQSVFramesContext *hwctx = &s->p; mfxFrameInfo *i = &req->Info; - mfxFrameInfo *i1 = &hwctx->surfaces[0].Info; + mfxFrameInfo *i1 = hwctx->nb_surfaces ? &hwctx->surfaces[0].Info : hwctx->info; if (!(req->Type & MFX_MEMTYPE_VIDEO_MEMORY_PROCESSOR_TARGET) || !(req->Type & (MFX_MEMTYPE_FROM_VPPIN | MFX_MEMTYPE_FROM_VPPOUT)) || @@ -1207,7 +1207,7 @@ static int qsv_init_internal_session(AVHWFramesContext *ctx, MFX_IOPATTERN_OUT_SYSTEM_MEMORY; par.AsyncDepth = 1; - par.vpp.In = frames_hwctx->surfaces[0].Info; + par.vpp.In = frames_hwctx->nb_surfaces ? frames_hwctx->surfaces[0].Info : *frames_hwctx->info; /* Apparently VPP requires the frame rate to be set to some value, otherwise * init will fail (probably for the framerate conversion filter). Since we diff --git a/libavutil/hwcontext_qsv.h b/libavutil/hwcontext_qsv.h index e2dba8ad83..9e43a237d4 100644 --- a/libavutil/hwcontext_qsv.h +++ b/libavutil/hwcontext_qsv.h @@ -25,8 +25,8 @@ * @file * An API-specific header for AV_HWDEVICE_TYPE_QSV. * - * This API does not support dynamic frame pools. AVHWFramesContext.pool must - * contain AVBufferRefs whose data pointer points to an mfxFrameSurface1 struct. + * AVHWFramesContext.pool must contain AVBufferRefs whose data pointer points + * to a mfxFrameSurface1 struct. */ /** @@ -51,7 +51,29 @@ typedef struct AVQSVDeviceContext { * This struct is allocated as AVHWFramesContext.hwctx */ typedef struct AVQSVFramesContext { - mfxFrameSurface1 *surfaces; + /** + * A pointer to a mfxFrameSurface1 or mfxFrameInfo struct + * + * When nb_surfaces is non-zero, it is a pointer to a mfxFrameSurface1 + * struct. + * + * When nb_surfaces is 0, it is a pointer to a mfxFrameInfo struct, all + * buffers allocated from the pool have the same mfxFrameInfo. + */ + union { + mfxFrameSurface1 *surfaces; + mfxFrameInfo *info; + }; + + /** + * Number of frames in the pool + * + * It is 0 for dynamic frame pools or AVHWFramesContext.initial_pool_size + * for fixed frame pools. + * + * Note only oneVPL GPU runtime 2.9+ can support dynamic frame pools + * on d3d11va or vaapi + */ int nb_surfaces; /** diff --git a/libavutil/version.h b/libavutil/version.h index 735f6832e3..3b5a2e7aaa 100644 --- a/libavutil/version.h +++ b/libavutil/version.h @@ -79,8 +79,8 @@ */ #define LIBAVUTIL_VERSION_MAJOR 59 -#define LIBAVUTIL_VERSION_MINOR 16 -#define LIBAVUTIL_VERSION_MICRO 101 +#define LIBAVUTIL_VERSION_MINOR 17 +#define LIBAVUTIL_VERSION_MICRO 100 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ LIBAVUTIL_VERSION_MINOR, \ -- 2.34.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".