Index: include/libyuv/row.h |
diff --git a/include/libyuv/row.h b/include/libyuv/row.h |
index 757fa0756a18d23c1f843159ff72679703a5c567..acfe90047bafd2dd3ab6906e473916908d8bc04f 100644 |
--- a/include/libyuv/row.h |
+++ b/include/libyuv/row.h |
@@ -187,6 +187,14 @@ extern "C" { |
#define HAS_I422TOABGRROW_SSSE3 |
#endif |
+ |
+// The following are available on 32 bit x86 Visual C and clangcl. |
+// TODO(fbarchard): Port to gcc. |
+#if !defined(LIBYUV_DISABLE_X86) && defined (_M_IX86) |
+#define HAS_I422ALPHATOARGBROW_SSSE3 |
+#define HAS_I422ALPHATOABGRROW_SSSE3 |
+#endif |
+ |
// The following are available for AVX2 Visual C and clangcl 32 bit: |
// TODO(fbarchard): Port to gcc. |
#if !defined(LIBYUV_DISABLE_X86) && defined(_M_IX86) && \ |
@@ -257,6 +265,7 @@ extern "C" { |
#endif |
// The following are disabled when SSSE3 is available: |
+// TODO(fbarchard): remove sse2. ssse3 is faster and well supported. |
#if !defined(LIBYUV_DISABLE_X86) && \ |
(defined(_M_IX86) || defined(__x86_64__) || defined(__i386__)) && \ |
!defined(LIBYUV_SSSE3_ONLY) |
@@ -1045,6 +1054,20 @@ void I422ToARGBRow_C(const uint8* src_y, |
uint8* dst_argb, |
struct YuvConstants* yuvconstants, |
int width); |
+void I422AlphaToARGBRow_C(const uint8* y_buf, |
+ const uint8* u_buf, |
+ const uint8* v_buf, |
+ const uint8* a_buf, |
+ uint8* dst_argb, |
+ struct YuvConstants* yuvconstants, |
+ int width); |
+void I422AlphaToABGRRow_C(const uint8* y_buf, |
+ const uint8* u_buf, |
+ const uint8* v_buf, |
+ const uint8* a_buf, |
+ uint8* dst_argb, |
+ struct YuvConstants* yuvconstants, |
+ int width); |
void I422ToABGRRow_C(const uint8* src_y, |
const uint8* src_u, |
const uint8* src_v, |
@@ -1213,6 +1236,20 @@ void I422ToARGBRow_SSSE3(const uint8* src_y, |
uint8* dst_argb, |
struct YuvConstants* yuvconstants, |
int width); |
+void I422AlphaToARGBRow_SSSE3(const uint8* y_buf, |
+ const uint8* u_buf, |
+ const uint8* v_buf, |
+ const uint8* a_buf, |
+ uint8* dst_argb, |
+ struct YuvConstants* yuvconstants, |
+ int width); |
+void I422AlphaToABGRRow_SSSE3(const uint8* y_buf, |
+ const uint8* u_buf, |
+ const uint8* v_buf, |
+ const uint8* a_buf, |
+ uint8* dst_argb, |
+ struct YuvConstants* yuvconstants, |
+ int width); |
void I422ToARGBRow_SSSE3(const uint8* src_y, |
const uint8* src_u, |
const uint8* src_v, |
@@ -1405,6 +1442,20 @@ void I422ToARGBRow_Any_SSSE3(const uint8* src_y, |
uint8* dst_argb, |
struct YuvConstants* yuvconstants, |
int width); |
+void I422AlphaToARGBRow_Any_SSSE3(const uint8* y_buf, |
+ const uint8* u_buf, |
+ const uint8* v_buf, |
+ const uint8* a_buf, |
+ uint8* dst_argb, |
+ struct YuvConstants* yuvconstants, |
+ int width); |
+void I422AlphaToABGRRow_Any_SSSE3(const uint8* y_buf, |
+ const uint8* u_buf, |
+ const uint8* v_buf, |
+ const uint8* a_buf, |
+ uint8* dst_abgr, |
+ struct YuvConstants* yuvconstants, |
+ int width); |
void I411ToARGBRow_Any_SSSE3(const uint8* src_y, |
const uint8* src_u, |
const uint8* src_v, |