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 32DEC475F5 for ; Mon, 12 Feb 2024 00:02:33 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9340268D143; Mon, 12 Feb 2024 02:02:27 +0200 (EET) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04olkn2019.outbound.protection.outlook.com [40.92.73.19]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3362068CC85 for ; Mon, 12 Feb 2024 02:02:25 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UYCbKXB+4H+phHgN0b3eqvbzxRpm2aApMv0v78efJNPuT56OfdXCElLvHG0o3tCIVcj3cvaH/a2RiA5Kqpud+bjjSQTAW2KHth5+zSWXTink97r5ORNSErA3wyuq/wplF0VbgnXz6foq10dbSzEL3l3MzsBL2GmBFa3sJNkIfoZUdFsli+LYyCHoyxfpdpdpVXRqYu/AJcD70ne/OCLNf+YxDfX4II/yHuVSaADGaIooV3ZPYDLqEldtNO+zAWd477uut/rKvHUsRtDByi/OyGiJL35QYkv8DXHsK9nAd8TBzvv2rJqlt3WuFm+9XyOqbfLYCs5nySMCZWj3zPrjQg== 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=3x5eUqtZiMONQIhlOA5aG1L84fabdoxFtzltPfOdjBI=; b=D1VgdLJ3LIqK/j2guY2dVNgDEDuEASa1QQHIIhn2kpB/vM3h35bVlxQWlAdGZg4HV4/oEwA0cRhiiRmvU7sgiPCgVhjQWPUPUsi51zi6j+toYB/peY3t+xVHV2OyS1/iLTIGCRRGXSXEIOv/TowfS81J2cq/NrEqDCGko5/hEwecAkJ9cZxQ7pOzNRku4py5rYwi6Lz1mOObGE6pxUOKLFgY3k9wuogd7PczjFKPGp5mzTlE5BqS/CjmMf+VBtqGlFAHIy0hU2lFqEejDMRx4eVn9aQHKskPVpsB/hx2aZ1oxndEtTQ9DtwcKq3BSVPwsezz+KzitBbH7kn0uujhUA== 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=3x5eUqtZiMONQIhlOA5aG1L84fabdoxFtzltPfOdjBI=; b=e2B9IwXo1CWRaokPuAFrjtOlOM7K0elQ6mLQDBjKVG5cyjqfxDzb35ifPkHE49C4NNgIod8s1Ts011BAmN7fsxYbJNqEJgOHsAuT2wGfi+/0DWyxNrGhvzNtYlvgeUDb0yHhJcSRRHp591udmKHl6CjGUXausgMTisPlSqCGkrG4S32GtJBeHPa4MH76MWKjUKEFsf/s8VH/RFUb31bh4/PBPekd0H1p+g7ZwLmbHgHXJvBEWb/UoLv8P8dbt7gUSvaSylMoCtd6sUmnzMsd1AEelDiNSIjdhztJbMJ6RUyDnCfZkuKK83iJ5Ym+VZKefKM5ZNzF3ViBpAd+rw/+IA== 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:24 +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:24 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 12 Feb 2024 01:03:18 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [eb2b/x+GMHfK+3/tvx75VNUQajxfFu0fsgS1ePcVD5g=] 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-5-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: 4ae66cdb-ba20-4f85-4589-08dc2b5de437 X-MS-Exchange-SLBlob-MailProps: Cq7lScuPrnqwZHg0HfSFdl5Zlrnc8YAZMqDtUbVXlqbQjzPZSPZsn/5VOPUuB1enSJ0XhznULWsWupSjZCYoxyi31wclaRcE1CJKfEhqXnrJhZkhwXE6GNGhG0Osq73PeBlzzUWY0Ti9mXlujZqwXYWUbX0o0OC/So8e6Mpg0gx6nTGaRmptrW5RHS+LSyHXSIHsmOH9NtcQ8iNPYv0FFCpBnB5cgxgCY1QDwtbb82lSuwkwAefzBCyYVvyivTVIJrkDizKiLFlHBBoZfwb1eVn8vti+wCtXSG4wyEFUbzSBd/dUbqlij0XupWBxI9QPreSoPJ84NoGid0BsqBIEyYGNGIpYIu1lZTetyV0GE1+8XighVyuYUooWxAH2sN+jeH4IB1N75TAC0+YIDM9KMHCOvp0KYJxMB0tVXzCkN9qN9vy2wIxmscT3Sn6aGeqoU2At4JFwqic0VZliNfhUgCHU65aR7DmNEtAWtCXSGgqdeS4/JJttyju0NNtrVq+vYw+Hlz3AXxrOgHd/Yzo/SG/+0qFknhRBJq7qX8SgMduxCfnsH4PmhJuJckmMBcXFd9mML5CK15Bj0AJtB5iUktqQVxirkQNgljgS9m9yUYSgLOo1K3AMG9k+wOUfX2TuX324sj1JcV+ZanTfHGnQU6SQ1SWft5W8G5uIuxFMZtudsolw6/nzLqhG+TyQzlKKnVCDkMH8cTcxU6kP4DGSjze7+gDZrNxJbZ1nxQXst3dtPRpUhfWVEtKMCQYEBwbB0bziGCXQoeU= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0sL0AZ9FAhJagsULHBFF4IDM6XdtMxWGq6YaCzinb8DDXh55u7Gu4MWVZ/iRThIDmCbVoxoMXerFm9yyVBppVhrR0OCTrsBWA/5wwIN/sSbQks6aljjRYm0J3BmXAGVa/CdJB6ig4jqs33kvP51B0oboem2/S/7dzKHYaGaYFFQ+neiCuUv4B0u+sT5eb7vg7QD48SJ/HygBJZxzlqdieoj4I+km3r/sRNrGt/lAyka0foQm0MzSi6+c8wZ46GSGHo5kUGvgscDLBhdoT2nVEewMElS0fQDTKRY0LqUQZz/22nF1nVq9Woe6AlZtvBoNC5UfRkunjVpAYJxTfS6prP1JUUiRYeuBAGpwJsDVWOsuTWQCgnALFsbdpvay0eYUmGO9Edyg7pE1z10ettCI9HBJR3lmZSlqHYNKXREcrRenwsX9mu5gsLHwSt0hxLKC5qV+vJAx+724I1936wnQV+18FZ/kisC7TakNJ9Y4aGpx70HxmnuofyPGgQoErQpHaCCHOd+9ZgOp6i2PE5ZA1CUxNYe3yLjUOddNEu2xkszZ0QCR36s1zjCVeEUVg8u0wSPA9IJjCIzf/dMwCrZFrlssqBpzQZ+v5DSTH3Tl3GhqIDTkv6k8QT0D3JJB86oo X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?dW179FSHDZT1WGwIuapsqNhC0aejV50ZkuCJg4clTqxd1ENHg75KvdotfrSI?= =?us-ascii?Q?NbaowwZNqf+uy1qSz0ztw5ZZ/vteZEnrOMqBgoe+In/rEaSTrNxSzXzMbWXB?= =?us-ascii?Q?2l1Ftf7ceBSZDIcskyNPfTrpgUIPb/WpSWYG1ab9bQ1OxvGr0snDihQ8iiGO?= =?us-ascii?Q?BQejo9h+Iz85Zs4CGzLRg3DfB1yRNc3NXTbr8+jEvueQgzeH6vLp1Vc4pAu0?= =?us-ascii?Q?h4+9zSEU1Uezn0TN71FUV96BSWgE00bfypUoupc4eIbby1jBZmQnEdRkQD/5?= =?us-ascii?Q?jGDuOI9SBxtokKAZvPDrKOA7LUS04Leyg+gA+QYp0wxukR4DySaz+tnnrKrt?= =?us-ascii?Q?Vo4gGh1DDkEUFNUYTSsVNYPqg7BUPHTOzM4NCjgxuU7JpjApcU2QIP2pKdoM?= =?us-ascii?Q?rV9LogEDvUVKgxWnvhm6n4AaTPZdWfr8DC3749TOt14baF/irn3gP5oDItMy?= =?us-ascii?Q?4LHrlX1jofAf1vwhz0wdi5Eke/dhgB7fwFT5x6+pmzGfRlDC/Zq2HOCvY2n/?= =?us-ascii?Q?375D5yi0T3108YX2jSQGJfKoxPLQ7gd7CYBREpEV5JP1o3s2cMxglRKtMYuY?= =?us-ascii?Q?WgMIsvADrFVDTSf6AuEOjEpbhIY7FwBZPdBtvX2rwlOxmG0y/SD5VCCRsVsK?= =?us-ascii?Q?QWRZ0RrRJjFxG96DgP3iLHiwHUQmr+CjymW4205/MTVGFtBb2jSEK81RDARl?= =?us-ascii?Q?GEZz4ui1NnXPHwMJ/1yGVHNpSM+ne5ivMHZH9X11/05xBUojHmu4vRff2bT4?= =?us-ascii?Q?h0BVqhBgChl8qh9sqRcoEyWUuVqHcbHv4BecPaeSs9Cf40KlHMA7F1pNvXaW?= =?us-ascii?Q?Q/34nQbxM1YQnRnfxiAM9qhWDjfLJ88URp3KNtXbSBUIg4Bcivr+yE3B5uoC?= =?us-ascii?Q?PVranqTxbmtdeGgdAGm7xvSKzcum3+M/X/B7E43pV2vY2PEjFFffREafvC32?= =?us-ascii?Q?yUSwAVDWU6+c+I/wBrGq4rvBk18mmVu5pX2mXYCmFteeJCdvfOaFJMNkTIMT?= =?us-ascii?Q?HskpSWKRVBfIiAJWtArZX830DuhFb77RB+qCBvBlDIoP763wVLxoXDD9368Q?= =?us-ascii?Q?3SDnrJFRGI4NbprfISLVQIx044Jz0al9UF7+miF8RItnZSMgjZ3eVFj9srXu?= =?us-ascii?Q?vFStbfEKeEOxgOYsYAG8Q4lIjVpG3ASlxupw49TH05JsdeHoqIr2xu2psejs?= =?us-ascii?Q?fRgbtHeNSdSUdJR/viVtGg+XzL3k4hG/6rBd9zgdTnPyY5rAfX6Fp8LMrPz5?= =?us-ascii?Q?L+4Z+z750KUhPjOHhdtqE6KLidmhlbrMnqEhdsoZOQ=3D=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4ae66cdb-ba20-4f85-4589-08dc2b5de437 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:24.2538 (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 06/23] avutil/hwcontext_vdpau: Allocate public 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 VDPAUDeviceContext as one no longer has to go through AVHWDeviceInternal. Signed-off-by: Andreas Rheinhardt --- libavutil/hwcontext_vdpau.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/libavutil/hwcontext_vdpau.c b/libavutil/hwcontext_vdpau.c index 5b78e95529..016300db1e 100644 --- a/libavutil/hwcontext_vdpau.c +++ b/libavutil/hwcontext_vdpau.c @@ -83,6 +83,11 @@ static const struct { }; typedef struct VDPAUDeviceContext { + /** + * The public AVVDPAUDeviceContext. See hwcontext_vdpau.h for it. + */ + AVVDPAUDeviceContext p; + VdpVideoSurfaceQueryGetPutBitsYCbCrCapabilities *get_transfer_caps; VdpVideoSurfaceGetBitsYCbCr *get_data; VdpVideoSurfacePutBitsYCbCr *put_data; @@ -115,8 +120,8 @@ static int count_pixfmts(const VDPAUPixFmtMap *map) static int vdpau_init_pixmfts(AVHWDeviceContext *ctx) { - AVVDPAUDeviceContext *hwctx = ctx->hwctx; - VDPAUDeviceContext *priv = ctx->internal->priv; + VDPAUDeviceContext *priv = ctx->hwctx; + AVVDPAUDeviceContext *hwctx = &priv->p; int i; for (i = 0; i < FF_ARRAY_ELEMS(priv->pix_fmts); i++) { @@ -157,8 +162,8 @@ do { static int vdpau_device_init(AVHWDeviceContext *ctx) { - AVVDPAUDeviceContext *hwctx = ctx->hwctx; - VDPAUDeviceContext *priv = ctx->internal->priv; + VDPAUDeviceContext *priv = ctx->hwctx; + AVVDPAUDeviceContext *hwctx = &priv->p; VdpStatus err; int ret; @@ -180,7 +185,7 @@ static int vdpau_device_init(AVHWDeviceContext *ctx) static void vdpau_device_uninit(AVHWDeviceContext *ctx) { - VDPAUDeviceContext *priv = ctx->internal->priv; + VDPAUDeviceContext *priv = ctx->hwctx; int i; for (i = 0; i < FF_ARRAY_ELEMS(priv->pix_fmts); i++) @@ -191,7 +196,7 @@ static int vdpau_frames_get_constraints(AVHWDeviceContext *ctx, const void *hwconfig, AVHWFramesConstraints *constraints) { - VDPAUDeviceContext *priv = ctx->internal->priv; + VDPAUDeviceContext *priv = ctx->hwctx; int nb_sw_formats = 0; int i; @@ -219,7 +224,7 @@ static int vdpau_frames_get_constraints(AVHWDeviceContext *ctx, static void vdpau_buffer_free(void *opaque, uint8_t *data) { AVHWFramesContext *ctx = opaque; - VDPAUDeviceContext *device_priv = ctx->device_ctx->internal->priv; + VDPAUDeviceContext *device_priv = ctx->device_ctx->hwctx; VdpVideoSurface surf = (VdpVideoSurface)(uintptr_t)data; device_priv->surf_destroy(surf); @@ -229,8 +234,8 @@ static AVBufferRef *vdpau_pool_alloc(void *opaque, size_t size) { AVHWFramesContext *ctx = opaque; VDPAUFramesContext *priv = ctx->internal->priv; - AVVDPAUDeviceContext *device_hwctx = ctx->device_ctx->hwctx; - VDPAUDeviceContext *device_priv = ctx->device_ctx->internal->priv; + VDPAUDeviceContext *device_priv = ctx->device_ctx->hwctx; + AVVDPAUDeviceContext *device_hwctx = &device_priv->p; AVBufferRef *ret; VdpVideoSurface surf; @@ -255,7 +260,7 @@ static AVBufferRef *vdpau_pool_alloc(void *opaque, size_t size) static int vdpau_frames_init(AVHWFramesContext *ctx) { - VDPAUDeviceContext *device_priv = ctx->device_ctx->internal->priv; + VDPAUDeviceContext *device_priv = ctx->device_ctx->hwctx; VDPAUFramesContext *priv = ctx->internal->priv; int i; @@ -508,8 +513,7 @@ const HWContextType ff_hwcontext_type_vdpau = { .type = AV_HWDEVICE_TYPE_VDPAU, .name = "VDPAU", - .device_hwctx_size = sizeof(AVVDPAUDeviceContext), - .device_priv_size = sizeof(VDPAUDeviceContext), + .device_hwctx_size = sizeof(VDPAUDeviceContext), .frames_priv_size = sizeof(VDPAUFramesContext), #if HAVE_VDPAU_X11 -- 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".