From patchwork Sat May 7 11:27:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 35645 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:a885:b0:7f:4be2:bd17 with SMTP id ca5csp2121324pzb; Sat, 7 May 2022 04:30:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzjqh06D1k2Fnmf/porZeACcn8h9iUTN5vBXI24FTMoe3LwX9klKJHEziLFDPmP9daj22OT X-Received: by 2002:a05:6402:2214:b0:425:d6ed:de5d with SMTP id cq20-20020a056402221400b00425d6edde5dmr7972192edb.383.1651923025868; Sat, 07 May 2022 04:30:25 -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 c27-20020a170906155b00b006f3c442e22fsi7642846ejd.361.2022.05.07.04.30.25; Sat, 07 May 2022 04:30:25 -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=qNqwPTVs; 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 463B468B3F5; Sat, 7 May 2022 14:29:21 +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-am6eur05olkn2058.outbound.protection.outlook.com [40.92.91.58]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5DCD068B410 for ; Sat, 7 May 2022 14:29:15 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ojz0T59UstzD7O3toKsQ+UtAINzXLUfCZkmff0MZjbiZyVvP+M7f/Gtvt8JyLvII7lHc1u4bgGX17nBGDiXFcd3e0HGxVXl/zBK706KhFVxN6RmUQuXylOcE9Y7UnJiofah6VyA7w3kQebgh+jzgf8/hyJUr2+e/f2/z9XtcZ7xZ2grjMHvZhnhi0d49kwNeQJcNVQZk/1H00N3cGHIJa812Us+W8n4YAChOniKXgaPWVG/4PRvcbweqQGtizWm93COES3HM4xVMeTUxHUU7Xpx+SlnCUIlSRoInxN8IDUi1iSKkuv+CZCXl5AaxPlzIJclvHJD3tOVqNzanGjlYjA== 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=6o3W+v8CZGmQpa2gp9NgQ/egRDILezQtKGqOi4ODyys=; b=c94L7/QEKodaswCS9Wdez/UiOJq2lWR2gVu3LEu6nhwvu1rCPkl00+sxoRRlUhpbaH1qmYIMl8h3102J31RTa9E68C4RPDawE0ViD3n3xPJVFQVZCFMeH5sq9k39pbPM3XBlStNd11lo9KojZfmqTDIDgAe0oLC0ia05ECCgCVhBkMhIxEAGHX7twkR1uLyA7EYFWKkaeYjCQKKyXdyZ5TO3PrYfqvUAnzmHIyxbyKwOotdKyC05XHgvVp3BoJf8GF2vvIlPZxgvimqrrZ4qeCTNa5HWxOflJ/OGwcqnFtpMPEhhAky8zpGmKNCtyeuMkjOBI/ZmaJBvKK1cyrbOwA== 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=6o3W+v8CZGmQpa2gp9NgQ/egRDILezQtKGqOi4ODyys=; b=qNqwPTVsm8p/cimAYacUMzrH6FR0CDmwPJEBrOjHRV64nwT3d5PVTjifjUWjZ9eQfIFU5rSuY8FpkA0vXOMCz7cyHf+UAH5S838vtqVGITBXXxvc93T6+C4xYPbctchDxWtTnmAKzfxH4YIcyA7dVdktPu53FPKXbHZ8x++FbArJ2iS2WL91rY56GW+lXc5oFB650M1zZNK0hMkFNEHgtJXGIh2ILYYs4repmemv7UkMh0q/oBMoI4PU6Jk6nAf01Hf8rcis92fuLhf3d3iAApvX5D7ZZdBUg2xBFcKV+6ivss+zdaPNnrL1v9uWqwlNwdXgAqjb6j+iHfCCsOIWcA== Received: from AS8PR01MB7944.eurprd01.prod.exchangelabs.com (2603:10a6:20b:373::5) by DB6PR0102MB2663.eurprd01.prod.exchangelabs.com (2603:10a6:6:e::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5227.21; Sat, 7 May 2022 11:29:14 +0000 Received: from AS8PR01MB7944.eurprd01.prod.exchangelabs.com ([fe80::1854:2c30:7ba1:c431]) by AS8PR01MB7944.eurprd01.prod.exchangelabs.com ([fe80::1854:2c30:7ba1:c431%6]) with mapi id 15.20.5206.024; Sat, 7 May 2022 11:29:14 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 7 May 2022 13:27:57 +0200 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [x7Iue5vez49la/6h/Wvs5hjqERtzYH9c] X-ClientProxiedBy: ZRAP278CA0004.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:10::14) To AS8PR01MB7944.eurprd01.prod.exchangelabs.com (2603:10a6:20b:373::5) X-Microsoft-Original-Message-ID: <20220507112830.406162-10-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e5b7b76b-c9a8-4834-ab0a-08da301cd029 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiRIovyFjHwHllp74iOQFItwNjzVrrzKW/rrYSwJfpWV5tv314JRPBhehSBMh3jk56O+k6YM8wv+kz2Pq5Q8cfCATzB2ZWueP7NxzjE7xpi8/yLmo346a7F3odofnjBFCpu4UBTvqAU9v99EfcJ7UMaHUFDlcEH4LE6DpznNhgbk9v1kY3x2RwYn8LCX3XfoEcsPG9mHKuPvj/novft7mkOdkglkmMdq2NGA2XrJgo5ddAaJGL4inVEboLkJAsZMLjtT2c0o4jrTTGx9SZUURVOJU46yPIJCBp1uR4Euk9ng3ondjWhrTevXtHJpx/PA14l5lIF2/9bT80WrnYZfb+Q/zXIE4YytO5eWj1fu8WG/83Ew5j8y4Mr5gL0zIsrrVkc9PEEFVT/2uQuZaBBgOP68mtK3Xtcz24XmtMbFWlnb8uYwJmKHa23X7GZSqBtsc9rcbvcy13sGtPUednYTOqOGZRKmPwEQ3Kk9YQebfJNLPNFk8d1R5kk2+0s6T/hIJQDGA5jvEqyJvJytkXAkuOwv7tDtVk9o84aRZhaPT2F7Lj9p9vYEZZCwz2pFIo5PYn3iqha1px5ZJJlveFCk1IWXJmZUtaf9AUFQ02tkzRvilANWjrhCrpD4LCluamL0WTkx3zAKEDH1uFBAwsEX54VZZ3KjiwhWvSYDRhTDPCxzu9YT3CBE4KnXwAmG5gte5e5Da2ty9jKaEKvbq1v1VQZJf8KAAAWvYtD54hfVwY3+/2RAGVhJy7Jvbfvb5vVyPAs= X-MS-TrafficTypeDiagnostic: DB6PR0102MB2663:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lTY+NCVq+dnSq/TGTpiI5qX/3Mq5y2KC1+fm+OyvRoMjcNrlXzj2NCN61MQcJ92vHEeyNpwfL/7bh/DP363NxKMw4DtmpQuCw+/tfc9/r4fGkyA+WzboXQUUlMawD7f6s7vIiUGul+7SEQS09T9xfxC0+ISUh4i71JJHnr5TOt38i9zKwG/3bSRcLN8bGrFd/cIlTbQc/JMDQlLuauOsV9MOuFUMFbe/2CBZM5D0ck/nmE3cvD8nvi1bjm7xJguUIgjRLdz75JDGlhWUK3+BzGAfu3vYXh7mfz3MQjS+aNvMnBukaS+e3bAFKv5qzzXj035WKJAzCci26ah4szMHEEE0XMtHiuOLm/G+twdCqfCulN7kw6c1FYiPJbmchIvstTpwcXr1Gs6CEhGSEd8dbixgnb3Ww8rFw3Kh5Pnarao7FA+3rSndZrKIoUhgsqTgUzpZX4dETmR8hNRQZJaODybLU9PSHzcoY8/CsnDmZzCZ1wLASWjtAQ6fD1LUneZe8c++6CGHeAms4+8NZicTY1Tb+ZDUC7e0M1lM+J0Zl91qqlKFjRxlpepe+kaWKvc+/3qjguOjw8NHpeMlGlWP1IVEo7Iw6tr8+78aM5rCQm0u35qvuc6NRvd5sISpwv0t X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: x+xMIAJVq5wbcXf6dxhzJWAKu6aPB7z6q4WO0sT59GeklC6vRVGdPZFI3zvM/TwYrdmyltrS2sucX53UntV4SoJD02QL8kehD4N/BPWV+qg36BAneg7tkwgcnkMhxRC01vChIckfMSUjm4whsbWWKEY9c0TQbB63V6wcMak5Y8Nh+Cl8faLwXO06MTv8eJB/tN6IJHyye6XPx3VPIwNg8yqCqLt8fZ+w5BhYutzs6Wk2n1CV0Aq+gPGovnQvljC2/EpNJ8ogkl+++zpg5olS1KSOD0WEp7V/lZSYw9k//2oQyw/YAi8KLn7DEkELLy+qjQKkhg6qyvn6FXUCWa69AOd0z7q9S3+qYynTee8UwiuhGRlo4+b89DiiiCHkS5b82HfhjByBH5z/1Zr05/DJWgjEP0iu1URDuvmmjhyiK58EnCmjBXVQDa5+iDJXB6gMG/5XRTRjfClY8aJm87xlKR+gv9oHFH4WwxS7cEUlHLs4WQisVQKB9uad99C63U4baoMDhp3owUYiTJxW+tAcMx3iKzPz/x4j1OjWUuGUNcltnMj3tB8yBrXxgB+h7e+9mXsvlWwFonFKq4N2Lna8QoCD114dQrDrGUE6XoXzLv9dp+3xtxFctr/itgN3HNJtOjRh/N9FXz0m3I9fNLJdnWcn2D52bTLpRCijC2a5z1e7es2px0Vmu8I8dCB6HOuSR/OUVJJpbp4H6Y/ewIm235dkZa0a8mZ/HKbNANw1MSr6EjC+dLuLtDQ35Qlut5VwN+6DH/tQ5dWKn1WU5CU2osTcmxB8qBP7w7CZIvixT0X/I4+GEzyIRmKZPDXD265HYPHUAMBsRFfkaJ7sxKiPL2Yx2eSDVv25Ih97d5T6pj8bMHkKAuH1DmP8GzxtYW3qR7ZH/wWSimXLc8CC/sCN0fRgyk/1JxNfA25rJ0tAN5Xr2ye/NyEx5t4XO3jwFmPtSZKbr1cXG9QJ/Hlwsz+khWW8VN9RIxsoCahPpnQUG35xBT4a/ziEcaGgUG/JsBe1fSitqIpC3U7hXz/uMlHZ2dcVKs6TCFF0nFJ8kpFJ2AsOj2wfAdk6RXFjA1P3IeBoc/uBhTnp/AAEbtScTq3PR7W7ZFwmI/vMyJ34KHLNqbnyv/VItKoZ0SjX/ydtNdTNtJyk6oIUEIZ9X+bpFAdeaua3BvbwNReNlCkHe3xvcZoYhczOb/LtW+jkc4hRI26VyARntbKr1mT4lP7wVluneI2yBpV+3L04bDTuPwkuaE5Q1WFDE81NgaVKvCCU4gaUmfCA8M72tpSjKTXMSA8p/hMiQnd/Bwfy39oJw8pi2O+Oxby7AXgkA+cbfVPoZola6M66Cv4xRrSQUrAlGi8CG49TX0H5wuUwI6R82XW4c24W9vFWs+jnbj/VKm/8Y9Bpc8MWeQLomaW1EWDiUTuURDV1SaWvrbEGeJV9FKr8YQx/jOllXEdT5CmpxNOChHSx X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e5b7b76b-c9a8-4834-ab0a-08da301cd029 X-MS-Exchange-CrossTenant-AuthSource: AS8PR01MB7944.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2022 11:29:14.0657 (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: DB6PR0102MB2663 Subject: [FFmpeg-devel] [PATCH 11/44] avformat/utils: Move ff_format_output_open() to mux_utils.c 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: Qdh8VItwRsG6 It is obviously a muxing-only function. Signed-off-by: Andreas Rheinhardt --- libavformat/fifo.c | 1 + libavformat/internal.h | 10 ---------- libavformat/mux.h | 10 ++++++++++ libavformat/mux_utils.c | 10 ++++++++++ libavformat/tee.c | 2 +- libavformat/utils.c | 10 ---------- 6 files changed, 22 insertions(+), 21 deletions(-) diff --git a/libavformat/fifo.c b/libavformat/fifo.c index 86e5d369b5..ead2bdc5cf 100644 --- a/libavformat/fifo.c +++ b/libavformat/fifo.c @@ -28,6 +28,7 @@ #include "libavutil/threadmessage.h" #include "avformat.h" #include "internal.h" +#include "mux.h" #define FIFO_DEFAULT_QUEUE_SIZE 60 #define FIFO_DEFAULT_MAX_RECOVERY_ATTEMPTS 0 diff --git a/libavformat/internal.h b/libavformat/internal.h index 03b9bb8e37..51deb1c49f 100644 --- a/libavformat/internal.h +++ b/libavformat/internal.h @@ -849,16 +849,6 @@ int ff_copy_whiteblacklists(AVFormatContext *dst, const AVFormatContext *src); */ #define FFERROR_REDO FFERRTAG('R','E','D','O') -/** - * Utility function to open IO stream of output format. - * - * @param s AVFormatContext - * @param url URL or file name to open for writing - * @options optional options which will be passed to io_open callback - * @return >=0 on success, negative AVERROR in case of failure - */ -int ff_format_output_open(AVFormatContext *s, const char *url, AVDictionary **options); - /* * A wrapper around AVFormatContext.io_close that should be used * instead of calling the pointer directly. diff --git a/libavformat/mux.h b/libavformat/mux.h index 246101f0c8..1bfcaf795f 100644 --- a/libavformat/mux.h +++ b/libavformat/mux.h @@ -103,6 +103,16 @@ enum AVWriteUncodedFrameFlags { */ int ff_format_shift_data(AVFormatContext *s, int64_t read_start, int shift_size); +/** + * Utility function to open IO stream of output format. + * + * @param s AVFormatContext + * @param url URL or file name to open for writing + * @options optional options which will be passed to io_open callback + * @return >=0 on success, negative AVERROR in case of failure + */ +int ff_format_output_open(AVFormatContext *s, const char *url, AVDictionary **options); + /** * Parse creation_time in AVFormatContext metadata if exists and warn if the * parsing fails. diff --git a/libavformat/mux_utils.c b/libavformat/mux_utils.c index df264fc6a0..83c1482540 100644 --- a/libavformat/mux_utils.c +++ b/libavformat/mux_utils.c @@ -85,6 +85,16 @@ end: return ret; } +int ff_format_output_open(AVFormatContext *s, const char *url, AVDictionary **options) +{ + if (!s->oformat) + return AVERROR(EINVAL); + + if (!(s->oformat->flags & AVFMT_NOFILE)) + return s->io_open(s, &s->pb, url, AVIO_FLAG_WRITE, options); + return 0; +} + int ff_parse_creation_time_metadata(AVFormatContext *s, int64_t *timestamp, int return_seconds) { AVDictionaryEntry *entry; diff --git a/libavformat/tee.c b/libavformat/tee.c index b3bcd70b9f..f1f2a9d2a5 100644 --- a/libavformat/tee.c +++ b/libavformat/tee.c @@ -26,7 +26,7 @@ #include "libavcodec/bsf.h" #include "internal.h" #include "avformat.h" -#include "avio_internal.h" +#include "mux.h" #include "tee_common.h" typedef enum { diff --git a/libavformat/utils.c b/libavformat/utils.c index a695f19b03..58d2524457 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -1655,16 +1655,6 @@ uint8_t *av_stream_new_side_data(AVStream *st, enum AVPacketSideDataType type, return data; } -int ff_format_output_open(AVFormatContext *s, const char *url, AVDictionary **options) -{ - if (!s->oformat) - return AVERROR(EINVAL); - - if (!(s->oformat->flags & AVFMT_NOFILE)) - return s->io_open(s, &s->pb, url, AVIO_FLAG_WRITE, options); - return 0; -} - void ff_format_io_close_default(AVFormatContext *s, AVIOContext *pb) { avio_close(pb);