From patchwork Tue Dec 27 22:47:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39764 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:bc95:b0:ad:ade2:bfd2 with SMTP id fx21csp3747646pzb; Tue, 27 Dec 2022 14:47:30 -0800 (PST) X-Google-Smtp-Source: AMrXdXtTYkCKWb1+zoe/EhPfzKSpdqDk5lYbfsIj2jARlwxdc5mCC42ngqGr3u5waVERVmzdzpoG X-Received: by 2002:a17:907:8312:b0:7c1:bb4:ea20 with SMTP id mq18-20020a170907831200b007c10bb4ea20mr18492612ejc.71.1672181250751; Tue, 27 Dec 2022 14:47:30 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id gb13-20020a170907960d00b007fcfcf3b89esi13552879ejc.368.2022.12.27.14.47.30; Tue, 27 Dec 2022 14:47:30 -0800 (PST) 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=TakTEzzP; 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 6458F68BC58; Wed, 28 Dec 2022 00:47:28 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03olkn2080.outbound.protection.outlook.com [40.92.58.80]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0108368BC53 for ; Wed, 28 Dec 2022 00:47:21 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=grbSes2BmQDn9Bs7H5PL5yqmZefATbP7XyTXskVWYZ3N7l1BiyuEdoiI2n7HueGsma+tK6OG6fBqCfrW03Ce8IVq4WDO9hAxso96ZYGQXptEdeQj6Zj5HcU1qYL0ka9fpkJcideZmppw3HQvMqZQiJ3SfSMHkhzrOLeGXFNv0EKVJmk/4o8ScLuLPJ8qKaCkAUU4iFDiQ9BKGskw2dD5vR1PV0k4DnoBpGjbaVdpYN6UFO5vMI5NSZzRTwR1n7k/nt0+rFW16Uyos8ddf+uvT9W896W49Y7eMCtL+Sz7iI1xpTDfP7aF/ehDIJ5jpT9XwBOhOD7SYBvAwjv40qtrgw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=uLwY68lVJZrb9XwDiOJKUeD6Bf7yjk/RS7S3egE0FNA=; b=mMTgjIYn+RcPj/Jbn3P54Win1e2Pa5AeNlx7AhpLnS8UXH8HIsQzfZ8vkcPHFn/sLU2QXcmqauMYtc6DLgu0zyJWC2kEOTjRhuJOhBiCwrdlJfYbpzgHxeNSByUK3TIw0bTWdQAQm26lQJetgJwbKGISBeR/kJwTXPWV/1hJDVIzUBTbSqM+1kzjJl4S7Bwcal2/zZGm8FDqyWJKxcvbxPmoJ+vYHpBDBEnZ0pnN7OGEVUheo4ORSgD0J9Sc9zMhQPiEG/A8ab9he4OoNhbBcY/64xL4t6P5S0c1ZftDN27RSDJWZWxib4fY4qyK2FQyhJLGgXxysORzmxFH+aPOVQ== 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=uLwY68lVJZrb9XwDiOJKUeD6Bf7yjk/RS7S3egE0FNA=; b=TakTEzzPg2ilwDGr+1YJmdBckAuVmzbQqH0WdO+sEsaFRc82Mcir1w31T6wzEa1swcgXte5r2nz9VzC8W01Ny0ofRIUnMJlRkEhjf5FCUdfJmh6xBwDFEhCRBra+ReA9HXFkiB785cwQv4nip2TSLzEJe6pQIm2LYjIclwGSswVzfEVYQDY1qu3J/etx4iw2OtOkYQGObuJrLDeL1m3Q+2SN26Opd6wHtgQFsC6jcZU2HtbxGNV1oCl8od4Zn/ibbiKqvl7FO/o3fUhfaSBIrSShPwaSgtSzBq1uIrXElWkhyrHRTM+NO7FJrZZgg62Jd4pBfOXeX9m0IdFKZaqcVw== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by PR3P250MB0323.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:17e::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.16; Tue, 27 Dec 2022 22:47:20 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::da14:61e3:630a:70b5]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::da14:61e3:630a:70b5%8]) with mapi id 15.20.5944.016; Tue, 27 Dec 2022 22:47:20 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 27 Dec 2022 23:47:38 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [xKOxQMz0mozJK68/CqyQr7V9nMCk7A7q] X-ClientProxiedBy: ZR0P278CA0057.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:21::8) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20221227224739.1181782-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|PR3P250MB0323:EE_ X-MS-Office365-Filtering-Correlation-Id: 3f0e60c5-12a2-4063-e412-08dae85c4fb9 X-MS-Exchange-SLBlob-MailProps: Vs63Iqe4sQmXpC4V5EEfPgtEeNpvWX9hzxmBkJ18muCg+cL0eMCH2TzmMNal5l8eYrtzqUllSgvgnfEvNUqb4ZLCs6hp9jZRwiKGIYXp0tAdjxJrMWX1uBqH5AvoSVUf94VZZSqj9lCDEz27gmqWG/f9t9mmK612oouLpbyL3SqgWHSJ1FnA9h1gyOqRnzo4VwB3afsDFm1PkldtgqPK/A4afJBu18u7U0mfbGsvD5yrdH0BqCYxAOBSDY+taMzqxCYTGL1uM+XIDoGn09Efiim6L3L1thEqCUPGr9BxMqWRpS9DQkTUDri40igAUUyFfqHKiG8Q1R9ST/SUony0pLS5Tc0TfDSLdNwgOXq3dqRBbRQySD6Q2PxYpaE/ur5YoSGK4x+Sgpn/P4qR37odTf0te7HtDB9vaV0FTeAxX3JPoyiBKHiBY49nznUaqQ3RcpHs7XxEOIcXP0kfqhvTOg9SzJoC9HAVGFUdwWHsSJnFm5ZT8UrJBumGbbqkgYk0JFJBBYdySNqzU13i7fJhZkcmamzYeBaiOOOWVI/AUKhVLus4QYY7G+AUCr0sl5629yI3VukmDrRlKhxuNw6s/E2Xb6zkJd8SxGWDgACZvKrNEHiUN3XD7x5lpY6GA0l2UtBSfTW0bCCCtXQ0v1NgW/kbyDGwTuj+SLUJoVAe1TUgkuYcUzRM9fTUkldFfuDxx9B5TOdc1jH0fkb4rp0RaNiYa2VGdH8vTAu6m8vM6BU= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jXZ9Q6xPlUEaGkLy3sAoUuAUR+vHuUUCi5wEJpcJr8Ny4LhVGhGXKjpvZeHoFuzDD/A9xiDLCdvU85cq22GyYUU1ujFHVBKqpDiLKSeXn25Kyy75HLTOCQ5jFDmgPGsMSBNzZdPYf0XBWhwIkaT1DAMDxfBHEUsj6MdGxIBnimdcvL603Kjh7daE5w3hbnJ1HJgLOMUdP9i6938aCJ7rP+WLECcngOh5PdRZoFJinxM0zvf6esvCETqpYwm4pRgIJaziGfAz9ySLRJPToEl/zVCGkcoRUwosxYL/uBO29zwMlCFWoDRiscUkYhBCJm2wdtnIQ/1Q4DZWfZ8eziIIKesE/FOPPpoCM5DrDuQ8gAFuu3EpFVy8YhkZGTVglVzEX0UhXbFcQmvxnHYCWWNQq04mCoo7ScvjbAgf9hwo4IWTJcu1a+EuOMLAGPLaLko5KBaZBxECXsbbU6dXebt3GHhDjzt9/qt3k4Aw6Otof5kqZZ73Eqxg++8BHUK22GrNctX5zcRWsw97QcY6LvMH0Mv8k4c3NwWXj1pLKs+4E0JX9syAQwcrvSbmb5gnwdsRKF2ymiekD7zb2xzGGTNhrPbQ7DuqLlkin24sx7ucqwzJPCzV94ycVrHt1PrKRfDw6iv6fdc/9r/zcQwnrfbf5gscfYmM/jkEu5I8V9tplO8= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: QaNnxevXuc1ifa+vecGDNIRVyZWRouqh7A7U9VJaA9wOKlpwC9UgZhN7mkZeW5U4hqmha2KM6kHGTebryHjOjF0fdBJvIi/+cU+Qsh9UYiI2PHY7Y3QF9qrnyGDbpeJlYZ9Ny3snyOMx4xxox6EIb62xPRw7TqDeS9u1Qy3Zc7dcHy5WshNnZiZhoyzJgdTuVEnqyhq5EnxA9QoJvE8u+Piv1FES4tGOvtyk1GL3CIyvhQD9VrW3FNeRNYQwrLGSdRwIUMn+tRZ8qgIZAZQg9oA9PPBSHl4RV7L1OidLR1FMYjh7MSjVoqNmmNR0QVinlGfvTsuS0gRKjF70GTCiz7e/xeADOJAtSinw0Atd3xi5HONr9AFfQjm/8j6XvvFCKk2ZkQl7RNu1DiRraIF0YkhjMkMlXLDXVnzPtIVSE6fcMpb0DJtVHgKXVO7jt1PSAcC7qjgXkkboIaHbIbVMDsLU0G401M9smgY4h7AMv6O5Sjt665qaYvEsgb9VtM/PLrVy6gPNuW9LxpBwu0V669/hidHjTbQbtcetCv/PPVYz6o5xHeETbItVKZrQcSlIFe3vreGRuZ4odEUpYAa+fRWk5RG106CawC1t0TYFa+njCz3yC6+NBxuVTOLeYxxxt/09AA1B76klNKgMDoOphcVDOMA2SvZas+sUfgmMXS2x/Ye2gnGLUgXuJ/MFeh8ovjj9DvA0h1x7lZH5cas6rF3zfvJH8ehPcHpiPyE5sf7I+7DfqSXPmhMkqXl5XGSgKbdbBm1LmAKz6wJeFfacu8JnG0HCXo+yV1eKmNvfg/wUfS1zm5JJ6yawrRjfI8LRFcQaaBuRHoPH1/fj+XEOToehxJDVpX1iwpFMxMOw90KKZHe6tAJjgj/tvDOM6L3kt2CJgnevw+pKhvm07TAoIzxbTLC5a20aFUnMOONIygrdDws/BqSgW5kvLAzP7hU26VSWI+Jmeo0w1UXhY6p175I9feHzPRmIKHJDEFIq4RgN07/JMlZ0b+NIrGArqNyT6BLouxdwXZU4GC2j5pOeYPAtQRD2veu6bGVPtd7c1hUThm+dd2QHdFl4MDDqfbwIMBTUKVNh4F6R+d5mlmKzvU7/9KuGT10fcj1UhfLRumgEG4B+iCpRkQubcWnVfSj01j8jiOP7W2EmFRflLDq72KA1z15X9fKod8K8aJ9gzpEJFzBAT4jYHlQYJls6caqrB5Y5VnxlvLbkJ2u6Bw0epPtSCP+foXsIPKnpodGJypEGjTTi6OM889eccg2Dp+yPqM7FQZwnpBtprEeN4m6UxvY28bWDlbqag5BpGnUarpk= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3f0e60c5-12a2-4063-e412-08dae85c4fb9 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Dec 2022 22:47:20.0595 (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: PR3P250MB0323 Subject: [FFmpeg-devel] [PATCH 2/3] avcodec/flacenc: Don't copy buffer if avoidable 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: ZygU5iwmz55F It is avoidable for 32-bit FLAC on little endian hardware. Signed-off-by: Andreas Rheinhardt --- libavcodec/flacenc.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/libavcodec/flacenc.c b/libavcodec/flacenc.c index bf5d12facb..adaaa77b79 100644 --- a/libavcodec/flacenc.c +++ b/libavcodec/flacenc.c @@ -1573,22 +1573,22 @@ static int write_frame(FlacEncodeContext *s, AVPacket *avpkt) static int update_md5_sum(FlacEncodeContext *s, const void *samples) { - const uint8_t *buf; + const uint8_t *buf = samples; int buf_size = s->frame.blocksize * s->channels * ((s->avctx->bits_per_raw_sample + 7) / 8); - if (s->avctx->bits_per_raw_sample > 16 || HAVE_BIGENDIAN) { + if (HAVE_BIGENDIAN || + s->avctx->bits_per_raw_sample > 16 && s->avctx->bits_per_raw_sample <= 24) { av_fast_malloc(&s->md5_buffer, &s->md5_buffer_size, buf_size); if (!s->md5_buffer) return AVERROR(ENOMEM); + buf = s->md5_buffer; } if (s->avctx->bits_per_raw_sample <= 16) { - buf = (const uint8_t *)samples; #if HAVE_BIGENDIAN s->bdsp.bswap16_buf((uint16_t *) s->md5_buffer, samples, buf_size / 2); - buf = s->md5_buffer; #endif } else if (s->avctx->bits_per_raw_sample <= 24) { int i; @@ -1599,16 +1599,12 @@ static int update_md5_sum(FlacEncodeContext *s, const void *samples) int32_t v = samples0[i] >> 8; AV_WL24(tmp + 3*i, v); } - buf = s->md5_buffer; } else { /* s->avctx->bits_per_raw_sample <= 32 */ - int i; - const int32_t *samples0 = samples; - uint8_t *tmp = s->md5_buffer; - - for (i = 0; i < s->frame.blocksize * s->channels; i++) - AV_WL32(tmp + 4*i, samples0[i]); - buf = s->md5_buffer; +#if HAVE_BIGENDIAN + s->bdsp.bswap_buf((uint32_t *) s->md5_buffer, + samples, s->frame.blocksize * s->channels); +#endif } av_md5_update(s->md5ctx, buf, buf_size);