From patchwork Sat May 7 11:28:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 35675 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:a885:b0:7f:4be2:bd17 with SMTP id ca5csp2123336pzb; Sat, 7 May 2022 04:35:58 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwCQtQl+Top2Ve3mRrEDNerkrB/d4X3x9RCM1Y1y5j1HOoq5ddnYMoM7KuYmqSbCpwzT2Zl X-Received: by 2002:a05:6402:1cc1:b0:413:2b12:fc49 with SMTP id ds1-20020a0564021cc100b004132b12fc49mr8127789edb.118.1651923358691; Sat, 07 May 2022 04:35: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 i26-20020a17090639da00b006f38bf1700fsi7479927eje.585.2022.05.07.04.35.58; Sat, 07 May 2022 04:35: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=CM0K1FWe; 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 E3B3468B4E4; Sat, 7 May 2022 14:31:31 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2070.outbound.protection.outlook.com [40.92.89.70]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5566968B4A0 for ; Sat, 7 May 2022 14:31:28 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LEyir3wFivU9HMYOxkdWBIcEcr/xYMrZtUqFW2DeBGs1VHNku4VvIK83X9ZzX+oJmWGqZ/lZv5dd0ErvF3TDCa1Z9QBHUSXfbgwBBzypYTrM4XLee9uQ8rfm25n1upPDsrcz3QN8hGiOR1/lKytxZw4HjxuCa6dzSLLngJsQltr28ambSsYDZzE6IJph8lhfWN8eYxP3dqGQhZOZRDuSdsuUTP8IUGH7mQ0cUSC0nTpn5E0JHH5k7FW7UwsoHEdvsNBHrSVzjmdSv624uB0S9cUnjku0B387ulK1FueJpyvX1l5K4Yd9jISFIVa0UB5w4qQ6FleIqCW/YqQD5MFEhA== 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=jRR2CqgZdHn9UdVRLvcVM0jaCRt4n2/fJvYIfMZdsnU=; b=R6EHXKtdSlVenDUzsbU3eECpaacMqygtnoERGnoYs1K5pxe2qUKPB1EzK8C5+ydgKhxWdjTAg4/+J2qHz1j+NnLeKScEyZYuHF8NQ0HYqp/45GyBwesPBkzy1Gncmig0wPKHniQ81gKxTyGMcVHbX+brmTeq4sy3Zh64trUwWrOmmYZDXGXKcHpAFQoK0oH2myx7R5GzfB6QA/izpRVDc7Jfl272JIiFpzazRh+MvP83IOnLq/riXG94Q9Pp6jMEKdVUbTpjmm9LFGuzW9kobJQgZ+21LgHIYL7SPX+6z24kx3qlsc4EY6jl4fWJ2pBwj8V/rbqs0gUhYdhBCzgk4A== 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=jRR2CqgZdHn9UdVRLvcVM0jaCRt4n2/fJvYIfMZdsnU=; b=CM0K1FWefag1BAcTrNssqPbsrG6+b0/gyjkIJidA43gr7+w/aUHzWcn0jy1JjmvpbQkz2RioM/QOUClvUlOLzp5SOnpeGoElbYKQdZl8zAudHAoygVZaZKHqQUcY326rPcOl0zo9l0PNl/bAFEWgJZuLXNHnrRVDzuodDghKhfyqzuTBvC/3SdNd+9nA0uJ75EDvSEsIZC9AFy9Bv8O7tayWFnIcVhsJQYqGoP0b9Ft/YFQoTJW2Flic1kE81x78wsJfl2QGMraNK5Fd52rHwIgNdROtnrXDF/zCIAZRuCG7Vgugoll4M1nvN24zbgwSsNx9w5K3Vdhz69KninPrew== Received: from AS8PR01MB7944.eurprd01.prod.exchangelabs.com (2603:10a6:20b:373::5) by AM6PR0102MB3128.eurprd01.prod.exchangelabs.com (2603:10a6:209:c::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Sat, 7 May 2022 11:31:22 +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:31:22 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 7 May 2022 13:28:28 +0200 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [NrQo/Dg4wAh2aoRoj9Gz/QRA4X8rz4hN] 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-41-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 71ca8534-f397-466b-2899-08da301d17bf X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNVZjuqTokTVdg9S7+crVfX8TX1U2ayKbJMPdMyHhNmyjoWCOrflIDBqBApMxSZaU3xj6F+v6/lSBPFUYZKx+IlUly+nDrGMXq0AzZ+lwp2XQ/9JgrCuEbEkXR5KWYFPppL195o7JjHQJYwbOu6ca4OhrLHGkHNUcNXfD8iA1jzcfa6L6MeLmNUu//hYFE8gY1wD2okuH6toAMlCEOSV34GoEUxTv6pGHMsVpis1FBMqjDBNm1OXljmGUjEakBsmEv9kgy42AGcJGctaUbsYCQCDq26CSfzUPz0R1lu/B82BgZiPfC7R8icPAQzqglZfgB4r1wYkzH2igRHoGb1kYXRkArDXisf2Ik4xjyfXptTZ08OdPYMXNJKmlhkW7NUH1FUBY15v1uinbYLirjOpwd6gp6wbEODQPt7nU8RsJf9dhl9TdKDsgG7B73IdvTul4vabM2XUcA5cZzwdgPe9TB9Q327OD6cbjov7IGnVuu1YC66OpoyyVeG4ejAwFy0T9EwyEvQtW8tg0rlNO89l4jkFm3hqjIUL0FUtOiMU8PsqzHaR6ad2NBF1mmSQHryAve1GWmpUDv4QhU9VFulAwOV3ELkvLVdcDQSnqsYFExfF3/p52Nj2iOAG37qY/1nqqRvmS+DI+0oLSX/flXDiyA+Rx2pBpV/hFPFAyhXUbOKWGBGgPZCHTuGkT9ZpT2tJf3VFjnBxM1vcwjHJhS07gCc9RYTM+lHJw34= X-MS-TrafficTypeDiagnostic: AM6PR0102MB3128:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JQV+r8qIIXPXL9HGcUHs8z6b/FmUbpT7vFrPB9VKgMSGJjDz4Itn7k8O/th1/vpaqF1Ct6w+u4HmOvpSrri+262XGy/f+FzdBLGJyxVkb+T9kHzhE7Tzlsn8+eHx0S3oqsGHKWu4q+1yRZT1OW7do2DUm/kW7sVfoBqdfcTI2PG+ptTpFIByPscbR9TfswW/DJC35Tesg57n2gOmNQiZ7Z1bXHox/UJ+4qOj6hMBtaM9bARMMLm40jbe0xnRzbnyllYwwb3vuOEgOcbKWp/js465Bd2MUa9Gt47iX+fQZ27gTaltgpKpQXzUObHwaSlHWEW7ZWRkAvpzKJlT09KL/Ds3dniffBXQ6lDY7y6a0X0ZzayclO5sazBMU4iP/f1AtPh2cg1hKn3GGZtvGfynE7lkkEPNlfnvqeCgbQQ/wQdeH8MHBV5J/t57EJhgRqq3lBip5DHx3PZb3/7JaH/nKoPEif97R61SFCIQt/Dyl7ijrX1VBLQ1PI20FiWsflkc81OUXctF5CZk4Ikg2qegjxETeinEpVzE9hgisXaY+6zTusVAILKfpjnoayVf/K//7K5XpKXtjWtE4IQ0Aipc51VkJq2LfUV+NfMtAoSmkXlSlPKW43DdMW5cLvZ2f4Lr X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: FwznPR2EL+p84/v/BGFg137/S8qqgL5LtMTYBwRZ8HZsjpkiN6nPIJ5xBxMzNdWpHzusoR17rmwhIv08g1CJ3G0Ksk/moc/QixmlV4BNQUfOo4OttKCv0XmxwBGdGnX+pPbT3EGVohcAIHmWhIROk7b21pWLxSXPXe97gZ2um4YZaiJWmL3X3OE8aXGWMy1RxznJdwt9vNusvgblTWTZS3y9WmmcXEWg/pPDTEyvXz8GdqUCxxM1rjz1/lhHG2OBJS5dAaF39TqIB1wJQBhFTRYTK39xTnAjmPFWY+umeKBIqAasDiXcCzc/B3d1X0h4X4zPgEa89ckguuQybEwb1JSqs+IDca8eJWvfLfXNrtFqd5+48Ci5Ku8Sk6t2erBPC2TzNsFlWhUzNGY/FJT769Y+JTXG72sVFFvf4/X0RsQMegqgay8GPXcsF4tjknryqmi5st65IiHy10Q/hdLHULzaj4THB/SufehrA247VNIbhDyfkddPYuYv7ONMH4ZCcQnxrsLjn7PdtwKlMjyJVl06G4SsC4CfC2GY93V4cblZa7zSoPOZCh2f7Tg6pRiBH60oUs0mIMW1ac/eETmlLNbzX6H/cLT9iTlZxO5ca3fy3rgx4AjeCSalFbqANvle8C+wHHtFvXLR4KiUwSJebm4GvjMjEluDB0pjMwaBmJ1vQ6ZE3auhzgmRRDhPkZiPOxdZG9pjqDM7HrRQ98Y9vdxzUXUIqUrZEehtg2L4Cb4ujpzMWz2JeA1KsW9Z39Mb0pzkVbpIwyxnXkUc2ZbhHySNaV+DmIoFD7wyHF5FMzET6+OC/D837ugf716q3zs2NwPdWpvcsAWZWzPxsA2yZP+dYaJx7E2OJWA4ZStiHt6QUUeytBKQ5+p2aogSMNaTLC7C+bxLrKKVIvOADlgBh6MGqb4SoAn2pf5PK/kh0Rux5JP6lSTCT4HXLtny1DCJYZnMP4Pt77tCd++b9Jk2mvQjnfEaWdhbYCros6tiKOJK84w4GmmJ9nnMwUY6BRztNgL6BwBErdBL/1FGv+ZXJm65ApSBEIL7YbpEw0xCQ+5AE8HTbgURG+nrpAP6ZgGXoz7m3xTwFNIgzJRvAVzfAI07/fIMPPVZJB1kVMySzxShi3oGe+64pLgxIvBJRHRo3sZ5y0IfFE+k1ol5qLTHcFRv3GddfuIvg7yXhA5ytUFH1Ety093ejUYVjwrKe9WXqT4VOSkBSSdYSwhD07fFRwQpzXG2r4QvcW/P/TZK0h1tJoqu4+3PvDN4na6/OkznBKnxLVC0x7hpapw8UGjs/yBoTofZ6lYrbMSalk2+u/D3wDhZk3xHd45uTmK8PW7CVFvgx47650jhbs2XJeR0XLxCcPgLWJecOl4rnvMSxT7rjl3N49DTYkcnFvWcKQStcaS9ObXIYXEHTmhcgS04JLmw2sW/ofbTLNo1Dxwkh/iTuXJWnFYty0BEeqAOUH6d X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 71ca8534-f397-466b-2899-08da301d17bf 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:31:13.8497 (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: AM6PR0102MB3128 Subject: [FFmpeg-devel] [PATCH 42/44] avformat/utils: Move avpriv_set_pts_info() to avformat.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: Fz58R9bXpBMs It is an essential auxiliary function for both demuxing and muxing. Signed-off-by: Andreas Rheinhardt --- libavformat/avformat.c | 26 ++++++++++++++++++++++++++ libavformat/utils.c | 26 -------------------------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/libavformat/avformat.c b/libavformat/avformat.c index 2249f09825..2a919ad89f 100644 --- a/libavformat/avformat.c +++ b/libavformat/avformat.c @@ -663,6 +663,32 @@ AVRational av_stream_get_codec_timebase(const AVStream *st) return cffstream(st)->avctx->time_base; } +void avpriv_set_pts_info(AVStream *st, int pts_wrap_bits, + unsigned int pts_num, unsigned int pts_den) +{ + FFStream *const sti = ffstream(st); + AVRational new_tb; + if (av_reduce(&new_tb.num, &new_tb.den, pts_num, pts_den, INT_MAX)) { + if (new_tb.num != pts_num) + av_log(NULL, AV_LOG_DEBUG, + "st:%d removing common factor %d from timebase\n", + st->index, pts_num / new_tb.num); + } else + av_log(NULL, AV_LOG_WARNING, + "st:%d has too large timebase, reducing\n", st->index); + + if (new_tb.num <= 0 || new_tb.den <= 0) { + av_log(NULL, AV_LOG_ERROR, + "Ignoring attempt to set invalid timebase %d/%d for st:%d\n", + new_tb.num, new_tb.den, + st->index); + return; + } + st->time_base = new_tb; + sti->avctx->pkt_timebase = new_tb; + st->pts_wrap_bits = pts_wrap_bits; +} + const AVCodec *ff_find_decoder(AVFormatContext *s, const AVStream *st, enum AVCodecID codec_id) { diff --git a/libavformat/utils.c b/libavformat/utils.c index 26f44ddfa1..848afa3c35 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -530,32 +530,6 @@ int ff_hex_to_data(uint8_t *data, const char *p) return len; } -void avpriv_set_pts_info(AVStream *st, int pts_wrap_bits, - unsigned int pts_num, unsigned int pts_den) -{ - FFStream *const sti = ffstream(st); - AVRational new_tb; - if (av_reduce(&new_tb.num, &new_tb.den, pts_num, pts_den, INT_MAX)) { - if (new_tb.num != pts_num) - av_log(NULL, AV_LOG_DEBUG, - "st:%d removing common factor %d from timebase\n", - st->index, pts_num / new_tb.num); - } else - av_log(NULL, AV_LOG_WARNING, - "st:%d has too large timebase, reducing\n", st->index); - - if (new_tb.num <= 0 || new_tb.den <= 0) { - av_log(NULL, AV_LOG_ERROR, - "Ignoring attempt to set invalid timebase %d/%d for st:%d\n", - new_tb.num, new_tb.den, - st->index); - return; - } - st->time_base = new_tb; - sti->avctx->pkt_timebase = new_tb; - st->pts_wrap_bits = pts_wrap_bits; -} - void ff_parse_key_value(const char *str, ff_parse_key_val_cb callback_get_buf, void *context) {