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);