diff --git a/README.chromium b/README.chromium index 65633a63f..ecf5f86d0 100644 --- a/README.chromium +++ b/README.chromium @@ -1,6 +1,6 @@ Name: libyuv URL: http://code.google.com/p/libyuv/ -Version: 453 +Version: 455 License: BSD License File: LICENSE diff --git a/include/libyuv/version.h b/include/libyuv/version.h index c927693cb..d5b961a44 100644 --- a/include/libyuv/version.h +++ b/include/libyuv/version.h @@ -11,6 +11,6 @@ #ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT #define INCLUDE_LIBYUV_VERSION_H_ -#define LIBYUV_VERSION 453 +#define LIBYUV_VERSION 455 #endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT diff --git a/source/row_common.cc b/source/row_common.cc index 0268b7217..632b774bc 100644 --- a/source/row_common.cc +++ b/source/row_common.cc @@ -1443,6 +1443,28 @@ void I422ToUYVYRow_C(const uint8* src_y, } } +#if defined(__x86_64__) || defined(__i386__) +void I422ToRGB565Row_SSSE3(const uint8* y_buf, + const uint8* u_buf, + const uint8* v_buf, + uint8* rgb_buf, + int width) { + SIMD_ALIGNED(uint8 row[kMaxStride]); + I422ToARGBRow_SSSE3(y_buf, u_buf, v_buf, row, width); + ARGBToRGB565Row_SSE2(row, rgb_buf, width); +} + +void I422ToRGB565Row_Unaligned_SSSE3(const uint8* y_buf, + const uint8* u_buf, + const uint8* v_buf, + uint8* rgb_buf, + int width) { + SIMD_ALIGNED(uint8 row[kMaxStride]); + I422ToARGBRow_SSSE3(y_buf, u_buf, v_buf, row, width); + ARGBToRGB565Row_SSE2(row, rgb_buf, width); +} +#endif // defined(__x86_64__) || defined(__i386__) + #ifdef __cplusplus } // extern "C" } // namespace libyuv diff --git a/source/row_posix.cc b/source/row_posix.cc index f8fbc8527..1078ed654 100644 --- a/source/row_posix.cc +++ b/source/row_posix.cc @@ -24,10 +24,8 @@ extern "C" { // TODO(fbarchard): Use static const when gcc 4.2 support is dropped. #ifdef __APPLE__ #define CONST -#define NOINLINE __attribute__ ((noinline)) #else #define CONST static const -#define NOINLINE #endif #ifdef HAS_ARGBTOYROW_SSSE3 @@ -575,7 +573,7 @@ void ARGBToRAWRow_SSSE3(const uint8* src, uint8* dst, int pix) { ); } -void ARGBToRGB565Row_SSE2(const uint8* src, uint8* dst, int pix) NOINLINE { +void ARGBToRGB565Row_SSE2(const uint8* src, uint8* dst, int pix) { asm volatile ( "pcmpeqb %%xmm3,%%xmm3 \n" "psrld $0x1b,%%xmm3 \n" @@ -1770,7 +1768,7 @@ void OMITFP I422ToARGBRow_SSSE3(const uint8* y_buf, const uint8* u_buf, const uint8* v_buf, uint8* argb_buf, - int width) NOINLINE { + int width) { asm volatile ( "sub %[u_buf],%[v_buf] \n" "pcmpeqb %%xmm5,%%xmm5 \n" @@ -4278,26 +4276,6 @@ void I422ToUYVYRow_SSE2(const uint8* src_y, ); } -void I422ToRGB565Row_SSSE3(const uint8* y_buf, - const uint8* u_buf, - const uint8* v_buf, - uint8* rgb_buf, - int width) { - SIMD_ALIGNED(uint8 row[kMaxStride]); - I422ToARGBRow_SSSE3(y_buf, u_buf, v_buf, row, width); - ARGBToRGB565Row_SSE2(row, rgb_buf, width); -} - -void I422ToRGB565Row_Unaligned_SSSE3(const uint8* y_buf, - const uint8* u_buf, - const uint8* v_buf, - uint8* rgb_buf, - int width) { - SIMD_ALIGNED(uint8 row[kMaxStride]); - I422ToARGBRow_SSSE3(y_buf, u_buf, v_buf, row, width); - ARGBToRGB565Row_SSE2(row, rgb_buf, width); -} - #endif // defined(__x86_64__) || defined(__i386__) #ifdef __cplusplus