react-native-vision-camera-spoof-detector 1.0.21 → 1.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitattributes +2 -0
- package/.gitignore +27 -0
- package/CHANGELOG.md +2 -2
- package/CONTRIBUTING.md +2 -2
- package/README.md +442 -443
- package/android/build.gradle +12 -4
- package/android/src/main/cpp/CMakeLists.txt +101 -94
- package/android/src/main/cpp/libyuv/.clang-format +6 -6
- package/android/src/main/cpp/libyuv/.gn +40 -40
- package/android/src/main/cpp/libyuv/.vpython3 +410 -410
- package/android/src/main/cpp/libyuv/AUTHORS +7 -7
- package/android/src/main/cpp/libyuv/Android.bp +202 -202
- package/android/src/main/cpp/libyuv/Android.mk +106 -106
- package/android/src/main/cpp/libyuv/BUILD.gn +490 -490
- package/android/src/main/cpp/libyuv/CM_linux_packages.cmake +70 -70
- package/android/src/main/cpp/libyuv/CMakeLists.txt +259 -252
- package/android/src/main/cpp/libyuv/DEPS +935 -935
- package/android/src/main/cpp/libyuv/DIR_METADATA +3 -3
- package/android/src/main/cpp/libyuv/LICENSE +29 -29
- package/android/src/main/cpp/libyuv/OWNERS +11 -11
- package/android/src/main/cpp/libyuv/PATENTS +23 -23
- package/android/src/main/cpp/libyuv/PRESUBMIT.py +65 -65
- package/android/src/main/cpp/libyuv/README.chromium +11 -11
- package/android/src/main/cpp/libyuv/README.md +19 -19
- package/android/src/main/cpp/libyuv/build_overrides/build.gni +60 -60
- package/android/src/main/cpp/libyuv/build_overrides/gtest.gni +19 -19
- package/android/src/main/cpp/libyuv/build_overrides/partition_alloc.gni +17 -17
- package/android/src/main/cpp/libyuv/codereview.settings +5 -5
- package/android/src/main/cpp/libyuv/docs/deprecated_builds.md +409 -409
- package/android/src/main/cpp/libyuv/docs/environment_variables.md +64 -64
- package/android/src/main/cpp/libyuv/docs/feature_detection.md +108 -108
- package/android/src/main/cpp/libyuv/docs/filtering.md +196 -196
- package/android/src/main/cpp/libyuv/docs/formats.md +208 -208
- package/android/src/main/cpp/libyuv/docs/getting_started.md +296 -296
- package/android/src/main/cpp/libyuv/docs/rotation.md +107 -107
- package/android/src/main/cpp/libyuv/download_vs_toolchain.py +29 -29
- package/android/src/main/cpp/libyuv/include/libyuv/basic_types.h +68 -68
- package/android/src/main/cpp/libyuv/include/libyuv/compare.h +111 -111
- package/android/src/main/cpp/libyuv/include/libyuv/compare_row.h +112 -112
- package/android/src/main/cpp/libyuv/include/libyuv/convert.h +1117 -1117
- package/android/src/main/cpp/libyuv/include/libyuv/convert_argb.h +2335 -2335
- package/android/src/main/cpp/libyuv/include/libyuv/convert_from.h +203 -203
- package/android/src/main/cpp/libyuv/include/libyuv/convert_from_argb.h +394 -394
- package/android/src/main/cpp/libyuv/include/libyuv/cpu_id.h +147 -147
- package/android/src/main/cpp/libyuv/include/libyuv/cpu_support.h +99 -99
- package/android/src/main/cpp/libyuv/include/libyuv/loongson_intrinsics.h +1949 -1949
- package/android/src/main/cpp/libyuv/include/libyuv/mjpeg_decoder.h +195 -195
- package/android/src/main/cpp/libyuv/include/libyuv/planar_functions.h +1131 -1131
- package/android/src/main/cpp/libyuv/include/libyuv/rotate.h +296 -296
- package/android/src/main/cpp/libyuv/include/libyuv/rotate_argb.h +37 -37
- package/android/src/main/cpp/libyuv/include/libyuv/rotate_row.h +265 -265
- package/android/src/main/cpp/libyuv/include/libyuv/row.h +6738 -6738
- package/android/src/main/cpp/libyuv/include/libyuv/row_sve.h +2154 -2154
- package/android/src/main/cpp/libyuv/include/libyuv/scale.h +336 -336
- package/android/src/main/cpp/libyuv/include/libyuv/scale_argb.h +76 -76
- package/android/src/main/cpp/libyuv/include/libyuv/scale_rgb.h +42 -42
- package/android/src/main/cpp/libyuv/include/libyuv/scale_row.h +1726 -1726
- package/android/src/main/cpp/libyuv/include/libyuv/scale_uv.h +51 -51
- package/android/src/main/cpp/libyuv/include/libyuv/version.h +16 -16
- package/android/src/main/cpp/libyuv/include/libyuv/video_common.h +222 -222
- package/android/src/main/cpp/libyuv/include/libyuv.h +33 -33
- package/android/src/main/cpp/libyuv/infra/config/OWNERS +3 -3
- package/android/src/main/cpp/libyuv/infra/config/PRESUBMIT.py +17 -17
- package/android/src/main/cpp/libyuv/infra/config/README.md +2 -2
- package/android/src/main/cpp/libyuv/infra/config/codereview.settings +6 -6
- package/android/src/main/cpp/libyuv/infra/config/commit-queue.cfg +144 -144
- package/android/src/main/cpp/libyuv/infra/config/cr-buildbucket.cfg +1185 -1185
- package/android/src/main/cpp/libyuv/infra/config/luci-logdog.cfg +9 -9
- package/android/src/main/cpp/libyuv/infra/config/luci-milo.cfg +246 -246
- package/android/src/main/cpp/libyuv/infra/config/luci-scheduler.cfg +385 -385
- package/android/src/main/cpp/libyuv/infra/config/main.star +402 -402
- package/android/src/main/cpp/libyuv/infra/config/project.cfg +16 -16
- package/android/src/main/cpp/libyuv/infra/config/realms.cfg +111 -111
- package/android/src/main/cpp/libyuv/libyuv.gni +34 -34
- package/android/src/main/cpp/libyuv/libyuv.gyp +149 -149
- package/android/src/main/cpp/libyuv/libyuv.gypi +87 -87
- package/android/src/main/cpp/libyuv/linux.mk +96 -96
- package/android/src/main/cpp/libyuv/public.mk +13 -13
- package/android/src/main/cpp/libyuv/pylintrc +49 -49
- package/android/src/main/cpp/libyuv/riscv_script/prepare_toolchain_qemu.sh +74 -74
- package/android/src/main/cpp/libyuv/riscv_script/riscv-clang.cmake +56 -56
- package/android/src/main/cpp/libyuv/riscv_script/run_qemu.sh +15 -15
- package/android/src/main/cpp/libyuv/source/compare.cc +435 -435
- package/android/src/main/cpp/libyuv/source/compare_common.cc +74 -74
- package/android/src/main/cpp/libyuv/source/compare_gcc.cc +362 -362
- package/android/src/main/cpp/libyuv/source/compare_neon.cc +96 -96
- package/android/src/main/cpp/libyuv/source/compare_neon64.cc +223 -223
- package/android/src/main/cpp/libyuv/source/compare_win.cc +241 -241
- package/android/src/main/cpp/libyuv/source/convert.cc +4746 -4746
- package/android/src/main/cpp/libyuv/source/convert_argb.cc +9179 -9179
- package/android/src/main/cpp/libyuv/source/convert_from.cc +866 -866
- package/android/src/main/cpp/libyuv/source/convert_from_argb.cc +3671 -3671
- package/android/src/main/cpp/libyuv/source/convert_jpeg.cc +602 -602
- package/android/src/main/cpp/libyuv/source/convert_to_argb.cc +391 -391
- package/android/src/main/cpp/libyuv/source/convert_to_i420.cc +288 -288
- package/android/src/main/cpp/libyuv/source/cpu_id.cc +496 -496
- package/android/src/main/cpp/libyuv/source/mjpeg_decoder.cc +580 -580
- package/android/src/main/cpp/libyuv/source/mjpeg_validate.cc +71 -71
- package/android/src/main/cpp/libyuv/source/planar_functions.cc +5663 -5663
- package/android/src/main/cpp/libyuv/source/rotate.cc +1241 -1241
- package/android/src/main/cpp/libyuv/source/rotate_any.cc +76 -76
- package/android/src/main/cpp/libyuv/source/rotate_argb.cc +259 -259
- package/android/src/main/cpp/libyuv/source/rotate_common.cc +208 -208
- package/android/src/main/cpp/libyuv/source/rotate_gcc.cc +505 -505
- package/android/src/main/cpp/libyuv/source/rotate_lsx.cc +233 -233
- package/android/src/main/cpp/libyuv/source/rotate_neon.cc +219 -219
- package/android/src/main/cpp/libyuv/source/rotate_neon64.cc +273 -273
- package/android/src/main/cpp/libyuv/source/rotate_sme.cc +174 -174
- package/android/src/main/cpp/libyuv/source/rotate_win.cc +253 -253
- package/android/src/main/cpp/libyuv/source/row_any.cc +2519 -2519
- package/android/src/main/cpp/libyuv/source/row_common.cc +4461 -4461
- package/android/src/main/cpp/libyuv/source/row_gcc.cc +9570 -9570
- package/android/src/main/cpp/libyuv/source/row_lasx.cc +2343 -2343
- package/android/src/main/cpp/libyuv/source/row_lsx.cc +3030 -3030
- package/android/src/main/cpp/libyuv/source/row_neon.cc +4026 -4026
- package/android/src/main/cpp/libyuv/source/row_neon64.cc +5617 -5617
- package/android/src/main/cpp/libyuv/source/row_rvv.cc +2599 -2599
- package/android/src/main/cpp/libyuv/source/row_sme.cc +1183 -1183
- package/android/src/main/cpp/libyuv/source/row_sve.cc +1088 -1088
- package/android/src/main/cpp/libyuv/source/row_win.cc +6453 -6453
- package/android/src/main/cpp/libyuv/source/scale.cc +2710 -2710
- package/android/src/main/cpp/libyuv/source/scale_any.cc +991 -991
- package/android/src/main/cpp/libyuv/source/scale_argb.cc +1158 -1158
- package/android/src/main/cpp/libyuv/source/scale_common.cc +1977 -1977
- package/android/src/main/cpp/libyuv/source/scale_gcc.cc +2947 -2947
- package/android/src/main/cpp/libyuv/source/scale_lsx.cc +739 -739
- package/android/src/main/cpp/libyuv/source/scale_neon.cc +1449 -1449
- package/android/src/main/cpp/libyuv/source/scale_neon64.cc +1552 -1552
- package/android/src/main/cpp/libyuv/source/scale_rgb.cc +82 -82
- package/android/src/main/cpp/libyuv/source/scale_rvv.cc +1971 -1971
- package/android/src/main/cpp/libyuv/source/scale_sme.cc +555 -555
- package/android/src/main/cpp/libyuv/source/scale_uv.cc +1159 -1159
- package/android/src/main/cpp/libyuv/source/scale_win.cc +1392 -1392
- package/android/src/main/cpp/libyuv/source/test.sh +35 -35
- package/android/src/main/cpp/libyuv/source/video_common.cc +62 -62
- package/android/src/main/cpp/libyuv/tools_libyuv/OWNERS +4 -4
- package/android/src/main/cpp/libyuv/tools_libyuv/autoroller/roll_deps.py +931 -931
- package/android/src/main/cpp/libyuv/tools_libyuv/autoroller/unittests/roll_deps_test.py +164 -164
- package/android/src/main/cpp/libyuv/tools_libyuv/autoroller/unittests/testdata/DEPS +21 -21
- package/android/src/main/cpp/libyuv/tools_libyuv/autoroller/unittests/testdata/DEPS.chromium.new +13 -13
- package/android/src/main/cpp/libyuv/tools_libyuv/autoroller/unittests/testdata/DEPS.chromium.old +13 -13
- package/android/src/main/cpp/libyuv/tools_libyuv/get_landmines.py +38 -38
- package/android/src/main/cpp/libyuv/tools_libyuv/msan/OWNERS +3 -3
- package/android/src/main/cpp/libyuv/tools_libyuv/msan/blacklist.txt +9 -9
- package/android/src/main/cpp/libyuv/tools_libyuv/ubsan/OWNERS +3 -3
- package/android/src/main/cpp/libyuv/tools_libyuv/ubsan/blacklist.txt +15 -15
- package/android/src/main/cpp/libyuv/tools_libyuv/ubsan/vptr_blacklist.txt +25 -25
- package/android/src/main/cpp/libyuv/unit_test/basictypes_test.cc +43 -43
- package/android/src/main/cpp/libyuv/unit_test/color_test.cc +848 -848
- package/android/src/main/cpp/libyuv/unit_test/compare_test.cc +739 -739
- package/android/src/main/cpp/libyuv/unit_test/convert_argb_test.cc +2867 -2867
- package/android/src/main/cpp/libyuv/unit_test/convert_test.cc +2133 -2133
- package/android/src/main/cpp/libyuv/unit_test/cpu_test.cc +427 -427
- package/android/src/main/cpp/libyuv/unit_test/cpu_thread_test.cc +63 -63
- package/android/src/main/cpp/libyuv/unit_test/math_test.cc +160 -160
- package/android/src/main/cpp/libyuv/unit_test/planar_test.cc +4731 -4731
- package/android/src/main/cpp/libyuv/unit_test/rotate_argb_test.cc +334 -334
- package/android/src/main/cpp/libyuv/unit_test/rotate_test.cc +962 -962
- package/android/src/main/cpp/libyuv/unit_test/scale_argb_test.cc +590 -590
- package/android/src/main/cpp/libyuv/unit_test/scale_plane_test.cc +465 -465
- package/android/src/main/cpp/libyuv/unit_test/scale_rgb_test.cc +280 -280
- package/android/src/main/cpp/libyuv/unit_test/scale_test.cc +1135 -1135
- package/android/src/main/cpp/libyuv/unit_test/scale_uv_test.cc +249 -249
- package/android/src/main/cpp/libyuv/unit_test/testdata/arm_v7.txt +12 -12
- package/android/src/main/cpp/libyuv/unit_test/testdata/mips.txt +7 -7
- package/android/src/main/cpp/libyuv/unit_test/testdata/mips_loongson2k.txt +5 -5
- package/android/src/main/cpp/libyuv/unit_test/testdata/mips_loongson3.txt +10 -10
- package/android/src/main/cpp/libyuv/unit_test/testdata/mips_loongson_mmi.txt +7 -7
- package/android/src/main/cpp/libyuv/unit_test/testdata/riscv64.txt +3 -3
- package/android/src/main/cpp/libyuv/unit_test/testdata/riscv64_rvv.txt +3 -3
- package/android/src/main/cpp/libyuv/unit_test/testdata/riscv64_rvv_zvfh.txt +3 -3
- package/android/src/main/cpp/libyuv/unit_test/testdata/tegra3.txt +23 -23
- package/android/src/main/cpp/libyuv/unit_test/unit_test.cc +581 -581
- package/android/src/main/cpp/libyuv/unit_test/unit_test.h +232 -232
- package/android/src/main/cpp/libyuv/unit_test/video_common_test.cc +112 -112
- package/android/src/main/cpp/libyuv/util/Makefile +9 -9
- package/android/src/main/cpp/libyuv/util/color.cc +120 -120
- package/android/src/main/cpp/libyuv/util/compare.cc +67 -67
- package/android/src/main/cpp/libyuv/util/cpuid.c +211 -211
- package/android/src/main/cpp/libyuv/util/i444tonv12_eg.cc +27 -27
- package/android/src/main/cpp/libyuv/util/psnr.cc +291 -291
- package/android/src/main/cpp/libyuv/util/psnr.h +47 -47
- package/android/src/main/cpp/libyuv/util/psnr_main.cc +620 -620
- package/android/src/main/cpp/libyuv/util/ssim.cc +364 -364
- package/android/src/main/cpp/libyuv/util/ssim.h +38 -38
- package/android/src/main/cpp/libyuv/util/yuvconstants.c +114 -114
- package/android/src/main/cpp/libyuv/util/yuvconvert.cc +367 -367
- package/android/src/main/cpp/libyuv/winarm.mk +47 -47
- package/package.json +86 -84
- package/android/.gradle/8.9/checksums/checksums.lock +0 -0
- package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
- package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/8.9/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
- package/android/.gradle/vcs-1/gc.properties +0 -0
|
@@ -1,63 +1,63 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2017 The LibYuv Project Authors. All rights reserved.
|
|
3
|
-
*
|
|
4
|
-
* Use of this source code is governed by a BSD-style license
|
|
5
|
-
* that can be found in the LICENSE file in the root of the source
|
|
6
|
-
* tree. An additional intellectual property rights grant can be found
|
|
7
|
-
* in the file PATENTS. All contributing project authors may
|
|
8
|
-
* be found in the AUTHORS file in the root of the source tree.
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
#include <gtest/gtest.h>
|
|
12
|
-
|
|
13
|
-
#include "libyuv/cpu_id.h"
|
|
14
|
-
|
|
15
|
-
#if defined(__clang__) && !defined(__wasm__)
|
|
16
|
-
#if __has_include(<pthread.h>)
|
|
17
|
-
#define LIBYUV_HAVE_PTHREAD 1
|
|
18
|
-
#endif
|
|
19
|
-
#elif defined(__linux__)
|
|
20
|
-
#define LIBYUV_HAVE_PTHREAD 1
|
|
21
|
-
#endif
|
|
22
|
-
|
|
23
|
-
#ifdef LIBYUV_HAVE_PTHREAD
|
|
24
|
-
#include <pthread.h>
|
|
25
|
-
#endif
|
|
26
|
-
|
|
27
|
-
namespace libyuv {
|
|
28
|
-
|
|
29
|
-
#ifdef LIBYUV_HAVE_PTHREAD
|
|
30
|
-
static void* ThreadMain(void* arg) {
|
|
31
|
-
int* flags = static_cast<int*>(arg);
|
|
32
|
-
|
|
33
|
-
*flags = TestCpuFlag(kCpuInitialized);
|
|
34
|
-
return nullptr;
|
|
35
|
-
}
|
|
36
|
-
#endif // LIBYUV_HAVE_PTHREAD
|
|
37
|
-
|
|
38
|
-
// Call TestCpuFlag() from two threads. ThreadSanitizer should not report any
|
|
39
|
-
// data race.
|
|
40
|
-
TEST(LibYUVCpuThreadTest, TestCpuFlagMultipleThreads) {
|
|
41
|
-
#ifdef LIBYUV_HAVE_PTHREAD
|
|
42
|
-
int cpu_flags1;
|
|
43
|
-
int cpu_flags2;
|
|
44
|
-
int ret;
|
|
45
|
-
pthread_t thread1;
|
|
46
|
-
pthread_t thread2;
|
|
47
|
-
|
|
48
|
-
MaskCpuFlags(0); // Reset to 0 to allow auto detect.
|
|
49
|
-
ret = pthread_create(&thread1, nullptr, ThreadMain, &cpu_flags1);
|
|
50
|
-
ASSERT_EQ(ret, 0);
|
|
51
|
-
ret = pthread_create(&thread2, nullptr, ThreadMain, &cpu_flags2);
|
|
52
|
-
ASSERT_EQ(ret, 0);
|
|
53
|
-
ret = pthread_join(thread1, nullptr);
|
|
54
|
-
EXPECT_EQ(ret, 0);
|
|
55
|
-
ret = pthread_join(thread2, nullptr);
|
|
56
|
-
EXPECT_EQ(ret, 0);
|
|
57
|
-
EXPECT_EQ(cpu_flags1, cpu_flags2);
|
|
58
|
-
#else
|
|
59
|
-
printf("pthread unavailable; Test skipped.");
|
|
60
|
-
#endif // LIBYUV_HAVE_PTHREAD
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
} // namespace libyuv
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2017 The LibYuv Project Authors. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license
|
|
5
|
+
* that can be found in the LICENSE file in the root of the source
|
|
6
|
+
* tree. An additional intellectual property rights grant can be found
|
|
7
|
+
* in the file PATENTS. All contributing project authors may
|
|
8
|
+
* be found in the AUTHORS file in the root of the source tree.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
#include <gtest/gtest.h>
|
|
12
|
+
|
|
13
|
+
#include "libyuv/cpu_id.h"
|
|
14
|
+
|
|
15
|
+
#if defined(__clang__) && !defined(__wasm__)
|
|
16
|
+
#if __has_include(<pthread.h>)
|
|
17
|
+
#define LIBYUV_HAVE_PTHREAD 1
|
|
18
|
+
#endif
|
|
19
|
+
#elif defined(__linux__)
|
|
20
|
+
#define LIBYUV_HAVE_PTHREAD 1
|
|
21
|
+
#endif
|
|
22
|
+
|
|
23
|
+
#ifdef LIBYUV_HAVE_PTHREAD
|
|
24
|
+
#include <pthread.h>
|
|
25
|
+
#endif
|
|
26
|
+
|
|
27
|
+
namespace libyuv {
|
|
28
|
+
|
|
29
|
+
#ifdef LIBYUV_HAVE_PTHREAD
|
|
30
|
+
static void* ThreadMain(void* arg) {
|
|
31
|
+
int* flags = static_cast<int*>(arg);
|
|
32
|
+
|
|
33
|
+
*flags = TestCpuFlag(kCpuInitialized);
|
|
34
|
+
return nullptr;
|
|
35
|
+
}
|
|
36
|
+
#endif // LIBYUV_HAVE_PTHREAD
|
|
37
|
+
|
|
38
|
+
// Call TestCpuFlag() from two threads. ThreadSanitizer should not report any
|
|
39
|
+
// data race.
|
|
40
|
+
TEST(LibYUVCpuThreadTest, TestCpuFlagMultipleThreads) {
|
|
41
|
+
#ifdef LIBYUV_HAVE_PTHREAD
|
|
42
|
+
int cpu_flags1;
|
|
43
|
+
int cpu_flags2;
|
|
44
|
+
int ret;
|
|
45
|
+
pthread_t thread1;
|
|
46
|
+
pthread_t thread2;
|
|
47
|
+
|
|
48
|
+
MaskCpuFlags(0); // Reset to 0 to allow auto detect.
|
|
49
|
+
ret = pthread_create(&thread1, nullptr, ThreadMain, &cpu_flags1);
|
|
50
|
+
ASSERT_EQ(ret, 0);
|
|
51
|
+
ret = pthread_create(&thread2, nullptr, ThreadMain, &cpu_flags2);
|
|
52
|
+
ASSERT_EQ(ret, 0);
|
|
53
|
+
ret = pthread_join(thread1, nullptr);
|
|
54
|
+
EXPECT_EQ(ret, 0);
|
|
55
|
+
ret = pthread_join(thread2, nullptr);
|
|
56
|
+
EXPECT_EQ(ret, 0);
|
|
57
|
+
EXPECT_EQ(cpu_flags1, cpu_flags2);
|
|
58
|
+
#else
|
|
59
|
+
printf("pthread unavailable; Test skipped.");
|
|
60
|
+
#endif // LIBYUV_HAVE_PTHREAD
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
} // namespace libyuv
|
|
@@ -1,160 +1,160 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2013 The LibYuv Project Authors. All rights reserved.
|
|
3
|
-
*
|
|
4
|
-
* Use of this source code is governed by a BSD-style license
|
|
5
|
-
* that can be found in the LICENSE file in the root of the source
|
|
6
|
-
* tree. An additional intellectual property rights grant can be found
|
|
7
|
-
* in the file PATENTS. All contributing project authors may
|
|
8
|
-
* be found in the AUTHORS file in the root of the source tree.
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
#include <stdlib.h>
|
|
12
|
-
#include <string.h>
|
|
13
|
-
#include <time.h>
|
|
14
|
-
|
|
15
|
-
#include "../unit_test/unit_test.h"
|
|
16
|
-
#include "libyuv/basic_types.h"
|
|
17
|
-
#include "libyuv/cpu_id.h"
|
|
18
|
-
#include "libyuv/scale.h"
|
|
19
|
-
|
|
20
|
-
#ifdef ENABLE_ROW_TESTS
|
|
21
|
-
#include "libyuv/scale_row.h"
|
|
22
|
-
#endif
|
|
23
|
-
|
|
24
|
-
namespace libyuv {
|
|
25
|
-
|
|
26
|
-
#ifdef ENABLE_ROW_TESTS
|
|
27
|
-
TEST_F(LibYUVBaseTest, TestFixedDiv) {
|
|
28
|
-
int num[1280];
|
|
29
|
-
int div[1280];
|
|
30
|
-
int result_opt[1280];
|
|
31
|
-
int result_c[1280];
|
|
32
|
-
|
|
33
|
-
EXPECT_EQ(0x10000, libyuv::FixedDiv(1, 1));
|
|
34
|
-
EXPECT_EQ(0x7fff0000, libyuv::FixedDiv(0x7fff, 1));
|
|
35
|
-
// TODO(fbarchard): Avoid the following that throw exceptions.
|
|
36
|
-
// EXPECT_EQ(0x100000000, libyuv::FixedDiv(0x10000, 1));
|
|
37
|
-
// EXPECT_EQ(0x80000000, libyuv::FixedDiv(0x8000, 1));
|
|
38
|
-
|
|
39
|
-
EXPECT_EQ(0x20000, libyuv::FixedDiv(640 * 2, 640));
|
|
40
|
-
EXPECT_EQ(0x30000, libyuv::FixedDiv(640 * 3, 640));
|
|
41
|
-
EXPECT_EQ(0x40000, libyuv::FixedDiv(640 * 4, 640));
|
|
42
|
-
EXPECT_EQ(0x50000, libyuv::FixedDiv(640 * 5, 640));
|
|
43
|
-
EXPECT_EQ(0x60000, libyuv::FixedDiv(640 * 6, 640));
|
|
44
|
-
EXPECT_EQ(0x70000, libyuv::FixedDiv(640 * 7, 640));
|
|
45
|
-
EXPECT_EQ(0x80000, libyuv::FixedDiv(640 * 8, 640));
|
|
46
|
-
EXPECT_EQ(0xa0000, libyuv::FixedDiv(640 * 10, 640));
|
|
47
|
-
EXPECT_EQ(0x20000, libyuv::FixedDiv(960 * 2, 960));
|
|
48
|
-
EXPECT_EQ(0x08000, libyuv::FixedDiv(640 / 2, 640));
|
|
49
|
-
EXPECT_EQ(0x04000, libyuv::FixedDiv(640 / 4, 640));
|
|
50
|
-
EXPECT_EQ(0x20000, libyuv::FixedDiv(1080 * 2, 1080));
|
|
51
|
-
EXPECT_EQ(0x20000, libyuv::FixedDiv(200000, 100000));
|
|
52
|
-
EXPECT_EQ(0x18000, libyuv::FixedDiv(150000, 100000));
|
|
53
|
-
EXPECT_EQ(0x20000, libyuv::FixedDiv(40000, 20000));
|
|
54
|
-
EXPECT_EQ(0x20000, libyuv::FixedDiv(-40000, -20000));
|
|
55
|
-
EXPECT_EQ(-0x20000, libyuv::FixedDiv(40000, -20000));
|
|
56
|
-
EXPECT_EQ(-0x20000, libyuv::FixedDiv(-40000, 20000));
|
|
57
|
-
EXPECT_EQ(0x10000, libyuv::FixedDiv(4095, 4095));
|
|
58
|
-
EXPECT_EQ(0x10000, libyuv::FixedDiv(4096, 4096));
|
|
59
|
-
EXPECT_EQ(0x10000, libyuv::FixedDiv(4097, 4097));
|
|
60
|
-
EXPECT_EQ(123 * 65536, libyuv::FixedDiv(123, 1));
|
|
61
|
-
|
|
62
|
-
for (int i = 1; i < 4100; ++i) {
|
|
63
|
-
EXPECT_EQ(0x10000, libyuv::FixedDiv(i, i));
|
|
64
|
-
EXPECT_EQ(0x20000, libyuv::FixedDiv(i * 2, i));
|
|
65
|
-
EXPECT_EQ(0x30000, libyuv::FixedDiv(i * 3, i));
|
|
66
|
-
EXPECT_EQ(0x40000, libyuv::FixedDiv(i * 4, i));
|
|
67
|
-
EXPECT_EQ(0x08000, libyuv::FixedDiv(i, i * 2));
|
|
68
|
-
EXPECT_NEAR(16384 * 65536 / i, libyuv::FixedDiv(16384, i), 1);
|
|
69
|
-
}
|
|
70
|
-
EXPECT_EQ(123 * 65536, libyuv::FixedDiv(123, 1));
|
|
71
|
-
|
|
72
|
-
MemRandomize(reinterpret_cast<uint8_t*>(&num[0]), sizeof(num));
|
|
73
|
-
MemRandomize(reinterpret_cast<uint8_t*>(&div[0]), sizeof(div));
|
|
74
|
-
for (int j = 0; j < 1280; ++j) {
|
|
75
|
-
if (div[j] == 0) {
|
|
76
|
-
div[j] = 1280;
|
|
77
|
-
}
|
|
78
|
-
num[j] &= 0xffff; // Clamp to avoid divide overflow.
|
|
79
|
-
}
|
|
80
|
-
for (int i = 0; i < benchmark_pixels_div1280_; ++i) {
|
|
81
|
-
for (int j = 0; j < 1280; ++j) {
|
|
82
|
-
result_opt[j] = libyuv::FixedDiv(num[j], div[j]);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
for (int j = 0; j < 1280; ++j) {
|
|
86
|
-
result_c[j] = libyuv::FixedDiv_C(num[j], div[j]);
|
|
87
|
-
EXPECT_NEAR(result_c[j], result_opt[j], 1);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
TEST_F(LibYUVBaseTest, TestFixedDiv_Opt) {
|
|
92
|
-
int num[1280];
|
|
93
|
-
int div[1280];
|
|
94
|
-
int result_opt[1280];
|
|
95
|
-
int result_c[1280];
|
|
96
|
-
|
|
97
|
-
MemRandomize(reinterpret_cast<uint8_t*>(&num[0]), sizeof(num));
|
|
98
|
-
MemRandomize(reinterpret_cast<uint8_t*>(&div[0]), sizeof(div));
|
|
99
|
-
for (int j = 0; j < 1280; ++j) {
|
|
100
|
-
num[j] &= 4095; // Make numerator smaller.
|
|
101
|
-
div[j] &= 4095; // Make divisor smaller.
|
|
102
|
-
if (div[j] == 0) {
|
|
103
|
-
div[j] = 1280;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
int has_x86 = TestCpuFlag(kCpuHasX86);
|
|
108
|
-
for (int i = 0; i < benchmark_pixels_div1280_; ++i) {
|
|
109
|
-
if (has_x86) {
|
|
110
|
-
for (int j = 0; j < 1280; ++j) {
|
|
111
|
-
result_opt[j] = libyuv::FixedDiv(num[j], div[j]);
|
|
112
|
-
}
|
|
113
|
-
} else {
|
|
114
|
-
for (int j = 0; j < 1280; ++j) {
|
|
115
|
-
result_opt[j] = libyuv::FixedDiv_C(num[j], div[j]);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
for (int j = 0; j < 1280; ++j) {
|
|
120
|
-
result_c[j] = libyuv::FixedDiv_C(num[j], div[j]);
|
|
121
|
-
EXPECT_NEAR(result_c[j], result_opt[j], 1);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
TEST_F(LibYUVBaseTest, TestFixedDiv1_Opt) {
|
|
126
|
-
int num[1280];
|
|
127
|
-
int div[1280];
|
|
128
|
-
int result_opt[1280];
|
|
129
|
-
int result_c[1280];
|
|
130
|
-
|
|
131
|
-
MemRandomize(reinterpret_cast<uint8_t*>(&num[0]), sizeof(num));
|
|
132
|
-
MemRandomize(reinterpret_cast<uint8_t*>(&div[0]), sizeof(div));
|
|
133
|
-
for (int j = 0; j < 1280; ++j) {
|
|
134
|
-
num[j] &= 4095; // Make numerator smaller.
|
|
135
|
-
div[j] &= 4095; // Make divisor smaller.
|
|
136
|
-
if (div[j] <= 1) {
|
|
137
|
-
div[j] = 1280;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
int has_x86 = TestCpuFlag(kCpuHasX86);
|
|
142
|
-
for (int i = 0; i < benchmark_pixels_div1280_; ++i) {
|
|
143
|
-
if (has_x86) {
|
|
144
|
-
for (int j = 0; j < 1280; ++j) {
|
|
145
|
-
result_opt[j] = libyuv::FixedDiv1(num[j], div[j]);
|
|
146
|
-
}
|
|
147
|
-
} else {
|
|
148
|
-
for (int j = 0; j < 1280; ++j) {
|
|
149
|
-
result_opt[j] = libyuv::FixedDiv1_C(num[j], div[j]);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
for (int j = 0; j < 1280; ++j) {
|
|
154
|
-
result_c[j] = libyuv::FixedDiv1_C(num[j], div[j]);
|
|
155
|
-
EXPECT_NEAR(result_c[j], result_opt[j], 1);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
#endif // ENABLE_ROW_TESTS
|
|
159
|
-
|
|
160
|
-
} // namespace libyuv
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2013 The LibYuv Project Authors. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license
|
|
5
|
+
* that can be found in the LICENSE file in the root of the source
|
|
6
|
+
* tree. An additional intellectual property rights grant can be found
|
|
7
|
+
* in the file PATENTS. All contributing project authors may
|
|
8
|
+
* be found in the AUTHORS file in the root of the source tree.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
#include <stdlib.h>
|
|
12
|
+
#include <string.h>
|
|
13
|
+
#include <time.h>
|
|
14
|
+
|
|
15
|
+
#include "../unit_test/unit_test.h"
|
|
16
|
+
#include "libyuv/basic_types.h"
|
|
17
|
+
#include "libyuv/cpu_id.h"
|
|
18
|
+
#include "libyuv/scale.h"
|
|
19
|
+
|
|
20
|
+
#ifdef ENABLE_ROW_TESTS
|
|
21
|
+
#include "libyuv/scale_row.h"
|
|
22
|
+
#endif
|
|
23
|
+
|
|
24
|
+
namespace libyuv {
|
|
25
|
+
|
|
26
|
+
#ifdef ENABLE_ROW_TESTS
|
|
27
|
+
TEST_F(LibYUVBaseTest, TestFixedDiv) {
|
|
28
|
+
int num[1280];
|
|
29
|
+
int div[1280];
|
|
30
|
+
int result_opt[1280];
|
|
31
|
+
int result_c[1280];
|
|
32
|
+
|
|
33
|
+
EXPECT_EQ(0x10000, libyuv::FixedDiv(1, 1));
|
|
34
|
+
EXPECT_EQ(0x7fff0000, libyuv::FixedDiv(0x7fff, 1));
|
|
35
|
+
// TODO(fbarchard): Avoid the following that throw exceptions.
|
|
36
|
+
// EXPECT_EQ(0x100000000, libyuv::FixedDiv(0x10000, 1));
|
|
37
|
+
// EXPECT_EQ(0x80000000, libyuv::FixedDiv(0x8000, 1));
|
|
38
|
+
|
|
39
|
+
EXPECT_EQ(0x20000, libyuv::FixedDiv(640 * 2, 640));
|
|
40
|
+
EXPECT_EQ(0x30000, libyuv::FixedDiv(640 * 3, 640));
|
|
41
|
+
EXPECT_EQ(0x40000, libyuv::FixedDiv(640 * 4, 640));
|
|
42
|
+
EXPECT_EQ(0x50000, libyuv::FixedDiv(640 * 5, 640));
|
|
43
|
+
EXPECT_EQ(0x60000, libyuv::FixedDiv(640 * 6, 640));
|
|
44
|
+
EXPECT_EQ(0x70000, libyuv::FixedDiv(640 * 7, 640));
|
|
45
|
+
EXPECT_EQ(0x80000, libyuv::FixedDiv(640 * 8, 640));
|
|
46
|
+
EXPECT_EQ(0xa0000, libyuv::FixedDiv(640 * 10, 640));
|
|
47
|
+
EXPECT_EQ(0x20000, libyuv::FixedDiv(960 * 2, 960));
|
|
48
|
+
EXPECT_EQ(0x08000, libyuv::FixedDiv(640 / 2, 640));
|
|
49
|
+
EXPECT_EQ(0x04000, libyuv::FixedDiv(640 / 4, 640));
|
|
50
|
+
EXPECT_EQ(0x20000, libyuv::FixedDiv(1080 * 2, 1080));
|
|
51
|
+
EXPECT_EQ(0x20000, libyuv::FixedDiv(200000, 100000));
|
|
52
|
+
EXPECT_EQ(0x18000, libyuv::FixedDiv(150000, 100000));
|
|
53
|
+
EXPECT_EQ(0x20000, libyuv::FixedDiv(40000, 20000));
|
|
54
|
+
EXPECT_EQ(0x20000, libyuv::FixedDiv(-40000, -20000));
|
|
55
|
+
EXPECT_EQ(-0x20000, libyuv::FixedDiv(40000, -20000));
|
|
56
|
+
EXPECT_EQ(-0x20000, libyuv::FixedDiv(-40000, 20000));
|
|
57
|
+
EXPECT_EQ(0x10000, libyuv::FixedDiv(4095, 4095));
|
|
58
|
+
EXPECT_EQ(0x10000, libyuv::FixedDiv(4096, 4096));
|
|
59
|
+
EXPECT_EQ(0x10000, libyuv::FixedDiv(4097, 4097));
|
|
60
|
+
EXPECT_EQ(123 * 65536, libyuv::FixedDiv(123, 1));
|
|
61
|
+
|
|
62
|
+
for (int i = 1; i < 4100; ++i) {
|
|
63
|
+
EXPECT_EQ(0x10000, libyuv::FixedDiv(i, i));
|
|
64
|
+
EXPECT_EQ(0x20000, libyuv::FixedDiv(i * 2, i));
|
|
65
|
+
EXPECT_EQ(0x30000, libyuv::FixedDiv(i * 3, i));
|
|
66
|
+
EXPECT_EQ(0x40000, libyuv::FixedDiv(i * 4, i));
|
|
67
|
+
EXPECT_EQ(0x08000, libyuv::FixedDiv(i, i * 2));
|
|
68
|
+
EXPECT_NEAR(16384 * 65536 / i, libyuv::FixedDiv(16384, i), 1);
|
|
69
|
+
}
|
|
70
|
+
EXPECT_EQ(123 * 65536, libyuv::FixedDiv(123, 1));
|
|
71
|
+
|
|
72
|
+
MemRandomize(reinterpret_cast<uint8_t*>(&num[0]), sizeof(num));
|
|
73
|
+
MemRandomize(reinterpret_cast<uint8_t*>(&div[0]), sizeof(div));
|
|
74
|
+
for (int j = 0; j < 1280; ++j) {
|
|
75
|
+
if (div[j] == 0) {
|
|
76
|
+
div[j] = 1280;
|
|
77
|
+
}
|
|
78
|
+
num[j] &= 0xffff; // Clamp to avoid divide overflow.
|
|
79
|
+
}
|
|
80
|
+
for (int i = 0; i < benchmark_pixels_div1280_; ++i) {
|
|
81
|
+
for (int j = 0; j < 1280; ++j) {
|
|
82
|
+
result_opt[j] = libyuv::FixedDiv(num[j], div[j]);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
for (int j = 0; j < 1280; ++j) {
|
|
86
|
+
result_c[j] = libyuv::FixedDiv_C(num[j], div[j]);
|
|
87
|
+
EXPECT_NEAR(result_c[j], result_opt[j], 1);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
TEST_F(LibYUVBaseTest, TestFixedDiv_Opt) {
|
|
92
|
+
int num[1280];
|
|
93
|
+
int div[1280];
|
|
94
|
+
int result_opt[1280];
|
|
95
|
+
int result_c[1280];
|
|
96
|
+
|
|
97
|
+
MemRandomize(reinterpret_cast<uint8_t*>(&num[0]), sizeof(num));
|
|
98
|
+
MemRandomize(reinterpret_cast<uint8_t*>(&div[0]), sizeof(div));
|
|
99
|
+
for (int j = 0; j < 1280; ++j) {
|
|
100
|
+
num[j] &= 4095; // Make numerator smaller.
|
|
101
|
+
div[j] &= 4095; // Make divisor smaller.
|
|
102
|
+
if (div[j] == 0) {
|
|
103
|
+
div[j] = 1280;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
int has_x86 = TestCpuFlag(kCpuHasX86);
|
|
108
|
+
for (int i = 0; i < benchmark_pixels_div1280_; ++i) {
|
|
109
|
+
if (has_x86) {
|
|
110
|
+
for (int j = 0; j < 1280; ++j) {
|
|
111
|
+
result_opt[j] = libyuv::FixedDiv(num[j], div[j]);
|
|
112
|
+
}
|
|
113
|
+
} else {
|
|
114
|
+
for (int j = 0; j < 1280; ++j) {
|
|
115
|
+
result_opt[j] = libyuv::FixedDiv_C(num[j], div[j]);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
for (int j = 0; j < 1280; ++j) {
|
|
120
|
+
result_c[j] = libyuv::FixedDiv_C(num[j], div[j]);
|
|
121
|
+
EXPECT_NEAR(result_c[j], result_opt[j], 1);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
TEST_F(LibYUVBaseTest, TestFixedDiv1_Opt) {
|
|
126
|
+
int num[1280];
|
|
127
|
+
int div[1280];
|
|
128
|
+
int result_opt[1280];
|
|
129
|
+
int result_c[1280];
|
|
130
|
+
|
|
131
|
+
MemRandomize(reinterpret_cast<uint8_t*>(&num[0]), sizeof(num));
|
|
132
|
+
MemRandomize(reinterpret_cast<uint8_t*>(&div[0]), sizeof(div));
|
|
133
|
+
for (int j = 0; j < 1280; ++j) {
|
|
134
|
+
num[j] &= 4095; // Make numerator smaller.
|
|
135
|
+
div[j] &= 4095; // Make divisor smaller.
|
|
136
|
+
if (div[j] <= 1) {
|
|
137
|
+
div[j] = 1280;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
int has_x86 = TestCpuFlag(kCpuHasX86);
|
|
142
|
+
for (int i = 0; i < benchmark_pixels_div1280_; ++i) {
|
|
143
|
+
if (has_x86) {
|
|
144
|
+
for (int j = 0; j < 1280; ++j) {
|
|
145
|
+
result_opt[j] = libyuv::FixedDiv1(num[j], div[j]);
|
|
146
|
+
}
|
|
147
|
+
} else {
|
|
148
|
+
for (int j = 0; j < 1280; ++j) {
|
|
149
|
+
result_opt[j] = libyuv::FixedDiv1_C(num[j], div[j]);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
for (int j = 0; j < 1280; ++j) {
|
|
154
|
+
result_c[j] = libyuv::FixedDiv1_C(num[j], div[j]);
|
|
155
|
+
EXPECT_NEAR(result_c[j], result_opt[j], 1);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
#endif // ENABLE_ROW_TESTS
|
|
159
|
+
|
|
160
|
+
} // namespace libyuv
|