Index: source/row_common.cc |
diff --git a/source/row_common.cc b/source/row_common.cc |
index 3c025f1a43f80dd3a49b7f3a498326689f0db634..b810849d9b9a244233dd845892ae3f06de195c46 100644 |
--- a/source/row_common.cc |
+++ b/source/row_common.cc |
@@ -1353,6 +1353,88 @@ void I422ToARGBRow_C(const uint8* src_y, |
} |
} |
+void I422AlphaToARGBRow_C(const uint8* src_y, |
+ const uint8* src_u, |
+ const uint8* src_v, |
+ const uint8* src_a, |
+ uint8* rgb_buf, |
+ struct YuvConstants* yuvconstants, |
+ int width) { |
+ int x; |
+ for (x = 0; x < width - 1; x += 2) { |
+ YuvPixel(src_y[0], src_u[0], src_v[0], |
+ rgb_buf + 0, rgb_buf + 1, rgb_buf + 2, yuvconstants); |
+ rgb_buf[3] = src_a[0]; |
+ YuvPixel(src_y[1], src_u[0], src_v[0], |
+ rgb_buf + 4, rgb_buf + 5, rgb_buf + 6, yuvconstants); |
+ rgb_buf[7] = src_a[1]; |
+ src_y += 2; |
+ src_u += 1; |
+ src_v += 1; |
+ src_a += 2; |
+ rgb_buf += 8; // Advance 2 pixels. |
+ } |
+ if (width & 1) { |
+ YuvPixel(src_y[0], src_u[0], src_v[0], |
+ rgb_buf + 0, rgb_buf + 1, rgb_buf + 2, yuvconstants); |
+ rgb_buf[3] = src_a[0]; |
+ } |
+} |
+ |
+void I422ToABGRRow_C(const uint8* src_y, |
+ const uint8* src_u, |
+ const uint8* src_v, |
+ uint8* rgb_buf, |
+ struct YuvConstants* yuvconstants, |
+ int width) { |
+ int x; |
+ for (x = 0; x < width - 1; x += 2) { |
+ YuvPixel(src_y[0], src_u[0], src_v[0], |
+ rgb_buf + 2, rgb_buf + 1, rgb_buf + 0, yuvconstants); |
+ rgb_buf[3] = 255; |
+ YuvPixel(src_y[1], src_u[0], src_v[0], |
+ rgb_buf + 6, rgb_buf + 5, rgb_buf + 4, yuvconstants); |
+ rgb_buf[7] = 255; |
+ src_y += 2; |
+ src_u += 1; |
+ src_v += 1; |
+ rgb_buf += 8; // Advance 2 pixels. |
+ } |
+ if (width & 1) { |
+ YuvPixel(src_y[0], src_u[0], src_v[0], |
+ rgb_buf + 2, rgb_buf + 1, rgb_buf + 0, yuvconstants); |
+ rgb_buf[3] = 255; |
+ } |
+} |
+ |
+void I422AlphaToABGRRow_C(const uint8* src_y, |
+ const uint8* src_u, |
+ const uint8* src_v, |
+ const uint8* src_a, |
+ uint8* rgb_buf, |
+ struct YuvConstants* yuvconstants, |
+ int width) { |
+ int x; |
+ for (x = 0; x < width - 1; x += 2) { |
+ YuvPixel(src_y[0], src_u[0], src_v[0], |
+ rgb_buf + 2, rgb_buf + 1, rgb_buf + 0, yuvconstants); |
+ rgb_buf[3] = src_a[0]; |
+ YuvPixel(src_y[1], src_u[0], src_v[0], |
+ rgb_buf + 6, rgb_buf + 5, rgb_buf + 4, yuvconstants); |
+ rgb_buf[7] = src_a[1]; |
+ src_y += 2; |
+ src_u += 1; |
+ src_v += 1; |
+ src_a += 2; |
+ rgb_buf += 8; // Advance 2 pixels. |
+ } |
+ if (width & 1) { |
+ YuvPixel(src_y[0], src_u[0], src_v[0], |
+ rgb_buf + 2, rgb_buf + 1, rgb_buf + 0, yuvconstants); |
+ rgb_buf[3] = src_a[0]; |
+ } |
+} |
+ |
void I422ToRGB24Row_C(const uint8* src_y, |
const uint8* src_u, |
const uint8* src_v, |
@@ -1687,32 +1769,6 @@ void I422ToBGRARow_C(const uint8* src_y, |
} |
} |
-void I422ToABGRRow_C(const uint8* src_y, |
- const uint8* src_u, |
- const uint8* src_v, |
- uint8* rgb_buf, |
- struct YuvConstants* yuvconstants, |
- int width) { |
- int x; |
- for (x = 0; x < width - 1; x += 2) { |
- YuvPixel(src_y[0], src_u[0], src_v[0], |
- rgb_buf + 2, rgb_buf + 1, rgb_buf + 0, yuvconstants); |
- rgb_buf[3] = 255; |
- YuvPixel(src_y[1], src_u[0], src_v[0], |
- rgb_buf + 6, rgb_buf + 5, rgb_buf + 4, yuvconstants); |
- rgb_buf[7] = 255; |
- src_y += 2; |
- src_u += 1; |
- src_v += 1; |
- rgb_buf += 8; // Advance 2 pixels. |
- } |
- if (width & 1) { |
- YuvPixel(src_y[0], src_u[0], src_v[0], |
- rgb_buf + 2, rgb_buf + 1, rgb_buf + 0, yuvconstants); |
- rgb_buf[3] = 255; |
- } |
-} |
- |
void I422ToRGBARow_C(const uint8* src_y, |
const uint8* src_u, |
const uint8* src_v, |
@@ -2412,29 +2468,6 @@ void I422ToRGB565Row_SSSE3(const uint8* src_y, |
} |
#endif |
-void I422AlphaToARGBRow_C(const uint8* src_y, |
- const uint8* src_u, |
- const uint8* src_v, |
- const uint8* src_a, |
- uint8* dst_argb, |
- struct YuvConstants* yuvconstants, |
- int width) { |
- |
- I422ToARGBRow_C(src_y, src_u, src_v, dst_argb, &kYuvConstants, width); |
- ARGBCopyYToAlphaRow_C(src_a, dst_argb, width); |
-} |
- |
-void I422AlphaToABGRRow_C(const uint8* src_y, |
- const uint8* src_u, |
- const uint8* src_v, |
- const uint8* src_a, |
- uint8* dst_abgr, |
- struct YuvConstants* yuvconstants, |
- int width) { |
- I422ToABGRRow_C(src_y, src_u, src_v, dst_abgr, &kYuvConstants, width); |
- ARGBCopyYToAlphaRow_C(src_a, dst_abgr, width); |
-} |
- |
#if defined(HAS_I422TOARGB1555ROW_SSSE3) |
void I422ToARGB1555Row_SSSE3(const uint8* src_y, |
const uint8* src_u, |