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,296 +1,296 @@
|
|
|
1
|
-
# Getting Started
|
|
2
|
-
|
|
3
|
-
How to get and build the libyuv code.
|
|
4
|
-
|
|
5
|
-
## Pre-requisites
|
|
6
|
-
|
|
7
|
-
You'll need to have depot tools installed: https://www.chromium.org/developers/how-tos/install-depot-tools
|
|
8
|
-
Refer to chromium instructions for each platform for other prerequisites.
|
|
9
|
-
|
|
10
|
-
## Getting the Code
|
|
11
|
-
|
|
12
|
-
Create a working directory, enter it, and run:
|
|
13
|
-
|
|
14
|
-
fetch libyuv
|
|
15
|
-
|
|
16
|
-
For iOS add `;target_os=['ios'];` to your OSX .gclient and run `gclient sync.`
|
|
17
|
-
|
|
18
|
-
Browse the Git reprository: https://chromium.googlesource.com/libyuv/libyuv/+/master
|
|
19
|
-
|
|
20
|
-
### Android
|
|
21
|
-
For Android add `;target_os=['android'];` to your Linux .gclient
|
|
22
|
-
|
|
23
|
-
solutions = [
|
|
24
|
-
{ "name" : "src",
|
|
25
|
-
"url" : "https://chromium.googlesource.com/libyuv/libyuv",
|
|
26
|
-
"deps_file" : "DEPS",
|
|
27
|
-
"managed" : True,
|
|
28
|
-
"custom_deps" : {
|
|
29
|
-
},
|
|
30
|
-
"safesync_url": "",
|
|
31
|
-
},
|
|
32
|
-
];
|
|
33
|
-
target_os = ["android", "linux"];
|
|
34
|
-
|
|
35
|
-
Then run:
|
|
36
|
-
|
|
37
|
-
gclient sync
|
|
38
|
-
|
|
39
|
-
To get just the source (not buildable):
|
|
40
|
-
|
|
41
|
-
git clone https://chromium.googlesource.com/libyuv/libyuv
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
## Building the Library and Unittests
|
|
45
|
-
|
|
46
|
-
### Windows
|
|
47
|
-
|
|
48
|
-
gn gen out\Release "--args=is_debug=false target_cpu=\"x64\""
|
|
49
|
-
gn gen out\Debug "--args=is_debug=true target_cpu=\"x64\""
|
|
50
|
-
ninja -v -C out\Release
|
|
51
|
-
ninja -v -C out\Debug
|
|
52
|
-
|
|
53
|
-
gn gen out\Release "--args=is_debug=false target_cpu=\"x86\""
|
|
54
|
-
gn gen out\Debug "--args=is_debug=true target_cpu=\"x86\""
|
|
55
|
-
ninja -v -C out\Release
|
|
56
|
-
ninja -v -C out\Debug
|
|
57
|
-
|
|
58
|
-
### macOS and Linux
|
|
59
|
-
|
|
60
|
-
gn gen out/Release "--args=is_debug=false"
|
|
61
|
-
gn gen out/Debug "--args=is_debug=true"
|
|
62
|
-
ninja -v -C out/Release
|
|
63
|
-
ninja -v -C out/Debug
|
|
64
|
-
|
|
65
|
-
### Building Offical with GN
|
|
66
|
-
|
|
67
|
-
gn gen out/Official "--args=is_debug=false is_official_build=true is_chrome_branded=true"
|
|
68
|
-
ninja -C out/Official
|
|
69
|
-
|
|
70
|
-
### iOS
|
|
71
|
-
http://www.chromium.org/developers/how-tos/build-instructions-ios
|
|
72
|
-
|
|
73
|
-
Add to .gclient last line: `target_os=['ios'];`
|
|
74
|
-
|
|
75
|
-
arm64
|
|
76
|
-
|
|
77
|
-
gn gen out/Release "--args=is_debug=false target_os=\"ios\" ios_enable_code_signing=false target_cpu=\"arm64\""
|
|
78
|
-
gn gen out/Debug "--args=is_debug=true target_os=\"ios\" ios_enable_code_signing=false target_cpu=\"arm64\""
|
|
79
|
-
ninja -v -C out/Debug libyuv_unittest
|
|
80
|
-
ninja -v -C out/Release libyuv_unittest
|
|
81
|
-
|
|
82
|
-
ios simulator
|
|
83
|
-
|
|
84
|
-
gn gen out/Release "--args=is_debug=false target_os=\"ios\" ios_enable_code_signing=false use_xcode_clang=true target_cpu=\"x86\""
|
|
85
|
-
gn gen out/Debug "--args=is_debug=true target_os=\"ios\" ios_enable_code_signing=false use_xcode_clang=true target_cpu=\"x86\""
|
|
86
|
-
ninja -v -C out/Debug libyuv_unittest
|
|
87
|
-
ninja -v -C out/Release libyuv_unittest
|
|
88
|
-
|
|
89
|
-
ios disassembly
|
|
90
|
-
|
|
91
|
-
otool -tV ./out/Release/obj/libyuv_neon/row_neon64.o >row_neon64.txt
|
|
92
|
-
|
|
93
|
-
### Android
|
|
94
|
-
https://code.google.com/p/chromium/wiki/AndroidBuildInstructions
|
|
95
|
-
|
|
96
|
-
Add to .gclient last line: `target_os=['android'];`
|
|
97
|
-
|
|
98
|
-
arm64
|
|
99
|
-
|
|
100
|
-
gn gen out/Release "--args=is_debug=false target_os=\"android\" target_cpu=\"arm64\""
|
|
101
|
-
gn gen out/Debug "--args=is_debug=true target_os=\"android\" target_cpu=\"arm64\""
|
|
102
|
-
ninja -v -C out/Debug libyuv_unittest
|
|
103
|
-
ninja -v -C out/Release libyuv_unittest
|
|
104
|
-
|
|
105
|
-
armv7
|
|
106
|
-
|
|
107
|
-
gn gen out/Release "--args=is_debug=false target_os=\"android\" target_cpu=\"arm\""
|
|
108
|
-
gn gen out/Debug "--args=is_debug=true target_os=\"android\" target_cpu=\"arm\""
|
|
109
|
-
ninja -v -C out/Debug libyuv_unittest
|
|
110
|
-
ninja -v -C out/Release libyuv_unittest
|
|
111
|
-
|
|
112
|
-
ia32
|
|
113
|
-
|
|
114
|
-
gn gen out/Release "--args=is_debug=false target_os=\"android\" target_cpu=\"x86\""
|
|
115
|
-
gn gen out/Debug "--args=is_debug=true target_os=\"android\" target_cpu=\"x86\""
|
|
116
|
-
ninja -v -C out/Debug libyuv_unittest
|
|
117
|
-
ninja -v -C out/Release libyuv_unittest
|
|
118
|
-
|
|
119
|
-
arm disassembly:
|
|
120
|
-
|
|
121
|
-
llvm-objdump -d ./out/Release/obj/libyuv/row_common.o >row_common.txt
|
|
122
|
-
|
|
123
|
-
llvm-objdump -d ./out/Release/obj/libyuv_neon/row_neon.o >row_neon.txt
|
|
124
|
-
|
|
125
|
-
llvm-objdump -d ./out/Release/obj/libyuv_neon/row_neon64.o >row_neon64.txt
|
|
126
|
-
|
|
127
|
-
Caveat: Disassembly may require optimize_max be disabled in BUILD.gn
|
|
128
|
-
|
|
129
|
-
Running tests:
|
|
130
|
-
|
|
131
|
-
out/Release/bin/run_libyuv_unittest -vv --gtest_filter=*
|
|
132
|
-
|
|
133
|
-
Running test as benchmark:
|
|
134
|
-
|
|
135
|
-
out/Release/bin/run_libyuv_unittest -vv --gtest_filter=* --libyuv_width=1280 --libyuv_height=720 --libyuv_repeat=999 --libyuv_flags=-1 --libyuv_cpu_info=-1
|
|
136
|
-
|
|
137
|
-
Running test with C code:
|
|
138
|
-
|
|
139
|
-
out/Release/bin/run_libyuv_unittest -vv --gtest_filter=* --libyuv_width=1280 --libyuv_height=720 --libyuv_repeat=999 --libyuv_flags=1 --libyuv_cpu_info=1
|
|
140
|
-
|
|
141
|
-
### Build targets
|
|
142
|
-
|
|
143
|
-
ninja -C out/Debug libyuv
|
|
144
|
-
ninja -C out/Debug libyuv_unittest
|
|
145
|
-
ninja -C out/Debug compare
|
|
146
|
-
ninja -C out/Debug yuvconvert
|
|
147
|
-
ninja -C out/Debug yuvconstants
|
|
148
|
-
ninja -C out/Debug psnr
|
|
149
|
-
ninja -C out/Debug cpuid
|
|
150
|
-
|
|
151
|
-
### ARM Linux
|
|
152
|
-
|
|
153
|
-
gn gen out/Release "--args=is_debug=false target_cpu=\"arm64\""
|
|
154
|
-
gn gen out/Debug "--args=is_debug=true target_cpu=\"arm64\""
|
|
155
|
-
ninja -v -C out/Debug libyuv_unittest
|
|
156
|
-
ninja -v -C out/Release libyuv_unittest
|
|
157
|
-
|
|
158
|
-
## Building the Library with make
|
|
159
|
-
|
|
160
|
-
### Linux
|
|
161
|
-
|
|
162
|
-
make V=1 -f linux.mk
|
|
163
|
-
make V=1 -f linux.mk clean
|
|
164
|
-
make V=1 -f linux.mk CXX=clang++ CC=clang
|
|
165
|
-
|
|
166
|
-
## Building the library with cmake
|
|
167
|
-
|
|
168
|
-
Install cmake: http://www.cmake.org/
|
|
169
|
-
|
|
170
|
-
### Default debug build:
|
|
171
|
-
|
|
172
|
-
mkdir out
|
|
173
|
-
cd out
|
|
174
|
-
cmake ..
|
|
175
|
-
cmake --build .
|
|
176
|
-
|
|
177
|
-
### Release build/install
|
|
178
|
-
|
|
179
|
-
mkdir out
|
|
180
|
-
cd out
|
|
181
|
-
cmake -DCMAKE_INSTALL_PREFIX="/usr/lib" -DCMAKE_BUILD_TYPE="Release" ..
|
|
182
|
-
cmake --build . --config Release
|
|
183
|
-
sudo cmake --build . --target install --config Release
|
|
184
|
-
|
|
185
|
-
### Build RPM/DEB packages
|
|
186
|
-
|
|
187
|
-
mkdir out
|
|
188
|
-
cd out
|
|
189
|
-
cmake -DCMAKE_BUILD_TYPE=Release ..
|
|
190
|
-
make -j4
|
|
191
|
-
make package
|
|
192
|
-
|
|
193
|
-
## Building RISC-V target with cmake
|
|
194
|
-
|
|
195
|
-
### Prerequisite: build risc-v clang toolchain and qemu
|
|
196
|
-
|
|
197
|
-
If you don't have prebuilt clang and riscv64 qemu, run the script to download source and build them.
|
|
198
|
-
|
|
199
|
-
./riscv_script/prepare_toolchain_qemu.sh
|
|
200
|
-
|
|
201
|
-
After running script, clang & qemu are built in `build-toolchain-qemu/riscv-clang/` & `build-toolchain-qemu/riscv-qemu/`.
|
|
202
|
-
|
|
203
|
-
### Cross-compile for RISC-V target
|
|
204
|
-
cmake -B out/Release/ -DUNIT_TEST=ON \
|
|
205
|
-
-DCMAKE_BUILD_TYPE=Release \
|
|
206
|
-
-DCMAKE_TOOLCHAIN_FILE="./riscv_script/riscv-clang.cmake" \
|
|
207
|
-
-DTOOLCHAIN_PATH={TOOLCHAIN_PATH} \
|
|
208
|
-
-DUSE_RVV=ON .
|
|
209
|
-
cmake --build out/Release/
|
|
210
|
-
|
|
211
|
-
#### Customized Compiler Flags
|
|
212
|
-
|
|
213
|
-
Customized compiler flags are supported by `-DRISCV_COMPILER_FLAGS="xxx"`.
|
|
214
|
-
If `-DRISCV_COMPILER_FLAGS="xxx"` is manually assigned, other compile flags(e.g disable -march=xxx) will not be appended.
|
|
215
|
-
|
|
216
|
-
Example:
|
|
217
|
-
|
|
218
|
-
cmake -B out/Release/ -DUNIT_TEST=ON \
|
|
219
|
-
-DCMAKE_BUILD_TYPE=Release \
|
|
220
|
-
-DCMAKE_TOOLCHAIN_FILE="./riscv_script/riscv-clang.cmake" \
|
|
221
|
-
-DRISCV_COMPILER_FLAGS="-mcpu=sifive-x280" \
|
|
222
|
-
.
|
|
223
|
-
|
|
224
|
-
### Run on QEMU
|
|
225
|
-
|
|
226
|
-
#### Run libyuv_unittest on QEMU
|
|
227
|
-
cd out/Release/
|
|
228
|
-
USE_RVV=ON \
|
|
229
|
-
TOOLCHAIN_PATH={TOOLCHAIN_PATH} \
|
|
230
|
-
QEMU_PREFIX_PATH={QEMU_PREFIX_PATH} \
|
|
231
|
-
../../riscv_script/run_qemu.sh libyuv_unittest
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
## Setup for Arm Cross compile
|
|
235
|
-
|
|
236
|
-
See also https://www.ccoderun.ca/programming/2015-12-20_CrossCompiling/index.html
|
|
237
|
-
|
|
238
|
-
sudo apt-get install ssh dkms build-essential linux-headers-generic
|
|
239
|
-
sudo apt-get install kdevelop cmake git subversion
|
|
240
|
-
sudo apt-get install graphviz doxygen doxygen-gui
|
|
241
|
-
sudo apt-get install manpages manpages-dev manpages-posix manpages-posix-dev
|
|
242
|
-
sudo apt-get install libboost-all-dev libboost-dev libssl-dev
|
|
243
|
-
sudo apt-get install rpm terminator fish
|
|
244
|
-
sudo apt-get install g++-arm-linux-gnueabihf gcc-arm-linux-gnueabihf
|
|
245
|
-
|
|
246
|
-
### Build psnr tool
|
|
247
|
-
|
|
248
|
-
cd util
|
|
249
|
-
arm-linux-gnueabihf-g++ psnr_main.cc psnr.cc ssim.cc -o psnr
|
|
250
|
-
arm-linux-gnueabihf-objdump -d psnr
|
|
251
|
-
|
|
252
|
-
## Running Unittests
|
|
253
|
-
|
|
254
|
-
### Windows
|
|
255
|
-
|
|
256
|
-
out\Release\libyuv_unittest.exe --gtest_catch_exceptions=0 --gtest_filter="*"
|
|
257
|
-
|
|
258
|
-
### macOS and Linux
|
|
259
|
-
|
|
260
|
-
out/Release/libyuv_unittest --gtest_filter="*"
|
|
261
|
-
|
|
262
|
-
Replace --gtest_filter="*" with specific unittest to run. May include wildcards.
|
|
263
|
-
out/Release/libyuv_unittest --gtest_filter=*I420ToARGB_Opt
|
|
264
|
-
|
|
265
|
-
## CPU Emulator tools
|
|
266
|
-
|
|
267
|
-
### Intel SDE (Software Development Emulator)
|
|
268
|
-
|
|
269
|
-
Pre-requisite: Install IntelSDE: http://software.intel.com/en-us/articles/intel-software-development-emulator
|
|
270
|
-
|
|
271
|
-
Then run:
|
|
272
|
-
|
|
273
|
-
c:\intelsde\sde -hsw -- out\Release\libyuv_unittest.exe --gtest_filter=*
|
|
274
|
-
|
|
275
|
-
~/intelsde/sde -skx -- out/Release/libyuv_unittest --gtest_filter=**I420ToARGB_Opt
|
|
276
|
-
|
|
277
|
-
### Intel Architecture Code Analyzer
|
|
278
|
-
|
|
279
|
-
Inset these 2 macros into assembly code to be analyzed:
|
|
280
|
-
IACA_ASM_START
|
|
281
|
-
IACA_ASM_END
|
|
282
|
-
Build the code as usual, then run iaca on the object file.
|
|
283
|
-
~/iaca-lin64/bin/iaca.sh -reduceout -arch HSW out/Release/obj/libyuv_internal/compare_gcc.o
|
|
284
|
-
|
|
285
|
-
## Sanitizers
|
|
286
|
-
|
|
287
|
-
gn gen out/Release "--args=is_debug=false is_msan=true"
|
|
288
|
-
ninja -v -C out/Release
|
|
289
|
-
|
|
290
|
-
Sanitizers available: asan, msan, tsan, ubsan, lsan, ubsan_vptr
|
|
291
|
-
|
|
292
|
-
### Running Dr Memory memcheck for Windows
|
|
293
|
-
|
|
294
|
-
Pre-requisite: Install Dr Memory for Windows and add it to your path: http://www.drmemory.org/docs/page_install_windows.html
|
|
295
|
-
|
|
296
|
-
drmemory out\Debug\libyuv_unittest.exe --gtest_catch_exceptions=0 --gtest_filter=*
|
|
1
|
+
# Getting Started
|
|
2
|
+
|
|
3
|
+
How to get and build the libyuv code.
|
|
4
|
+
|
|
5
|
+
## Pre-requisites
|
|
6
|
+
|
|
7
|
+
You'll need to have depot tools installed: https://www.chromium.org/developers/how-tos/install-depot-tools
|
|
8
|
+
Refer to chromium instructions for each platform for other prerequisites.
|
|
9
|
+
|
|
10
|
+
## Getting the Code
|
|
11
|
+
|
|
12
|
+
Create a working directory, enter it, and run:
|
|
13
|
+
|
|
14
|
+
fetch libyuv
|
|
15
|
+
|
|
16
|
+
For iOS add `;target_os=['ios'];` to your OSX .gclient and run `gclient sync.`
|
|
17
|
+
|
|
18
|
+
Browse the Git reprository: https://chromium.googlesource.com/libyuv/libyuv/+/master
|
|
19
|
+
|
|
20
|
+
### Android
|
|
21
|
+
For Android add `;target_os=['android'];` to your Linux .gclient
|
|
22
|
+
|
|
23
|
+
solutions = [
|
|
24
|
+
{ "name" : "src",
|
|
25
|
+
"url" : "https://chromium.googlesource.com/libyuv/libyuv",
|
|
26
|
+
"deps_file" : "DEPS",
|
|
27
|
+
"managed" : True,
|
|
28
|
+
"custom_deps" : {
|
|
29
|
+
},
|
|
30
|
+
"safesync_url": "",
|
|
31
|
+
},
|
|
32
|
+
];
|
|
33
|
+
target_os = ["android", "linux"];
|
|
34
|
+
|
|
35
|
+
Then run:
|
|
36
|
+
|
|
37
|
+
gclient sync
|
|
38
|
+
|
|
39
|
+
To get just the source (not buildable):
|
|
40
|
+
|
|
41
|
+
git clone https://chromium.googlesource.com/libyuv/libyuv
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
## Building the Library and Unittests
|
|
45
|
+
|
|
46
|
+
### Windows
|
|
47
|
+
|
|
48
|
+
gn gen out\Release "--args=is_debug=false target_cpu=\"x64\""
|
|
49
|
+
gn gen out\Debug "--args=is_debug=true target_cpu=\"x64\""
|
|
50
|
+
ninja -v -C out\Release
|
|
51
|
+
ninja -v -C out\Debug
|
|
52
|
+
|
|
53
|
+
gn gen out\Release "--args=is_debug=false target_cpu=\"x86\""
|
|
54
|
+
gn gen out\Debug "--args=is_debug=true target_cpu=\"x86\""
|
|
55
|
+
ninja -v -C out\Release
|
|
56
|
+
ninja -v -C out\Debug
|
|
57
|
+
|
|
58
|
+
### macOS and Linux
|
|
59
|
+
|
|
60
|
+
gn gen out/Release "--args=is_debug=false"
|
|
61
|
+
gn gen out/Debug "--args=is_debug=true"
|
|
62
|
+
ninja -v -C out/Release
|
|
63
|
+
ninja -v -C out/Debug
|
|
64
|
+
|
|
65
|
+
### Building Offical with GN
|
|
66
|
+
|
|
67
|
+
gn gen out/Official "--args=is_debug=false is_official_build=true is_chrome_branded=true"
|
|
68
|
+
ninja -C out/Official
|
|
69
|
+
|
|
70
|
+
### iOS
|
|
71
|
+
http://www.chromium.org/developers/how-tos/build-instructions-ios
|
|
72
|
+
|
|
73
|
+
Add to .gclient last line: `target_os=['ios'];`
|
|
74
|
+
|
|
75
|
+
arm64
|
|
76
|
+
|
|
77
|
+
gn gen out/Release "--args=is_debug=false target_os=\"ios\" ios_enable_code_signing=false target_cpu=\"arm64\""
|
|
78
|
+
gn gen out/Debug "--args=is_debug=true target_os=\"ios\" ios_enable_code_signing=false target_cpu=\"arm64\""
|
|
79
|
+
ninja -v -C out/Debug libyuv_unittest
|
|
80
|
+
ninja -v -C out/Release libyuv_unittest
|
|
81
|
+
|
|
82
|
+
ios simulator
|
|
83
|
+
|
|
84
|
+
gn gen out/Release "--args=is_debug=false target_os=\"ios\" ios_enable_code_signing=false use_xcode_clang=true target_cpu=\"x86\""
|
|
85
|
+
gn gen out/Debug "--args=is_debug=true target_os=\"ios\" ios_enable_code_signing=false use_xcode_clang=true target_cpu=\"x86\""
|
|
86
|
+
ninja -v -C out/Debug libyuv_unittest
|
|
87
|
+
ninja -v -C out/Release libyuv_unittest
|
|
88
|
+
|
|
89
|
+
ios disassembly
|
|
90
|
+
|
|
91
|
+
otool -tV ./out/Release/obj/libyuv_neon/row_neon64.o >row_neon64.txt
|
|
92
|
+
|
|
93
|
+
### Android
|
|
94
|
+
https://code.google.com/p/chromium/wiki/AndroidBuildInstructions
|
|
95
|
+
|
|
96
|
+
Add to .gclient last line: `target_os=['android'];`
|
|
97
|
+
|
|
98
|
+
arm64
|
|
99
|
+
|
|
100
|
+
gn gen out/Release "--args=is_debug=false target_os=\"android\" target_cpu=\"arm64\""
|
|
101
|
+
gn gen out/Debug "--args=is_debug=true target_os=\"android\" target_cpu=\"arm64\""
|
|
102
|
+
ninja -v -C out/Debug libyuv_unittest
|
|
103
|
+
ninja -v -C out/Release libyuv_unittest
|
|
104
|
+
|
|
105
|
+
armv7
|
|
106
|
+
|
|
107
|
+
gn gen out/Release "--args=is_debug=false target_os=\"android\" target_cpu=\"arm\""
|
|
108
|
+
gn gen out/Debug "--args=is_debug=true target_os=\"android\" target_cpu=\"arm\""
|
|
109
|
+
ninja -v -C out/Debug libyuv_unittest
|
|
110
|
+
ninja -v -C out/Release libyuv_unittest
|
|
111
|
+
|
|
112
|
+
ia32
|
|
113
|
+
|
|
114
|
+
gn gen out/Release "--args=is_debug=false target_os=\"android\" target_cpu=\"x86\""
|
|
115
|
+
gn gen out/Debug "--args=is_debug=true target_os=\"android\" target_cpu=\"x86\""
|
|
116
|
+
ninja -v -C out/Debug libyuv_unittest
|
|
117
|
+
ninja -v -C out/Release libyuv_unittest
|
|
118
|
+
|
|
119
|
+
arm disassembly:
|
|
120
|
+
|
|
121
|
+
llvm-objdump -d ./out/Release/obj/libyuv/row_common.o >row_common.txt
|
|
122
|
+
|
|
123
|
+
llvm-objdump -d ./out/Release/obj/libyuv_neon/row_neon.o >row_neon.txt
|
|
124
|
+
|
|
125
|
+
llvm-objdump -d ./out/Release/obj/libyuv_neon/row_neon64.o >row_neon64.txt
|
|
126
|
+
|
|
127
|
+
Caveat: Disassembly may require optimize_max be disabled in BUILD.gn
|
|
128
|
+
|
|
129
|
+
Running tests:
|
|
130
|
+
|
|
131
|
+
out/Release/bin/run_libyuv_unittest -vv --gtest_filter=*
|
|
132
|
+
|
|
133
|
+
Running test as benchmark:
|
|
134
|
+
|
|
135
|
+
out/Release/bin/run_libyuv_unittest -vv --gtest_filter=* --libyuv_width=1280 --libyuv_height=720 --libyuv_repeat=999 --libyuv_flags=-1 --libyuv_cpu_info=-1
|
|
136
|
+
|
|
137
|
+
Running test with C code:
|
|
138
|
+
|
|
139
|
+
out/Release/bin/run_libyuv_unittest -vv --gtest_filter=* --libyuv_width=1280 --libyuv_height=720 --libyuv_repeat=999 --libyuv_flags=1 --libyuv_cpu_info=1
|
|
140
|
+
|
|
141
|
+
### Build targets
|
|
142
|
+
|
|
143
|
+
ninja -C out/Debug libyuv
|
|
144
|
+
ninja -C out/Debug libyuv_unittest
|
|
145
|
+
ninja -C out/Debug compare
|
|
146
|
+
ninja -C out/Debug yuvconvert
|
|
147
|
+
ninja -C out/Debug yuvconstants
|
|
148
|
+
ninja -C out/Debug psnr
|
|
149
|
+
ninja -C out/Debug cpuid
|
|
150
|
+
|
|
151
|
+
### ARM Linux
|
|
152
|
+
|
|
153
|
+
gn gen out/Release "--args=is_debug=false target_cpu=\"arm64\""
|
|
154
|
+
gn gen out/Debug "--args=is_debug=true target_cpu=\"arm64\""
|
|
155
|
+
ninja -v -C out/Debug libyuv_unittest
|
|
156
|
+
ninja -v -C out/Release libyuv_unittest
|
|
157
|
+
|
|
158
|
+
## Building the Library with make
|
|
159
|
+
|
|
160
|
+
### Linux
|
|
161
|
+
|
|
162
|
+
make V=1 -f linux.mk
|
|
163
|
+
make V=1 -f linux.mk clean
|
|
164
|
+
make V=1 -f linux.mk CXX=clang++ CC=clang
|
|
165
|
+
|
|
166
|
+
## Building the library with cmake
|
|
167
|
+
|
|
168
|
+
Install cmake: http://www.cmake.org/
|
|
169
|
+
|
|
170
|
+
### Default debug build:
|
|
171
|
+
|
|
172
|
+
mkdir out
|
|
173
|
+
cd out
|
|
174
|
+
cmake ..
|
|
175
|
+
cmake --build .
|
|
176
|
+
|
|
177
|
+
### Release build/install
|
|
178
|
+
|
|
179
|
+
mkdir out
|
|
180
|
+
cd out
|
|
181
|
+
cmake -DCMAKE_INSTALL_PREFIX="/usr/lib" -DCMAKE_BUILD_TYPE="Release" ..
|
|
182
|
+
cmake --build . --config Release
|
|
183
|
+
sudo cmake --build . --target install --config Release
|
|
184
|
+
|
|
185
|
+
### Build RPM/DEB packages
|
|
186
|
+
|
|
187
|
+
mkdir out
|
|
188
|
+
cd out
|
|
189
|
+
cmake -DCMAKE_BUILD_TYPE=Release ..
|
|
190
|
+
make -j4
|
|
191
|
+
make package
|
|
192
|
+
|
|
193
|
+
## Building RISC-V target with cmake
|
|
194
|
+
|
|
195
|
+
### Prerequisite: build risc-v clang toolchain and qemu
|
|
196
|
+
|
|
197
|
+
If you don't have prebuilt clang and riscv64 qemu, run the script to download source and build them.
|
|
198
|
+
|
|
199
|
+
./riscv_script/prepare_toolchain_qemu.sh
|
|
200
|
+
|
|
201
|
+
After running script, clang & qemu are built in `build-toolchain-qemu/riscv-clang/` & `build-toolchain-qemu/riscv-qemu/`.
|
|
202
|
+
|
|
203
|
+
### Cross-compile for RISC-V target
|
|
204
|
+
cmake -B out/Release/ -DUNIT_TEST=ON \
|
|
205
|
+
-DCMAKE_BUILD_TYPE=Release \
|
|
206
|
+
-DCMAKE_TOOLCHAIN_FILE="./riscv_script/riscv-clang.cmake" \
|
|
207
|
+
-DTOOLCHAIN_PATH={TOOLCHAIN_PATH} \
|
|
208
|
+
-DUSE_RVV=ON .
|
|
209
|
+
cmake --build out/Release/
|
|
210
|
+
|
|
211
|
+
#### Customized Compiler Flags
|
|
212
|
+
|
|
213
|
+
Customized compiler flags are supported by `-DRISCV_COMPILER_FLAGS="xxx"`.
|
|
214
|
+
If `-DRISCV_COMPILER_FLAGS="xxx"` is manually assigned, other compile flags(e.g disable -march=xxx) will not be appended.
|
|
215
|
+
|
|
216
|
+
Example:
|
|
217
|
+
|
|
218
|
+
cmake -B out/Release/ -DUNIT_TEST=ON \
|
|
219
|
+
-DCMAKE_BUILD_TYPE=Release \
|
|
220
|
+
-DCMAKE_TOOLCHAIN_FILE="./riscv_script/riscv-clang.cmake" \
|
|
221
|
+
-DRISCV_COMPILER_FLAGS="-mcpu=sifive-x280" \
|
|
222
|
+
.
|
|
223
|
+
|
|
224
|
+
### Run on QEMU
|
|
225
|
+
|
|
226
|
+
#### Run libyuv_unittest on QEMU
|
|
227
|
+
cd out/Release/
|
|
228
|
+
USE_RVV=ON \
|
|
229
|
+
TOOLCHAIN_PATH={TOOLCHAIN_PATH} \
|
|
230
|
+
QEMU_PREFIX_PATH={QEMU_PREFIX_PATH} \
|
|
231
|
+
../../riscv_script/run_qemu.sh libyuv_unittest
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
## Setup for Arm Cross compile
|
|
235
|
+
|
|
236
|
+
See also https://www.ccoderun.ca/programming/2015-12-20_CrossCompiling/index.html
|
|
237
|
+
|
|
238
|
+
sudo apt-get install ssh dkms build-essential linux-headers-generic
|
|
239
|
+
sudo apt-get install kdevelop cmake git subversion
|
|
240
|
+
sudo apt-get install graphviz doxygen doxygen-gui
|
|
241
|
+
sudo apt-get install manpages manpages-dev manpages-posix manpages-posix-dev
|
|
242
|
+
sudo apt-get install libboost-all-dev libboost-dev libssl-dev
|
|
243
|
+
sudo apt-get install rpm terminator fish
|
|
244
|
+
sudo apt-get install g++-arm-linux-gnueabihf gcc-arm-linux-gnueabihf
|
|
245
|
+
|
|
246
|
+
### Build psnr tool
|
|
247
|
+
|
|
248
|
+
cd util
|
|
249
|
+
arm-linux-gnueabihf-g++ psnr_main.cc psnr.cc ssim.cc -o psnr
|
|
250
|
+
arm-linux-gnueabihf-objdump -d psnr
|
|
251
|
+
|
|
252
|
+
## Running Unittests
|
|
253
|
+
|
|
254
|
+
### Windows
|
|
255
|
+
|
|
256
|
+
out\Release\libyuv_unittest.exe --gtest_catch_exceptions=0 --gtest_filter="*"
|
|
257
|
+
|
|
258
|
+
### macOS and Linux
|
|
259
|
+
|
|
260
|
+
out/Release/libyuv_unittest --gtest_filter="*"
|
|
261
|
+
|
|
262
|
+
Replace --gtest_filter="*" with specific unittest to run. May include wildcards.
|
|
263
|
+
out/Release/libyuv_unittest --gtest_filter=*I420ToARGB_Opt
|
|
264
|
+
|
|
265
|
+
## CPU Emulator tools
|
|
266
|
+
|
|
267
|
+
### Intel SDE (Software Development Emulator)
|
|
268
|
+
|
|
269
|
+
Pre-requisite: Install IntelSDE: http://software.intel.com/en-us/articles/intel-software-development-emulator
|
|
270
|
+
|
|
271
|
+
Then run:
|
|
272
|
+
|
|
273
|
+
c:\intelsde\sde -hsw -- out\Release\libyuv_unittest.exe --gtest_filter=*
|
|
274
|
+
|
|
275
|
+
~/intelsde/sde -skx -- out/Release/libyuv_unittest --gtest_filter=**I420ToARGB_Opt
|
|
276
|
+
|
|
277
|
+
### Intel Architecture Code Analyzer
|
|
278
|
+
|
|
279
|
+
Inset these 2 macros into assembly code to be analyzed:
|
|
280
|
+
IACA_ASM_START
|
|
281
|
+
IACA_ASM_END
|
|
282
|
+
Build the code as usual, then run iaca on the object file.
|
|
283
|
+
~/iaca-lin64/bin/iaca.sh -reduceout -arch HSW out/Release/obj/libyuv_internal/compare_gcc.o
|
|
284
|
+
|
|
285
|
+
## Sanitizers
|
|
286
|
+
|
|
287
|
+
gn gen out/Release "--args=is_debug=false is_msan=true"
|
|
288
|
+
ninja -v -C out/Release
|
|
289
|
+
|
|
290
|
+
Sanitizers available: asan, msan, tsan, ubsan, lsan, ubsan_vptr
|
|
291
|
+
|
|
292
|
+
### Running Dr Memory memcheck for Windows
|
|
293
|
+
|
|
294
|
+
Pre-requisite: Install Dr Memory for Windows and add it to your path: http://www.drmemory.org/docs/page_install_windows.html
|
|
295
|
+
|
|
296
|
+
drmemory out\Debug\libyuv_unittest.exe --gtest_catch_exceptions=0 --gtest_filter=*
|