From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 2DA2143A1C for ; Tue, 5 Jul 2022 20:29:08 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D70D168BA26; Tue, 5 Jul 2022 23:28:57 +0300 (EEST) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2087.outbound.protection.outlook.com [40.92.89.87]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C1DA968B9A6 for ; Tue, 5 Jul 2022 23:28:50 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DuXaO1p2yFwE0sBOE/3ruT4+/mD/u2PH6GcrKMMCMoLUK5EOZLw8RGItl/gRgn9nAXn6B8si+EaFXr5+vtPnJs9O7Mk0vrkSFTP0fBNcELDdUKKmZ36TOUJFGaFD2mGHPnj3OzNlu8kKAs1z3ty7ZCec8YO4p+qwv/Czh54RT7NQLxclUnoZNhJnq1IeWHy5uhBAsRIbutdHkS3GbwKAW0Jdlg51P1xOFGfhW3PaDrGMUZOSxHoQPhq2AJqjT9A3mXHn314upuSLyyvYWV7Bet18Q7SJyazZQcYlcrYl8NW9P8u7mn8SII5PptYj60D0ws6xJlWar5RwbEiU3ib0eA== 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=zv2StwiVHJfKRHyNmx54nRtnQJqemHBbiVypXr3nCT0=; b=JUQVAo8E8zti1A7VuWeEAnsgakJLJXkzmgY5DwlI8VmPut/9BqIM57atmPXsrFqhQWQckJYAKx4YAE5rYBjexZgq36gTULdKdvzvqGA+M5CcR93axe7Vz7S7di9nmmxfZDzz2ps03K7J8MxNko/iDZSqAnQ9a/Yyh7J3gQqbJZaS2+Aq1N5BvvhrqkCJEalK6YddNnF+HWps/q6Sl4rNYQR+57iTcPzouN8X7b0ChY6xsJJ53TN3LCl+MCwBCK4ivPdyvmrKq542U5DFqLlHl3B0/CB0CWW9UHdspqzIe4dE4pq9pFVA1nphnhXPvbE0C6ue1Gqb0xprKm/U4zdYtQ== 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=zv2StwiVHJfKRHyNmx54nRtnQJqemHBbiVypXr3nCT0=; b=c5SqHeNpJpLT0rQxRZyT1uztYwYA2glQeBl/4o+eTDb99l8V5cYZ0YggxU+hK9/qeL1yyq+O6VRHr3SHYf3LArmFpRsXJHnQwhetrIL+ABQ8noaJWtbwGT0pcA9gO1Ck94C9/8IiguYaCnv7jSf+0X31ScWoOWesKppyou1OHvUwFJQqNXCypu1195xdgXC0SILI4GViy8EVtN1bOL0goOYYBB+9eXPfNVwF7M5zUSTBBm9oQHzdGS0TPTeGuTGyhDUBsp7iKwAvTwQn8sHVRwz30OVxHJ1Q5o70Up0mho45iCghLd68rciafw/tzBI8rFvA9FAZZnV2WHLbB+EwMw== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by PA4PR01MB9452.eurprd01.prod.exchangelabs.com (2603:10a6:102:2af::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.21; Tue, 5 Jul 2022 20:28:44 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c%10]) with mapi id 15.20.5395.021; Tue, 5 Jul 2022 20:28:44 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 5 Jul 2022 22:26:49 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [1jtcA8zjSJ5/bORH1a0VFJHfGtewzvIe] X-ClientProxiedBy: AS9PR06CA0419.eurprd06.prod.outlook.com (2603:10a6:20b:461::15) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220705202650.797218-6-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: aef589e0-aee9-4d8f-1e8e-08da5ec4f4d7 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNWDLNYE12708/FIJ0L6AOQd+Zk1EzbMCTkA+LqpJJgWFN9Ep5VoQcCcqtojiyb+DVDmH2oxo+O4NfoF5zIOW81dJU8B/QXxl2djZkfjnRSpwQLMtWclosP3Z2Db6a6XAWlk35iMLOAfpJdRwiUGDICceG0JZiv8q3f700IZnjoBaxPMyx5Eb5c/YLZJtjojdIsUVRTldSxzXW+89e5Z27LM+fBekUGuu9rM+6tPkHQB3I1N4gcdAHOe9ViBUr1n0pTTtwKAfXFbGeobQ9lKErKzYBfd3z8VLWjUj0lBfGAeUqthS2Ma4xzo/p3k+Ym7sYOmhvS7F6WnNkmmF6ZtXnFN8eFmu81acyirPyoL1GVy4ChNQ4pMCFWiNjdW6+xY798fGN8eZjc5vvYl7CwT9nLVHNyLtC9Ht26YxmPH6OESl6lqLt7iKRwi0q9EIOA3mC+bW8g83DzOdPxgdv+9gcN55m2dLHJCHGprT9sWgDNH7PBdfc13TXKWY0N4c9u2Gs+5Ldh9Ip1xLIp1c2/Yzr0lArccT2FJT9ltzlASoqFRLqjuTBjvYXKPDtLsZMp/5XWwkBQMyqPSw7W5iimLuh49SxUucJMBMx4/Qiby3tBiSgoa2pNemAteWmaxdk3E1RlhKsqy5fLfdjAzOgouDybNwLkkZg9ab68e8cXeQKHkJa/ezf5VFx+BltXeGCEI8QfJPlIU2XdcMcKvM2uTyl7A9x8Au0Ry8K4= X-MS-TrafficTypeDiagnostic: PA4PR01MB9452:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Ak1idfV+Qrj1yNZbM/2Z/OXngC0GU9d7AzTGgZwznF/Hxo1u5OamMLhHB6xJwyt4y3wC76COjKezAtD3w22egrvHpsogu6lkeGOSsb/RCfpXylAC0t5PltSBs1R44bu2GrxKyqlI0zLCdbdx+CKeAi2lrd2W9uZqQe7bei6F+XjT7vrqfd3SlUaIGgDO3rUAOzrgCn3bh1ZODG+t5nfdoC0NypVrmcOU6UMX2OvZcj+KwOS/ilEugq4Ka6bUYhMkej8X4v1KV+pETSnz06ovBTDfyzW5Nr8xTUemBbiT0MrJ7G67vjl1Hex6vz/ccQgR5IAT5Td2Aqd8cB5QmcZZSoPTKGZdPY0BwEUFSFqjA89H2tSmjZRXhsFJVts0Z7RYXKjVufTL5p/eWGo87HAiM0zxg6gKmgfTLv2OWXtSnrYcCL9ZVZR0sllNI6VVqOIR5pbPgKHOuj0sOjkwyOzjkMxC7HqoqMqdo5ivUsusrmO+s+8hQIGxWkWEvXePA9gqBpfc8Y3d9uWAzaWjNH6yQmtekzykvDUl5FRBu9XQAO2rGHuST+P07/t/EEB/fx1VGdgdJREl+AK4aLX+3n3AR3f9iJieuUUMtKwos+0+b2pUm4xXAkrxxgQSqm9+9mqVdENrWUg/ojvZfP+N5V+gVg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?jJlEhULOsWO7bXxomCP/8vRdo7xXpEaOUKAC8/Q1VNC0UlPI2G26F0DywcKS?= =?us-ascii?Q?2hXA9693aMcjkLuDhrsI3WKIBQCdeZLm0SR+WcPgqyeJ7nEUBn/0Sn8YJlfe?= =?us-ascii?Q?XvF22/tVbGnzOEJJ+N5GX/K+jPKdUBNPADawHVq4CCrQNaLJdibxICNGOSDE?= =?us-ascii?Q?ma4HokLrjeFTPG0RLwx9POOPVZDiZmpPX9632cob8yyoyZGcsQIhQCPcrO+N?= =?us-ascii?Q?0f529oZ/OKqy8TNPNw+M6x6+HUc24qbo0zf8ANLM9Irl9QrEzsZqxcxOSkGN?= =?us-ascii?Q?rMOHdg1EuW1bGJ3pLkAopRye4AUfhilb7+NZd4/Dkp9xYEG0nWMy/vN/RHWR?= =?us-ascii?Q?DWZcNFzR2giu2BetVDPw+ZxaAleK3ic+XWj5XzBqG+UdIpLqb9qQPT6iadcw?= =?us-ascii?Q?JYEGTZYeiFg57e2AOXa0R0dwpYjXDTI9EQZ22zbEPE4DsvRua3vFUoHvYi6r?= =?us-ascii?Q?eCLYF0Ert2LT/93vuBnlnPqKrsnGmeYlqtxtErj1Sz8Dsb+Opzkb9ZToX/Eu?= =?us-ascii?Q?59Ie33aiqW1TxxI1zSDn/Po4yhIHqXCXVspX46rWx0/NyM9F9xEN5AdvDH6+?= =?us-ascii?Q?Usb1bU+VpgVtMGJXc/gH6xNuG3rljB+wjiYqV2QZqjxHpGIgUrCEiAdxMlqH?= =?us-ascii?Q?r29K1i35CmztihMZuSnh3RuPXiNr0brFFWKhFV20r00ZIqA4I3L5BQ1zncN0?= =?us-ascii?Q?EZgRSLYreHqQo+E9ewbqwNlsI/KGJBDlBmaEeZxlGiBRdsEUDW+rweryjl99?= =?us-ascii?Q?IcxFQ1lTVnF9/XBk0RcU3O2Y8R7sDm+d/SRTmnFopwD0DLBL0KDdwkq2vZfW?= =?us-ascii?Q?M8Ueg6VJX7A8YcQHm2IrYGalMC9CGFWEFjuvPx656B9oTrwVJoMxYYRejfmb?= =?us-ascii?Q?KRwEkk3fgqJKq2Ha/3ieGsA1BBuMMRMXFt5PDBG+U5xfbxw6mtf8gAm5DApD?= =?us-ascii?Q?kf2cPuvw9m7VbBngq6udViQo1Oyb+iWhsu4/PKvfMKI+68Tov7t4ySnUwyvC?= =?us-ascii?Q?5Ua6SzWAufmZdKZ8BR8KtQpgenHTaykWgt2y15PcJk6DQt+U+cGyOp83cL5s?= =?us-ascii?Q?fVT7BgGQKSe/n5cpIT58Xre2Fp9XpcQxHC7FptzEfK5iLlsVndezhq+nRndq?= =?us-ascii?Q?ddbYQHhKIOzN07+PxIyB2qw0Ld3Uua+9X9Vl1kd4zl7N05VxBfDb2n5YJaJ9?= =?us-ascii?Q?xWDFcGLpaxjtsdS7J7MDv8T08ToeXXQerG+UaD0PiF5Dy1kvnfgPbTlLjEce?= =?us-ascii?Q?uZKV0U5XVGzq6R9//MVqS9CKL6alyPmTZ3sfJ+UhYXxN4KoZhjKavPE4+PZe?= =?us-ascii?Q?dKk=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: aef589e0-aee9-4d8f-1e8e-08da5ec4f4d7 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jul 2022 20:28:44.3240 (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: PA4PR01MB9452 Subject: [FFmpeg-devel] [PATCH 7/8] avutil/fifo: Simplify growing FIFO 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: In case the data in the FIFO currently wraps around, move the data from the end of the old buffer to the end of the new buffer instead of moving the data from the start of the old buffer partially to the end of the new buffer and partially to the start of the new buffer. This simplifies the code. Signed-off-by: Andreas Rheinhardt --- libavutil/fifo.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/libavutil/fifo.c b/libavutil/fifo.c index 51a5af6f39..53359a2112 100644 --- a/libavutil/fifo.c +++ b/libavutil/fifo.c @@ -108,17 +108,12 @@ int av_fifo_grow2(AVFifo *f, size_t inc) return AVERROR(ENOMEM); f->buffer = tmp; - // move the data from the beginning of the ring buffer - // to the newly allocated space + // move the data from the end of the ring buffer + // to the end of the newly allocated space if (f->offset_w <= f->offset_r && !f->is_empty) { - const size_t copy = FFMIN(inc, f->offset_w); - memcpy(tmp + f->nb_elems * f->elem_size, tmp, copy * f->elem_size); - if (copy < f->offset_w) { - memmove(tmp, tmp + copy * f->elem_size, - (f->offset_w - copy) * f->elem_size); - f->offset_w -= copy; - } else - f->offset_w = copy == inc ? 0 : f->nb_elems + copy; + memmove(tmp + (f->offset_r + inc) * f->elem_size, tmp + f->offset_r * f->elem_size, + (f->nb_elems - f->offset_r) * f->elem_size); + f->offset_r += inc; } f->nb_elems += inc; -- 2.34.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".