From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 68A3140A2D for ; Fri, 4 Mar 2022 20:13:17 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3C72368B1C6; Fri, 4 Mar 2022 22:13:15 +0200 (EET) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073081.outbound.protection.outlook.com [40.92.73.81]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BF42868A8D9 for ; Fri, 4 Mar 2022 22:13:08 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BY1qWjnBN/9UBw67tGweruOJMuj0Xc5wahiNEaEgNE0bHX9slHdOezd1yK2bJOKCHbG54dtBzPykmyL/Uf5OSptcQG1mA2EPgFxAZLMZHS7DS5/L69/CGqewyAAvpNKxN4F+yS0yzvqaniKU5iY6wsrPpzVDPN0KMxttj+6bvpHlyvxkczgK3aVSzrgEShq8tRIfGGAtd15vaV3Km3KE2fiIaazBEEyNr9fPQteLm6iLGnrCXst1BVerjsVj7YySuSFXjt7d1QY+D/5tFZP6sMuJ2cZvanZco7glK2q3CrWzFazglju0SD+1jxFJ67uGDFrjCrWQcSVFDlRCobL1bw== 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=itLqWT86kl3NyOe34a7HrI2NQ8RgeP6c9Xfdc1zpVPw=; b=Mz8uNciizIx6dD2Dvb1qiZQi7g4UOO/C59xU/xIpCTAEaa4eCUz8LCLqESZ3HxTKMmQa/Gj2TYV6+n0+y1/1KypAX0pXBi8LfNGmBv5AJBJU1cJxxCcvuc86ieWQzb2Z0eojS9JB8B7RDdBFndnhzJYZNUtCbBpeL8ZqZ6Oz3nUECkepAY0hMhxyDEiOQffguX5ReFHQ47aqxxYbYGBTqKKy1xDk+xO0ggYiODq0CkejmyyezYNsaRdQcxe+1m/Irate/ZmByugUIUgJOwbgqgyL/QFWUhHKSRvvMej0SzULrHtv8EdvR9U8624EQCneD/xCLgnY1cWPfwRvbBMgXQ== 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=itLqWT86kl3NyOe34a7HrI2NQ8RgeP6c9Xfdc1zpVPw=; b=HwlVW+ROdfG91cag81zQjH28DG8QTYUTdcUNUkAz5Q+uwff8ervsSHA13RdkiJle6kGIjPZiXOeiSKMHkdRja6vk66WDd9kkn9PO6DsV+xI3/URNIeVfkeprbzub7b8ywJzCiCunW+FJ6TOrtThz1X4ZHXJ38M1YUHjESkOZ4pzE847Bv3QBsRAREAnhoMaIakqNHKDqkRemv6kEbMjFLWKHZGf7Im3SW+OlpYE7XjrxHFu0UibLVx9dDkpo36VLEpZ9EKSSbk3ZEB/o496eMIgVLV+DWF5rItqPisw5B8pDy6J8d1oslet5O7s95Qt0lGw2bvmMLqgrk55Y5y36gg== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM5PR0301MB2483.eurprd03.prod.outlook.com (2603:10a6:203:7::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.26; Fri, 4 Mar 2022 20:13:07 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::b8d3:effd:9a3c:4090]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::b8d3:effd:9a3c:4090%5]) with mapi id 15.20.5038.017; Fri, 4 Mar 2022 20:13:07 +0000 Message-ID: Date: Fri, 4 Mar 2022 21:13:04 +0100 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20220221060230.6665-1-pal@sandflow.com> <20220221060230.6665-4-pal@sandflow.com> From: Andreas Rheinhardt In-Reply-To: <20220221060230.6665-4-pal@sandflow.com> X-TMN: [dTaM6PtbSrFt3yfBPoLBMutPtFW1n4TU] X-ClientProxiedBy: AM6P191CA0027.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:8b::40) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a3e85404-e5b1-48ff-0db2-08d9fe1b6553 X-MS-TrafficTypeDiagnostic: AM5PR0301MB2483:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: OELtioLHF0OUMsm24L1tT2FsCEgd7AN+uEIXRVylUD1/xmfCJEoQ+KmHQ/rdlIZ30ALgnFgv+YHp83DlxGnuOX0zLDW+/ywu9oBZrLKyEa5qC7jNm8+fZmM0OKQ6vCYDkwqDKiD2SnWKzBExiqKgQAzhpNVsVwvMm1MjObXPYFu8al9+R2YHpH5Ue46XMWyNY3bBM21QEzfgPmN70zO1+iCyYXOPoSa+MUhgzvkdt9tryfwAXdp4nhR1fcAp9SvsWiVbs6EzFGlDq4snwe0L6i+1hNy23H4h3u7BbQYPJdXPQrdelLp7Wd2l5jKs6Q+O4U8ouqZPn/l7YpcE9RuI63aSV+LqQ6dF/5E8aO4b7i+yPNWbm+18pKsez7x1Laokrzq1/5Yae9KGCbRH5Mor82ldU/7BuVKfwS4gKtAivFUxBHKH2KcSyWy/bBmP0XRjhRULjVPoMIVAdUZrr+tEp0HpgtCHl9l1TTszuiRwFTi6C/08xpYelTRtjgSnMIagCAOAbcjCy6A3hY2G2Xz4Fb+wLWc4ajs0aWe/Bsh78zwUdvGYiPppPVNO0AtKogr+1WYf0e4k6nI2ZEezS3C53w== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WmIwVzB5Vk9NZzE2aSs3K3JqUjBqU0J6dEFybEtBc2ZJWEo0TGlubFdodk0v?= =?utf-8?B?ODl5WUN0ZVdxTEZZRXdESmppVHQ0Tk5Jb2FXdHZWNER2UkVMekFMMmpNcmQ2?= =?utf-8?B?T3NkSUtvaXZIRW1oV3MzQkxxdHBCMytYNGZPclI3ZVZ6cVJROFpEaEJkbVJv?= =?utf-8?B?K3F2YnJxVDdpSTg2RWEwczVPZ0xnaGNLbDNiTGJucVBqWWZXa0dDNDQ4QktV?= =?utf-8?B?a0xnQTlwbzZMUDZsMHc1dnJQd0VXcHBMdkNTQTFsNTJBcGxIMEt1RVhVRmdm?= =?utf-8?B?clBqb0FPZkpxY3B2ZVU4Y2Y4V2pDVy9jMldFeUI4L0M1R3Z4WmZpOHhqbjZK?= =?utf-8?B?VHBIb0NKc1hBNVNya0Z4bkRDRCtuMU9pbmt6MGo4UHMzdVFvamRCVEUxM0ln?= =?utf-8?B?cDd5VlhTR21qRkZTLzJkZU1xeStERE9GZHFJMUFTWmVXK0oyTEthZkJMMnhX?= =?utf-8?B?Y2cyRHcvOThuQXBCV2wwdlhXcXA1VjRRTk5BVzI0cmRZdWdGQW5maXh5dkZq?= =?utf-8?B?WGVUQVdESUg5OUJOazVySVBoZkp5T2Y0VitsTWhYMzBhVFVkUHMyOTREdW1R?= =?utf-8?B?NlZ2dVVlbVBlQzYwRWQxU0tBUXQ4R1FQSWFvSUlnelZRamV6UWJxSENMVEtr?= =?utf-8?B?YkJmNFV0SHRVNHpPbkZFVTBmT0NDaU02alBUL2VWeVlWQitTSXp6ay9nd0Nr?= =?utf-8?B?anJUeHZDekhkZ0xibGdXT1J3Z0RtNTgzLzJjNm85N1dIaENjTTZXcVNrNHJo?= =?utf-8?B?UWlZa0V2c3FheWdvMHFMRTAxNlNCMHpuOElITUp6QWh6YUl0bzZoazhMTnZK?= =?utf-8?B?djRZQytqbUczYkFJR1RBSkdEaGZOcTE5T1VscW5PVDBLdlQyOG42TlNKeFI3?= =?utf-8?B?MVljbEtpeExuSmQ3eTJpSU0yREdZemVsRlc0Zit3L3c4RDFSb1JNT24zRklu?= =?utf-8?B?NmFGQ1lmcHBlTXpjUERnV09VREZCb0dCL1Jxb2NyWkJnbXZzaTBOQnYxYTVv?= =?utf-8?B?cWdsZnZDY0lIVVVVMTJ0cFk4U1AyMjFNaUxUWGxDS2xOVzRFVmh6ZXJJSDh3?= =?utf-8?B?Zkg4ZGQzR052WnYvRGo1WHBEK1QxT1dFemtaTFhIbFZBcGFZNnlnS0tCWDZS?= =?utf-8?B?MVNaTWNPVU5hSWxlTEY2ZGRLT1duUUNuTklHK2p5NTJZejJjUndmVkQvb2pv?= =?utf-8?B?WEtpZXhCQmpHTTJWME1PbW56QVppSmdJRUJxVGxHZnA0MFpIZWpVQXlVV3lY?= =?utf-8?B?bE5jZUdJdGhqbFByWWk2a1JNSTZlenROMmhLYVlGNFcxVE8vZz09?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a3e85404-e5b1-48ff-0db2-08d9fe1b6553 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2022 20:13:07.2317 (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: AM5PR0301MB2483 Subject: Re: [FFmpeg-devel] [PATCH v2 4/7] avutil/mathematics: add av_rescale_interval() function 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: pal@sandflow.com: > From: Pierre-Anthony Lemieux > > Refactors a function used by avformat/concat and avformat/imf. > > --- > libavutil/mathematics.c | 10 ++++++++++ > libavutil/mathematics.h | 21 +++++++++++++++++++++ > 2 files changed, 31 insertions(+) > > diff --git a/libavutil/mathematics.c b/libavutil/mathematics.c > index f4e541fa24..2c7f57b950 100644 > --- a/libavutil/mathematics.c > +++ b/libavutil/mathematics.c > @@ -212,3 +212,13 @@ int64_t av_add_stable(AVRational ts_tb, int64_t ts, AVRational inc_tb, int64_t i > return av_sat_add64(av_rescale_q(old + 1, inc_tb, ts_tb), ts - old_ts); > } > } > + > +void av_rescale_interval(AVRational tb_in, AVRational tb_out, > + int64_t *min_ts, int64_t *ts, int64_t *max_ts) > +{ > + *ts = av_rescale_q (* ts, tb_in, tb_out); > + *min_ts = av_rescale_q_rnd(*min_ts, tb_in, tb_out, > + AV_ROUND_UP | AV_ROUND_PASS_MINMAX); > + *max_ts = av_rescale_q_rnd(*max_ts, tb_in, tb_out, > + AV_ROUND_DOWN | AV_ROUND_PASS_MINMAX); > +} > diff --git a/libavutil/mathematics.h b/libavutil/mathematics.h > index 64d4137a60..eb8a3f4002 100644 > --- a/libavutil/mathematics.h > +++ b/libavutil/mathematics.h > @@ -161,6 +161,27 @@ int64_t av_rescale_q(int64_t a, AVRational bq, AVRational cq) av_const; > int64_t av_rescale_q_rnd(int64_t a, AVRational bq, AVRational cq, > enum AVRounding rnd) av_const; > > +/** > + * Rescales a timestamp and the endpoints of an interval to which the temstamp > + * belongs, from a timebase `tb_in` to a timebase `tb_out`. > + * > + * The upper (lower) bound of the output interval is rounded up (down) such that > + * the output interval always falls within the intput interval. The timestamp is > + * rounded to the nearest integer and halfway cases away from zero, and can > + * therefore fall outside of the output interval. > + * > + * Useful to simplify the rescaling of the arguments of AVInputFormat::read_seek2() > + * > + * @param[in] tb_in Timebase of the input `min_ts`, `ts` and `max_ts` > + * @param[in] tb_out Timebase of the ouput `min_ts`, `ts` and `max_ts` > + * @param[in,out] min_ts Lower bound of the interval > + * @param[in,out] ts Timestamp > + * @param[in,out] max_ts Upper bound of the interval > + */ > +void av_rescale_interval(AVRational tb_in, AVRational tb_out, > + int64_t *min_ts, int64_t *ts, int64_t *max_ts); > + > + > /** > * Compare two timestamps each in its own time base. > * I don't see why this function should be public at all. It seems very specific to a usecase in lavf. - Andreas _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".