From patchwork Thu Sep 8 02:38:11 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 37752 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:139a:b0:8f:1db5:eae2 with SMTP id w26csp26505pzh; Wed, 7 Sep 2022 19:38:28 -0700 (PDT) X-Google-Smtp-Source: AA6agR45C6AEe9/tkRETiVQ75yxFvspzbxdd1fVjl2zDfG21BEkhzHApRdQP81YSfROpE5FNDKWZ X-Received: by 2002:a17:906:cc5d:b0:741:38a8:a50a with SMTP id mm29-20020a170906cc5d00b0074138a8a50amr4284208ejb.650.1662604708635; Wed, 07 Sep 2022 19:38:28 -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 u11-20020a170906c40b00b0073d97252ac7si799240ejz.49.2022.09.07.19.38.28; Wed, 07 Sep 2022 19:38:28 -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=ByDfZhCd; 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 3931168B9B0; Thu, 8 Sep 2022 05:38:25 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2012.outbound.protection.outlook.com [40.92.90.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1060368B989 for ; Thu, 8 Sep 2022 05:38:17 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YQ2gaOetmm/PznddE4IimSFuZzkMEyvHfHYE8q5dCsgmrJrUmXVb+fyybLfEw6iqCEpLTW5c0Hr9o3OiKT3F3pNgCag9Kpq9AYK3XIgKWz1NMeRsG276jrIzuRJ45k32+enBRwuOQkNoo3Sm1bwZQ+Ws2Av7WXfkGheU0Z9YPBQAjUBAAbYo+Ka4/ekfA3pnIE0UMgpxmF4V4cVumri3XQ8fhALPZdvbY9hl21HjpIAAsp6ha7AKoWmPZC/W8mAUaUn4C0WO6V/p6d/RKId/E/OTRjUeXF35okwxyZT40nErB97ctBvtpiSvzB+QxXa0DiI9xV2hfPy8o5M11fUCaA== 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=FuWtqZJUTcyq24634WyfrI+2ZuGsGXvJllUG40a3x7g=; b=KKU6RcbI3Z2TsfG4tfqQlRPR4QRLvGpFIjFOaBF0ZrxjEmYHcwskm1mMJuAa4GrcindYy7YXLMPIQaCS0qZSmD7yDT7EqRJNcUaFVCACCFUXjbEyaWVAuyZ5S4UxXN8qes5eOJGX65Hlc4n7+LHWiY/fdviWcRC/aeqCJMPZdyty96WsuOOIQ7fOX0mJcBkIUTXm5wGwhgaymPiRF6xIvDArsXNLWTdd9jY1WHg/h76sXW6OLFaLc9smzdTwLuryXvhbYEpHfZMs8+XkUKYg+4Z/KUCinpzhhhyJh4caqg8R+KTEblMiCNLIW4dkHXTKQv4uykNmDJm9xWnHZR3WoQ== 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=FuWtqZJUTcyq24634WyfrI+2ZuGsGXvJllUG40a3x7g=; b=ByDfZhCd99+eS5P+ndykoIHPmiSFEf3x7351lmxdg/snsgwGL0nwZO55upZhui9xCNPX/zMK0sy4bDZ9czKL676Wfi7+IyuXneUM1ThVs76pmbLYEas4tWuOg4e9LaGWS85nlPpOSdGD8hEbeThYFvziOGD1B3qTn6iCqlIUJnsRiW3zB75oiYedt8pcoG4OMe0KrUuri81efqCo/X1UH8Ds4RU8kEk0JCQcAOIKyGz9gHlngwsdnDu4SmOwOGyq2VC2gVbRUlDoX0X8lTxBPESkZShuZ/9rfSnSpCFruS4R52OFyi23DZcgGftARsnoKK9fbgcRokePlqvJmni8lg== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by DU0P250MB0484.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:34c::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5612.14; Thu, 8 Sep 2022 02:38:15 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::c3af:c609:301f:beab]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::c3af:c609:301f:beab%8]) with mapi id 15.20.5588.018; Thu, 8 Sep 2022 02:38:15 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 8 Sep 2022 04:38:11 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [nnMnn+L/wLDSbU2OyBj8WZ8PHtahf1Yvy2cw8d14Ep0=] X-ClientProxiedBy: ZR0P278CA0028.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1c::15) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20220908023811.2210738-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 31470487-8e54-453c-a540-08da91432e5e X-MS-Exchange-SLBlob-MailProps: AZnQBsB9Xmp16suNY6DpRD31ZauPJnPpvhrbO7h5BExicRwLmBoSTm4K96mizwewaHUgPtODmuNEBZtFp3ADxnwMwGPELORgKNujPceOMal8437+lqZmTxR5fJTE0MFn9oQCAcf9fF0MwKSAS/yNnPSxvusLzrwxXQixRrTjigDNovwRnFdZUPRWGSOkaueJlLBQqWKPtoSLJBQnhF1FZBU2G95ppqEZ6T+vkquNoUTovIkqgHnzbRyKCrMxLui4jetErb4MtuUCkM04m6/3+0K43tRCaISVSFkIpiWzEQ18vKyf9duEfqE74aB/UtpnL7LnDe7joWMgRD+K68SodjAKs88APsMUCcVb6Qx387QyYk9r161SXPdGBeXjtxzIEVPDJqQEQ/2uQ7VP0no0ANk7RKMLFwQsgLZgukYC4tUp9oe2ONHKogRSQQmlcyBXnMjlRU6aujlmrhAbmryS+7dvOzPe8WnfkeHggfFwtu4X/r/wNmoo4rWNMQaWkjJg88cBzvh7f6imoM+Uc7YYkPYKLa9vkenKqJDp74rXB5CBMTIcxZT2rtgHUaGx+h0HJlLjueI0Yqt4rzlm/v3df4VOO683uQpmsy9ujwxzjHE6LX8mj8CVG/58CFmVuKjTUAAE6gcyl58Y2NzCkrb9B+fpfj66JfFhPjUPgVYQ+kegz+ZwoFZmcp0SKcsC+YoAfIyHbjcUypNLyCHbcrro4uL1bFkr96aqyawO+s0LsbJlS28SbrMaKHp+PyFwrM025AXfYQW8lTg= X-MS-TrafficTypeDiagnostic: DU0P250MB0484:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: LoOAXhkPK4w9n/AEaaJTMzrx04s6eVPcdDQ7V9nClJpD10/UanmmsNOHI+YayZF1h4dS48ct6nzyf4LlSldXSMI+MPoiL9Uxzvs46sgqB378kqtWQ/LMlt2dalPql1/iP7D+Js9yC3HOOV/i3qJLIA4h0NESP5ep74j9NiQmcAZvxG++kmbDIaeHAjQb68UjDqF5PNACE1ZP/MhO5uiobZMfR2ezWubLwBkt7n8Kwjz3fwNEERW8MBzppfzsv4tKTypegNGkDvXw6wZX/GQ0E+f59TVe3uqsvaS2aO03VlsdbnAWyqmeXiNNWnVt6pZjGXhmGo8MQG5DaciIQ37nHmhxxtx5zbJSs+hpV6Ns2D08vyjTpOJIKd5Lm/xg/ojEJBRqB4DMr90uvY0tE5xOX57C3IEufqXyCmCNC5ceZOyq5LRVZxi+Wq2f5ukqIoXWpkP5pk8Y3hRUW4/ZYSMDYs0+iU2Wp7qKjgCzfBmRMFBpvctmdTTzAaCtfbN3y00xytZBnnA/Ijz6NVwk7cpEz1RxpC6/avwSnookOHWvugJ+7gmA0/hvk2Ur1rVSt02qtCSJ3GpW8ln+tqaEoimmmXjiTSJSitL3Ei4757gDhE9audiYkf22oCAj6MZlEZhP6LpJgLbxR3cnKoPkoLrXpw== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Gl7OX7S0XIYVTQ6pTcgkbyF7vWDksF2Bl/cjZSMuajsfvCKJXWqjd8KAaFuEgYYtpWJLRZRFDefCW25ObhSQXawAPt3xDHhsrj9K9yFR3WmvfFNfCy3J3qiPvRPc/cTKZBDvwV/BRZcIQsvvF83ZqCHu2512aNiZcvCR0WlIg38F80ZjnCi7lZmQqE7vFslfOMvHGPc6MC7rMo8lOVhQRrvxlQi6t4WmXtaaEaWQERniluKsyBfT337Yf9Ewg0RoZ5PTH+2kcloNueybnGIrAB9HqHSqDX6qceaV1PMD8Lj19+vidi8PMt12tUemVqlas74DvzaHAx90eLQ4xFa9UdrTyOzeo5l2A9TvfeBaFDxHtC9T27tSBJO7u69vJZzqrvNHPlRZa7R7QU5pOx8hHVqU4X7BF41nYl4D3qFTYh8JP6pKgSllEz+XXkQyqP+3+KLgfarT8goFqryp8phHDG6sI4nQ3MxOljzldDD4HLPktPtDKcvN0iinVDCWG5oBwewRmmdoqISbHN5LsIglP20V+Ft/WPGTV5Em4ess9NRabRJuS5s70aPQzYRBfdI7CNgWZuTRPnvd5JoYhUDjyh4oJ8pXcaFEDp/yQkrBuQyZUaq/DnQ0C5V2Z52WyRuXBQv/cfc/ZznKCB3Bq/GEVOMxX03JGBDfbRxMhj2a3ilXc5y8FYw2fkf2lRVZw7/YVI/LxmHo/wlu1yB1q2ncjh8prNk7ObfI/zl63BlRWARcMmfHC1jODqLdhyxwjTcMFfJtQve/yY7hTJjJmjOtReLasC18LjocVcFbm8cu7KFuit5jMsrfTwyUozqK6PSEH87hX3dqJ0R44hORkkpLjBDqLiZhx4LM0k33I8OFcvgpzy3cCo1apBE1q/2lmVwvQbgNrlC7+qLnWbh3Tf81IvFQhj+tPi/nChkT/Sr3ALt+xxRkk/4v/0WDpIYfdgkbxbqNt4xr1ipro85DVB1+OH1Wxt9xSjfPe2QQCpygOYZlFYmZT2BxvUm6atLOKR7CLc54eFnHlkBucTeZCpLOgfXFHHEMl9INgaYL6434q7TClLZ/4BYOx3vNV3bOfokDTblp49ZyznmTiPMyuJufkPUJbulnZsy6A0zW/aXEhU+mZJnjx6aGGT9bKvOklYaO2hXJlHwdKniBGEql037EHU4UOYtoCe60Ne1MAqhxyouAbRp4MuzBus+aIaGySGrQkzZMYPMYUQb6mxCVz8SS0SJRsbQZ6GV+scbqj67EJds5MAl/Li/Rwa57/TzfDvReUudDbKORhsqpnKo0Tq62WIo9ZwQ9JkTvq3skKVB7mQzcbRlHc7BYQneTi8p7sOl7 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 31470487-8e54-453c-a540-08da91432e5e X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2022 02:38:15.5168 (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: DU0P250MB0484 Subject: [FFmpeg-devel] [PATCH 2/2] swscale/input: Avoid calls to av_pix_fmt_desc_get() 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: qe8ZIRj2WQ8o Up until now, libswscale/input.c used a macro to read an input pixel which involved a call to av_pix_fmt_desc_get() to find out whether the input pixel format is BE or LE despite this being known at compile-time (there are templates per pixfmt). Even worse, these calls are made in a loop, so that e.g. there are six calls to av_pix_fmt_desc_get() for every pair of UV pixel processed in rgb64ToUV_half_c_template(). This commit modifies these macros to ensure that isBE() is evaluated at compile-time. This saved 9743B of .text for me (GCC 11.2, -O3). Signed-off-by: Andreas Rheinhardt --- output.c suffers from the same issue (and according to coverage is responsible for quite a large chunk of the calls to av_pix_fmt_desc_get() (144699832 of 321342234)), so I will be looking into this tomorrow. libswscale/input.c | 96 +++++++++++++++++++++++++--------------------- 1 file changed, 52 insertions(+), 44 deletions(-) diff --git a/libswscale/input.c b/libswscale/input.c index 88e318e664..4144ff81a9 100644 --- a/libswscale/input.c +++ b/libswscale/input.c @@ -28,14 +28,19 @@ #include "config.h" #include "swscale_internal.h" -#define input_pixel(pos) (isBE(origin) ? AV_RB16(pos) : AV_RL16(pos)) +#define input_pixel(pos) (is_be ? AV_RB16(pos) : AV_RL16(pos)) + +#define IS_BE_LE 0 +#define IS_BE_BE 1 +#define IS_BE_ 0 +#define IS_BE(BE_LE) IS_BE_ ## BE_LE #define r ((origin == AV_PIX_FMT_BGR48BE || origin == AV_PIX_FMT_BGR48LE || origin == AV_PIX_FMT_BGRA64BE || origin == AV_PIX_FMT_BGRA64LE) ? b_r : r_b) #define b ((origin == AV_PIX_FMT_BGR48BE || origin == AV_PIX_FMT_BGR48LE || origin == AV_PIX_FMT_BGRA64BE || origin == AV_PIX_FMT_BGRA64LE) ? r_b : b_r) static av_always_inline void rgb64ToY_c_template(uint16_t *dst, const uint16_t *src, int width, - enum AVPixelFormat origin, int32_t *rgb2yuv) + enum AVPixelFormat origin, int32_t *rgb2yuv, int is_be) { int32_t ry = rgb2yuv[RY_IDX], gy = rgb2yuv[GY_IDX], by = rgb2yuv[BY_IDX]; int i; @@ -51,7 +56,7 @@ rgb64ToY_c_template(uint16_t *dst, const uint16_t *src, int width, static av_always_inline void rgb64ToUV_c_template(uint16_t *dstU, uint16_t *dstV, const uint16_t *src1, const uint16_t *src2, - int width, enum AVPixelFormat origin, int32_t *rgb2yuv) + int width, enum AVPixelFormat origin, int32_t *rgb2yuv, int is_be) { int i; int32_t ru = rgb2yuv[RU_IDX], gu = rgb2yuv[GU_IDX], bu = rgb2yuv[BU_IDX]; @@ -70,7 +75,7 @@ rgb64ToUV_c_template(uint16_t *dstU, uint16_t *dstV, static av_always_inline void rgb64ToUV_half_c_template(uint16_t *dstU, uint16_t *dstV, const uint16_t *src1, const uint16_t *src2, - int width, enum AVPixelFormat origin, int32_t *rgb2yuv) + int width, enum AVPixelFormat origin, int32_t *rgb2yuv, int is_be) { int i; int32_t ru = rgb2yuv[RU_IDX], gu = rgb2yuv[GU_IDX], bu = rgb2yuv[BU_IDX]; @@ -92,7 +97,7 @@ static void pattern ## 64 ## BE_LE ## ToY_c(uint8_t *_dst, const uint8_t *_src, { \ const uint16_t *src = (const uint16_t *) _src; \ uint16_t *dst = (uint16_t *) _dst; \ - rgb64ToY_c_template(dst, src, width, origin, rgb2yuv); \ + rgb64ToY_c_template(dst, src, width, origin, rgb2yuv, IS_BE(BE_LE)); \ } \ \ static void pattern ## 64 ## BE_LE ## ToUV_c(uint8_t *_dstU, uint8_t *_dstV, \ @@ -102,7 +107,7 @@ static void pattern ## 64 ## BE_LE ## ToUV_c(uint8_t *_dstU, uint8_t *_dstV, \ const uint16_t *src1 = (const uint16_t *) _src1, \ *src2 = (const uint16_t *) _src2; \ uint16_t *dstU = (uint16_t *) _dstU, *dstV = (uint16_t *) _dstV; \ - rgb64ToUV_c_template(dstU, dstV, src1, src2, width, origin, rgb2yuv); \ + rgb64ToUV_c_template(dstU, dstV, src1, src2, width, origin, rgb2yuv, IS_BE(BE_LE)); \ } \ \ static void pattern ## 64 ## BE_LE ## ToUV_half_c(uint8_t *_dstU, uint8_t *_dstV, \ @@ -112,7 +117,7 @@ static void pattern ## 64 ## BE_LE ## ToUV_half_c(uint8_t *_dstU, uint8_t *_dstV const uint16_t *src1 = (const uint16_t *) _src1, \ *src2 = (const uint16_t *) _src2; \ uint16_t *dstU = (uint16_t *) _dstU, *dstV = (uint16_t *) _dstV; \ - rgb64ToUV_half_c_template(dstU, dstV, src1, src2, width, origin, rgb2yuv); \ + rgb64ToUV_half_c_template(dstU, dstV, src1, src2, width, origin, rgb2yuv, IS_BE(BE_LE)); \ } rgb64funcs(rgb, LE, AV_PIX_FMT_RGBA64LE) @@ -123,7 +128,7 @@ rgb64funcs(bgr, BE, AV_PIX_FMT_BGRA64BE) static av_always_inline void rgb48ToY_c_template(uint16_t *dst, const uint16_t *src, int width, enum AVPixelFormat origin, - int32_t *rgb2yuv) + int32_t *rgb2yuv, int is_be) { int32_t ry = rgb2yuv[RY_IDX], gy = rgb2yuv[GY_IDX], by = rgb2yuv[BY_IDX]; int i; @@ -142,7 +147,7 @@ static av_always_inline void rgb48ToUV_c_template(uint16_t *dstU, const uint16_t *src2, int width, enum AVPixelFormat origin, - int32_t *rgb2yuv) + int32_t *rgb2yuv, int is_be) { int i; int32_t ru = rgb2yuv[RU_IDX], gu = rgb2yuv[GU_IDX], bu = rgb2yuv[BU_IDX]; @@ -164,7 +169,7 @@ static av_always_inline void rgb48ToUV_half_c_template(uint16_t *dstU, const uint16_t *src2, int width, enum AVPixelFormat origin, - int32_t *rgb2yuv) + int32_t *rgb2yuv, int is_be) { int i; int32_t ru = rgb2yuv[RU_IDX], gu = rgb2yuv[GU_IDX], bu = rgb2yuv[BU_IDX]; @@ -197,7 +202,7 @@ static void pattern ## 48 ## BE_LE ## ToY_c(uint8_t *_dst, \ { \ const uint16_t *src = (const uint16_t *)_src; \ uint16_t *dst = (uint16_t *)_dst; \ - rgb48ToY_c_template(dst, src, width, origin, rgb2yuv); \ + rgb48ToY_c_template(dst, src, width, origin, rgb2yuv, IS_BE(BE_LE));\ } \ \ static void pattern ## 48 ## BE_LE ## ToUV_c(uint8_t *_dstU, \ @@ -213,7 +218,7 @@ static void pattern ## 48 ## BE_LE ## ToUV_c(uint8_t *_dstU, \ *src2 = (const uint16_t *)_src2; \ uint16_t *dstU = (uint16_t *)_dstU, \ *dstV = (uint16_t *)_dstV; \ - rgb48ToUV_c_template(dstU, dstV, src1, src2, width, origin, rgb2yuv); \ + rgb48ToUV_c_template(dstU, dstV, src1, src2, width, origin, rgb2yuv, IS_BE(BE_LE)); \ } \ \ static void pattern ## 48 ## BE_LE ## ToUV_half_c(uint8_t *_dstU, \ @@ -229,7 +234,7 @@ static void pattern ## 48 ## BE_LE ## ToUV_half_c(uint8_t *_dstU, \ *src2 = (const uint16_t *)_src2; \ uint16_t *dstU = (uint16_t *)_dstU, \ *dstV = (uint16_t *)_dstV; \ - rgb48ToUV_half_c_template(dstU, dstV, src1, src2, width, origin, rgb2yuv); \ + rgb48ToUV_half_c_template(dstU, dstV, src1, src2, width, origin, rgb2yuv, IS_BE(BE_LE)); \ } rgb48funcs(rgb, LE, AV_PIX_FMT_RGB48LE) @@ -245,7 +250,7 @@ rgb48funcs(bgr, BE, AV_PIX_FMT_BGR48BE) : ((origin == AV_PIX_FMT_X2RGB10LE || \ origin == AV_PIX_FMT_X2BGR10LE) \ ? AV_RL32(&src[(i) * 4]) \ - : (isBE(origin) ? AV_RB16(&src[(i) * 2]) \ + : (is_be ? AV_RB16(&src[(i) * 2]) \ : AV_RL16(&src[(i) * 2])))) static av_always_inline void rgb16_32ToY_c_template(int16_t *dst, @@ -257,7 +262,7 @@ static av_always_inline void rgb16_32ToY_c_template(int16_t *dst, int maskr, int maskg, int maskb, int rsh, int gsh, int bsh, int S, - int32_t *rgb2yuv) + int32_t *rgb2yuv, int is_be) { const int ry = rgb2yuv[RY_IDX]<