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 192034211A for ; Thu, 16 Dec 2021 11:54:36 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B3D0268A607; Thu, 16 Dec 2021 13:54:33 +0200 (EET) Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-oln040092071089.outbound.protection.outlook.com [40.92.71.89]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 67647680BA5 for ; Thu, 16 Dec 2021 13:54:26 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Onw5M06YDARKuh5/oFj3+L9wBIYDhjViDDH0NQNzK4sR9HNZM1KtDRgwyKnXz/V4O3JBaqV9EwTGqyTIIobhHWHRgqkRIv12gv9FcGIfuCFRamNzYDnwAeRzefsE9w83zRooJOKil8ztZcW4+Gn6THMtbtZ6U3dVXzG93ZeU1os9XxJYtxp6UNjDrfdtmJWssaBd4wCuGz2AEbePj8rmx1MjDEUMVixb9j6CzCRc0+3TToQ5OFAosUGkgb233e3n3muo4y/v3bTWQ4MZkuur+oY2rzxVySfs9hf86UwZmoHsimZ4rnkzSslMK815G+2L+UTuFgv3Q0ROyhO88ZGG7w== 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=C2ObdqmWUbA1tFHy8JdtTOJAmSs7oisFs0k7ZCc7rIY=; b=CiuYwKXnfNPDZ2rpJaiUDfe8zsF5+IqZBOVDjehioEHcggJFcw3WKDYPgQb3PgNemfckcPGWQjSI5dh8cPSq/2UwldqCakM14RQiZvg00KtwVRYL82fCuzwcZdMsAZ3QaHxHib4EOwIhskCvqeylvs9P0gxiKuewx5Ku56NJRa7cwGpPHLWfkCew8/86R4e+mB5Zq6WTuvOoo2DVmkCoQ66qrmAwc9+7lUEcSUVc+RM82iXjbH2tqowAg5CMWDsSZDvqRIrhHUwo4KmukgYV9tmYLHPK4sWd3cVjEiZLI3GKPth02YBdTw+yfMPjic1BVnrKCFejPMVPtWSoZMD2VA== 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=C2ObdqmWUbA1tFHy8JdtTOJAmSs7oisFs0k7ZCc7rIY=; b=gkvw+UFlC52W4D/d4UfLr0UezulPAFufUR3P2Bi/+3nbHdGPCfeKhfRfFfpRs54roUyW+zDQDMgrF6fwGjUuHUraGSSrPNZMBJKytRijy1+Avls8Q83EEJtXjXw+b9zAVjpQ41H1TLqj9YNzSXhBqFXH9+jPYCtH1DZ2gR7Y+fjpl0Ni1YoCk6wmxJ3eqKAFXYD86HY7PlcCg1rv2rr+Qv2y4mCWdj0eSXk6R2f9Gw14/EmnZa+TJ0QhfvbHSE/4QHOk4QdPEEuXgjG8EEK+XHZZ69UQwuhA03sy3zEeMBx45aDdOsGew3mSfzBBE/laKr6d395v82xSIBTZXysO6A== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM5PR0301MB2354.eurprd03.prod.outlook.com (2603:10a6:203:13::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.17; Thu, 16 Dec 2021 11:54:24 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f0dc:92f5:6bc2:45ca]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f0dc:92f5:6bc2:45ca%6]) with mapi id 15.20.4778.018; Thu, 16 Dec 2021 11:54:24 +0000 Message-ID: Date: Thu, 16 Dec 2021 12:54:23 +0100 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20211213152042.5900-1-anton@khirnov.net> <20211213152042.5900-2-anton@khirnov.net> From: Andreas Rheinhardt In-Reply-To: <20211213152042.5900-2-anton@khirnov.net> X-TMN: [1y04E3a6LSWfNEadxrHlSNnMFnb/D9F6] X-ClientProxiedBy: AS8PR07CA0052.eurprd07.prod.outlook.com (2603:10a6:20b:459::13) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <45e624fe-a593-ceae-5dc1-e79c86767d87@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c8ae8329-29f3-4938-8195-08d9c08acde3 X-MS-TrafficTypeDiagnostic: AM5PR0301MB2354:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: TQV6qMhX5hptrk86Kkj+s1rTcMLutTIJNStdwyWyjckLXYA7esI9YjmiPW8e2WoEqLqWafQlbkYAgtzXu9c9TmROeJhndQEjlE7zp4sNQL9BOfT54+khopHPIQT8J0Tva01BeUuePsQGVvJs9VLhas/lQQB/J3s7T14xKAIRjdC/xhRPBalpdqLQe3Hj94g+HnbMpX80ibsl9avT8XuO9fd/JTc5rrFg3Wzag3f0Tbgm1Q4vAvj5QyGN7XHO+kcoU5Zn/XNunjZiwQtyxwK+UqwY6aIJlL2+pfoRbAlSzunvP/aGKkMWDR/2bOJcL3ZvSyh1vjNtBhhI3XyRTmpgF/Wuw7sVz6/LN5tzThSgN2xuc2yBmBK0S9Ge4hxwuzJNId9tpaSzBQvkq41qjQYp31CMXws85sC0rSDcFBm1sNCfLsPPVXao4ZYuY6M6Rm4KzO1FoIEerUybxXHDe0IGoxjAwqL+gpUQnQIGNxB44ozaEwdf5QiUMcszd+YsIX68sQxNu3JRmGl5+GklfWyn7ceJaGgieS78VGzpV3KFObfXPXXm43RJeSS5E3fphjtRi01dsEgc/seTU9qPXWBI5w== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OTZ5VGhydkNSWGd6bGxrRmpRd254K1g2Y2VlQ0Zlb1Aza2FQTk1UT3liY2Y5?= =?utf-8?B?WmdzeStQcThGUDdORGkwemZ2dmRXR25ndk1PVkNqclBad2pEdFdNSkw2MXVo?= =?utf-8?B?U2pwYU5rRUFUS1g1d0JveFBzNmovaVZPMkk4cTRDOHlybzdSZm1YaVY5RXhT?= =?utf-8?B?NEVoMTg3c21iMjc5Z3NRMC8zTjY1eE5XWUN6alJxc1dVVThkMTduMmd6OTJv?= =?utf-8?B?ejFoQ21VUTF2QjRCS2F0Y0NRU1dpUEROblIvc2NqZnZwUm0vVmRkK080dWJC?= =?utf-8?B?YmJPdE83Wjh6S2JLWVZMTW9lK1laY21BamJKVGFhQUMyVUpua0I3dDdxemh2?= =?utf-8?B?UkZCZWVlcG53c3NzWHpPVkJlWis5aFFSTExWTDJLM0xlZ08xYzBnd05Jem53?= =?utf-8?B?ckc3aGtiT05wR3JpSFNkaHdEdUE4NERJMEowRWVpZWFwcXlEV214TVEvYVJq?= =?utf-8?B?N0JPVmdxVTVDNU10Z3V3c0VRRFBEdUZYM2Z6WUxQcXFkazJoU29FUjBNTVdO?= =?utf-8?B?WTlOYzdIS2o4UWNNQ1J6YXYzOEcvRVF2enUzTktmYWE3eWF3QVUwc0J2eEhl?= =?utf-8?B?K2ZIdklGSkFiWFR5cVBubEVZQWNpVm1EcWxCYmpSbElCazZzZDZzOGlqMFRp?= =?utf-8?B?TTl0TXgwdjd1MzdNS2pxZlFkbjVkci9ScmpYbzcxWEMxKzdXaWx2UVdhN0pi?= =?utf-8?B?Tk5KNUxjb2tHL0d5ZmxISG1BNFRyTk9makVlcFhXcStnRTZ0cEhiQzd2RUp6?= =?utf-8?B?M1Eyb2ZxNVpyM3BaWjdhYW96c2gvSjBxWXhrQkc1RU5OT1A0dUhxa2svbXZ4?= =?utf-8?B?bEVrSHg1RUh3ZG1OS0Nrd3RyUkpaTUptZnVCRUNOOXdYbzRSZXF1QUpkRGhM?= =?utf-8?B?RXJhb3d1S3ZqRmcrYzI4TStVQWw3RnFvUFJoRFZkM0dac0NGMFA5ZGZ2V0RY?= =?utf-8?B?WDU0MXhOSUNQUHdSUWNWMVlmK1lOUnBZM0sraHBCdHJLUkd5M1JyQXhWRFZy?= =?utf-8?B?QU1xbDFNUW1ibDZ5OGlyTkNjSkZWcnFwekttTGVRa0hFZ3k4bDZ5aDJRWmJt?= =?utf-8?B?Y2RtZnBIVkx4Z2VhL01DK2h5VzRiTnI3bjMvZDdsQVNEaDBrclkxWVZtWkJJ?= =?utf-8?B?dldQdnNUSW80TW4zcE13N25pM3ZJeENjdWtobmRhSHc1Y0p6U1YwTkRTTHNN?= =?utf-8?B?WGhSeVVYZGhGc2VPQ3BCU2JNMWZ1RlhscFlXdnZYL0w0bUIxbTkxNGtxemhy?= =?utf-8?B?V3ZCdGEwcGNMc0luWTFGZ2QyZkZkb0Z5dm9Bc2k5TklKQXpoUT09?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c8ae8329-29f3-4938-8195-08d9c08acde3 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Dec 2021 11:54:24.4706 (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: AM5PR0301MB2354 Subject: Re: [FFmpeg-devel] [PATCH 02/24] ffmpeg: simplify getting output file size 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: Anton Khirnov: > Stop calling avio_size()/avio_tell(), which are potentially heavy > operations and may interfere with muxer operation. Use the recently > introduced bytes_written field instead. > --- > fftools/ffmpeg.c | 10 +++------- > 1 file changed, 3 insertions(+), 7 deletions(-) > > diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c > index bdeff9a12e..b77531cb7f 100644 > --- a/fftools/ffmpeg.c > +++ b/fftools/ffmpeg.c > @@ -1677,8 +1677,7 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti > { > AVBPrint buf, buf_script; > OutputStream *ost; > - AVFormatContext *oc; > - int64_t total_size; > + int64_t total_size = -1; > AVCodecContext *enc; > int frame_number, vid, i; > double bitrate; > @@ -1708,11 +1707,8 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti > t = (cur_time-timer_start) / 1000000.0; > > > - oc = output_files[0]->ctx; > - > - total_size = avio_size(oc->pb); > - if (total_size <= 0) // FIXME improve avio_size() so it works with non seekable output too > - total_size = avio_tell(oc->pb); > + if (output_files[0]->ctx->pb) > + total_size = output_files[0]->ctx->pb->bytes_written; > > vid = 0; > av_bprint_init(&buf, 0, AV_BPRINT_SIZE_AUTOMATIC); > 1. bytes_written is only updated when the data is actually written, i.e. the stuff still residing in the AVIOContext's internal buffer is not accounted yet. This might lead to the bitrate being significantly underestimated at the beginning of output. 2. In case of seekable output when data already written is overwritten the new stats will be totally off. With -movflags +faststart the final size is off by a factor of two. - 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".