From patchwork Thu Apr 15 20:16:56 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 26940 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 5FE1544ACE3 for ; Thu, 15 Apr 2021 23:17:43 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3D10268A71D; Thu, 15 Apr 2021 23:17:43 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR06-VI1-obe.outbound.protection.outlook.com (mail-vi1eur06olkn2083.outbound.protection.outlook.com [40.92.17.83]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 704A368A40E for ; Thu, 15 Apr 2021 23:17:42 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZD72WUMObgSWa2EhSq/oLg3ZNWZet7UQSG/FDCJ/SyLaSPax95D9PMHQMQiHkQ2O1UFn6qogVhPYU6KobgCv+am0wHcGJ213/L4yr2wBr6mvJmC67teu9glHv2iT6rOWGFKH98KUOzbaBqVa2H/IUtGhRTavA/yUx0fFccjQi5LgvLrPaaQbDqW+GNJ1kRguvqTwHYWxrXWdezVRR7pvX3KrMEiypcDyvF/88cHltmbPbGe7Wpxo/3ejyVS99sXK3GaUwN+hLYxXqjOLSusQ/RyFwygkZDCZJC7aHXz0CNixczKHPy6WwbEgcmT3FOIl2o1Z7WZ0jVCO6l1f4VgK3g== 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-SenderADCheck; bh=Ov1cCh1u5Aa9+Zr7/rJGbwZqbteF0Cq9VtuOiLSzGKY=; b=i6A2qDbjzVlQddKekLG2hrsIHWC0oX/QelEFvMaHcDOSiV4ATwIonmW12yCOuaW3vUZrEr4tSHRCRhGPtxOROUiKg26cMRFTOzXMUOiu1H7ma9ybVvubdQPmRNsMe3+6xjMYDnDs8B8ZqrOkXxnHesa3PxXY/XYjzUzQipOq1vg8qDLrWpFLSDonP2xAcImzi562Exza34AjrkoNv+sZv7qpWhV1iS1hbzqMEIfhSK/YhiwU4yDJ980e4i6h0jaUtVoKbIQgswc04sLjvEoYCwZ8rTkLMGbzasVvXGnhlmoxkKtU8f7BvkkZMn0RnyEw10J0eSy/unedcf0BSHJ0cg== 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=Ov1cCh1u5Aa9+Zr7/rJGbwZqbteF0Cq9VtuOiLSzGKY=; b=s5Llog8I0y3gbeYMsw32dwuiNJHLxD1OXTcFQTqxlcVSF+9eaMrQG7z4UipWArApcvByLBHjyCPhQt+EWKNqT8dC2WHzagR96UHbyDDWHIh5ZBPMjGBj/3E3HwwX8gfXZ4HQideOMPId2gC6O1kFmZIOK51kZXGvmKbRUt/yHcT0zRemKAygZ+/Sv5FxjH14EQsawnCflOqx251yZoDj6PgyFCJ+Pqa/96ldAReArkFcHQ6FVWSBEMZ9xhL+etSPRsM7AYGPruXXxlg6+Nps96zsVSF8v+zTPg6/fYvuPMCT0QBTAvl8WWudTgy2FwYIMWGgpkM5mOW1kcWuA4HBWA== Received: from AM7EUR06FT022.eop-eur06.prod.protection.outlook.com (2a01:111:e400:fc36::42) by AM7EUR06HT127.eop-eur06.prod.protection.outlook.com (2a01:111:e400:fc36::122) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16; Thu, 15 Apr 2021 20:17:41 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:fc36::53) by AM7EUR06FT022.mail.protection.outlook.com (2a01:111:e400:fc36::388) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Thu, 15 Apr 2021 20:17:41 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:A087950BD0D0F1B2983BA9FEC1E79A0C654D4BB389CF8EA7C5758E7D25B00DA9; UpperCasedChecksum:EC87E98C0FCE03B4C4ED64D9DA2A09A58D8E31D4A87F328C73208AA3C87DA38C; SizeAsReceived:7609; Count:48 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::45bb:c44f:2b75:23b7]) by HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::45bb:c44f:2b75:23b7%5]) with mapi id 15.20.4042.018; Thu, 15 Apr 2021 20:17:41 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 15 Apr 2021 22:16:56 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [PP1UpXWxBOlxs1niwMao0xMaRvAXFzMo] X-ClientProxiedBy: AM4PR0501CA0060.eurprd05.prod.outlook.com (2603:10a6:200:68::28) To HE1PR0301MB2154.eurprd03.prod.outlook.com (2603:10a6:3:2a::22) X-Microsoft-Original-Message-ID: <20210415201659.1810798-6-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.137.96) by AM4PR0501CA0060.eurprd05.prod.outlook.com (2603:10a6:200:68::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.18 via Frontend Transport; Thu, 15 Apr 2021 20:17:41 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 25286fdf-7d4d-4ad7-f064-08d9004b8593 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiTvkErHHM9AELLsJR433rIZfKYOLVheBu3eOhz1Hj8aEGAxXolX1zcYnidJXX4HSJYloOYz05N5iGhLPQDsc6NJMWWGndnSNVoZM+0o1T2RUJc5k1bYRTQuZx27d0QRuY/Pa0NptDaD1Kv8TXspkTHDb87BReUpPqg2VqDTjGZvH+6jCi694ZPltMwog11SMK9Y4VJOYdhvxuvnwnSz6tHHWHzW9LvTGcXOTS9cMle71zgLFmH1qt6AjTlN+uiHpCJYIblCfuJDfkOLvrbbRiPkrSQG9t27mIeh8PpoXa0JKYAdB+UaOo5/dyJk1Lj0EiGM+2F2B5b5Vmv6Q40gLP1hydi8D/R8qewVDCyXM0ViYErQ4kIHZdgTMAMILzNLjeNKXcRSRtf/rEWanhHSv3rsd+NXhI2TeflihVdH2NYxBXTyZX3HCnA0dVxtj0Vg48QagAvLLvVzosR7mVoMVh9FD9KGOlMIlQHddwfEtLFyYo6lC1eTYPBtenDWXT76gkGK0Vb+P4Eq4znOTB6AgRpGDpOxXxsrNGjuWvoKr56V2GY82R3FTF/9X1nMItbM71zNBdAjbdDprVtEU5XI5XALUaPlqcqKt6Fqlrpekr0YFeHULWqYgMRTHLWzlYsB5FP5XvP1IJyjhthTpNnbi2rq2/yGiLZn659rI77Uz24K5QB9YiUs4/+LgOVADeH0eadeDvL+/pYSftqa4RvtLn1wEtJw2Kh/phJEFtITdWtqa8CtIyLH2NgWw9N8K67AtzQ= X-MS-TrafficTypeDiagnostic: AM7EUR06HT127: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qXtGNCNKgxDMN0C+9mFp0Kd0ID/PqFHUPgMxkb4hCfcVcrsALG02tdCUszGxC3vdKDT5ChZ1Qe4yYQD0OiQNs1ZU/B1WniwHMtiyhVLeSiF0ePFmDcF6irKdCYbqd1GjlQFDUuMmiBcQ+KYuyb1i9OUAdjZY+Fl2XmFB8VRjHUZmUcjn1jnLqWOKlBsEPypg1JbKplm+1pVDolcVJLmz9hHbuwgT9TE/wS+xdZIQ1/baLT48T5hLX4YopHN9xv8AyJVTOLTiIileY4khHRGQE6s2UynR6ozFZUyOaTK6FxNT9z8/VP+I0RFhjznVLQf4rvSex41rel18xlCyTddFOO3FdKxx6f3BSI5j2vgW2en302ZOw8TmbHG9K4Z/XI+CIW3U1JjnyxknB7O+hchQHQ== X-MS-Exchange-AntiSpam-MessageData: Xvu/Nw0M4sjMkJqXjKWNYx1pQrtO6RBbrOf5jofSVBboBc5GJDgi60fA7VJkmiFSF99CbqZNjPcqB2e8YJIVLD0g/mibbr8JrKP22XL/FYgDcMoZOiKY1U8i7FZlzBVdnATytW5PwHX7M27l+U7nSQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 25286fdf-7d4d-4ad7-f064-08d9004b8593 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2021 20:17:41.5077 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: AM7EUR06FT022.eop-eur06.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7EUR06HT127 Subject: [FFmpeg-devel] [PATCH 07/10] avformat/aiffenc: Avoid seek when writing id3v2 tags at the end X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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" Signed-off-by: Andreas Rheinhardt --- libavformat/aiffenc.c | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/libavformat/aiffenc.c b/libavformat/aiffenc.c index 1ecdb52ee7..725e06b3bd 100644 --- a/libavformat/aiffenc.c +++ b/libavformat/aiffenc.c @@ -233,25 +233,12 @@ static int aiff_write_trailer(AVFormatContext *s) AVCodecParameters *par = s->streams[aiff->audio_stream_idx]->codecpar; /* Chunks sizes must be even */ - int64_t file_size, end_size; - end_size = file_size = avio_tell(pb); - if (file_size & 1) { + int64_t file_size, data_size; + data_size = avio_tell(pb); + if (data_size & 1) avio_w8(pb, 0); - end_size++; - } if (s->pb->seekable & AVIO_SEEKABLE_NORMAL) { - /* Number of sample frames */ - avio_seek(pb, aiff->frames, SEEK_SET); - avio_wb32(pb, (file_size - aiff->ssnd - 12) / par->block_align); - - /* Sound Data chunk size */ - avio_seek(pb, aiff->ssnd, SEEK_SET); - avio_wb32(pb, file_size - aiff->ssnd - 4); - - /* return to the end */ - avio_seek(pb, end_size, SEEK_SET); - /* Write ID3 tags */ if (aiff->write_id3v2) if ((ret = put_id3v2_tags(s, aiff)) < 0) @@ -261,6 +248,14 @@ static int aiff_write_trailer(AVFormatContext *s) file_size = avio_tell(pb); avio_seek(pb, aiff->form, SEEK_SET); avio_wb32(pb, file_size - aiff->form - 4); + + /* Number of sample frames */ + avio_seek(pb, aiff->frames, SEEK_SET); + avio_wb32(pb, (data_size - aiff->ssnd - 12) / par->block_align); + + /* Sound Data chunk size */ + avio_seek(pb, aiff->ssnd, SEEK_SET); + avio_wb32(pb, data_size - aiff->ssnd - 4); } return ret;