1Name: libyuv 2URL: https://chromium.googlesource.com/libyuv/libyuv/ 3Version: dfaf7534e0e536f7e5ef8ddd7326797bd09b8622 4License: BSD 5License File: LICENSE 6 7Description: 8libyuv is an open source project that includes YUV conversion and scaling 9functionality. 10 11The optimized scaler in libyuv is used in multiple resolution encoder example, 12which down-samples the original input video (f.g. 1280x720) a number of times 13in order to encode multiple resolution bit streams. 14 15Local Modifications: 16 17diff --git a/third_party/libyuv/source/cpu_id.cc b/third_party/libyuv/source/cpu_id.cc 18index fe89452b7..72a7fb82f 100644 19--- a/third_party/libyuv/source/cpu_id.cc 20+++ b/third_party/libyuv/source/cpu_id.cc 21@@ -108,7 +108,7 @@ void CpuId(int eax, int ecx, int* cpu_info) { 22 // } 23 // For VS2013 and earlier 32 bit, the _xgetbv(0) optimizer produces bad code. 24 // https://code.google.com/p/libyuv/issues/detail?id=529 25-#if defined(_M_IX86) && (_MSC_VER < 1900) 26+#if defined(_M_IX86) && defined(_MSC_VER) && (_MSC_VER < 1900) 27 #pragma optimize("g", off) 28 #endif 29 #if (defined(_M_IX86) || defined(_M_X64) || defined(__i386__) || \ 30@@ -129,7 +129,7 @@ int GetXCR0() { 31 #define GetXCR0() 0 32 #endif // defined(_M_IX86) || defined(_M_X64) .. 33 // Return optimization to previous setting. 34-#if defined(_M_IX86) && (_MSC_VER < 1900) 35+#if defined(_M_IX86) && defined(_MSC_VER) && (_MSC_VER < 1900) 36 #pragma optimize("g", on) 37 #endif 38diff --git a/third_party/libyuv/source/row_common.cc b/third_party/libyuv/source/row_common.cc 39index 79aed5c787..b0add63a6e 100644 40--- a/third_party/libyuv/source/row_common.cc 41+++ b/third_party/libyuv/source/row_common.cc 42@@ -37,7 +37,7 @@ extern "C" { 43 // llvm x86 is poor at ternary operator, so use branchless min/max. 44 45 #define USE_BRANCHLESS 1 46-#if USE_BRANCHLESS 47+#if defined(USE_BRANCHLESS) 48 static __inline int32_t clamp0(int32_t v) { 49 return -(v >= 0) & v; 50 } 51@@ -460,7 +460,7 @@ static __inline int RGB2xToV(uint16_t r, uint16_t g, uint16_t b) { 52 53 // ARGBToY_C and ARGBToUV_C 54 // Intel version mimic SSE/AVX which does 2 pavgb 55-#if LIBYUV_ARGBTOUV_PAVGB 56+#if defined(LIBYUV_ARGBTOUV_PAVGB) 57 58 #define MAKEROWY(NAME, R, G, B, BPP) \ 59 void NAME##ToYRow_C(const uint8_t* src_argb0, uint8_t* dst_y, int width) { \ 60@@ -602,7 +602,7 @@ static __inline int RGB2xToVJ(uint16_t r, uint16_t g, uint16_t b) { 61 62 // ARGBToYJ_C and ARGBToUVJ_C 63 // Intel version mimic SSE/AVX which does 2 pavgb 64-#if LIBYUV_ARGBTOUV_PAVGB 65+#if defined(LIBYUV_ARGBTOUV_PAVGB) 66 #define MAKEROWYJ(NAME, R, G, B, BPP) \ 67 void NAME##ToYJRow_C(const uint8_t* src_argb0, uint8_t* dst_y, int width) { \ 68 int x; \ 69@@ -766,7 +766,7 @@ void RGB565ToUVRow_C(const uint8_t* src_rgb565, 70 g3 = (g3 << 2) | (g3 >> 4); 71 r3 = (r3 << 3) | (r3 >> 2); 72 73-#if LIBYUV_ARGBTOUV_PAVGB 74+#if defined(LIBYUV_ARGBTOUV_PAVGB) 75 uint8_t ab = AVGB(AVGB(b0, b2), AVGB(b1, b3)); 76 uint8_t ag = AVGB(AVGB(g0, g2), AVGB(g1, g3)); 77 uint8_t ar = AVGB(AVGB(r0, r2), AVGB(r1, r3)); 78@@ -800,7 +800,7 @@ void RGB565ToUVRow_C(const uint8_t* src_rgb565, 79 g2 = (g2 << 2) | (g2 >> 4); 80 r2 = (r2 << 3) | (r2 >> 2); 81 82-#if LIBYUV_ARGBTOUV_PAVGB 83+#if defined(LIBYUV_ARGBTOUV_PAVGB) 84 uint8_t ab = AVGB(b0, b2); 85 uint8_t ag = AVGB(g0, g2); 86 uint8_t ar = AVGB(r0, r2); 87@@ -850,7 +850,7 @@ void ARGB1555ToUVRow_C(const uint8_t* src_argb1555, 88 g3 = (g3 << 3) | (g3 >> 2); 89 r3 = (r3 << 3) | (r3 >> 2); 90 91-#if LIBYUV_ARGBTOUV_PAVGB 92+#if defined(LIBYUV_ARGBTOUV_PAVGB) 93 uint8_t ab = AVGB(AVGB(b0, b2), AVGB(b1, b3)); 94 uint8_t ag = AVGB(AVGB(g0, g2), AVGB(g1, g3)); 95 uint8_t ar = AVGB(AVGB(r0, r2), AVGB(r1, r3)); 96@@ -884,7 +884,7 @@ void ARGB1555ToUVRow_C(const uint8_t* src_argb1555, 97 g2 = (g2 << 3) | (g2 >> 2); 98 r2 = (r2 << 3) | (r2 >> 2); 99 100-#if LIBYUV_ARGBTOUV_PAVGB 101+#if defined(LIBYUV_ARGBTOUV_PAVGB) 102 uint8_t ab = AVGB(b0, b2); 103 uint8_t ag = AVGB(g0, g2); 104 uint8_t ar = AVGB(r0, r2); 105@@ -934,7 +934,7 @@ void ARGB4444ToUVRow_C(const uint8_t* src_argb4444, 106 g3 = (g3 << 4) | g3; 107 r3 = (r3 << 4) | r3; 108 109-#if LIBYUV_ARGBTOUV_PAVGB 110+#if defined(LIBYUV_ARGBTOUV_PAVGB) 111 uint8_t ab = AVGB(AVGB(b0, b2), AVGB(b1, b3)); 112 uint8_t ag = AVGB(AVGB(g0, g2), AVGB(g1, g3)); 113 uint8_t ar = AVGB(AVGB(r0, r2), AVGB(r1, r3)); 114@@ -968,7 +968,7 @@ void ARGB4444ToUVRow_C(const uint8_t* src_argb4444, 115 g2 = (g2 << 4) | g2; 116 r2 = (r2 << 4) | r2; 117 118-#if LIBYUV_ARGBTOUV_PAVGB 119+#if defined(LIBYUV_ARGBTOUV_PAVGB) 120 uint8_t ab = AVGB(b0, b2); 121 uint8_t ag = AVGB(g0, g2); 122 uint8_t ar = AVGB(r0, r2); 123