From patchwork Fri Mar 24 05:48:28 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Turner X-Patchwork-Id: 3081 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.50.79 with SMTP id y76csp1100133vsy; Thu, 23 Mar 2017 22:55:48 -0700 (PDT) X-Received: by 10.28.11.130 with SMTP id 124mr1156717wml.3.1490334948643; Thu, 23 Mar 2017 22:55:48 -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 a2si1241857wmd.120.2017.03.23.22.55.48; Thu, 23 Mar 2017 22:55:48 -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=@googlemail.com; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=googlemail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7BEF968920C; Fri, 24 Mar 2017 07:55:25 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi0-f65.google.com (mail-oi0-f65.google.com [209.85.218.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6DC41688393 for ; Fri, 24 Mar 2017 07:55:18 +0200 (EET) Received: by mail-oi0-f65.google.com with SMTP id l203so384155oia.3 for ; Thu, 23 Mar 2017 22:55:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=from:to:subject:date:message-id; bh=0B2D8HvJBddo06N7G0bvpOtOsI+SkGLxFiYbZMqbVQQ=; b=Qy02ksInwFCjK5lVPwhC8mJ4V+8ka4Bj316oBi4MenjTFGKYdcNgIlbbdLh8Mr291e YalR7AkF0fO5v15CQgg/rgDc+UOmxhjlwGRCE96ezobsB8LKsonclRq1fSO15fPMKBPr mOKFcTXJ4iLSEEHXD7gCFDpSwomYldOaaSjNPL8FtckJEw90o7pac5GFENroc35/YMKf xUepAi5mPgEqLWJmVCrOp1kcRvXBZvscyWFGi50wbhH1pnR7e+f/ifkIvKOg8WGzjusY wcN6rISXSuOHgfL/s+eGpSKOqybActR9yPANMXt+UyOSYOK6JlAUVgwzeg2m8R21/sZm 8hsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=0B2D8HvJBddo06N7G0bvpOtOsI+SkGLxFiYbZMqbVQQ=; b=rHCtM5gTNdM2r1XoPGl3iUTcFAQX+QT3hjYAd177JZ/W2p9TPUFT5v9QhgHMl5Mrvk ugTKTCl/QaS3jrw6g82fIlwdCvCPlE0fT8kz3qESq21ifJc9MuMMdpReKUQo1TCelNWQ XTO5xzwdwCePsknnDmQEQeltEvvyFQ7D1YBvh9BSBpM7GeNhLzVn1TTHLxik1LMcm1qs l1zA1uLrLabLNMt0zLzA/fugrdBNxz29Zmb9SD4sqwZgaBAdA7rQwbWASgah3NO78eTG YddqKJoShqzX1Eq8vnDn3+cshUvWVg5KB2UeUsndsa05N05RbJgvSNPb9KVvGVZlv8MD 9mjQ== X-Gm-Message-State: AFeK/H3J94EvZOlSA3yiElm03ng28OY4lxTVdn2QBZM6vh5e4CzmaDl8n9A5MwrhhQR7IQ== X-Received: by 10.202.84.69 with SMTP id i66mr3614491oib.74.1490334511792; Thu, 23 Mar 2017 22:48:31 -0700 (PDT) Received: from Zany.attlocal.net (76-225-50-170.lightspeed.bkfdca.sbcglobal.net. [76.225.50.170]) by smtp.gmail.com with ESMTPSA id v74sm652607oie.3.2017.03.23.22.48.30 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 23 Mar 2017 22:48:31 -0700 (PDT) From: Thomas Turner To: ffmpeg-devel@ffmpeg.org Date: Thu, 23 Mar 2017 22:48:28 -0700 Message-Id: <1490334508-23129-1-git-send-email-thomastdt@googlemail.com> X-Mailer: git-send-email 1.9.1 Subject: [FFmpeg-devel] [PATCH] avcodec/tests: added test for celp_math.c X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: Thomas Turner --- libavcodec/Makefile | 1 + libavcodec/tests/celp_math.c | 48 ++++++++++++++++++++++++++++++++++++++++++++ tests/fate/libavcodec.mak | 5 +++++ 3 files changed, 54 insertions(+) create mode 100644 libavcodec/tests/celp_math.c diff --git a/libavcodec/Makefile b/libavcodec/Makefile index 89296cd..05be516 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -1024,6 +1024,7 @@ SKIPHEADERS-$(CONFIG_VDPAU) += vdpau.h vdpau_internal.h SKIPHEADERS-$(CONFIG_VIDEOTOOLBOX) += videotoolbox.h vda_vt_internal.h TESTPROGS = avpacket \ + celp_math \ imgconvert \ jpeg2000dwt \ mathops \ diff --git a/libavcodec/tests/celp_math.c b/libavcodec/tests/celp_math.c new file mode 100644 index 0000000..da7846f --- /dev/null +++ b/libavcodec/tests/celp_math.c @@ -0,0 +1,48 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser 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/libm.h" +#include "libavcodec/celp_math.c" + +int main(void) +{ + int i; + const float f1[3] = {0.0, 1.1, 2.2}; + const float f2[3] = {3.3, 4.4, 5.5}; + const int16_t i1[3] = {6, 7, 8}; + const int16_t i2[3] = {9, 10, 11}; + float diff, largest, absa, absb; + + float r = ff_dot_productf(f1, f2, FF_ARRAY_ELEMS(f1)); + int64_t d = ff_dot_product(i1, i2, FF_ARRAY_ELEMS(i1)); + + #define IsAlmostEqual(A, B, epsilon) \ + diff = fabsf(A - B); \ + absa = fabsf(A); \ + absb = fabsf(B); \ + largest = (absb > absa) ? absb : absa; \ + av_assert0(diff <= largest * epsilon); + + IsAlmostEqual(16.94f, r, 0.000001f); + av_assert0(212 == d); + + for (i = 1024; i >= 1; i/=2) + av_assert0(ff_log2_q15(i) == (1<<15)*((int)log2(i))+(1<<2)); + + return 0; +} diff --git a/tests/fate/libavcodec.mak b/tests/fate/libavcodec.mak index 32b0c1e..07417f0 100644 --- a/tests/fate/libavcodec.mak +++ b/tests/fate/libavcodec.mak @@ -8,6 +8,11 @@ fate-cabac: libavcodec/tests/cabac$(EXESUF) fate-cabac: CMD = run libavcodec/tests/cabac fate-cabac: REF = /dev/null +FATE_LIBAVCODEC-yes += fate-celp_math +fate-celp_math: libavcodec/tests/celp_math$(EXESUF) +fate-celp_math: CMD = run libavcodec/tests/celp_math +fate-celp_math: REF = /dev/null + FATE_LIBAVCODEC-$(CONFIG_GOLOMB) += fate-golomb fate-golomb: libavcodec/tests/golomb$(EXESUF) fate-golomb: CMD = run libavcodec/tests/golomb