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 21204495A4 for ; Tue, 13 Feb 2024 12:21:22 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A427E68CEB3; Tue, 13 Feb 2024 14:21:20 +0200 (EET) Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01olkn2049.outbound.protection.outlook.com [40.92.66.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 12FCD68CA86 for ; Tue, 13 Feb 2024 14:21:14 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ivPXFCt+oTIz8KMEm+Zw3V4PNn5CGpXIVKU7PiL3fpxVjs/es17U4ZMgmK6lZt5fM3G0hYg5OUNxvhj/Vh8CsdgCCKQGT1NoMKyqyY/enwyn+6kFnzOX/r+FFexozC+Pqo+LRN37td5274sQachFqky6XblQyL5hACrYR4fbAYUOYA+fOZqZLhiwweSOILWsgG6mZGgIkSn4+ADFy0ONNpdDzEdI+rpS+eT8mX9pc7msG0ZWGAiXPgobokkba5RD5AhaN5cWX6WFpPIJ5F3ddgYrnlMIvruWDe86Rz2KaAFgezNlfj/0UcVhan7A2UzRh+dpTKs5cy+g/5G35fSUug== 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=xtLPXL/FNCeAOfxZoNtm8WhBB5ODFbDUowA01GeAmeU=; b=YMzUkm7RyxljYTLu+O3Ssuwb7vQ6VjFdI9ri2BdJecjWmsIQYoak3QkrOvk6kaw5V1mshD1we2GNP4pfuRmsTdotDzRBnhXMjMratMm302H3DkLXf3C+dinauXLkM/G/Ccj57JMXQjV8/huJm82+pFNct+AhIKOhECk5R0DgwZnjIqJModbqq282KbsXBycA44y2lfHXix0UEY/dL7y0D3M5/Lj+iJuPQ98XDB8LEjVOIUBNTZGBYcHhW0qAg0aVm8msmc7xxTjKm9udRkgvt/5zF/l6z3Vn80DvEuVxXIvVdV+FuFrDez4+mlCJjmb6S9ecN/HidgYx45T7cFPGvQ== 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=xtLPXL/FNCeAOfxZoNtm8WhBB5ODFbDUowA01GeAmeU=; b=E2JRwnYz8XPQsoCG/+xbzE/5yi2CpaA8qbQA5NuyjsI1fKPhS6iLyKaRcyYAMU27k+DpSv7mFEq18zQkAZcmUQ+dq+f2uLL3ocCRDOjHRuHQDoRupoOY+kIDSyvlqsuGxO/YktdxgyB/URTDWo4XI5t4PebNr2GVQnASrJpXcBUmkZIXnl+p8xyjshYBRbDVMMo6zwP5hF6FfuDDtZMEeLis05DBM4hXyKpgBJ1L/ia4uILU/ZXWcb0tB8NEBBcXvEpPMmRYm6GiyRIfGMYD+uIlG1OB8sKgbACgB22rsGClOlIbQxSuI60jV18M5nyzbLO6Nu6kA4SvaJLDCgeVog== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AS8P250MB0266.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:37d::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7270.35; Tue, 13 Feb 2024 12:21:11 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d%5]) with mapi id 15.20.7270.036; Tue, 13 Feb 2024 12:21:11 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 13 Feb 2024 13:23:01 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [7V2bgBZjn47gVwNoGkbl3fE7K7WyfePSxXfVS2uFjWo=] X-ClientProxiedBy: FR0P281CA0010.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:15::15) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240213122301.247941-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AS8P250MB0266:EE_ X-MS-Office365-Filtering-Correlation-Id: 69612481-94cb-4887-d3b3-08dc2c8e4388 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ltbqGwoL+8Khluzak0VM+fAZ3hMBJNMO+3nBhSgKtGSwLC0m8pVaQm/89CQnAuXG9n6MDUnW/VI+lbmVgcXai+s4SaUd4fpCVofOeNHSlCOawytX9NtfO4cYWIWEhZISyJEKAvxE/qi4S5Ihq5M9ikNiW2cDsTAEpb6RiLGqmC6KOjTCBXAQ+dPg6hL5DQcINZAn/lmG74cw89Jmkv82yofHEDnOprXFPGXktBxqWXVGHA2MMh7wo3f7CQmIUa5dfrvE9UXOvN+rn4vq51Eswq5BMqWctwuIxgdyO3zaFCw0qGA4/zkQY9qm9NycCpenO9nLv2bsOEv5XKfYTVytq3ffCHkGMAeUGRj+jG2k/XPlGbVd77DZtTq6sadcWmsNMnX0Jhh7+OjJFOGWegFaPIf17/u0GAWmAoSAq8WHhoUMX59PxKWydoE2j4rqdsG7GRFSFP+oOAZk1waznQ23mfwSnMRH4Xr1RDZjlCwQzODWOKa7vGF+FI/TQ/mbovA3TLYpZkD5CyFOUsKWtqDwoLY3W6nKeqmHnNOM8AhqujeMEB5TNYkQ7ellQkhB9i7Fy8FcsxP/xyizJejgBzDGxwiOTk8AVTIOfXFz0D3US00= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?fRjTrtLcJawImODPnfTGe761r3iEeRErY+i6ueBaPMytjV3dEvZint9iBPZY?= =?us-ascii?Q?GAvvkoHm6vjD3kME64Se02pNs3PVJoAW6jVmuhNao3HFYxTH32Moq77ogybh?= =?us-ascii?Q?iJW2SNQzqRVMczOT5YYINYcBu89Kplcn2aXax3lHNLkrtL1SEExHtBW/9XpO?= =?us-ascii?Q?Kp8DBC8y3KE0Zg8+0ZL6sopHM1swSIcKD56Zo6XEhf7J9ZyhjHbYOT7Dur+c?= =?us-ascii?Q?CfynMhCGxtdfELor/KY6z+xwyvn/NBHi9Q2uZxoBgroM+MXltzm7i5gel5nK?= =?us-ascii?Q?Yo4/SM8emX65QoXj2isB5rBmO9XA0LXok86goF+FSjoKPF74HEpAvbH4V10l?= =?us-ascii?Q?g3L3Qz0Hfvvg9Se7apA7OFxqz/ynsoW1LjE94CVxmosHOF0i+AC8drt2jFGU?= =?us-ascii?Q?xSjfRVgUhPiMC3syRNHE8x6b6aHX0ITPy+9K0uXdO9o7qwzTWGaYw0LiTYN3?= =?us-ascii?Q?71qibJ3qO3n+Z+g6zQE/q3oNB4zgpGywqg9h9uLVo6yMm0ZnNRCPd8UL671y?= =?us-ascii?Q?eUvcj6U9Speou8+L59EfUGNG6jr9Jn8ewdeOwimM6BsNg6ThX6mG7KvXJpS9?= =?us-ascii?Q?Ju8sIYRHiKMXXHhtXaRjV6bHY0HwVZts45BZYrB7qj/2tIYsPCfoh6Uld0Lx?= =?us-ascii?Q?w1e2p1x0llkIuwRyXgoD9z4isT1y+JwNXWZdjQMjUj1c6N1NZyU98D1YxI0Y?= =?us-ascii?Q?zknlXMpsqUXVB8gFd/eSLtJiQmDkijAPSCAzDAxLOMrc3YzJ070nE7LrzF0F?= =?us-ascii?Q?7bpOSrRrOYL/C2qEOj8dI2tW1hKVTJ7zByulhkaO+LV8dBzfvByZvKAWyoCm?= =?us-ascii?Q?EUoUOd70iEGluWbV8U3B7D+RMsel8BFttmoTOTn4Czny7rrWs1GQUfUnpdzt?= =?us-ascii?Q?oUzY3mDsCm53XGXyvBSoYzrUPs+vnVjZV3eCVDhzETjhXnGiqGb1s9uT4XiU?= =?us-ascii?Q?Hh9P9S++XGxpxD/6PXU2GJyd5DKJXFSKtkTWlBeY5i2myAykt7HNiviMiB1n?= =?us-ascii?Q?aiSdCJXq2d4MtFIPqIFlez04eucoKkEkNCAcLZ6IKBkZgqu+pirF9aniA6Lf?= =?us-ascii?Q?9+Myf8axp+qqa77k4u4StCWyvib/fCcChvoDVmTc9wpn1URCPECMg/xlEYRZ?= =?us-ascii?Q?xQFcSlGS8J6OQq5hsQPWE38DuAQ2WsOEiDMzyoLygMupaqUK5Hrh/jxNf4OZ?= =?us-ascii?Q?81CWcFac+WJ32kTO2fIxxmm2t4ME5K68rrv6byAnR6s55WHfNdQXE5BbzVjm?= =?us-ascii?Q?ONElpRUei3AwrBTWkCrz4CQYSd8kBbzsguKnbyUETw=3D=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 69612481-94cb-4887-d3b3-08dc2c8e4388 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2024 12:21:11.1573 (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: AS8P250MB0266 Subject: [FFmpeg-devel] [PATCH 24/24] avutil/hwcontext_cuda: Allocate public and internal device ctx jointly 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: Signed-off-by: Andreas Rheinhardt --- libavutil/hwcontext_cuda.c | 43 +++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/libavutil/hwcontext_cuda.c b/libavutil/hwcontext_cuda.c index b430b42f62..3de3847399 100644 --- a/libavutil/hwcontext_cuda.c +++ b/libavutil/hwcontext_cuda.c @@ -35,6 +35,11 @@ typedef struct CUDAFramesContext { int tex_alignment; } CUDAFramesContext; +typedef struct CUDADeviceContext { + AVCUDADeviceContext p; + AVCUDADeviceContextInternal internal; +} CUDADeviceContext; + static const enum AVPixelFormat supported_formats[] = { AV_PIX_FMT_NV12, AV_PIX_FMT_YUV420P, @@ -283,39 +288,35 @@ exit: static void cuda_device_uninit(AVHWDeviceContext *device_ctx) { - AVCUDADeviceContext *hwctx = device_ctx->hwctx; + CUDADeviceContext *hwctx = device_ctx->hwctx; - if (hwctx->internal) { - CudaFunctions *cu = hwctx->internal->cuda_dl; + if (hwctx->p.internal) { + CudaFunctions *cu = hwctx->internal.cuda_dl; - if (hwctx->internal->is_allocated && hwctx->cuda_ctx) { - if (hwctx->internal->flags & AV_CUDA_USE_PRIMARY_CONTEXT) - CHECK_CU(cu->cuDevicePrimaryCtxRelease(hwctx->internal->cuda_device)); - else if (!(hwctx->internal->flags & AV_CUDA_USE_CURRENT_CONTEXT)) - CHECK_CU(cu->cuCtxDestroy(hwctx->cuda_ctx)); + if (hwctx->internal.is_allocated && hwctx->p.cuda_ctx) { + if (hwctx->internal.flags & AV_CUDA_USE_PRIMARY_CONTEXT) + CHECK_CU(cu->cuDevicePrimaryCtxRelease(hwctx->internal.cuda_device)); + else if (!(hwctx->internal.flags & AV_CUDA_USE_CURRENT_CONTEXT)) + CHECK_CU(cu->cuCtxDestroy(hwctx->p.cuda_ctx)); - hwctx->cuda_ctx = NULL; + hwctx->p.cuda_ctx = NULL; } - cuda_free_functions(&hwctx->internal->cuda_dl); + cuda_free_functions(&hwctx->internal.cuda_dl); + memset(&hwctx->internal, 0, sizeof(hwctx->internal)); + hwctx->p.internal = NULL; } - - av_freep(&hwctx->internal); } static int cuda_device_init(AVHWDeviceContext *ctx) { - AVCUDADeviceContext *hwctx = ctx->hwctx; + CUDADeviceContext *hwctx = ctx->hwctx; int ret; - if (!hwctx->internal) { - hwctx->internal = av_mallocz(sizeof(*hwctx->internal)); - if (!hwctx->internal) - return AVERROR(ENOMEM); - } + hwctx->p.internal = &hwctx->internal; - if (!hwctx->internal->cuda_dl) { - ret = cuda_load_functions(&hwctx->internal->cuda_dl, ctx); + if (!hwctx->internal.cuda_dl) { + ret = cuda_load_functions(&hwctx->internal.cuda_dl, ctx); if (ret < 0) { av_log(ctx, AV_LOG_ERROR, "Could not dynamically load CUDA\n"); goto error; @@ -563,7 +564,7 @@ const HWContextType ff_hwcontext_type_cuda = { .type = AV_HWDEVICE_TYPE_CUDA, .name = "CUDA", - .device_hwctx_size = sizeof(AVCUDADeviceContext), + .device_hwctx_size = sizeof(CUDADeviceContext), .frames_hwctx_size = sizeof(CUDAFramesContext), .device_create = cuda_device_create, -- 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".