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 BE647494E4 for ; Mon, 12 Feb 2024 00:17:20 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 17ED268D147; Mon, 12 Feb 2024 02:17:19 +0200 (EET) Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01olkn2089.outbound.protection.outlook.com [40.92.66.89]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7516468CF92 for ; Mon, 12 Feb 2024 02:17:12 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hjKRYpkhtQo4wl4OMRPVxXPwFCfqrk+b3LDolQnszAbXxYjEJ/pOQAb+xsbnpEjs2ixjxypGXyLCTMvaExlzZKlEjIIBHMXOA0ZxZ+HbP0I0FyxaxIWTq35aCzudt1PwmFG+Qj25yGYCXqz8Y1cyFpj3q1JbqRfj8RjNI750ioqSxVHF5cq+aTUgr4xZ5OjaqZqZdte4LLzhKoaW7ZLGn6lWsb3UmzRPAhyEUK3+Y+H6X40TjpfuadpjNVEVWBCBXuxCE6SyboWquJGWTtwGjPOiqj8CuFb3y4VCzs/Ew4CtKjU5LKq72/jgcnCvb9PPo1ka/HY8d9badskmED49kw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=05fL07DPzvLXs0zAzCf4eDl5XuKvbt3Qf7Rokd94/Nk=; b=Xj/SXRT68FcuxTDEEiVwlvsNtviviSytmj5OmmSNthMehzwL8vdyJteHpJ/EHIrSU5pxZOalkwXId0kx8gGTLOP/5clXjdCgdrLaHfDi5+5vT2UkQ/qB/KzYeDfdPJelAZY85wqZp8XUZ3VbrgbqMxI1vOmAlDaJaMgYoGJ0njke7ZaJukbsh6hbDORDScyCKHGVLoxPdSbeyAYt/9kfKz4+rV8yN0qiigurTErcl4mWJmzJ/t+4gvBmre+ey4Ws5eQxI6v03iS/ZytORJs/xSxujiWFYKp42bjs7GJIompmA3M3w4hAdrZuVMRcpYIAmKI9JozLIA6fEXfh5LuWyQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=05fL07DPzvLXs0zAzCf4eDl5XuKvbt3Qf7Rokd94/Nk=; b=K76oL+OIX3a4xQcWVaapGdEbBabuQT5jV2puTzGi4ipfcunUDMe6nkTH17o4h/s02gWGbHLs0XHN61PAz8c6Znx2Q71fGVsF/2wpe4i4pH91NMvTjwLrG32EXkNbbjKD7P91EtPB9urQJQJHBuBMMxRTNLJCnX2tH2e/aDqCWXJcwn/EP7BA4IFi44gmTUo6JM9Uz5r1CxFvwVm/Zx+dQBpqJNk4chaiMWYR9m0hTDzLOlLehcpcFJsrVdDVp9sgQUDN4Bo6BvLy19jTmjHKUQh+NK+73jyAYhLqZK+LuFl9tCqsXRWNRRW8laoq8fHnSbznecBPTCnJMV6lk2xrvQ== Received: from DU0P250MB0747.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:3cb::16) by PR3P250MB0257.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:17c::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7270.35; Mon, 12 Feb 2024 00:02:26 +0000 Received: from DU0P250MB0747.EURP250.PROD.OUTLOOK.COM ([fe80::db07:87f6:7c75:38cc]) by DU0P250MB0747.EURP250.PROD.OUTLOOK.COM ([fe80::db07:87f6:7c75:38cc%3]) with mapi id 15.20.7270.036; Mon, 12 Feb 2024 00:02:26 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 12 Feb 2024 01:03:19 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [0wlSzRIv0KUIap4BsqsRDwpFYMVGjITBmLaoQVwCGx4=] X-ClientProxiedBy: FR3P281CA0146.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:95::18) To DU0P250MB0747.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:3cb::16) X-Microsoft-Original-Message-ID: <20240212000335.27984-6-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0P250MB0747:EE_|PR3P250MB0257:EE_ X-MS-Office365-Filtering-Correlation-Id: 76b65316-e861-40cc-b132-08dc2b5de59b X-MS-Exchange-SLBlob-MailProps: Cq7lScuPrnqwZHg0HfSFdl5Zlrnc8YAZMqDtUbVXlqasn6cfMx/BBt5oep8ZNiPVMHpY1yNbAfkVH9PMLikUi2QoeRpSSJKcuWRm8eJ+YL/sOGSHb8PpFFuosWXlkvSV7THub4Y+8g3mJGgEkWCR2F8C3PQfswdZsBvLncNzebzGCDK23AwtvHsvrt/5Nm6LLLowzaLP4RmS/7WkAC6DJBomlAHpgvdEL52/NjizA5Lb2tHo5CZepYIpRDFT3dvWb3vH3BCEbO9FfQzjCTU2nE5ktsC2m/yXkkZTxCM6FJwvx7nEFEVGtpF+Dk+8whetq4AMxnVqraW9sRLA5NhquwaK6lE2lm3IdI5MmZYLFeNMjI6Gtf8BKiDc8SE5VpMBn7cCsKa4aQCUcAbx1/OgXolw32YJYgiQXum1mzdSlFrEgLXUVIPbLFb3BOnuD/6PE5gYoK9nWs7RAhiGgDcXpstf31sYAyCi5/GsV+25TM7ELB3RSR5FPXZc+dBAkjBiAzo+BRQCt+KSwbmji8vPB4vFSGinKDFVcppxYypYGF1xyfOvUEo2IvrQU1zRiTRjIAtONFNMdIDMdXeFN/D+LdwGjeMuSTPBiEaPu/vFMSw9oG9TyjRZgBWLzzp/GuBrp/enQRLyuibxKvSoLZW5o+Blyc/TN1F9Ww2VVx42NZBz5/CXVol/ZT9PY3OXx64R7Ypr2hoIeV8FR4cwtY6bZh9cYIvVjCwEroAfttbyRtaH9B9nC7B1Ccg1Etivg/x4/aypg2x1tPA= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 29KuWotx83YSqhGe4kyo/gBdYUAFH53C+mo1eZNSgRDyVwyuVaneh4Imf+ps8gIoOO3YaZ1oGtk7c2fZRoR0Domn5rJy/5by26rxYhx9gtlomFIxm56QwXIB2P5BqF+xW5BWDahrDXnuqQBhhzmDLHc0owIm6E/Y3MVGMSi0LbPdo3XrvzM9LFnUwXkZYeVnlhTL/YhRyGur2UtiOv+ZTK/l1uAUx6Pfy56zX4Z2+kSdPn9/+bQ+/X15sMFChrPOoJzO/lO6q4AfLfA9g3wmS+u5fxBxiSu/zUx3VnV6lIfj8pS5SCpnUy9KlZfsyPzms+2o/CphVz10VB+lA8aE9kNjsG8yakq72xK9f5sH4L4orI127n3TnLJgou9XXpM9uDghZTkTNQjWHh8/wPBM+MWlIhnbR/8AmSSeVZMjIAwjE3xnA6Ep44lHK91fWGwRcVPuAo9CYZruGB1S8MBTNYcAPK/lNC7G/SRghuU8xqMLBmp8Siifm3qdOpiB6ZVK27TjIhf96LH+z6oeZqedEhwhujnmGSyh/ITB9ne0eynI8vtzqB4XelrHDBQLUdLg2An0GIIVVjkOJlRtFg50Rdc4ujSkB8PBberkCyC16ug4x4TXbcvT7d5LfSSazZMz X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Lpg4NnF/sBqLH/EPrrA4ihDmcSpGji51Eo+JEIV1jnrYOkcVFyQBi40PYPAa?= =?us-ascii?Q?t6UzQtql/qHWO5p86nqtJDdDUhOU3gfvgxXvNZgviMaB8IRkpjzhd2td9FVZ?= =?us-ascii?Q?MgRPeQxZ4RBT/3qe4dh52NPZupKW9t0hZrAHjYhhqitAC3+OCO/+C+WnGF8P?= =?us-ascii?Q?g/zXXSRPeHQwMf5eYgzg8qnZ3MbDx9uEm3A2OifG9PjrgKAXnwcIUk5Lk38n?= =?us-ascii?Q?v7R0ZFL7a6DznXd70Nyc1zCSw7lGBHK0rxxORXRVNAK9ro6FVDI5LQxSzhti?= =?us-ascii?Q?A6FQSsgdgVnGusQh9HodnRHUmFRV1TJb7n9GCQ/ELt+0LdAU5Zzfn3fiLJsX?= =?us-ascii?Q?rhqVPcPeJ+A4kHlMWFpibz5yhU7TlD6u56Fm6DpG+w5g9GQ/hHs+dA5naSrZ?= =?us-ascii?Q?rtOR+UKfKmAsoKoS70RtkeUIbFoTFD/qJGX2BXbDFEhYyKfKssARTWw2lbbi?= =?us-ascii?Q?eCKAD80JrfUS2pscIURxQgMiQK3PJPABq3Wmofr5oQvQHHrbk+GbN3HEh85W?= =?us-ascii?Q?KpQ9WBTSz7PCuDQzSkNBcSd//DLyLTb5SODd17/3kNUXFsA6E8PTvhS+GnG0?= =?us-ascii?Q?JApntplAVp6k2VP+pAs/bJ3v7xmVJl6Wl3zGpGsZcTtLcdkI2BWUxrSQb5HE?= =?us-ascii?Q?Pb1EvN6iqnARS+QrzmmpJUFFPz+MqSI/rT4ViE/dyn6GC61E2PiLVAQx1rVR?= =?us-ascii?Q?dqtH7hAMixUXiXB6/A9l4i+mOkDDTmZhfeOpaXxP5/7W1vLReHbDFPx8Wr9E?= =?us-ascii?Q?Tt2CFSTFD/XQ09Ye3a/+Urefom1ssao0iYVsb3NPsMn2Vt6TDhkb6oCAZiMm?= =?us-ascii?Q?T0MO37Qyobz3eE3NFNid1Tc/gq4aQ5G9C+waG8TPdRKrlUltcOKbUgbVpO/B?= =?us-ascii?Q?0i0z26wYtvOg+eODQDimy/1o+Q8MS9ktW4cSeU0dRwGP+Hh4fVEe9myeL2NB?= =?us-ascii?Q?9/x6Y67U17/c7WKdPW5rR7CK4lA016RosuJiQxZkDHRsvdSkBj7G8HQl1tRd?= =?us-ascii?Q?lFMWfmrFq0s+Dt/35123K7QPnxlpZOuvjLNbEZSegFFcbM861OLDbODGesiy?= =?us-ascii?Q?yspkUiC+cr2ihk5iVe+/Ex5Z7K0ibTuDzRU2i1cWH8e58vWVfA2gONWaYDak?= =?us-ascii?Q?fyJR81fpcwAhqHZn4HgRmgCd7qr4/0WKHIYr4pluRPVUWClWDklxnNiJLXKF?= =?us-ascii?Q?2UY6pzf6nuC5H/YYT0FF43k2O+riHAWXKkadXlyBbfAuQFCWc1cfkF7jnxnu?= =?us-ascii?Q?v+LT+/9NvhBIxRXqdgRNYPPB0UJX6KYuoQR/VFJOUA=3D=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 76b65316-e861-40cc-b132-08dc2b5de59b X-MS-Exchange-CrossTenant-AuthSource: DU0P250MB0747.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2024 00:02:26.6028 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3P250MB0257 Subject: [FFmpeg-devel] [PATCH 07/23] avutil/hwcontext_opencl: Allocate pub and priv device hwctx together 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: Andreas Rheinhardt 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: This is possible because the lifetime of both coincide. Besides reducing the number of allocations this also simplifies access to OpenCLDeviceContext as one no longer has to go through AVHWDeviceInternal. Signed-off-by: Andreas Rheinhardt --- libavutil/hwcontext_opencl.c | 50 +++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/libavutil/hwcontext_opencl.c b/libavutil/hwcontext_opencl.c index c1764ed098..54c050ab40 100644 --- a/libavutil/hwcontext_opencl.c +++ b/libavutil/hwcontext_opencl.c @@ -80,6 +80,11 @@ extern int ff_qsv_get_surface_base_handle(mfxFrameSurface1 *surf, typedef struct OpenCLDeviceContext { + /** + * The public AVOpenCLDeviceContext. See hwcontext_opencl.h for it. + */ + AVOpenCLDeviceContext p; + // Default command queue to use for transfer/mapping operations on // the device. If the user supplies one, this is a reference to it. // Otherwise, it is newly-created. @@ -276,8 +281,8 @@ static int opencl_check_device_extension(cl_device_id device_id, static av_unused int opencl_check_extension(AVHWDeviceContext *hwdev, const char *name) { - AVOpenCLDeviceContext *hwctx = hwdev->hwctx; - OpenCLDeviceContext *priv = hwdev->internal->priv; + OpenCLDeviceContext *priv = hwdev->hwctx; + AVOpenCLDeviceContext *hwctx = &priv->p; if (opencl_check_platform_extension(priv->platform_id, name)) { av_log(hwdev, AV_LOG_DEBUG, @@ -658,8 +663,8 @@ static int opencl_device_create(AVHWDeviceContext *hwdev, const char *device, static int opencl_device_init(AVHWDeviceContext *hwdev) { - AVOpenCLDeviceContext *hwctx = hwdev->hwctx; - OpenCLDeviceContext *priv = hwdev->internal->priv; + OpenCLDeviceContext *priv = hwdev->hwctx; + AVOpenCLDeviceContext *hwctx = &priv->p; cl_int cle; if (hwctx->command_queue) { @@ -894,7 +899,7 @@ static int opencl_device_init(AVHWDeviceContext *hwdev) static void opencl_device_uninit(AVHWDeviceContext *hwdev) { - OpenCLDeviceContext *priv = hwdev->internal->priv; + OpenCLDeviceContext *priv = hwdev->hwctx; cl_int cle; if (priv->command_queue) { @@ -1685,7 +1690,7 @@ fail: static int opencl_frames_init_command_queue(AVHWFramesContext *hwfc) { AVOpenCLFramesContext *hwctx = hwfc->hwctx; - OpenCLDeviceContext *devpriv = hwfc->device_ctx->internal->priv; + OpenCLDeviceContext *devpriv = hwfc->device_ctx->hwctx; OpenCLFramesContext *priv = hwfc->internal->priv; cl_int cle; @@ -2079,8 +2084,8 @@ static int opencl_map_from_drm_beignet(AVHWFramesContext *dst_fc, AVFrame *dst, const AVFrame *src, int flags) { - AVOpenCLDeviceContext *hwctx = dst_fc->device_ctx->hwctx; - OpenCLDeviceContext *priv = dst_fc->device_ctx->internal->priv; + OpenCLDeviceContext *priv = dst_fc->device_ctx->hwctx; + AVOpenCLDeviceContext *hwctx = &priv->p; DRMBeignetToOpenCLMapping *mapping; const AVDRMFrameDescriptor *desc; cl_int cle; @@ -2211,7 +2216,7 @@ static void opencl_unmap_from_qsv(AVHWFramesContext *dst_fc, HWMapDescriptor *hwmap) { AVOpenCLFrameDescriptor *desc = hwmap->priv; - OpenCLDeviceContext *device_priv = dst_fc->device_ctx->internal->priv; + OpenCLDeviceContext *device_priv = dst_fc->device_ctx->hwctx; OpenCLFramesContext *frames_priv = dst_fc->internal->priv; cl_event event; cl_int cle; @@ -2246,8 +2251,8 @@ static int opencl_map_from_qsv(AVHWFramesContext *dst_fc, AVFrame *dst, { AVHWFramesContext *src_fc = (AVHWFramesContext*)src->hw_frames_ctx->data; - AVOpenCLDeviceContext *dst_dev = dst_fc->device_ctx->hwctx; - OpenCLDeviceContext *device_priv = dst_fc->device_ctx->internal->priv; + OpenCLDeviceContext *device_priv = dst_fc->device_ctx->hwctx; + AVOpenCLDeviceContext *dst_dev = &device_priv->p; OpenCLFramesContext *frames_priv = dst_fc->internal->priv; AVOpenCLFrameDescriptor *desc; VASurfaceID va_surface; @@ -2345,7 +2350,7 @@ static void opencl_unmap_from_dxva2(AVHWFramesContext *dst_fc, HWMapDescriptor *hwmap) { AVOpenCLFrameDescriptor *desc = hwmap->priv; - OpenCLDeviceContext *device_priv = dst_fc->device_ctx->internal->priv; + OpenCLDeviceContext *device_priv = dst_fc->device_ctx->hwctx; OpenCLFramesContext *frames_priv = dst_fc->internal->priv; cl_event event; cl_int cle; @@ -2370,7 +2375,7 @@ static int opencl_map_from_dxva2(AVHWFramesContext *dst_fc, AVFrame *dst, AVHWFramesContext *src_fc = (AVHWFramesContext*)src->hw_frames_ctx->data; AVDXVA2FramesContext *src_hwctx = src_fc->hwctx; - OpenCLDeviceContext *device_priv = dst_fc->device_ctx->internal->priv; + OpenCLDeviceContext *device_priv = dst_fc->device_ctx->hwctx; OpenCLFramesContext *frames_priv = dst_fc->internal->priv; AVOpenCLFrameDescriptor *desc; cl_event event; @@ -2431,9 +2436,9 @@ fail: static int opencl_frames_derive_from_dxva2(AVHWFramesContext *dst_fc, AVHWFramesContext *src_fc, int flags) { - AVOpenCLDeviceContext *dst_dev = dst_fc->device_ctx->hwctx; AVDXVA2FramesContext *src_hwctx = src_fc->hwctx; - OpenCLDeviceContext *device_priv = dst_fc->device_ctx->internal->priv; + OpenCLDeviceContext *device_priv = dst_fc->device_ctx->hwctx; + AVOpenCLDeviceContext *dst_dev = &device_priv->p; OpenCLFramesContext *frames_priv = dst_fc->internal->priv; cl_mem_flags cl_flags; cl_int cle; @@ -2510,7 +2515,7 @@ static void opencl_unmap_from_d3d11(AVHWFramesContext *dst_fc, HWMapDescriptor *hwmap) { AVOpenCLFrameDescriptor *desc = hwmap->priv; - OpenCLDeviceContext *device_priv = dst_fc->device_ctx->internal->priv; + OpenCLDeviceContext *device_priv = dst_fc->device_ctx->hwctx; OpenCLFramesContext *frames_priv = dst_fc->internal->priv; cl_event event; cl_int cle; @@ -2529,7 +2534,7 @@ static void opencl_unmap_from_d3d11(AVHWFramesContext *dst_fc, static int opencl_map_from_d3d11(AVHWFramesContext *dst_fc, AVFrame *dst, const AVFrame *src, int flags) { - OpenCLDeviceContext *device_priv = dst_fc->device_ctx->internal->priv; + OpenCLDeviceContext *device_priv = dst_fc->device_ctx->hwctx; OpenCLFramesContext *frames_priv = dst_fc->internal->priv; AVOpenCLFrameDescriptor *desc; cl_event event; @@ -2587,9 +2592,9 @@ fail: static int opencl_frames_derive_from_d3d11(AVHWFramesContext *dst_fc, AVHWFramesContext *src_fc, int flags) { - AVOpenCLDeviceContext *dst_dev = dst_fc->device_ctx->hwctx; AVD3D11VAFramesContext *src_hwctx = src_fc->hwctx; - OpenCLDeviceContext *device_priv = dst_fc->device_ctx->internal->priv; + OpenCLDeviceContext *device_priv = dst_fc->device_ctx->hwctx; + AVOpenCLDeviceContext *dst_dev = &device_priv->p; OpenCLFramesContext *frames_priv = dst_fc->internal->priv; cl_mem_flags cl_flags; cl_int cle; @@ -2830,7 +2835,7 @@ static int opencl_map_from(AVHWFramesContext *hwfc, AVFrame *dst, static int opencl_map_to(AVHWFramesContext *hwfc, AVFrame *dst, const AVFrame *src, int flags) { - av_unused OpenCLDeviceContext *priv = hwfc->device_ctx->internal->priv; + av_unused OpenCLDeviceContext *priv = hwfc->device_ctx->hwctx; av_assert0(dst->format == AV_PIX_FMT_OPENCL); switch (src->format) { #if HAVE_OPENCL_DRM_BEIGNET @@ -2871,7 +2876,7 @@ static int opencl_map_to(AVHWFramesContext *hwfc, AVFrame *dst, static int opencl_frames_derive_to(AVHWFramesContext *dst_fc, AVHWFramesContext *src_fc, int flags) { - av_unused OpenCLDeviceContext *priv = dst_fc->device_ctx->internal->priv; + av_unused OpenCLDeviceContext *priv = dst_fc->device_ctx->hwctx; switch (src_fc->device_ctx->type) { #if HAVE_OPENCL_DRM_BEIGNET case AV_HWDEVICE_TYPE_DRM: @@ -2932,8 +2937,7 @@ const HWContextType ff_hwcontext_type_opencl = { .type = AV_HWDEVICE_TYPE_OPENCL, .name = "OpenCL", - .device_hwctx_size = sizeof(AVOpenCLDeviceContext), - .device_priv_size = sizeof(OpenCLDeviceContext), + .device_hwctx_size = sizeof(OpenCLDeviceContext), .frames_hwctx_size = sizeof(AVOpenCLFramesContext), .frames_priv_size = sizeof(OpenCLFramesContext), -- 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".