From patchwork Thu Nov 23 07:08:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: flow gg X-Patchwork-Id: 44752 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:bca6:b0:181:818d:5e7f with SMTP id fx38csp393867pzb; Wed, 22 Nov 2023 23:08:39 -0800 (PST) X-Google-Smtp-Source: AGHT+IE5xA3uxVCkRj1rlvTRZDc2HBGnjCMrr3pqD9d2X9dZjBBunR8G8I2DbLU7ImzsAEjHXB8e X-Received: by 2002:a17:906:739d:b0:a06:dd05:d695 with SMTP id f29-20020a170906739d00b00a06dd05d695mr553669ejl.12.1700723319003; Wed, 22 Nov 2023 23:08:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700723318; cv=none; d=google.com; s=arc-20160816; b=x5dcR5A6trOQVonACrNa05icQBghvlqYYTz1sS1F6HdNiW0AgVE99WCC6i6CvO8nYV 9GwFuWYOTxHndbvRAOg2NtGGKq6wcv/QTn0s0ZGnEKf7o2qj0cuCBQxOQPHFzaZX56RF x10aHLmRxXMKdUqFJiTYvYA+rjuPIXVhySosvzJgUONHIOgioA62sacMMp4cSv85ZRt3 VvENq7P+QCFeQXbyvTU9dcZFSp3VU58/xrGPuTE6R7w57G4OSxnHCb9w2I9lKBpWLXb+ JbXRfve3TvbfCmxnpNh9VrDRxpLh5k8qU48GNbBNtv9nktm976s9U6Mzzg9CcBk69IPl kZUw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject:to :message-id:date:from:mime-version:dkim-signature:delivered-to; bh=wSEXVkXU/3nTkiqIJtbqMGZgjIZbK704AcHKqkZldvE=; fh=e5zN9xSzcxLA6bGo3lF+CqTbY/oLwzApV03EO/RBfgQ=; b=0SgLv+fORc7t6IkTd1Z7QqwxrJywrv3SZYrZ4EhQnwVpMJB0nAQwzwjHRfKRNZM1HF 9XDE1d02sNT3cf8gMjQjXogxVp2buFYAgn/J641LlVyowjKl1jD6pfNmNv9k582wTVle 3eIEsrYjiOtdX1wu7ImEfkqkO17FohPzA9k84/nkoH58FrxdG13BivTpaqg0kKoUriGI g3UQ8Vir7x64KJWjRcpwLN4JvWxYylpdZC+PaTm/B5jMxnDiDAwQFkMlo5ecRjHcKKY1 ChsDeCKTvkv6yDG0QbIdOOUg1iiZRS7UYdU9qF78DGHNEuO+O3gnd0VoOFT2WW4Vf+DI r1SA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=bfjkgevo; 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 dt13-20020a170906b78d00b009e5ed8462f1si383658ejb.329.2023.11.22.23.08.38; Wed, 22 Nov 2023 23:08:38 -0800 (PST) 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=bfjkgevo; 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 8A53C68C9DE; Thu, 23 Nov 2023 09:08:35 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f41.google.com (mail-qv1-f41.google.com [209.85.219.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B57FA68C9FE for ; Thu, 23 Nov 2023 09:08:28 +0200 (EET) Received: by mail-qv1-f41.google.com with SMTP id 6a1803df08f44-66d0ceba445so3294926d6.0 for ; Wed, 22 Nov 2023 23:08:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700723307; x=1701328107; darn=ffmpeg.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=ymsrzaZkioYIs/cZKAImU/crFft8oacBv17TUwmEnXk=; b=bfjkgevoeBgc8kY/pO6nWr70sJc92to9e59UWKJzihfcAGhVCiSHiBbvVlNye6VsBo N3FYNbZ/AvQ0eImGu7fg5FTZOu69ViMf5Bba6i6sxpyuQ6f9dpROlLrDWKTcIKzZhTfh SjTyf72jofFyq0lp2iaWvPDGlGRfAJnJBv9OCEn0v8FMNvHCAZFZTw0JuazhsdioCmJK uoE23iOOiIPKA31JBaHN5ysLz27nbXRMYfWx0GPKur+rXkzQCyJzq6BlpnLZWdpiOKJ+ GcTE5YFjxH4ytN9C8zhDGhUuV+u4bQl92bfcESZ4Plr/LFWe3dJSu5C3AmX0Z9eMfJLF gVpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700723307; x=1701328107; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=ymsrzaZkioYIs/cZKAImU/crFft8oacBv17TUwmEnXk=; b=YOYL8gPJOb0k3wB5MkS165IusQ2O9jqbMt0vVUTev/pzk3/C3p/XtFEvkLvKwE5U86 6so+7aDq5oUFErSfq+cCZAIpZtbYhSulW+sUxbTtq6aQyvkZfcyoPLGxzMJqqyhAuaj+ WJfkjSJdM0kGfDB2AYKy+c50Nyv5FySq3gN+NeYeQWTv9DTkvzi5PPw2zHPzB4VNo0Qe oOeyht9r54DVIwQB0+tWiFiHIG79RxcMfaJ7PQRcZsrFv6tqKhUF2wsim8T/t+vcM14Z N0xwfSwZWqyKZtuYoJ5jVFLMK8rKEv2Omti0yD8z/mNgOUQiCUpBcew1HHhsw8J4ddST NSSg== X-Gm-Message-State: AOJu0Ywwkf8pgQ4b2RSMTdlZcL+D3J/rRsXf5EPND7KOWTLm6Tp4YkgM hs5ni5VWQVwCxxpJtAPkv7sjyt9Hp4cUot9oa0i5Q6f56OYLDrSx X-Received: by 2002:ad4:5bc4:0:b0:672:4404:c109 with SMTP id t4-20020ad45bc4000000b006724404c109mr5096912qvt.24.1700723307171; Wed, 22 Nov 2023 23:08:27 -0800 (PST) MIME-Version: 1.0 From: flow gg Date: Thu, 23 Nov 2023 15:08:16 +0800 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH] checkasm/ac3dsp: add float_to_fixed24 test 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: kL+C47bEbAUx From 02dd534bd602ba3ec79e51070934949a98f780e2 Mon Sep 17 00:00:00 2001 From: sunyuechi Date: Wed, 22 Nov 2023 14:57:29 +0800 Subject: [PATCH] checkasm/ac3dsp: add float_to_fixed24 test --- tests/checkasm/Makefile | 1 + tests/checkasm/ac3dsp.c | 71 +++++++++++++++++++++++++++++++++++++++ tests/checkasm/checkasm.c | 3 ++ tests/checkasm/checkasm.h | 1 + 4 files changed, 76 insertions(+) create mode 100644 tests/checkasm/ac3dsp.c diff --git a/tests/checkasm/Makefile b/tests/checkasm/Makefile index 8bc241d29b..53742c93ae 100644 --- a/tests/checkasm/Makefile +++ b/tests/checkasm/Makefile @@ -1,5 +1,6 @@ # libavcodec tests # subsystems +AVCODECOBJS-$(CONFIG_AC3DSP) += ac3dsp.o AVCODECOBJS-$(CONFIG_AUDIODSP) += audiodsp.o AVCODECOBJS-$(CONFIG_BLOCKDSP) += blockdsp.o AVCODECOBJS-$(CONFIG_BSWAPDSP) += bswapdsp.o diff --git a/tests/checkasm/ac3dsp.c b/tests/checkasm/ac3dsp.c new file mode 100644 index 0000000000..2ccfa4a9d1 --- /dev/null +++ b/tests/checkasm/ac3dsp.c @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2023 Institue of Software Chinese Academy of Sciences (ISCAS). + * + * 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 "libavutil/mem.h" +#include "libavutil/mem_internal.h" + +#include "libavcodec/ac3dsp.h" + +#include "checkasm.h" + +#define randomize_float(buf, len) \ + do { \ + int i; \ + for (i = 0; i < len; i++) { \ + float f = (float)rnd() / (UINT_MAX >> 5) - 16.0f; \ + buf[i] = f; \ + } \ + } while (0) + +static void check_float_to_fixed24(AC3DSPContext *c) { +#define BUF_SIZE 1024 + LOCAL_ALIGNED_32(int32_t, v1, [BUF_SIZE]); + LOCAL_ALIGNED_32(float, v2, [BUF_SIZE]); + + declare_func(void, int32_t *, const float *, unsigned int); + + randomize_float(v2, BUF_SIZE); + + if (check_func(c->float_to_fixed24, "float_to_fixed24")) { + LOCAL_ALIGNED_32(int32_t, dst, [BUF_SIZE]); + LOCAL_ALIGNED_32(int32_t, dst2, [BUF_SIZE]); + + call_ref(dst, v2, BUF_SIZE); + call_new(dst2, v2, BUF_SIZE); + + if (memcmp(dst, dst2, sizeof(*dst) * 10) != 0) + fail(); + + bench_new(v1, v2, BUF_SIZE); + } + + + report("float_to_fixed24"); +} + +void checkasm_check_ac3dsp(void) +{ + AC3DSPContext c; + ff_ac3dsp_init(&c); + + check_float_to_fixed24(&c); +} diff --git a/tests/checkasm/checkasm.c b/tests/checkasm/checkasm.c index 708119e7c6..f37c7fad3a 100644 --- a/tests/checkasm/checkasm.c +++ b/tests/checkasm/checkasm.c @@ -78,6 +78,9 @@ static const struct { { "aacpsdsp", checkasm_check_aacpsdsp }, { "sbrdsp", checkasm_check_sbrdsp }, #endif + #if CONFIG_AC3DSP + { "ac3dsp", checkasm_check_ac3dsp }, + #endif #if CONFIG_ALAC_DECODER { "alacdsp", checkasm_check_alacdsp }, #endif diff --git a/tests/checkasm/checkasm.h b/tests/checkasm/checkasm.h index cfea868ff1..a4238b1dfa 100644 --- a/tests/checkasm/checkasm.h +++ b/tests/checkasm/checkasm.h @@ -43,6 +43,7 @@ #include "libavutil/timer.h" void checkasm_check_aacpsdsp(void); +void checkasm_check_ac3dsp(void); void checkasm_check_afir(void); void checkasm_check_alacdsp(void); void checkasm_check_audiodsp(void); -- 2.43.0