| OLD | NEW | 
|     1 /* |     1 /* | 
|     2  *  Copyright 2011 The LibYuv Project Authors. All rights reserved. |     2  *  Copyright 2011 The LibYuv Project Authors. All rights reserved. | 
|     3  * |     3  * | 
|     4  *  Use of this source code is governed by a BSD-style license |     4  *  Use of this source code is governed by a BSD-style license | 
|     5  *  that can be found in the LICENSE file in the root of the source |     5  *  that can be found in the LICENSE file in the root of the source | 
|     6  *  tree. An additional intellectual property rights grant can be found |     6  *  tree. An additional intellectual property rights grant can be found | 
|     7  *  in the file PATENTS. All contributing project authors may |     7  *  in the file PATENTS. All contributing project authors may | 
|     8  *  be found in the AUTHORS file in the root of the source tree. |     8  *  be found in the AUTHORS file in the root of the source tree. | 
|     9  */ |     9  */ | 
|    10  |    10  | 
|    11 #ifndef INCLUDE_LIBYUV_ROW_H_  // NOLINT |    11 #ifndef INCLUDE_LIBYUV_ROW_H_  // NOLINT | 
|    12 #define INCLUDE_LIBYUV_ROW_H_ |    12 #define INCLUDE_LIBYUV_ROW_H_ | 
|    13  |    13  | 
|    14 #include <stdlib.h>  // For malloc. |    14 #include <stdlib.h>  // For malloc. | 
|    15  |    15  | 
|    16 #include "libyuv/basic_types.h" |    16 #include "libyuv/basic_types.h" | 
|    17  |    17  | 
|    18 #if defined(__native_client__) |  | 
|    19 #include "ppapi/c/pp_macros.h"  // For PPAPI_RELEASE |  | 
|    20 #endif |  | 
|    21  |  | 
|    22 #ifdef __cplusplus |    18 #ifdef __cplusplus | 
|    23 namespace libyuv { |    19 namespace libyuv { | 
|    24 extern "C" { |    20 extern "C" { | 
|    25 #endif |    21 #endif | 
|    26  |    22  | 
|    27 #define IS_ALIGNED(p, a) (!((uintptr_t)(p) & ((a) - 1))) |    23 #define IS_ALIGNED(p, a) (!((uintptr_t)(p) & ((a) - 1))) | 
|    28  |    24  | 
|    29 #ifdef __cplusplus |    25 #ifdef __cplusplus | 
|    30 #define align_buffer_64(var, size)                                             \ |    26 #define align_buffer_64(var, size)                                             \ | 
|    31   uint8* var##_mem = reinterpret_cast<uint8*>(malloc((size) + 63));            \ |    27   uint8* var##_mem = reinterpret_cast<uint8*>(malloc((size) + 63));            \ | 
|    32   uint8* var = reinterpret_cast<uint8*>                                        \ |    28   uint8* var = reinterpret_cast<uint8*>                                        \ | 
|    33       ((reinterpret_cast<intptr_t>(var##_mem) + 63) & ~63) |    29       ((reinterpret_cast<intptr_t>(var##_mem) + 63) & ~63) | 
|    34 #else |    30 #else | 
|    35 #define align_buffer_64(var, size)                                             \ |    31 #define align_buffer_64(var, size)                                             \ | 
|    36   uint8* var##_mem = (uint8*)(malloc((size) + 63));               /* NOLINT */ \ |    32   uint8* var##_mem = (uint8*)(malloc((size) + 63));               /* NOLINT */ \ | 
|    37   uint8* var = (uint8*)(((intptr_t)(var##_mem) + 63) & ~63)       /* NOLINT */ |    33   uint8* var = (uint8*)(((intptr_t)(var##_mem) + 63) & ~63)       /* NOLINT */ | 
|    38 #endif |    34 #endif | 
|    39  |    35  | 
|    40 #define free_aligned_buffer_64(var) \ |    36 #define free_aligned_buffer_64(var) \ | 
|    41   free(var##_mem);  \ |    37   free(var##_mem);  \ | 
|    42   var = 0 |    38   var = 0 | 
|    43  |    39  | 
|    44 #if defined(__pnacl__) || defined(__CLR_VER) || defined(COVERAGE_ENABLED) || \ |    40 #if defined(__pnacl__) || defined(__CLR_VER) || defined(COVERAGE_ENABLED) || \ | 
|    45     defined(TARGET_IPHONE_SIMULATOR) || \ |    41     defined(TARGET_IPHONE_SIMULATOR) || \ | 
 |    42     (defined(__i386__) && !defined(__SSE2__)) || \ | 
|    46     (defined(_MSC_VER) && defined(__clang__)) |    43     (defined(_MSC_VER) && defined(__clang__)) | 
|    47 #define LIBYUV_DISABLE_X86 |    44 #define LIBYUV_DISABLE_X86 | 
|    48 #endif |    45 #endif | 
|    49 // True if compiling for SSSE3 as a requirement. |    46 // True if compiling for SSSE3 as a requirement. | 
|    50 #if defined(__SSSE3__) || (defined(_M_IX86_FP) && (_M_IX86_FP >= 3)) |    47 #if defined(__SSSE3__) || (defined(_M_IX86_FP) && (_M_IX86_FP >= 3)) | 
|    51 #define LIBYUV_SSSE3_ONLY |    48 #define LIBYUV_SSSE3_ONLY | 
|    52 #endif |    49 #endif | 
|    53  |    50  | 
|    54 // Enable for NaCL pepper 33 for bundle and AVX2 support. |    51 // clang >= 3.5.0 required for Arm64. | 
|    55 #if defined(__native_client__) && PPAPI_RELEASE >= 33 |    52 #if defined(__clang__) && defined(__aarch64__) && !defined(LIBYUV_DISABLE_NEON) | 
|    56 #define NEW_BINUTILS |    53 #if (__clang_major__ < 3) || (__clang_major__ == 3 && (__clang_minor__ < 5)) | 
|    57 #endif |  | 
|    58 #if defined(__native_client__) && defined(__arm__) && PPAPI_RELEASE < 37 |  | 
|    59 #define LIBYUV_DISABLE_NEON |    54 #define LIBYUV_DISABLE_NEON | 
|    60 #endif |    55 #endif  // clang >= 3.5 | 
 |    56 #endif  // __clang__ | 
|    61  |    57  | 
|    62 // The following are available on all x86 platforms: |    58 // The following are available on all x86 platforms: | 
|    63 #if !defined(LIBYUV_DISABLE_X86) && \ |    59 #if !defined(LIBYUV_DISABLE_X86) && \ | 
|    64     (defined(_M_IX86) || defined(__x86_64__) || defined(__i386__)) |    60     (defined(_M_IX86) || defined(__x86_64__) || defined(__i386__)) | 
|    65 // Effects: |  | 
|    66 #define HAS_ARGBADDROW_SSE2 |  | 
|    67 #define HAS_ARGBAFFINEROW_SSE2 |  | 
|    68 #define HAS_ARGBATTENUATEROW_SSSE3 |  | 
|    69 #define HAS_ARGBBLENDROW_SSSE3 |  | 
|    70 #define HAS_ARGBCOLORMATRIXROW_SSSE3 |  | 
|    71 #define HAS_ARGBCOLORTABLEROW_X86 |  | 
|    72 #define HAS_ARGBCOPYALPHAROW_SSE2 |  | 
|    73 #define HAS_ARGBCOPYYTOALPHAROW_SSE2 |  | 
|    74 #define HAS_ARGBGRAYROW_SSSE3 |  | 
|    75 #define HAS_ARGBLUMACOLORTABLEROW_SSSE3 |  | 
|    76 #define HAS_ARGBMIRRORROW_SSSE3 |  | 
|    77 #define HAS_ARGBMULTIPLYROW_SSE2 |  | 
|    78 #define HAS_ARGBPOLYNOMIALROW_SSE2 |  | 
|    79 #define HAS_ARGBQUANTIZEROW_SSE2 |  | 
|    80 #define HAS_ARGBSEPIAROW_SSSE3 |  | 
|    81 #define HAS_ARGBSHADEROW_SSE2 |  | 
|    82 #define HAS_ARGBSUBTRACTROW_SSE2 |  | 
|    83 #define HAS_ARGBTOUVROW_SSSE3 |  | 
|    84 #define HAS_ARGBUNATTENUATEROW_SSE2 |  | 
|    85 #define HAS_COMPUTECUMULATIVESUMROW_SSE2 |  | 
|    86 #define HAS_CUMULATIVESUMTOAVERAGEROW_SSE2 |  | 
|    87 #define HAS_INTERPOLATEROW_SSE2 |  | 
|    88 #define HAS_INTERPOLATEROW_SSSE3 |  | 
|    89 #define HAS_RGBCOLORTABLEROW_X86 |  | 
|    90 #define HAS_SOBELROW_SSE2 |  | 
|    91 #define HAS_SOBELTOPLANEROW_SSE2 |  | 
|    92 #define HAS_SOBELXROW_SSE2 |  | 
|    93 #define HAS_SOBELXYROW_SSE2 |  | 
|    94 #define HAS_SOBELYROW_SSE2 |  | 
|    95  |  | 
|    96 // Conversions: |    61 // Conversions: | 
|    97 #define HAS_ABGRTOUVROW_SSSE3 |    62 #define HAS_ABGRTOUVROW_SSSE3 | 
|    98 #define HAS_ABGRTOYROW_SSSE3 |    63 #define HAS_ABGRTOYROW_SSSE3 | 
|    99 #define HAS_ARGB1555TOARGBROW_SSE2 |    64 #define HAS_ARGB1555TOARGBROW_SSE2 | 
|   100 #define HAS_ARGB4444TOARGBROW_SSE2 |    65 #define HAS_ARGB4444TOARGBROW_SSE2 | 
|   101 #define HAS_ARGBSHUFFLEROW_SSE2 |    66 #define HAS_ARGBSHUFFLEROW_SSE2 | 
|   102 #define HAS_ARGBSHUFFLEROW_SSSE3 |    67 #define HAS_ARGBSHUFFLEROW_SSSE3 | 
|   103 #define HAS_ARGBTOARGB1555ROW_SSE2 |    68 #define HAS_ARGBTOARGB1555ROW_SSE2 | 
|   104 #define HAS_ARGBTOARGB4444ROW_SSE2 |    69 #define HAS_ARGBTOARGB4444ROW_SSE2 | 
|   105 #define HAS_ARGBTOBAYERGGROW_SSE2 |    70 #define HAS_ARGBTOBAYERGGROW_SSE2 | 
|   106 #define HAS_ARGBTOBAYERROW_SSSE3 |  | 
|   107 #define HAS_ARGBTORAWROW_SSSE3 |    71 #define HAS_ARGBTORAWROW_SSSE3 | 
|   108 #define HAS_ARGBTORGB24ROW_SSSE3 |    72 #define HAS_ARGBTORGB24ROW_SSSE3 | 
|   109 #define HAS_ARGBTORGB565ROW_SSE2 |    73 #define HAS_ARGBTORGB565ROW_SSE2 | 
|   110 #define HAS_ARGBTOUV422ROW_SSSE3 |    74 #define HAS_ARGBTOUV422ROW_SSSE3 | 
|   111 #define HAS_ARGBTOUV444ROW_SSSE3 |    75 #define HAS_ARGBTOUV444ROW_SSSE3 | 
|   112 #define HAS_ARGBTOUVJROW_SSSE3 |    76 #define HAS_ARGBTOUVJROW_SSSE3 | 
 |    77 #define HAS_ARGBTOUVROW_SSSE3 | 
|   113 #define HAS_ARGBTOYJROW_SSSE3 |    78 #define HAS_ARGBTOYJROW_SSSE3 | 
|   114 #define HAS_ARGBTOYROW_SSSE3 |    79 #define HAS_ARGBTOYROW_SSSE3 | 
|   115 #define HAS_BGRATOUVROW_SSSE3 |    80 #define HAS_BGRATOUVROW_SSSE3 | 
|   116 #define HAS_BGRATOYROW_SSSE3 |    81 #define HAS_BGRATOYROW_SSSE3 | 
|   117 #define HAS_COPYROW_ERMS |    82 #define HAS_COPYROW_ERMS | 
|   118 #define HAS_COPYROW_SSE2 |    83 #define HAS_COPYROW_SSE2 | 
|   119 #define HAS_COPYROW_X86 |  | 
|   120 #define HAS_HALFROW_SSE2 |  | 
|   121 #define HAS_I400TOARGBROW_SSE2 |    84 #define HAS_I400TOARGBROW_SSE2 | 
|   122 #define HAS_I411TOARGBROW_SSSE3 |    85 #define HAS_I411TOARGBROW_SSSE3 | 
|   123 #define HAS_I422TOARGB1555ROW_SSSE3 |  | 
|   124 #define HAS_I422TOABGRROW_SSSE3 |    86 #define HAS_I422TOABGRROW_SSSE3 | 
|   125 #define HAS_I422TOARGB1555ROW_SSSE3 |    87 #define HAS_I422TOARGB1555ROW_SSSE3 | 
|   126 #define HAS_I422TOARGB4444ROW_SSSE3 |    88 #define HAS_I422TOARGB4444ROW_SSSE3 | 
|   127 #define HAS_I422TOARGBROW_SSSE3 |    89 #define HAS_I422TOARGBROW_SSSE3 | 
|   128 #define HAS_I422TOBGRAROW_SSSE3 |    90 #define HAS_I422TOBGRAROW_SSSE3 | 
|   129 #define HAS_I422TORAWROW_SSSE3 |    91 #define HAS_I422TORAWROW_SSSE3 | 
|   130 #define HAS_I422TORGB24ROW_SSSE3 |    92 #define HAS_I422TORGB24ROW_SSSE3 | 
|   131 #define HAS_I422TORGB565ROW_SSSE3 |    93 #define HAS_I422TORGB565ROW_SSSE3 | 
|   132 #define HAS_I422TORGBAROW_SSSE3 |    94 #define HAS_I422TORGBAROW_SSSE3 | 
|   133 #define HAS_I422TOUYVYROW_SSE2 |    95 #define HAS_I422TOUYVYROW_SSE2 | 
|   134 #define HAS_I422TOYUY2ROW_SSE2 |    96 #define HAS_I422TOYUY2ROW_SSE2 | 
|   135 #define HAS_I444TOARGBROW_SSSE3 |    97 #define HAS_I444TOARGBROW_SSSE3 | 
 |    98 // #define HAS_J422TOARGBROW_SSSE3 | 
|   136 #define HAS_MERGEUVROW_SSE2 |    99 #define HAS_MERGEUVROW_SSE2 | 
|   137 #define HAS_MIRRORROW_SSE2 |   100 #define HAS_MIRRORROW_SSE2 | 
|   138 #define HAS_MIRRORROW_SSSE3 |   101 #define HAS_MIRRORROW_SSSE3 | 
|   139 #define HAS_MIRRORROW_UV_SSSE3 |   102 #define HAS_MIRRORROW_UV_SSSE3 | 
|   140 #define HAS_MIRRORUVROW_SSSE3 |   103 #define HAS_MIRRORUVROW_SSSE3 | 
|   141 #define HAS_NV12TOARGBROW_SSSE3 |   104 #define HAS_NV12TOARGBROW_SSSE3 | 
|   142 #define HAS_NV12TORGB565ROW_SSSE3 |   105 #define HAS_NV12TORGB565ROW_SSSE3 | 
|   143 #define HAS_NV21TOARGBROW_SSSE3 |   106 #define HAS_NV21TOARGBROW_SSSE3 | 
|   144 #define HAS_NV21TORGB565ROW_SSSE3 |   107 #define HAS_NV21TORGB565ROW_SSSE3 | 
|   145 #define HAS_RAWTOARGBROW_SSSE3 |   108 #define HAS_RAWTOARGBROW_SSSE3 | 
|   146 #define HAS_RAWTOYROW_SSSE3 |   109 #define HAS_RAWTOYROW_SSSE3 | 
|   147 #define HAS_RGB24TOARGBROW_SSSE3 |   110 #define HAS_RGB24TOARGBROW_SSSE3 | 
|   148 #define HAS_RGB24TOYROW_SSSE3 |   111 #define HAS_RGB24TOYROW_SSSE3 | 
|   149 #define HAS_RGB565TOARGBROW_SSE2 |   112 #define HAS_RGB565TOARGBROW_SSE2 | 
|   150 #define HAS_RGBATOUVROW_SSSE3 |   113 #define HAS_RGBATOUVROW_SSSE3 | 
|   151 #define HAS_RGBATOYROW_SSSE3 |   114 #define HAS_RGBATOYROW_SSSE3 | 
|   152 #define HAS_SETROW_X86 |   115 #define HAS_SETROW_X86 | 
 |   116 #define HAS_SETROW_ERMS | 
 |   117 #define HAS_ARGBSETROW_X86 | 
|   153 #define HAS_SPLITUVROW_SSE2 |   118 #define HAS_SPLITUVROW_SSE2 | 
|   154 #define HAS_UYVYTOARGBROW_SSSE3 |   119 #define HAS_UYVYTOARGBROW_SSSE3 | 
|   155 #define HAS_UYVYTOUV422ROW_SSE2 |   120 #define HAS_UYVYTOUV422ROW_SSE2 | 
|   156 #define HAS_UYVYTOUVROW_SSE2 |   121 #define HAS_UYVYTOUVROW_SSE2 | 
|   157 #define HAS_UYVYTOYROW_SSE2 |   122 #define HAS_UYVYTOYROW_SSE2 | 
|   158 #define HAS_YTOARGBROW_SSE2 |   123 #define HAS_YTOARGBROW_SSE2 | 
|   159 #define HAS_YUY2TOARGBROW_SSSE3 |   124 #define HAS_YUY2TOARGBROW_SSSE3 | 
|   160 #define HAS_YUY2TOUV422ROW_SSE2 |   125 #define HAS_YUY2TOUV422ROW_SSE2 | 
|   161 #define HAS_YUY2TOUVROW_SSE2 |   126 #define HAS_YUY2TOUVROW_SSE2 | 
|   162 #define HAS_YUY2TOYROW_SSE2 |   127 #define HAS_YUY2TOYROW_SSE2 | 
 |   128  | 
 |   129 // Effects: | 
 |   130 #define HAS_ARGBADDROW_SSE2 | 
 |   131 #define HAS_ARGBAFFINEROW_SSE2 | 
 |   132 #define HAS_ARGBATTENUATEROW_SSSE3 | 
 |   133 #define HAS_ARGBBLENDROW_SSSE3 | 
 |   134 #define HAS_ARGBCOLORMATRIXROW_SSSE3 | 
 |   135 #define HAS_ARGBCOLORTABLEROW_X86 | 
 |   136 #define HAS_ARGBCOPYALPHAROW_SSE2 | 
 |   137 #define HAS_ARGBCOPYYTOALPHAROW_SSE2 | 
 |   138 #define HAS_ARGBGRAYROW_SSSE3 | 
 |   139 #define HAS_ARGBLUMACOLORTABLEROW_SSSE3 | 
 |   140 #define HAS_ARGBMIRRORROW_SSE2 | 
 |   141 #define HAS_ARGBMULTIPLYROW_SSE2 | 
 |   142 #define HAS_ARGBPOLYNOMIALROW_SSE2 | 
 |   143 #define HAS_ARGBQUANTIZEROW_SSE2 | 
 |   144 #define HAS_ARGBSEPIAROW_SSSE3 | 
 |   145 #define HAS_ARGBSHADEROW_SSE2 | 
 |   146 #define HAS_ARGBSUBTRACTROW_SSE2 | 
 |   147 #define HAS_ARGBUNATTENUATEROW_SSE2 | 
 |   148 #define HAS_COMPUTECUMULATIVESUMROW_SSE2 | 
 |   149 #define HAS_CUMULATIVESUMTOAVERAGEROW_SSE2 | 
 |   150 #define HAS_INTERPOLATEROW_SSE2 | 
 |   151 #define HAS_INTERPOLATEROW_SSSE3 | 
 |   152 #define HAS_RGBCOLORTABLEROW_X86 | 
 |   153 #define HAS_SOBELROW_SSE2 | 
 |   154 #define HAS_SOBELTOPLANEROW_SSE2 | 
 |   155 #define HAS_SOBELXROW_SSE2 | 
 |   156 #define HAS_SOBELXYROW_SSE2 | 
 |   157 #define HAS_SOBELYROW_SSE2 | 
|   163 #endif |   158 #endif | 
|   164  |   159  | 
|   165 // The following are available on x64 Visual C: |   160 // The following are available on x64 Visual C: | 
|   166 #if !defined(LIBYUV_DISABLE_X86) && defined (_M_X64) |   161 #if !defined(LIBYUV_DISABLE_X86) && defined (_M_X64) | 
|   167 #define HAS_I422TOARGBROW_SSSE3 |   162 #define HAS_I422TOARGBROW_SSSE3 | 
|   168 #endif |   163 #endif | 
|   169  |   164  | 
|   170 // GCC >= 4.7.0 required for AVX2. |   165 // GCC >= 4.7.0 required for AVX2. | 
|   171 #if defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__)) |   166 #if defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__)) | 
|   172 #if (__GNUC__ > 4) || (__GNUC__ == 4 && (__GNUC_MINOR__ >= 7)) |   167 #if (__GNUC__ > 4) || (__GNUC__ == 4 && (__GNUC_MINOR__ >= 7)) | 
|   173 #define GCC_HAS_AVX2 1 |   168 #define GCC_HAS_AVX2 1 | 
|   174 #endif  // GNUC >= 4.7 |   169 #endif  // GNUC >= 4.7 | 
|   175 #endif  // __GNUC__ |   170 #endif  // __GNUC__ | 
|   176  |   171  | 
|   177 // clang >= 3.4.0 required for AVX2. |   172 // clang >= 3.4.0 required for AVX2. | 
|   178 #if defined(__clang__) && (defined(__x86_64__) || defined(__i386__)) |   173 #if defined(__clang__) && (defined(__x86_64__) || defined(__i386__)) | 
|   179 #if (__clang_major__ > 3) || (__clang_major__ == 3 && (__clang_minor__ >= 4)) |   174 #if (__clang_major__ > 3) || (__clang_major__ == 3 && (__clang_minor__ >= 4)) | 
|   180 #define CLANG_HAS_AVX2 1 |   175 #define CLANG_HAS_AVX2 1 | 
|   181 #endif  // clang >= 3.4 |   176 #endif  // clang >= 3.4 | 
|   182 #endif  // __clang__ |   177 #endif  // __clang__ | 
|   183  |   178  | 
|   184 // Visual C 2012 required for AVX2. |   179 // Visual C 2012 required for AVX2. | 
|   185 #if defined(_M_IX86) && defined(_MSC_VER) && _MSC_VER >= 1700 |   180 #if defined(_M_IX86) && defined(_MSC_VER) && _MSC_VER >= 1700 | 
|   186 #define VISUALC_HAS_AVX2 1 |   181 #define VISUALC_HAS_AVX2 1 | 
|   187 #endif  // VisualStudio >= 2012 |   182 #endif  // VisualStudio >= 2012 | 
|   188  |   183  | 
 |   184 // The following are available require VS2012.  Port to GCC. | 
 |   185 #if !defined(LIBYUV_DISABLE_X86) && defined(VISUALC_HAS_AVX2) | 
 |   186 // TODO(fbarchard): fix AVX2 versions of YUV conversion.  bug=393 | 
 |   187 #define HAS_I422TOABGRROW_AVX2 | 
 |   188 #define HAS_I422TOARGBROW_AVX2 | 
 |   189 #define HAS_I422TOBGRAROW_AVX2 | 
 |   190 #define HAS_I422TORGBAROW_AVX2 | 
 |   191 #define HAS_NV12TOARGBROW_AVX2 | 
 |   192 #define HAS_NV21TOARGBROW_AVX2 | 
 |   193 #define HAS_ARGBTORGB565ROW_AVX2 | 
 |   194 #define HAS_ARGBTOARGB1555ROW_AVX2 | 
 |   195 #define HAS_ARGBTOARGB4444ROW_AVX2 | 
 |   196 #define HAS_NV12TORGB565ROW_AVX2 | 
 |   197 #define HAS_NV21TORGB565ROW_AVX2 | 
 |   198 #define HAS_I422TORGB565ROW_AVX2 | 
 |   199 #define HAS_I422TOARGB1555ROW_AVX2 | 
 |   200 #define HAS_I422TOARGB4444ROW_AVX2 | 
 |   201 #endif | 
 |   202  | 
|   189 // The following are available on all x86 platforms, but |   203 // The following are available on all x86 platforms, but | 
|   190 // require VS2012, clang 3.4 or gcc 4.7. |   204 // require VS2012, clang 3.4 or gcc 4.7. | 
|   191 // The code supports NaCL but requires a new compiler and validator. |   205 // The code supports NaCL but requires a new compiler and validator. | 
|   192 #if !defined(LIBYUV_DISABLE_X86) && (defined(VISUALC_HAS_AVX2) || \ |   206 #if !defined(LIBYUV_DISABLE_X86) && (defined(VISUALC_HAS_AVX2) || \ | 
|   193     defined(CLANG_HAS_AVX2) || defined(GCC_HAS_AVX2)) |   207     defined(CLANG_HAS_AVX2) || defined(GCC_HAS_AVX2)) | 
|   194 // Effects: |   208 #define HAS_ARGBCOPYALPHAROW_AVX2 | 
 |   209 #define HAS_ARGBCOPYYTOALPHAROW_AVX2 | 
 |   210 #define HAS_ARGBMIRRORROW_AVX2 | 
|   195 #define HAS_ARGBPOLYNOMIALROW_AVX2 |   211 #define HAS_ARGBPOLYNOMIALROW_AVX2 | 
|   196 #define HAS_ARGBSHUFFLEROW_AVX2 |   212 #define HAS_ARGBSHUFFLEROW_AVX2 | 
|   197 #define HAS_ARGBCOPYALPHAROW_AVX2 |  | 
|   198 #define HAS_ARGBCOPYYTOALPHAROW_AVX2 |  | 
|   199 #endif |  | 
|   200  |  | 
|   201 // The following are require VS2012. |  | 
|   202 // TODO(fbarchard): Port to gcc. |  | 
|   203 #if !defined(LIBYUV_DISABLE_X86) && defined(VISUALC_HAS_AVX2) |  | 
|   204 #define HAS_ARGBTOUVROW_AVX2 |   213 #define HAS_ARGBTOUVROW_AVX2 | 
|   205 #define HAS_ARGBTOYJROW_AVX2 |   214 #define HAS_ARGBTOYJROW_AVX2 | 
|   206 #define HAS_ARGBTOYROW_AVX2 |   215 #define HAS_ARGBTOYROW_AVX2 | 
|   207 #define HAS_HALFROW_AVX2 |   216 #define HAS_COPYROW_AVX | 
|   208 #define HAS_I422TOARGBROW_AVX2 |  | 
|   209 #define HAS_INTERPOLATEROW_AVX2 |   217 #define HAS_INTERPOLATEROW_AVX2 | 
|   210 #define HAS_MERGEUVROW_AVX2 |   218 #define HAS_MERGEUVROW_AVX2 | 
|   211 #define HAS_MIRRORROW_AVX2 |   219 #define HAS_MIRRORROW_AVX2 | 
|   212 #define HAS_SPLITUVROW_AVX2 |   220 #define HAS_SPLITUVROW_AVX2 | 
|   213 #define HAS_UYVYTOUV422ROW_AVX2 |   221 #define HAS_UYVYTOUV422ROW_AVX2 | 
|   214 #define HAS_UYVYTOUVROW_AVX2 |   222 #define HAS_UYVYTOUVROW_AVX2 | 
|   215 #define HAS_UYVYTOYROW_AVX2 |   223 #define HAS_UYVYTOYROW_AVX2 | 
 |   224 #define HAS_YTOARGBROW_AVX2 | 
|   216 #define HAS_YUY2TOUV422ROW_AVX2 |   225 #define HAS_YUY2TOUV422ROW_AVX2 | 
|   217 #define HAS_YUY2TOUVROW_AVX2 |   226 #define HAS_YUY2TOUVROW_AVX2 | 
|   218 #define HAS_YUY2TOYROW_AVX2 |   227 #define HAS_YUY2TOYROW_AVX2 | 
|   219  |   228  | 
 |   229 // The following require HAS_I422TOARGBROW_AVX2 | 
 |   230 #if defined(HAS_I422TOARGBROW_AVX2) | 
 |   231 #define HAS_YUY2TOARGBROW_AVX2 | 
 |   232 #define HAS_UYVYTOARGBROW_AVX2 | 
 |   233 #endif | 
 |   234  | 
|   220 // Effects: |   235 // Effects: | 
|   221 #define HAS_ARGBADDROW_AVX2 |   236 #define HAS_ARGBADDROW_AVX2 | 
|   222 #define HAS_ARGBATTENUATEROW_AVX2 |   237 #define HAS_ARGBATTENUATEROW_AVX2 | 
|   223 #define HAS_ARGBMIRRORROW_AVX2 |  | 
|   224 #define HAS_ARGBMULTIPLYROW_AVX2 |   238 #define HAS_ARGBMULTIPLYROW_AVX2 | 
|   225 #define HAS_ARGBSUBTRACTROW_AVX2 |   239 #define HAS_ARGBSUBTRACTROW_AVX2 | 
|   226 #define HAS_ARGBUNATTENUATEROW_AVX2 |   240 #define HAS_ARGBUNATTENUATEROW_AVX2 | 
|   227 #endif  // defined(VISUALC_HAS_AVX2) |   241 #endif | 
 |   242  | 
|   228  |   243  | 
|   229 // The following are Yasm x86 only: |   244 // The following are Yasm x86 only: | 
|   230 // TODO(fbarchard): Port AVX2 to inline. |   245 // TODO(fbarchard): Port AVX2 to inline. | 
|   231 #if !defined(LIBYUV_DISABLE_X86) && defined(HAVE_YASM) |   246 #if !defined(LIBYUV_DISABLE_X86) && defined(HAVE_YASM) | 
|   232     (defined(_M_IX86) || defined(_M_X64) || \ |   247     (defined(_M_IX86) || defined(_M_X64) || \ | 
|   233     defined(__x86_64__) || defined(__i386__)) |   248     defined(__x86_64__) || defined(__i386__)) | 
|   234 #define HAS_MERGEUVROW_AVX2 |   249 #define HAS_MERGEUVROW_AVX2 | 
|   235 #define HAS_MERGEUVROW_MMX |   250 #define HAS_MERGEUVROW_MMX | 
|   236 #define HAS_SPLITUVROW_AVX2 |   251 #define HAS_SPLITUVROW_AVX2 | 
|   237 #define HAS_SPLITUVROW_MMX |   252 #define HAS_SPLITUVROW_MMX | 
|   238 #define HAS_UYVYTOYROW_AVX2 |   253 #define HAS_UYVYTOYROW_AVX2 | 
|   239 #define HAS_UYVYTOYROW_MMX |   254 #define HAS_UYVYTOYROW_MMX | 
|   240 #define HAS_YUY2TOYROW_AVX2 |   255 #define HAS_YUY2TOYROW_AVX2 | 
|   241 #define HAS_YUY2TOYROW_MMX |   256 #define HAS_YUY2TOYROW_MMX | 
|   242 #endif |   257 #endif | 
|   243  |   258  | 
|   244 // The following are disabled when SSSE3 is available: |   259 // The following are disabled when SSSE3 is available: | 
|   245 #if !defined(LIBYUV_DISABLE_X86) && \ |   260 #if !defined(LIBYUV_DISABLE_X86) && \ | 
|   246     (defined(_M_IX86) || defined(__x86_64__) || defined(__i386__)) && \ |   261     (defined(_M_IX86) || defined(__x86_64__) || defined(__i386__)) && \ | 
|   247     !defined(LIBYUV_SSSE3_ONLY) |   262     !defined(LIBYUV_SSSE3_ONLY) | 
 |   263 #define HAS_ARGBATTENUATEROW_SSE2 | 
|   248 #define HAS_ARGBBLENDROW_SSE2 |   264 #define HAS_ARGBBLENDROW_SSE2 | 
|   249 #define HAS_ARGBATTENUATEROW_SSE2 |  | 
|   250 #define HAS_MIRRORROW_SSE2 |   265 #define HAS_MIRRORROW_SSE2 | 
|   251 #endif |   266 #endif | 
|   252  |   267  | 
|   253 // The following are available on arm64 platforms: |  | 
|   254 #if !defined(LIBYUV_DISABLE_NEON) && defined(__aarch64__) |  | 
|   255 // #define HAS_I444TOARGBROW_NEON |  | 
|   256 // #define HAS_I422TOARGBROW_NEON |  | 
|   257 // #define HAS_I411TOARGBROW_NEON |  | 
|   258 // #define HAS_I422TOBGRAROW_NEON |  | 
|   259 // #define HAS_I422TOABGRROW_NEON |  | 
|   260 // #define HAS_I422TORGBAROW_NEON |  | 
|   261 // #define HAS_I422TORGB24ROW_NEON |  | 
|   262 // #define HAS_I422TORAWROW_NEON |  | 
|   263 // #define HAS_I422TORGB565ROW_NEON |  | 
|   264 // #define HAS_I422TOARGB1555ROW_NEON |  | 
|   265 // #define HAS_I422TOARGB4444ROW_NEON |  | 
|   266 // #define HAS_YTOARGBROW_NEON |  | 
|   267 // #define HAS_I400TOARGBROW_NEON |  | 
|   268 // #define HAS_NV12TOARGBROW_NEON |  | 
|   269 // #define HAS_NV21TOARGBROW_NEON |  | 
|   270 // #define HAS_NV12TORGB565ROW_NEON |  | 
|   271 // #define HAS_NV21TORGB565ROW_NEON |  | 
|   272 // #define HAS_YUY2TOARGBROW_NEON |  | 
|   273 // #define HAS_UYVYTOARGBROW_NEON |  | 
|   274 #define HAS_SPLITUVROW_NEON |  | 
|   275 #define HAS_MERGEUVROW_NEON |  | 
|   276 #define HAS_COPYROW_NEON |  | 
|   277 #define HAS_SETROW_NEON |  | 
|   278 #define HAS_ARGBSETROWS_NEON |  | 
|   279 #define HAS_MIRRORROW_NEON |  | 
|   280 #define HAS_MIRRORUVROW_NEON |  | 
|   281 #define HAS_ARGBMIRRORROW_NEON |  | 
|   282 #define HAS_RGB24TOARGBROW_NEON |  | 
|   283 #define HAS_RAWTOARGBROW_NEON |  | 
|   284 // #define HAS_RGB565TOARGBROW_NEON |  | 
|   285 // #define HAS_ARGB1555TOARGBROW_NEON |  | 
|   286 // #define HAS_ARGB4444TOARGBROW_NEON |  | 
|   287 #define HAS_ARGBTORGB24ROW_NEON |  | 
|   288 #define HAS_ARGBTORAWROW_NEON |  | 
|   289 #define HAS_YUY2TOYROW_NEON |  | 
|   290 #define HAS_UYVYTOYROW_NEON |  | 
|   291 #define HAS_YUY2TOUV422ROW_NEON |  | 
|   292 #define HAS_UYVYTOUV422ROW_NEON |  | 
|   293 #define HAS_YUY2TOUVROW_NEON |  | 
|   294 #define HAS_UYVYTOUVROW_NEON |  | 
|   295 #define HAS_HALFROW_NEON |  | 
|   296 #define HAS_ARGBTOBAYERROW_NEON |  | 
|   297 #define HAS_ARGBTOBAYERGGROW_NEON |  | 
|   298 #define HAS_ARGBSHUFFLEROW_NEON |  | 
|   299 #define HAS_I422TOYUY2ROW_NEON |  | 
|   300 #define HAS_I422TOUYVYROW_NEON |  | 
|   301 // #define HAS_ARGBTORGB565ROW_NEON |  | 
|   302 // #define HAS_ARGBTOARGB1555ROW_NEON |  | 
|   303 // #define HAS_ARGBTOARGB4444ROW_NEON |  | 
|   304 #define HAS_ARGBTOYROW_NEON |  | 
|   305 #define HAS_ARGBTOYJROW_NEON |  | 
|   306 // #define HAS_ARGBTOUV444ROW_NEON |  | 
|   307 // #define HAS_ARGBTOUV422ROW_NEON |  | 
|   308 // #define HAS_ARGBTOUV411ROW_NEON |  | 
|   309 // #define HAS_ARGBTOUVROW_NEON |  | 
|   310 // #define HAS_ARGBTOUVJROW_NEON |  | 
|   311 // #define HAS_BGRATOUVROW_NEON |  | 
|   312 // #define HAS_ABGRTOUVROW_NEON |  | 
|   313 // #define HAS_RGBATOUVROW_NEON |  | 
|   314 // #define HAS_RGB24TOUVROW_NEON |  | 
|   315 // #define HAS_RAWTOUVROW_NEON |  | 
|   316 // #define HAS_RGB565TOUVROW_NEON |  | 
|   317 // #define HAS_ARGB1555TOUVROW_NEON |  | 
|   318 // #define HAS_ARGB4444TOUVROW_NEON |  | 
|   319 // #define HAS_RGB565TOYROW_NEON |  | 
|   320 // #define HAS_ARGB1555TOYROW_NEON |  | 
|   321 // #define HAS_ARGB4444TOYROW_NEON |  | 
|   322 // #define HAS_BGRATOYROW_NEON |  | 
|   323 // #define HAS_ABGRTOYROW_NEON |  | 
|   324 // #define HAS_RGBATOYROW_NEON |  | 
|   325 // #define HAS_RGB24TOYROW_NEON |  | 
|   326 // #define HAS_RAWTOYROW_NEON |  | 
|   327 // #define HAS_INTERPOLATEROW_NEON |  | 
|   328 // #define HAS_ARGBBLENDROW_NEON |  | 
|   329 // #define HAS_ARGBATTENUATEROW_NEON |  | 
|   330 // #define HAS_ARGBQUANTIZEROW_NEON |  | 
|   331 // #define HAS_ARGBSHADEROW_NEON |  | 
|   332 // #define HAS_ARGBGRAYROW_NEON |  | 
|   333 // #define HAS_ARGBSEPIAROW_NEON |  | 
|   334 // #define HAS_ARGBCOLORMATRIXROW_NEON |  | 
|   335 #define HAS_ARGBMULTIPLYROW_NEON |  | 
|   336 #define HAS_ARGBADDROW_NEON |  | 
|   337 #define HAS_ARGBSUBTRACTROW_NEON |  | 
|   338 #define HAS_SOBELROW_NEON |  | 
|   339 #define HAS_SOBELTOPLANEROW_NEON |  | 
|   340 #define HAS_SOBELXYROW_NEON |  | 
|   341 #define HAS_SOBELXROW_NEON |  | 
|   342 #define HAS_SOBELYROW_NEON |  | 
|   343 #endif |  | 
|   344  |  | 
|   345 // The following are available on Neon platforms: |   268 // The following are available on Neon platforms: | 
|   346 #if !defined(LIBYUV_DISABLE_NEON) && \ |   269 #if !defined(LIBYUV_DISABLE_NEON) && \ | 
|   347     (defined(__ARM_NEON__) || defined(LIBYUV_NEON)) |   270     (defined(__aarch64__) || defined(__ARM_NEON__) || defined(LIBYUV_NEON)) | 
|   348 #define HAS_ABGRTOUVROW_NEON |   271 #define HAS_ABGRTOUVROW_NEON | 
|   349 #define HAS_ABGRTOYROW_NEON |   272 #define HAS_ABGRTOYROW_NEON | 
|   350 #define HAS_ARGB1555TOARGBROW_NEON |   273 #define HAS_ARGB1555TOARGBROW_NEON | 
|   351 #define HAS_ARGB1555TOUVROW_NEON |   274 #define HAS_ARGB1555TOUVROW_NEON | 
|   352 #define HAS_ARGB1555TOYROW_NEON |   275 #define HAS_ARGB1555TOYROW_NEON | 
|   353 #define HAS_ARGB4444TOARGBROW_NEON |   276 #define HAS_ARGB4444TOARGBROW_NEON | 
|   354 #define HAS_ARGB4444TOUVROW_NEON |   277 #define HAS_ARGB4444TOUVROW_NEON | 
|   355 #define HAS_ARGB4444TOYROW_NEON |   278 #define HAS_ARGB4444TOYROW_NEON | 
|   356 #define HAS_ARGBTOARGB1555ROW_NEON |   279 #define HAS_ARGBTOARGB1555ROW_NEON | 
|   357 #define HAS_ARGBTOARGB4444ROW_NEON |   280 #define HAS_ARGBTOARGB4444ROW_NEON | 
|   358 #define HAS_ARGBTOBAYERROW_NEON |  | 
|   359 #define HAS_ARGBTOBAYERGGROW_NEON |   281 #define HAS_ARGBTOBAYERGGROW_NEON | 
|   360 #define HAS_ARGBTORAWROW_NEON |   282 #define HAS_ARGBTORAWROW_NEON | 
|   361 #define HAS_ARGBTORGB24ROW_NEON |   283 #define HAS_ARGBTORGB24ROW_NEON | 
|   362 #define HAS_ARGBTORGB565ROW_NEON |   284 #define HAS_ARGBTORGB565ROW_NEON | 
|   363 #define HAS_ARGBTOUV411ROW_NEON |   285 #define HAS_ARGBTOUV411ROW_NEON | 
|   364 #define HAS_ARGBTOUV422ROW_NEON |   286 #define HAS_ARGBTOUV422ROW_NEON | 
|   365 #define HAS_ARGBTOUV444ROW_NEON |   287 #define HAS_ARGBTOUV444ROW_NEON | 
 |   288 #define HAS_ARGBTOUVJROW_NEON | 
|   366 #define HAS_ARGBTOUVROW_NEON |   289 #define HAS_ARGBTOUVROW_NEON | 
|   367 #define HAS_ARGBTOUVJROW_NEON |   290 #define HAS_ARGBTOYJROW_NEON | 
|   368 #define HAS_ARGBTOYROW_NEON |   291 #define HAS_ARGBTOYROW_NEON | 
|   369 #define HAS_ARGBTOYJROW_NEON |  | 
|   370 #define HAS_BGRATOUVROW_NEON |   292 #define HAS_BGRATOUVROW_NEON | 
|   371 #define HAS_BGRATOYROW_NEON |   293 #define HAS_BGRATOYROW_NEON | 
|   372 #define HAS_COPYROW_NEON |   294 #define HAS_COPYROW_NEON | 
|   373 #define HAS_HALFROW_NEON |  | 
|   374 #define HAS_I400TOARGBROW_NEON |   295 #define HAS_I400TOARGBROW_NEON | 
|   375 #define HAS_I411TOARGBROW_NEON |   296 #define HAS_I411TOARGBROW_NEON | 
|   376 #define HAS_I422TOABGRROW_NEON |   297 #define HAS_I422TOABGRROW_NEON | 
|   377 #define HAS_I422TOARGB1555ROW_NEON |   298 #define HAS_I422TOARGB1555ROW_NEON | 
|   378 #define HAS_I422TOARGB4444ROW_NEON |   299 #define HAS_I422TOARGB4444ROW_NEON | 
|   379 #define HAS_I422TOARGBROW_NEON |   300 #define HAS_I422TOARGBROW_NEON | 
|   380 #define HAS_I422TOBGRAROW_NEON |   301 #define HAS_I422TOBGRAROW_NEON | 
|   381 #define HAS_I422TORAWROW_NEON |   302 #define HAS_I422TORAWROW_NEON | 
|   382 #define HAS_I422TORGB24ROW_NEON |   303 #define HAS_I422TORGB24ROW_NEON | 
|   383 #define HAS_I422TORGB565ROW_NEON |   304 #define HAS_I422TORGB565ROW_NEON | 
| (...skipping 13 matching lines...) Expand all  Loading... | 
|   397 #define HAS_RAWTOYROW_NEON |   318 #define HAS_RAWTOYROW_NEON | 
|   398 #define HAS_RGB24TOARGBROW_NEON |   319 #define HAS_RGB24TOARGBROW_NEON | 
|   399 #define HAS_RGB24TOUVROW_NEON |   320 #define HAS_RGB24TOUVROW_NEON | 
|   400 #define HAS_RGB24TOYROW_NEON |   321 #define HAS_RGB24TOYROW_NEON | 
|   401 #define HAS_RGB565TOARGBROW_NEON |   322 #define HAS_RGB565TOARGBROW_NEON | 
|   402 #define HAS_RGB565TOUVROW_NEON |   323 #define HAS_RGB565TOUVROW_NEON | 
|   403 #define HAS_RGB565TOYROW_NEON |   324 #define HAS_RGB565TOYROW_NEON | 
|   404 #define HAS_RGBATOUVROW_NEON |   325 #define HAS_RGBATOUVROW_NEON | 
|   405 #define HAS_RGBATOYROW_NEON |   326 #define HAS_RGBATOYROW_NEON | 
|   406 #define HAS_SETROW_NEON |   327 #define HAS_SETROW_NEON | 
 |   328 #define HAS_ARGBSETROW_NEON | 
|   407 #define HAS_SPLITUVROW_NEON |   329 #define HAS_SPLITUVROW_NEON | 
|   408 #define HAS_UYVYTOARGBROW_NEON |   330 #define HAS_UYVYTOARGBROW_NEON | 
|   409 #define HAS_UYVYTOUV422ROW_NEON |   331 #define HAS_UYVYTOUV422ROW_NEON | 
|   410 #define HAS_UYVYTOUVROW_NEON |   332 #define HAS_UYVYTOUVROW_NEON | 
|   411 #define HAS_UYVYTOYROW_NEON |   333 #define HAS_UYVYTOYROW_NEON | 
|   412 #define HAS_YTOARGBROW_NEON |   334 #define HAS_YTOARGBROW_NEON | 
|   413 #define HAS_YUY2TOARGBROW_NEON |   335 #define HAS_YUY2TOARGBROW_NEON | 
|   414 #define HAS_YUY2TOUV422ROW_NEON |   336 #define HAS_YUY2TOUV422ROW_NEON | 
|   415 #define HAS_YUY2TOUVROW_NEON |   337 #define HAS_YUY2TOUVROW_NEON | 
|   416 #define HAS_YUY2TOYROW_NEON |   338 #define HAS_YUY2TOYROW_NEON | 
|   417  |   339  | 
|   418 // Effects: |   340 // Effects: | 
|   419 #define HAS_ARGBADDROW_NEON |   341 #define HAS_ARGBADDROW_NEON | 
|   420 #define HAS_ARGBATTENUATEROW_NEON |   342 #define HAS_ARGBATTENUATEROW_NEON | 
|   421 #define HAS_ARGBBLENDROW_NEON |   343 #define HAS_ARGBBLENDROW_NEON | 
|   422 #define HAS_ARGBGRAYROW_NEON |   344 #define HAS_ARGBGRAYROW_NEON | 
|   423 #define HAS_ARGBMIRRORROW_NEON |   345 #define HAS_ARGBMIRRORROW_NEON | 
|   424 #define HAS_ARGBMULTIPLYROW_NEON |   346 #define HAS_ARGBMULTIPLYROW_NEON | 
|   425 #define HAS_ARGBQUANTIZEROW_NEON |   347 #define HAS_ARGBQUANTIZEROW_NEON | 
|   426 #define HAS_ARGBSEPIAROW_NEON |   348 #define HAS_ARGBSEPIAROW_NEON | 
|   427 #define HAS_ARGBSHADEROW_NEON |   349 #define HAS_ARGBSHADEROW_NEON | 
|   428 #define HAS_ARGBSUBTRACTROW_NEON |   350 #define HAS_ARGBSUBTRACTROW_NEON | 
 |   351 #define HAS_INTERPOLATEROW_NEON | 
|   429 #define HAS_SOBELROW_NEON |   352 #define HAS_SOBELROW_NEON | 
|   430 #define HAS_SOBELTOPLANEROW_NEON |   353 #define HAS_SOBELTOPLANEROW_NEON | 
 |   354 #define HAS_SOBELXROW_NEON | 
|   431 #define HAS_SOBELXYROW_NEON |   355 #define HAS_SOBELXYROW_NEON | 
|   432 #define HAS_SOBELXROW_NEON |  | 
|   433 #define HAS_SOBELYROW_NEON |   356 #define HAS_SOBELYROW_NEON | 
|   434 #define HAS_INTERPOLATEROW_NEON |   357 #define HAS_ARGBCOLORMATRIXROW_NEON | 
|   435 // TODO(fbarchard): Investigate neon unittest failure. |   358 #define HAS_ARGBSHUFFLEROW_NEON | 
|   436 // #define HAS_ARGBCOLORMATRIXROW_NEON |  | 
|   437 #endif |   359 #endif | 
|   438  |   360  | 
|   439 // The following are available on Mips platforms: |   361 // The following are available on Mips platforms: | 
|   440 #if !defined(LIBYUV_DISABLE_MIPS) && defined(__mips__) && \ |   362 #if !defined(LIBYUV_DISABLE_MIPS) && defined(__mips__) && \ | 
|   441     (_MIPS_SIM == _MIPS_SIM_ABI32) |   363     (_MIPS_SIM == _MIPS_SIM_ABI32) && (__mips_isa_rev < 6) | 
|   442 #define HAS_COPYROW_MIPS |   364 #define HAS_COPYROW_MIPS | 
|   443 #if defined(__mips_dsp) && (__mips_dsp_rev >= 2) |   365 #if defined(__mips_dsp) && (__mips_dsp_rev >= 2) | 
|   444 #define HAS_I422TOABGRROW_MIPS_DSPR2 |   366 #define HAS_I422TOABGRROW_MIPS_DSPR2 | 
|   445 #define HAS_I422TOARGBROW_MIPS_DSPR2 |   367 #define HAS_I422TOARGBROW_MIPS_DSPR2 | 
|   446 #define HAS_I422TOBGRAROW_MIPS_DSPR2 |   368 #define HAS_I422TOBGRAROW_MIPS_DSPR2 | 
|   447 #define HAS_INTERPOLATEROWS_MIPS_DSPR2 |   369 #define HAS_INTERPOLATEROW_MIPS_DSPR2 | 
|   448 #define HAS_MIRRORROW_MIPS_DSPR2 |   370 #define HAS_MIRRORROW_MIPS_DSPR2 | 
|   449 #define HAS_MIRRORUVROW_MIPS_DSPR2 |   371 #define HAS_MIRRORUVROW_MIPS_DSPR2 | 
|   450 #define HAS_SPLITUVROW_MIPS_DSPR2 |   372 #define HAS_SPLITUVROW_MIPS_DSPR2 | 
|   451 #endif |   373 #endif | 
|   452 #endif |   374 #endif | 
|   453  |   375  | 
|   454 #if defined(_MSC_VER) && !defined(__CLR_VER) |   376 #if defined(_MSC_VER) && !defined(__CLR_VER) | 
|   455 #define SIMD_ALIGNED(var) __declspec(align(16)) var |   377 #define SIMD_ALIGNED(var) __declspec(align(16)) var | 
 |   378 #define SIMD_ALIGNED32(var) __declspec(align(64)) var | 
|   456 typedef __declspec(align(16)) int16 vec16[8]; |   379 typedef __declspec(align(16)) int16 vec16[8]; | 
|   457 typedef __declspec(align(16)) int32 vec32[4]; |   380 typedef __declspec(align(16)) int32 vec32[4]; | 
|   458 typedef __declspec(align(16)) int8 vec8[16]; |   381 typedef __declspec(align(16)) int8 vec8[16]; | 
|   459 typedef __declspec(align(16)) uint16 uvec16[8]; |   382 typedef __declspec(align(16)) uint16 uvec16[8]; | 
|   460 typedef __declspec(align(16)) uint32 uvec32[4]; |   383 typedef __declspec(align(16)) uint32 uvec32[4]; | 
|   461 typedef __declspec(align(16)) uint8 uvec8[16]; |   384 typedef __declspec(align(16)) uint8 uvec8[16]; | 
|   462 typedef __declspec(align(32)) int16 lvec16[16]; |   385 typedef __declspec(align(32)) int16 lvec16[16]; | 
|   463 typedef __declspec(align(32)) int32 lvec32[8]; |   386 typedef __declspec(align(32)) int32 lvec32[8]; | 
|   464 typedef __declspec(align(32)) int8 lvec8[32]; |   387 typedef __declspec(align(32)) int8 lvec8[32]; | 
|   465 typedef __declspec(align(32)) uint16 ulvec16[16]; |   388 typedef __declspec(align(32)) uint16 ulvec16[16]; | 
|   466 typedef __declspec(align(32)) uint32 ulvec32[8]; |   389 typedef __declspec(align(32)) uint32 ulvec32[8]; | 
|   467 typedef __declspec(align(32)) uint8 ulvec8[32]; |   390 typedef __declspec(align(32)) uint8 ulvec8[32]; | 
|   468  |   391  | 
|   469 #elif defined(__GNUC__) |   392 #elif defined(__GNUC__) | 
|   470 // Caveat GCC 4.2 to 4.7 have a known issue using vectors with const. |   393 // Caveat GCC 4.2 to 4.7 have a known issue using vectors with const. | 
|   471 #define SIMD_ALIGNED(var) var __attribute__((aligned(16))) |   394 #define SIMD_ALIGNED(var) var __attribute__((aligned(16))) | 
 |   395 #define SIMD_ALIGNED32(var) var __attribute__((aligned(64))) | 
|   472 typedef int16 __attribute__((vector_size(16))) vec16; |   396 typedef int16 __attribute__((vector_size(16))) vec16; | 
|   473 typedef int32 __attribute__((vector_size(16))) vec32; |   397 typedef int32 __attribute__((vector_size(16))) vec32; | 
|   474 typedef int8 __attribute__((vector_size(16))) vec8; |   398 typedef int8 __attribute__((vector_size(16))) vec8; | 
|   475 typedef uint16 __attribute__((vector_size(16))) uvec16; |   399 typedef uint16 __attribute__((vector_size(16))) uvec16; | 
|   476 typedef uint32 __attribute__((vector_size(16))) uvec32; |   400 typedef uint32 __attribute__((vector_size(16))) uvec32; | 
|   477 typedef uint8 __attribute__((vector_size(16))) uvec8; |   401 typedef uint8 __attribute__((vector_size(16))) uvec8; | 
 |   402 typedef int16 __attribute__((vector_size(32))) lvec16; | 
 |   403 typedef int32 __attribute__((vector_size(32))) lvec32; | 
 |   404 typedef int8 __attribute__((vector_size(32))) lvec8; | 
 |   405 typedef uint16 __attribute__((vector_size(32))) ulvec16; | 
 |   406 typedef uint32 __attribute__((vector_size(32))) ulvec32; | 
 |   407 typedef uint8 __attribute__((vector_size(32))) ulvec8; | 
|   478 #else |   408 #else | 
|   479 #define SIMD_ALIGNED(var) var |   409 #define SIMD_ALIGNED(var) var | 
 |   410 #define SIMD_ALIGNED32(var) var | 
|   480 typedef int16 vec16[8]; |   411 typedef int16 vec16[8]; | 
|   481 typedef int32 vec32[4]; |   412 typedef int32 vec32[4]; | 
|   482 typedef int8 vec8[16]; |   413 typedef int8 vec8[16]; | 
|   483 typedef uint16 uvec16[8]; |   414 typedef uint16 uvec16[8]; | 
|   484 typedef uint32 uvec32[4]; |   415 typedef uint32 uvec32[4]; | 
|   485 typedef uint8 uvec8[16]; |   416 typedef uint8 uvec8[16]; | 
 |   417 typedef int16 lvec16[16]; | 
 |   418 typedef int32 lvec32[8]; | 
 |   419 typedef int8 lvec8[32]; | 
 |   420 typedef uint16 ulvec16[16]; | 
 |   421 typedef uint32 ulvec32[8]; | 
 |   422 typedef uint8 ulvec8[32]; | 
|   486 #endif |   423 #endif | 
|   487  |   424  | 
|   488 #if defined(__APPLE__) || defined(__x86_64__) || defined(__llvm__) |   425 #if defined(__APPLE__) || defined(__x86_64__) || defined(__llvm__) | 
|   489 #define OMITFP |   426 #define OMITFP | 
|   490 #else |   427 #else | 
|   491 #define OMITFP __attribute__((optimize("omit-frame-pointer"))) |   428 #define OMITFP __attribute__((optimize("omit-frame-pointer"))) | 
|   492 #endif |   429 #endif | 
|   493  |   430  | 
|   494 // NaCL macros for GCC x86 and x64. |   431 // NaCL macros for GCC x86 and x64. | 
|   495  |  | 
|   496 // TODO(nfullagar): When pepper_33 toolchain is distributed, default to |  | 
|   497 // NEW_BINUTILS and remove all BUNDLEALIGN occurances. |  | 
|   498 #if defined(__native_client__) |   432 #if defined(__native_client__) | 
|   499 #define LABELALIGN ".p2align 5\n" |   433 #define LABELALIGN ".p2align 5\n" | 
|   500 #else |   434 #else | 
|   501 #define LABELALIGN ".p2align 2\n" |   435 #define LABELALIGN | 
|   502 #endif |   436 #endif | 
|   503 #if defined(__native_client__) && defined(__x86_64__) |   437 #if defined(__native_client__) && defined(__x86_64__) | 
|   504 #if defined(NEW_BINUTILS) |   438 // r14 is used for MEMOP macros. | 
 |   439 #define NACL_R14 "r14", | 
|   505 #define BUNDLELOCK ".bundle_lock\n" |   440 #define BUNDLELOCK ".bundle_lock\n" | 
|   506 #define BUNDLEUNLOCK ".bundle_unlock\n" |   441 #define BUNDLEUNLOCK ".bundle_unlock\n" | 
|   507 #define BUNDLEALIGN "\n" |  | 
|   508 #else |  | 
|   509 #define BUNDLELOCK "\n" |  | 
|   510 #define BUNDLEUNLOCK "\n" |  | 
|   511 #define BUNDLEALIGN ".p2align 5\n" |  | 
|   512 #endif |  | 
|   513 #define MEMACCESS(base) "%%nacl:(%%r15,%q" #base ")" |   442 #define MEMACCESS(base) "%%nacl:(%%r15,%q" #base ")" | 
|   514 #define MEMACCESS2(offset, base) "%%nacl:" #offset "(%%r15,%q" #base ")" |   443 #define MEMACCESS2(offset, base) "%%nacl:" #offset "(%%r15,%q" #base ")" | 
|   515 #define MEMLEA(offset, base) #offset "(%q" #base ")" |   444 #define MEMLEA(offset, base) #offset "(%q" #base ")" | 
|   516 #define MEMLEA3(offset, index, scale) \ |   445 #define MEMLEA3(offset, index, scale) \ | 
|   517     #offset "(,%q" #index "," #scale ")" |   446     #offset "(,%q" #index "," #scale ")" | 
|   518 #define MEMLEA4(offset, base, index, scale) \ |   447 #define MEMLEA4(offset, base, index, scale) \ | 
|   519     #offset "(%q" #base ",%q" #index "," #scale ")" |   448     #offset "(%q" #base ",%q" #index "," #scale ")" | 
|   520 #define MEMMOVESTRING(s, d) "%%nacl:(%q" #s "),%%nacl:(%q" #d "), %%r15" |   449 #define MEMMOVESTRING(s, d) "%%nacl:(%q" #s "),%%nacl:(%q" #d "), %%r15" | 
|   521 #define MEMSTORESTRING(reg, d) "%%" #reg ",%%nacl:(%q" #d "), %%r15" |   450 #define MEMSTORESTRING(reg, d) "%%" #reg ",%%nacl:(%q" #d "), %%r15" | 
|   522 #define MEMOPREG(opcode, offset, base, index, scale, reg) \ |   451 #define MEMOPREG(opcode, offset, base, index, scale, reg) \ | 
|   523     BUNDLELOCK \ |   452     BUNDLELOCK \ | 
|   524     "lea " #offset "(%q" #base ",%q" #index "," #scale "),%%r14d\n" \ |   453     "lea " #offset "(%q" #base ",%q" #index "," #scale "),%%r14d\n" \ | 
|   525     #opcode " (%%r15,%%r14),%%" #reg "\n" \ |   454     #opcode " (%%r15,%%r14),%%" #reg "\n" \ | 
|   526     BUNDLEUNLOCK |   455     BUNDLEUNLOCK | 
|   527 #define MEMOPMEM(opcode, reg, offset, base, index, scale) \ |   456 #define MEMOPMEM(opcode, reg, offset, base, index, scale) \ | 
|   528     BUNDLELOCK \ |   457     BUNDLELOCK \ | 
|   529     "lea " #offset "(%q" #base ",%q" #index "," #scale "),%%r14d\n" \ |   458     "lea " #offset "(%q" #base ",%q" #index "," #scale "),%%r14d\n" \ | 
|   530     #opcode " %%" #reg ",(%%r15,%%r14)\n" \ |   459     #opcode " %%" #reg ",(%%r15,%%r14)\n" \ | 
|   531     BUNDLEUNLOCK |   460     BUNDLEUNLOCK | 
|   532 #define MEMOPARG(opcode, offset, base, index, scale, arg) \ |   461 #define MEMOPARG(opcode, offset, base, index, scale, arg) \ | 
|   533     BUNDLELOCK \ |   462     BUNDLELOCK \ | 
|   534     "lea " #offset "(%q" #base ",%q" #index "," #scale "),%%r14d\n" \ |   463     "lea " #offset "(%q" #base ",%q" #index "," #scale "),%%r14d\n" \ | 
|   535     #opcode " (%%r15,%%r14),%" #arg "\n" \ |   464     #opcode " (%%r15,%%r14),%" #arg "\n" \ | 
|   536     BUNDLEUNLOCK |   465     BUNDLEUNLOCK | 
 |   466 #define VMEMOPREG(opcode, offset, base, index, scale, reg1, reg2) \ | 
 |   467     BUNDLELOCK \ | 
 |   468     "lea " #offset "(%q" #base ",%q" #index "," #scale "),%%r14d\n" \ | 
 |   469     #opcode " (%%r15,%%r14),%%" #reg1 ",%%" #reg2 "\n" \ | 
 |   470     BUNDLEUNLOCK | 
 |   471 #define VEXTOPMEM(op, sel, reg, offset, base, index, scale) \ | 
 |   472     BUNDLELOCK \ | 
 |   473     "lea " #offset "(%q" #base ",%q" #index "," #scale "),%%r14d\n" \ | 
 |   474     #op " $" #sel ",%%" #reg ",(%%r15,%%r14)\n" \ | 
 |   475     BUNDLEUNLOCK | 
|   537 #else  // defined(__native_client__) && defined(__x86_64__) |   476 #else  // defined(__native_client__) && defined(__x86_64__) | 
|   538 #define BUNDLEALIGN "\n" |   477 #define NACL_R14 | 
 |   478 #define BUNDLEALIGN | 
|   539 #define MEMACCESS(base) "(%" #base ")" |   479 #define MEMACCESS(base) "(%" #base ")" | 
|   540 #define MEMACCESS2(offset, base) #offset "(%" #base ")" |   480 #define MEMACCESS2(offset, base) #offset "(%" #base ")" | 
|   541 #define MEMLEA(offset, base) #offset "(%" #base ")" |   481 #define MEMLEA(offset, base) #offset "(%" #base ")" | 
|   542 #define MEMLEA3(offset, index, scale) \ |   482 #define MEMLEA3(offset, index, scale) \ | 
|   543     #offset "(,%" #index "," #scale ")" |   483     #offset "(,%" #index "," #scale ")" | 
|   544 #define MEMLEA4(offset, base, index, scale) \ |   484 #define MEMLEA4(offset, base, index, scale) \ | 
|   545     #offset "(%" #base ",%" #index "," #scale ")" |   485     #offset "(%" #base ",%" #index "," #scale ")" | 
|   546 #define MEMMOVESTRING(s, d) |   486 #define MEMMOVESTRING(s, d) | 
|   547 #define MEMSTORESTRING(reg, d) |   487 #define MEMSTORESTRING(reg, d) | 
|   548 #define MEMOPREG(opcode, offset, base, index, scale, reg) \ |   488 #define MEMOPREG(opcode, offset, base, index, scale, reg) \ | 
|   549     #opcode " " #offset "(%" #base ",%" #index "," #scale "),%%" #reg "\n" |   489     #opcode " " #offset "(%" #base ",%" #index "," #scale "),%%" #reg "\n" | 
|   550 #define MEMOPMEM(opcode, reg, offset, base, index, scale) \ |   490 #define MEMOPMEM(opcode, reg, offset, base, index, scale) \ | 
|   551     #opcode " %%" #reg ","#offset "(%" #base ",%" #index "," #scale ")\n" |   491     #opcode " %%" #reg ","#offset "(%" #base ",%" #index "," #scale ")\n" | 
|   552 #define MEMOPARG(opcode, offset, base, index, scale, arg) \ |   492 #define MEMOPARG(opcode, offset, base, index, scale, arg) \ | 
|   553     #opcode " " #offset "(%" #base ",%" #index "," #scale "),%" #arg "\n" |   493     #opcode " " #offset "(%" #base ",%" #index "," #scale "),%" #arg "\n" | 
 |   494 #define VMEMOPREG(opcode, offset, base, index, scale, reg1, reg2) \ | 
 |   495     #opcode " " #offset "(%" #base ",%" #index "," #scale "),%%" #reg1 ",%%" \ | 
 |   496     #reg2 "\n" | 
 |   497 #define VEXTOPMEM(op, sel, reg, offset, base, index, scale) \ | 
 |   498     #op " $" #sel ",%%" #reg ","#offset "(%" #base ",%" #index "," #scale ")\n" | 
|   554 #endif  // defined(__native_client__) && defined(__x86_64__) |   499 #endif  // defined(__native_client__) && defined(__x86_64__) | 
|   555  |   500  | 
|   556 #if defined(__arm__) || defined(__aarch64__) |   501 #if defined(__arm__) || defined(__aarch64__) | 
|   557 #undef MEMACCESS |   502 #undef MEMACCESS | 
|   558 #if defined(__native_client__) |   503 #if defined(__native_client__) | 
|   559 #define MEMACCESS(base) ".p2align   3\nbic %" #base ", #0xc0000000\n" |   504 #define MEMACCESS(base) ".p2align 3\nbic %" #base ", #0xc0000000\n" | 
|   560 #else |   505 #else | 
|   561 #define MEMACCESS(base) "\n" |   506 #define MEMACCESS(base) | 
|   562 #endif |   507 #endif | 
|   563 #endif |   508 #endif | 
|   564  |   509  | 
|   565 void I444ToARGBRow_NEON(const uint8* src_y, |   510 void I444ToARGBRow_NEON(const uint8* src_y, | 
|   566                         const uint8* src_u, |   511                         const uint8* src_u, | 
|   567                         const uint8* src_v, |   512                         const uint8* src_v, | 
|   568                         uint8* dst_argb, |   513                         uint8* dst_argb, | 
|   569                         int width); |   514                         int width); | 
|   570 void I422ToARGBRow_NEON(const uint8* src_y, |   515 void I422ToARGBRow_NEON(const uint8* src_y, | 
|   571                         const uint8* src_u, |   516                         const uint8* src_u, | 
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   644 void ARGBToYRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int pix); |   589 void ARGBToYRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int pix); | 
|   645 void ARGBToYRow_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); |   590 void ARGBToYRow_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); | 
|   646 void ARGBToYJRow_AVX2(const uint8* src_argb, uint8* dst_y, int pix); |   591 void ARGBToYJRow_AVX2(const uint8* src_argb, uint8* dst_y, int pix); | 
|   647 void ARGBToYJRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int pix); |   592 void ARGBToYJRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int pix); | 
|   648 void ARGBToYJRow_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); |   593 void ARGBToYJRow_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); | 
|   649 void BGRAToYRow_SSSE3(const uint8* src_bgra, uint8* dst_y, int pix); |   594 void BGRAToYRow_SSSE3(const uint8* src_bgra, uint8* dst_y, int pix); | 
|   650 void ABGRToYRow_SSSE3(const uint8* src_abgr, uint8* dst_y, int pix); |   595 void ABGRToYRow_SSSE3(const uint8* src_abgr, uint8* dst_y, int pix); | 
|   651 void RGBAToYRow_SSSE3(const uint8* src_rgba, uint8* dst_y, int pix); |   596 void RGBAToYRow_SSSE3(const uint8* src_rgba, uint8* dst_y, int pix); | 
|   652 void RGB24ToYRow_SSSE3(const uint8* src_rgb24, uint8* dst_y, int pix); |   597 void RGB24ToYRow_SSSE3(const uint8* src_rgb24, uint8* dst_y, int pix); | 
|   653 void RAWToYRow_SSSE3(const uint8* src_raw, uint8* dst_y, int pix); |   598 void RAWToYRow_SSSE3(const uint8* src_raw, uint8* dst_y, int pix); | 
|   654 void ARGBToYRow_Unaligned_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); |  | 
|   655 void ARGBToYJRow_Unaligned_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); |  | 
|   656 void BGRAToYRow_Unaligned_SSSE3(const uint8* src_bgra, uint8* dst_y, int pix); |  | 
|   657 void ABGRToYRow_Unaligned_SSSE3(const uint8* src_abgr, uint8* dst_y, int pix); |  | 
|   658 void RGBAToYRow_Unaligned_SSSE3(const uint8* src_rgba, uint8* dst_y, int pix); |  | 
|   659 void RGB24ToYRow_Unaligned_SSSE3(const uint8* src_rgb24, uint8* dst_y, int pix); |  | 
|   660 void RAWToYRow_Unaligned_SSSE3(const uint8* src_raw, uint8* dst_y, int pix); |  | 
|   661 void ARGBToYRow_NEON(const uint8* src_argb, uint8* dst_y, int pix); |   599 void ARGBToYRow_NEON(const uint8* src_argb, uint8* dst_y, int pix); | 
|   662 void ARGBToYJRow_NEON(const uint8* src_argb, uint8* dst_y, int pix); |   600 void ARGBToYJRow_NEON(const uint8* src_argb, uint8* dst_y, int pix); | 
|   663 void ARGBToUV444Row_NEON(const uint8* src_argb, uint8* dst_u, uint8* dst_v, |   601 void ARGBToUV444Row_NEON(const uint8* src_argb, uint8* dst_u, uint8* dst_v, | 
|   664                          int pix); |   602                          int pix); | 
|   665 void ARGBToUV422Row_NEON(const uint8* src_argb, uint8* dst_u, uint8* dst_v, |   603 void ARGBToUV422Row_NEON(const uint8* src_argb, uint8* dst_u, uint8* dst_v, | 
|   666                          int pix); |   604                          int pix); | 
|   667 void ARGBToUV411Row_NEON(const uint8* src_argb, uint8* dst_u, uint8* dst_v, |   605 void ARGBToUV411Row_NEON(const uint8* src_argb, uint8* dst_u, uint8* dst_v, | 
|   668                          int pix); |   606                          int pix); | 
|   669 void ARGBToUVRow_NEON(const uint8* src_argb, int src_stride_argb, |   607 void ARGBToUVRow_NEON(const uint8* src_argb, int src_stride_argb, | 
|   670                       uint8* dst_u, uint8* dst_v, int pix); |   608                       uint8* dst_u, uint8* dst_v, int pix); | 
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   729 void ARGBToUVRow_SSSE3(const uint8* src_argb, int src_stride_argb, |   667 void ARGBToUVRow_SSSE3(const uint8* src_argb, int src_stride_argb, | 
|   730                        uint8* dst_u, uint8* dst_v, int width); |   668                        uint8* dst_u, uint8* dst_v, int width); | 
|   731 void ARGBToUVJRow_SSSE3(const uint8* src_argb, int src_stride_argb, |   669 void ARGBToUVJRow_SSSE3(const uint8* src_argb, int src_stride_argb, | 
|   732                         uint8* dst_u, uint8* dst_v, int width); |   670                         uint8* dst_u, uint8* dst_v, int width); | 
|   733 void BGRAToUVRow_SSSE3(const uint8* src_bgra, int src_stride_bgra, |   671 void BGRAToUVRow_SSSE3(const uint8* src_bgra, int src_stride_bgra, | 
|   734                        uint8* dst_u, uint8* dst_v, int width); |   672                        uint8* dst_u, uint8* dst_v, int width); | 
|   735 void ABGRToUVRow_SSSE3(const uint8* src_abgr, int src_stride_abgr, |   673 void ABGRToUVRow_SSSE3(const uint8* src_abgr, int src_stride_abgr, | 
|   736                        uint8* dst_u, uint8* dst_v, int width); |   674                        uint8* dst_u, uint8* dst_v, int width); | 
|   737 void RGBAToUVRow_SSSE3(const uint8* src_rgba, int src_stride_rgba, |   675 void RGBAToUVRow_SSSE3(const uint8* src_rgba, int src_stride_rgba, | 
|   738                        uint8* dst_u, uint8* dst_v, int width); |   676                        uint8* dst_u, uint8* dst_v, int width); | 
|   739 void ARGBToUVRow_Unaligned_SSSE3(const uint8* src_argb, int src_stride_argb, |  | 
|   740                                  uint8* dst_u, uint8* dst_v, int width); |  | 
|   741 void ARGBToUVJRow_Unaligned_SSSE3(const uint8* src_argb, int src_stride_argb, |  | 
|   742                                   uint8* dst_u, uint8* dst_v, int width); |  | 
|   743 void BGRAToUVRow_Unaligned_SSSE3(const uint8* src_bgra, int src_stride_bgra, |  | 
|   744                                  uint8* dst_u, uint8* dst_v, int width); |  | 
|   745 void ABGRToUVRow_Unaligned_SSSE3(const uint8* src_abgr, int src_stride_abgr, |  | 
|   746                                  uint8* dst_u, uint8* dst_v, int width); |  | 
|   747 void RGBAToUVRow_Unaligned_SSSE3(const uint8* src_rgba, int src_stride_rgba, |  | 
|   748                                  uint8* dst_u, uint8* dst_v, int width); |  | 
|   749 void ARGBToUVRow_Any_SSSE3(const uint8* src_argb, int src_stride_argb, |   677 void ARGBToUVRow_Any_SSSE3(const uint8* src_argb, int src_stride_argb, | 
|   750                            uint8* dst_u, uint8* dst_v, int width); |   678                            uint8* dst_u, uint8* dst_v, int width); | 
|   751 void ARGBToUVJRow_Any_SSSE3(const uint8* src_argb, int src_stride_argb, |   679 void ARGBToUVJRow_Any_SSSE3(const uint8* src_argb, int src_stride_argb, | 
|   752                             uint8* dst_u, uint8* dst_v, int width); |   680                             uint8* dst_u, uint8* dst_v, int width); | 
|   753 void BGRAToUVRow_Any_SSSE3(const uint8* src_bgra, int src_stride_bgra, |   681 void BGRAToUVRow_Any_SSSE3(const uint8* src_bgra, int src_stride_bgra, | 
|   754                            uint8* dst_u, uint8* dst_v, int width); |   682                            uint8* dst_u, uint8* dst_v, int width); | 
|   755 void ABGRToUVRow_Any_SSSE3(const uint8* src_abgr, int src_stride_abgr, |   683 void ABGRToUVRow_Any_SSSE3(const uint8* src_abgr, int src_stride_abgr, | 
|   756                            uint8* dst_u, uint8* dst_v, int width); |   684                            uint8* dst_u, uint8* dst_v, int width); | 
|   757 void RGBAToUVRow_Any_SSSE3(const uint8* src_rgba, int src_stride_rgba, |   685 void RGBAToUVRow_Any_SSSE3(const uint8* src_rgba, int src_stride_rgba, | 
|   758                            uint8* dst_u, uint8* dst_v, int width); |   686                            uint8* dst_u, uint8* dst_v, int width); | 
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   800                   uint8* dst_u, uint8* dst_v, int width); |   728                   uint8* dst_u, uint8* dst_v, int width); | 
|   801 void RGB565ToUVRow_C(const uint8* src_rgb565, int src_stride_rgb565, |   729 void RGB565ToUVRow_C(const uint8* src_rgb565, int src_stride_rgb565, | 
|   802                      uint8* dst_u, uint8* dst_v, int width); |   730                      uint8* dst_u, uint8* dst_v, int width); | 
|   803 void ARGB1555ToUVRow_C(const uint8* src_argb1555, int src_stride_argb1555, |   731 void ARGB1555ToUVRow_C(const uint8* src_argb1555, int src_stride_argb1555, | 
|   804                        uint8* dst_u, uint8* dst_v, int width); |   732                        uint8* dst_u, uint8* dst_v, int width); | 
|   805 void ARGB4444ToUVRow_C(const uint8* src_argb4444, int src_stride_argb4444, |   733 void ARGB4444ToUVRow_C(const uint8* src_argb4444, int src_stride_argb4444, | 
|   806                        uint8* dst_u, uint8* dst_v, int width); |   734                        uint8* dst_u, uint8* dst_v, int width); | 
|   807  |   735  | 
|   808 void ARGBToUV444Row_SSSE3(const uint8* src_argb, |   736 void ARGBToUV444Row_SSSE3(const uint8* src_argb, | 
|   809                           uint8* dst_u, uint8* dst_v, int width); |   737                           uint8* dst_u, uint8* dst_v, int width); | 
|   810 void ARGBToUV444Row_Unaligned_SSSE3(const uint8* src_argb, |  | 
|   811                                     uint8* dst_u, uint8* dst_v, int width); |  | 
|   812 void ARGBToUV444Row_Any_SSSE3(const uint8* src_argb, |   738 void ARGBToUV444Row_Any_SSSE3(const uint8* src_argb, | 
|   813                               uint8* dst_u, uint8* dst_v, int width); |   739                               uint8* dst_u, uint8* dst_v, int width); | 
|   814  |   740  | 
|   815 void ARGBToUV422Row_SSSE3(const uint8* src_argb, |   741 void ARGBToUV422Row_SSSE3(const uint8* src_argb, | 
|   816                           uint8* dst_u, uint8* dst_v, int width); |   742                           uint8* dst_u, uint8* dst_v, int width); | 
|   817 void ARGBToUV422Row_Unaligned_SSSE3(const uint8* src_argb, |  | 
|   818                                     uint8* dst_u, uint8* dst_v, int width); |  | 
|   819 void ARGBToUV422Row_Any_SSSE3(const uint8* src_argb, |   743 void ARGBToUV422Row_Any_SSSE3(const uint8* src_argb, | 
|   820                               uint8* dst_u, uint8* dst_v, int width); |   744                               uint8* dst_u, uint8* dst_v, int width); | 
|   821  |   745  | 
|   822 void ARGBToUV444Row_C(const uint8* src_argb, |   746 void ARGBToUV444Row_C(const uint8* src_argb, | 
|   823                       uint8* dst_u, uint8* dst_v, int width); |   747                       uint8* dst_u, uint8* dst_v, int width); | 
|   824 void ARGBToUV422Row_C(const uint8* src_argb, |   748 void ARGBToUV422Row_C(const uint8* src_argb, | 
|   825                       uint8* dst_u, uint8* dst_v, int width); |   749                       uint8* dst_u, uint8* dst_v, int width); | 
|   826 void ARGBToUV411Row_C(const uint8* src_argb, |   750 void ARGBToUV411Row_C(const uint8* src_argb, | 
|   827                       uint8* dst_u, uint8* dst_v, int width); |   751                       uint8* dst_u, uint8* dst_v, int width); | 
 |   752 void ARGBToUVJ422Row_C(const uint8* src_argb, | 
 |   753                        uint8* dst_u, uint8* dst_v, int width); | 
|   828  |   754  | 
|   829 void MirrorRow_AVX2(const uint8* src, uint8* dst, int width); |   755 void MirrorRow_AVX2(const uint8* src, uint8* dst, int width); | 
|   830 void MirrorRow_SSSE3(const uint8* src, uint8* dst, int width); |   756 void MirrorRow_SSSE3(const uint8* src, uint8* dst, int width); | 
|   831 void MirrorRow_SSE2(const uint8* src, uint8* dst, int width); |   757 void MirrorRow_SSE2(const uint8* src, uint8* dst, int width); | 
|   832 void MirrorRow_NEON(const uint8* src, uint8* dst, int width); |   758 void MirrorRow_NEON(const uint8* src, uint8* dst, int width); | 
|   833 void MirrorRow_MIPS_DSPR2(const uint8* src, uint8* dst, int width); |   759 void MirrorRow_MIPS_DSPR2(const uint8* src, uint8* dst, int width); | 
|   834 void MirrorRow_C(const uint8* src, uint8* dst, int width); |   760 void MirrorRow_C(const uint8* src, uint8* dst, int width); | 
 |   761 void MirrorRow_Any_AVX2(const uint8* src, uint8* dst, int width); | 
 |   762 void MirrorRow_Any_SSSE3(const uint8* src, uint8* dst, int width); | 
 |   763 void MirrorRow_Any_SSE2(const uint8* src, uint8* dst, int width); | 
 |   764 void MirrorRow_Any_NEON(const uint8* src, uint8* dst, int width); | 
|   835  |   765  | 
|   836 void MirrorUVRow_SSSE3(const uint8* src_uv, uint8* dst_u, uint8* dst_v, |   766 void MirrorUVRow_SSSE3(const uint8* src_uv, uint8* dst_u, uint8* dst_v, | 
|   837                        int width); |   767                        int width); | 
|   838 void MirrorUVRow_NEON(const uint8* src_uv, uint8* dst_u, uint8* dst_v, |   768 void MirrorUVRow_NEON(const uint8* src_uv, uint8* dst_u, uint8* dst_v, | 
|   839                       int width); |   769                       int width); | 
|   840 void MirrorUVRow_MIPS_DSPR2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, |   770 void MirrorUVRow_MIPS_DSPR2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, | 
|   841                             int width); |   771                             int width); | 
|   842 void MirrorUVRow_C(const uint8* src_uv, uint8* dst_u, uint8* dst_v, |   772 void MirrorUVRow_C(const uint8* src_uv, uint8* dst_u, uint8* dst_v, | 
|   843                    int width); |   773                    int width); | 
|   844  |   774  | 
|   845 void ARGBMirrorRow_AVX2(const uint8* src, uint8* dst, int width); |   775 void ARGBMirrorRow_AVX2(const uint8* src, uint8* dst, int width); | 
|   846 void ARGBMirrorRow_SSSE3(const uint8* src, uint8* dst, int width); |   776 void ARGBMirrorRow_SSE2(const uint8* src, uint8* dst, int width); | 
|   847 void ARGBMirrorRow_NEON(const uint8* src, uint8* dst, int width); |   777 void ARGBMirrorRow_NEON(const uint8* src, uint8* dst, int width); | 
|   848 void ARGBMirrorRow_C(const uint8* src, uint8* dst, int width); |   778 void ARGBMirrorRow_C(const uint8* src, uint8* dst, int width); | 
 |   779 void ARGBMirrorRow_Any_AVX2(const uint8* src, uint8* dst, int width); | 
 |   780 void ARGBMirrorRow_Any_SSE2(const uint8* src, uint8* dst, int width); | 
 |   781 void ARGBMirrorRow_Any_NEON(const uint8* src, uint8* dst, int width); | 
|   849  |   782  | 
|   850 void SplitUVRow_C(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix); |   783 void SplitUVRow_C(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix); | 
|   851 void SplitUVRow_SSE2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix); |   784 void SplitUVRow_SSE2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix); | 
|   852 void SplitUVRow_AVX2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix); |   785 void SplitUVRow_AVX2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix); | 
|   853 void SplitUVRow_NEON(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix); |   786 void SplitUVRow_NEON(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix); | 
|   854 void SplitUVRow_MIPS_DSPR2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, |   787 void SplitUVRow_MIPS_DSPR2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, | 
|   855                            int pix); |   788                            int pix); | 
|   856 void SplitUVRow_Unaligned_SSE2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, |  | 
|   857                                int pix); |  | 
|   858 void SplitUVRow_Unaligned_MIPS_DSPR2(const uint8* src_uv, uint8* dst_u, |  | 
|   859                                      uint8* dst_v, int pix); |  | 
|   860 void SplitUVRow_Any_SSE2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, |   789 void SplitUVRow_Any_SSE2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, | 
|   861                          int pix); |   790                          int pix); | 
|   862 void SplitUVRow_Any_AVX2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, |   791 void SplitUVRow_Any_AVX2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, | 
|   863                          int pix); |   792                          int pix); | 
|   864 void SplitUVRow_Any_NEON(const uint8* src_uv, uint8* dst_u, uint8* dst_v, |   793 void SplitUVRow_Any_NEON(const uint8* src_uv, uint8* dst_u, uint8* dst_v, | 
|   865                          int pix); |   794                          int pix); | 
|   866 void SplitUVRow_Any_MIPS_DSPR2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, |   795 void SplitUVRow_Any_MIPS_DSPR2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, | 
|   867                                int pix); |   796                                int pix); | 
|   868  |   797  | 
|   869 void MergeUVRow_C(const uint8* src_u, const uint8* src_v, uint8* dst_uv, |   798 void MergeUVRow_C(const uint8* src_u, const uint8* src_v, uint8* dst_uv, | 
|   870                   int width); |   799                   int width); | 
|   871 void MergeUVRow_SSE2(const uint8* src_u, const uint8* src_v, uint8* dst_uv, |   800 void MergeUVRow_SSE2(const uint8* src_u, const uint8* src_v, uint8* dst_uv, | 
|   872                      int width); |   801                      int width); | 
|   873 void MergeUVRow_AVX2(const uint8* src_u, const uint8* src_v, uint8* dst_uv, |   802 void MergeUVRow_AVX2(const uint8* src_u, const uint8* src_v, uint8* dst_uv, | 
|   874                      int width); |   803                      int width); | 
|   875 void MergeUVRow_NEON(const uint8* src_u, const uint8* src_v, uint8* dst_uv, |   804 void MergeUVRow_NEON(const uint8* src_u, const uint8* src_v, uint8* dst_uv, | 
|   876                      int width); |   805                      int width); | 
|   877 void MergeUVRow_Unaligned_SSE2(const uint8* src_u, const uint8* src_v, |  | 
|   878                                uint8* dst_uv, int width); |  | 
|   879 void MergeUVRow_Any_SSE2(const uint8* src_u, const uint8* src_v, uint8* dst_uv, |   806 void MergeUVRow_Any_SSE2(const uint8* src_u, const uint8* src_v, uint8* dst_uv, | 
|   880                          int width); |   807                          int width); | 
|   881 void MergeUVRow_Any_AVX2(const uint8* src_u, const uint8* src_v, uint8* dst_uv, |   808 void MergeUVRow_Any_AVX2(const uint8* src_u, const uint8* src_v, uint8* dst_uv, | 
|   882                          int width); |   809                          int width); | 
|   883 void MergeUVRow_Any_NEON(const uint8* src_u, const uint8* src_v, uint8* dst_uv, |   810 void MergeUVRow_Any_NEON(const uint8* src_u, const uint8* src_v, uint8* dst_uv, | 
|   884                          int width); |   811                          int width); | 
|   885  |   812  | 
|   886 void CopyRow_SSE2(const uint8* src, uint8* dst, int count); |   813 void CopyRow_SSE2(const uint8* src, uint8* dst, int count); | 
 |   814 void CopyRow_AVX(const uint8* src, uint8* dst, int count); | 
|   887 void CopyRow_ERMS(const uint8* src, uint8* dst, int count); |   815 void CopyRow_ERMS(const uint8* src, uint8* dst, int count); | 
|   888 void CopyRow_X86(const uint8* src, uint8* dst, int count); |  | 
|   889 void CopyRow_NEON(const uint8* src, uint8* dst, int count); |   816 void CopyRow_NEON(const uint8* src, uint8* dst, int count); | 
|   890 void CopyRow_MIPS(const uint8* src, uint8* dst, int count); |   817 void CopyRow_MIPS(const uint8* src, uint8* dst, int count); | 
|   891 void CopyRow_C(const uint8* src, uint8* dst, int count); |   818 void CopyRow_C(const uint8* src, uint8* dst, int count); | 
 |   819 void CopyRow_Any_SSE2(const uint8* src, uint8* dst, int count); | 
 |   820 void CopyRow_Any_AVX(const uint8* src, uint8* dst, int count); | 
 |   821 void CopyRow_Any_NEON(const uint8* src, uint8* dst, int count); | 
|   892  |   822  | 
|   893 void CopyRow_16_C(const uint16* src, uint16* dst, int count); |   823 void CopyRow_16_C(const uint16* src, uint16* dst, int count); | 
|   894  |   824  | 
|   895 void ARGBCopyAlphaRow_C(const uint8* src_argb, uint8* dst_argb, int width); |   825 void ARGBCopyAlphaRow_C(const uint8* src_argb, uint8* dst_argb, int width); | 
|   896 void ARGBCopyAlphaRow_SSE2(const uint8* src_argb, uint8* dst_argb, int width); |   826 void ARGBCopyAlphaRow_SSE2(const uint8* src_argb, uint8* dst_argb, int width); | 
|   897 void ARGBCopyAlphaRow_AVX2(const uint8* src_argb, uint8* dst_argb, int width); |   827 void ARGBCopyAlphaRow_AVX2(const uint8* src_argb, uint8* dst_argb, int width); | 
|   898  |   828  | 
|   899 void ARGBCopyYToAlphaRow_C(const uint8* src_y, uint8* dst_argb, int width); |   829 void ARGBCopyYToAlphaRow_C(const uint8* src_y, uint8* dst_argb, int width); | 
|   900 void ARGBCopyYToAlphaRow_SSE2(const uint8* src_y, uint8* dst_argb, int width); |   830 void ARGBCopyYToAlphaRow_SSE2(const uint8* src_y, uint8* dst_argb, int width); | 
|   901 void ARGBCopyYToAlphaRow_AVX2(const uint8* src_y, uint8* dst_argb, int width); |   831 void ARGBCopyYToAlphaRow_AVX2(const uint8* src_y, uint8* dst_argb, int width); | 
|   902  |   832  | 
|   903 void SetRow_X86(uint8* dst, uint32 v32, int count); |   833 void SetRow_C(uint8* dst, uint8 v8, int count); | 
|   904 void ARGBSetRows_X86(uint8* dst, uint32 v32, int width, |   834 void SetRow_X86(uint8* dst, uint8 v8, int count); | 
|   905                      int dst_stride, int height); |   835 void SetRow_ERMS(uint8* dst, uint8 v8, int count); | 
|   906 void SetRow_NEON(uint8* dst, uint32 v32, int count); |   836 void SetRow_NEON(uint8* dst, uint8 v8, int count); | 
|   907 void ARGBSetRows_NEON(uint8* dst, uint32 v32, int width, |   837 void SetRow_Any_X86(uint8* dst, uint8 v8, int count); | 
|   908                       int dst_stride, int height); |   838 void SetRow_Any_NEON(uint8* dst, uint8 v8, int count); | 
|   909 void SetRow_C(uint8* dst, uint32 v32, int count); |   839  | 
|   910 void ARGBSetRows_C(uint8* dst, uint32 v32, int width, int dst_stride, |   840 void ARGBSetRow_C(uint8* dst_argb, uint32 v32, int count); | 
|   911                    int height); |   841 void ARGBSetRow_X86(uint8* dst_argb, uint32 v32, int count); | 
 |   842 void ARGBSetRow_NEON(uint8* dst_argb, uint32 v32, int count); | 
 |   843 void ARGBSetRow_Any_NEON(uint8* dst_argb, uint32 v32, int count); | 
|   912  |   844  | 
|   913 // ARGBShufflers for BGRAToARGB etc. |   845 // ARGBShufflers for BGRAToARGB etc. | 
|   914 void ARGBShuffleRow_C(const uint8* src_argb, uint8* dst_argb, |   846 void ARGBShuffleRow_C(const uint8* src_argb, uint8* dst_argb, | 
|   915                       const uint8* shuffler, int pix); |   847                       const uint8* shuffler, int pix); | 
|   916 void ARGBShuffleRow_SSE2(const uint8* src_argb, uint8* dst_argb, |   848 void ARGBShuffleRow_SSE2(const uint8* src_argb, uint8* dst_argb, | 
|   917                          const uint8* shuffler, int pix); |   849                          const uint8* shuffler, int pix); | 
|   918 void ARGBShuffleRow_SSSE3(const uint8* src_argb, uint8* dst_argb, |   850 void ARGBShuffleRow_SSSE3(const uint8* src_argb, uint8* dst_argb, | 
|   919                           const uint8* shuffler, int pix); |   851                           const uint8* shuffler, int pix); | 
|   920 void ARGBShuffleRow_AVX2(const uint8* src_argb, uint8* dst_argb, |   852 void ARGBShuffleRow_AVX2(const uint8* src_argb, uint8* dst_argb, | 
|   921                          const uint8* shuffler, int pix); |   853                          const uint8* shuffler, int pix); | 
|   922 void ARGBShuffleRow_NEON(const uint8* src_argb, uint8* dst_argb, |   854 void ARGBShuffleRow_NEON(const uint8* src_argb, uint8* dst_argb, | 
|   923                          const uint8* shuffler, int pix); |   855                          const uint8* shuffler, int pix); | 
|   924 void ARGBShuffleRow_Unaligned_SSSE3(const uint8* src_argb, uint8* dst_argb, |  | 
|   925                                     const uint8* shuffler, int pix); |  | 
|   926 void ARGBShuffleRow_Any_SSE2(const uint8* src_argb, uint8* dst_argb, |   856 void ARGBShuffleRow_Any_SSE2(const uint8* src_argb, uint8* dst_argb, | 
|   927                              const uint8* shuffler, int pix); |   857                              const uint8* shuffler, int pix); | 
|   928 void ARGBShuffleRow_Any_SSSE3(const uint8* src_argb, uint8* dst_argb, |   858 void ARGBShuffleRow_Any_SSSE3(const uint8* src_argb, uint8* dst_argb, | 
|   929                               const uint8* shuffler, int pix); |   859                               const uint8* shuffler, int pix); | 
|   930 void ARGBShuffleRow_Any_AVX2(const uint8* src_argb, uint8* dst_argb, |   860 void ARGBShuffleRow_Any_AVX2(const uint8* src_argb, uint8* dst_argb, | 
|   931                              const uint8* shuffler, int pix); |   861                              const uint8* shuffler, int pix); | 
|   932 void ARGBShuffleRow_Any_NEON(const uint8* src_argb, uint8* dst_argb, |   862 void ARGBShuffleRow_Any_NEON(const uint8* src_argb, uint8* dst_argb, | 
|   933                              const uint8* shuffler, int pix); |   863                              const uint8* shuffler, int pix); | 
|   934  |   864  | 
|   935 void RGB24ToARGBRow_SSSE3(const uint8* src_rgb24, uint8* dst_argb, int pix); |   865 void RGB24ToARGBRow_SSSE3(const uint8* src_rgb24, uint8* dst_argb, int pix); | 
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   968                                 int pix); |   898                                 int pix); | 
|   969 void ARGB4444ToARGBRow_Any_NEON(const uint8* src_argb4444, uint8* dst_argb, |   899 void ARGB4444ToARGBRow_Any_NEON(const uint8* src_argb4444, uint8* dst_argb, | 
|   970                                 int pix); |   900                                 int pix); | 
|   971  |   901  | 
|   972 void ARGBToRGB24Row_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); |   902 void ARGBToRGB24Row_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); | 
|   973 void ARGBToRAWRow_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); |   903 void ARGBToRAWRow_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); | 
|   974 void ARGBToRGB565Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); |   904 void ARGBToRGB565Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); | 
|   975 void ARGBToARGB1555Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); |   905 void ARGBToARGB1555Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); | 
|   976 void ARGBToARGB4444Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); |   906 void ARGBToARGB4444Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); | 
|   977  |   907  | 
 |   908 void ARGBToRGB565Row_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix); | 
 |   909 void ARGBToARGB1555Row_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix); | 
 |   910 void ARGBToARGB4444Row_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix); | 
 |   911  | 
|   978 void ARGBToRGB24Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); |   912 void ARGBToRGB24Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); | 
|   979 void ARGBToRAWRow_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); |   913 void ARGBToRAWRow_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); | 
|   980 void ARGBToRGB565Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); |   914 void ARGBToRGB565Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); | 
|   981 void ARGBToARGB1555Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); |   915 void ARGBToARGB1555Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); | 
|   982 void ARGBToARGB4444Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); |   916 void ARGBToARGB4444Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); | 
|   983  |   917  | 
|   984 void ARGBToRGBARow_C(const uint8* src_argb, uint8* dst_rgb, int pix); |   918 void ARGBToRGBARow_C(const uint8* src_argb, uint8* dst_rgb, int pix); | 
|   985 void ARGBToRGB24Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); |   919 void ARGBToRGB24Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); | 
|   986 void ARGBToRAWRow_C(const uint8* src_argb, uint8* dst_rgb, int pix); |   920 void ARGBToRAWRow_C(const uint8* src_argb, uint8* dst_rgb, int pix); | 
|   987 void ARGBToRGB565Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); |   921 void ARGBToRGB565Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); | 
|   988 void ARGBToARGB1555Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); |   922 void ARGBToARGB1555Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); | 
|   989 void ARGBToARGB4444Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); |   923 void ARGBToARGB4444Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); | 
|   990  |   924  | 
 |   925 void ARGBToRGB565DitherRow_C(const uint8* src_argb, uint8* dst_rgb, | 
 |   926                              const uint8* dither8x8, int pix); | 
 |   927  | 
|   991 void I400ToARGBRow_SSE2(const uint8* src_y, uint8* dst_argb, int pix); |   928 void I400ToARGBRow_SSE2(const uint8* src_y, uint8* dst_argb, int pix); | 
|   992 void I400ToARGBRow_Unaligned_SSE2(const uint8* src_y, uint8* dst_argb, int pix); |  | 
|   993 void I400ToARGBRow_NEON(const uint8* src_y, uint8* dst_argb, int pix); |   929 void I400ToARGBRow_NEON(const uint8* src_y, uint8* dst_argb, int pix); | 
|   994 void I400ToARGBRow_C(const uint8* src_y, uint8* dst_argb, int pix); |   930 void I400ToARGBRow_C(const uint8* src_y, uint8* dst_argb, int pix); | 
|   995 void I400ToARGBRow_Any_SSE2(const uint8* src_y, uint8* dst_argb, int pix); |   931 void I400ToARGBRow_Any_SSE2(const uint8* src_y, uint8* dst_argb, int pix); | 
|   996 void I400ToARGBRow_Any_NEON(const uint8* src_y, uint8* dst_argb, int pix); |   932 void I400ToARGBRow_Any_NEON(const uint8* src_y, uint8* dst_argb, int pix); | 
|   997  |   933  | 
|   998 void I444ToARGBRow_C(const uint8* src_y, |   934 void I444ToARGBRow_C(const uint8* src_y, | 
|   999                      const uint8* src_u, |   935                      const uint8* src_u, | 
|  1000                      const uint8* src_v, |   936                      const uint8* src_v, | 
|  1001                      uint8* dst_argb, |   937                      uint8* dst_argb, | 
|  1002                      int width); |   938                      int width); | 
| (...skipping 22 matching lines...) Expand all  Loading... | 
|  1025 void NV21ToARGBRow_C(const uint8* src_y, |   961 void NV21ToARGBRow_C(const uint8* src_y, | 
|  1026                      const uint8* src_vu, |   962                      const uint8* src_vu, | 
|  1027                      uint8* dst_argb, |   963                      uint8* dst_argb, | 
|  1028                      int width); |   964                      int width); | 
|  1029 void YUY2ToARGBRow_C(const uint8* src_yuy2, |   965 void YUY2ToARGBRow_C(const uint8* src_yuy2, | 
|  1030                      uint8* dst_argb, |   966                      uint8* dst_argb, | 
|  1031                      int width); |   967                      int width); | 
|  1032 void UYVYToARGBRow_C(const uint8* src_uyvy, |   968 void UYVYToARGBRow_C(const uint8* src_uyvy, | 
|  1033                      uint8* dst_argb, |   969                      uint8* dst_argb, | 
|  1034                      int width); |   970                      int width); | 
 |   971 void J422ToARGBRow_C(const uint8* src_y, | 
 |   972                      const uint8* src_u, | 
 |   973                      const uint8* src_v, | 
 |   974                      uint8* dst_argb, | 
 |   975                      int width); | 
|  1035 void I422ToBGRARow_C(const uint8* src_y, |   976 void I422ToBGRARow_C(const uint8* src_y, | 
|  1036                      const uint8* src_u, |   977                      const uint8* src_u, | 
|  1037                      const uint8* src_v, |   978                      const uint8* src_v, | 
|  1038                      uint8* dst_bgra, |   979                      uint8* dst_bgra, | 
|  1039                      int width); |   980                      int width); | 
|  1040 void I422ToABGRRow_C(const uint8* src_y, |   981 void I422ToABGRRow_C(const uint8* src_y, | 
|  1041                      const uint8* src_u, |   982                      const uint8* src_u, | 
|  1042                      const uint8* src_v, |   983                      const uint8* src_v, | 
|  1043                      uint8* dst_abgr, |   984                      uint8* dst_abgr, | 
|  1044                      int width); |   985                      int width); | 
| (...skipping 20 matching lines...) Expand all  Loading... | 
|  1065 void I422ToARGB1555Row_C(const uint8* src_y, |  1006 void I422ToARGB1555Row_C(const uint8* src_y, | 
|  1066                          const uint8* src_u, |  1007                          const uint8* src_u, | 
|  1067                          const uint8* src_v, |  1008                          const uint8* src_v, | 
|  1068                          uint8* dst_argb4444, |  1009                          uint8* dst_argb4444, | 
|  1069                          int width); |  1010                          int width); | 
|  1070 void I422ToRGB565Row_C(const uint8* src_y, |  1011 void I422ToRGB565Row_C(const uint8* src_y, | 
|  1071                        const uint8* src_u, |  1012                        const uint8* src_u, | 
|  1072                        const uint8* src_v, |  1013                        const uint8* src_v, | 
|  1073                        uint8* dst_rgb565, |  1014                        uint8* dst_rgb565, | 
|  1074                        int width); |  1015                        int width); | 
|  1075 void YToARGBRow_C(const uint8* src_y, |  | 
|  1076                   uint8* dst_argb, |  | 
|  1077                   int width); |  | 
|  1078 void I422ToARGBRow_AVX2(const uint8* src_y, |  1016 void I422ToARGBRow_AVX2(const uint8* src_y, | 
|  1079                         const uint8* src_u, |  1017                         const uint8* src_u, | 
|  1080                         const uint8* src_v, |  1018                         const uint8* src_v, | 
|  1081                         uint8* dst_argb, |  1019                         uint8* dst_argb, | 
|  1082                         int width); |  1020                         int width); | 
 |  1021 void I422ToBGRARow_AVX2(const uint8* src_y, | 
 |  1022                         const uint8* src_u, | 
 |  1023                         const uint8* src_v, | 
 |  1024                         uint8* dst_argb, | 
 |  1025                         int width); | 
 |  1026 void I422ToRGBARow_AVX2(const uint8* src_y, | 
 |  1027                         const uint8* src_u, | 
 |  1028                         const uint8* src_v, | 
 |  1029                         uint8* dst_argb, | 
 |  1030                         int width); | 
 |  1031 void I422ToABGRRow_AVX2(const uint8* src_y, | 
 |  1032                         const uint8* src_u, | 
 |  1033                         const uint8* src_v, | 
 |  1034                         uint8* dst_argb, | 
 |  1035                         int width); | 
|  1083 void I444ToARGBRow_SSSE3(const uint8* src_y, |  1036 void I444ToARGBRow_SSSE3(const uint8* src_y, | 
|  1084                          const uint8* src_u, |  1037                          const uint8* src_u, | 
|  1085                          const uint8* src_v, |  1038                          const uint8* src_v, | 
|  1086                          uint8* dst_argb, |  1039                          uint8* dst_argb, | 
|  1087                          int width); |  1040                          int width); | 
|  1088 void I422ToARGBRow_SSSE3(const uint8* src_y, |  1041 void I422ToARGBRow_SSSE3(const uint8* src_y, | 
|  1089                          const uint8* src_u, |  1042                          const uint8* src_u, | 
|  1090                          const uint8* src_v, |  1043                          const uint8* src_v, | 
|  1091                          uint8* dst_argb, |  1044                          uint8* dst_argb, | 
|  1092                          int width); |  1045                          int width); | 
|  1093 void I411ToARGBRow_SSSE3(const uint8* src_y, |  1046 void I411ToARGBRow_SSSE3(const uint8* src_y, | 
|  1094                          const uint8* src_u, |  1047                          const uint8* src_u, | 
|  1095                          const uint8* src_v, |  1048                          const uint8* src_v, | 
|  1096                          uint8* dst_argb, |  1049                          uint8* dst_argb, | 
|  1097                          int width); |  1050                          int width); | 
|  1098 void NV12ToARGBRow_SSSE3(const uint8* src_y, |  1051 void NV12ToARGBRow_SSSE3(const uint8* src_y, | 
|  1099                          const uint8* src_uv, |  1052                          const uint8* src_uv, | 
|  1100                          uint8* dst_argb, |  1053                          uint8* dst_argb, | 
|  1101                          int width); |  1054                          int width); | 
|  1102 void NV21ToARGBRow_SSSE3(const uint8* src_y, |  1055 void NV21ToARGBRow_SSSE3(const uint8* src_y, | 
|  1103                          const uint8* src_vu, |  1056                          const uint8* src_vu, | 
|  1104                          uint8* dst_argb, |  1057                          uint8* dst_argb, | 
|  1105                          int width); |  1058                          int width); | 
 |  1059 void NV12ToARGBRow_AVX2(const uint8* src_y, | 
 |  1060                         const uint8* src_uv, | 
 |  1061                         uint8* dst_argb, | 
 |  1062                         int width); | 
 |  1063 void NV21ToARGBRow_AVX2(const uint8* src_y, | 
 |  1064                         const uint8* src_vu, | 
 |  1065                         uint8* dst_argb, | 
 |  1066                         int width); | 
|  1106 void NV12ToRGB565Row_SSSE3(const uint8* src_y, |  1067 void NV12ToRGB565Row_SSSE3(const uint8* src_y, | 
|  1107                            const uint8* src_uv, |  1068                            const uint8* src_uv, | 
|  1108                            uint8* dst_argb, |  1069                            uint8* dst_argb, | 
|  1109                            int width); |  1070                            int width); | 
|  1110 void NV21ToRGB565Row_SSSE3(const uint8* src_y, |  1071 void NV21ToRGB565Row_SSSE3(const uint8* src_y, | 
|  1111                            const uint8* src_vu, |  1072                            const uint8* src_vu, | 
|  1112                            uint8* dst_argb, |  1073                            uint8* dst_argb, | 
|  1113                            int width); |  1074                            int width); | 
 |  1075 void NV12ToRGB565Row_AVX2(const uint8* src_y, | 
 |  1076                           const uint8* src_uv, | 
 |  1077                           uint8* dst_argb, | 
 |  1078                           int width); | 
 |  1079 void NV21ToRGB565Row_AVX2(const uint8* src_y, | 
 |  1080                           const uint8* src_vu, | 
 |  1081                           uint8* dst_argb, | 
 |  1082                           int width); | 
|  1114 void YUY2ToARGBRow_SSSE3(const uint8* src_yuy2, |  1083 void YUY2ToARGBRow_SSSE3(const uint8* src_yuy2, | 
|  1115                          uint8* dst_argb, |  1084                          uint8* dst_argb, | 
|  1116                          int width); |  1085                          int width); | 
|  1117 void UYVYToARGBRow_SSSE3(const uint8* src_uyvy, |  1086 void UYVYToARGBRow_SSSE3(const uint8* src_uyvy, | 
|  1118                          uint8* dst_argb, |  1087                          uint8* dst_argb, | 
|  1119                          int width); |  1088                          int width); | 
 |  1089 void YUY2ToARGBRow_AVX2(const uint8* src_yuy2, | 
 |  1090                         uint8* dst_argb, | 
 |  1091                         int width); | 
 |  1092 void UYVYToARGBRow_AVX2(const uint8* src_uyvy, | 
 |  1093                         uint8* dst_argb, | 
 |  1094                         int width); | 
 |  1095 void J422ToARGBRow_SSSE3(const uint8* src_y, | 
 |  1096                          const uint8* src_u, | 
 |  1097                          const uint8* src_v, | 
 |  1098                          uint8* dst_argb, | 
 |  1099                          int width); | 
|  1120 void I422ToBGRARow_SSSE3(const uint8* src_y, |  1100 void I422ToBGRARow_SSSE3(const uint8* src_y, | 
|  1121                          const uint8* src_u, |  1101                          const uint8* src_u, | 
|  1122                          const uint8* src_v, |  1102                          const uint8* src_v, | 
|  1123                          uint8* dst_bgra, |  1103                          uint8* dst_bgra, | 
|  1124                          int width); |  1104                          int width); | 
|  1125 void I422ToABGRRow_SSSE3(const uint8* src_y, |  1105 void I422ToABGRRow_SSSE3(const uint8* src_y, | 
|  1126                          const uint8* src_u, |  1106                          const uint8* src_u, | 
|  1127                          const uint8* src_v, |  1107                          const uint8* src_v, | 
|  1128                          uint8* dst_abgr, |  1108                          uint8* dst_abgr, | 
|  1129                          int width); |  1109                          int width); | 
|  1130 void I422ToRGBARow_SSSE3(const uint8* src_y, |  1110 void I422ToRGBARow_SSSE3(const uint8* src_y, | 
|  1131                          const uint8* src_u, |  1111                          const uint8* src_u, | 
|  1132                          const uint8* src_v, |  1112                          const uint8* src_v, | 
|  1133                          uint8* dst_rgba, |  1113                          uint8* dst_rgba, | 
|  1134                          int width); |  1114                          int width); | 
|  1135 void I422ToARGB4444Row_SSSE3(const uint8* src_y, |  1115 void I422ToARGB4444Row_SSSE3(const uint8* src_y, | 
|  1136                              const uint8* src_u, |  1116                              const uint8* src_u, | 
|  1137                              const uint8* src_v, |  1117                              const uint8* src_v, | 
|  1138                              uint8* dst_argb, |  1118                              uint8* dst_argb, | 
|  1139                              int width); |  1119                              int width); | 
 |  1120 void I422ToARGB4444Row_AVX2(const uint8* src_y, | 
 |  1121                             const uint8* src_u, | 
 |  1122                             const uint8* src_v, | 
 |  1123                             uint8* dst_argb, | 
 |  1124                             int width); | 
|  1140 void I422ToARGB1555Row_SSSE3(const uint8* src_y, |  1125 void I422ToARGB1555Row_SSSE3(const uint8* src_y, | 
|  1141                              const uint8* src_u, |  1126                              const uint8* src_u, | 
|  1142                              const uint8* src_v, |  1127                              const uint8* src_v, | 
|  1143                              uint8* dst_argb, |  1128                              uint8* dst_argb, | 
|  1144                              int width); |  1129                              int width); | 
 |  1130 void I422ToARGB1555Row_AVX2(const uint8* src_y, | 
 |  1131                             const uint8* src_u, | 
 |  1132                             const uint8* src_v, | 
 |  1133                             uint8* dst_argb, | 
 |  1134                             int width); | 
|  1145 void I422ToRGB565Row_SSSE3(const uint8* src_y, |  1135 void I422ToRGB565Row_SSSE3(const uint8* src_y, | 
|  1146                            const uint8* src_u, |  1136                            const uint8* src_u, | 
|  1147                            const uint8* src_v, |  1137                            const uint8* src_v, | 
|  1148                            uint8* dst_argb, |  1138                            uint8* dst_argb, | 
|  1149                            int width); |  1139                            int width); | 
|  1150 // RGB24/RAW are unaligned. |  1140 void I422ToRGB565Row_AVX2(const uint8* src_y, | 
 |  1141                           const uint8* src_u, | 
 |  1142                           const uint8* src_v, | 
 |  1143                           uint8* dst_argb, | 
 |  1144                           int width); | 
|  1151 void I422ToRGB24Row_SSSE3(const uint8* src_y, |  1145 void I422ToRGB24Row_SSSE3(const uint8* src_y, | 
|  1152                           const uint8* src_u, |  1146                           const uint8* src_u, | 
|  1153                           const uint8* src_v, |  1147                           const uint8* src_v, | 
|  1154                           uint8* dst_rgb24, |  1148                           uint8* dst_rgb24, | 
|  1155                           int width); |  1149                           int width); | 
|  1156 void I422ToRAWRow_SSSE3(const uint8* src_y, |  1150 void I422ToRAWRow_SSSE3(const uint8* src_y, | 
|  1157                         const uint8* src_u, |  1151                         const uint8* src_u, | 
|  1158                         const uint8* src_v, |  1152                         const uint8* src_v, | 
|  1159                         uint8* dst_raw, |  1153                         uint8* dst_raw, | 
|  1160                         int width); |  1154                         int width); | 
|  1161  |  | 
|  1162 void I444ToARGBRow_Unaligned_SSSE3(const uint8* src_y, |  | 
|  1163                                    const uint8* src_u, |  | 
|  1164                                    const uint8* src_v, |  | 
|  1165                                    uint8* dst_argb, |  | 
|  1166                                    int width); |  | 
|  1167 void I422ToARGBRow_Unaligned_SSSE3(const uint8* src_y, |  | 
|  1168                                    const uint8* src_u, |  | 
|  1169                                    const uint8* src_v, |  | 
|  1170                                    uint8* dst_argb, |  | 
|  1171                                    int width); |  | 
|  1172 void I411ToARGBRow_Unaligned_SSSE3(const uint8* src_y, |  | 
|  1173                                    const uint8* src_u, |  | 
|  1174                                    const uint8* src_v, |  | 
|  1175                                    uint8* dst_argb, |  | 
|  1176                                    int width); |  | 
|  1177 void NV12ToARGBRow_Unaligned_SSSE3(const uint8* src_y, |  | 
|  1178                                    const uint8* src_uv, |  | 
|  1179                                    uint8* dst_argb, |  | 
|  1180                                    int width); |  | 
|  1181 void NV21ToARGBRow_Unaligned_SSSE3(const uint8* src_y, |  | 
|  1182                                    const uint8* src_vu, |  | 
|  1183                                    uint8* dst_argb, |  | 
|  1184                                    int width); |  | 
|  1185 void YUY2ToARGBRow_Unaligned_SSSE3(const uint8* src_yuy2, |  | 
|  1186                                    uint8* dst_argb, |  | 
|  1187                                    int width); |  | 
|  1188 void UYVYToARGBRow_Unaligned_SSSE3(const uint8* src_uyvy, |  | 
|  1189                                    uint8* dst_argb, |  | 
|  1190                                    int width); |  | 
|  1191 void I422ToBGRARow_Unaligned_SSSE3(const uint8* src_y, |  | 
|  1192                                    const uint8* src_u, |  | 
|  1193                                    const uint8* src_v, |  | 
|  1194                                    uint8* dst_bgra, |  | 
|  1195                                    int width); |  | 
|  1196 void I422ToABGRRow_Unaligned_SSSE3(const uint8* src_y, |  | 
|  1197                                    const uint8* src_u, |  | 
|  1198                                    const uint8* src_v, |  | 
|  1199                                    uint8* dst_abgr, |  | 
|  1200                                    int width); |  | 
|  1201 void I422ToRGBARow_Unaligned_SSSE3(const uint8* src_y, |  | 
|  1202                                    const uint8* src_u, |  | 
|  1203                                    const uint8* src_v, |  | 
|  1204                                    uint8* dst_rgba, |  | 
|  1205                                    int width); |  | 
|  1206 void I422ToARGBRow_Any_AVX2(const uint8* src_y, |  1155 void I422ToARGBRow_Any_AVX2(const uint8* src_y, | 
|  1207                             const uint8* src_u, |  1156                             const uint8* src_u, | 
|  1208                             const uint8* src_v, |  1157                             const uint8* src_v, | 
|  1209                             uint8* dst_argb, |  1158                             uint8* dst_argb, | 
|  1210                             int width); |  1159                             int width); | 
 |  1160 void I422ToBGRARow_Any_AVX2(const uint8* src_y, | 
 |  1161                             const uint8* src_u, | 
 |  1162                             const uint8* src_v, | 
 |  1163                             uint8* dst_argb, | 
 |  1164                             int width); | 
 |  1165 void I422ToRGBARow_Any_AVX2(const uint8* src_y, | 
 |  1166                             const uint8* src_u, | 
 |  1167                             const uint8* src_v, | 
 |  1168                             uint8* dst_argb, | 
 |  1169                             int width); | 
 |  1170 void I422ToABGRRow_Any_AVX2(const uint8* src_y, | 
 |  1171                             const uint8* src_u, | 
 |  1172                             const uint8* src_v, | 
 |  1173                             uint8* dst_argb, | 
 |  1174                             int width); | 
|  1211 void I444ToARGBRow_Any_SSSE3(const uint8* src_y, |  1175 void I444ToARGBRow_Any_SSSE3(const uint8* src_y, | 
|  1212                              const uint8* src_u, |  1176                              const uint8* src_u, | 
|  1213                              const uint8* src_v, |  1177                              const uint8* src_v, | 
|  1214                              uint8* dst_argb, |  1178                              uint8* dst_argb, | 
|  1215                              int width); |  1179                              int width); | 
|  1216 void I422ToARGBRow_Any_SSSE3(const uint8* src_y, |  1180 void I422ToARGBRow_Any_SSSE3(const uint8* src_y, | 
|  1217                              const uint8* src_u, |  1181                              const uint8* src_u, | 
|  1218                              const uint8* src_v, |  1182                              const uint8* src_v, | 
|  1219                              uint8* dst_argb, |  1183                              uint8* dst_argb, | 
|  1220                              int width); |  1184                              int width); | 
|  1221 void I411ToARGBRow_Any_SSSE3(const uint8* src_y, |  1185 void I411ToARGBRow_Any_SSSE3(const uint8* src_y, | 
|  1222                              const uint8* src_u, |  1186                              const uint8* src_u, | 
|  1223                              const uint8* src_v, |  1187                              const uint8* src_v, | 
|  1224                              uint8* dst_argb, |  1188                              uint8* dst_argb, | 
|  1225                              int width); |  1189                              int width); | 
|  1226 void NV12ToARGBRow_Any_SSSE3(const uint8* src_y, |  1190 void NV12ToARGBRow_Any_SSSE3(const uint8* src_y, | 
|  1227                              const uint8* src_uv, |  1191                              const uint8* src_uv, | 
|  1228                              uint8* dst_argb, |  1192                              uint8* dst_argb, | 
|  1229                              int width); |  1193                              int width); | 
|  1230 void NV21ToARGBRow_Any_SSSE3(const uint8* src_y, |  1194 void NV21ToARGBRow_Any_SSSE3(const uint8* src_y, | 
|  1231                              const uint8* src_vu, |  1195                              const uint8* src_vu, | 
|  1232                              uint8* dst_argb, |  1196                              uint8* dst_argb, | 
|  1233                              int width); |  1197                              int width); | 
 |  1198 void NV12ToARGBRow_Any_AVX2(const uint8* src_y, | 
 |  1199                             const uint8* src_uv, | 
 |  1200                             uint8* dst_argb, | 
 |  1201                             int width); | 
 |  1202 void NV21ToARGBRow_Any_AVX2(const uint8* src_y, | 
 |  1203                             const uint8* src_vu, | 
 |  1204                             uint8* dst_argb, | 
 |  1205                             int width); | 
|  1234 void NV12ToRGB565Row_Any_SSSE3(const uint8* src_y, |  1206 void NV12ToRGB565Row_Any_SSSE3(const uint8* src_y, | 
|  1235                                const uint8* src_uv, |  1207                                const uint8* src_uv, | 
|  1236                                uint8* dst_argb, |  1208                                uint8* dst_argb, | 
|  1237                                int width); |  1209                                int width); | 
|  1238 void NV21ToRGB565Row_Any_SSSE3(const uint8* src_y, |  1210 void NV21ToRGB565Row_Any_SSSE3(const uint8* src_y, | 
|  1239                                const uint8* src_vu, |  1211                                const uint8* src_vu, | 
|  1240                                uint8* dst_argb, |  1212                                uint8* dst_argb, | 
|  1241                                int width); |  1213                                int width); | 
 |  1214 void NV12ToRGB565Row_Any_AVX2(const uint8* src_y, | 
 |  1215                               const uint8* src_uv, | 
 |  1216                               uint8* dst_argb, | 
 |  1217                               int width); | 
 |  1218 void NV21ToRGB565Row_Any_AVX2(const uint8* src_y, | 
 |  1219                               const uint8* src_vu, | 
 |  1220                               uint8* dst_argb, | 
 |  1221                               int width); | 
|  1242 void YUY2ToARGBRow_Any_SSSE3(const uint8* src_yuy2, |  1222 void YUY2ToARGBRow_Any_SSSE3(const uint8* src_yuy2, | 
|  1243                              uint8* dst_argb, |  1223                              uint8* dst_argb, | 
|  1244                              int width); |  1224                              int width); | 
|  1245 void UYVYToARGBRow_Any_SSSE3(const uint8* src_uyvy, |  1225 void UYVYToARGBRow_Any_SSSE3(const uint8* src_uyvy, | 
|  1246                              uint8* dst_argb, |  1226                              uint8* dst_argb, | 
|  1247                              int width); |  1227                              int width); | 
 |  1228 void YUY2ToARGBRow_Any_AVX2(const uint8* src_yuy2, | 
 |  1229                             uint8* dst_argb, | 
 |  1230                             int width); | 
 |  1231 void UYVYToARGBRow_Any_AVX2(const uint8* src_uyvy, | 
 |  1232                             uint8* dst_argb, | 
 |  1233                             int width); | 
|  1248 void I422ToBGRARow_Any_SSSE3(const uint8* src_y, |  1234 void I422ToBGRARow_Any_SSSE3(const uint8* src_y, | 
|  1249                              const uint8* src_u, |  1235                              const uint8* src_u, | 
|  1250                              const uint8* src_v, |  1236                              const uint8* src_v, | 
|  1251                              uint8* dst_bgra, |  1237                              uint8* dst_bgra, | 
|  1252                              int width); |  1238                              int width); | 
|  1253 void I422ToABGRRow_Any_SSSE3(const uint8* src_y, |  1239 void I422ToABGRRow_Any_SSSE3(const uint8* src_y, | 
|  1254                              const uint8* src_u, |  1240                              const uint8* src_u, | 
|  1255                              const uint8* src_v, |  1241                              const uint8* src_v, | 
|  1256                              uint8* dst_abgr, |  1242                              uint8* dst_abgr, | 
|  1257                              int width); |  1243                              int width); | 
|  1258 void I422ToRGBARow_Any_SSSE3(const uint8* src_y, |  1244 void I422ToRGBARow_Any_SSSE3(const uint8* src_y, | 
|  1259                              const uint8* src_u, |  1245                              const uint8* src_u, | 
|  1260                              const uint8* src_v, |  1246                              const uint8* src_v, | 
|  1261                              uint8* dst_rgba, |  1247                              uint8* dst_rgba, | 
|  1262                              int width); |  1248                              int width); | 
|  1263 void I422ToARGB4444Row_Any_SSSE3(const uint8* src_y, |  1249 void I422ToARGB4444Row_Any_SSSE3(const uint8* src_y, | 
|  1264                                  const uint8* src_u, |  1250                                  const uint8* src_u, | 
|  1265                                  const uint8* src_v, |  1251                                  const uint8* src_v, | 
|  1266                                  uint8* dst_rgba, |  1252                                  uint8* dst_rgba, | 
|  1267                                  int width); |  1253                                  int width); | 
 |  1254 void I422ToARGB4444Row_Any_AVX2(const uint8* src_y, | 
 |  1255                                 const uint8* src_u, | 
 |  1256                                 const uint8* src_v, | 
 |  1257                                 uint8* dst_rgba, | 
 |  1258                                 int width); | 
|  1268 void I422ToARGB1555Row_Any_SSSE3(const uint8* src_y, |  1259 void I422ToARGB1555Row_Any_SSSE3(const uint8* src_y, | 
|  1269                                  const uint8* src_u, |  1260                                  const uint8* src_u, | 
|  1270                                  const uint8* src_v, |  1261                                  const uint8* src_v, | 
|  1271                                  uint8* dst_rgba, |  1262                                  uint8* dst_rgba, | 
|  1272                                  int width); |  1263                                  int width); | 
 |  1264 void I422ToARGB1555Row_Any_AVX2(const uint8* src_y, | 
 |  1265                                 const uint8* src_u, | 
 |  1266                                 const uint8* src_v, | 
 |  1267                                 uint8* dst_rgba, | 
 |  1268                                 int width); | 
|  1273 void I422ToRGB565Row_Any_SSSE3(const uint8* src_y, |  1269 void I422ToRGB565Row_Any_SSSE3(const uint8* src_y, | 
|  1274                                const uint8* src_u, |  1270                                const uint8* src_u, | 
|  1275                                const uint8* src_v, |  1271                                const uint8* src_v, | 
|  1276                                uint8* dst_rgba, |  1272                                uint8* dst_rgba, | 
|  1277                                int width); |  1273                                int width); | 
|  1278 // RGB24/RAW are unaligned. |  1274 void I422ToRGB565Row_Any_AVX2(const uint8* src_y, | 
 |  1275                               const uint8* src_u, | 
 |  1276                               const uint8* src_v, | 
 |  1277                               uint8* dst_rgba, | 
 |  1278                               int width); | 
|  1279 void I422ToRGB24Row_Any_SSSE3(const uint8* src_y, |  1279 void I422ToRGB24Row_Any_SSSE3(const uint8* src_y, | 
|  1280                               const uint8* src_u, |  1280                               const uint8* src_u, | 
|  1281                               const uint8* src_v, |  1281                               const uint8* src_v, | 
|  1282                               uint8* dst_argb, |  1282                               uint8* dst_argb, | 
|  1283                               int width); |  1283                               int width); | 
|  1284 void I422ToRAWRow_Any_SSSE3(const uint8* src_y, |  1284 void I422ToRAWRow_Any_SSSE3(const uint8* src_y, | 
|  1285                             const uint8* src_u, |  1285                             const uint8* src_u, | 
|  1286                             const uint8* src_v, |  1286                             const uint8* src_v, | 
|  1287                             uint8* dst_argb, |  1287                             uint8* dst_argb, | 
|  1288                             int width); |  1288                             int width); | 
 |  1289  | 
 |  1290 void YToARGBRow_C(const uint8* src_y, | 
 |  1291                   uint8* dst_argb, | 
 |  1292                   int width); | 
|  1289 void YToARGBRow_SSE2(const uint8* src_y, |  1293 void YToARGBRow_SSE2(const uint8* src_y, | 
|  1290                      uint8* dst_argb, |  1294                      uint8* dst_argb, | 
|  1291                      int width); |  1295                      int width); | 
 |  1296 void YToARGBRow_AVX2(const uint8* src_y, | 
 |  1297                      uint8* dst_argb, | 
 |  1298                      int width); | 
|  1292 void YToARGBRow_NEON(const uint8* src_y, |  1299 void YToARGBRow_NEON(const uint8* src_y, | 
|  1293                      uint8* dst_argb, |  1300                      uint8* dst_argb, | 
|  1294                      int width); |  1301                      int width); | 
|  1295 void YToARGBRow_Any_SSE2(const uint8* src_y, |  1302 void YToARGBRow_Any_SSE2(const uint8* src_y, | 
|  1296                          uint8* dst_argb, |  1303                          uint8* dst_argb, | 
|  1297                          int width); |  1304                          int width); | 
 |  1305 void YToARGBRow_Any_AVX2(const uint8* src_y, | 
 |  1306                          uint8* dst_argb, | 
 |  1307                          int width); | 
|  1298 void YToARGBRow_Any_NEON(const uint8* src_y, |  1308 void YToARGBRow_Any_NEON(const uint8* src_y, | 
|  1299                          uint8* dst_argb, |  1309                          uint8* dst_argb, | 
|  1300                          int width); |  1310                          int width); | 
|  1301  |  1311  | 
|  1302 // ARGB preattenuated alpha blend. |  1312 // ARGB preattenuated alpha blend. | 
|  1303 void ARGBBlendRow_SSSE3(const uint8* src_argb, const uint8* src_argb1, |  1313 void ARGBBlendRow_SSSE3(const uint8* src_argb, const uint8* src_argb1, | 
|  1304                         uint8* dst_argb, int width); |  1314                         uint8* dst_argb, int width); | 
|  1305 void ARGBBlendRow_SSE2(const uint8* src_argb, const uint8* src_argb1, |  1315 void ARGBBlendRow_SSE2(const uint8* src_argb, const uint8* src_argb1, | 
|  1306                        uint8* dst_argb, int width); |  1316                        uint8* dst_argb, int width); | 
|  1307 void ARGBBlendRow_NEON(const uint8* src_argb, const uint8* src_argb1, |  1317 void ARGBBlendRow_NEON(const uint8* src_argb, const uint8* src_argb1, | 
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1358                           uint8* dst_argb, int width); |  1368                           uint8* dst_argb, int width); | 
|  1359 void ARGBSubtractRow_Any_NEON(const uint8* src_argb, const uint8* src_argb1, |  1369 void ARGBSubtractRow_Any_NEON(const uint8* src_argb, const uint8* src_argb1, | 
|  1360                               uint8* dst_argb, int width); |  1370                               uint8* dst_argb, int width); | 
|  1361  |  1371  | 
|  1362 void ARGBToRGB24Row_Any_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); |  1372 void ARGBToRGB24Row_Any_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); | 
|  1363 void ARGBToRAWRow_Any_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); |  1373 void ARGBToRAWRow_Any_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); | 
|  1364 void ARGBToRGB565Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); |  1374 void ARGBToRGB565Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); | 
|  1365 void ARGBToARGB1555Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); |  1375 void ARGBToARGB1555Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); | 
|  1366 void ARGBToARGB4444Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); |  1376 void ARGBToARGB4444Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); | 
|  1367  |  1377  | 
 |  1378 void ARGBToRGB565Row_Any_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix); | 
 |  1379 void ARGBToARGB1555Row_Any_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix); | 
 |  1380 void ARGBToARGB4444Row_Any_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix); | 
 |  1381  | 
|  1368 void ARGBToRGB24Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); |  1382 void ARGBToRGB24Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); | 
|  1369 void ARGBToRAWRow_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); |  1383 void ARGBToRAWRow_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); | 
|  1370 void ARGBToRGB565Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); |  1384 void ARGBToRGB565Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); | 
|  1371 void ARGBToARGB1555Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); |  1385 void ARGBToARGB1555Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); | 
|  1372 void ARGBToARGB4444Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); |  1386 void ARGBToARGB4444Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); | 
|  1373  |  1387  | 
|  1374 void I444ToARGBRow_Any_NEON(const uint8* src_y, |  1388 void I444ToARGBRow_Any_NEON(const uint8* src_y, | 
|  1375                             const uint8* src_u, |  1389                             const uint8* src_u, | 
|  1376                             const uint8* src_v, |  1390                             const uint8* src_v, | 
|  1377                             uint8* dst_argb, |  1391                             uint8* dst_argb, | 
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1482 void YUY2ToYRow_AVX2(const uint8* src_yuy2, uint8* dst_y, int pix); |  1496 void YUY2ToYRow_AVX2(const uint8* src_yuy2, uint8* dst_y, int pix); | 
|  1483 void YUY2ToUVRow_AVX2(const uint8* src_yuy2, int stride_yuy2, |  1497 void YUY2ToUVRow_AVX2(const uint8* src_yuy2, int stride_yuy2, | 
|  1484                       uint8* dst_u, uint8* dst_v, int pix); |  1498                       uint8* dst_u, uint8* dst_v, int pix); | 
|  1485 void YUY2ToUV422Row_AVX2(const uint8* src_yuy2, |  1499 void YUY2ToUV422Row_AVX2(const uint8* src_yuy2, | 
|  1486                          uint8* dst_u, uint8* dst_v, int pix); |  1500                          uint8* dst_u, uint8* dst_v, int pix); | 
|  1487 void YUY2ToYRow_SSE2(const uint8* src_yuy2, uint8* dst_y, int pix); |  1501 void YUY2ToYRow_SSE2(const uint8* src_yuy2, uint8* dst_y, int pix); | 
|  1488 void YUY2ToUVRow_SSE2(const uint8* src_yuy2, int stride_yuy2, |  1502 void YUY2ToUVRow_SSE2(const uint8* src_yuy2, int stride_yuy2, | 
|  1489                       uint8* dst_u, uint8* dst_v, int pix); |  1503                       uint8* dst_u, uint8* dst_v, int pix); | 
|  1490 void YUY2ToUV422Row_SSE2(const uint8* src_yuy2, |  1504 void YUY2ToUV422Row_SSE2(const uint8* src_yuy2, | 
|  1491                          uint8* dst_u, uint8* dst_v, int pix); |  1505                          uint8* dst_u, uint8* dst_v, int pix); | 
|  1492 void YUY2ToYRow_Unaligned_SSE2(const uint8* src_yuy2, |  | 
|  1493                                uint8* dst_y, int pix); |  | 
|  1494 void YUY2ToUVRow_Unaligned_SSE2(const uint8* src_yuy2, int stride_yuy2, |  | 
|  1495                                 uint8* dst_u, uint8* dst_v, int pix); |  | 
|  1496 void YUY2ToUV422Row_Unaligned_SSE2(const uint8* src_yuy2, |  | 
|  1497                                    uint8* dst_u, uint8* dst_v, int pix); |  | 
|  1498 void YUY2ToYRow_NEON(const uint8* src_yuy2, uint8* dst_y, int pix); |  1506 void YUY2ToYRow_NEON(const uint8* src_yuy2, uint8* dst_y, int pix); | 
|  1499 void YUY2ToUVRow_NEON(const uint8* src_yuy2, int stride_yuy2, |  1507 void YUY2ToUVRow_NEON(const uint8* src_yuy2, int stride_yuy2, | 
|  1500                       uint8* dst_u, uint8* dst_v, int pix); |  1508                       uint8* dst_u, uint8* dst_v, int pix); | 
|  1501 void YUY2ToUV422Row_NEON(const uint8* src_yuy2, |  1509 void YUY2ToUV422Row_NEON(const uint8* src_yuy2, | 
|  1502                          uint8* dst_u, uint8* dst_v, int pix); |  1510                          uint8* dst_u, uint8* dst_v, int pix); | 
|  1503 void YUY2ToYRow_C(const uint8* src_yuy2, uint8* dst_y, int pix); |  1511 void YUY2ToYRow_C(const uint8* src_yuy2, uint8* dst_y, int pix); | 
|  1504 void YUY2ToUVRow_C(const uint8* src_yuy2, int stride_yuy2, |  1512 void YUY2ToUVRow_C(const uint8* src_yuy2, int stride_yuy2, | 
|  1505                    uint8* dst_u, uint8* dst_v, int pix); |  1513                    uint8* dst_u, uint8* dst_v, int pix); | 
|  1506 void YUY2ToUV422Row_C(const uint8* src_yuy2, |  1514 void YUY2ToUV422Row_C(const uint8* src_yuy2, | 
|  1507                       uint8* dst_u, uint8* dst_v, int pix); |  1515                       uint8* dst_u, uint8* dst_v, int pix); | 
| (...skipping 15 matching lines...) Expand all  Loading... | 
|  1523 void UYVYToYRow_AVX2(const uint8* src_uyvy, uint8* dst_y, int pix); |  1531 void UYVYToYRow_AVX2(const uint8* src_uyvy, uint8* dst_y, int pix); | 
|  1524 void UYVYToUVRow_AVX2(const uint8* src_uyvy, int stride_uyvy, |  1532 void UYVYToUVRow_AVX2(const uint8* src_uyvy, int stride_uyvy, | 
|  1525                       uint8* dst_u, uint8* dst_v, int pix); |  1533                       uint8* dst_u, uint8* dst_v, int pix); | 
|  1526 void UYVYToUV422Row_AVX2(const uint8* src_uyvy, |  1534 void UYVYToUV422Row_AVX2(const uint8* src_uyvy, | 
|  1527                          uint8* dst_u, uint8* dst_v, int pix); |  1535                          uint8* dst_u, uint8* dst_v, int pix); | 
|  1528 void UYVYToYRow_SSE2(const uint8* src_uyvy, uint8* dst_y, int pix); |  1536 void UYVYToYRow_SSE2(const uint8* src_uyvy, uint8* dst_y, int pix); | 
|  1529 void UYVYToUVRow_SSE2(const uint8* src_uyvy, int stride_uyvy, |  1537 void UYVYToUVRow_SSE2(const uint8* src_uyvy, int stride_uyvy, | 
|  1530                       uint8* dst_u, uint8* dst_v, int pix); |  1538                       uint8* dst_u, uint8* dst_v, int pix); | 
|  1531 void UYVYToUV422Row_SSE2(const uint8* src_uyvy, |  1539 void UYVYToUV422Row_SSE2(const uint8* src_uyvy, | 
|  1532                          uint8* dst_u, uint8* dst_v, int pix); |  1540                          uint8* dst_u, uint8* dst_v, int pix); | 
|  1533 void UYVYToYRow_Unaligned_SSE2(const uint8* src_uyvy, |  | 
|  1534                                uint8* dst_y, int pix); |  | 
|  1535 void UYVYToUVRow_Unaligned_SSE2(const uint8* src_uyvy, int stride_uyvy, |  | 
|  1536                                 uint8* dst_u, uint8* dst_v, int pix); |  | 
|  1537 void UYVYToUV422Row_Unaligned_SSE2(const uint8* src_uyvy, |  | 
|  1538                                    uint8* dst_u, uint8* dst_v, int pix); |  | 
|  1539 void UYVYToYRow_AVX2(const uint8* src_uyvy, uint8* dst_y, int pix); |  1541 void UYVYToYRow_AVX2(const uint8* src_uyvy, uint8* dst_y, int pix); | 
|  1540 void UYVYToUVRow_AVX2(const uint8* src_uyvy, int stride_uyvy, |  1542 void UYVYToUVRow_AVX2(const uint8* src_uyvy, int stride_uyvy, | 
|  1541                       uint8* dst_u, uint8* dst_v, int pix); |  1543                       uint8* dst_u, uint8* dst_v, int pix); | 
|  1542 void UYVYToUV422Row_AVX2(const uint8* src_uyvy, |  1544 void UYVYToUV422Row_AVX2(const uint8* src_uyvy, | 
|  1543                          uint8* dst_u, uint8* dst_v, int pix); |  1545                          uint8* dst_u, uint8* dst_v, int pix); | 
|  1544 void UYVYToYRow_NEON(const uint8* src_uyvy, uint8* dst_y, int pix); |  1546 void UYVYToYRow_NEON(const uint8* src_uyvy, uint8* dst_y, int pix); | 
|  1545 void UYVYToUVRow_NEON(const uint8* src_uyvy, int stride_uyvy, |  1547 void UYVYToUVRow_NEON(const uint8* src_uyvy, int stride_uyvy, | 
|  1546                       uint8* dst_u, uint8* dst_v, int pix); |  1548                       uint8* dst_u, uint8* dst_v, int pix); | 
|  1547 void UYVYToUV422Row_NEON(const uint8* src_uyvy, |  1549 void UYVYToUV422Row_NEON(const uint8* src_uyvy, | 
|  1548                          uint8* dst_u, uint8* dst_v, int pix); |  1550                          uint8* dst_u, uint8* dst_v, int pix); | 
| (...skipping 12 matching lines...) Expand all  Loading... | 
|  1561 void UYVYToUVRow_Any_SSE2(const uint8* src_uyvy, int stride_uyvy, |  1563 void UYVYToUVRow_Any_SSE2(const uint8* src_uyvy, int stride_uyvy, | 
|  1562                           uint8* dst_u, uint8* dst_v, int pix); |  1564                           uint8* dst_u, uint8* dst_v, int pix); | 
|  1563 void UYVYToUV422Row_Any_SSE2(const uint8* src_uyvy, |  1565 void UYVYToUV422Row_Any_SSE2(const uint8* src_uyvy, | 
|  1564                              uint8* dst_u, uint8* dst_v, int pix); |  1566                              uint8* dst_u, uint8* dst_v, int pix); | 
|  1565 void UYVYToYRow_Any_NEON(const uint8* src_uyvy, uint8* dst_y, int pix); |  1567 void UYVYToYRow_Any_NEON(const uint8* src_uyvy, uint8* dst_y, int pix); | 
|  1566 void UYVYToUVRow_Any_NEON(const uint8* src_uyvy, int stride_uyvy, |  1568 void UYVYToUVRow_Any_NEON(const uint8* src_uyvy, int stride_uyvy, | 
|  1567                           uint8* dst_u, uint8* dst_v, int pix); |  1569                           uint8* dst_u, uint8* dst_v, int pix); | 
|  1568 void UYVYToUV422Row_Any_NEON(const uint8* src_uyvy, |  1570 void UYVYToUV422Row_Any_NEON(const uint8* src_uyvy, | 
|  1569                              uint8* dst_u, uint8* dst_v, int pix); |  1571                              uint8* dst_u, uint8* dst_v, int pix); | 
|  1570  |  1572  | 
|  1571 void HalfRow_C(const uint8* src_uv, int src_uv_stride, |  | 
|  1572                uint8* dst_uv, int pix); |  | 
|  1573 void HalfRow_SSE2(const uint8* src_uv, int src_uv_stride, |  | 
|  1574                   uint8* dst_uv, int pix); |  | 
|  1575 void HalfRow_AVX2(const uint8* src_uv, int src_uv_stride, |  | 
|  1576                   uint8* dst_uv, int pix); |  | 
|  1577 void HalfRow_NEON(const uint8* src_uv, int src_uv_stride, |  | 
|  1578                   uint8* dst_uv, int pix); |  | 
|  1579  |  | 
|  1580 void HalfRow_16_C(const uint16* src_uv, int src_uv_stride, |  | 
|  1581                   uint16* dst_uv, int pix); |  | 
|  1582  |  | 
|  1583 void ARGBToBayerRow_C(const uint8* src_argb, uint8* dst_bayer, |  | 
|  1584                       uint32 selector, int pix); |  | 
|  1585 void ARGBToBayerRow_SSSE3(const uint8* src_argb, uint8* dst_bayer, |  | 
|  1586                           uint32 selector, int pix); |  | 
|  1587 void ARGBToBayerRow_NEON(const uint8* src_argb, uint8* dst_bayer, |  | 
|  1588                          uint32 selector, int pix); |  | 
|  1589 void ARGBToBayerRow_Any_SSSE3(const uint8* src_argb, uint8* dst_bayer, |  | 
|  1590                               uint32 selector, int pix); |  | 
|  1591 void ARGBToBayerRow_Any_NEON(const uint8* src_argb, uint8* dst_bayer, |  | 
|  1592                              uint32 selector, int pix); |  | 
|  1593 void ARGBToBayerGGRow_C(const uint8* src_argb, uint8* dst_bayer, |  1573 void ARGBToBayerGGRow_C(const uint8* src_argb, uint8* dst_bayer, | 
|  1594                         uint32 /* selector */, int pix); |  1574                         uint32 /* selector */, int pix); | 
|  1595 void ARGBToBayerGGRow_SSE2(const uint8* src_argb, uint8* dst_bayer, |  1575 void ARGBToBayerGGRow_SSE2(const uint8* src_argb, uint8* dst_bayer, | 
|  1596                            uint32 /* selector */, int pix); |  1576                            uint32 /* selector */, int pix); | 
|  1597 void ARGBToBayerGGRow_NEON(const uint8* src_argb, uint8* dst_bayer, |  1577 void ARGBToBayerGGRow_NEON(const uint8* src_argb, uint8* dst_bayer, | 
|  1598                            uint32 /* selector */, int pix); |  1578                            uint32 /* selector */, int pix); | 
|  1599 void ARGBToBayerGGRow_Any_SSE2(const uint8* src_argb, uint8* dst_bayer, |  1579 void ARGBToBayerGGRow_Any_SSE2(const uint8* src_argb, uint8* dst_bayer, | 
|  1600                                uint32 /* selector */, int pix); |  1580                                uint32 /* selector */, int pix); | 
|  1601 void ARGBToBayerGGRow_Any_NEON(const uint8* src_argb, uint8* dst_bayer, |  1581 void ARGBToBayerGGRow_Any_NEON(const uint8* src_argb, uint8* dst_bayer, | 
|  1602                                uint32 /* selector */, int pix); |  1582                                uint32 /* selector */, int pix); | 
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1729                          int source_y_fraction); |  1709                          int source_y_fraction); | 
|  1730 void InterpolateRow_SSSE3(uint8* dst_ptr, const uint8* src_ptr, |  1710 void InterpolateRow_SSSE3(uint8* dst_ptr, const uint8* src_ptr, | 
|  1731                           ptrdiff_t src_stride_ptr, int width, |  1711                           ptrdiff_t src_stride_ptr, int width, | 
|  1732                           int source_y_fraction); |  1712                           int source_y_fraction); | 
|  1733 void InterpolateRow_AVX2(uint8* dst_ptr, const uint8* src_ptr, |  1713 void InterpolateRow_AVX2(uint8* dst_ptr, const uint8* src_ptr, | 
|  1734                          ptrdiff_t src_stride_ptr, int width, |  1714                          ptrdiff_t src_stride_ptr, int width, | 
|  1735                          int source_y_fraction); |  1715                          int source_y_fraction); | 
|  1736 void InterpolateRow_NEON(uint8* dst_ptr, const uint8* src_ptr, |  1716 void InterpolateRow_NEON(uint8* dst_ptr, const uint8* src_ptr, | 
|  1737                          ptrdiff_t src_stride_ptr, int width, |  1717                          ptrdiff_t src_stride_ptr, int width, | 
|  1738                          int source_y_fraction); |  1718                          int source_y_fraction); | 
|  1739 void InterpolateRows_MIPS_DSPR2(uint8* dst_ptr, const uint8* src_ptr, |  1719 void InterpolateRow_MIPS_DSPR2(uint8* dst_ptr, const uint8* src_ptr, | 
|  1740                                 ptrdiff_t src_stride_ptr, int width, |  1720                                ptrdiff_t src_stride_ptr, int width, | 
|  1741                                 int source_y_fraction); |  1721                                int source_y_fraction); | 
|  1742 void InterpolateRow_Unaligned_SSE2(uint8* dst_ptr, const uint8* src_ptr, |  | 
|  1743                                    ptrdiff_t src_stride_ptr, int width, |  | 
|  1744                                    int source_y_fraction); |  | 
|  1745 void InterpolateRow_Unaligned_SSSE3(uint8* dst_ptr, const uint8* src_ptr, |  | 
|  1746                                     ptrdiff_t src_stride_ptr, int width, |  | 
|  1747                                     int source_y_fraction); |  | 
|  1748 void InterpolateRow_Any_NEON(uint8* dst_ptr, const uint8* src_ptr, |  1722 void InterpolateRow_Any_NEON(uint8* dst_ptr, const uint8* src_ptr, | 
|  1749                              ptrdiff_t src_stride_ptr, int width, |  1723                              ptrdiff_t src_stride_ptr, int width, | 
|  1750                              int source_y_fraction); |  1724                              int source_y_fraction); | 
|  1751 void InterpolateRow_Any_SSE2(uint8* dst_ptr, const uint8* src_ptr, |  1725 void InterpolateRow_Any_SSE2(uint8* dst_ptr, const uint8* src_ptr, | 
|  1752                              ptrdiff_t src_stride_ptr, int width, |  1726                              ptrdiff_t src_stride_ptr, int width, | 
|  1753                              int source_y_fraction); |  1727                              int source_y_fraction); | 
|  1754 void InterpolateRow_Any_SSSE3(uint8* dst_ptr, const uint8* src_ptr, |  1728 void InterpolateRow_Any_SSSE3(uint8* dst_ptr, const uint8* src_ptr, | 
|  1755                               ptrdiff_t src_stride_ptr, int width, |  1729                               ptrdiff_t src_stride_ptr, int width, | 
|  1756                               int source_y_fraction); |  1730                               int source_y_fraction); | 
|  1757 void InterpolateRow_Any_AVX2(uint8* dst_ptr, const uint8* src_ptr, |  1731 void InterpolateRow_Any_AVX2(uint8* dst_ptr, const uint8* src_ptr, | 
|  1758                              ptrdiff_t src_stride_ptr, int width, |  1732                              ptrdiff_t src_stride_ptr, int width, | 
|  1759                              int source_y_fraction); |  1733                              int source_y_fraction); | 
|  1760 void InterpolateRows_Any_MIPS_DSPR2(uint8* dst_ptr, const uint8* src_ptr, |  1734 void InterpolateRow_Any_MIPS_DSPR2(uint8* dst_ptr, const uint8* src_ptr, | 
|  1761                                     ptrdiff_t src_stride_ptr, int width, |  1735                                    ptrdiff_t src_stride_ptr, int width, | 
|  1762                                     int source_y_fraction); |  1736                                    int source_y_fraction); | 
|  1763  |  1737  | 
|  1764 void InterpolateRow_16_C(uint16* dst_ptr, const uint16* src_ptr, |  1738 void InterpolateRow_16_C(uint16* dst_ptr, const uint16* src_ptr, | 
|  1765                          ptrdiff_t src_stride_ptr, |  1739                          ptrdiff_t src_stride_ptr, | 
|  1766                          int width, int source_y_fraction); |  1740                          int width, int source_y_fraction); | 
|  1767  |  1741  | 
|  1768 // Sobel images. |  1742 // Sobel images. | 
|  1769 void SobelXRow_C(const uint8* src_y0, const uint8* src_y1, const uint8* src_y2, |  1743 void SobelXRow_C(const uint8* src_y0, const uint8* src_y1, const uint8* src_y2, | 
|  1770                  uint8* dst_sobelx, int width); |  1744                  uint8* dst_sobelx, int width); | 
|  1771 void SobelXRow_SSE2(const uint8* src_y0, const uint8* src_y1, |  1745 void SobelXRow_SSE2(const uint8* src_y0, const uint8* src_y1, | 
|  1772                     const uint8* src_y2, uint8* dst_sobelx, int width); |  1746                     const uint8* src_y2, uint8* dst_sobelx, int width); | 
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1812 void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb, |  1786 void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb, | 
|  1813                                  int width, |  1787                                  int width, | 
|  1814                                  const uint8* luma, uint32 lumacoeff); |  1788                                  const uint8* luma, uint32 lumacoeff); | 
|  1815  |  1789  | 
|  1816 #ifdef __cplusplus |  1790 #ifdef __cplusplus | 
|  1817 }  // extern "C" |  1791 }  // extern "C" | 
|  1818 }  // namespace libyuv |  1792 }  // namespace libyuv | 
|  1819 #endif |  1793 #endif | 
|  1820  |  1794  | 
|  1821 #endif  // INCLUDE_LIBYUV_ROW_H_  NOLINT |  1795 #endif  // INCLUDE_LIBYUV_ROW_H_  NOLINT | 
| OLD | NEW |