From patchwork Sat Mar 2 19:51:58 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 46710 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:a919:b0:19e:cdac:8cce with SMTP id cd25csp2009416pzb; Sat, 2 Mar 2024 11:50:28 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCXhGSWws1OwJ7yFXKrAEkWWCGY+S4MTof04rN3btHlfaUIXlCt+hRbf/fjsKZk1EZQARKmVr5rG5autwLMZjhaCZtxy1jQq12wJfQ== X-Google-Smtp-Source: AGHT+IFusH2CegJopnbgZhBdAbbzYReQSZ/IFP/Ba3Hy84ug3THGfoA99VhQvjRtMwdJCPlGnVC7 X-Received: by 2002:a17:906:830c:b0:a44:1103:8282 with SMTP id j12-20020a170906830c00b00a4411038282mr3158747ejx.24.1709409028108; Sat, 02 Mar 2024 11:50:28 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id rs27-20020a170907037b00b00a3dec96d61fsi2473394ejb.440.2024.03.02.11.50.27; Sat, 02 Mar 2024 11:50:28 -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="AJy7/Ngz"; 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 B22A168D306; Sat, 2 Mar 2024 21:50:21 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01olkn2072.outbound.protection.outlook.com [40.92.65.72]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D2B8768CC25 for ; Sat, 2 Mar 2024 21:50:14 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SUXFX9Y7TlE/TbFisKUb77AiIGgc+WYpum5AIt9GB72DIqeAGgG/Ohb5rDAyVWnlAMCyFOT9LQNwwpWQQog0+9jjL13zau/XhRkTaI9T6456qY4IqlNvCHJdk4MJZy/tvQWvzX0R7DFqvUgE5gkuQwz4KvOjKIJfzL9p0uPdCI6ThXy98/cZoDT/ASXVfKfEJsf/Tyo93warmSGx48uhXH3KsRPqFUSb/XcPY7mlK0G8HuB6OHL9BS4vHR9gDa+ihKZ8aBI/l0XMYPvw+9aT7dWDJBeHDuzfX1a6HC7HsVl9S5bWRhrL4uLvNQOIRQrDFdK51E3h9h+ZJmLB1yw/gg== 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=we1NB+KVEPgyM0SWAxtb1K4tRzVXkT7dchDpbZr3nx0=; b=asEN1t9SS+8Bp17+mNhMVbq48xGGwoZcX5OeGNorZVn71kihF+RYNC9GoJu6ull9E+cXiTsn+eEbY6BieLe2PHxvp648aefxUjKWqvu5qj/gjT0ojWXJO5B1FJrtfWaCFBtx0IJJ8J/HoqN0EPbykO7qrTQQxzZvQTrOg32JPvnX7dljivdzao1/imUyfZ2C/KT8yspeEsBxAJ1L9fqHN6HNCqDr8DpjYInYfZbkyzranZoJYt+G6Zv7p/jJXCKpO7eZGbbtRp34vhlFNftrP4V3BTeuWeMCt5SqrtcAQnlCGHy8KrMSKOPO/fKCotUddWrifdEKwoCxs9Em1DQbCQ== 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=we1NB+KVEPgyM0SWAxtb1K4tRzVXkT7dchDpbZr3nx0=; b=AJy7/NgzeDQaVH/ROCg2mvionWhgxUWJdFTa4vh4AuSC/tjAPY89R0DfHNecPCPVAhBcb63+g/6CDRUNJ+ay8GBAru2HTCawQkJsErDmFsLNDxpwHsFEfB0buljjHQIXZkb24VA0ArAcHIJ1J7OrNPYBpcQq1lqlyprugi4wgaqQjho0r3YM3h3cwU8s5l3bBMPBiQM52hsQW4Uhd1q41PqyjN1wyO9Qcq+jZXPyxNl5oZeYVx4HHIJODWRxZdOgDgTU1PCEParnBplMYYU/mKAs+ni+lNHvGeZ9rkvBIQw3CO2hEFIHhzRSIkHC6H5tguMNg0Wo3xuErCEKHVRwqg== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by DU2P250MB0045.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:2b6::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7339.32; Sat, 2 Mar 2024 19:50:09 +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.7316.023; Sat, 2 Mar 2024 19:50:09 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 2 Mar 2024 20:51:58 +0100 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [x8Z1Iw3hqOGQXvbVmSfIFbznItQMJgvT] X-ClientProxiedBy: FR4P281CA0079.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:cd::9) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240302195159.70943-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|DU2P250MB0045:EE_ X-MS-Office365-Filtering-Correlation-Id: 626925a8-709a-4b9a-a94b-08dc3af1f757 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /gpmlw+9n451xndCZ9Y3bx1JhLO7oAmsuQchLQp4VR6NI6b36ienkVcTldALBy+vjoh1+/FPSrGHVZaY04s93aocghYP+6Y+rdr6uENmZrquqL+S1sslt1U8uAKl1ooz9Zcgh6lhBgRi8si8EH21A23c4HgrWoWWPqTSPAcJqFFuXLlgcovwupEKLeIay1FuAFQATxsUQISUpwGfbrdqLEQWgOwxgrwJJh+UdgYsKRofBijz9t1y20tR77EzQE64jPbEc2TSni4xrXUAuJYkEfetBswZofbIhnm/i066LUEDX1b/CZNnMUH+hj9wiYMGWA0rs+IpZVW5QACqtuGqRKscT585uGipnMlEZ616ytYoXckbh78XB6nstENkkSUbYme1gjfj0x+PSN9ial3idyD+a8uPhrJ2VRN7gkXyEPso6YKOH6Z4mDAV8rcVb4NxJKAjQyPMlmlnXMe9fMx3wP9LrP91qnCFRCSh+2RtqjB9f1uEeC0o2QgMHNym5L4P2GHedw1ZWNwpv0de67T9us8Wv6XxeIJ4mBIX24q8w4sNWs2bSt+Z2V4IvfU/TLLejtHEkGxxOVialcLJThGUHcG+DYqOeeCLESHolb6vJFbHLMtN75f5Avl4lgIeE+0G X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: uwqCjWHOg26o4euJ/GJxUmLEIoj5vmqEM+grF6zRU7yrXNrb89fS5QFGbuVNR6jIOv7gEkamcM8lTuVNWCTbfM+WMC2TqG/rCgGFbVxqeSe14tLjK76QB4GRpUJ9jHlzHMEiqMZajip2iH6jSDbGnVbSc2kCapTyxndCtLZ2sjeil8PNHQUcytrOZR6DIT1qO3Atop9qUOzr0cf8WwwSUSGEq2B1F/Nf99v1kz6FL1T7pYU1NYLXiQXae91GgNRvaNof/+9cKwPboeR+C86xEgVWeqa9uV8DzFjfIUbNDptjR5I6euDYaftbAoQ002MQYz/4y8JWr6gVvFcc+5v2koTsuDH6KF7TQMWv48mUjVnEq9axwtQpqurNcMV6EfDHAhyH2is+M0ZteThIgq6AxHF2bM+1ICx5qEYUeaUYU1fKwTEDKzAwRhOnWl5WEfkzg7I2QGCiBb9iqJkpLu1f9IApIWLgqxi3EyQ8DkfSScWUw610PQMfHXGwhCMleaz50QhUqDTOjauaw0y/lBycX1N9I6iV7Ok9zFVyO73F9yDvT03pFNIMmIECIpfW5uVk4Soxy+LzPGHSLzskYQkGOXyjvp1HLne5QT9DEZKnwkDx1KFbf/b0kigaRPe9f5i2ZjTfjcfi2ZMNglRV3pmhMW2iZ4DS72CJDSiJE1mqPjzT0Kve/celquU04HVS133g/HEBt88ou5xzBRenlg5FRldvXEzGGTTv5t5D06AitvjPRI/407zWFwoQ2uiUg77Hl7ROFzPZ/crY1/fnagHDSya4HLQvlzpwslhAqR7+P8LXt6ySH2L1HyUovI3V0EGcxDutjP1QRlu5e5HgQeflXWhHPXcnNpvMU6Z/Q56EHwr6+abdjcqE+Z+4UyrHRjZZk7/B1kJSDt6E1UrKwrV7Mq9PWFYJmXLoOMpwoxHPMM6eUnwnqsTKYFup1JqswE/Si5pzum21PvnS0sc/Gx8p9YDVNuD7j/vNxAenaQrImUQs81n3o7G5fNU+2pEFLF53LpuqiawDXMgQSHvXIjDQECDZ0QcBWzi2mwkGBVZ5SNUh/ujQBbDAu8I8doxhqv5UvlPdUcVqUxBMLAuv1Uw+8gz0P7fdABuOI9HhY76xCf61paztQ+Hr6WHGxOS+dW4wvLl01t43KAWkaBJAwlCF2ipCqiYa9pCk3mCtPRKhxYhbASwoJwWhwvnB09dngZH5kyAQ+YrY2fznGKVzs5hlvKSkpfzp87iY6ywJQ8pUMbyMG97DsId3J4skv/sJjQIGshAdUaCDhXVMDJqbTlsCoQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 626925a8-709a-4b9a-a94b-08dc3af1f757 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Mar 2024 19:50:09.2474 (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: DU2P250MB0045 Subject: [FFmpeg-devel] [PATCH 3/4] avformat/avio: Avoid indirection in ffio_fdopen() 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: CHi3p93OqNH7 Signed-off-by: Andreas Rheinhardt --- libavformat/avio.c | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/libavformat/avio.c b/libavformat/avio.c index 1622a03d7f..f3d10fac39 100644 --- a/libavformat/avio.c +++ b/libavformat/avio.c @@ -408,8 +408,9 @@ fail: return ret; } -int ffio_fdopen(AVIOContext **s, URLContext *h) +int ffio_fdopen(AVIOContext **sp, URLContext *h) { + AVIOContext *s; uint8_t *buffer = NULL; int buffer_size, max_packet_size; @@ -428,36 +429,37 @@ int ffio_fdopen(AVIOContext **s, URLContext *h) if (!buffer) return AVERROR(ENOMEM); - *s = avio_alloc_context(buffer, buffer_size, h->flags & AVIO_FLAG_WRITE, h, - ffurl_read2, ffurl_write2, ffurl_seek2); - if (!*s) { + *sp = avio_alloc_context(buffer, buffer_size, h->flags & AVIO_FLAG_WRITE, h, + ffurl_read2, ffurl_write2, ffurl_seek2); + if (!*sp) { av_freep(&buffer); return AVERROR(ENOMEM); } - (*s)->protocol_whitelist = av_strdup(h->protocol_whitelist); - if (!(*s)->protocol_whitelist && h->protocol_whitelist) { - avio_closep(s); + s = *sp; + s->protocol_whitelist = av_strdup(h->protocol_whitelist); + if (!s->protocol_whitelist && h->protocol_whitelist) { + avio_closep(sp); return AVERROR(ENOMEM); } - (*s)->protocol_blacklist = av_strdup(h->protocol_blacklist); - if (!(*s)->protocol_blacklist && h->protocol_blacklist) { - avio_closep(s); + s->protocol_blacklist = av_strdup(h->protocol_blacklist); + if (!s->protocol_blacklist && h->protocol_blacklist) { + avio_closep(sp); return AVERROR(ENOMEM); } - (*s)->direct = h->flags & AVIO_FLAG_DIRECT; + s->direct = h->flags & AVIO_FLAG_DIRECT; - (*s)->seekable = h->is_streamed ? 0 : AVIO_SEEKABLE_NORMAL; - (*s)->max_packet_size = max_packet_size; - (*s)->min_packet_size = h->min_packet_size; + s->seekable = h->is_streamed ? 0 : AVIO_SEEKABLE_NORMAL; + s->max_packet_size = max_packet_size; + s->min_packet_size = h->min_packet_size; if(h->prot) { - (*s)->read_pause = h->prot->url_read_pause; - (*s)->read_seek = h->prot->url_read_seek; + s->read_pause = h->prot->url_read_pause; + s->read_seek = h->prot->url_read_seek; if (h->prot->url_read_seek) - (*s)->seekable |= AVIO_SEEKABLE_TIME; + s->seekable |= AVIO_SEEKABLE_TIME; } - ((FFIOContext*)(*s))->short_seek_get = ffurl_get_short_seek; - (*s)->av_class = &ff_avio_class; + ((FFIOContext*)s)->short_seek_get = ffurl_get_short_seek; + s->av_class = &ff_avio_class; return 0; }