From patchwork Mon Aug 23 13:13:29 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29740 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp2081732iov; Mon, 23 Aug 2021 06:29:47 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyTktq3CWuuN6ELFClsiuFhqeS5EQCkFF10FwNYVz36WT/x4mWfs8YdkwGf/FvUIRHboDRY X-Received: by 2002:a17:906:660b:: with SMTP id b11mr13771375ejp.427.1629725387266; Mon, 23 Aug 2021 06:29:47 -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 v4si8656864edq.468.2021.08.23.06.29.42; Mon, 23 Aug 2021 06:29:47 -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=IJ498fCb; 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 705A46808A7; Mon, 23 Aug 2021 16:29:38 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-DB5-obe.outbound.protection.outlook.com (unknown [40.92.71.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B392668A40E for ; Mon, 23 Aug 2021 16:29:31 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oSBmnzAa5qkk3pVYlPty+GAGfMPUR9Y1Mc750ggsSL9SH3SxnohbJNm7xt642jXYBZtP/34ZTbLA8ZOYiNIMpLABBR1HtYyeCfE04LAbwvmGDS+pgbHd8VWqzlrdFJvQO1zx424LTfEvQ1zAGqB54cJ3rC3ARv9H6U2RZuuN2P4fpALv2Ae4K/ciWuT+ToCDnPmlbpK6d3YnPoFT7Alln2l6uHcDaweQPw4rL5/oiULH8wlFZkIMNVV8Dyu/5Anu9SXBpDTeHRuYb4DubFNVVeHtCNh1sclwI77BsZNOpwR68KAeQxS8bkF6Uc2Nl1T2KphLYBWd4YhDlBMe2HXyaQ== 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=lgeLwAv52Q8JctlV/vDA1fUKBlVewMDVz9iWER21jDE=; b=HXPiot9hBOt7cdno4RMI41F1zcq6XJ678DVCr//39ASNDFLEH/6w/EVljPOWDlyhR5qy3TuhhSQnoVNGTLIQNoT1sfAXy4vsiTTz991WrthqL/wF4+opRbcKlN5/msauDmHoBWYws1OM9g2NJytTg1u5ns4RxhYL6U0FVZORlbtw2eq5qAx1pc1zQ2YisYy197W4KguCCMkABf9/2vmAVCxLEa8UAFzKYUS9K6x3LsZbNSqulX2A1S04MFGvStsMd2Yk1R97XgvuxcBZNe5QCW2vcgmRhSrwjZUt8NFDY+rQoYFw+1NarIDWtqqig+uascJmQFZMm1ry+UaqLhrC9Q== 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=lgeLwAv52Q8JctlV/vDA1fUKBlVewMDVz9iWER21jDE=; b=IJ498fCbtZAzS8lT9YI59g+KEZTJFzTajGFiPBCdAY7HgF5+pJYuHFZTAaeUbyaIpK++3lONyz3nKkWsLutKiAt2hCgAusGzb1lt6tM0T/PvrGe9IKHO/XROs/hOGy0o+miK9FUcAAKQNxYrif065Qz4Oy8jGrmAxFZ+ODcPRQhKhhgl2RMPetLqNE4CNYjURAJwlxaQZciMCz7sRKdKiuUd47wq9rxNqgwLhYdvQCQOW02R2I4aYIQSDFWEpxRb9W/fpvph9y9xf6DkDtBcEbPurQeJXGwxgnNIioIio51B+NW/Ip9QFlMhcjUBVtUGuVheSvH3kLzjavbsIOm5CQ== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AS8PR03MB7351.eurprd03.prod.outlook.com (2603:10a6:20b:2eb::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.22; Mon, 23 Aug 2021 13:13:43 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::5574:1fd:cce2:d590]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::5574:1fd:cce2:d590%5]) with mapi id 15.20.4436.024; Mon, 23 Aug 2021 13:13:43 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 23 Aug 2021 15:13:29 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 X-TMN: [GABTQ6q9RtMtUaQXSxZtS4xIuuzHuRym] X-ClientProxiedBy: AM0P190CA0029.EURP190.PROD.OUTLOOK.COM (2603:10a6:208:190::39) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210823131336.1837749-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by AM0P190CA0029.EURP190.PROD.OUTLOOK.COM (2603:10a6:208:190::39) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19 via Frontend Transport; Mon, 23 Aug 2021 13:13:43 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6108889a-f966-4e58-175d-08d96637d52d X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiS/C4aPjcJNMjwSEMtUFABSi6AhZBpTg3RvaJUdVlLWtDP4MAXPc1F1vTg+QT6A0nkm/tYf3nF1UD/MEx9vYcUhtgjr2cfUmlnS9HXSO6q1qq2iS+et9Sh+oAvwhtGVJ88l0pxyCX9bxapsY8MVnBQkezuBh/y4ivyazuMkQVyVUoRbEV3OUDyogy17pGvm3zzvcvSNw4/x9uQo4X172ruPNOl9yibB8feywxPteRx8wojhaTE+kwYvZXzVdTrKR01oX/j+r81EhoBKfNfsGxwBEJWXWGIZUUZQFXX5uZsEUL28jEKhYKXf3MYR8RPo3y3GVUAmQI/7lmoYFaBtgjVtbzNiJdTQ8EdIqLkiCgAYu9L+PVMfs/ZSHgvioWE3nITJXyTk330HzewgXIsV4faitdpY/aM/4G/9lpZ2f058INHYcVYxB4IJWRKPj1T6ozK5xzW6uj9e+dhilPD0dkX7yoEOBD2zl9P2gTZMuqATg8rMvr/pEvsW9Uc6HCVHd+y/wqI79ChyFBA5S0AZ1PUj+w2N2jEArHwfB9DrVLceOS3n2a9L6HfVRh+AXYQ/QYt9ISijOnD8BGhi2srbh88FkvaiMxt9vgbdt99Aujzd37tUzWd+nMXKReDhSY3I1JMS5N/hqC5YQgmhfTs7shWkZCGuaNH4sQCWVZgSOZQvFG5B59B97Y0quPgr/8E7ZjMgQegQJyBFhsU8qQVVIQx1mcPEqyVqxuMUSpTdQx1wSpOiU09afj8rRLnucWNitMA= X-MS-TrafficTypeDiagnostic: AS8PR03MB7351: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: i0DzFepcDOM1kKYjzDSaKqju2+0Vm/yiJNLO+0MjHE597up7NUefz1F3Xoep9MorU5SABZunvVqGPH8sIfnv+qQ25QwtO3BGY71dPC9LpaOmtz/rOseMNdQ+Yh2Mx+IBToIy5o9EWxYlrKXvp/ko0pCUIp8nfI6PDbqLhW9murNuapr/QbAcr+4fH3Q9t+bEj/4EiYZ2ViyuLxjAyD+r91Pe6iADKMeG8MYvN4TvsMMEOrTTwcIm1TaYEGbekva5c+CD9Zv/hWwCqh62UaPbVsT1xGDYNmQ9PxcoPWmedP4HeEQkaCBcrUH7qhivccin3c2h7rGfF5gM/NOfdxVgyYbXfgCXl0kogq6zx2vCxxso+GKbKHobUOGju2b+dvU79MFiMPao6F/kpXPWuC6zHzqp76WPT0vT/nNGqxoSBDQAEyg92rwUoiaO5tTPpb79 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 9foJxriDEru5CPMWb4rwYcQ5kTqevjrEkRxjzi5UbSYdFYwwiNRqml2wQ95hBcBM7uiCy5KaWvoKySnITZBEbJAY/y2jku7smVCrfZyNmulwLtX/gv6ip/Brd3JRq1t/OAqrVDmo1xxc2w4gIe2Abg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6108889a-f966-4e58-175d-08d96637d52d X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Aug 2021 13:13:43.8916 (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: AS8PR03MB7351 Subject: [FFmpeg-devel] [PATCH 1/8] avformat/vorbiscomment: Don't compute strlen twice 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: +UH9JKOahrN0 Signed-off-by: Andreas Rheinhardt --- libavformat/vorbiscomment.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libavformat/vorbiscomment.c b/libavformat/vorbiscomment.c index a929634cc0..13ee065a44 100644 --- a/libavformat/vorbiscomment.c +++ b/libavformat/vorbiscomment.c @@ -66,9 +66,10 @@ int ff_vorbiscomment_write(AVIOContext *pb, const AVDictionary *m, const char *vendor_string, AVChapter **chapters, unsigned int nb_chapters) { + size_t vendor_string_length = strlen(vendor_string); int cm_count = 0; - avio_wl32(pb, strlen(vendor_string)); - avio_write(pb, vendor_string, strlen(vendor_string)); + avio_wl32(pb, vendor_string_length); + avio_write(pb, vendor_string, vendor_string_length); if (chapters && nb_chapters) { for (int i = 0; i < nb_chapters; i++) { cm_count += av_dict_count(chapters[i]->metadata) + 1; From patchwork Mon Aug 23 13:16:48 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29733 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp2071820iov; Mon, 23 Aug 2021 06:17:27 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwB8r4kqW+SX8R4AG9DbX4FS/8PdaJntsQDd/XjD0iRUHn/bnujO53T4JAYdg8vH6NBXlBV X-Received: by 2002:a05:6402:14e:: with SMTP id s14mr36834735edu.358.1629724647374; Mon, 23 Aug 2021 06:17:27 -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 l12si1333557ejo.331.2021.08.23.06.17.13; Mon, 23 Aug 2021 06:17:27 -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=Y6AKil6q; 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 DC89C68A441; Mon, 23 Aug 2021 16:17:09 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (unknown [40.92.73.91]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 95196687EBB for ; Mon, 23 Aug 2021 16:17:03 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fUnII7+ecESNdQffyj1qeqBdF7n71BK04Zn6iOTRHT60dIgTI9CaTb0pSJrldi+DCEDgSxNFoitbJKdOztmfx4LyRscU2IUs04/CG4Df2l2o3/T809pcm5d8Ln/mbcEveNbk6uwGvk323eThsx3t8rI5Dd2gsIsT01gtUF5O7Iwmthdlb00R2b7vxN/28rVCmN4Ia61/aDl7SHkfqfuTSvKWWYtuKFw3AGI8N9t0I87A/7td80GA9mKrc6scda9B8ukTss5Mmfs5l7qV2TqsX84QaJWc0uC6+UrULMnQY+wNaXvtabXsGCMN4cVMucOlF3OgVktvMqFdbjVnFr3rRQ== 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=cwMN5sM334TP3NrXBKtcAHfbSG2xfx+9ub8rVbs11/U=; b=og4PzWy2vAvomEwjyNvv737SZtStLSrkxFNtnQfF0ORVqza2H06F/Au3Yv6m4SUBpyAxlQuIfm6iowyE0FT18HrgXQUcZmp+6rpuP/FjW8JeKz9P5hgnyvcz7o9FsbM+r5cxrG+lc3vWL6Fv/f8FO6OAdFNgGMvhuKYD6Q9j7KUQyQxwACoLuwFnPjkzMKakqGZFPmlG/P2kISF6l4IdGxNp/NGvxnZI5P/8qn3rmMu1g2XxMKtsnz8QVlW8f4cI73VQSQrN/gCsNEQfBHboRM+rMi1bXEuj44WpUVQYwvw2622HmbpOzHKKTxterhhqwBkfdJMHXPQSlZK8RZ+3FA== 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=cwMN5sM334TP3NrXBKtcAHfbSG2xfx+9ub8rVbs11/U=; b=Y6AKil6qAzoSFqNL5BxD2A78I038K26WB7MfjQyAV4EMkn0TOcIio+PGQxdfc79n4J+2iZDNIwoBE+i8Bpj5yPfni4hF31hCHvgR/CAg4HHZn8G837BHbCXdvq5U1zQiPBWYl4klEX0NYx1bSaOiaB9x1OmF//xQSkHY+SGwtDLAefEqWMCcQEp9HceuG/iK9HWQDowbWpsuS5ytLdc8cP6JKQA855XkoKTT1+u6Mmf3dfYRTrVnvmpf7Eay5e1nv1nU0t6TEV78gxHbWIysT47zQQR8qN2PCXQqeNG8wS7FD9eg8kz3hbVUDArWk4pCg1AHVTzTJ4H5o6NFuOlp7g== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB5250.eurprd03.prod.outlook.com (2603:10a6:20b:c6::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.22; Mon, 23 Aug 2021 13:17:02 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::5574:1fd:cce2:d590]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::5574:1fd:cce2:d590%5]) with mapi id 15.20.4436.024; Mon, 23 Aug 2021 13:17:02 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 23 Aug 2021 15:16:48 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [sfOM7ms92h6BufDWqU3v3w/9bhJCQbD5] X-ClientProxiedBy: AM4PR0202CA0012.eurprd02.prod.outlook.com (2603:10a6:200:89::22) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210823131654.1837818-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by AM4PR0202CA0012.eurprd02.prod.outlook.com (2603:10a6:200:89::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19 via Frontend Transport; Mon, 23 Aug 2021 13:17:01 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1dd0f85b-1817-4d28-382a-08d966384b69 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiS/C4aPjcJNMjwSEMtUFABSEvlsxBvXGYpGwNvyh7D8LBNcWcmEOXZLl1MR1/0JysMZf92FLsLnNQAvgUwfcT1rLdp1mGEDgbDv9lNHuSsJoHcukjcq725u5i+UyRuUJJgo/tCt6R1qLbArSXToZ3lz5/i6IUMsmCeeYQ4s8Fn/3XjiHa+yoYX0orUq90NcfqggPbRlvsqoR8ffE17xILNjVU2vGzSbPTMwfIhsuGYilI6Thm0uKrpsSTOkHLjx6Ip85tEDPvasOfdSVtv1zRTogH2JILwmEfDhQc+T0GsgOgkYIOAh7Ph+ERk8FhaTo9O61k988F/85K6EP2A16IPtfYj98yhq4m8gfPMFioLswlyqys3X5SrFu+D9v7PID34ZAq0swwIPghOm8+hUDUnzmJjrqlL6DoSrJXf/ooSv3cPTEUDDuMz8Fenige8yk+bFkVq5lR3iiSSBaOAPLcffwMOGAk4NwPXUEBp1+yJsDUknax7pF3wA1MVXQhANzewZzWpt5bgto/So99p/VUahi3TQS4zNK/gs7cv00PB/4NdeKmo1PD8/IixUqypUeX3hz408RltcDBKFg9NiDRl1YgwTd0F/KVmv+v3L7/4TQ/Nq7Ag+SE7uayYGpMbVZ/jrw1AbngGm4q7/u3nDA6QxCMHnsGoU0hB1JjzNGv3ryrAlyEdWlwVGkK4z/kzQzklJpc3sZEbWG3bfTHpCH7OiKtDWsSwq+3KQYFxlThnX071RGIrmLmtf8N7aoR+Sh48= X-MS-TrafficTypeDiagnostic: AM6PR03MB5250: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ksvo4zwsqG9pYzI2zHfXh1e0gl6aTpsptM/dUyRBmkVcseGpj2COimEKHj1DcewWUGZznW0bwpZ/q72y2lpE8L98H7g/tJ7Gkqj03yXCJLMgu7RlNSnnpXj8jd2cN20d3rtx8lKH1288EBcDgzoKjW6OXwFlZ7iMZngoBKq7IIwSzOcuGCkG5lzp8Jiwc4eJbHtSsf/2rna+/oOrEIpUVxLV5v31jo+f4fWoSt+4f9VEc1Z+ST9SOP+9QGhJY2zJsUApUrSqWe29jWJ4/5GuaogQp7OKIJJytz0npJqiqUt5Oy/Q/nWdqNID2s3mzcb5hy0HsIz4dkTkmPO+tG21qneaLBL6dMEQjV9apXrqH9ogOgYXWpmi8F9AVeQe1Aw/WKb7UCcND9RPtZ5kGmJ/raCd4hwgwevZw92ptu7jnzlvLBke+3fjPay/cQPckUyI X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: SwjAXponVHpn6lX7V1aHoIz3TvvmctvrNBhHfk2YZtJKDvk1TyAFpHE+DNjVhqS7JnIvPFwhQpz86jDWZZIvj7IIM+S08RXu7ADsiV9byUoNWg/5M16e2cnbGP8Bza6JCxHscSPi32yaXs/vJwuy/A== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1dd0f85b-1817-4d28-382a-08d966384b69 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Aug 2021 13:17:02.1055 (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: AM6PR03MB5250 Subject: [FFmpeg-devel] [PATCH 2/8] avformat/movenc: Avoid calling strlen multiple times 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: vRzIzfyyDbrg Signed-off-by: Andreas Rheinhardt --- libavformat/movenc.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/libavformat/movenc.c b/libavformat/movenc.c index 18410c70fa..acf9d63c52 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -2766,6 +2766,7 @@ static int mov_write_hdlr_tag(AVFormatContext *s, AVIOContext *pb, MOVTrack *tra MOVMuxContext *mov = s->priv_data; const char *hdlr, *descr = NULL, *hdlr_type = NULL; int64_t pos = avio_tell(pb); + size_t descr_len; hdlr = "dhlr"; hdlr_type = "url "; @@ -2829,9 +2830,10 @@ static int mov_write_hdlr_tag(AVFormatContext *s, AVIOContext *pb, MOVTrack *tra avio_wb32(pb, 0); /* reserved */ avio_wb32(pb, 0); /* reserved */ avio_wb32(pb, 0); /* reserved */ + descr_len = strlen(descr); if (!track || track->mode == MODE_MOV) - avio_w8(pb, strlen(descr)); /* pascal string */ - avio_write(pb, descr, strlen(descr)); /* handler description */ + avio_w8(pb, descr_len); /* pascal string */ + avio_write(pb, descr, descr_len); /* handler description */ if (track && track->mode != MODE_MOV) avio_w8(pb, 0); /* c string */ return update_size(pb, pos); @@ -3502,21 +3504,22 @@ static int mov_write_itunes_hdlr_tag(AVIOContext *pb, MOVMuxContext *mov, /* helper function to write a data tag with the specified string as data */ static int mov_write_string_data_tag(AVIOContext *pb, const char *data, int lang, int long_style) { + size_t data_len = strlen(data); if (long_style) { - int size = 16 + strlen(data); + int size = 16 + data_len; avio_wb32(pb, size); /* size */ ffio_wfourcc(pb, "data"); avio_wb32(pb, 1); avio_wb32(pb, 0); - avio_write(pb, data, strlen(data)); + avio_write(pb, data, data_len); return size; } else { + avio_wb16(pb, data_len); /* string length */ if (!lang) lang = ff_mov_iso639_to_lang("und", 1); - avio_wb16(pb, strlen(data)); /* string length */ avio_wb16(pb, lang); - avio_write(pb, data, strlen(data)); - return strlen(data) + 4; + avio_write(pb, data, data_len); + return data_len + 4; } } @@ -3792,9 +3795,10 @@ static int mov_write_mdta_keys_tag(AVIOContext *pb, MOVMuxContext *mov, avio_wb32(pb, 0); /* entry count */ while (t = av_dict_get(s->metadata, "", t, AV_DICT_IGNORE_SUFFIX)) { - avio_wb32(pb, strlen(t->key) + 8); + size_t key_len = strlen(t->key); + avio_wb32(pb, key_len + 8); ffio_wfourcc(pb, "mdta"); - avio_write(pb, t->key, strlen(t->key)); + avio_write(pb, t->key, key_len); count += 1; } curpos = avio_tell(pb); From patchwork Mon Aug 23 13:16:49 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29734 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp2071802iov; Mon, 23 Aug 2021 06:17:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwrZOvrGS+dLCjelzRQ8zuyq8LAHaFR2bXPzbJEyyWf5ZUdBGuqCLnZNrExjRruIN9iYOhB X-Received: by 2002:a05:6402:50cf:: with SMTP id h15mr11481799edb.218.1629724646054; Mon, 23 Aug 2021 06:17:26 -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 hr18si468611ejc.350.2021.08.23.06.17.25; Mon, 23 Aug 2021 06:17:26 -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=E8XHbs0q; 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 0BC9268A477; Mon, 23 Aug 2021 16:17:16 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (unknown [40.92.73.91]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F2FE7687EBB for ; Mon, 23 Aug 2021 16:17:08 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=g/QOWeWYz+gWKggLQeIveOpQvmxUfN6f3vEAw9qfxZlwa3Fbpp0ZK3/kBFKGLTFbZcUa0QlTWfRz+Eg6/0pSNYg4VvQSz5+j7nU/9rCbWa9twyXf2BVHI5v2QP36GYDJm43wvnH79AgTB0PSMJnlcMk8wRzckuPCe+fv6zTPeJlkMV7PfRSrJS2Td8Okqzw01giWYnB36/Dta5IpKisNJFjbNsfE1OCmDoVhUaixU1igXHZxXuAfSI1N3Ig2wnd4tHziiEPJlFadAILESxQIcZYxaY7xEHs2CIGd5WdynszEUxpzChRe1EZvo6m5s+MmEEbUp83+OEHk85plWpvCiQ== 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=838iIUnik/5pqK0orIISHJJx3FAMTSgt3QZ7Vi2mfoc=; b=bjGEth5ZKVyEmUp8IfPjQXnelI6w0M/yiSUVFZUO9lH4xJxjeSCry3b8GydqpRtzFRwR3wxKhODaOuuLrfMMBnTG82va6HyOT2oeYSduFpUmV4O9ZCF+HNZYICHchayqi6sc6oAFZaCy++PpqSjILW2KuxmgXBMfpPXg1vajaBEn1xPmeZsZgW1saipOx2OOwZf4/Oy7k1TJWsqLHpCjcO4IRP4xgvKBgywI3cpvpA+s5xpgMNzYXElWLwQLrS0kD1XX0sQHVbb8WVnq0Oey+Dmx3fU75daLixDXFaYZdswCAjkmOzeRNz1kM59RCw7K41AyLBYnS8hugw4OhmK1Ww== 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=838iIUnik/5pqK0orIISHJJx3FAMTSgt3QZ7Vi2mfoc=; b=E8XHbs0qLxuNd5e7f504YIoJ1HCfxlmyigxUHOcU1TQNmITwfumCekKZta9oOVqLY6smlZVwEGMQW3TPAOI1I7a460M+jSf2R468lnJE1wisSEaCEkSbX6Yo7PuVxun+d2jAphbxmp5zEDlRe30c7dyA/+YUcBV5sbxm3HBytEqmxmSBYhDmDmfUHMRfs+VL7YGPhaUPLQ+fOoaO/OFx0cUCs30yrgDxjsY1mPKInIloeg0YEcOeozqwjOdg32zjay7+uPBncnueIFUToaxNvCXkg/tPg+S2Ijt7nYhht90H+Jyc+MV5gjYlWUprcbJClue5/TvvPcVtIqw1aeVMhQ== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB5250.eurprd03.prod.outlook.com (2603:10a6:20b:c6::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.22; Mon, 23 Aug 2021 13:17:03 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::5574:1fd:cce2:d590]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::5574:1fd:cce2:d590%5]) with mapi id 15.20.4436.024; Mon, 23 Aug 2021 13:17:03 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 23 Aug 2021 15:16:49 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [qJW6dnxFexG9zyUAzowvaDlSCG6t1gs7] X-ClientProxiedBy: AM4PR0202CA0012.eurprd02.prod.outlook.com (2603:10a6:200:89::22) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210823131654.1837818-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by AM4PR0202CA0012.eurprd02.prod.outlook.com (2603:10a6:200:89::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19 via Frontend Transport; Mon, 23 Aug 2021 13:17:03 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f2f754be-f9f0-4815-6093-08d966384c2b X-MS-Exchange-SLBlob-MailProps: q+fD6XS3/UK8FaET1AYvNgCP+/z79etDP0/ZbKnGi56yrzQJULfM0rQ/IlMJ6S82qDaj3GQDrxw3ZMFJmIyxzHvgJv4LxdtG5KBpGJK/iT9oXNe0rpNocW/Jj0D6p0GLAerGfl2ql1pJdNBShHuSmITxnLD58hL1uncNdWLH3I4DRNiIYmUVUjkLCmJTroHxpuotMKYGC/G96OEiVB+Pggqh+HPu+1bfK9G+WwDULNICt6f//2LK44/txbDfzFWwZW+SkxzzOoaPLxhCagu6od6KF2LwjJq0LJtRx9E7bsErCmndeP08EkAH7JsgJplLJjX/MW79ixMQ0lNkm0kDar9kU0LKvImF/kio/e3OnO8bygI6hWhmFwGYNrbZYgK2TMhKX5mRDeYDzCsPn6l0eetYCmxMRb+9evWbvyjdN8GwO6zyWWiJ5XDVKr/xd1ErMxBpO1ErJHmhynCtJ3g73SS/nP3UsUVyHR3Yw/VRtxjTWb9ScId0gIZyMn452y+o9cfQANvwgwwMlbJLtoIjPDfnanvjsdtw8bMSAk5vqivuvk0IXoN4pG02lciuC2M+QiMisIVvZn+DGIUhpBcXKMCmpjUiwdEReq5QF+BsGAerPPI2yGwX15ETdTaSRjNbIq8W9clQ0GTNF11tCKsbZYpZl2WGMGlhEswe/rfgPi4Af+PxRcIs/eEbBV8psbMVdI3ix2V9MTXo7y06LPMjPA== X-MS-TrafficTypeDiagnostic: AM6PR03MB5250: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bWnAt8oa8JmfWYOpGZ3QFEekvrqzCtDD+R/LDEn9abVawKiqypyvPzLAEsbReSWdEoyi3/agyFhliv3AojKltr6w5ZyP7g8CXfH4cQpojHt1RoC5Soa2sdC21GY23RQXdlBnm8Pk5UBSjV2rpgIgk64+vrhUo/OOD6tntNkt/Z5dpdX2oM+B3K9XlqqlAI/ngp6H3Oj7GQc7IlJ1dpbpNrIM+lv9tht7hPFhfFwSK8w/mavQkY7sFK7Hf0XHXvFZfHmpn34AcevSCO9/YWkECMYppd2UD+TT/Ym6RjrqbR6eWtM0gTC2Bjr89b7mbPqUdMe9LygyHRN3CrAgyG8mVNhrszJcsTRL4GYUht0oJg9VavRyNg8uS/wEH81Aargr2wQ4iGPLEe4nHXt44nSSZ4ntB48yieBw/9bOiHcE77Y0Ei+gi1rfZfCizuK4GKIW X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: a+4f5CnX64uxp2Nt1eeU1TJuw+byi/zL8VBBYy2ei0uWgE18BmH63Y7Lu5P1HhLxUjI/5g5CgQODvC29sKW8hpG2B0R5I3S/uwqpbKPvD7Bxf18TdPD1eDZ7kYGSk4nCdYYVPRUwkivLL9/WUnaIBQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f2f754be-f9f0-4815-6093-08d966384c2b X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Aug 2021 13:17:03.3779 (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: AM6PR03MB5250 Subject: [FFmpeg-devel] [PATCH 3/8] avformat/crcenc: Simplify writing trailer 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: c7NIvejbh9mR Signed-off-by: Andreas Rheinhardt --- libavformat/crcenc.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libavformat/crcenc.c b/libavformat/crcenc.c index 4fdc448141..c58fbd6c88 100644 --- a/libavformat/crcenc.c +++ b/libavformat/crcenc.c @@ -48,10 +48,8 @@ static int crc_write_packet(struct AVFormatContext *s, AVPacket *pkt) static int crc_write_trailer(struct AVFormatContext *s) { CRCState *crc = s->priv_data; - char buf[64]; - snprintf(buf, sizeof(buf), "CRC=0x%08"PRIx32"\n", crc->crcval); - avio_write(s->pb, buf, strlen(buf)); + avio_printf(s->pb, "CRC=0x%08"PRIx32"\n", crc->crcval); return 0; } From patchwork Mon Aug 23 13:16:50 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29738 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp2071964iov; Mon, 23 Aug 2021 06:17:37 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxRcBquuBQPQcFERB2k6+Rqg9gppa68zYp9C0Ie5wE/ThJqzMbWxPLDP9EWDc39GqPppyoW X-Received: by 2002:a05:6402:3483:: with SMTP id v3mr37339546edc.207.1629724657767; Mon, 23 Aug 2021 06:17:37 -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 bl4si18034128ejb.689.2021.08.23.06.17.37; Mon, 23 Aug 2021 06:17:37 -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=q2UX9WCa; 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 8155368A4A3; Mon, 23 Aug 2021 16:17:21 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (unknown [40.92.73.63]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2E75A687EBB for ; Mon, 23 Aug 2021 16:17:12 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FJg/HIdYNf6RcUOoTI0iEarnlYUvejPFk7mgUpmTr1hK9xONPg3QrCXlTBImsPikU2arMz9zChsUhKLVYjW0Cfi5/JpYQLBfX4Ae7td/AQFVleByL7WDBv0cGvGM3jtNP0KjLsVgEowCjC8N9V1jvNSDHgpVZSnE6RRIzhjMpouARtvloFvggZAxLo9l4GVPRQcQv9U3di1FtpGeY4ZNk/of1oslITCx2+a4EffoKiun7yDhS2SZ14suhbh7vKbXsF6ufNRoImN6MZNqZUOTsSfI6f+6xQUw+Ow6PwX7N1xM4RVyKzSKdynMF2SY1BNJm6kH3Dd+qW2TMfM28lvv3g== 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=fwaK3WHir6yTIhVLiDEVnJQG87vm5uTJQ1mNv2wtm+I=; b=UEh5fq6VYoJHZOiZ37ixNuN9ko+aG4ve2v5T5WmJmqxJmNDEJ/0Ziu+MUSCB90EcHY4TkZDQUUpdtHz+UJ77M5qr/EPI+r2q0VJeSlLhoCwHrvYM+nAi9qmFkRjr72NwX6XWdeqH2NaWG3k/GLlZIT/gF5y1PzOrUP1Hu3gGz6EM7bIwWSXEZP2F6QNf13AVtCPZp8Hmt+L/069/7Eiyz+xpEcH+HNabHYwuXpMHnT6QuL7yR8MT+wEMkz5TQO6q7JbkNDR/eCowZ9c4NwaUKyuNgD0TZeFWoHd3184z0tRn2apmsUK6SJmX5nKGOL+YGi0oYOt1vdlA6F+y+lo7MA== 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=fwaK3WHir6yTIhVLiDEVnJQG87vm5uTJQ1mNv2wtm+I=; b=q2UX9WCaIQ6Azt/sKLqn94dI7Vj2QTE260cps03Z54wNgvOjGJKaS7cxyVdPSGVekZINidr27U4jwE0d2EMtATbVFMJ5IOfQy6e9mgRjMIy7b+E6NLXksKz8uQO44ZkyojYAVtz0N/ZGa0MtfGP49KsVc4iyHYdkCz77LYAqJwn8wpbxc+tnJV/3IVjYGc3ZmRImsQzT3FxTAclLLUazHdHziekAw9MVaYxZMpzvz8NtEPaRrICf9Fhh2a23P8jRbXvVOXqw7SS3uWMnfQFw4KomjJTVISGCfbbkaNlANANgTQSgCld0qsDkq6z0BOJ8Tybp2EA6k1itNg59U2HIwA== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB5250.eurprd03.prod.outlook.com (2603:10a6:20b:c6::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.22; Mon, 23 Aug 2021 13:17:06 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::5574:1fd:cce2:d590]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::5574:1fd:cce2:d590%5]) with mapi id 15.20.4436.024; Mon, 23 Aug 2021 13:17:06 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 23 Aug 2021 15:16:50 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [hQbj/EYTOnjMgWHo1A1B+vsBHha4xCUu] X-ClientProxiedBy: AM4PR0202CA0012.eurprd02.prod.outlook.com (2603:10a6:200:89::22) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210823131654.1837818-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by AM4PR0202CA0012.eurprd02.prod.outlook.com (2603:10a6:200:89::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19 via Frontend Transport; Mon, 23 Aug 2021 13:17:06 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5985183c-98af-4942-642b-08d966384e0a X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiS/C4aPjcJNMjwSEMtUFABSKGMUDVqhn+hR+tnZh0d0DD/80x+kHya5am9kbkV/OpddLjH+8meIiqrZ7Kw//lIamUPD21PDeBHKF27BHX+InBVEIRzX/S/XxBgFGGPkVK8fv1XW7XxPByGMGUiijpkkydJZroL3xfAPqhfdcseK6MmUdEg99GJFo2H7n4xwmRgRQ8ntojwFuhwERN/JwFFKaNOggi7gT/AE/i674d0G6Y5GyDEjSZaKungCWw2cbXPhvKpERnGKdvPrHevpzvXrG67PzlWqk2pM1T4JYkRkNS33+lWJfamKc73I0mRWFnINwAsP5GMxbtlrvJ4dxKhhDpuui07t+K4g8KIzUOqVvYD33sS24bz4HtgnB8uS3+SxPYbctxoycraBJ2Z8iQccC4XYgV6vyZ4AB+NaecqUrjDhNbTDwad2RBLRBrZW+Fphv42ML6SXWQrfYYsrroDGV4ou1pO845omWOwTIDd+T5tDoDPWNRpyEjsh0X7ndTLvVXN5lQQvjX/S2LW6qqos05NCGkhoL70XpeOgJeQbxZTSB6V8W/SUoFeEFWjBb/ES+vbYcyxT0+WPv3a15VCHX7LtI3J22ivSrcyZ44Yo8mkD5fE2YlBUoNy8+8kPJ5tNPqBTCmMltWKMnWjfRe/JpZaukMLLXcHFHW2Q6scnEVGfW3mdER3GrE7iLxZ/cpk5rVu5boPkthzciMN3EIoeWX1xdFCr6zCSeUBxdQ94O32ACBD5SfNkMcBIRqi3Xak= X-MS-TrafficTypeDiagnostic: AM6PR03MB5250: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 5tFxhMNi47kQxkXEEQTLGRcVbtg0Q7wKSW3kswB5DS6apynGb3NH7b6IaLk+9m2A9VYaYREhuCFZ9AJIzxCTvU8jdlqgSwdSiWBX9FMjy3lJ9idfOTZKkCP2S18RSHRBPqfDJy/XaYuvB8cxC7Dx1OGYG+/XXuIbWdL+xGcWMnBKj3jeysnkHP0Na17iL5V5Exb0xA85ZJyCjEVHC3kpSYu++jknAXXFJmDAb/7jhisO8q7rAe6R/EsnjOLpS58BBil/vN+vOhnxoLahWwvuTZ9hGhFJxLrSwpVk7TfQlsiSlaJwpkxD4hbpFqGWSG3in3iWuI96a2DfwItVXi49qFc4Rz0T7bKHwnpv4H5EnE7shub/1EonugzTPwfM2yZtc3LxNNZU83LA2lPPgaZ6r9E+u4q+8qRlofrv+CHXqEyE4/6Aa/U89nmgbJUnBLDD X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: qvdKrTy+Yft/qYmC3gpjv3gtQmrseyHL070Hxa1Gyek0wL7pl1DmDwbCrM7D/68p/c6ZQJciiV7mNojkcTc+h42ZTP547DeGeQVIdMdhnygYAmAMpnpWEz7Gvnelllr5f+SGHrjLZWmPLN6glW/5xw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5985183c-98af-4942-642b-08d966384e0a X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Aug 2021 13:17:06.5371 (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: AM6PR03MB5250 Subject: [FFmpeg-devel] [PATCH 4/8] avformat/oggparsevorbis: Factor parsing a single VorbisComment out 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: Bpz7UiIgAwm8 This is in preparation for further commits. Signed-off-by: Andreas Rheinhardt --- libavformat/oggparsevorbis.c | 142 ++++++++++++++++++----------------- 1 file changed, 75 insertions(+), 67 deletions(-) diff --git a/libavformat/oggparsevorbis.c b/libavformat/oggparsevorbis.c index c48658ceda..69c15c3dce 100644 --- a/libavformat/oggparsevorbis.c +++ b/libavformat/oggparsevorbis.c @@ -84,6 +84,77 @@ int ff_vorbis_stream_comment(AVFormatContext *as, AVStream *st, return updates; } +static int vorbis_parse_single_comment(AVFormatContext *as, AVDictionary **m, + const uint8_t *buf, uint32_t size, + int *updates, int parse_picture) +{ + const char *t = buf, *v = memchr(t, '=', size); + char *tt, *ct; + int tl, vl; + + if (!v) + return 0; + + tl = v - t; + vl = size - tl - 1; + v++; + + if (!tl || !vl) + return 0; + + tt = av_malloc(tl + 1); + ct = av_malloc(vl + 1); + if (!tt || !ct) { + av_freep(&tt); + av_freep(&ct); + return AVERROR(ENOMEM); + } + + memcpy(tt, t, tl); + tt[tl] = 0; + + memcpy(ct, v, vl); + ct[vl] = 0; + + /* The format in which the pictures are stored is the FLAC format. + * Xiph says: "The binary FLAC picture structure is base64 encoded + * and placed within a VorbisComment with the tag name + * 'METADATA_BLOCK_PICTURE'. This is the preferred and + * recommended way of embedding cover art within VorbisComments." + */ + if (!av_strcasecmp(tt, "METADATA_BLOCK_PICTURE") && parse_picture) { + int ret, len = AV_BASE64_DECODE_SIZE(vl); + uint8_t *pict = av_malloc(len); + + if (!pict) { + av_log(as, AV_LOG_WARNING, "out-of-memory error. Skipping cover art block.\n"); + av_freep(&tt); + av_freep(&ct); + return 0; + } + ret = av_base64_decode(pict, ct, len); + av_freep(&tt); + av_freep(&ct); + if (ret > 0) + ret = ff_flac_parse_picture(as, pict, ret, 0); + av_freep(&pict); + if (ret < 0) { + av_log(as, AV_LOG_WARNING, "Failed to parse cover art block.\n"); + return 0; + } + } else if (!ogm_chapter(as, tt, ct)) { + (*updates)++; + if (av_dict_get(*m, tt, NULL, 0)) { + av_dict_set(m, tt, ";", AV_DICT_APPEND); + } + av_dict_set(m, tt, ct, + AV_DICT_DONT_STRDUP_KEY | AV_DICT_DONT_STRDUP_VAL | + AV_DICT_APPEND); + } + + return 0; +} + int ff_vorbis_comment(AVFormatContext *as, AVDictionary **m, const uint8_t *buf, int size, int parse_picture) @@ -92,7 +163,7 @@ int ff_vorbis_comment(AVFormatContext *as, AVDictionary **m, const uint8_t *end = buf + size; int updates = 0; unsigned n; - int s; + int s, ret; /* must have vendor_length and user_comment_list_length */ if (size < 8) @@ -108,79 +179,16 @@ int ff_vorbis_comment(AVFormatContext *as, AVDictionary **m, n = bytestream_get_le32(&p); while (end - p >= 4 && n > 0) { - const char *t, *v; - int tl, vl; - s = bytestream_get_le32(&p); if (end - p < s || s < 0) break; - t = p; + ret = vorbis_parse_single_comment(as, m, p, s, &updates, parse_picture); + if (ret < 0) + return ret; p += s; n--; - - v = memchr(t, '=', s); - if (!v) - continue; - - tl = v - t; - vl = s - tl - 1; - v++; - - if (tl && vl) { - char *tt, *ct; - - tt = av_malloc(tl + 1); - ct = av_malloc(vl + 1); - if (!tt || !ct) { - av_freep(&tt); - av_freep(&ct); - return AVERROR(ENOMEM); - } - - memcpy(tt, t, tl); - tt[tl] = 0; - - memcpy(ct, v, vl); - ct[vl] = 0; - - /* The format in which the pictures are stored is the FLAC format. - * Xiph says: "The binary FLAC picture structure is base64 encoded - * and placed within a VorbisComment with the tag name - * 'METADATA_BLOCK_PICTURE'. This is the preferred and - * recommended way of embedding cover art within VorbisComments." - */ - if (!av_strcasecmp(tt, "METADATA_BLOCK_PICTURE") && parse_picture) { - int ret, len = AV_BASE64_DECODE_SIZE(vl); - char *pict = av_malloc(len); - - if (!pict) { - av_log(as, AV_LOG_WARNING, "out-of-memory error. Skipping cover art block.\n"); - av_freep(&tt); - av_freep(&ct); - continue; - } - ret = av_base64_decode(pict, ct, len); - av_freep(&tt); - av_freep(&ct); - if (ret > 0) - ret = ff_flac_parse_picture(as, pict, ret, 0); - av_freep(&pict); - if (ret < 0) { - av_log(as, AV_LOG_WARNING, "Failed to parse cover art block.\n"); - continue; - } - } else if (!ogm_chapter(as, tt, ct)) { - updates++; - if (av_dict_get(*m, tt, NULL, 0)) { - av_dict_set(m, tt, ";", AV_DICT_APPEND); - } - av_dict_set(m, tt, ct, - AV_DICT_DONT_STRDUP_KEY | AV_DICT_DONT_STRDUP_VAL | - AV_DICT_APPEND); - } - } } if (p != end) From patchwork Mon Aug 23 13:16:51 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29737 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp2072138iov; Mon, 23 Aug 2021 06:17:51 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyErROtaR7E2aV9LMw2bc/54/WEatPjIao5BWzE4O4okKoG8g4kQvUp41JJt9E9Xo+PIQGM X-Received: by 2002:a17:906:c1d0:: with SMTP id bw16mr35786159ejb.146.1629724670809; Mon, 23 Aug 2021 06:17:50 -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 qa35si5931175ejc.382.2021.08.23.06.17.50; Mon, 23 Aug 2021 06:17:50 -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=LekahKvP; 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 8E76D68A538; Mon, 23 Aug 2021 16:17:22 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (unknown [40.92.73.91]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A4C3C68A4A4 for ; Mon, 23 Aug 2021 16:17:14 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nS6mnClYG+pzLl6iDuewHG80Zu6FFW1f8r9GYNZMY3wKiPRQj1ATucBMgai/GzBTmmJmoVHJgtUGTTXLYB0iEHReO832gM4jQqDa85DOq45J7naEtQReECcFvnqGQnIx6rbSFMXNIswsCR4X3gCzSVFjfh69wLWqjqIWdUw/RNEQEo/zZ0bhzKT2mVnD8sz0LZkHdQ9MWnkrMaB3Wp0iKffglbhZrUjutGYIhmO5WSzp0KNg4h0mAmsPmJCz21s8M6w2yQcmKSgVoCjBVVvGxWAzRjdBFfX7CXoAfNr9rFttdjLJ2G6WOTxqDdpkjCXqsXSEE9mc/6FMqUpghxBb2Q== 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=klHmUl3uthbNNhSCbm/DBfMHRv8EA+rvV6d7tLMUzXM=; b=m3kMLgbSssmXO9+a9uF+9Lt2b9UTQr62bFzqTzTnjPHZLF0A4j5bDnVjT0ioIY8C1BecyxWFcTOrORCyUDynhgcwkPfbh6/rgFBj+AjfQ3P3SkYdp4ClK0fUSCG3n/IK806ziQUeLWIO/uXuVJAHdYqHITZ6fyJ0Tz8QW8CMh4iUin+UJmRQV4JLFXivPP+wTU0MtpV2oQSZv6U+37P5sSIiMG/Mh+1Nb00O7N4p6FCzu7Wq2n6GUQ3UN7QN0dyBAlYLr/8S1rCS8qVZcSqGGYMLJS5LgsbS+O7b1M7RWy4jNZQjjZfSdTXdnxS4/uQYqXIwk4wDSBHp+mF576Hsvw== 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=klHmUl3uthbNNhSCbm/DBfMHRv8EA+rvV6d7tLMUzXM=; b=LekahKvPRy4/aoBbOmL1Sjx9ZvUAosHQMuDekBK0hTXq+W7ERv56kF/YDRwd2+AfLaVtFV6rnMC7271kJHVREl50tVrV6tX5wA4rP2GqpJoF/gr2z9L5SGcU23TblPjiG+aIYxiO75CId/iSjsIXPs4f4qZtBH4bAj4k6BIiswntLsIReQCa4KTqnyMVXdf2TbuKXfZ1RiMVJiz/Ad3Z9Sucj1akFrvjMy37/TohWKNCslMWkjJwfCAI0GML3Vl3G2d3nwfBveUT7zNB8Xy9h/NzGgJLX3fQyJM3wL0d49GUb6l9ZDS520IM2ngkiB0ETDHqoAq6bORMYaLzyHuqIQ== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB5250.eurprd03.prod.outlook.com (2603:10a6:20b:c6::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.22; Mon, 23 Aug 2021 13:17:08 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::5574:1fd:cce2:d590]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::5574:1fd:cce2:d590%5]) with mapi id 15.20.4436.024; Mon, 23 Aug 2021 13:17:07 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 23 Aug 2021 15:16:51 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [098F0SGKY2yyx9/tZbmG18nvX6MbGQYC] X-ClientProxiedBy: AM4PR0202CA0012.eurprd02.prod.outlook.com (2603:10a6:200:89::22) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210823131654.1837818-4-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by AM4PR0202CA0012.eurprd02.prod.outlook.com (2603:10a6:200:89::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19 via Frontend Transport; Mon, 23 Aug 2021 13:17:07 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 25ddb35a-57f0-4079-433c-08d966384e9a X-MS-Exchange-SLBlob-MailProps: +LiGfBxqLEvNFDtLbmZwhej2xrhETB7vZ38iXdjdHrKBSe8RTwSWdT/OBu2cbN+qhOo28vEwZdWlI4uDxiYEdLFXk6+uGqDC5l3tIh93VymR/pWhW+sdZ/tt7voDtXnN4SwUKNTbs/y9XjgCS0s15cKFHbUyzM//wxesjCDo4FzXUMLpu+q8ooTW+yGMmlqz90CeKXyknlRvto8EoqUgqpywtRseXQY8/OZXcbEjaJJHHdrlQq9GEXuK9q7PpDBtjtR5/6oFa0wvGxoD7fcaKksMFqdFVP1PsnpRUAqYhwL4mpFLj6CKBzuUMy3QAOUE67wvQ/DvmaR7PpSrlgtxt760DH5B2Ie5mzoTLYV/72y/PhUwxI+FFnTL+LSfvuDDP4DraUeX8bh8Ziten+mH0w9VPUuBPde5u9XvC+xp+OaKDe0yCvNap8JhWmuRCOUwwXg+bIkQiQlYDmLi/zqE3gy1QUCp67VTRRuaspxqDuVit45ma3wX6amB4+gOcJT9NK6p1/AnC+UUIb3LgYhWxSDUoVHDK8OM3yl1/YzdmnSyP7KFqWyf/AfZ2sZAzQiePHT0zbuXTUfMSE6Ly2XGDx61l0V013ep9wlyjtadORy0BPUdeP/lv1+N9Yi26eQ2IJGcS+y9qxGSjD4b9cfnTZaHsT7ERPcM7YMjXR8ayEMlEg2u5c3oebJlsHb3H8/l8t/D+eHsYVePeNZRldE52/F6s/mULE0y0fOzMcb4LO6+SV/IYCMLgQMOr2eSpznmDeYRVlc2aziWSOlNfbZdSMttF3lZyaUK X-MS-TrafficTypeDiagnostic: AM6PR03MB5250: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: D7YCsclPGjOyQ/iQt8gPESyDL0TVN8sHbuOuv/mLcjwCl8O7Kxqez6tRDTIw6gGHITrAJKajiig4l04mEPt8sWwHM59grVwvcA4vd0L6qHO3G6tnUwNHeBYogKMAQxdKQY4oEMMQd8bR8ldgu2F8zBm+MJe1pEJZHN5bqzWil46mimjSH3cEI/GhwgB1G7HW0n7VXOsfuVWTYuqo163YEe7wB8yM8hQdtmCsITJoh8ifIbmn3r8PD9LbBdF/GMOkQJIE5umdnlvlFrHPgKJdab2z2X+E7DKSE+TV93tbCKoiFZ6SOkmBkZ2mV3zF31pw4BmdeXVINruOsY9m6r976oOhLRTqJZfFmaPluPT5pcijYQfgDaWPPWG0e/MHBiMLcVCJ69vdE8w/Is5aIIM1SL9cjGh/XooEEQTGdqS9+DZ/kDj+Fw0/76pKt0MzpJYL X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: dYcJJkoK5uIHQlzj01RBJ+FG6z2g0l+On/3I0EYx64Dh9SxkrS0x1C1MuWAJQCLd0sb5kTr/LMCB9CuwDyV3rpLhswg6aYzcHNAyCbtVQbCbLsYxs8pxa2g3EN+BvoP08RWERKUcabD0PBgbir3W9A== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 25ddb35a-57f0-4079-433c-08d966384e9a X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Aug 2021 13:17:07.4451 (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: AM6PR03MB5250 Subject: [FFmpeg-devel] [PATCH 5/8] avformat/oggparsevorbis: Avoid tmp bufs when parsing VorbisComment 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: zOH3MTZAaVpJ A single VorbisComment consists of a length field and a non-NUL-terminated string of the form "key=value". Up until now, when parsing such a VorbisComment, zero-terminated duplicates of key and value would be created. This is wasteful if these duplicates are freed shortly afterwards, as happens in particular in case of attached pictures: In this case value is base64 encoded and only needed to decode the actual data. Therefore this commit changes this: The buffer is temporarily modified so that both key and value are zero-terminated. Then the data is used in-place and restored to its original state afterwards. This requires that the buffer has at least one byte of padding. All buffers currently have AV_INPUT_BUFFER_PADDING_SIZE bytes padding, so this is ok. Finally, this also fixes weird behaviour from ogm_chapter(): It sometimes freed given to it, leaving the caller with dangling pointers. Signed-off-by: Andreas Rheinhardt --- libavformat/oggdec.h | 16 +++++++++++ libavformat/oggparsevorbis.c | 56 +++++++++++++++--------------------- 2 files changed, 39 insertions(+), 33 deletions(-) diff --git a/libavformat/oggdec.h b/libavformat/oggdec.h index 4cce53de41..1d28e50aa8 100644 --- a/libavformat/oggdec.h +++ b/libavformat/oggdec.h @@ -130,9 +130,25 @@ extern const struct ogg_codec ff_theora_codec; extern const struct ogg_codec ff_vorbis_codec; extern const struct ogg_codec ff_vp8_codec; +/** + * Parse Vorbis comments + * + * @note The buffer will be temporarily modifed by this function, + * so it needs to be writable. Furthermore it must be padded + * by a single byte (not counted in size). + * All changes will have been reverted upon return. + */ int ff_vorbis_comment(AVFormatContext *ms, AVDictionary **m, const uint8_t *buf, int size, int parse_picture); +/** + * Parse Vorbis comments and add metadata to an AVStream + * + * @note The buffer will be temporarily modifed by this function, + * so it needs to be writable. Furthermore it must be padded + * by a single byte (not counted in size). + * All changes will have been reverted upon return. + */ int ff_vorbis_stream_comment(AVFormatContext *as, AVStream *st, const uint8_t *buf, int size); diff --git a/libavformat/oggparsevorbis.c b/libavformat/oggparsevorbis.c index 69c15c3dce..463fb61672 100644 --- a/libavformat/oggparsevorbis.c +++ b/libavformat/oggparsevorbis.c @@ -39,7 +39,7 @@ #include "vorbiscomment.h" #include "replaygain.h" -static int ogm_chapter(AVFormatContext *as, uint8_t *key, uint8_t *val) +static int ogm_chapter(AVFormatContext *as, const uint8_t *key, const uint8_t *val) { int i, cnum, h, m, s, ms, keylen = strlen(key); AVChapter *chapter = NULL; @@ -54,7 +54,6 @@ static int ogm_chapter(AVFormatContext *as, uint8_t *key, uint8_t *val) avpriv_new_chapter(as, cnum, (AVRational) { 1, 1000 }, ms + 1000 * (s + 60 * (m + 60 * h)), AV_NOPTS_VALUE, NULL); - av_free(val); } else if (!av_strcasecmp(key + keylen - 4, "NAME")) { for (i = 0; i < as->nb_chapters; i++) if (as->chapters[i]->id == cnum) { @@ -64,11 +63,10 @@ static int ogm_chapter(AVFormatContext *as, uint8_t *key, uint8_t *val) if (!chapter) return 0; - av_dict_set(&chapter->metadata, "title", val, AV_DICT_DONT_STRDUP_VAL); + av_dict_set(&chapter->metadata, "title", val, 0); } else return 0; - av_free(key); return 1; } @@ -84,13 +82,18 @@ int ff_vorbis_stream_comment(AVFormatContext *as, AVStream *st, return updates; } +/** + * This function temporarily modifies the (const qualified) input buffer + * and reverts its changes before return. The input buffer needs to have + * at least one byte of padding. + */ static int vorbis_parse_single_comment(AVFormatContext *as, AVDictionary **m, const uint8_t *buf, uint32_t size, int *updates, int parse_picture) { - const char *t = buf, *v = memchr(t, '=', size); - char *tt, *ct; + char *t = (char*)buf, *v = memchr(t, '=', size); int tl, vl; + char backup; if (!v) return 0; @@ -102,19 +105,10 @@ static int vorbis_parse_single_comment(AVFormatContext *as, AVDictionary **m, if (!tl || !vl) return 0; - tt = av_malloc(tl + 1); - ct = av_malloc(vl + 1); - if (!tt || !ct) { - av_freep(&tt); - av_freep(&ct); - return AVERROR(ENOMEM); - } - - memcpy(tt, t, tl); - tt[tl] = 0; + t[tl] = 0; - memcpy(ct, v, vl); - ct[vl] = 0; + backup = v[vl]; + v[vl] = 0; /* The format in which the pictures are stored is the FLAC format. * Xiph says: "The binary FLAC picture structure is base64 encoded @@ -122,35 +116,31 @@ static int vorbis_parse_single_comment(AVFormatContext *as, AVDictionary **m, * 'METADATA_BLOCK_PICTURE'. This is the preferred and * recommended way of embedding cover art within VorbisComments." */ - if (!av_strcasecmp(tt, "METADATA_BLOCK_PICTURE") && parse_picture) { + if (!av_strcasecmp(t, "METADATA_BLOCK_PICTURE") && parse_picture) { int ret, len = AV_BASE64_DECODE_SIZE(vl); uint8_t *pict = av_malloc(len); if (!pict) { av_log(as, AV_LOG_WARNING, "out-of-memory error. Skipping cover art block.\n"); - av_freep(&tt); - av_freep(&ct); - return 0; + goto end; } - ret = av_base64_decode(pict, ct, len); - av_freep(&tt); - av_freep(&ct); + ret = av_base64_decode(pict, v, len); if (ret > 0) ret = ff_flac_parse_picture(as, pict, ret, 0); av_freep(&pict); if (ret < 0) { av_log(as, AV_LOG_WARNING, "Failed to parse cover art block.\n"); - return 0; + goto end; } - } else if (!ogm_chapter(as, tt, ct)) { + } else if (!ogm_chapter(as, t, v)) { (*updates)++; - if (av_dict_get(*m, tt, NULL, 0)) { - av_dict_set(m, tt, ";", AV_DICT_APPEND); - } - av_dict_set(m, tt, ct, - AV_DICT_DONT_STRDUP_KEY | AV_DICT_DONT_STRDUP_VAL | - AV_DICT_APPEND); + if (av_dict_get(*m, t, NULL, 0)) + av_dict_set(m, t, ";", AV_DICT_APPEND); + av_dict_set(m, t, v, AV_DICT_APPEND); } +end: + t[tl] = '='; + v[vl] = backup; return 0; } From patchwork Mon Aug 23 13:16:52 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29736 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp2072316iov; Mon, 23 Aug 2021 06:18:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwzudhB6s9s6+ohSo7aJBbA28wo3GXAt8OU44B1E8YXSUuPAM2Ns6UYjmlCZVlYrW7A+Oby X-Received: by 2002:aa7:d319:: with SMTP id p25mr37670385edq.197.1629724684287; Mon, 23 Aug 2021 06:18:04 -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 hr6si16144912ejc.711.2021.08.23.06.18.03; Mon, 23 Aug 2021 06:18:04 -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=aKsmlx1U; 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 8920268A581; Mon, 23 Aug 2021 16:17:25 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (unknown [40.92.73.63]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 82E6568A4FE for ; Mon, 23 Aug 2021 16:17:18 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gkilZYCk8xt4hOKpVdvBCJ34QEWnplC86jiDiAUi8xSXiFzyNRILOKmL1Zvo5SFwyAGFcuFoBO0Hr/hSPn9ZEjEzo8/LZ1vj3bdMdG+DD3JaqClgFajNwqY5xMcha/PdPpq1urjEkBdRbnCCQQW14OWJfguwrInfGx61GnTkhovN5r2gKjBbk4lIL/x7JVA0oXq/u0IadXyw/wgUT44F3kLq5gsgeTBcXCuSLMrJHOAPq4Qbd83gOJlewBxcWaPIYJj/X55m+tFXXXFlns/0rL+CRIi60XJcNZm6NQjryb9rqsGV80F7BSVtDegqgEHB1z/sEm3ghJYZCM/L+092mQ== 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=RCsrEr2ro/PfrtlyzM/lFnC4lp9eG++lmUN4zB/aYt0=; b=fn+EZueg0V/XYEt0LDRC7TxUZFs7aqvry5Pg1S/l0YIBS1hC8jGAzNrw/q3oFuGYJ2EYOOVZm7dnXWkmeOsPzq21F2ZhsL4anx+hdFPLzK1s1yb4zaXOMzNMRPwFWYVLzFWeuvVh/NGIVLZaX9yD1BVQn2/sKXYrVBqeX/Gktoj9h3Yg+yxT/Yz8Ojdlcz91xHPg99i+Lpw59tBWieCpxyq6kf3x/E5Npc/MG53d3DLjPna7lw/zhLHYNH09ofH7IapYUbFL6Uf8Bb9P/rjFzFY1o9ErFbFSw1XQ2s5AiSyHaUP05H32mLQJGRoBSpPIFM4tLUNcK3sJ1Uht2k0ITw== 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=RCsrEr2ro/PfrtlyzM/lFnC4lp9eG++lmUN4zB/aYt0=; b=aKsmlx1U5qH9gVgvNAro8skmSjVclVx17tDbL0rWrUP57WZGHKq8ldfE5okQxmNixHypyJDCaTrKqll8XW2QKhHL1bSh5dor5lv3NH1X3H3S4bNhALEwZoAVWx+sVdXdMR6t3tiWvDCz6J4Gj72rzwR54S3hIUiTehKpZq4ey7rQqdq447/xwKDaKLKSeLc1H/V0YKkZt5oEzsuGgw+OKJhMCz2Q+Icg7g2qv0yCeiciKIPFfTRMYBOUdvdB7prwHpwkXv7tzYLr7KMAYDToNDB9siP/rx1JfqIgufHZhh4HvGVdD99meKvOxP7L1+KoopfIvpG8C0MLRJAENCKo7g== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB5250.eurprd03.prod.outlook.com (2603:10a6:20b:c6::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.22; Mon, 23 Aug 2021 13:17:09 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::5574:1fd:cce2:d590]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::5574:1fd:cce2:d590%5]) with mapi id 15.20.4436.024; Mon, 23 Aug 2021 13:17:09 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 23 Aug 2021 15:16:52 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [xhFDsUU4VxPeYpgo91UrIaclMXL35e2d] X-ClientProxiedBy: AM4PR0202CA0012.eurprd02.prod.outlook.com (2603:10a6:200:89::22) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210823131654.1837818-5-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by AM4PR0202CA0012.eurprd02.prod.outlook.com (2603:10a6:200:89::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19 via Frontend Transport; Mon, 23 Aug 2021 13:17:07 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b0d9963d-e6d3-4f06-2829-08d966384f1c X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNV5xbDn+Qw+qkBWqS1ZoOmTGRzj25nc2cBs3kbzb1OZED0QBu1sNg6130Xv7nbQizCViViK6L2dQcjtFw6uslyCYLsZ3pyoKyqXUo1joNtmGyka5RCMGa9B1HuWrA6KErZ7rYMGR6FOy+QRmXGiv6J+XkDvgDruFvyQbdy+X/rdeOWuQWbvFz/ynvh1o0yCl1pAI7aOA6xuqvx3679JN/SkOjLM9le6CL1LwzsF6/R76vDS8LN2X//Vp6an6ROkaU5pcXkRX7QCn1qVWBjBgxBH7k1O0EwzgcLHg1jVBKg3bw36hyGTfVsMs4/qURMVaRoAaYRpatprH5CZeuuHHQus1TTeijXH7h65p6JNtuo/T1560k4RYnZG68k+5yoEMIDplSJdriGfkCq7+SLQsub7gIVb4o7eEs7F8T3bMsODgIof9edgYpaZYc1tSum9kytCo35WtoKAMf+5KOb9uDJgmAh/E/E84UBXz05IJ/iTnWZ9bpcqI4iiPkMcpv4qPxMe9gvQ10cVg1a+7AaRZVDlsacjayWWC4qu2rRF8faBAoqxA58QFyo2M7PFrlz/07+GJDEFbB+adc2jQNE+L+nXeQ7KlyObCUsZN8n1oqkPr3JC0XUoqKXX4ES3faTaSkYH9454mUhOU+Y0Ydt3HLKczkowRJmcBN0Zafk/ovXOubneWOhVDeImHja/lRpz+SNW4X9PvHzAObYxqFMtTeer0PUPCFkPrV4= X-MS-TrafficTypeDiagnostic: AM6PR03MB5250: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GDcBmJR/tXlT1OR9p4EjXAVbhclmISTbvZT29O2mvaIuo+SYHxBtGRllKyPulxBFQBXHCXSNtwa+I7wGG+oUrjfVjpl/nrKcCdDX7qMBLsZK508KYtUhsxQXmOYPA4s7Bqi6bdht2G0qZOduul3W8pR5qLkoXhAnzlU5b1Qb2s1nq/kd3HiUNn3gxT+EGr22OkzlEUHyrtcfGA1Po7BbwoiZFIiPrAJoEKfEc38KuRH1XV/nCG4Ov7SiwB/AqzfZnaQRMCmVRSJn5QJ1qCtGK8YNV+bcph6ZPh+jGKDldXVopcseDzn7NqgAl3TBxOqpCHs0R/PyXkacOXwGgKDNP985Zf/TqRXmfBo2+F/lRotL/KdNER22ozkIqurQXnCxt+FFkhsvb+Vpa0AmbYOAYA4pKmAEF+eM8mqV03WAKkAmR9unWbWYU92+iA0QhjJI X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 0/WhHhoBLboaqcMniZ0Zapv+zmZahZxOeAPqWjmLPWsYJRfDDruLGh9+oengfRH231M4TbMVPUyNxy9avT82gBK8Zo1fX43Bpnpv+ttev9Ih90WysWYy1BXOEB9WRZwTu/vIwgB6/EL/QhK/HPSS8g== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b0d9963d-e6d3-4f06-2829-08d966384f1c X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Aug 2021 13:17:08.3761 (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: AM6PR03MB5250 Subject: [FFmpeg-devel] [PATCH 6/8] avformat/flac_picture: Try to reuse buffer for attached picture 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: lMbObj3qBHFR Signed-off-by: Andreas Rheinhardt --- libavformat/flac_picture.c | 15 +++++++++++++-- libavformat/flac_picture.h | 14 +++++++++++++- libavformat/flacdec.c | 2 +- libavformat/oggparsevorbis.c | 4 ++-- 4 files changed, 29 insertions(+), 6 deletions(-) diff --git a/libavformat/flac_picture.c b/libavformat/flac_picture.c index 96e14f76c9..e7660a7db1 100644 --- a/libavformat/flac_picture.c +++ b/libavformat/flac_picture.c @@ -29,12 +29,13 @@ #define MAX_TRUNC_PICTURE_SIZE (500 * 1024 * 1024) -int ff_flac_parse_picture(AVFormatContext *s, uint8_t *buf, int buf_size, int truncate_workaround) +int ff_flac_parse_picture(AVFormatContext *s, uint8_t **bufp, int buf_size, + int truncate_workaround) { const CodecMime *mime = ff_id3v2_mime_tags; enum AVCodecID id = AV_CODEC_ID_NONE; AVBufferRef *data = NULL; - uint8_t mimetype[64], *desc = NULL; + uint8_t mimetype[64], *desc = NULL, *buf = *bufp; GetByteContext g; AVStream *st; int width, height, ret = 0; @@ -142,6 +143,15 @@ int ff_flac_parse_picture(AVFormatContext *s, uint8_t *buf, int buf_size, int tr goto fail; } } + if (trunclen == 0 && len >= buf_size - (buf_size >> 4)) { + data = av_buffer_create(buf, buf_size + AV_INPUT_BUFFER_PADDING_SIZE, + av_buffer_default_free, NULL, 0); + if (!data) + RETURN_ERROR(AVERROR(ENOMEM)); + *bufp = NULL; + data->data += bytestream2_tell(&g); + data->size = len + AV_INPUT_BUFFER_PADDING_SIZE; + } else { if (!(data = av_buffer_alloc(len + AV_INPUT_BUFFER_PADDING_SIZE))) { RETURN_ERROR(AVERROR(ENOMEM)); } @@ -155,6 +165,7 @@ int ff_flac_parse_picture(AVFormatContext *s, uint8_t *buf, int buf_size, int tr if (avio_read(s->pb, data->data + len - trunclen, trunclen) < trunclen) RETURN_ERROR(AVERROR_INVALIDDATA); } + } memset(data->data + len, 0, AV_INPUT_BUFFER_PADDING_SIZE); if (AV_RB64(data->data) == PNGSIG) diff --git a/libavformat/flac_picture.h b/libavformat/flac_picture.h index 61fd0c8806..db074e531d 100644 --- a/libavformat/flac_picture.h +++ b/libavformat/flac_picture.h @@ -26,6 +26,18 @@ #define RETURN_ERROR(code) do { ret = (code); goto fail; } while (0) -int ff_flac_parse_picture(AVFormatContext *s, uint8_t *buf, int buf_size, int truncate_workaround); +/** + * Parse a FLAC METADATA_BLOCK_PICTURE + * + * @param s AVFormatContext for logging and the attached picture stream. + * @param buf `*buf` points to the actual data which must be padded by + * AV_INPUT_BUFFER_PADDING_SIZE bytes not counted in buf_size. + * This function may take ownership of `*buf` and reset it. + * @param buf_size size of `*buf` (excluding padding) + * @param truncate_workaround If set, additional data may be read from s->pb if + * truncation has been detected. + */ +int ff_flac_parse_picture(AVFormatContext *s, uint8_t **buf, int buf_size, + int truncate_workaround); #endif /* AVFORMAT_FLAC_PICTURE_H */ diff --git a/libavformat/flacdec.c b/libavformat/flacdec.c index bfa464c508..2060b48c69 100644 --- a/libavformat/flacdec.c +++ b/libavformat/flacdec.c @@ -145,7 +145,7 @@ static int flac_read_header(AVFormatContext *s) } av_freep(&buffer); } else if (metadata_type == FLAC_METADATA_TYPE_PICTURE) { - ret = ff_flac_parse_picture(s, buffer, metadata_size, 1); + ret = ff_flac_parse_picture(s, &buffer, metadata_size, 1); av_freep(&buffer); if (ret < 0) { av_log(s, AV_LOG_ERROR, "Error parsing attached picture.\n"); diff --git a/libavformat/oggparsevorbis.c b/libavformat/oggparsevorbis.c index 463fb61672..74d387f437 100644 --- a/libavformat/oggparsevorbis.c +++ b/libavformat/oggparsevorbis.c @@ -117,7 +117,7 @@ static int vorbis_parse_single_comment(AVFormatContext *as, AVDictionary **m, * recommended way of embedding cover art within VorbisComments." */ if (!av_strcasecmp(t, "METADATA_BLOCK_PICTURE") && parse_picture) { - int ret, len = AV_BASE64_DECODE_SIZE(vl); + int ret, len = AV_BASE64_DECODE_SIZE(vl) + AV_INPUT_BUFFER_PADDING_SIZE; uint8_t *pict = av_malloc(len); if (!pict) { @@ -126,7 +126,7 @@ static int vorbis_parse_single_comment(AVFormatContext *as, AVDictionary **m, } ret = av_base64_decode(pict, v, len); if (ret > 0) - ret = ff_flac_parse_picture(as, pict, ret, 0); + ret = ff_flac_parse_picture(as, &pict, ret, 0); av_freep(&pict); if (ret < 0) { av_log(as, AV_LOG_WARNING, "Failed to parse cover art block.\n"); From patchwork Mon Aug 23 13:16:53 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29735 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp2072727iov; Mon, 23 Aug 2021 06:18:34 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyR7P8LYiUR0SbLAwghdhmuV4oVltdPeJQ1++ssuUdyy6Xv0W0k+nK6Nyjc4fnWghDxxQfd X-Received: by 2002:aa7:db95:: with SMTP id u21mr36531765edt.152.1629724713948; Mon, 23 Aug 2021 06:18:33 -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 v3si14883019eji.473.2021.08.23.06.18.25; Mon, 23 Aug 2021 06:18:33 -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=spTm6PtC; 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 73AAC68A590; Mon, 23 Aug 2021 16:17:27 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (unknown [40.92.73.91]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E2B5668A4DF for ; Mon, 23 Aug 2021 16:17:19 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nP544zsKRItdXPg6x1s0SMuWoPUSRFGIia+QpCsoUkFortWvoBuCcYA9ExST1qtDMoPE54OIzCwXKiq9BeA/VeFBdPr+0K0rdK3rMVIZbZPAltRVG97dI9dmwSiPc8i6N2LogH9RjGaTCXcZ4qcy5dR8Lh+m72R2ASgZ7a/YO8KyAhtsWiTifSFi8Dr+zsGWs2QMr0ex33lXurArPTxX+zZhg/jstDKfrjHxhAiWPbwiujtS6jSXuY0muCBbMcOgURpO4tbxiQ6jJ+31eMJWOt0nsSgW2gZEvYiDPZnOPmLKwPSZiOIlk960LFZCJFByMRumWFQiZBjZH4ZMOHZmrg== 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=pCsgvCPEtCtvvJWr40JCf2eZqqIh/2NTD724iBVWdGQ=; b=mEry/u0PQlQKEzUcPIFFI6dnnVriU1ZBJwnA6Btr9Y+qwU7QG4/UviEyvHE03fyXfRFpfh6ftQpvgiSqgMzbqx35xMDwYa0DzOBv4re4R1hVCv3YPJAV2ux/q9s3FwoXwxTgZRJdaFOGlT41UCMj06oNVZmLAZ3AyHGNCeW0F+XL7ppm2VvM572EzDx/hd4IG8AYc0uK1PVPJD+o9+dAO4jx1iI0nyR8+3zOshs3tdFAbrLf7SkCge2l0s0BrgAR+0fkTf2KmwlRpOT3AqSp0aMwDkb+qjrRivdYX+BahvFdkErTDLrAqV4ANKoX2Ro8+YVe4PblFb2sHFx+Lv0gWw== 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=pCsgvCPEtCtvvJWr40JCf2eZqqIh/2NTD724iBVWdGQ=; b=spTm6PtCHtb9s20GV3v2BhQN96Mjv6u+rGqXGOQBx+J2TiREFMFZK0OgT2x+K3YmiSiBkfIJcIHho7b/Qnmh2E4xD0Rqk/yt39nxJemJLSNjeOxS9zaxKRXtPncE5i0BidufZR3ulv72JfykKGE0jMl3/YGTgBdPLIDIq2WQHFv0lLc0DpLpHsIF2TPCI3TuBDu8j3cpJObdfO38qg4+u8Uz40YofY0NY43ugZqWcBDriWsRZ2/KyLWuyBPTNx9+hW2rQdIw3OeFcil1tV0/B4OzFr+Ow9FJjlIPuAdNI2QwTjxq0Wj5t44Io5bLeDISETRzD3j3bYCDoJz6heNx+g== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB5250.eurprd03.prod.outlook.com (2603:10a6:20b:c6::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.22; Mon, 23 Aug 2021 13:17:09 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::5574:1fd:cce2:d590]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::5574:1fd:cce2:d590%5]) with mapi id 15.20.4436.024; Mon, 23 Aug 2021 13:17:09 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 23 Aug 2021 15:16:53 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [vj9bjm9HoWqiHnj1PhHnYsbvy3xwFH3q] X-ClientProxiedBy: AM4PR0202CA0012.eurprd02.prod.outlook.com (2603:10a6:200:89::22) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210823131654.1837818-6-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by AM4PR0202CA0012.eurprd02.prod.outlook.com (2603:10a6:200:89::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19 via Frontend Transport; Mon, 23 Aug 2021 13:17:09 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fc336c8d-4f55-4a3d-cda0-08d966384fbd X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiS/C4aPjcJNMjwSEMtUFABSWRfmsry7WbfUgb8J8Bpppa9VAQIUkDYUfj/xI25wtMRZk6ySQDZL5qB0i3Yrz0AgY2ynaFPWPHQPqsVNfCH+nkYlKksye+OUUidsOgFeRaqGEbYqVAv0SPhNdjQOVTbQ04LaFb/VJtev0Tv7PNmU1NkWemKn3L3nYBQe+SgEtwDHfSEAYfJbaD5MDl0RhXVZGwOlZT43qnNtZp+5qdaA5tZoWP91gfEIQJFNUqmeGQ0P/Pcpm1uaaEgWIcJRyzLh7klyjRKi1mbcXFxZ7jTGuuiRkf+6EMHLRzUnR1//1Ni1wGjb20x5XgNeJ2sUzfF+ySJxSgwubhYN3oeEHYrd6BEcuYCb6B0oPmAjVqyed/oL9+tamnDCKb6M0e/x4KTEPhib/A8/HipAmgjEXJtUiLY7jpiOlFtmNBF4STPi28QduMv6HiZHObUKhPRhs1FJJME2VTkSDmesQhY8EILVyaeIqCgRhHXTasrveEE62oRAOHnnMXV3f8Hs+18LAPlrxL9HgeIg1lxp7p816muyyIuaHmdHwZf+DC6yGYlrmLBuuCoQP9MTrO1VhPkDdS/kLJnTVLgkv/zUbU24bXvbR9nrvEzWKVySp1Zylp6Xdob3l7nK7UQwKuV1kIJsN3XUxCcyHGCVC9psJR+KvhRCrcFhzgfuRY7xnsY5mTWrM9LVU/68KbMitsRVXNUARVDRYyWh+efRG5N3nYA4A+6/VLe8WHjbnjRuiNmsHebYM30= X-MS-TrafficTypeDiagnostic: AM6PR03MB5250: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: CmeE2arh71D3x+xHbfJV54fSU0t4VITW+PfrIXikmPYdaUJ2v4nney++GjzMq0JSqisHXmU6gT26nJOybopna5VLGCvnyWNU1QicvD5CS5Q+zdF7ze161S97RLO7Juz0t0Xj0ynB3sxvpGiOO4j14naz4rkqEKlGYe9WrzM5vMVBdalLrbrDIZ+SFqhKF+bmIkt6J5qjiihLvTng88eT+odwsOlWpsH7nB2786+rK168vv5JjYzyTQ4+00risA3q+ljREdA5LlTfy4AqWVzgzZT1HQYUDBDlkm2mnuYGJ2CkTYUIHXIgXaNpy3klrPM/UzFZ3D33UcC62UTkB2f+wfk7evtX4eXPcH6X6ESFgxbFzo2Nl8i/OqHCGYAoBUk9D5cuzOJz/aF62do+M/qDLqw/GiKvfBERzb23fPjbSL+Tm+XhDuE9tix5QbhepE9R X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: zyXAd4OTl+n6lwjTiGAQtAyJlGV2N8WzY8eqwXYsegEXruPNAG118RF2u2/kdgmyB91xMR/pnMBBjdjDsfSRH1AqQZK+1l8YYVNNLvx28bhQasZLMTmqLIDmhdtSDcaOjC2vKbKgKCB+eD5WNEXG7Q== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: fc336c8d-4f55-4a3d-cda0-08d966384fbd X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Aug 2021 13:17:09.3747 (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: AM6PR03MB5250 Subject: [FFmpeg-devel] [PATCH 7/8] avformat/flac_picture: Simplify parsing title 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: bkYzaI05J5jE Don't allocate the buffer for the title ourselves, leave it to av_dict_set(). This simplifies freeing. Signed-off-by: Andreas Rheinhardt --- libavformat/flac_picture.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/libavformat/flac_picture.c b/libavformat/flac_picture.c index e7660a7db1..3b69654ff6 100644 --- a/libavformat/flac_picture.c +++ b/libavformat/flac_picture.c @@ -35,7 +35,8 @@ int ff_flac_parse_picture(AVFormatContext *s, uint8_t **bufp, int buf_size, const CodecMime *mime = ff_id3v2_mime_tags; enum AVCodecID id = AV_CODEC_ID_NONE; AVBufferRef *data = NULL; - uint8_t mimetype[64], *desc = NULL, *buf = *bufp; + uint8_t mimetype[64], *buf = *bufp; + const uint8_t *desc = NULL; GetByteContext g; AVStream *st; int width, height, ret = 0; @@ -103,16 +104,13 @@ int ff_flac_parse_picture(AVFormatContext *s, uint8_t **bufp, int buf_size, return 0; } if (len > 0) { - if (!(desc = av_malloc(len + 1))) { - return AVERROR(ENOMEM); - } - - bytestream2_get_bufferu(&g, desc, len); - desc[len] = 0; + desc = g.buffer; + bytestream2_skipu(&g, len); } /* picture metadata */ width = bytestream2_get_be32u(&g); + ((uint8_t*)g.buffer)[-4] = '\0'; // NUL-terminate desc. height = bytestream2_get_be32u(&g); bytestream2_skipu(&g, 8); @@ -124,8 +122,8 @@ int ff_flac_parse_picture(AVFormatContext *s, uint8_t **bufp, int buf_size, if (len > MAX_TRUNC_PICTURE_SIZE || len >= INT_MAX - AV_INPUT_BUFFER_PADDING_SIZE) { av_log(s, AV_LOG_ERROR, "Attached picture metadata block too big %u\n", len); if (s->error_recognition & AV_EF_EXPLODE) - ret = AVERROR_INVALIDDATA; - goto fail; + return AVERROR_INVALIDDATA; + return 0; } // Workaround bug for flac muxers that writs truncated metadata picture block size if @@ -139,21 +137,21 @@ int ff_flac_parse_picture(AVFormatContext *s, uint8_t **bufp, int buf_size, } else { av_log(s, AV_LOG_ERROR, "Attached picture metadata block too short\n"); if (s->error_recognition & AV_EF_EXPLODE) - ret = AVERROR_INVALIDDATA; - goto fail; + return AVERROR_INVALIDDATA; + return 0; } } if (trunclen == 0 && len >= buf_size - (buf_size >> 4)) { data = av_buffer_create(buf, buf_size + AV_INPUT_BUFFER_PADDING_SIZE, av_buffer_default_free, NULL, 0); if (!data) - RETURN_ERROR(AVERROR(ENOMEM)); + return AVERROR(ENOMEM); *bufp = NULL; data->data += bytestream2_tell(&g); data->size = len + AV_INPUT_BUFFER_PADDING_SIZE; } else { if (!(data = av_buffer_alloc(len + AV_INPUT_BUFFER_PADDING_SIZE))) { - RETURN_ERROR(AVERROR(ENOMEM)); + return AVERROR(ENOMEM); } if (trunclen == 0) { @@ -181,13 +179,12 @@ int ff_flac_parse_picture(AVFormatContext *s, uint8_t **bufp, int buf_size, st->codecpar->height = height; av_dict_set(&st->metadata, "comment", ff_id3v2_picture_types[type], 0); if (desc) - av_dict_set(&st->metadata, "title", desc, AV_DICT_DONT_STRDUP_VAL); + av_dict_set(&st->metadata, "title", desc, 0); return 0; fail: av_buffer_unref(&data); - av_freep(&desc); return ret; } From patchwork Mon Aug 23 13:16:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29739 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp2072601iov; Mon, 23 Aug 2021 06:18:24 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwazGMDndTEtHvgAmu9JlhbrQSEgKAC89yfmtNK/SvTmPS+usf2jyFIdrBl+YZsQ5uMCI5A X-Received: by 2002:a17:906:f298:: with SMTP id gu24mr35898495ejb.334.1629724704511; Mon, 23 Aug 2021 06:18:24 -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 ne29si911312ejc.233.2021.08.23.06.18.14; Mon, 23 Aug 2021 06:18:24 -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=nICmeROD; 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 7CB7768A591; Mon, 23 Aug 2021 16:17:26 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (unknown [40.92.73.63]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CF58668A4FE for ; Mon, 23 Aug 2021 16:17:23 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SHTZZc3x2KECWYRhk+SCgKcaJWIXhzdx6zO9MAmxE4rhnmCufXed+845NvG9zTWpHCAz0IzyEeQj3H4fJrxFXbipReAdGNpAok276XSJZEtrzenfcEyBjh3RxZTTevUWrYmlvvPhjH17/XNV3iFGrqvO93Hoeueef4mtEnGoWciMAyjVMrE8VldwSQc3p4AR8o3QoCzdM8vnvpQ6Z5OjITANJMbuRO+jT5PqNpAKD3Z7l+8V/3nZm8sqNMh9zf5hvgrDYohdVuvhPq9MEqsaP+N5GictlsFAZiIJifXJT2WFG4cXNNCEgQ15QXqU105BMPEyPEWF9+90fV3eazwF9g== 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=N/Vp9ml+E3Q06M1EptPJMAG8X+3+Zi0c5qbYcWZXc4Q=; b=KXdeQHJ2ZDmIRlfD0gH1J6DCZ2jbJHJgsZDr/Um5u0HCohW698DS9kAJDSjp5xGiMMMKiq7qA8T3FzskruW7zg9Bb5c6fJKDnguV5iK5MGENTjKrV8A5ccrmZkumhMWd7TWZogbpckBnW8fPtr+OwmmnNFDydY6PQnYEnT2uP5gbvuBIciM+PSzUFx4gLt8zUGsdU5gDX4HeeDGmbj7fefO3gJ1mmWcsPP2CD4wq74qSQAmRmNletxT2k08th+tOzqyqxFeMVFIAUNgj8j5l+cVhCI5Gg5Mga0KqRkTYLzFeZ1lcnOOlOLZNs9tK8sck/vi7bMe7zoh0/8C6w4d9cQ== 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=N/Vp9ml+E3Q06M1EptPJMAG8X+3+Zi0c5qbYcWZXc4Q=; b=nICmeRODqi1/fMafc5CEljiWTi0i9pDZ1ErDcViyKIowXB/hISdNJkzAsQgMzxzV680uQaZQ6rYfO6S1a0QIb2zRRrKfn8NwXHVTQEe9kMXOtCpasbWF0Os/1XJ09jOI0CymuFHUZieq/2yUom1TBKuHmODJ3xVJ7fwI+BO+CW7zMDQvBDl7G+nH6e+dLdDiaNFgTBst/cvfBtabacYfLrHZnsGqymqih2q2nWa7AkIWFm9JZ0g3R4nTHtRhb0j0SUR2ZBMaDR7U2UdXvoPyZVjiNg5tuEHtnappbuUv9xvdIpnK6wsktSqytuA+2zYAmFDai7iw6aPUYS1E0lQFYg== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB5250.eurprd03.prod.outlook.com (2603:10a6:20b:c6::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.22; Mon, 23 Aug 2021 13:17:10 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::5574:1fd:cce2:d590]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::5574:1fd:cce2:d590%5]) with mapi id 15.20.4436.024; Mon, 23 Aug 2021 13:17:10 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 23 Aug 2021 15:16:54 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [MJkJ4PZP0WLNl9v3uzcvlAg9ATIjRmuo] X-ClientProxiedBy: AM4PR0202CA0012.eurprd02.prod.outlook.com (2603:10a6:200:89::22) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210823131654.1837818-7-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by AM4PR0202CA0012.eurprd02.prod.outlook.com (2603:10a6:200:89::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19 via Frontend Transport; Mon, 23 Aug 2021 13:17:09 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4bdfe30b-face-471e-6848-08d966385044 X-MS-Exchange-SLBlob-MailProps: q+fD6XS3/UK8FaET1AYvNgCP+/z79etDQA9EYVbSkeekD8U/a4m8BmR4SZagT/EzwkmdufTpoTcjLWnhDxOuxsXjUUgrrEYUz7PW2kQ5GVH5e8+aw1AjlhocNOSWTOjAHlYVAYMPAauABXVGaDFd8PHKdioel8Dg1JoiX6CfU3g6GgN4cGBddc/OtOOC7YYV6fF+97c0hbyZWd5po8uqR0vSrMVNLdbM53WEcMWUg8DYk1lF0MLb9eTMi6Q3KXw5wtnlbaJ8eEpm2NXGDxo+qkg/LcdOhzGiRUwYos/7hAvj7bFWC0jZHNbG+vMECO8cuhYwLBetJTmSeZVYGTqI648l6klieYc+Bvmp2nc6J7xiB3nV6Twz4qCj7JQ4X9MG5jK7PT8l7lzUn58pJAW51xVy4EwnZtt8thCn4LeCJl5M7RPL30K0iFBo/dxIyXlymlLd3AjdvCxM3gshUzNi4V6w6Zq3zrsDTKj2WfFDxmQBbPjh2RjlpdZPlqFjgSJCE5UZa/4+tqN1/YPqc5vjrgmwx9rn8wmp1bSb9ol/vgsqqMz1+8mxURYLbDyxN3Cts/4SFcwsfl7Ksn0kSwvzUV/bXL08a/0UVcb40nUQy2s+CpW3KKg/+WZQHrjdjXneIu3RKIpRbBeIw8tuV4nv0N+JotZPBbi0PpEjJua3KkSvdYaoSUZxwqlHXi4gS9hWmAO/FuFcWxnjAvjMzPU5hA== X-MS-TrafficTypeDiagnostic: AM6PR03MB5250: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fVDF6XdFyO7itPU53YyiYJSLa6iYQtJhS2GS6U9xuTgUQny0lnrAzB3fmHddHVcCzvJJKCQE2PmOP1VVlQtpa9gcpBlAQgdQyKbC1pikfZA+lQiJ3PY8ifRvWKNnA++Wqjfju1B3czjwcxbKn+NjslFjgSTKC6q9bg4+EiSFN+HX4wVjg18yJs4mgOkmb2nD+/BWn9QdLVkid65OciCoPt4zoLV31Oqevzr/QZjAftCDZWQJKhyBWOlrh1nqaDDpsuLdktzDTt2IOuuVpJQX0H0g4cJiyz2hyQN0OQP8Fm5G1okVh2N8BDaJG3mgR9EL5DtomkbpNkQMOTEbEZqbEq8jFlrYg2juXlbZymSjP9sx0GYBqisE0ul/IK1CE/NG3WbQo6mRJhIjOkPgliisEpkwucN00Bl6zHNApWhyhdItc6Ez+lHv53VEYd2La5Ai X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: cS69qki6lokkXzgqNPq0A50W1rtYzwSrRGD2+C9XiMD2AuoTxj3MOmMfG4j+VUnUs5cWd+RAPJVGCntjgv7BUjzcN9z+15HUVQ2NB0SkNPenGBPyBNZZuGrcSUNMwod/zWZ1i1jseetFg88iP1Urbg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4bdfe30b-face-471e-6848-08d966385044 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Aug 2021 13:17:10.2628 (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: AM6PR03MB5250 Subject: [FFmpeg-devel] [PATCH 8/8] avformat/flac_picture: Reindentation 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: E0WOhRo7YWRB Signed-off-by: Andreas Rheinhardt --- libavformat/flac_picture.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/libavformat/flac_picture.c b/libavformat/flac_picture.c index 3b69654ff6..0effbf04f6 100644 --- a/libavformat/flac_picture.c +++ b/libavformat/flac_picture.c @@ -150,19 +150,18 @@ int ff_flac_parse_picture(AVFormatContext *s, uint8_t **bufp, int buf_size, data->data += bytestream2_tell(&g); data->size = len + AV_INPUT_BUFFER_PADDING_SIZE; } else { - if (!(data = av_buffer_alloc(len + AV_INPUT_BUFFER_PADDING_SIZE))) { - return AVERROR(ENOMEM); - } + if (!(data = av_buffer_alloc(len + AV_INPUT_BUFFER_PADDING_SIZE))) + return AVERROR(ENOMEM); - if (trunclen == 0) { - bytestream2_get_bufferu(&g, data->data, len); - } else { - // If truncation was detected copy all data from block and read missing bytes - // not included in the block size - bytestream2_get_bufferu(&g, data->data, left); - if (avio_read(s->pb, data->data + len - trunclen, trunclen) < trunclen) - RETURN_ERROR(AVERROR_INVALIDDATA); - } + if (trunclen == 0) { + bytestream2_get_bufferu(&g, data->data, len); + } else { + // If truncation was detected copy all data from block and + // read missing bytes not included in the block size. + bytestream2_get_bufferu(&g, data->data, left); + if (avio_read(s->pb, data->data + len - trunclen, trunclen) < trunclen) + RETURN_ERROR(AVERROR_INVALIDDATA); + } } memset(data->data + len, 0, AV_INPUT_BUFFER_PADDING_SIZE);