From patchwork Tue May 3 06:37:45 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 35554 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:a885:b0:7f:4be2:bd17 with SMTP id ca5csp257442pzb; Mon, 2 May 2022 23:38:59 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwuVks6G1tbsF/+w1oTwyBAKWoavjj44VgexaHo7eGlshivqKy26f6duWwHo1Z9LPnLGF8k X-Received: by 2002:a17:907:1c0d:b0:6f3:b742:ef56 with SMTP id nc13-20020a1709071c0d00b006f3b742ef56mr14391992ejc.504.1651559938975; Mon, 02 May 2022 23:38:58 -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 a17-20020a170906685100b006f3941cda0bsi12657655ejs.129.2022.05.02.23.38.58; Mon, 02 May 2022 23:38:58 -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=L5HeoDHp; 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 93C4568B39A; Tue, 3 May 2022 09:38:54 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075030.outbound.protection.outlook.com [40.92.75.30]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 77BF168B37D for ; Tue, 3 May 2022 09:38:47 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RqGn5pRCd4Iuv1JntLtsPYr3iPCTPEPiJiy/nVZscnPmWIJQvDOckx+PKZGbL4meGxw7d/rt0Iaw5QFBbve1bFsMmwiXytSulHJK5s+wDUpr0DQeFBK8nD2dttcg1F2LgtVIW86m/FqYA9wzPEc2MBBrxCT+2IkK7ikVO8Hmr4f0oc7G0B16V+hC+NdtqfGTwEGDIfyBf7MKl79Llhm+HKb4SHvj5JpQIxwlVC/eJDg4dWz8L02f9R18RPwTroz8NwjKpADI2D/J/k7SF6ygeC9J2BwA3RYGphniwZGj6afLll6DegRpUO6bOIPxGZtSNubhjFcx9sh56tGyWSQyzA== 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=T0j5EhRtr3XrQLZCSkY9dlhHYlE8OKpdhyfoM1BOAcM=; b=hRnQj+gjrk4EAkG1deAr/MP+lYP0TGIU7QO0Puefm6ggF1eMsS/hzP81jVMINBrX6bcTxpsMLcA156wbp4VtTwK64OaQwy0RnpE9qB0FEVn7gSgma+9yLYB/iwywzq06KDvx+0t9zufXiMTIowtugtW4wlMQeNw0nNwgLUJEEzP3uVU8zV2var8p8Ba8F0mSsrZF8XSAyL63dHYlC+li2LxU3sgTYXdZLKLLUBfRPuET8c9iY20JFiasZIe4bUqZziHlsPbeHlqnCNR9JdsRpHwLwB6DX0I826xWJjFTmCpcWcTGjP0kHcz5Vo0TVMAfozmChxA/QzjEOvcg0AeGmQ== 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=T0j5EhRtr3XrQLZCSkY9dlhHYlE8OKpdhyfoM1BOAcM=; b=L5HeoDHp7gSfcSnTAE6MXnj850oBxTIOpPR0ceAAiZzlce/7Yx6rY2LgGCY9MH/WF+rFsqDMOgDm9pfMcnFnl6z7hhiJuhO+As5p+ER7qcKG3ptVBcueeFZl93KY6RAb8ot4WNil7q4q3M8F1CxDeyL64j7do5K92wAR0pqVGwFsc8z3PpCCSQr4tiMf9a4rSTCW37Th8d1FK4jjvAkmCPBc/7V9Fcapwudba8EGzbY7T9hiLi2kpWhg9lMuuj0ngw9WU7np3DPyvwEukG8rYCjdKj4D24PI6KrBxIcL0aXYnFKJSRg+hHG6ozvXYwhdoyBNgJ6ExoVPXxKb0GHvNw== Received: from AS8PR01MB7944.eurprd01.prod.exchangelabs.com (2603:10a6:20b:373::5) by VI1PR0102MB3230.eurprd01.prod.exchangelabs.com (2603:10a6:803:8::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Tue, 3 May 2022 06:38:45 +0000 Received: from AS8PR01MB7944.eurprd01.prod.exchangelabs.com ([fe80::1854:2c30:7ba1:c431]) by AS8PR01MB7944.eurprd01.prod.exchangelabs.com ([fe80::1854:2c30:7ba1:c431%6]) with mapi id 15.20.5206.024; Tue, 3 May 2022 06:38:45 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 3 May 2022 08:37:45 +0200 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [oRhfGi0aMmXs0BDmR2Six7pwKNKmhSoP] X-ClientProxiedBy: ZR0P278CA0014.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:16::24) To AS8PR01MB7944.eurprd01.prod.exchangelabs.com (2603:10a6:20b:373::5) X-Microsoft-Original-Message-ID: <20220503063751.2261222-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7262a518-3594-4a30-1b5a-08da2ccf9282 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiTQEkMEhbgfP1CXQyS+IofoBRbiyeaXeINfe5tVLtEMx85Xm0OlzWhc7mJspwkWB1plAmmB7YAjZiIMgTTUoM7Yb/350m52RlPQeQOghaUyW7ilCvBI8R6PRTY8KEf6eP3gj7p2OY/jiGG5djMUktlemC6hMESVXKeMW6Y5O4xReeaN0+fMNmZsOUNUk8NHhUbY79O/ogW5KBIr3c93RSBrzx54OgAzM1mauOrnPV/pUPI+kbjbPc5Y28IAASN6kfmj1HS/Ipee10jFF9j84MfIcGV2iQLO/WRIUAOLn7CHpZ0sTkO0X3nOUOCG8YiuzRwzPidS5wAv18Lbn+qYYZJBL8BYae/WvhphmtKKlzk80X3tBpvzJyc1O23MCOrRug+5scRj1lPqoQjSE8tSweRlR8wabd+owRLTqc6aIb5ec7zZZG+Th1GJ/KmsPOW5LnVf8dgbDU34bNckyI1+Pm/EBxKdwbGKdJIXAyyAzFWBZseyXCYx0RXjecQZ45djBZbjEqrfdxs7odblH2HvfsVyYIU34bPAocwqa1FEZwOnFMDqG/9yv++f1ebFYqEXLHMPbwBUUOdYp+1u9wbtBE54xlqrEow2pDB4tHjq2bZ9d5m/vq+CLbvPfBhvg2TbHKx/3wj7+1UPGBv9Cn8dV6G58OqgmXzxntGTuO4fIUxUYPwf7YhglLfkiMt66so9IeNU2ttnnTBnnxTxdC4nbxv8eXtW6YWAEMbrq7VspbjSAa6Jw0UskQmHfEEHQZdnilU= X-MS-TrafficTypeDiagnostic: VI1PR0102MB3230:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EP8qSx6euvMp+FjecSLK/01K594jYafjGxzfsXPYsP+Cgl9Sn0mtakuEAITPRQzyYHblHYy1MeffKQs3hnAul3Gskmr1SkECnisRVxEj7IF7+U8EJA0fTl7toXxI360sJ6xB7fkKSfYWC4amwtKH2fPjU4+heQnfi+mIh8QGGH9j3X4PX1K7mxhYj7C4fpyKymNRyG1IhMunSsfPsnj/Vr7AAvEYtQWAM5jVT/ctlCwmJ0M8wfumN3PN7OHvsfFyvimpdQvHz55khXSuLrhYXixBKihVjxX+Gg00Yj0SwHWSOnYDljr12VWITbNkU9wjynrdq6YGwh/vsAFeQKj+yavyBuCF6EE2NVDWcXEEHx8kX0XXfKCMiNcY2AtzkfmjF7mwW86mUst2bCtmJCJ4IQ6RqVf9YlSiehtR/mE9QRLMdylbhGidmnQaNvOOUZ1izz03xcXumaX1KZK5Mlp1HjsFQldi85uX2ixdEFMF2HnHjmgEUH16yNCgju+aK4RCT0FeSvioSgaIazR+bG7+Q+lfguZfzTHIysSYZsEk6vtYptYig2QNECArno73cwdcxCFqY1KZgCXGfebf+QdjQg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: nGusxiVzUMVRHeK/zJqqd/+iruotTDv8iHU7uEoGfBhyEs4xG+EV5QivxfTJ6cnVU71HLSWDiKx0JhOQMXxDmTNMZRi1aBz98hABGTuIBB7Moz7HGwuRRSrZYBUGrqBjwR8KVSuas7RgeiEsJPGiK6yovXG+yTWC2ynlNlJNMDSwgZjrxRrel8fzVhngQHcHGPiA/9qnN2lSuYaVzR18eSQFS2Oujnhf+8oC9MRXaFkLORr1W1zUk7UqgWRPJilmFUL6wRQJoLUJllvRiEfmrog+Z0fXTbepWbNq2rPou9lebAFhEfqleQjaZmxHBgyW0TUmNSXh3NB1ZLR/v7tvc5xQzPVqCkNVMxzv0VAujdNnJtFacdVMJF1nRQ4s8J0Uo5x7gTVZj6wRO7WsFZV7LvcgaRolbMqpoTwmUAc9waq2x8R49PsK701NsGhGLcn3qTxwIOsaCrhW3efFNUllhwYMgj6X9ZuBD/eSInyuJuruhOOb8OnW5ZKYM4Cn5e3z00fCjIlwF7/lG8p4Z6D/aaW2hSp5e8Tqp0qq4KNYiXWmB8ZMW8kai0fURTOS+1gWYltycc0qDtTFkvjzryu2qHsfSfv4zKdeOXWpLo4mlQcQ0wShvhFR/abI6FO51j6sNtZRtx1kfzIMBgzJE32k/ssYnGRhJ+y+Lrz+0zI3yWMan9QgEb0jHEGd4JIQ7M7BE6FHLLqyiLr3aLZjCQtM4EQB4kKxA/KJjIQrPHABVlJhQQrwbD4t6PxnGF6TEpqfmRZv+W9FHPoo/W4nwfIzZzmAtDc5ySLGrKxXj+kSgDDJdjypDlE8HwJBw6/hBFAP5K/09PF4CUxi0wVGiRISapc+Ft76/m2lt9QxZ+QyxbwO0zRsMVXlvqtBF42xDunRo4h1NZcwDlMKRm3WTZejBXe9Bp6iR8vxzq5R3QWlODSYv6W1FDEhGyQrajJmM5zKoXTbHafIPctM7IxCS0IMbHWjUNuFLxjHkJ4Q3F+Dg1vY5Gt1tYJRx9oyK5qkHMoYNep1gX/C1UHyDIWiamcTNHR98HMnmi8BwRZ9RER9zrGvEGTrMlRoQQK/ILxS6oTqXKrSLW8vi+7AkGTdIP1XvufPr1zpVtz7ITHFsMWnRb7hMcEJ1ejf8kOdIVhY72bSTRglJ8ahxw75Rlm7okTnXZ5Mc1kSZCfjLJc+iPknKIdUSjeX9jR8cgqMvsKbDZejDNiUyom3mJYm95xeWdxgg+RHvzvJRxu347hYn1umrSuPU5nB6ZgTowIOPCyQioHuh+tW1ys8D2MN9TFjPoIJM2zLD2jGTsvG/XkFsHY2I6IY2x2xxj4I/DtdDTWjvmTLaxMFWXkArsXgea4y8g9/0b5999PCU3/iATgFywfS2QEjNx8udcCunVkLlRuwHGkKoxLGu0Cna5bSQjdxcv+5JPNcf7ZeDeORE2xo+wqwf5DlUqZY/koFK9cJJTw3wyoLwNITXfYTLpMAJK+UcgbwDw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7262a518-3594-4a30-1b5a-08da2ccf9282 X-MS-Exchange-CrossTenant-AuthSource: AS8PR01MB7944.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 May 2022 06:38:45.7641 (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: VI1PR0102MB3230 Subject: [FFmpeg-devel] [PATCH 04/10] avfilter/vf_eq: Move ff_nlmeans_init into a header 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: 6FY9JlIxn48h This removes a dependency of checkasm on lavfi/vf_eq.o and also allows to inline ff_eq_init() irrespectively of interposing. Signed-off-by: Andreas Rheinhardt --- libavfilter/vf_eq.c | 27 --------------------------- libavfilter/vf_eq.h | 26 +++++++++++++++++++++++++- 2 files changed, 25 insertions(+), 28 deletions(-) diff --git a/libavfilter/vf_eq.c b/libavfilter/vf_eq.c index 80ab21efb3..46636dd29d 100644 --- a/libavfilter/vf_eq.c +++ b/libavfilter/vf_eq.c @@ -74,26 +74,6 @@ static void apply_lut(EQParameters *param, uint8_t *dst, int dst_stride, } } -static void process_c(EQParameters *param, uint8_t *dst, int dst_stride, - const uint8_t *src, int src_stride, int w, int h) -{ - int x, y, pel; - - int contrast = (int) (param->contrast * 256 * 16); - int brightness = ((int) (100.0 * param->brightness + 100.0) * 511) / 200 - 128 - contrast / 32; - - for (y = 0; y < h; y++) { - for (x = 0; x < w; x++) { - pel = ((src[y * src_stride + x] * contrast) >> 12) + brightness; - - if (pel & ~255) - pel = (-pel) >> 31; - - dst[y * dst_stride + x] = pel; - } - } -} - static void check_values(EQParameters *param, EQContext *eq) { if (param->contrast == 1.0 && param->brightness == 0.0 && param->gamma == 1.0) @@ -174,13 +154,6 @@ static int set_expr(AVExpr **pexpr, const char *expr, const char *option, void * return 0; } -void ff_eq_init(EQContext *eq) -{ - eq->process = process_c; - if (ARCH_X86) - ff_eq_init_x86(eq); -} - static int initialize(AVFilterContext *ctx) { EQContext *eq = ctx->priv; diff --git a/libavfilter/vf_eq.h b/libavfilter/vf_eq.h index cd0cd75f08..a5756977d2 100644 --- a/libavfilter/vf_eq.h +++ b/libavfilter/vf_eq.h @@ -100,7 +100,31 @@ typedef struct EQContext { enum EvalMode { EVAL_MODE_INIT, EVAL_MODE_FRAME, EVAL_MODE_NB } eval_mode; } EQContext; -void ff_eq_init(EQContext *eq); +static void process_c(EQParameters *param, uint8_t *dst, int dst_stride, + const uint8_t *src, int src_stride, int w, int h) +{ + int contrast = (int) (param->contrast * 256 * 16); + int brightness = ((int) (100.0 * param->brightness + 100.0) * 511) / 200 - 128 - contrast / 32; + + for (int y = 0; y < h; y++) { + for (int x = 0; x < w; x++) { + int pel = ((src[y * src_stride + x] * contrast) >> 12) + brightness; + + if (pel & ~255) + pel = (-pel) >> 31; + + dst[y * dst_stride + x] = pel; + } + } +} + void ff_eq_init_x86(EQContext *eq); +static av_unused void ff_eq_init(EQContext *eq) +{ + eq->process = process_c; + if (ARCH_X86) + ff_eq_init_x86(eq); +} + #endif /* AVFILTER_EQ_H */