Index: include/libyuv/row.h |
diff --git a/include/libyuv/row.h b/include/libyuv/row.h |
index 8695d894dcc48615138909fe3c2062a441798963..5352209b340c29f15e96f70c00674c0a53399483 100644 |
--- a/include/libyuv/row.h |
+++ b/include/libyuv/row.h |
@@ -91,6 +91,7 @@ extern "C" { |
#define HAS_ARGBTOARGB4444ROW_SSE2 |
#define HAS_ARGBTORAWROW_SSSE3 |
#define HAS_ARGBTORGB24ROW_SSSE3 |
+#define HAS_ARGBTORGB565DITHERROW_SSE2 |
#define HAS_ARGBTORGB565ROW_SSE2 |
#define HAS_ARGBTOUV422ROW_SSSE3 |
#define HAS_ARGBTOUV444ROW_SSSE3 |
@@ -102,8 +103,12 @@ extern "C" { |
#define HAS_BGRATOYROW_SSSE3 |
#define HAS_COPYROW_ERMS |
#define HAS_COPYROW_SSE2 |
+#define HAS_H422TOABGRROW_SSSE3 |
+#define HAS_H422TOARGBROW_SSSE3 |
#define HAS_I400TOARGBROW_SSE2 |
#define HAS_I411TOARGBROW_SSSE3 |
+#define HAS_I422ALPHATOABGRROW_SSSE3 |
+#define HAS_I422ALPHATOARGBROW_SSSE3 |
#define HAS_I422TOABGRROW_SSSE3 |
#define HAS_I422TOARGB1555ROW_SSSE3 |
#define HAS_I422TOARGB4444ROW_SSSE3 |
@@ -115,11 +120,11 @@ extern "C" { |
#define HAS_I422TORGBAROW_SSSE3 |
#define HAS_I422TOUYVYROW_SSE2 |
#define HAS_I422TOYUY2ROW_SSE2 |
+#define HAS_I444TOABGRROW_SSSE3 |
+#define HAS_I444TOARGBROW_SSSE3 |
#define HAS_J400TOARGBROW_SSE2 |
-#define HAS_J422TOARGBROW_SSSE3 |
#define HAS_J422TOABGRROW_SSSE3 |
-#define HAS_H422TOARGBROW_SSSE3 |
-#define HAS_H422TOABGRROW_SSSE3 |
+#define HAS_J422TOARGBROW_SSSE3 |
#define HAS_MERGEUVROW_SSE2 |
#define HAS_MIRRORROW_SSSE3 |
#define HAS_MIRRORROW_UV_SSSE3 |
@@ -145,10 +150,6 @@ extern "C" { |
#define HAS_YUY2TOUV422ROW_SSE2 |
#define HAS_YUY2TOUVROW_SSE2 |
#define HAS_YUY2TOYROW_SSE2 |
-#define HAS_I444TOARGBROW_SSSE3 |
-#define HAS_I444TOABGRROW_SSSE3 |
-#define HAS_I422ALPHATOARGBROW_SSSE3 |
-#define HAS_I422ALPHATOABGRROW_SSSE3 |
// Effects: |
#define HAS_ARGBADDROW_SSE2 |
@@ -184,10 +185,10 @@ extern "C" { |
// The following are also available on x64 Visual C. |
#if !defined(LIBYUV_DISABLE_X86) && defined (_M_X64) && \ |
(!defined(__clang__) || defined(__SSSE3__)) |
-#define HAS_I422TOARGBROW_SSSE3 |
-#define HAS_I422TOABGRROW_SSSE3 |
-#define HAS_I422ALPHATOARGBROW_SSSE3 |
#define HAS_I422ALPHATOABGRROW_SSSE3 |
+#define HAS_I422ALPHATOARGBROW_SSSE3 |
+#define HAS_I422TOABGRROW_SSSE3 |
+#define HAS_I422TOARGBROW_SSSE3 |
#endif |
// The following are available for AVX2 Visual C and clangcl 32 bit: |
@@ -199,17 +200,16 @@ extern "C" { |
#define HAS_ARGBTOARGB1555ROW_AVX2 |
#define HAS_ARGBTOARGB4444ROW_AVX2 |
#define HAS_ARGBTORGB565DITHERROW_AVX2 |
-#define HAS_ARGBTORGB565DITHERROW_SSE2 |
#define HAS_ARGBTORGB565ROW_AVX2 |
#define HAS_I411TOARGBROW_AVX2 |
#define HAS_I422TOARGB1555ROW_AVX2 |
#define HAS_I422TOARGB4444ROW_AVX2 |
#define HAS_I422TORGB565ROW_AVX2 |
-#define HAS_I444TOARGBROW_AVX2 |
#define HAS_I444TOABGRROW_AVX2 |
+#define HAS_I444TOARGBROW_AVX2 |
#define HAS_J400TOARGBROW_AVX2 |
-#define HAS_RGB565TOARGBROW_AVX2 |
#define HAS_NV12TORGB565ROW_AVX2 |
+#define HAS_RGB565TOARGBROW_AVX2 |
#endif |
// The following are available on all x86 platforms, but |
@@ -226,7 +226,11 @@ extern "C" { |
#define HAS_ARGBTOYJROW_AVX2 |
#define HAS_ARGBTOYROW_AVX2 |
#define HAS_COPYROW_AVX |
+#define HAS_H422TOABGRROW_AVX2 |
+#define HAS_H422TOARGBROW_AVX2 |
#define HAS_I400TOARGBROW_AVX2 |
+#define HAS_I422ALPHATOABGRROW_AVX2 |
+#define HAS_I422ALPHATOARGBROW_AVX2 |
#define HAS_I422TOABGRROW_AVX2 |
#define HAS_I422TOARGBROW_AVX2 |
#define HAS_I422TOBGRAROW_AVX2 |
@@ -234,12 +238,12 @@ extern "C" { |
#define HAS_I422TORGB24ROW_AVX2 |
#define HAS_I422TORGBAROW_AVX2 |
#define HAS_INTERPOLATEROW_AVX2 |
-#define HAS_J422TOARGBROW_AVX2 |
#define HAS_J422TOABGRROW_AVX2 |
-#define HAS_H422TOARGBROW_AVX2 |
-#define HAS_H422TOABGRROW_AVX2 |
+#define HAS_J422TOARGBROW_AVX2 |
#define HAS_MERGEUVROW_AVX2 |
#define HAS_MIRRORROW_AVX2 |
+#define HAS_NV12TOARGBROW_AVX2 |
+#define HAS_NV21TOARGBROW_AVX2 |
#define HAS_SPLITUVROW_AVX2 |
#define HAS_UYVYTOARGBROW_AVX2 |
#define HAS_UYVYTOUV422ROW_AVX2 |
@@ -249,10 +253,6 @@ extern "C" { |
#define HAS_YUY2TOUV422ROW_AVX2 |
#define HAS_YUY2TOUVROW_AVX2 |
#define HAS_YUY2TOYROW_AVX2 |
-#define HAS_NV12TOARGBROW_AVX2 |
-#define HAS_NV21TOARGBROW_AVX2 |
-#define HAS_I422ALPHATOARGBROW_AVX2 |
-#define HAS_I422ALPHATOABGRROW_AVX2 |
// Effects: |
#define HAS_ARGBADDROW_AVX2 |
@@ -273,10 +273,12 @@ extern "C" { |
#define HAS_ARGB4444TOARGBROW_NEON |
#define HAS_ARGB4444TOUVROW_NEON |
#define HAS_ARGB4444TOYROW_NEON |
+#define HAS_ARGBSETROW_NEON |
#define HAS_ARGBTOARGB1555ROW_NEON |
#define HAS_ARGBTOARGB4444ROW_NEON |
#define HAS_ARGBTORAWROW_NEON |
#define HAS_ARGBTORGB24ROW_NEON |
+#define HAS_ARGBTORGB565DITHERROW_NEON |
#define HAS_ARGBTORGB565ROW_NEON |
#define HAS_ARGBTOUV411ROW_NEON |
#define HAS_ARGBTOUV422ROW_NEON |
@@ -288,19 +290,12 @@ extern "C" { |
#define HAS_BGRATOUVROW_NEON |
#define HAS_BGRATOYROW_NEON |
#define HAS_COPYROW_NEON |
-#define HAS_J400TOARGBROW_NEON |
+#define HAS_I400TOARGBROW_NEON |
#define HAS_I411TOARGBROW_NEON |
-#define HAS_I422TOARGBROW_NEON |
#define HAS_I422TOABGRROW_NEON |
#define HAS_I422TOARGB1555ROW_NEON |
#define HAS_I422TOARGB4444ROW_NEON |
-// TODO(fbarchard): Implement aarch64 neon version |
-#ifndef __aarch64__ |
-#define HAS_J422TOARGBROW_NEON |
-#define HAS_J422TOABGRROW_NEON |
-#define HAS_H422TOARGBROW_NEON |
-#define HAS_H422TOABGRROW_NEON |
-#endif |
+#define HAS_I422TOARGBROW_NEON |
#define HAS_I422TOBGRAROW_NEON |
#define HAS_I422TORAWROW_NEON |
#define HAS_I422TORGB24ROW_NEON |
@@ -309,6 +304,7 @@ extern "C" { |
#define HAS_I422TOUYVYROW_NEON |
#define HAS_I422TOYUY2ROW_NEON |
#define HAS_I444TOARGBROW_NEON |
+#define HAS_J400TOARGBROW_NEON |
#define HAS_MERGEUVROW_NEON |
#define HAS_MIRRORROW_NEON |
#define HAS_MIRRORUVROW_NEON |
@@ -327,29 +323,28 @@ extern "C" { |
#define HAS_RGBATOUVROW_NEON |
#define HAS_RGBATOYROW_NEON |
#define HAS_SETROW_NEON |
-#define HAS_ARGBSETROW_NEON |
#define HAS_SPLITUVROW_NEON |
#define HAS_UYVYTOARGBROW_NEON |
#define HAS_UYVYTOUV422ROW_NEON |
#define HAS_UYVYTOUVROW_NEON |
#define HAS_UYVYTOYROW_NEON |
-#define HAS_I400TOARGBROW_NEON |
#define HAS_YUY2TOARGBROW_NEON |
#define HAS_YUY2TOUV422ROW_NEON |
#define HAS_YUY2TOUVROW_NEON |
#define HAS_YUY2TOYROW_NEON |
-#define HAS_ARGBTORGB565DITHERROW_NEON |
// Effects: |
#define HAS_ARGBADDROW_NEON |
#define HAS_ARGBATTENUATEROW_NEON |
#define HAS_ARGBBLENDROW_NEON |
+#define HAS_ARGBCOLORMATRIXROW_NEON |
#define HAS_ARGBGRAYROW_NEON |
#define HAS_ARGBMIRRORROW_NEON |
#define HAS_ARGBMULTIPLYROW_NEON |
#define HAS_ARGBQUANTIZEROW_NEON |
#define HAS_ARGBSEPIAROW_NEON |
#define HAS_ARGBSHADEROW_NEON |
+#define HAS_ARGBSHUFFLEROW_NEON |
#define HAS_ARGBSUBTRACTROW_NEON |
#define HAS_INTERPOLATEROW_NEON |
#define HAS_SOBELROW_NEON |
@@ -357,8 +352,6 @@ extern "C" { |
#define HAS_SOBELXROW_NEON |
#define HAS_SOBELXYROW_NEON |
#define HAS_SOBELYROW_NEON |
-#define HAS_ARGBCOLORMATRIXROW_NEON |
-#define HAS_ARGBSHUFFLEROW_NEON |
#endif |
// The following are available on Mips platforms: |
@@ -457,9 +450,9 @@ struct YuvConstants { |
#define KYTORGB 192 |
#endif |
-extern struct YuvConstants kYuvConstants; |
-extern struct YuvConstants kYuvJConstants; |
-extern struct YuvConstants kYuvHConstants; |
+extern struct YuvConstants kYuvConstants; // BT.601 |
+extern struct YuvConstants kYuvJConstants; // JPeg color space |
+extern struct YuvConstants kYuvHConstants; // BT.709 |
#if defined(__APPLE__) || defined(__x86_64__) || defined(__llvm__) |
#define OMITFP |