From patchwork Mon Sep 26 11:50:43 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 38334 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b1c:b0:96:9ee8:5cfd with SMTP id c28csp2200426pzh; Mon, 26 Sep 2022 04:50:51 -0700 (PDT) X-Google-Smtp-Source: AMsMyM48GLe5Zh6oR1P+kWjn4UDQ144y4mk30F6WUQjVLATaCBTPJ41Dfpc1ERGwnlVcFwpo3+qv X-Received: by 2002:a05:6402:3582:b0:451:3f7b:a7c5 with SMTP id y2-20020a056402358200b004513f7ba7c5mr22633144edc.63.1664193051428; Mon, 26 Sep 2022 04:50:51 -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 p11-20020a056402500b00b004488842d88esi17437001eda.13.2022.09.26.04.50.50; Mon, 26 Sep 2022 04:50:51 -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=WKI6pnhX; 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 B876A68BA9C; Mon, 26 Sep 2022 14:50:48 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075086.outbound.protection.outlook.com [40.92.75.86]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 40B0E68BA58 for ; Mon, 26 Sep 2022 14:50:46 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bdmNk0ICvFmjua3QfoJQxQjRN1LtLz6edlLDehWrlc2hvm1nClqUh+nNAZnD+XxDToiJuiRvU23ptNWRz1fJh1h4KfFIKF7aade0iBYXM/cnGhdFNwn6wVLW1R3sbrSLSHFl3E00wwsuYCucUm40p8y9Lh+8Lm5hamLj0/MHc0nDcTnnvEYMCdpp+j2SQIhQCRRPeuOZfC3is55NElwh2Zyh24jEDJnlg9Zk7mpncRBGqx4ZtKInfK44SmoJzYg28kmfRveDWgI5wl1Pl7eqiRQMmW766WGXOp/Qf3y+ZmcgWbvMRQO8IO8Ty5CajWpV4DPfG208N2BcQsCNxCotHw== 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=snbq4/R9NwnFSAwy3LvS6GciLcNvaZFaRsNYWWZqvdo=; b=T/5/5g3Kf6ITFElrnHI+SaqULWxI/wqu6fqSZDSQ2NuU3Er+McPD3EroS7QLBzFuXkm2j6tzjhjdUbnpxfZSlwb1nSyzKe+DHHT6AliB2LRXhS3MjT29tsKUuvMVXL3GHuzC40zL7LUSuH+9DHi/Yg5qyJJE4ipXWHk96fs0q4skk8ClQkZrrPxbGSALNF1s4xKlhLv+wHLDlBlIZ8iQScR+PYsJnbgqgRnuNAwZ+Swj7UzRbjg8WLR4mIY8pTrA2VNpk30vHfpL72ViXp6oo5GEfiwH+pOHAYfgmlK5YNLRvmQIxu7zwES7fqB3ebPzHIf9eFbh3DpB5PQVSDeeUw== 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=snbq4/R9NwnFSAwy3LvS6GciLcNvaZFaRsNYWWZqvdo=; b=WKI6pnhXyOy6qUXj9F2z9lD3O4/48JDNHV0Q43Xb+xKiUfmvwiRXRboYXuYb9fpZWfJrOYbTvdHhtsQ12xq4sPD8z/iYoQQvXhTLLVOj+ff86xnk9bsgsug99qWi9kKKEMd2ei2W+BIhjgf5j5CtHlaw0zTg3pMd8TltPOfn4V9AJ1j4OC8zTz8pB68ohcjE/cL71p1TiebYytIlJu61c5SrRdAVgwHwGzhdtZ73HsYUl1sWuXSPnO3hNmBTNypmdHMKo9RW+O4ALoQ8sHOPzirlxnMzDwYfwuVFJ5LK1Vzursn8rRvYnzkUhc9pBKNvQMFhg36892upzBp5WWMnhg== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AS8P250MB0203.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:37a::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.18; Mon, 26 Sep 2022 11:50:45 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::85ac:1b92:90f:dc18]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::85ac:1b92:90f:dc18%4]) with mapi id 15.20.5654.016; Mon, 26 Sep 2022 11:50:45 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 26 Sep 2022 13:50:43 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 X-TMN: [t/S6nCVxZUhFFCxftNw95y5gGoHdM7WvpV+AYSRUEIc=] X-ClientProxiedBy: ZRAP278CA0002.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:10::12) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20220926115043.3409263-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AS8P250MB0203:EE_ X-MS-Office365-Filtering-Correlation-Id: 271fee63-c472-4041-22f9-08da9fb55892 X-MS-Exchange-SLBlob-MailProps: ZILSnhm0P3mbp/ZflA0lMnAmTzg4Ju03zXr5csKEqknmA6HqCFcNtyehlptRl1OhWFLUeHKbtI83ArjvbZIjCgLzsFxvLtd3rZ6tsdXPaEuL+m9a0aSZBfbxfWM3n/U/AHRT3NgDZ3MszyssO9iWy8Xlm0b5j8F/xOSPGjp6dRFGgG6BDYtoPXxZJbGNBDyEfZOSMVyaXSYW9skUPTythkOezCLwWPNmEWfZ5RFoBp2l1HBSHADw6hYr5JME2rWdVrQmWla7vv8Y5Ko3UeqmkcP/c9aQDemhBMLf6esFlmNVixOrGvvwGOsaFOgEyqZHX6G60Ko/TLb2rbEKgMpWpnOR7beoFoFp35pYFoypJK4nChclyGu9VuYg2a5ncG7xuFYTna0rZX3x05V1vySjTXngB14PZWazvM69Ukmy1Jz9Q80r8y1DRhpb6S5ryvCaJrNPiQunxWb7pFtrsH6wFlk/vYPdBoSsW6D6V2lVlUBnUXnCv3E8dr1pweKS1sKpQGxC5po5Jpf/aT5IVOXASDADF+rHdtSCvETiZ5QR99wNqQnlNyfMhXrgyNLT6s2trMUJhsWbx/jj5iEJFPYV98lYBDzB+6/q+7j1Etsnxx8BZQUXdpmef/YvZO62Lru/Q0mQBQImSctIj68heshGgcYYm4xVu2B/BEvzIvtIZ+Gam0QB6AW352k/KJCt488dnLuTPc1weWouaunGqmGYpWr1a/CyQ3gf6zDJlWoWqw7fQ3IojFjMtJM2rVjs8PMd2aYFY6KhhBo2+ySdtOrvgs+rxYeFXgWk X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Fr5I4FrXpS8/oQ2Zg0B1RWgYeyNVak+AUYhxZ4+XjxsefXpAA3T5XAoODBxqIC6p2Tf6AKv/xdh0moATVX7m28XRvz0x2ruw5sEFrcLrnYWI0j7OMnBfR0OvnqIHWBTAj3m8dhZ5GiT74a6OebL3kb9JDONpoiKDU5fFbUO3M9J+lpVx0zVhv9b1fDfV0kh0LZvUgHYZUW8j+6AiGqqh4MnAXRAoi0gS4w7OJQNs/Fwer8sRcClPchAAEx2rsCaNSyxPZ4rfK+NZKKVE1WgX2pGH0hZw+UK8MNLf5fhGwlO1D4NJUjdrTs/6MvL45mjbP3qUO3+4CMTl/wbP6YU+0fXZaLTBxJZ5yO+dOD42pePWOokqESGeC9BwN09yno6mnIkkR2luBtoeJZEdWBmmNLG3C+NQuoZ/PYI4Mb7H4xUKkOsUAlacvOG6Qbtg/NggpEbcKN0hcva2v2cPkY4DD33uwe/5Bi5z1jhS0+ah3yKXB+VRUsPtUvglUVmITFResiD7bOAllYcKwOovTmpqmMM2F9TC1sf4sqOklBZwOTy9xpki5yLWN83bsuFnXypt7OnZ/e+Nn6//w3BcUp4RGSC/wYvXlNvAWrgKJXIQIvgFpeBdjPN8LzIyZhdUx3V5WcaTrvLJVo+mFagbe55IMA== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: zH5vzaixFvA12nHSZN3XE5xus0WRN8qK6JtVOo5MQGIh1kkm27QdODn12j1FVOFPlnDK0O6qxE2gZ7bcCEodoaIC+k09IJGl2vEJdouvOro4BNykMFVw//FGTfg+adRhxLtEyTMR+AP63Ougy4vLM+PZEa5hHvc1lMDjXNBNFuQ3W11rK3c4cZqXqji+80sLEXBCdbhxZOm2Xa1AQwIBDz8Xt+0Fc8emXTkXUaThW4HpJOmnvtR3yx5pOYANGY1a3+ppJDtvaQvyUmP+mz8q1PIvttoo7tZfS828yj9lnIXafiBLx3x+4bR9zfYZuTjuXD2Ke63ZL9QIn2SEsxDJGPIcbW87HdU5YMnL2jhWtptpBYbI0+KOP86fHGJZnTQFkXwJ4dLZum67af1rblgAcL+tNdjW4CZdkzFIFaOtMXtPbB219e/9FX2UKpCmMhpaKrWKWY+xuhttwXlEO7JmNs4dnLRDoBRaYs15AR/Uoo3JlELhkQKpK89tEskSarHe9P5UMt6ZXIXnYudB/RUW/lcFcs4YQ7xFJLTfGbHMOgF77zKWeNF8GL1HcED4sZqGAy3qYPwXr+x3iRinxNCc4qM+YWQR0O0UfVECPJJ4hsbWnjS/n8YMNZE3hUkPYyQMuTVe6WYgF1JvFps3L40TXztFCY9QFrMZSKxDOvZgllw0MTdRbkj5C3rH18cR4LOfWvVvHalfSSkh8toPDRyEi7t4OG9ndWA+CFu89YRv0J/Dn0t42iynPBnzACrrlYj9JuKh1gG8sDLznPwidyuy8DnR8qMC8l9ZmUQvAsH6YL5hJXJJ+1YdGVEcrG8PlLHskH1O8QgAhvzCU/PW00DvQXudx1hyREIppVD6ihH22rLHiWUxIjVUDD4/AC0BCdtZK9O6ET2JNlg4zy0VImuf+F0VLloIfV5CeXe1qeZm65LXlsmOib8M1M4/lZ6DgJ5+tMYiVD7xCIxgP319BjN8kNj4tzxyu/Rg2myih0VAFgQpdUpqtWl3ZojX2E3RvKNBtz0vO8ECcS5Yl8dSLncmvkAyEkRxWno22sWpnfffWfx6kkPrx/UCeZ2Lv9disD/OmnWhVKUC/d9Mns89sJaqjLjN+REaz4raZMFK4tKHo26KrLNoujO+/JTZWfiFHbbOPv8Uvwls+da16lk4dn1X7w== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 271fee63-c472-4041-22f9-08da9fb55892 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Sep 2022 11:50:45.2547 (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: AS8P250MB0203 Subject: [FFmpeg-devel] [PATCH] avformat/avio: Schedule AVIODirContext to become an opaque type 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: ntGxK2rpkQ2B Users can't make anything with its content. Making it opaque might allow us to avoid one level of indirection. Signed-off-by: Andreas Rheinhardt --- doc/APIchanges | 3 +++ libavformat/avio.c | 6 ++++++ libavformat/avio.h | 4 ++++ libavformat/version_major.h | 1 + 4 files changed, 14 insertions(+) diff --git a/doc/APIchanges b/doc/APIchanges index b0a41c9e37..195e3b82d4 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -14,6 +14,9 @@ libavutil: 2021-04-27 API changes, most recent first: +2022-09-26 - xxxxxxxxxx - lavf 59.yy.100 - avio.h + Make AVIODirContext an opaque type in a future major version bump. + 2022-09-26 - xxxxxxxxxx - lavc 59.48.100 - avcodec.h Deprecate avcodec_enum_to_chroma_pos() and avcodec_chroma_pos_to_enum(). Use av_chroma_location_enum_to_pos() or av_chroma_location_pos_to_enum() diff --git a/libavformat/avio.c b/libavformat/avio.c index 4846bbd8c6..ab1c19a58d 100644 --- a/libavformat/avio.c +++ b/libavformat/avio.c @@ -528,6 +528,12 @@ int ffurl_delete(const char *url) return ret; } +#if !FF_API_AVIODIRCONTEXT +struct AVIODirContext { + struct URLContext *url_context; +}; +#endif + int avio_open_dir(AVIODirContext **s, const char *url, AVDictionary **options) { URLContext *h = NULL; diff --git a/libavformat/avio.h b/libavformat/avio.h index 36c3d7b430..7e4aa9a1c8 100644 --- a/libavformat/avio.h +++ b/libavformat/avio.h @@ -101,9 +101,13 @@ typedef struct AVIODirEntry { int64_t filemode; /**< Unix file mode, -1 if unknown. */ } AVIODirEntry; +#if FF_API_AVIODIRCONTEXT typedef struct AVIODirContext { struct URLContext *url_context; } AVIODirContext; +#else +typedef struct AVIODirContext AVIODirContext; +#endif /** * Different data types that can be returned via the AVIO diff --git a/libavformat/version_major.h b/libavformat/version_major.h index 099a17873f..86af3ee4a5 100644 --- a/libavformat/version_major.h +++ b/libavformat/version_major.h @@ -47,6 +47,7 @@ #define FF_HLS_TS_OPTIONS (LIBAVFORMAT_VERSION_MAJOR < 60) #define FF_API_AVSTREAM_CLASS (LIBAVFORMAT_VERSION_MAJOR > 59) #define FF_API_GET_END_PTS (LIBAVFORMAT_VERSION_MAJOR < 60) +#define FF_API_AVIODIRCONTEXT (LIBAVFORMAT_VERSION_MAJOR < 60) #define FF_API_R_FRAME_RATE 1