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 2D4374A6F3 for ; Thu, 4 Apr 2024 05:03:44 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 22B4D68D1A4; Thu, 4 Apr 2024 08:03:11 +0300 (EEST) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2054.outbound.protection.outlook.com [40.92.90.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 30C5768B43D for ; Thu, 4 Apr 2024 08:03:06 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cPD96m+ZS1/fEAz61mtdb3hYFlsJxvlR4Cshhi1S2H0jJgGWN2xg12V5rgOHXFjqiUQlsUuWVELwkpOTNcSDcCmTLcFV/lt+TnVN18XjuSRce1EvD0+hjSqyDOMXcUI2YIPAuusAFY0OKh7eItzYa+f1r18t7ko718t/0hg2kdNb9xsI0Y2Q2KnbVvBzxoWSU6puStVRiae0PiHSHDkMc4Vm0QUcPpMneWy5a6ZmIKVNV7+uWKnRATX1pVE/sP6nfvPOl3s4wnnFoZgcfqM/tfL6u9T4lVL3Ka9auPZdJz/vSlHbAXESml7YPrwnVDBaujqgl1EKS+lTPtxJD9bCeg== 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=2UpOj7iSh6A991FEnC78fHa/S0qw1Af105NBDWddq9Y=; b=i4Qpwg2QBiRpMVVMHWYGtgsXqdbUGWS4zPjG66oi8oukmW/PonqOtq0oF0MeasO4CS4Pd4Ic9HMQYiuMhkuV0XffFBLdo/iMmqgr05g5fonnfV4hcv9DeLD3ooRGs3DshcdUthT2JXbZdWOkYNgRbagiGwqTPo+672kRf3pRTTeSoK/N35y4LbbUuGDNcBDCGW7+92zwWWF30vSOOi7FVH9osTrNP9dN0x6X3tNcGvGm8sxxereLFCoiyp8Jy1hxBSL+gIJpfLAV0OqVFEnlRslwq5G11KcxzJs255TBby9td611zNfUq1Dit618JiJ7Jpd5Gw5lRTUftL3f35NIqQ== 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=2UpOj7iSh6A991FEnC78fHa/S0qw1Af105NBDWddq9Y=; b=h6CWQN0zDzwjm/iQf8oIiY2rr6BAF9VSzuDMBvWPT2Ghqf9EfId4IzjkEegKaEe/repPX7qZFvO18TO3UzgM/HYlnqIQUvbUMxjSRsLJblqTOJa67VKBVw9Ojitzvog9S6VPvQG5vKvR9eEr0j84ekszzyYh36fonjm1WmereKoa0Kj98OR2a/UltlBB8nakFQXusRC9pp0Cw6DKYxhpHyvZ7QhrSIwJMe86DyIcUnklsYWLJncqNXmI7yNd1M96fYyKrLQXPB/y7NVEbcrJi6w8qFBVOjcxm0iV7a3lDcF79JQ6extwaiUhrUZN+CwID4ruKFluou7cqkldrrLSNw== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by DU0P250MB0436.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:348::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46; Thu, 4 Apr 2024 05:03:03 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Thu, 4 Apr 2024 05:03:03 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 4 Apr 2024 07:02:50 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [pfU6HgoIaZoGWVnpenmVQqh+MuwmCM1gAXJ9ZPyHVG4=] X-ClientProxiedBy: ZR2P278CA0028.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:46::8) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240404050250.3450360-5-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|DU0P250MB0436:EE_ X-MS-Office365-Filtering-Correlation-Id: 76039cb9-980b-4b65-2f15-08dc54648221 X-MS-Exchange-SLBlob-MailProps: quCBMN2EvO+/Tg02NQSOAqMNnTlnxFBGee/+bcf8dxwG+xvell2aJ2jhJ8ubWD5PxO17Gz94vtAfsU1O/P7smXzM9/vwwOqI4LluYEgCFpT5ABMx5CMQE7KlMuy3+vIV7TJUkGOTeT5BkKAYckz/wsR+iZ+/I+1B4Fpn8LQg7nYCK1zqtTMfxQ1Qc6r8OTdF//QCYu52oKUZlCtus5OaH2bVyXQsh/LLhxwlOOT3EDzGckHs1LFGklEV8EdnVXaBFFBKur8iQ/rM+zMmUxOH53tuAFf3kUGkH8dhbWfQszjrX0x0AReqIQ23DTiYc1SUToUEzIJZhHgtvKblaGCwICwaevpNpARClII8D4CWSErylemu2AeKqfX/hj+S//m/8QTjo0UxxOoFf0mLhJ7Z0tE2GyLl+dVcBjD1lPn2DtKksEJ5BMsRRSHpJ0Zb0HxwCAfcV0sEMZaG+9VxRwfkkAZkjVmolHKWUNVsBos1Q8JDUUQtdpRcFZj3cfXxqrKoNygwA6837a4x3vxWXrpy5jyxq5WdetYrlgmIGstduYuXbOzWbNp6Whpa6R7JYGZs3biQFxDPfb2qfMukVI4I3nT4ZPOAEvy0k1MH4vQrtE54ieAYuuJPsmNZg6SlE3gcf+J53lD0RIi5vD1XiReFf083FW4Lfu33x905HGOpIl2oeXjfGTY/EYwoXZB8jyQEHUt9S5sG+SITdYrHYPtf7w== X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Uyttm0xASkeWiFkDVcL8KG1SuQTQiJlsmOGwGMDzwszAnt0sT5pS6JVSVdasYIdCXYwJyHGT5S02xQ+1aaZ235ZbsErjFfrNFYGptcrAZIH9DK1FuPgWvpaf1k/MtJjurIEAL4U2jUGHjNW/opZHhpIfR9GuehuNyvbzHXQl68RWlRzWJdbcvTuw7eGah9RE19bEyWgkYykjQzodd5OZtx8E9lh3+zF0PxMPX35dvlHgS/177z9aginFfoYt2iskaiEpJh7iPOiUFpbttC0YbzfWPwOZ3VJUrbfswwMtdNaKFAi1yy5ONQMWZZ7pTBy0q5SwnL+M3aBw1qLxlGezVcSq9CaBS1jOS7v5T3Ahhby5lqkkaaydfy2yxfhhu9BkHy3qG/ZzP/SCLrIOOEa7CYAvYjQ8DF40cuiLLrTfCtfEL/iswr2kCppYLwlOVJZTnzJ9qDUSy/6OT7aOMKH2WefcpRuxA7mj0cRXGCE8QgRGxaZQle4J/P5My9zpgXJsP/RXPUOWjXq2YLGakti02AjSpy2OMO4E3Pie3HRn87+kxlMQHHkTPeuklR98gaD+YA0uEPG1xUQ6dxJucsC5olzY+7Cl4HdWkEglfBL0TIP+sCKA1o4ii/Uqc3xsgm9x X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?dUZP3HuaRPiLEYQKFPt8P4DfI0HYBrpJT/g8ycYdqcHDNZrV2Dl57iJY5qzs?= =?us-ascii?Q?savEn+iSSWPaV6wa7pzbFg923QXl8XNJyrQmmSdg/z3IeQcM/ie6R8GWzC9R?= =?us-ascii?Q?IvW+Hk7h+r3mwRXqgXETXES0vg0XG0wOzg2qhZBWyhgcvHz1Vd7Brvvpb9rm?= =?us-ascii?Q?/drYsSsVTlXnStLxq/5Cyqmbq00tjY+gq9D0EF4VESfcgUn9bE0Z2dtye1iM?= =?us-ascii?Q?sZKGufYFk8mqOZ3+sPufaDl3VQWDuxrNS8/sSJ7tbscCDg09ALkpcISU0xx4?= =?us-ascii?Q?9PJLpbQIw4lnU4JjzXMU/APOFwAePocMSeWRSTXO1ZzC+5Gv3jQ4TBF9+Rc2?= =?us-ascii?Q?w7y1F/dgs+M6+huKabYpJkCCKfQiuOHiUVe/79QpJWSv6OUD0gP/spGUrhtO?= =?us-ascii?Q?UXnqOoA6QC31bNz6TB8eUZ7nSrPwzWbY4H7HxDc96x/SDTaAHDMaXCza0tNt?= =?us-ascii?Q?MfL7sH8mztooZ2b7L026Vqy08h/faF0BQAHgY+d05hRC42mQ/WtnIuFnyQaF?= =?us-ascii?Q?AWtCj271iq09upB64AQ629wXHH2DyyZVQdDbXvizdPnEIoeWwMLel8gM+TpO?= =?us-ascii?Q?JuMUyND/hZqrOfblPJmG0EI4c15xW8BPZw46GbCJaJ4EZ6dqIEdp729RnCR6?= =?us-ascii?Q?njbYcnDkaqOd3HIEL3FwXfkcBD2A/uovs5csg0ih2BEPcTa4T+ev2bfai2zn?= =?us-ascii?Q?tgYm7TP7NVnVH74ia55Qbu9K3EDIeOw8XeRmfkIwZrHnwjmK2fBWbSkFpeRo?= =?us-ascii?Q?k7pbgYyN6IqZ1Nc3FzwxomL9bI/p04d/JB4Pe9hyJHZNs9cKl/Nwh4xRnyff?= =?us-ascii?Q?ggzG2c+2EOKYUt+FAoCjcDHv0lC0rUWO+LKbRQXkwZQdmRFVDMA56gnG3KSe?= =?us-ascii?Q?WD/AAfYxX8Sb3Mg2t+Jk+jHMguetsZmb0+UjfSsnUeRxAUnGKt9dGRStBpix?= =?us-ascii?Q?4gYPHI3hn0XouDghf4NixEeOZJ38uRk29wdaOtv2DZMx2mYZAYPr2ZV9NN47?= =?us-ascii?Q?sB7jNDrX3lCpa9o/eKL9q3ryRag0ZRJamCewMU5ENGiWlNCJXrw3EDxWyq7f?= =?us-ascii?Q?YSh2nKfxXmaY6bKocf3EhERfC9sKEDxfPOh9MTyipyFsxejEdxb1nGkGL+1K?= =?us-ascii?Q?tiqmCjTpK3N1mJMacIDZTxpAg4kR7wj4hLAbbQTV8eucvXrAEKSrXd7fo5QA?= =?us-ascii?Q?sUH9+V9kx6ajp4SByYnA1Hn2u3Z+1z2yLkfnAglJrrdG8vhAGRh0SIYQF9xR?= =?us-ascii?Q?t6ZFMqubgSQK6V8FdK/4IQHqz7k3RhTnc4lc1KL69g=3D=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 76039cb9-980b-4b65-2f15-08dc54648221 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Apr 2024 05:03:03.8833 (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: DU0P250MB0436 Subject: [FFmpeg-devel] [PATCH 6/6] avcodec/huffyuvenc: Avoid code duplication 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: This also fixes misindentated code. Signed-off-by: Andreas Rheinhardt --- libavcodec/huffyuvenc.c | 146 ++++++++++++---------------------------- 1 file changed, 43 insertions(+), 103 deletions(-) diff --git a/libavcodec/huffyuvenc.c b/libavcodec/huffyuvenc.c index fd6b01de81..d822793406 100644 --- a/libavcodec/huffyuvenc.c +++ b/libavcodec/huffyuvenc.c @@ -499,7 +499,7 @@ static int encode_422_bitstream(HYuvEncContext *s, int offset, int count) static int encode_plane_bitstream(HYuvEncContext *s, int width, int plane) { - int i, count = width/2; + int count = width/2; if (put_bytes_left(&s->pb, 0) < count * s->bps / 2) { av_log(s->avctx, AV_LOG_ERROR, "encoded frame too large\n"); @@ -546,112 +546,52 @@ static int encode_plane_bitstream(HYuvEncContext *s, int width, int plane) put_bits(&s->pb, s->len[plane][y1>>2], s->bits[plane][y1>>2]);\ put_bits(&s->pb, 2, y1&3); - if (s->bps <= 8) { - if (s->flags & AV_CODEC_FLAG_PASS1) { - for (i = 0; i < count; i++) { - LOAD2; - STAT2; - } - if (width&1) { - LOADEND; - STATEND; - } - } - if (s->avctx->flags2 & AV_CODEC_FLAG2_NO_OUTPUT) - return 0; +#define ENCODE_PLANE(LOAD, LOADEND, WRITE, WRITEEND, STAT, STATEND) \ +do { \ + if (s->flags & AV_CODEC_FLAG_PASS1) { \ + for (int i = 0; i < count; i++) { \ + LOAD; \ + STAT; \ + } \ + if (width & 1) { \ + LOADEND; \ + STATEND; \ + } \ + } \ + if (s->avctx->flags2 & AV_CODEC_FLAG2_NO_OUTPUT) \ + return 0; \ + \ + if (s->context) { \ + for (int i = 0; i < count; i++) { \ + LOAD; \ + STAT; \ + WRITE; \ + } \ + if (width & 1) { \ + LOADEND; \ + STATEND; \ + WRITEEND; \ + } \ + } else { \ + for (int i = 0; i < count; i++) { \ + LOAD; \ + WRITE; \ + } \ + if (width & 1) { \ + LOADEND; \ + WRITEEND; \ + } \ + } \ +} while (0) - if (s->context) { - for (i = 0; i < count; i++) { - LOAD2; - STAT2; - WRITE2; - } - if (width&1) { - LOADEND; - STATEND; - WRITEEND; - } - } else { - for (i = 0; i < count; i++) { - LOAD2; - WRITE2; - } - if (width&1) { - LOADEND; - WRITEEND; - } - } + if (s->bps <= 8) { + ENCODE_PLANE(LOAD2, LOADEND, WRITE2, WRITEEND, STAT2, STATEND); } else if (s->bps <= 14) { int mask = s->n - 1; - if (s->flags & AV_CODEC_FLAG_PASS1) { - for (i = 0; i < count; i++) { - LOAD2_14; - STAT2; - } - if (width&1) { - LOADEND_14; - STATEND; - } - } - if (s->avctx->flags2 & AV_CODEC_FLAG2_NO_OUTPUT) - return 0; - - if (s->context) { - for (i = 0; i < count; i++) { - LOAD2_14; - STAT2; - WRITE2; - } - if (width&1) { - LOADEND_14; - STATEND; - WRITEEND; - } - } else { - for (i = 0; i < count; i++) { - LOAD2_14; - WRITE2; - } - if (width&1) { - LOADEND_14; - WRITEEND; - } - } + + ENCODE_PLANE(LOAD2_14, LOADEND_14, WRITE2, WRITEEND, STAT2, STATEND); } else { - if (s->flags & AV_CODEC_FLAG_PASS1) { - for (i = 0; i < count; i++) { - LOAD2_16; - STAT2_16; - } - if (width&1) { - LOADEND_16; - STATEND_16; - } - } - if (s->avctx->flags2 & AV_CODEC_FLAG2_NO_OUTPUT) - return 0; - - if (s->context) { - for (i = 0; i < count; i++) { - LOAD2_16; - STAT2_16; - WRITE2_16; - } - if (width&1) { - LOADEND_16; - STATEND_16; - WRITEEND_16; - } - } else { - for (i = 0; i < count; i++) { - LOAD2_16; - WRITE2_16; - } - if (width&1) { - LOADEND_16; - WRITEEND_16; - } - } + ENCODE_PLANE(LOAD2_16, LOADEND_16, WRITE2_16, WRITEEND_16, STAT2_16, STATEND_16); } #undef LOAD2 #undef STAT2 -- 2.40.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".