From patchwork Mon Feb 12 00:03:19 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 46215 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:9002:b0:19e:cdac:8cce with SMTP id d2csp407567pzc; Sun, 11 Feb 2024 16:17:21 -0800 (PST) X-Google-Smtp-Source: AGHT+IECv9FPHu7veHw4jWZREa/hOBS08/pqGxUQKEJftD3Tc7vcL9CUyvycv1veqqQrPwR3Vo3V X-Received: by 2002:a17:906:c411:b0:a38:551d:ff1d with SMTP id u17-20020a170906c41100b00a38551dff1dmr3975669ejz.73.1707697041687; Sun, 11 Feb 2024 16:17:21 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCU1C1RXXj/ofcl2BjnTmJ4b3lsYg8j4wkPnsD5FDBlpD+Fr1OeSPDAkgO5PMAFN8kdWYMt+7v5M/HxzrVO/eh0R/TQ/QIKDP1e6gXbSB6JU914HVykTzc11uaxAlUqoW7QYGFCVY2tmM1vpRLhTrMHwFze3NGxHRSsok5SJ6wrtY56FjJLcM9dDUUyScnlRanlr/LWWCHjpqxt3fbq3AaVkD6IC8UF/VHExIlgM1IOVS11w8CAvU3BriSQZaEnNUpNoCCdHIuImJH+lAsFvt0s/1SYNIyemfRykEI5kPmpYbcoPTEb34W4yafOSo8In/4nRHDwH7Vg3LYUlQpYfLb1f9L2o8/Ahqf9ApAgfC6fpRN0jD2KwiBnPZBajq1mnwgO7sX8nYSo+xhmGswXIZwAqWen/Fr9dmecHryPgBXo9EyYoID8ngAArhAfQQbP5wAzhEofFJMeO6WUmrNA+vqhD/8ExB6Jxjky9o+vaiX+fLui8fDM1N5UePKrBAohv9GFYPSt4U9rnj/zt7uEnuxhCri2IzBKYHd8A3ilpRr5Tc4xWoHd58VdkCvEx5S65icDc13LHM5NSad9XA0g2lY7vOkI/+yhvtepydD6hzbn1Rn6bEQqRXD2L3W7ncggY7dzwXwNvyS2cU/UcHDwL6hYACXTWxHlQzSoFZV0ef8oVWfz+U4AUHHtbBb4suWMwiobp0/nqfiQiKMamPPxUfPtViASqkiN9POxbwoW/hOC+ozv+JhuvCVVt2jiZ6eXDUp701iOXUygTcG0WZnIk19ccr9DBCEK7GcZvBICDF3uV7tsofiBP2IkgqwdDcATzZUy2+zd2dsR6815cmgHdD6MdzDIKsqqOtGM77woyZgEjXkpnkro4KnZ5r+t6AFdI7s7NPMY4TsdlHWcjOJUlXUptTBYmpIMIhg6TVZPXwACVxGCEsZhtPu6s9zpvA3F5d4uYRu AtXyOOGJOexkgtKnAb2KoKtYo1q5V3ntugYKveXYthY0axzxqeaeY826n61Y9oMnlBqFgx9aeiaVXJPrnPv9oBSg46hI2SPzt4XOEDmwnPvbib3652tcNMJlDodf+DkIjD02KBJuYOWgm+EU5OEdngdiVzniDT+h4WMHpgOfPGjzTfjADrnvN/IwvofFgijcuvtmthlE3GFw3I10TKe71+Sass9L4QP+klyTJDDw8zAMOv6XExhcGc9AVxndqFbsEBourM6asu6cJtAruRkzb1xPzhutDrGG6RD9D4rMbm7/zWarrp6Cs7RNrDIaOMEfDUDjOA7Tf255RAs1pzbudGSDN6wuAd61/WOLfKHMAYPML0a2nBDWV0iz9UYlSyiwdD5xNsRPoAk5ZW2DhE88OuM60scHm4e2aRTUMoNiEh/4f/qJZ+HwtVQAt/n38GuXzklwwRx5Qx6DepGVZfraYWCvdObVzw7tu1gCLEzbTZnx02JzH2yJt2pPlA2XSiKlhrAyxxcKtHBD6VRAkz6hvWARXQIbzouqXmXLX147XOWsOt2jI3F+fykibw1bArPnvdkiodkuuKkvuRpF80vFECXQs6aEmBtjEDz5kDzT3hFxjTcyi9fcPZBaPkECMEYKdV Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id cb5-20020a170906a44500b00a3c3a28afd3si1878041ejb.616.2024.02.11.16.17.21; Sun, 11 Feb 2024 16:17:21 -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=@outlook.com header.s=selector1 header.b=K76oL+OI; arc=fail (body hash mismatch); 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5469868D14B; Mon, 12 Feb 2024 02:17:19 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org 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: Lpg4NnF/sBqLH/EPrrA4ihDmcSpGji51Eo+JEIV1jnrYOkcVFyQBi40PYPAat6UzQtql/qHWO5p86nqtJDdDUhOU3gfvgxXvNZgviMaB8IRkpjzhd2td9FVZMgRPeQxZ4RBT/3qe4dh52NPZupKW9t0hZrAHjYhhqitAC3+OCO/+C+WnGF8Pg/zXXSRPeHQwMf5eYgzg8qnZ3MbDx9uEm3A2OifG9PjrgKAXnwcIUk5Lk38nv7R0ZFL7a6DznXd70Nyc1zCSw7lGBHK0rxxORXRVNAK9ro6FVDI5LQxSzhtiA6FQSsgdgVnGusQh9HodnRHUmFRV1TJb7n9GCQ/ELt+0LdAU5Zzfn3fiLJsXrhqVPcPeJ+A4kHlMWFpibz5yhU7TlD6u56Fm6DpG+w5g9GQ/hHs+dA5naSrZrtOR+UKfKmAsoKoS70RtkeUIbFoTFD/qJGX2BXbDFEhYyKfKssARTWw2lbbieCKAD80JrfUS2pscIURxQgMiQK3PJPABq3Wmofr5oQvQHHrbk+GbN3HEh85WKpQ9WBTSz7PCuDQzSkNBcSd//DLyLTb5SODd17/3kNUXFsA6E8PTvhS+GnG0JApntplAVp6k2VP+pAs/bJ3v7xmVJl6Wl3zGpGsZcTtLcdkI2BWUxrSQb5HEPb1EvN6iqnARS+QrzmmpJUFFPz+MqSI/rT4ViE/dyn6GC61E2PiLVAQx1rVRdqtH7hAMixUXiXB6/A9l4i+mOkDDTmZhfeOpaXxP5/7W1vLReHbDFPx8Wr9ETt2CFSTFD/XQ09Ye3a/+Urefom1ssao0iYVsb3NPsMn2Vt6TDhkb6oCAZiMmT0MO37Qyobz3eE3NFNid1Tc/gq4aQ5G9C+waG8TPdRKrlUltcOKbUgbVpO/B0i0z26wYtvOg+eODQDimy/1o+Q8MS9ktW4cSeU0dRwGP+Hh4fVEe9myeL2NB9/x6Y67U17/c7WKdPW5rR7CK4lA016RosuJiQxZkDHRsvdSkBj7G8HQl1tRdlFMWfmrFq0s+Dt/35123K7QPnxlpZOuvjLNbEZSegFFcbM861OLDbODGesiyyspkUiC+cr2ihk5iVe+/Ex5Z7K0ibTuDzRU2i1cWH8e58vWVfA2gONWaYDakfyJR81fpcwAhqHZn4HgRmgCd7qr4/0WKHIYr4pluRPVUWClWDklxnNiJLXKF2UY6pzf6nuC5H/YYT0FF43k2O+riHAWXKkadXlyBbfAuQFCWc1cfkF7jnxnuv+LT+/9NvhBIxRXqdgRNYPPB0UJX6KYuoQR/VFJOUA== 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: iJdZadPHnLXg 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),