add avx2 wrappers for functions that can call I422ToARGBRow_AVX2

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

Review URL: https://codereview.chromium.org/1687713002 .
This commit is contained in:
Frank Barchard 2016-02-09 17:14:29 -08:00
parent df8b930b78
commit c39509c8e5
4 changed files with 17 additions and 5 deletions

View File

@ -1,6 +1,6 @@
Name: libyuv Name: libyuv
URL: http://code.google.com/p/libyuv/ URL: http://code.google.com/p/libyuv/
Version: 1574 Version: 1575
License: BSD License: BSD
License File: LICENSE License File: LICENSE

View File

@ -225,6 +225,9 @@ extern "C" {
#define HAS_YUY2TOUV422ROW_AVX2 #define HAS_YUY2TOUV422ROW_AVX2
#define HAS_YUY2TOUVROW_AVX2 #define HAS_YUY2TOUVROW_AVX2
#define HAS_YUY2TOYROW_AVX2 #define HAS_YUY2TOYROW_AVX2
#define HAS_I422TOARGB1555ROW_AVX2
#define HAS_I422TOARGB4444ROW_AVX2
#define HAS_I422TORGB565ROW_AVX2
// Effects: // Effects:
#define HAS_ARGBADDROW_AVX2 #define HAS_ARGBADDROW_AVX2
@ -245,9 +248,6 @@ extern "C" {
#define HAS_ARGBTOARGB4444ROW_AVX2 #define HAS_ARGBTOARGB4444ROW_AVX2
#define HAS_ARGBTORGB565ROW_AVX2 #define HAS_ARGBTORGB565ROW_AVX2
#define HAS_I411TOARGBROW_AVX2 #define HAS_I411TOARGBROW_AVX2
#define HAS_I422TOARGB1555ROW_AVX2
#define HAS_I422TOARGB4444ROW_AVX2
#define HAS_I422TORGB565ROW_AVX2
#define HAS_J400TOARGBROW_AVX2 #define HAS_J400TOARGBROW_AVX2
#define HAS_NV12TORGB565ROW_AVX2 #define HAS_NV12TORGB565ROW_AVX2
#define HAS_RGB565TOARGBROW_AVX2 #define HAS_RGB565TOARGBROW_AVX2

View File

@ -11,6 +11,6 @@
#ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT #ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT
#define INCLUDE_LIBYUV_VERSION_H_ #define INCLUDE_LIBYUV_VERSION_H_
#define LIBYUV_VERSION 1574 #define LIBYUV_VERSION 1575
#endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT #endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT

View File

@ -2495,7 +2495,11 @@ void I422ToRGB565Row_AVX2(const uint8* src_y,
while (width > 0) { while (width > 0) {
int twidth = width > MAXTWIDTH ? MAXTWIDTH : width; int twidth = width > MAXTWIDTH ? MAXTWIDTH : width;
I422ToARGBRow_AVX2(src_y, src_u, src_v, row, yuvconstants, twidth); I422ToARGBRow_AVX2(src_y, src_u, src_v, row, yuvconstants, twidth);
#if defined(HAS_ARGBTORGB565ROW_AVX2)
ARGBToRGB565Row_AVX2(row, dst_rgb565, twidth); ARGBToRGB565Row_AVX2(row, dst_rgb565, twidth);
#else
ARGBToRGB565Row_SSE2(row, dst_rgb565, twidth);
#endif
src_y += twidth; src_y += twidth;
src_u += twidth / 2; src_u += twidth / 2;
src_v += twidth / 2; src_v += twidth / 2;
@ -2517,7 +2521,11 @@ void I422ToARGB1555Row_AVX2(const uint8* src_y,
while (width > 0) { while (width > 0) {
int twidth = width > MAXTWIDTH ? MAXTWIDTH : width; int twidth = width > MAXTWIDTH ? MAXTWIDTH : width;
I422ToARGBRow_AVX2(src_y, src_u, src_v, row, yuvconstants, twidth); I422ToARGBRow_AVX2(src_y, src_u, src_v, row, yuvconstants, twidth);
#if defined(HAS_ARGBTOARGB1555ROW_AVX2)
ARGBToARGB1555Row_AVX2(row, dst_argb1555, twidth); ARGBToARGB1555Row_AVX2(row, dst_argb1555, twidth);
#else
ARGBToARGB1555Row_SSE2(row, dst_argb1555, twidth);
#endif
src_y += twidth; src_y += twidth;
src_u += twidth / 2; src_u += twidth / 2;
src_v += twidth / 2; src_v += twidth / 2;
@ -2539,7 +2547,11 @@ void I422ToARGB4444Row_AVX2(const uint8* src_y,
while (width > 0) { while (width > 0) {
int twidth = width > MAXTWIDTH ? MAXTWIDTH : width; int twidth = width > MAXTWIDTH ? MAXTWIDTH : width;
I422ToARGBRow_AVX2(src_y, src_u, src_v, row, yuvconstants, twidth); I422ToARGBRow_AVX2(src_y, src_u, src_v, row, yuvconstants, twidth);
#if defined(HAS_ARGBTOARGB4444ROW_AVX2)
ARGBToARGB4444Row_AVX2(row, dst_argb4444, twidth); ARGBToARGB4444Row_AVX2(row, dst_argb4444, twidth);
#else
ARGBToARGB4444Row_SSE2(row, dst_argb4444, twidth);
#endif
src_y += twidth; src_y += twidth;
src_u += twidth / 2; src_u += twidth / 2;
src_v += twidth / 2; src_v += twidth / 2;