From patchwork Thu Sep 7 00:23:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 43605 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8b17:b0:149:dfde:5c0a with SMTP id l23csp280618pzh; Wed, 6 Sep 2023 17:23:00 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEZCmzNYIcewGzUc5tfsM3f5lHpyxBlCQE36k9kNyptZ6ePomyOczLQIEWtLIOH39GGaPJH X-Received: by 2002:a17:906:259:b0:9a2:276d:d83c with SMTP id 25-20020a170906025900b009a2276dd83cmr3590476ejl.18.1694046179877; Wed, 06 Sep 2023 17:22:59 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id s21-20020a170906961500b009a18d9d3fa7si3033518ejx.669.2023.09.06.17.22.59; Wed, 06 Sep 2023 17:22:59 -0700 (PDT) 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=ouNihSDy; 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 3CDB868C7A2; Thu, 7 Sep 2023 03:22:55 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04olkn2066.outbound.protection.outlook.com [40.92.73.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 200C968C613 for ; Thu, 7 Sep 2023 03:22:48 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fpUNKQbaMgjcQbNzw+jeFDxNQeZkV5Ss+tavduaubXqysDRK3Z31W5VgO89Us0EEvzxUnqit3IDa+SP68eHJvzlSZWhlBBrs4ge4pJBJpwYMF2kLiscNLnfJi9G3vQDzzg8iZnXvHmiiZamK5BpX9UuCT7rKjitsmoXdIzVxEigWLEzH++pBNnjhT7P5YVJdJq/xJJxsN7y8AO/aOD+0T/2CzjU6CHXtE9MXxyZkzFIwvtgvVw64y4Eq6SdKL3bLZWJyp6bPLd5uYppQrIii5RsHbjBb6DDHZy8Xd7HbfRUGdyvkJPZ85ybCu4fMfpS/kbNXP2mL9TtlH/PW+lcM6Q== 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=t03f7CfqK5fa43LsBJ7FNZQC0PpevENZifMUSKY8RA8=; b=ZYxCs7YDUWNsl866n12yqg9TLtb6CadlS7KkRpKfVK3SncABLl1TT9Z872yww4hCo4exnOHSmEs8/MZDXvMUqnUPz5CI3TRQ+vDuLIPxmwRLhHOyBJCjtqAsdCY5aJSDD2aiSQCecrPl2am9hdSQnLCnUyhXo76R5rTI+rB3vkFlnnhcDs4L/7HPij1aw07D2zgbKoYSD28mAwVVVFQznYl5wGfrYfqpntGc6hKdoGZupRWM2w/sD4uTcZhFQDH4sq735nJgYIHt0rXMfKMYQoGsdbb7PA1QT+WCZpWy5bWGTp8JVDMkTwSlGNega28gmD2r6V9X/d4B+7a92Et3vw== 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=t03f7CfqK5fa43LsBJ7FNZQC0PpevENZifMUSKY8RA8=; b=ouNihSDyCmBr/MVSNXGeVqbtaSjR/oRiQxYBXJhphDKStn8zouvQSikpShZCAtIM86qleW51LLoJ7t+ol8w6c2e70zEz48Y+P5fsjGVz5UIRxR5af+YBQP1M0/NPJYkZ9dM7Mz6aR9kHSWxvyJbgpSR7j/vMK5c0f2X2NqVXprHN0uhC3TUdKhCoM9LKGMLVAr70tmbtREFbuxZ9ROjfGAU+QFS1bA3QvFV7RFhDfnTg73lMS6VTHE1lml1UJPGtSdlV8gcYBo98hhYPy5lc21mgKukdfAjeEYMW9M6d4BI4X86Nwv8Q+PnxCyWbKNjthDW4OL/i8Z8SJCaRAhVAMQ== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by DU2P250MB0144.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:275::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6745.34; Thu, 7 Sep 2023 00:22:46 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa%3]) with mapi id 15.20.6745.034; Thu, 7 Sep 2023 00:22:46 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 7 Sep 2023 02:23:35 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 X-TMN: [n3cMiw7FW1lGjnFsKSnTZvRLjbAp35yS] X-ClientProxiedBy: ZR0P278CA0185.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:44::18) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20230907002355.284292-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|DU2P250MB0144:EE_ X-MS-Office365-Filtering-Correlation-Id: ad885488-572e-44a3-69a7-08dbaf388f37 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3nOHAvUehR8PYY3ZCgGBPjX1Fs+LfgamJQDAZJgVXWXJrXGqjHWVPbkMJF0/Id+fZwPz7fwSKo6eiZL9YzE/Zvy489XR3lWv0Tl/ue3E1Pw4L8EOerQxc0SoBnqCKpZNMSF3farN4p7eCWAHIE1YT46deL65WxV6JGWgg5MUc24kPk5JwP+uDPhfyH+LLRcZ2dlvpmFzh0jQG2DfjUYueDfDAqjjsU5IQ0eoxqVuAzjrx2GWxv9KT8v7CJrTgsJwsCvCIQBngiZekNw5nbeF2UXsRYykb1Ii3n2hWxnBWwb5Qcuux3dxSSNYcU8mu5aH3sOYfvKtufPrMDKw3uTZuYDzi7mODwwu61Z/wAGZnX9X9fSSWUA7/R4JK26vCnUMH37psPrP/q0x1lWK1j/1oGeaMgG+hEB587p8atGI3e/k+t1vyMB834bzuctUuH7gkWbuzz4LspVTqjFeZQHgriuk2qEAudAh0j2E2y1HvBSkhSldpXrhzTCcAmvRnBgdR6eHT4TOdY5K2Gxfb9CPoF+KCf5hlfZFmQbe66AeWbBmt7q61NPkI6gwlKHP6sDd0K6gWpay0zSUEp2OsfvxG/56mKrJxRKXoTX0UHf14F8Lgz3e4Y4+mhUKcgSsdCVy X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: YWYUTplb8su3+TX/qMu751bttChy1bEmVryBmRXny7XIC0SX4fLpwUunUmF8dcRX28iXmGhstDSIZPBsX0oMMEsMamX2h9jWoisv8uoAqtt5zQx1jEqOtbjsFYq1Yx69ciFSaFRZ7HaO2gUAFJY0eBWWMU1lcvpCXOVkgsYvx4GbYxR4zAGlGa4jRQLJw08sE+Wd0dRquMbaj/+82pDpou52TMLKotqwP0+ZT0QLBK+h59qYWkiR700hEW89RFLTbh0tgVs4EZtAmyzvYZpvtMfrbI5pV7a9yXhqbhgj+2SY8uLUaJ5NwYgcraajj1Dhx+IQwhmLzNDFcoLPJYKMHZ4rcSY7o0pEFPzwKGpiv35IqFaCO6pgcpA/OU4qW3cwSgG4Q/qLNqazssoK/xIiO4T1VOgASf8RiWgtInu7JbZwzsT8JP1lRvYargLZTJp/oYb3hqLLAodyJBu2JH9BnSgWTLXL5G706qsNWaOBD6vhLueDymwwZONohKWIHt2WYTT+QIdvxYJXSXssI6XoLSSOLGif0J6jyGWIqAhqrq08RSCL478nr/jmUqTDqIuGZFNZpsC9gXG4KKiWE0MOhlOc/cLkb/G0Q/aPgYXWd82QQU+Tk0Hkl6L6iqPz5z3Tqh8IQstUkVp29tgXNdrFx7qLYe9LnuNskzU6vqXAoKc1fXkDjlfwZuctCmSTIY6yzckj4g9uIb5gcA7pHn8nDlmXS+1M1Pc4Bb39B1AYyCdLJN8Nrtr+xo+n2v/R0fhMhadZveC+8NQ1ZQ13DScDqP6PqE6ldXTTo8pw/D13/IEPn2fWmzP9M4DGY14ELNCk84jKeLtnF4YUHagesidtF2LJ3pmYtBUUorR28ZpeUPNdPCSESPqtC2NdmUbKVGr8VpOjbgIMQaRzhk2YRD/XldCb29BggIcSiBd5aUre5KkwS7FLzkmg7orPloUgoKX4s+q44zgRMPAXj9EAkjMn+akEyJc3yLAPacqDpVPNPPR9wjWyq17ZZvH/qtl0YNKxxm14ejQ5/pdr/a2o7D/ympWwQ6avz3MhucW2Q21f5GHe4DJXXrfzr77oXUTBmwXZpQm+6w369cELnkHh1DWq6YYgEuliT0uiL9V6zizyy/w4tztUruCxg02fxZFjxTUq2FQy4or0XzQTQSpMPmzP7KEAXXk0Mp92Edekj7Nk9S2KKyVmvr0AKvIHlc9JQp3V30IctrPvQQvebkKkQ47cpIhJZgRHixwqP5HiPPU9eoy31hPxQPeMp4NEaqgYhB21 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ad885488-572e-44a3-69a7-08dbaf388f37 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Sep 2023 00:22:46.1382 (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: DU2P250MB0144 Subject: [FFmpeg-devel] [PATCH 01/21] avformat/avio: Don't use incompatible function pointer type for call 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: OKtXbx98HgUo It is undefined behaviour even in cases where it works (it works because it is only a const uint8_t* vs. uint8_t* difference). Signed-off-by: Andreas Rheinhardt --- libavformat/avio.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/libavformat/avio.c b/libavformat/avio.c index ab1c19a58d..d53da5cb0c 100644 --- a/libavformat/avio.c +++ b/libavformat/avio.c @@ -354,10 +354,15 @@ fail: } static inline int retry_transfer_wrapper(URLContext *h, uint8_t *buf, + const uint8_t *cbuf, int size, int size_min, - int (*transfer_func)(URLContext *h, - uint8_t *buf, - int size)) + int (*read_func)(URLContext *h, + uint8_t *buf, + int size), + int (*write_func)(URLContext *h, + const uint8_t *buf, + int size), + int read) { int ret, len; int fast_retries = 5; @@ -367,7 +372,8 @@ static inline int retry_transfer_wrapper(URLContext *h, uint8_t *buf, while (len < size_min) { if (ff_check_interrupt(&h->interrupt_callback)) return AVERROR_EXIT; - ret = transfer_func(h, buf + len, size - len); + ret = read ? read_func (h, buf + len, size - len) + : write_func(h, cbuf + len, size - len); if (ret == AVERROR(EINTR)) continue; if (h->flags & AVIO_FLAG_NONBLOCK) @@ -402,14 +408,16 @@ int ffurl_read(URLContext *h, unsigned char *buf, int size) { if (!(h->flags & AVIO_FLAG_READ)) return AVERROR(EIO); - return retry_transfer_wrapper(h, buf, size, 1, h->prot->url_read); + return retry_transfer_wrapper(h, buf, NULL, size, 1, + h->prot->url_read, NULL, 1); } int ffurl_read_complete(URLContext *h, unsigned char *buf, int size) { if (!(h->flags & AVIO_FLAG_READ)) return AVERROR(EIO); - return retry_transfer_wrapper(h, buf, size, size, h->prot->url_read); + return retry_transfer_wrapper(h, buf, NULL, size, size, + h->prot->url_read, NULL, 1); } int ffurl_write(URLContext *h, const unsigned char *buf, int size) @@ -420,9 +428,8 @@ int ffurl_write(URLContext *h, const unsigned char *buf, int size) if (h->max_packet_size && size > h->max_packet_size) return AVERROR(EIO); - return retry_transfer_wrapper(h, (unsigned char *)buf, size, size, - (int (*)(struct URLContext *, uint8_t *, int)) - h->prot->url_write); + return retry_transfer_wrapper(h, NULL, buf, size, size, + NULL, h->prot->url_write, 0); } int64_t ffurl_seek(URLContext *h, int64_t pos, int whence) From patchwork Thu Sep 7 00:32:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 43606 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8b17:b0:149:dfde:5c0a with SMTP id l23csp284126pzh; Wed, 6 Sep 2023 17:31:58 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFdfbj4yGBHPsgzQkYZ2nXwlKuBfMH48IgKO4QF10oNw90k5t64M14gRYG/EenhrqBidlP4 X-Received: by 2002:a17:906:7307:b0:9a1:aaae:8207 with SMTP id di7-20020a170906730700b009a1aaae8207mr1595359ejc.20.1694046718634; Wed, 06 Sep 2023 17:31:58 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id j5-20020a170906830500b0099bc57f3882si9404475ejx.369.2023.09.06.17.31.58; Wed, 06 Sep 2023 17:31:58 -0700 (PDT) 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=SicyPe2z; 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 246B768C77D; Thu, 7 Sep 2023 03:31:55 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2081.outbound.protection.outlook.com [40.92.91.81]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 59F7B68C264 for ; Thu, 7 Sep 2023 03:31:48 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PrWwyuBM/+aoiirmIHLqnnOvpQVqhxPY6EbQd4xQIKzQ8mPvvocpJ4FqD66YOmUcu1jF8gVXVRJALIqNVx82FbagcSXv+UqlgM+0/YT9xesNzym5G1Kt/lozbCuUZOjaJF84V5I1dfEqr7iWm+wNhXkqOEiux9AKsfZ5QtWxvON4ml8OGiwgqAUM3JBI7ggqTm0i83o4eHnKFAX+B2CwdoAw/gwgDxa+Dkt05IAq5/yDrigVD3i6QjS2Z2GjTBUReApXSCzCEHJR+x4XvTMdaMP4N7rAAWxW8ziiz14pwMdrJ9k8bP1Sae2fueE2EJ1LIVyK+32r43HR/jBvgESPGA== 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=xpdbvtZVrw+cGtFKvPWUAmlqElKxk/8zYqCdLCUCnZM=; b=oRhqCGOoJSUusFcRiuFUXsvOZGo+Tu0W2uEhN1/rOhEhE98hqFocDtCCxseYC8cSOd4aGnNjP7KYS9lX/Fxfb2WVpje9x5e5g6Cgug1JqBwc291rwqySwyC9PvYYKbQfoWHMm06Pm9+0+UIPVa3G9TebnvOOhCmb8Vk/Y41qq8BXc/mYAflyhPq0e2aPo5oBECexkKM5ZzSHV17ISexE16OXmjT03kw6VXf5WeNu8d5GEQX9tMZJmV9WvZmJUqVGcz78gaiLt/mTjsmernEt3j0khOXOLSjx++Rq4ViLuPWW//nXPgoEKMnATfCZzjkxV1zCacYyvnBvULp+5gcMcw== 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=xpdbvtZVrw+cGtFKvPWUAmlqElKxk/8zYqCdLCUCnZM=; b=SicyPe2zRJnlGdPlWTIx/87UmjpPvFaA/3UmKpKO+/A5dtkSS1gQQDzqyZIvcZaLHHfvaTaaxXcz70cqHQsd205fjp6ZQP51ZwjUVsHVcYe7nJXRbEC8hnAMBoopJyRIaJPkcXcsKUO8iuPNSWpoJGOdrI17WEiZtYvJ8qZ4wieXz3HZjIbD6UKMnisJxJFsYjTJji9ZH3+UoS72a4hozv1Pr4LEHIV80kNxhcMST4Yj23m76Rw2p77GRugMMvzXB20DJ6xDTkMfB389Lchjo6EH4fKH392peAsYpmAVoTqTgXWIr72Vt9+c73fb5yx5BqjcWe67RcRmiuy4i+eWsw== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by PR3P250MB0353.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:17c::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6745.34; Thu, 7 Sep 2023 00:31:46 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa%3]) with mapi id 15.20.6745.034; Thu, 7 Sep 2023 00:31:46 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 7 Sep 2023 02:32:20 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [9iBbUQcX+0m8p9ERLsrpISHcCD420rBq] X-ClientProxiedBy: ZR2P278CA0038.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:47::7) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20230907003239.307330-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|PR3P250MB0353:EE_ X-MS-Office365-Filtering-Correlation-Id: 44f5bf71-f424-4074-7477-08dbaf39d175 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: n7STGFx1K2icmOdDN40dGlXgslsy7CLc++ceX7U67nYkrf2c99iOZZYJZr7aojBbIsRaAaRagrfSw9sZx4d+rrNqzGOf9DUpI6VwkWVDrcRMAKnGSyvjHLRZKdkt11UTlNUORAYhuW68HZbzyx6swSLZTwM9LQZh3FfJLv7I0ebxi283b2GOcd0IaaFMSRo6UHfeLSWl7nPfKGORSibYnBd2hK/moKZFpjvb/WqpjQgotgIjK5I8LrEGy68yjv3ONgJy29Dw8ydLkyOeiWApqPeM1h3GbO0DXiOYTqOgWaYMN1levR/J1nf3Qn44ETijg40vA21xIO+hVyhTqXr13beRB+NPmcSidHlDbpWJZ/HiV+OBeqLlOfrU2nzAE7xYyxQXtC8lg0cf1pC3bb4GHLTQ19BitpIt7me0tYQe33HKYU+EuXrHwtrom6HW47YCd38ekgX6F7g0ByEow3IjW/gmrXe4Y5hNBWYnhn1ik48yDpMPcofRMyFOa02IaiCQH9x9MPl/ZL3dhsstdD3ds7GVNrAHSVEX9PhbrG4DVLl1CjKHHh4ebnqtVvNw/gMxLtIvytc4+Y3NJnvNfW9iUJUL3vsu5jKGQxGGkxhwyNCa3HlEmwSzemBGgvadnfUU X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: AM0aXNFKU2XIXVbEXC9ljOtJPVUDgQvU7njbP7gMBxtfLokzGB1NWLxOTIeKehVpjfstgo3ixsE0cayP6gsPbdj+wGAVk3uLNmOLoqJmQt6kGfUGiPr96nrqQzUcB2AoesjxUzN1MQZd7eu1/uipqk98LAotzrKtwr4ULt0XflmcrG7SAgDgrh4SqJZZZyvGBAAB7PEvq9sNMPcN4vfMQQy0tlgJLadTO6FRsNBN8rmCJ07W3L7PRhrXwDZlkf6Kdz+VLQshr4R9NmzJpkf7t9tmVidGHCCFqAdE4so7CmAjiR/Awp9qDDWs9yfwagTEl2gwQW5IF6JD4ukJSgq+XILYmudE3wDolTefdfptwjX5gmyhp0AxuNt9R+4FTPJxS4p+za5aFFf7yUXMx+4S4cNpWABfLPCfFqcQMybueyBmdCvB04P5RhOGUyhvEq5NOWHQHBnvugExxj3OH9aEjRFKPfUfcqEORI9npTihLN3uw+p007BOo9ArlJzk1LHFj8hUtMAT8vPEwQ3PGyp8lbyCOIqRM2L8u6sRrHrhtdmYn4fj+OONfHAmRIDzpXsRAFJpPQ2AeE2wlPUTmh/Z0SngWDBTeKEFRz7GS5PhTU+N+5gmBUyiLOvtCYUZNJbHbEUaRWK9WkZot78i2d+6oXzPgyJRRdAbEOEXHe1eRIJZaSyAzPP41vRVOngtwGvds7yOZqOcM6cvvchC4ev9DbsJzLuEJqpw7//L/cEen1gjIxsx36W132eWa9qQYkU6w2yaF8Jg87EAP7ceWY4skzs9ZWgjqI+3azvRUOMbGCpNpudji9xm+Qbk5OpXHJtyFDV9wAq3xDwnAnoI3TyIVtWXkXkxaN+i9OlijMQ0BdyM4kHfHqwaA+OTTmHy95loiatN1peHVnz4jx9sDQ/3DOzVtm+OZcbxySvNb0yQmjYJLa/QSOziGoMwBjC0El8rM3LrF06HT/795NMd6TiZbhWBYtfhAI3ZL/F6SamAjbHH/j27dxVGg6iNztvv6CEZcpyV0E0GbaooxR212Hq1YMtjx/GyD+PpoDe6sOKzHeJUvLVQIg4Sq5XX919T7ym1U5K6Nmj/I7c6bmbnyKCbiaz9e2DSv8WFoNd8Qo+ZX4hpy7SC1DQBCtrw0bRyCDWD/LyAQAUerksjmwE7jm9LLwKT4PfhQcMtwuNrEQ2plgW9x5HvZ//EWxOhq00Wdm0AssD50jp9Va/NFksNFe0rfBrCRzdWuXHhTVfoZo6tToPcJXs35qENJpf2+gFmjZif X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 44f5bf71-f424-4074-7477-08dbaf39d175 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Sep 2023 00:31:46.8184 (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: PR3P250MB0353 Subject: [FFmpeg-devel] [PATCH 02/21] avformat/internal: Avoid casting const away 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: 8VETwhtTUDaS Fixes many warnings when using -Wcast-qual. Signed-off-by: Andreas Rheinhardt --- libavformat/internal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/internal.h b/libavformat/internal.h index 051e8e2893..c7512898b5 100644 --- a/libavformat/internal.h +++ b/libavformat/internal.h @@ -418,7 +418,7 @@ static av_always_inline FFStream *ffstream(AVStream *st) static av_always_inline const FFStream *cffstream(const AVStream *st) { - return (FFStream*)st; + return (const FFStream*)st; } #ifdef __GNUC__ From patchwork Thu Sep 7 00:32:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 43607 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8b17:b0:149:dfde:5c0a with SMTP id l23csp285310pzh; Wed, 6 Sep 2023 17:34:38 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEToPeNhLnmjpJprCSGpx1tCdc16INBZQWn7SF58ZoEhZWrDeW3J2TDbB0uo2qxQXVcKvb1 X-Received: by 2002:a17:907:7859:b0:9a5:da6c:6551 with SMTP id lb25-20020a170907785900b009a5da6c6551mr3184000ejc.62.1694046878507; Wed, 06 Sep 2023 17:34:38 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id ks8-20020a170906f84800b00997bd26a559si9785397ejb.881.2023.09.06.17.34.38; Wed, 06 Sep 2023 17:34:38 -0700 (PDT) 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=QZtp6YZE; 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 4C6BB68C7FD; Thu, 7 Sep 2023 03:34:35 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2047.outbound.protection.outlook.com [40.92.90.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7A7AB68C70F for ; Thu, 7 Sep 2023 03:34:28 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YcGizKDMlHp1sGTKFNJuvYGzrV5gr+mpA3OFJIKCKFPwL3kGupyb+VP4rCdQxgwiLX/zrY3EOlnPLWIc9sYHg/DCJIndU4caYD84PeerYS9sM9xBuOJXb3vy7Kre085FZpREweNRiZ1veaA7JRtn3W7j7yt0LAmqMELNQKKx/aDkS6Y3xUWRk4gjoaUR09cnOPlXoy/eTcT6emH2ow8DK29ml4UkEcyXgidsuofR+rJ+BhY2N4Vabo7ldcD/kFIjNN51yIXwrRe0CxuIt4xShh1xE5IuhKMwKDUtk2y4ztcSuzMSq9vr4MSWAGhOAqv+mt4TvCKbVuMwDxaLgxChvw== 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=6M7GN+F4hNvceC3kO+g/9K8tZJE1d2Hu8rmYAIUteEE=; b=LM1pkkCJF0sTguHpqIxN2pBqf0esWmh8arnOucfKxsVX9YiRUJVbPIHBB5BtPrRglJrBOH++zrQa993CECC0GlCPEjJc3LvkX6ZJLbMQYeeqPu7iuFnVEueJ6bHgI6mGZBQAlpLCySVPOWUSmI5CwOzLkRTQH36nTBZZ03EFBwppXQCB1jHrX3xZfcqT76BmZglnMEHT4268LmpauLY7Sb9fxGOhb46HGqljT08Y7AHptM5WqOj2E5JVl/QsnLCUBngHy1erTCKfgt80RGGMw6002hgp7WQ0bcir73RVjgsr1kVIXLE7VJU7PGDDx2Dfi5f/d+mbHact3FYcJmPVGw== 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=6M7GN+F4hNvceC3kO+g/9K8tZJE1d2Hu8rmYAIUteEE=; b=QZtp6YZEllfj1xXaeWv9zhjUNOVcPQsOOrj79ptRfaHCRxqUYYPt1a6dgUntoh2HG+rHk1qSxHEEYc6membNz+Hu1nrzsTWdW2fl2dMygHFIcgDWLK7hVYlUE7waiAypOm5W3OP6JoABGPP7I4uay1Omu8OL15TM3oLFXg11q14Cdi4K27t80sQ0CxKTgWqj4PpMXkKw0QGoE2QFxh2yDeXQGsEEWOFivsjeAqkNdKVkLA5Sd9iZW9rIQajl14BaPj3A8rEQDtFmX/PgtM767QZQhTXdmABeBMeo/SIp4ejtcpyEQ+Iiy+HKsm+O4UXsTrQlxqheQbP8GoJ6v3AU0g== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by PR3P250MB0353.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:17c::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6745.34; Thu, 7 Sep 2023 00:34:27 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa%3]) with mapi id 15.20.6745.034; Thu, 7 Sep 2023 00:34:27 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 7 Sep 2023 02:32:21 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [PqsuBSanitE78SR/vRuKUHl5AT3PumUF] X-ClientProxiedBy: ZR2P278CA0038.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:47::7) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20230907003239.307330-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|PR3P250MB0353:EE_ X-MS-Office365-Filtering-Correlation-Id: fc8e21d6-751a-4ae8-f78a-08dbaf3a310c X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: XqcU0k0+DUZc/mfRekV/culLPuidH4887+nDa/O88v2oDLbkdnnjxMEEknvxr4pDcKSELTfU8OGCCWRXDEjgzi6iwbWjl9RdaeEBM86dZkZHJuHImNsOUsmNmoklo9hMBPxpnXFDfrRfmxEDLWRSK8VixYRPmAmycnjYmKM0RltX3bfUVPpuBm4sHBssD+4SloxKVOKqpVG/ureJyJ0PofqefUN9GhrrpGrxigAlDRLAlVeFRnafC+dr674ZTiALma6aN9yhz/8k3bNR1HlDYMF9CanjvgUdukeWmYx0CdbU2uOFEmCdiojosPWjEki9L/KCi+53jVts0gAzjDfmpaGk9kcSWl/Br46QRC+MV648C4CZ/HW1lBRb4Yg/H2yxQjqnn6DBpVPwholAuSlQw0WWSdTje42Iqa8iGS+MCf7XJ9Q7sBmL83qh5fBKA++m5CkNOkba1GT3rEA/z9LVXQkzrnuhHbl71oeIVc9O3mDmXdVBhk7iJCPPExrySSDfbmvvRBA6yhzNsMSeBNOl4LTm1OEHRD0ytHv0qd9JoJW3K9H34KMvHMxkFVTxthd1yo1YuxIJlq8KuIPDNhVTPW5m6HVH1Bb912aP/VP3pJSw7Q3rJim8hxfuMvACWj/m X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: JDqYhXMZ8P3n7bKB9nTKTvSDkVdGSvl0jJ56KyODtq8P2oumPCokr53617lFqjRjgDmY+ANV8qKjCJT5CpKGhIrPPT6UgrPgQFXePe6Fe9oBaXOyeF7xLx8HruETVtVh0Q2kPnHKzPOvIvefRkpkSRvu/2fsNFYOD0XJ2kjhDbHfq5nXoM4HHgpSDlLDzQWuwM061l4hrCyUo0Qx/m8SaFyC1l7XqFE8zk5ZVD6XJHPlny0ZjO+o6lydNpB/3dtSPrU3hOYgKQUBLquQfVtgyN8attauLWaDyDYIAKEMupaSk8T7DMeQOkIIcGKLqKe6cTzG0rrWKkbpfQpzA4tSgu75diWzeKfqBl4yNgtuXKozv25GNw7gAYPEr7fgZzvkK0lSg9b9xEcL7z49778x5N1qkN2Alg/w5xxCNg8eoB2JInztx+YMGsVq12EA6kUehEo8/lR1e81MWQTVoTCLh8fm4h+P2PB5F+igdTQYMolR5ZUjxcAckdypaLK0dUhrHPy8mqc9TvqILHh0TIAjp0g73+1US7ECxaUgXY2RXhs121It0cODiG2Y+jWcH26+6X8L3FbWMYzIPsOo75Nyxfel7VbKcCf5I/ohBvxQ1G2aiHd9qKdb8tHAPAMHYVqN7BGzEe5/YONdBh0s6Sv1pav/UopHwLk7OfnqV2ZBXcDxYKmCDYvSXe6qdu4CDixc2mqCevxzomUMf4zeTplqLF7kcLc1HQLq6Mncg2CbivgGWuL4e8njWD0XFF3YJNOeFOwMUrf4X+RoNC6ahsuPKyUUV+g41FTXudzGwOQlrptEBgX0g9TxSc3VRiNnCBn0y9E32HGYpEu2W1H6CRbHoPMPKL46WiQlguZYHmAms+y7bDrNx0aY2c9sFFGKG1d2JOUuVXhhNo9X+QhTIS2rc/+77j4aCQPhVo7Krgj7L2JvVUoN/uWPESg1HJyp/lem3ZkdguysmVESGgSqGOKHJzKsUJ1BmInt+8SSFXmjONngD/63dWhiV52Ti+pWu8TKxdfmNHDQFN3tcY959MwssMQqF4wiCLsIJlv3Bd6lE4EtmQoRC2ShPCwHZkuw/JukTlfvEKn9CI0TuPNO3KZpKqkPL1rvEEzgMdCuSpoKhQWdt707eLARYbekcjZI3c7MzHRZQJ/qlPUQCoecGo/AK8gCfE4uLhn4eOS4PegY3lJGKWZJ7ph93tvGuWEOdCFmyOwdF1NBeuNR0A7ul+WkXbhgfrpoRAc0GuElRneL2ryK/Lfm3c1jU/Dtw+aTG4UV X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: fc8e21d6-751a-4ae8-f78a-08dbaf3a310c X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Sep 2023 00:34:27.1407 (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: PR3P250MB0353 Subject: [FFmpeg-devel] [PATCH 03/21] avformat/aviobuf: Don't use incompatible function pointer type for call 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: yCqnpjPzcebX It is undefined behaviour even in cases where it works (it works because both are pointers). Instead change the functions involved to use the type expected by the AVIO-API and add inline wrappers for our internal callers. Signed-off-by: Andreas Rheinhardt --- libavformat/avio.c | 15 +++++++++++---- libavformat/aviobuf.c | 6 ++---- libavformat/url.h | 20 ++++++++++++++++---- 3 files changed, 29 insertions(+), 12 deletions(-) diff --git a/libavformat/avio.c b/libavformat/avio.c index d53da5cb0c..fd40f9ce43 100644 --- a/libavformat/avio.c +++ b/libavformat/avio.c @@ -404,8 +404,10 @@ static inline int retry_transfer_wrapper(URLContext *h, uint8_t *buf, return len; } -int ffurl_read(URLContext *h, unsigned char *buf, int size) +int ffurl_read2(void *urlcontext, uint8_t *buf, int size) { + URLContext *h = urlcontext; + if (!(h->flags & AVIO_FLAG_READ)) return AVERROR(EIO); return retry_transfer_wrapper(h, buf, NULL, size, 1, @@ -420,8 +422,10 @@ int ffurl_read_complete(URLContext *h, unsigned char *buf, int size) h->prot->url_read, NULL, 1); } -int ffurl_write(URLContext *h, const unsigned char *buf, int size) +int ffurl_write2(void *urlcontext, uint8_t *buf, int size) { + URLContext *h = urlcontext; + if (!(h->flags & AVIO_FLAG_WRITE)) return AVERROR(EIO); /* avoid sending too big packets */ @@ -432,8 +436,9 @@ int ffurl_write(URLContext *h, const unsigned char *buf, int size) NULL, h->prot->url_write, 0); } -int64_t ffurl_seek(URLContext *h, int64_t pos, int whence) +int64_t ffurl_seek2(void *urlcontext, int64_t pos, int whence) { + URLContext *h = urlcontext; int64_t ret; if (!h->prot->url_seek) @@ -654,8 +659,10 @@ int ffurl_get_multi_file_handle(URLContext *h, int **handles, int *numhandles) return h->prot->url_get_multi_file_handle(h, handles, numhandles); } -int ffurl_get_short_seek(URLContext *h) +int ffurl_get_short_seek(void *urlcontext) { + URLContext *h = urlcontext; + if (!h || !h->prot || !h->prot->url_get_short_seek) return AVERROR(ENOSYS); return h->prot->url_get_short_seek(h); diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c index 029a9e966b..ad5827f216 100644 --- a/libavformat/aviobuf.c +++ b/libavformat/aviobuf.c @@ -976,9 +976,7 @@ int ffio_fdopen(AVIOContext **s, URLContext *h) return AVERROR(ENOMEM); *s = avio_alloc_context(buffer, buffer_size, h->flags & AVIO_FLAG_WRITE, h, - (int (*)(void *, uint8_t *, int)) ffurl_read, - (int (*)(void *, uint8_t *, int)) ffurl_write, - (int64_t (*)(void *, int64_t, int))ffurl_seek); + ffurl_read2, ffurl_write2, ffurl_seek2); if (!*s) { av_freep(&buffer); return AVERROR(ENOMEM); @@ -1006,7 +1004,7 @@ int ffio_fdopen(AVIOContext **s, URLContext *h) if (h->prot->url_read_seek) (*s)->seekable |= AVIO_SEEKABLE_TIME; } - ((FFIOContext*)(*s))->short_seek_get = (int (*)(void *))ffurl_get_short_seek; + ((FFIOContext*)(*s))->short_seek_get = ffurl_get_short_seek; (*s)->av_class = &ff_avio_class; return 0; } diff --git a/libavformat/url.h b/libavformat/url.h index 3cfe3ecc5c..bba1a9a1df 100644 --- a/libavformat/url.h +++ b/libavformat/url.h @@ -170,6 +170,7 @@ int ffurl_accept(URLContext *s, URLContext **c); */ int ffurl_handshake(URLContext *c); +int ffurl_read2(void *urlcontext, unsigned char *buf, int size); /** * Read up to size bytes from the resource accessed by h, and store * the read bytes in buf. @@ -179,7 +180,10 @@ int ffurl_handshake(URLContext *c); * indicates that it is not possible to read more from the accessed * resource (except if the value of the size argument is also zero). */ -int ffurl_read(URLContext *h, unsigned char *buf, int size); +static inline int ffurl_read(URLContext *h, uint8_t *buf, int size) +{ + return ffurl_read2(h, buf, size); +} /** * Read as many bytes as possible (up to size), calling the @@ -190,14 +194,19 @@ int ffurl_read(URLContext *h, unsigned char *buf, int size); */ int ffurl_read_complete(URLContext *h, unsigned char *buf, int size); +int ffurl_write2(void *urlcontext, uint8_t *buf, int size); /** * Write size bytes from buf to the resource accessed by h. * * @return the number of bytes actually written, or a negative value * corresponding to an AVERROR code in case of failure */ -int ffurl_write(URLContext *h, const unsigned char *buf, int size); +static inline int ffurl_write(URLContext *h, const uint8_t *buf, int size) +{ + return ffurl_write2(h, (uint8_t*)buf, size); +} +int64_t ffurl_seek2(void *urlcontext, int64_t pos, int whence); /** * Change the position that will be used by the next read/write * operation on the resource accessed by h. @@ -212,7 +221,10 @@ int ffurl_write(URLContext *h, const unsigned char *buf, int size); * the beginning of the file. You can use this feature together with * SEEK_CUR to read the current file position. */ -int64_t ffurl_seek(URLContext *h, int64_t pos, int whence); +static inline int64_t ffurl_seek(URLContext *h, int64_t pos, int whence) +{ + return ffurl_seek2(h, pos, whence); +} /** * Close the resource accessed by the URLContext h, and free the @@ -251,7 +263,7 @@ int ffurl_get_multi_file_handle(URLContext *h, int **handles, int *numhandles); * * @return threshold (>0) on success or <=0 on error. */ -int ffurl_get_short_seek(URLContext *h); +int ffurl_get_short_seek(void *urlcontext); /** * Signal the URLContext that we are done reading or writing the stream.