Commit 5f3d4270 authored by Frank Barchard's avatar Frank Barchard

yuy2 to rgb gcc versions

read in read function for yuv conversion

R=harryjin@google.com
BUG=libyuv:488

Review URL: https://codereview.chromium.org/1355393002 .
parent 03cd8584
...@@ -127,8 +127,6 @@ extern "C" { ...@@ -127,8 +127,6 @@ extern "C" {
#define HAS_MIRRORUVROW_SSSE3 #define HAS_MIRRORUVROW_SSSE3
#define HAS_NV12TOARGBROW_SSSE3 #define HAS_NV12TOARGBROW_SSSE3
#define HAS_NV12TORGB565ROW_SSSE3 #define HAS_NV12TORGB565ROW_SSSE3
#define HAS_NV21TOARGBROW_SSSE3
#define HAS_NV21TORGB565ROW_SSSE3
#define HAS_RAWTOARGBROW_SSSE3 #define HAS_RAWTOARGBROW_SSSE3
#define HAS_RAWTOYROW_SSSE3 #define HAS_RAWTOYROW_SSSE3
#define HAS_RGB24TOARGBROW_SSSE3 #define HAS_RGB24TOARGBROW_SSSE3
...@@ -209,8 +207,6 @@ extern "C" { ...@@ -209,8 +207,6 @@ extern "C" {
#define HAS_J400TOARGBROW_AVX2 #define HAS_J400TOARGBROW_AVX2
#define HAS_NV12TOARGBROW_AVX2 #define HAS_NV12TOARGBROW_AVX2
#define HAS_NV12TORGB565ROW_AVX2 #define HAS_NV12TORGB565ROW_AVX2
#define HAS_NV21TOARGBROW_AVX2
#define HAS_NV21TORGB565ROW_AVX2
#define HAS_RGB565TOARGBROW_AVX2 #define HAS_RGB565TOARGBROW_AVX2
#endif #endif
...@@ -321,8 +317,6 @@ extern "C" { ...@@ -321,8 +317,6 @@ extern "C" {
#define HAS_MIRRORUVROW_NEON #define HAS_MIRRORUVROW_NEON
#define HAS_NV12TOARGBROW_NEON #define HAS_NV12TOARGBROW_NEON
#define HAS_NV12TORGB565ROW_NEON #define HAS_NV12TORGB565ROW_NEON
#define HAS_NV21TOARGBROW_NEON
#define HAS_NV21TORGB565ROW_NEON
#define HAS_RAWTOARGBROW_NEON #define HAS_RAWTOARGBROW_NEON
#define HAS_RAWTOUVROW_NEON #define HAS_RAWTOUVROW_NEON
#define HAS_RAWTOYROW_NEON #define HAS_RAWTOYROW_NEON
...@@ -1068,11 +1062,6 @@ void NV12ToARGBRow_C(const uint8* src_y, ...@@ -1068,11 +1062,6 @@ void NV12ToARGBRow_C(const uint8* src_y,
uint8* dst_argb, uint8* dst_argb,
struct YuvConstants* yuvconstants, struct YuvConstants* yuvconstants,
int width); int width);
void NV21ToRGB565Row_C(const uint8* src_y,
const uint8* src_vu,
uint8* dst_argb,
struct YuvConstants* yuvconstants,
int width);
void NV12ToRGB565Row_C(const uint8* src_y, void NV12ToRGB565Row_C(const uint8* src_y,
const uint8* src_uv, const uint8* src_uv,
uint8* dst_argb, uint8* dst_argb,
...@@ -1433,21 +1422,11 @@ void NV12ToARGBRow_Any_SSSE3(const uint8* src_y, ...@@ -1433,21 +1422,11 @@ void NV12ToARGBRow_Any_SSSE3(const uint8* src_y,
uint8* dst_argb, uint8* dst_argb,
struct YuvConstants* yuvconstants, struct YuvConstants* yuvconstants,
int width); int width);
void NV21ToARGBRow_Any_SSSE3(const uint8* src_y,
const uint8* src_vu,
uint8* dst_argb,
struct YuvConstants* yuvconstants,
int width);
void NV12ToARGBRow_Any_AVX2(const uint8* src_y, void NV12ToARGBRow_Any_AVX2(const uint8* src_y,
const uint8* src_uv, const uint8* src_uv,
uint8* dst_argb, uint8* dst_argb,
struct YuvConstants* yuvconstants, struct YuvConstants* yuvconstants,
int width); int width);
void NV21ToARGBRow_Any_AVX2(const uint8* src_y,
const uint8* src_vu,
uint8* dst_argb,
struct YuvConstants* yuvconstants,
int width);
void NV12ToRGB565Row_Any_SSSE3(const uint8* src_y, void NV12ToRGB565Row_Any_SSSE3(const uint8* src_y,
const uint8* src_uv, const uint8* src_uv,
uint8* dst_argb, uint8* dst_argb,
......
...@@ -2476,48 +2476,6 @@ void NV12ToRGB565Row_SSSE3(const uint8* src_y, ...@@ -2476,48 +2476,6 @@ void NV12ToRGB565Row_SSSE3(const uint8* src_y,
} }
#endif #endif
#if defined(HAS_YUY2TOARGBROW_SSSE3)
void YUY2ToARGBRow_SSSE3(const uint8* src_yuy2,
uint8* dst_argb,
struct YuvConstants* yuvconstants,
int width) {
// Row buffers for intermediate YUV pixels.
SIMD_ALIGNED(uint8 row_y[MAXTWIDTH]);
SIMD_ALIGNED(uint8 row_u[MAXTWIDTH / 2]);
SIMD_ALIGNED(uint8 row_v[MAXTWIDTH / 2]);
while (width > 0) {
int twidth = width > MAXTWIDTH ? MAXTWIDTH : width;
YUY2ToUV422Row_SSE2(src_yuy2, row_u, row_v, twidth);
YUY2ToYRow_SSE2(src_yuy2, row_y, twidth);
I422ToARGBRow_SSSE3(row_y, row_u, row_v, dst_argb, yuvconstants, twidth);
src_yuy2 += twidth * 2;
dst_argb += twidth * 4;
width -= twidth;
}
}
#endif
#if defined(HAS_UYVYTOARGBROW_SSSE3)
void UYVYToARGBRow_SSSE3(const uint8* src_uyvy,
uint8* dst_argb,
struct YuvConstants* yuvconstants,
int width) {
// Row buffers for intermediate YUV pixels.
SIMD_ALIGNED(uint8 row_y[MAXTWIDTH]);
SIMD_ALIGNED(uint8 row_u[MAXTWIDTH / 2]);
SIMD_ALIGNED(uint8 row_v[MAXTWIDTH / 2]);
while (width > 0) {
int twidth = width > MAXTWIDTH ? MAXTWIDTH : width;
UYVYToUV422Row_SSE2(src_uyvy, row_u, row_v, twidth);
UYVYToYRow_SSE2(src_uyvy, row_y, twidth);
I422ToARGBRow_SSSE3(row_y, row_u, row_v, dst_argb, yuvconstants, twidth);
src_uyvy += twidth * 2;
dst_argb += twidth * 4;
width -= twidth;
}
}
#endif // !defined(LIBYUV_DISABLE_X86)
#if defined(HAS_I422TORGB565ROW_AVX2) #if defined(HAS_I422TORGB565ROW_AVX2)
void I422ToRGB565Row_AVX2(const uint8* src_y, void I422ToRGB565Row_AVX2(const uint8* src_y,
const uint8* src_u, const uint8* src_u,
......
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment