From patchwork Fri Dec 29 11:57:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: flow gg X-Patchwork-Id: 45383 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:6623:b0:194:e134:edd4 with SMTP id n35csp4726409pzh; Fri, 29 Dec 2023 03:57:23 -0800 (PST) X-Google-Smtp-Source: AGHT+IG3kUu44IZuUObp7SKNvEa8HoGzecC5ZK9v07of7FgYKFpB5+E/8YcvSxe0VdeUNHfqfeMw X-Received: by 2002:aa7:dac5:0:b0:555:65c0:e72b with SMTP id x5-20020aa7dac5000000b0055565c0e72bmr2199864eds.62.1703851042986; Fri, 29 Dec 2023 03:57:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1703851042; cv=none; d=google.com; s=arc-20160816; b=SkNPE7DoYIFM1VQX0bVO9azwDNCPaZx1V0Qe37HbVD7B70Gv2nPFX4tJ63RNokeQ0I Jn6JK/FokaxD6APhBA0Hgi8cVBDnn2HflBUNRqoR/TayXXK8fPMCHwGoQC4Mp/u0M6TZ qIfjrE+FbMmleFh84ItEPEbCR0jcvFC7JPds29geOqm3lV5wBYcfDpxuNDnXVOjd5PlH c4rKVxbDbGLk0sZFjXTqv2xhCC5ARZJHK61VZBQLXnRWJbRett+wSzBXpkgQvvmhtCQI 0X9IHq2ab0OH30eYCCNx9f1vY45ibCOo9x6yeMro3sMrZAaLEj2X53EKIlhdp6YZYKOJ jkEw== 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=1WiZZTQRLfnkLSc/A6mZCv8awQDulIDx9R8e8XxvCgY=; fh=e5zN9xSzcxLA6bGo3lF+CqTbY/oLwzApV03EO/RBfgQ=; b=BdPC3O84uBzkX/b4uxvdHDKJNCmhnUslVD2U6atfn5pgxUNi5+Ey1ghRRBnpjdF725 ADqTAhOne9dK47NgGO0CbOy028zoy855gXOEGEoRaC9gCu0n/ey/VNw36mxA1XWC+tdU YoyRpv1DHLhOMN4znbEHpyxA7KMynU5qJLJTRog7tfQlRLKfc7vjDNyyhFPUp1umV/2l 98AdDxLFjZOYbf7gTPBP7AatkN+4yLOvq2jvatBU9IAnvdRKdfkRempDiV1/J6jROy8I 33aUTX4/ebGXBUNuV/jGOaS9/PgrM7oAYokwwOZ2MFjQxn7jTQakbWB8OI1qZqLTBpdV 7o6g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=O9SFAzCq; 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 u20-20020a50d514000000b005532b0414b0si7614913edi.384.2023.12.29.03.57.22; Fri, 29 Dec 2023 03:57:22 -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=O9SFAzCq; 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 4FF3C68CD40; Fri, 29 Dec 2023 13:57:20 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi1-f169.google.com (mail-oi1-f169.google.com [209.85.167.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D69E168CCCA for ; Fri, 29 Dec 2023 13:57:13 +0200 (EET) Received: by mail-oi1-f169.google.com with SMTP id 5614622812f47-3bbc755167fso1698292b6e.0 for ; Fri, 29 Dec 2023 03:57:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1703851032; x=1704455832; darn=ffmpeg.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=WV78APSUaUymMbjyi24CIiHif3vO6IcrdsMtUVo4qKY=; b=O9SFAzCq/dpmBbITqU3PGbCAPHP99WEWi8njYm6p7cBckqS5JSr75NrX25MVvok4WI IwptgF8hjjfMrK8PnbxzB6gc9nG6ItYzgQ/+LdTDG2Dq1stGuC8RDUQVcO0jmom6KT67 6n0p4TzjSLU3FGrLG5wWdV7x8WvxcX6tDKPx7p0EQTDhGhQuQpD522CUjfYWu9ie3NKR JspuS4NkzJSqegWpIhPCabOyXXHHP+II6oDfZQ36I61e4ylJH5vcIndSY6c3ChG66B9n xB8cI+J1zL0HrbUpi7F/AxN7Jyejil3UoJHVUV9KQnbomL1gtx5rVnkHw2t+058V9g6X PHgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1703851032; x=1704455832; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=WV78APSUaUymMbjyi24CIiHif3vO6IcrdsMtUVo4qKY=; b=XP8bDwSmAHhDV1BZPOrDC+RPV75Zc/J9rMQp4IlqbdmwejiqZuo+ODHufW+KbQCxs1 KtouZKnMhrxFUb3dqsSvQTmsrQLgyTVI9gXPCKOwMi6IXvLQJO51jLnUKv+RTCMThTqE IIqNlxzIRb9jarGQyHnHKpwoW2qZgAcCvvpeGESk10vdaOLvftT2lxYgDxUGdS17YHuh TPWvHDIWqmMZuR4/qCz5sBN9CtoX9ATJWyAxlYHT1VNZgG01xjGYQG4lBLogZr8nS9ca 7dnVJNFKr9tALwSIngV6KDvLpNdvHCdQoa1CWTWocoKu0OPvIV+WgeihwKqKjWpBPgla o+RQ== X-Gm-Message-State: AOJu0Yz2eAOuPTqrKm/X4a1yXPa1eVniA3Epu5OqX8m2qxl2/ow6/5ZW KUOaAnPBGq7iEkyKINNQP8UVIWERWoX1NS1e5ixjI81Y0ttWluc/Kbw= X-Received: by 2002:a05:6808:1492:b0:3bb:cdcc:183a with SMTP id e18-20020a056808149200b003bbcdcc183amr3622537oiw.68.1703851031975; Fri, 29 Dec 2023 03:57:11 -0800 (PST) MIME-Version: 1.0 From: flow gg Date: Fri, 29 Dec 2023 19:57:01 +0800 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH 2/3] checkasm/svqenc: add ssd_int8_vs_int16 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: YCWMh5mblw0l Tests on x86 might fail, possibly due to a 16-bit sub overflow From 8bde7750ec7adc2437843e14d4be85fb900d1b16 Mon Sep 17 00:00:00 2001 From: sunyuechi Date: Fri, 29 Dec 2023 13:09:21 +0800 Subject: [PATCH 2/3] checkasm/svqenc: add ssd_int8_vs_int16 test --- tests/checkasm/Makefile | 1 + tests/checkasm/checkasm.c | 3 ++ tests/checkasm/checkasm.h | 1 + tests/checkasm/svq1enc.c | 68 +++++++++++++++++++++++++++++++++++++++ tests/fate/checkasm.mak | 1 + 5 files changed, 74 insertions(+) create mode 100644 tests/checkasm/svq1enc.c diff --git a/tests/checkasm/Makefile b/tests/checkasm/Makefile index 47328b59b9..f507e99993 100644 --- a/tests/checkasm/Makefile +++ b/tests/checkasm/Makefile @@ -34,6 +34,7 @@ AVCODECOBJS-$(CONFIG_JPEG2000_DECODER) += jpeg2000dsp.o AVCODECOBJS-$(CONFIG_OPUS_DECODER) += opusdsp.o AVCODECOBJS-$(CONFIG_PIXBLOCKDSP) += pixblockdsp.o AVCODECOBJS-$(CONFIG_HEVC_DECODER) += hevc_add_res.o hevc_deblock.o hevc_idct.o hevc_sao.o hevc_pel.o +AVCODECOBJS-$(CONFIG_SVQ1_ENCODER) += svq1enc.o AVCODECOBJS-$(CONFIG_TAK_DECODER) += takdsp.o AVCODECOBJS-$(CONFIG_UTVIDEO_DECODER) += utvideodsp.o AVCODECOBJS-$(CONFIG_V210_DECODER) += v210dec.o diff --git a/tests/checkasm/checkasm.c b/tests/checkasm/checkasm.c index 57613af5f7..ff07d8b18d 100644 --- a/tests/checkasm/checkasm.c +++ b/tests/checkasm/checkasm.c @@ -162,6 +162,9 @@ static const struct { #if CONFIG_PIXBLOCKDSP { "pixblockdsp", checkasm_check_pixblockdsp }, #endif + #if CONFIG_SVQ1_ENCODER + { "svq1enc", checkasm_check_svq1enc }, + #endif #if CONFIG_TAK_DECODER { "takdsp", checkasm_check_takdsp }, #endif diff --git a/tests/checkasm/checkasm.h b/tests/checkasm/checkasm.h index d7974772d3..c1f11cfa36 100644 --- a/tests/checkasm/checkasm.h +++ b/tests/checkasm/checkasm.h @@ -82,6 +82,7 @@ void checkasm_check_nlmeans(void); void checkasm_check_opusdsp(void); void checkasm_check_pixblockdsp(void); void checkasm_check_sbrdsp(void); +void checkasm_check_svq1enc(void); void checkasm_check_synth_filter(void); void checkasm_check_sw_gbrp(void); void checkasm_check_sw_rgb(void); diff --git a/tests/checkasm/svq1enc.c b/tests/checkasm/svq1enc.c new file mode 100644 index 0000000000..5d21abc8ad --- /dev/null +++ b/tests/checkasm/svq1enc.c @@ -0,0 +1,68 @@ +/* + * 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 "libavutil/mem.h" +#include "libavutil/mem_internal.h" + +#include "libavcodec/svq1encdsp.h" + +#include "checkasm.h" + +#define BUF_SIZE 1024 + +#define randomize(buf, len) \ + do { \ + for (int i = 0; i < len; i++) \ + buf[i] = rnd(); \ + } while (0) + +static void test_ssd_int8_vs_int16(SVQ1EncDSPContext *s) { + declare_func(int, const int8_t *pix1, const int16_t *pix2, intptr_t size); + + int r1, r2; + + if (check_func(s->ssd_int8_vs_int16, "ssd_int8_vs_int16")) { + LOCAL_ALIGNED_32(int8_t, p1, [BUF_SIZE]); + LOCAL_ALIGNED_32(int16_t, p2, [BUF_SIZE]); + + randomize(p1, BUF_SIZE); + randomize(p2, BUF_SIZE); + + r1 = call_ref(p1, p2, BUF_SIZE); + r2 = call_new(p1, p2, BUF_SIZE); + + if (r1 != r2) { + fail(); + } + + bench_new(p1, p2, BUF_SIZE); + } + + report("ssd_int8_vs_int16"); + +} + +void checkasm_check_svq1enc(void) +{ + SVQ1EncDSPContext s = { 0 }; + ff_svq1enc_init(&s); + + test_ssd_int8_vs_int16(&s); +} diff --git a/tests/fate/checkasm.mak b/tests/fate/checkasm.mak index 9e04b1b3cb..3d775549ee 100644 --- a/tests/fate/checkasm.mak +++ b/tests/fate/checkasm.mak @@ -34,6 +34,7 @@ FATE_CHECKASM = fate-checkasm-aacencdsp \ fate-checkasm-opusdsp \ fate-checkasm-pixblockdsp \ fate-checkasm-sbrdsp \ + fate-checkasm-svq1enc \ fate-checkasm-synth_filter \ fate-checkasm-sw_gbrp \ fate-checkasm-sw_rgb \ -- 2.43.0