From patchwork Wed Apr 17 18:01:37 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Ramiro Polla X-Patchwork-Id: 48110 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:ce4e:b0:1a9:af23:56c1 with SMTP id id14csp1189457pzb; Wed, 17 Apr 2024 11:02:09 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCW8TJCifwnXcIgU5/A+bJJFxIWqWEJYm6t64cIuKXYeHEtqwGpcB4/gHahXWQvqZLLd35ZDCYlTxrVeqlrO0jE7wHs1t7JLQSWBbw== X-Google-Smtp-Source: AGHT+IHld3zOpxXkuRwKDwSRxcD3cfZkV//uLLnzzP4poTe6HXA55zDKGsBz1ES3Gx5PtDXaF+Vn X-Received: by 2002:a17:906:3b14:b0:a55:201f:4b62 with SMTP id g20-20020a1709063b1400b00a55201f4b62mr210929ejf.0.1713376929516; Wed, 17 Apr 2024 11:02:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1713376929; cv=none; d=google.com; s=arc-20160816; b=dbGPiKvMAWsx6I8HB7rUzjvpEonRPNC2TJIyK+C7Mi4SjXTw214AQCeF6JdIYvPcVF 6ntmSapX2PAxqL/9PG6San5xh86I63UL6yCSy2a9l3YskmwpwxlwBEJy/uekPU5dcKjm v3b3vdyW1PFIqaZN/ia7czVilFOf2I+n1kjEjGwfgdbItjXmTKiZ6I3/xlGwPgpkR+Rx T0Ie6vj27Mudfqxbw7UnVSrj+WkQaTH36mCRUI6avKNd/znsGB9wUsXNmwRAVldqq/OC iYIPj112RWsDTR84wO0IMW1pm4nYMHB4wyaUPl35vtHciDDfLwcaICrg1B3Wyl8muNUI SHGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=HVYBQzVZAsBPZcKOZHLknbmHa2C+R7dwJkz7TiRlwus=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=BWaCqg9U0tGLGbQTkGo6SvX2sAbNqaSsMxJ/THEdqMwO2pUsILygrKMyCX25UbR8PJ JMaYIKzIzDEEd7wCZjQb+EZdWa82gEMMvKsVq7pz1kw612ydhjGyD/VzXpek9OghIhRJ kp6vDInEX7Nvpc+VEpn+Z8lBUtIRY80c65rhiPvYZeFC2yhkBggoO1tzx7GZVMnpVPLK OQTu2H87PxyQNCzOjnKyrB5mOxMRikvO7DogVhToi+gz/857qoJ/qURYWy8sM5I2v/Er WRpO0T90q8TKskJ3NYRkWrL/IENh8iPdtCvC52fKd3jJwMuo/UKGjO8BcKrpYyG7L+fp 2W6Q==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=llRNhfRk; 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=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id c5-20020a17090603c500b00a51c35ffb75si6926173eja.381.2024.04.17.11.02.09; Wed, 17 Apr 2024 11:02:09 -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=@gmail.com header.s=20230601 header.b=llRNhfRk; 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=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CFAF668D350; Wed, 17 Apr 2024 21:01:58 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ot1-f43.google.com (mail-ot1-f43.google.com [209.85.210.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A051568BF8B for ; Wed, 17 Apr 2024 21:01:52 +0300 (EEST) Received: by mail-ot1-f43.google.com with SMTP id 46e09a7af769-6eb55942409so3484933a34.1 for ; Wed, 17 Apr 2024 11:01:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1713376909; x=1713981709; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=dJ0dFuHbEOnkslW6mzEJZT5yAxZFEk2bNgxFRFyQXVo=; b=llRNhfRkomEvzV6/1nz7QIO8umAOJZVbbQa5Zn/LX0TfOPW5FJJ/Tni4D15bPuuhNP TmAtD7rdgQROu+/LFkz1WQFlmuNcjQmL0Es31x368nhY9cQSMVaR2m/coYgeVa3WYefM wD1a13PAR7IKxLgvw7xKTzuaUx+zG4Foii3Suy6rE8eOtGd5gw/Cq0Wp71Zu20wiwRD4 HXResK0SO5cLm1mnmxghlweXO7uyvzPICnE/RJTpXOdDpvWZeaMOwe8uwI9/cyCl/Mnd pc/1epyjmg5lKqweF2J5Af/txgrQLkMC8NI0xF62TlxCiIp/33MOs5iAbzPFyCYo6h1x Dj5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713376909; x=1713981709; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dJ0dFuHbEOnkslW6mzEJZT5yAxZFEk2bNgxFRFyQXVo=; b=DE8JpBkiIKQo2gcK1dr95UIg+Mc7m7w2oDQfGKv5FsQskmsGNveI9BW4q7/DF93JCO 8e6xW3XKhiMvEmluf1HjUpEK6SlrVWIdMczu8GBqjr4ca5V2SokJ3h4D5elR5eNybhnr EtBNspldaDoetZg9qpehvDztHpjZ461KikpyYqAdeP32N9H43EEdeaMjv9F1EGM1SOmf IR6wL+YL9F5PEaJiB6almsqzXZ1GDOFWCBaQBVFHkyrG4+T6WWByNTv2IgwX9Xdkggk/ B8FK4Xwcg2H3YMAzDdSLqAxw/qdfF4x2zf5vqIygGI6dAEqUA1285EPIf42ENNigdbZQ mlLA== X-Gm-Message-State: AOJu0YyB0qeY4F8gq/BVeTOpazmBsMl39NiC6rNOoGAWPZAgbkHXkQhA JuemFLIMNII4IrmQLbbqbYrcMCdYOL842rZ5WtLviQC65Vh+0D6urQf6fK8E X-Received: by 2002:a05:6870:3119:b0:22e:7de8:c745 with SMTP id v25-20020a056870311900b0022e7de8c745mr304300oaa.56.1713376909617; Wed, 17 Apr 2024 11:01:49 -0700 (PDT) Received: from localhost.localdomain ([206.0.71.7]) by smtp.gmail.com with ESMTPSA id n8-20020a9d64c8000000b006e695048ad8sm2791141otl.66.2024.04.17.11.01.46 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Apr 2024 11:01:49 -0700 (PDT) From: Ramiro Polla To: ffmpeg-devel@ffmpeg.org Date: Wed, 17 Apr 2024 20:01:37 +0200 Message-Id: <20240417180138.21864-2-ramiro.polla@gmail.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20240417180138.21864-1-ramiro.polla@gmail.com> References: <20240417180138.21864-1-ramiro.polla@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 1/2] checkasm: add test for fdct 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 9LuQ7/Tl7hiE Reviewed-by: Martin Storsjö --- tests/checkasm/Makefile | 1 + tests/checkasm/checkasm.c | 3 ++ tests/checkasm/checkasm.h | 1 + tests/checkasm/fdctdsp.c | 68 +++++++++++++++++++++++++++++++++++++++ tests/fate/checkasm.mak | 1 + 5 files changed, 74 insertions(+) create mode 100644 tests/checkasm/fdctdsp.c diff --git a/tests/checkasm/Makefile b/tests/checkasm/Makefile index 2673e1d098..70a6120c70 100644 --- a/tests/checkasm/Makefile +++ b/tests/checkasm/Makefile @@ -4,6 +4,7 @@ AVCODECOBJS-$(CONFIG_AC3DSP) += ac3dsp.o AVCODECOBJS-$(CONFIG_AUDIODSP) += audiodsp.o AVCODECOBJS-$(CONFIG_BLOCKDSP) += blockdsp.o AVCODECOBJS-$(CONFIG_BSWAPDSP) += bswapdsp.o +AVCODECOBJS-$(CONFIG_FDCTDSP) += fdctdsp.o AVCODECOBJS-$(CONFIG_FMTCONVERT) += fmtconvert.o AVCODECOBJS-$(CONFIG_G722DSP) += g722dsp.o AVCODECOBJS-$(CONFIG_H264CHROMA) += h264chroma.o diff --git a/tests/checkasm/checkasm.c b/tests/checkasm/checkasm.c index 8be6cb0f55..92c3a30ad3 100644 --- a/tests/checkasm/checkasm.c +++ b/tests/checkasm/checkasm.c @@ -106,6 +106,9 @@ static const struct { #if CONFIG_EXR_DECODER { "exrdsp", checkasm_check_exrdsp }, #endif + #if CONFIG_FDCTDSP + { "fdctdsp", checkasm_check_fdctdsp }, + #endif #if CONFIG_FLAC_DECODER { "flacdsp", checkasm_check_flacdsp }, #endif diff --git a/tests/checkasm/checkasm.h b/tests/checkasm/checkasm.h index f90920dee7..d3e8f9a37a 100644 --- a/tests/checkasm/checkasm.h +++ b/tests/checkasm/checkasm.h @@ -85,6 +85,7 @@ void checkasm_check_blockdsp(void); void checkasm_check_bswapdsp(void); void checkasm_check_colorspace(void); void checkasm_check_exrdsp(void); +void checkasm_check_fdctdsp(void); void checkasm_check_fixed_dsp(void); void checkasm_check_flacdsp(void); void checkasm_check_float_dsp(void); diff --git a/tests/checkasm/fdctdsp.c b/tests/checkasm/fdctdsp.c new file mode 100644 index 0000000000..68a9b5e435 --- /dev/null +++ b/tests/checkasm/fdctdsp.c @@ -0,0 +1,68 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with FFmpeg; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include + +#include "checkasm.h" + +#include "libavcodec/avcodec.h" +#include "libavcodec/fdctdsp.h" + +#include "libavutil/common.h" +#include "libavutil/internal.h" +#include "libavutil/mem_internal.h" + +static int int16_cmp_off_by_n(const int16_t *ref, const int16_t *test, size_t n, int accuracy) +{ + for (size_t i = 0; i < n; i++) { + if (abs(ref[i] - test[i]) > accuracy) + return 1; + } + return 0; +} + +static void check_fdct(void) +{ + LOCAL_ALIGNED_16(int16_t, block0, [64]); + LOCAL_ALIGNED_16(int16_t, block1, [64]); + + AVCodecContext avctx = { 0 }; + FDCTDSPContext h; + + ff_fdctdsp_init(&h, &avctx); + + if (check_func(h.fdct, "fdct")) { + declare_func(void, int16_t *); + for (int i = 0; i < 64; i++) { + uint8_t r = rnd(); + block0[i] = r; + block1[i] = r; + } + call_ref(block0); + call_new(block1); + if (int16_cmp_off_by_n(block0, block1, 64, 2)) + fail(); + bench_new(block1); + } +} + +void checkasm_check_fdctdsp(void) +{ + check_fdct(); + report("fdctdsp"); +} diff --git a/tests/fate/checkasm.mak b/tests/fate/checkasm.mak index 3b5b867a97..10a42f2f9d 100644 --- a/tests/fate/checkasm.mak +++ b/tests/fate/checkasm.mak @@ -8,6 +8,7 @@ FATE_CHECKASM = fate-checkasm-aacencdsp \ fate-checkasm-blockdsp \ fate-checkasm-bswapdsp \ fate-checkasm-exrdsp \ + fate-checkasm-fdctdsp \ fate-checkasm-fixed_dsp \ fate-checkasm-flacdsp \ fate-checkasm-float_dsp \