aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Barchard <fbarchard@google.com>2017-04-18 11:28:09 -0700
committerFrank Barchard <fbarchard@google.com>2017-04-18 11:28:09 -0700
commitb33a82ffd059f362574ae038458e8dee26ac5a4a (patch)
tree4231a1eec8b9833c69cf6c906f03be758edd4bd3
parentcead1e07666bcc5914f8927712c2f89b9b789f9b (diff)
downloadlibyuv-b33a82ffd059f362574ae038458e8dee26ac5a4a.tar.gz
libyuv roll to r1652 for new I422ToRGB565 function
Bug: none Test: I422ToRGB565 unittest Change-Id: I8b4418badf725d3ecb6735effcb782976b27979b
-rw-r--r--README.version2
-rw-r--r--files/Android.mk41
-rw-r--r--files/BUILD.gn20
-rw-r--r--files/CMakeLists.txt8
-rw-r--r--files/DEPS35
-rw-r--r--files/README.chromium2
-rw-r--r--files/docs/deprecated_builds.md2
-rw-r--r--files/include/libyuv/convert_from.h12
-rw-r--r--files/include/libyuv/version.h2
-rw-r--r--files/libyuv_test.gyp4
-rw-r--r--files/source/convert_from.cc69
-rw-r--r--files/source/rotate_win.cc11
-rw-r--r--files/source/row_any.cc55
-rw-r--r--files/tools/OWNERS6
-rw-r--r--files/unit_test/convert_test.cc3
-rw-r--r--files/unit_test/unit_test.cc13
-rw-r--r--files/util/yuvconvert.cc (renamed from files/util/convert.cc)2
17 files changed, 209 insertions, 78 deletions
diff --git a/README.version b/README.version
index 7b699581..6ce5d065 100644
--- a/README.version
+++ b/README.version
@@ -1,3 +1,3 @@
-Version: r1649
+Version: r1652
BugComponent: 42195
Owner: lajos
diff --git a/files/Android.mk b/files/Android.mk
index cc17bde2..36c02adf 100644
--- a/files/Android.mk
+++ b/files/Android.mk
@@ -15,12 +15,9 @@ LOCAL_SRC_FILES := \
source/convert_argb.cc \
source/convert_from.cc \
source/convert_from_argb.cc \
- source/convert_jpeg.cc \
source/convert_to_argb.cc \
source/convert_to_i420.cc \
source/cpu_id.cc \
- source/mjpeg_decoder.cc \
- source/mjpeg_validate.cc \
source/planar_functions.cc \
source/rotate.cc \
source/rotate_any.cc \
@@ -49,9 +46,17 @@ LOCAL_SRC_FILES := \
source/scale_neon64.cc \
source/video_common.cc
-common_CFLAGS := -Wall -fexceptions -DHAVE_JPEG
-LOCAL_CFLAGS += $(common_CFLAGS)
+common_CFLAGS := -Wall -fexceptions
+ifneq ($(LIBYUV_DISABLE_JPEG), "yes")
+LOCAL_SRC_FILES += \
+ source/convert_jpeg.cc \
+ source/mjpeg_decoder.cc \
+ source/mjpeg_validate.cc
+common_CFLAGS += -DHAVE_JPEG
LOCAL_SHARED_LIBRARIES := libjpeg
+endif
+
+LOCAL_CFLAGS += $(common_CFLAGS)
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
LOCAL_C_INCLUDES += $(LOCAL_PATH)/include
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
@@ -65,6 +70,32 @@ include $(CLEAR_VARS)
LOCAL_WHOLE_STATIC_LIBRARIES := libyuv_static
LOCAL_MODULE := libyuv
+ifneq ($(LIBYUV_DISABLE_JPEG), "yes")
LOCAL_SHARED_LIBRARIES := libjpeg
+endif
include $(BUILD_SHARED_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_STATIC_LIBRARIES := libyuv_static
+LOCAL_SHARED_LIBRARIES := libjpeg
+LOCAL_MODULE_TAGS := tests
+LOCAL_CPP_EXTENSION := .cc
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/include
+LOCAL_SRC_FILES := \
+ unit_test/unit_test.cc \
+ unit_test/basictypes_test.cc \
+ unit_test/color_test.cc \
+ unit_test/compare_test.cc \
+ unit_test/convert_test.cc \
+ unit_test/cpu_test.cc \
+ unit_test/math_test.cc \
+ unit_test/planar_test.cc \
+ unit_test/rotate_argb_test.cc \
+ unit_test/rotate_test.cc \
+ unit_test/scale_argb_test.cc \
+ unit_test/scale_test.cc \
+ unit_test/video_common_test.cc
+
+LOCAL_MODULE := libyuv_unittest
+include $(BUILD_NATIVE_TEST)
diff --git a/files/BUILD.gn b/files/BUILD.gn
index 4f56cdc2..a50aab5f 100644
--- a/files/BUILD.gn
+++ b/files/BUILD.gn
@@ -9,6 +9,11 @@
import("libyuv.gni")
import("//testing/test.gni")
+declare_args() {
+ # Set to false to disable building with gflags.
+ libyuv_use_gflags = true
+}
+
config("libyuv_config") {
include_dirs = [ "include" ]
if (is_android && current_cpu == "arm64") {
@@ -28,7 +33,7 @@ group("default") {
if (libyuv_include_tests) {
deps += [
":compare",
- ":convert",
+ ":yuvconvert",
":cpuid",
":libyuv_unittest",
":psnr",
@@ -231,9 +236,14 @@ if (libyuv_include_tests) {
deps = [
":libyuv",
"//testing/gtest",
- "//third_party/gflags",
]
+ defines = []
+ if (libyuv_use_gflags) {
+ defines += [ "LIBYUV_USE_GFLAGS" ]
+ deps += [ "//third_party/gflags" ]
+ }
+
configs += [ ":libyuv_unittest_warnings_config" ]
public_deps = [
@@ -241,8 +251,6 @@ if (libyuv_include_tests) {
]
public_configs = [ ":libyuv_unittest_config" ]
- defines = []
-
if (is_linux) {
cflags = [ "-fexceptions" ]
}
@@ -289,10 +297,10 @@ if (libyuv_include_tests) {
}
}
- executable("convert") {
+ executable("yuvconvert") {
sources = [
# sources
- "util/convert.cc",
+ "util/yuvconvert.cc",
]
deps = [
":libyuv",
diff --git a/files/CMakeLists.txt b/files/CMakeLists.txt
index 7c95487f..6420371d 100644
--- a/files/CMakeLists.txt
+++ b/files/CMakeLists.txt
@@ -31,14 +31,14 @@ SET_TARGET_PROPERTIES ( ${ly_lib_shared} PROPERTIES OUTPUT_NAME "${ly_lib_name}"
SET_TARGET_PROPERTIES ( ${ly_lib_shared} PROPERTIES PREFIX "lib" )
# this creates the conversion tool
-ADD_EXECUTABLE ( convert ${ly_base_dir}/util/convert.cc )
-TARGET_LINK_LIBRARIES ( convert ${ly_lib_static} )
+ADD_EXECUTABLE ( yuvconvert ${ly_base_dir}/util/yuvconvert.cc )
+TARGET_LINK_LIBRARIES ( yuvconvert ${ly_lib_static} )
INCLUDE ( FindJPEG )
if (JPEG_FOUND)
include_directories( ${JPEG_INCLUDE_DIR} )
- target_link_libraries( convert ${JPEG_LIBRARY} )
+ target_link_libraries( yuvconvert ${JPEG_LIBRARY} )
add_definitions( -DHAVE_JPEG )
endif()
@@ -73,7 +73,7 @@ endif()
# install the conversion tool, .so, .a, and all the header files
-INSTALL ( PROGRAMS ${CMAKE_BINARY_DIR}/convert DESTINATION bin RENAME yuvconvert )
+INSTALL ( PROGRAMS ${CMAKE_BINARY_DIR}/yuvconvert DESTINATION bin )
INSTALL ( TARGETS ${ly_lib_static} DESTINATION lib )
INSTALL ( TARGETS ${ly_lib_shared} LIBRARY DESTINATION lib )
INSTALL ( DIRECTORY ${PROJECT_SOURCE_DIR}/include/ DESTINATION include )
diff --git a/files/DEPS b/files/DEPS
index 2073e8c7..803f481f 100644
--- a/files/DEPS
+++ b/files/DEPS
@@ -1,30 +1,30 @@
vars = {
'chromium_git': 'https://chromium.googlesource.com',
- 'chromium_revision': '7950721f084767700b62bb6e1c90ea155efae980',
+ 'chromium_revision': 'da7cc8ca4c326895886b10df62d513fac256d74f',
'swarming_revision': '11e31afa5d330756ff87aa12064bb5d032896cb5',
# Three lines of non-changing comments so that
# the commit queue can handle CLs rolling lss
# and whatever else without interference from each other.
- 'lss_revision': '3f6478ac95edf86cd3da300c2c0d34a438f5dbeb',
+ 'lss_revision': '63f24c8221a229f677d26ebe8f3d1528a9d787ac',
# Three lines of non-changing comments so that
# the commit queue can handle CLs rolling catapult
# and whatever else without interference from each other.
- 'catapult_revision': '353ee60a4567ec80252bb4047e54b2df3151717e',
+ 'catapult_revision': '49eb11f63eb4d552d634833a01d2710208ba0523',
}
deps = {
'src/build':
- Var('chromium_git') + '/chromium/src/build' + '@' + 'bf8911f59bebb1cdd075e612c78e985cb14eca29',
+ Var('chromium_git') + '/chromium/src/build' + '@' + '15013685bdd59b8e548ffdef88b6fddae4f0e49c',
'src/buildtools':
- Var('chromium_git') + '/chromium/buildtools.git' + '@' + 'b3771b1935ea74c388b6fb1750e83f5d83b39dec',
+ Var('chromium_git') + '/chromium/buildtools.git' + '@' + '88811f48a6b79786ef35be86825642fc33011151',
'src/testing':
- Var('chromium_git') + '/chromium/src/testing' + '@' + 'c2c74bc1d165ccc01ed03e424f72aa313eeb9120',
+ Var('chromium_git') + '/chromium/src/testing' + '@' + '6885521e316f349c47c4f23f5bce9bd44cb0eece',
'src/testing/gtest':
Var('chromium_git') + '/external/github.com/google/googletest.git' + '@' + '6f8a66431cb592dad629028a50b3dd418a408c87',
'src/testing/gmock':
Var('chromium_git') + '/external/googlemock.git' + '@' + '0421b6f358139f02e102c9c332ce19a33faf75be', # from svn revision 566
'src/third_party':
- Var('chromium_git') + '/chromium/src/third_party' + '@' + '4c0908d22e7c4cd423da28f69c64c6fd293b0e99',
+ Var('chromium_git') + '/chromium/src/third_party' + '@' + 'be0a7d2accc6d1e69eb9fa005d98e1558b9227ff',
'src/third_party/catapult':
Var('chromium_git') + '/external/github.com/catapult-project/catapult.git' + '@' + Var('catapult_revision'),
'src/third_party/colorama/src':
@@ -34,7 +34,7 @@ deps = {
'src/third_party/yasm/source/patched-yasm':
Var('chromium_git') + '/chromium/deps/yasm/patched-yasm.git' + '@' + '7da28c6c7c6a1387217352ce02b31754deb54d2a',
'src/tools':
- Var('chromium_git') + '/chromium/src/tools' + '@' + '14318cc69b7116d7b4aa23ee58cdf3d7c71d4038',
+ Var('chromium_git') + '/chromium/src/tools' + '@' + '80ce3971a8a250e9d0180e38a29553273877166c',
'src/tools/gyp':
Var('chromium_git') + '/external/gyp.git' + '@' + 'e7079f0e0e14108ab0dba58728ff219637458563',
'src/tools/swarming_client':
@@ -52,13 +52,13 @@ deps = {
deps_os = {
'android': {
'src/base':
- Var('chromium_git') + '/chromium/src/base' + '@' + 'd75864a2c554db298f34b188c07a11133c8bd88b',
+ Var('chromium_git') + '/chromium/src/base' + '@' + '636a52bf9d2ab7ea4e97d0a933bbd5706acbbc7c',
'src/third_party/android_tools':
- Var('chromium_git') + '/android_tools.git' + '@' + 'b43a6a289a7588b1769814f04dd6c7d7176974cc',
+ Var('chromium_git') + '/android_tools.git' + '@' + 'b65c4776dac2cf1b80e969b3b2d4e081b9c84f29',
'src/third_party/ced/src':
- Var('chromium_git') + '/external/github.com/google/compact_enc_det.git' + '@' + '368a9cc09ad868a3d28f0b5ad4a733f263c46409',
+ Var('chromium_git') + '/external/github.com/google/compact_enc_det.git' + '@' + 'e21eb6aed10b9f6e2727f136c52420033214d458',
'src/third_party/icu':
- Var('chromium_git') + '/chromium/deps/icu.git' + '@' + '450be73c9ee8ae29d43d4fdc82febb2a5f62bfb5',
+ Var('chromium_git') + '/chromium/deps/icu.git' + '@' + 'b34251f8b762f8e2112a89c587855ca4297fed96',
'src/third_party/jsr-305/src':
Var('chromium_git') + '/external/jsr-305.git' + '@' + '642c508235471f7220af6d5df2d3210e3bfc0919',
'src/third_party/junit/src':
@@ -74,7 +74,7 @@ deps_os = {
},
'ios': {
'src/ios':
- Var('chromium_git') + '/chromium/src/ios' + '@' + '8b8111f841dfdc04bb5591dfd1315120f95709a4',
+ Var('chromium_git') + '/chromium/src/ios' + '@' + '9d4d917abc902ad9eb512839948b880194f76338',
},
'unix': {
'src/third_party/lss':
@@ -425,15 +425,6 @@ hooks = [
],
},
{
- # Pull sanitizer-instrumented third-party libraries if requested via
- # GYP_DEFINES.
- # See src/third_party/instrumented_libraries/scripts/download_binaries.py.
- # TODO(kjellander): Update comment when GYP is completely cleaned up.
- 'name': 'instrumented_libraries',
- 'pattern': '\\.sha1',
- 'action': ['python', 'src/third_party/instrumented_libraries/scripts/download_binaries.py'],
- },
- {
'name': 'clang_format_merge_driver',
'pattern': '.',
'action': [ 'python',
diff --git a/files/README.chromium b/files/README.chromium
index 2512b38d..8a0f0660 100644
--- a/files/README.chromium
+++ b/files/README.chromium
@@ -1,6 +1,6 @@
Name: libyuv
URL: http://code.google.com/p/libyuv/
-Version: 1649
+Version: 1652
License: BSD
License File: LICENSE
diff --git a/files/docs/deprecated_builds.md b/files/docs/deprecated_builds.md
index f623e50c..d54a0282 100644
--- a/files/docs/deprecated_builds.md
+++ b/files/docs/deprecated_builds.md
@@ -238,7 +238,7 @@ If you get a compile error for atlthunk.lib on Windows, read http://www.chromium
ninja -C out/Debug libyuv
ninja -C out/Debug libyuv_unittest
ninja -C out/Debug compare
- ninja -C out/Debug convert
+ ninja -C out/Debug yuvconvert
ninja -C out/Debug psnr
ninja -C out/Debug cpuid
diff --git a/files/include/libyuv/convert_from.h b/files/include/libyuv/convert_from.h
index 7ddebd4f..a050e445 100644
--- a/files/include/libyuv/convert_from.h
+++ b/files/include/libyuv/convert_from.h
@@ -200,6 +200,18 @@ int I420ToRGB565(const uint8* src_y,
int width,
int height);
+LIBYUV_API
+int I422ToRGB565(const uint8* src_y,
+ int src_stride_y,
+ const uint8* src_u,
+ int src_stride_u,
+ const uint8* src_v,
+ int src_stride_v,
+ uint8* dst_frame,
+ int dst_stride_frame,
+ int width,
+ int height);
+
// Convert I420 To RGB565 with 4x4 dither matrix (16 bytes).
// Values in dither matrix from 0 to 7 recommended.
// The order of the dither matrix is first byte is upper left.
diff --git a/files/include/libyuv/version.h b/files/include/libyuv/version.h
index 5d56cf06..5b5f5399 100644
--- a/files/include/libyuv/version.h
+++ b/files/include/libyuv/version.h
@@ -11,6 +11,6 @@
#ifndef INCLUDE_LIBYUV_VERSION_H_
#define INCLUDE_LIBYUV_VERSION_H_
-#define LIBYUV_VERSION 1649
+#define LIBYUV_VERSION 1652
#endif // INCLUDE_LIBYUV_VERSION_H_
diff --git a/files/libyuv_test.gyp b/files/libyuv_test.gyp
index 88860f5c..87e7a5bb 100644
--- a/files/libyuv_test.gyp
+++ b/files/libyuv_test.gyp
@@ -123,14 +123,14 @@
], # conditions
},
{
- 'target_name': 'convert',
+ 'target_name': 'yuvconvert',
'type': 'executable',
'dependencies': [
'libyuv.gyp:libyuv',
],
'sources': [
# sources
- 'util/convert.cc',
+ 'util/yuvconvert.cc',
],
'conditions': [
['OS=="linux"', {
diff --git a/files/source/convert_from.cc b/files/source/convert_from.cc
index ab5afc06..d623731d 100644
--- a/files/source/convert_from.cc
+++ b/files/source/convert_from.cc
@@ -890,6 +890,75 @@ int I420ToRGB565(const uint8* src_y,
return 0;
}
+// Convert I422 to RGB565.
+LIBYUV_API
+int I422ToRGB565(const uint8* src_y,
+ int src_stride_y,
+ const uint8* src_u,
+ int src_stride_u,
+ const uint8* src_v,
+ int src_stride_v,
+ uint8* dst_rgb565,
+ int dst_stride_rgb565,
+ int width,
+ int height) {
+ int y;
+ void (*I422ToRGB565Row)(const uint8* y_buf, const uint8* u_buf,
+ const uint8* v_buf, uint8* rgb_buf,
+ const struct YuvConstants* yuvconstants, int width) =
+ I422ToRGB565Row_C;
+ if (!src_y || !src_u || !src_v || !dst_rgb565 || width <= 0 || height == 0) {
+ return -1;
+ }
+ // Negative height means invert the image.
+ if (height < 0) {
+ height = -height;
+ dst_rgb565 = dst_rgb565 + (height - 1) * dst_stride_rgb565;
+ dst_stride_rgb565 = -dst_stride_rgb565;
+ }
+#if defined(HAS_I422TORGB565ROW_SSSE3)
+ if (TestCpuFlag(kCpuHasSSSE3)) {
+ I422ToRGB565Row = I422ToRGB565Row_Any_SSSE3;
+ if (IS_ALIGNED(width, 8)) {
+ I422ToRGB565Row = I422ToRGB565Row_SSSE3;
+ }
+ }
+#endif
+#if defined(HAS_I422TORGB565ROW_AVX2)
+ if (TestCpuFlag(kCpuHasAVX2)) {
+ I422ToRGB565Row = I422ToRGB565Row_Any_AVX2;
+ if (IS_ALIGNED(width, 16)) {
+ I422ToRGB565Row = I422ToRGB565Row_AVX2;
+ }
+ }
+#endif
+#if defined(HAS_I422TORGB565ROW_NEON)
+ if (TestCpuFlag(kCpuHasNEON)) {
+ I422ToRGB565Row = I422ToRGB565Row_Any_NEON;
+ if (IS_ALIGNED(width, 8)) {
+ I422ToRGB565Row = I422ToRGB565Row_NEON;
+ }
+ }
+#endif
+#if defined(HAS_I422TORGB565ROW_MSA)
+ if (TestCpuFlag(kCpuHasMSA)) {
+ I422ToRGB565Row = I422ToRGB565Row_Any_MSA;
+ if (IS_ALIGNED(width, 8)) {
+ I422ToRGB565Row = I422ToRGB565Row_MSA;
+ }
+ }
+#endif
+
+ for (y = 0; y < height; ++y) {
+ I422ToRGB565Row(src_y, src_u, src_v, dst_rgb565, &kYuvI601Constants, width);
+ dst_rgb565 += dst_stride_rgb565;
+ src_y += src_stride_y;
+ src_u += src_stride_u;
+ src_v += src_stride_v;
+ }
+ return 0;
+}
+
// Ordered 8x8 dither for 888 to 565. Values from 0 to 7.
static const uint8 kDither565_4x4[16] = {
0, 4, 1, 5, 6, 2, 7, 3, 1, 5, 0, 4, 7, 3, 6, 2,
diff --git a/files/source/rotate_win.cc b/files/source/rotate_win.cc
index 044048d3..93a5c28a 100644
--- a/files/source/rotate_win.cc
+++ b/files/source/rotate_win.cc
@@ -137,9 +137,9 @@ __declspec(naked) void TransposeUVWx8_SSE2(const uint8* src,
mov ecx, [ecx + 16 + 28] // w
align 4
- convertloop:
- // Read in the data from the source pointer.
- // First round of bit swap.
+ // Read in the data from the source pointer.
+ // First round of bit swap.
+ convertloop:
movdqu xmm0, [eax]
movdqu xmm1, [eax + edi]
lea eax, [eax + 2 * edi]
@@ -166,7 +166,7 @@ __declspec(naked) void TransposeUVWx8_SSE2(const uint8* src,
lea eax, [eax + 2 * edi]
movdqu [esp], xmm5 // backup xmm5
neg edi
- movdqa xmm5, xmm6 // use xmm5 as temp register.
+ movdqa xmm5, xmm6 // use xmm5 as temp register.
punpcklbw xmm6, xmm7
punpckhbw xmm5, xmm7
movdqa xmm7, xmm5
@@ -187,10 +187,11 @@ __declspec(naked) void TransposeUVWx8_SSE2(const uint8* src,
movdqa xmm6, xmm5
movdqu xmm5, [esp] // restore xmm5
movdqu [esp], xmm6 // backup xmm6
- movdqa xmm6, xmm5 // use xmm6 as temp register.
+ movdqa xmm6, xmm5 // use xmm6 as temp register.
punpcklwd xmm5, xmm7
punpckhwd xmm6, xmm7
movdqa xmm7, xmm6
+
// Third round of bit swap.
// Write to the destination pointer.
movdqa xmm6, xmm0
diff --git a/files/source/row_any.cc b/files/source/row_any.cc
index af5d1fbc..1092a9c0 100644
--- a/files/source/row_any.cc
+++ b/files/source/row_any.cc
@@ -158,13 +158,13 @@ ANY31C(I422ToRGBARow_Any_AVX2, I422ToRGBARow_AVX2, 1, 0, 4, 15)
ANY31C(I444ToARGBRow_Any_AVX2, I444ToARGBRow_AVX2, 0, 0, 4, 15)
#endif
#ifdef HAS_I422TOARGB4444ROW_AVX2
-ANY31C(I422ToARGB4444Row_Any_AVX2, I422ToARGB4444Row_AVX2, 1, 0, 2, 7)
+ANY31C(I422ToARGB4444Row_Any_AVX2, I422ToARGB4444Row_AVX2, 1, 0, 2, 15)
#endif
#ifdef HAS_I422TOARGB1555ROW_AVX2
-ANY31C(I422ToARGB1555Row_Any_AVX2, I422ToARGB1555Row_AVX2, 1, 0, 2, 7)
+ANY31C(I422ToARGB1555Row_Any_AVX2, I422ToARGB1555Row_AVX2, 1, 0, 2, 15)
#endif
#ifdef HAS_I422TORGB565ROW_AVX2
-ANY31C(I422ToRGB565Row_Any_AVX2, I422ToRGB565Row_AVX2, 1, 0, 2, 7)
+ANY31C(I422ToRGB565Row_Any_AVX2, I422ToRGB565Row_AVX2, 1, 0, 2, 15)
#endif
#ifdef HAS_I422TOARGBROW_NEON
ANY31C(I444ToARGBRow_Any_NEON, I444ToARGBRow_NEON, 0, 0, 4, 7)
@@ -654,18 +654,18 @@ ANY11B(ARGBCopyYToAlphaRow_Any_SSE2, ARGBCopyYToAlphaRow_SSE2, 0, 1, 4, 7)
#undef ANY11B
// Any 1 to 1 with parameter.
-#define ANY11P(NAMEANY, ANY_SIMD, T, SBPP, BPP, MASK) \
- void NAMEANY(const uint8* src_ptr, uint8* dst_ptr, T shuffler, int width) { \
- SIMD_ALIGNED(uint8 temp[64 * 2]); \
- memset(temp, 0, 64); /* for msan */ \
- int r = width & MASK; \
- int n = width & ~MASK; \
- if (n > 0) { \
- ANY_SIMD(src_ptr, dst_ptr, shuffler, n); \
- } \
- memcpy(temp, src_ptr + n * SBPP, r * SBPP); \
- ANY_SIMD(temp, temp + 64, shuffler, MASK + 1); \
- memcpy(dst_ptr + n * BPP, temp + 64, r * BPP); \
+#define ANY11P(NAMEANY, ANY_SIMD, T, SBPP, BPP, MASK) \
+ void NAMEANY(const uint8* src_ptr, uint8* dst_ptr, T param, int width) { \
+ SIMD_ALIGNED(uint8 temp[64 * 2]); \
+ memset(temp, 0, 64); /* for msan */ \
+ int r = width & MASK; \
+ int n = width & ~MASK; \
+ if (n > 0) { \
+ ANY_SIMD(src_ptr, dst_ptr, param, n); \
+ } \
+ memcpy(temp, src_ptr + n * SBPP, r * SBPP); \
+ ANY_SIMD(temp, temp + 64, param, MASK + 1); \
+ memcpy(dst_ptr + n * BPP, temp + 64, r * BPP); \
}
#if defined(HAS_ARGBTORGB565DITHERROW_SSE2)
@@ -718,19 +718,18 @@ ANY11P(ARGBShuffleRow_Any_MSA, ARGBShuffleRow_MSA, const uint8*, 4, 4, 7)
#undef ANY11P
// Any 1 to 1 with parameter and shorts. BPP measures in shorts.
-#define ANY11P16(NAMEANY, ANY_SIMD, T, SBPP, BPP, MASK) \
- void NAMEANY(const uint16* src_ptr, uint16* dst_ptr, T shuffler, \
- int width) { \
- SIMD_ALIGNED(uint16 temp[16 * 2]); \
- memset(temp, 0, 32); /* for msan */ \
- int r = width & MASK; \
- int n = width & ~MASK; \
- if (n > 0) { \
- ANY_SIMD(src_ptr, dst_ptr, shuffler, n); \
- } \
- memcpy(temp, src_ptr + n, r * SBPP); \
- ANY_SIMD(temp, temp + 16, shuffler, MASK + 1); \
- memcpy(dst_ptr + n, temp + 16, r * BPP); \
+#define ANY11P16(NAMEANY, ANY_SIMD, T, SBPP, BPP, MASK) \
+ void NAMEANY(const uint16* src_ptr, uint16* dst_ptr, T param, int width) { \
+ SIMD_ALIGNED(uint16 temp[16 * 2]); \
+ memset(temp, 0, 32); /* for msan */ \
+ int r = width & MASK; \
+ int n = width & ~MASK; \
+ if (n > 0) { \
+ ANY_SIMD(src_ptr, dst_ptr, param, n); \
+ } \
+ memcpy(temp, src_ptr + n, r * SBPP); \
+ ANY_SIMD(temp, temp + 16, param, MASK + 1); \
+ memcpy(dst_ptr + n, temp + 16, r * BPP); \
}
#ifdef HAS_HALFFLOATROW_SSE2
diff --git a/files/tools/OWNERS b/files/tools/OWNERS
index ac607d42..f0963525 100644
--- a/files/tools/OWNERS
+++ b/files/tools/OWNERS
@@ -9,6 +9,12 @@ dpranke@chromium.org
scottmg@chromium.org
thakis@chromium.org
+# These aren't actually great contact points for this directory, but
+# changes in this directory are rare and most changes happen in better-owned
+# subdirectories.
+#
+# TEAM: infra-dev@chromium.org
+# COMPONENT: Build
per-file bisect*.py=anantha@chromium.org
per-file bisect*.py=prasadv@chromium.org
diff --git a/files/unit_test/convert_test.cc b/files/unit_test/convert_test.cc
index 0f1c7430..04d5a404 100644
--- a/files/unit_test/convert_test.cc
+++ b/files/unit_test/convert_test.cc
@@ -576,6 +576,7 @@ TESTPLANARTOB(I420, 2, 2, RGB565, 2, 2, 1, 9, ARGB, 4)
TESTPLANARTOB(I420, 2, 2, ARGB1555, 2, 2, 1, 9, ARGB, 4)
TESTPLANARTOB(I420, 2, 2, ARGB4444, 2, 2, 1, 17, ARGB, 4)
TESTPLANARTOB(I422, 2, 1, ARGB, 4, 4, 1, 2, ARGB, 4)
+TESTPLANARTOB(I422, 2, 1, RGB565, 2, 2, 1, 9, ARGB, 4)
TESTPLANARTOB(J422, 2, 1, ARGB, 4, 4, 1, 2, ARGB, 4)
TESTPLANARTOB(J422, 2, 1, ABGR, 4, 4, 1, 2, ARGB, 4)
TESTPLANARTOB(H422, 2, 1, ARGB, 4, 4, 1, 2, ARGB, 4)
@@ -1800,7 +1801,7 @@ TESTPLANARTOE(I420, 2, 2, RAW, 1, 3, ARGB, 4)
TESTPLANARTOE(I420, 2, 2, ARGB, 1, 4, RGB565, 2)
TESTPLANARTOE(I420, 2, 2, ARGB, 1, 4, ARGB1555, 2)
TESTPLANARTOE(I420, 2, 2, ARGB, 1, 4, ARGB4444, 2)
-TESTPLANARTOE(I422, 2, 1, ARGB, 1, 4, ARGB, 4)
+TESTPLANARTOE(I422, 2, 1, ARGB, 1, 4, RGB565, 2)
TESTPLANARTOE(J422, 2, 1, ARGB, 1, 4, ARGB, 4)
TESTPLANARTOE(J422, 2, 1, ABGR, 1, 4, ARGB, 4)
TESTPLANARTOE(H422, 2, 1, ARGB, 1, 4, ARGB, 4)
diff --git a/files/unit_test/unit_test.cc b/files/unit_test/unit_test.cc
index 7f8bcf8f..55297e36 100644
--- a/files/unit_test/unit_test.cc
+++ b/files/unit_test/unit_test.cc
@@ -14,7 +14,9 @@
#include <cstring>
+#ifdef LIBYUV_USE_GFLAGS
#include "gflags/gflags.h"
+#endif
// Change this to 1000 for benchmarking.
// TODO(fbarchard): Add command line parsing to pass this as option.
@@ -22,6 +24,7 @@
unsigned int fastrand_seed = 0xfb;
+#ifdef LIBYUV_USE_GFLAGS
DEFINE_int32(libyuv_width, 0, "width of test image.");
DEFINE_int32(libyuv_height, 0, "height of test image.");
DEFINE_int32(libyuv_repeat, 0, "number of times to repeat test.");
@@ -29,6 +32,14 @@ DEFINE_int32(libyuv_flags, 0, "cpu flags for reference code. 1 = C, -1 = SIMD");
DEFINE_int32(libyuv_cpu_info,
0,
"cpu flags for benchmark code. 1 = C, -1 = SIMD");
+#else
+// Disable command line parameters if gflags disabled.
+static const int32 FLAGS_libyuv_width = 0;
+static const int32 FLAGS_libyuv_height = 0;
+static const int32 FLAGS_libyuv_repeat = 0;
+static const int32 FLAGS_libyuv_flags = 0;
+static const int32 FLAGS_libyuv_cpu_info = 0;
+#endif
// For quicker unittests, default is 128 x 72. But when benchmarking,
// default to 720p. Allow size to specify.
@@ -390,9 +401,11 @@ LibYUVBaseTest::LibYUVBaseTest()
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
+#ifdef LIBYUV_USE_GFLAGS
// AllowCommandLineParsing allows us to ignore flags passed on to us by
// Chromium build bots without having to explicitly disable them.
google::AllowCommandLineReparsing();
google::ParseCommandLineFlags(&argc, &argv, true);
+#endif
return RUN_ALL_TESTS();
}
diff --git a/files/util/convert.cc b/files/util/yuvconvert.cc
index acaf43ad..bc01d9ff 100644
--- a/files/util/convert.cc
+++ b/files/util/yuvconvert.cc
@@ -9,7 +9,7 @@
*/
// Convert an ARGB image to YUV.
-// Usage: convert src_argb.raw dst_yuv.raw
+// Usage: yuvconvert src_argb.raw dst_yuv.raw
#ifndef _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_WARNINGS