133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp/* 233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp * Copyright 2011 The LibYuv Project Authors. All rights reserved. 333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp * 433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp * Use of this source code is governed by a BSD-style license 533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp * that can be found in the LICENSE file in the root of the source 633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp * tree. An additional intellectual property rights grant can be found 733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp * in the file PATENTS. All contributing project authors may 833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp * be found in the AUTHORS file in the root of the source tree. 933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp */ 1033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 1133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#ifndef INCLUDE_LIBYUV_ROW_H_ // NOLINT 1233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define INCLUDE_LIBYUV_ROW_H_ 1333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 1433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#include "libyuv/basic_types.h" 1533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 1633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#ifdef __cplusplus 1733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampnamespace libyuv { 1833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampextern "C" { 1933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#endif 2033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 2133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp// TODO(fbarchard): Remove kMaxStride 2233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define kMaxStride (2880 * 4) 2333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define IS_ALIGNED(p, a) (!((uintptr_t)(p) & ((a) - 1))) 2433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 2533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#if defined(__CLR_VER) || defined(COVERAGE_ENABLED) || \ 2633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp defined(TARGET_IPHONE_SIMULATOR) 2733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define YUV_DISABLE_ASM 2833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#endif 2933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp// True if compiling for SSSE3 as a requirement. 3033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#if defined(__SSSE3__) || (defined(_M_IX86_FP) && (_M_IX86_FP >= 3)) 3133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define LIBYUV_SSSE3_ONLY 3233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#endif 3333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 3433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp// The following are available on all x86 platforms: 3533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#if !defined(YUV_DISABLE_ASM) && \ 3633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp (defined(_M_IX86) || defined(__x86_64__) || defined(__i386__)) 3733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp// Conversions. 3833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ABGRTOARGBROW_SSSE3 3933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ABGRTOUVROW_SSSE3 4033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ABGRTOYROW_SSSE3 4133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ARGB1555TOARGBROW_SSE2 4233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ARGB4444TOARGBROW_SSE2 4333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ARGBTOARGB1555ROW_SSE2 4433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ARGBTOARGB4444ROW_SSE2 4533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ARGBTORAWROW_SSSE3 4633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ARGBTORGB24ROW_SSSE3 4733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ARGBTORGB565ROW_SSE2 4833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ARGBTORGBAROW_SSSE3 4933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ARGBTOUVROW_SSSE3 5033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ARGBTOYROW_SSSE3 5133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_BGRATOARGBROW_SSSE3 5233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_BGRATOUVROW_SSSE3 5333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_BGRATOYROW_SSSE3 5433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_COPYROW_SSE2 5533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_COPYROW_X86 5633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_I400TOARGBROW_SSE2 5733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_I411TOARGBROW_SSSE3 5833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_I422TOABGRROW_SSSE3 5933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_I422TOARGBROW_SSSE3 6033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_I422TOBGRAROW_SSSE3 6133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_I444TOARGBROW_SSSE3 6233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_MIRRORROW_SSSE3 6333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_MIRRORROWUV_SSSE3 6433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_NV12TOARGBROW_SSSE3 6533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_NV21TOARGBROW_SSSE3 6633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_RAWTOARGBROW_SSSE3 6733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_RGB24TOARGBROW_SSSE3 6833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_RGB565TOARGBROW_SSE2 6933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_SETROW_X86 7033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_SPLITUV_SSE2 7133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_UYVYTOUV422ROW_SSE2 7233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_UYVYTOUVROW_SSE2 7333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_UYVYTOYROW_SSE2 7433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_YTOARGBROW_SSE2 7533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_YUY2TOUV422ROW_SSE2 7633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_YUY2TOUVROW_SSE2 7733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_YUY2TOYROW_SSE2 7833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 7933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp// Effects 8033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ARGBAFFINEROW_SSE2 8133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ARGBATTENUATEROW_SSSE3 8233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ARGBBLENDROW_SSSE3 8333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ARGBCOLORMATRIXROW_SSSE3 8433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ARGBGRAYROW_SSSE3 8533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ARGBINTERPOLATEROW_SSSE3 8633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ARGBMIRRORROW_SSSE3 8733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ARGBQUANTIZEROW_SSE2 8833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ARGBSEPIAROW_SSSE3 8933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ARGBSHADE_SSE2 9033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ARGBUNATTENUATEROW_SSE2 9133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_COMPUTECUMULATIVESUMROW_SSE2 9233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_CUMULATIVESUMTOAVERAGE_SSE2 9333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#endif 9433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 9533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp// The following are Windows only: 9633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#if !defined(YUV_DISABLE_ASM) && defined(_M_IX86) 9733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ABGRTOARGBROW_SSSE3 9833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ARGBCOLORTABLEROW_X86 9933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_I422TORGBAROW_SSSE3 10033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_RGBATOARGBROW_SSSE3 10133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_RGBATOUVROW_SSSE3 10233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_RGBATOYROW_SSSE3 10333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#endif 10433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 10533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp// The following are disabled when SSSE3 is available: 10633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#if !defined(YUV_DISABLE_ASM) && \ 10733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp (defined(_M_IX86) || defined(__x86_64__) || defined(__i386__)) && \ 10833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp !defined(LIBYUV_SSSE3_ONLY) 10933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ARGBATTENUATE_SSE2 11033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ARGBBLENDROW_SSE2 11133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_MIRRORROW_SSE2 11233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#endif 11333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 11433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp// The following are available on Neon platforms 11533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#if !defined(YUV_DISABLE_ASM) && (defined(__ARM_NEON__) || defined(LIBYUV_NEON)) 11633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_COPYROW_NEON 11733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_I422TOABGRROW_NEON 11833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_I422TOARGBROW_NEON 11933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_I422TOBGRAROW_NEON 12033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_I422TORAWROW_NEON 12133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_I422TORGB24ROW_NEON 12233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_I422TORGBAROW_NEON 12333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_MIRRORROW_NEON 12433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_MIRRORROWUV_NEON 12533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_SETROW_NEON 12633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_SPLITUV_NEON 12733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_UYVYTOUV422ROW_NEON 12833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_UYVYTOUVROW_NEON 12933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_UYVYTOYROW_NEON 13033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_YUY2TOUV422ROW_NEON 13133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_YUY2TOUVROW_NEON 13233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_YUY2TOYROW_NEON 13333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 13433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp// TODO(fbarchard): Hook these up to calling functions. 13533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ABGRTOARGBROW_NEON 13633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ARGBTORAWROW_NEON 13733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ARGBTORGB24ROW_NEON 13833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_ARGBTORGBAROW_NEON 13933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_BGRATOARGBROW_NEON 14033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_NV12TOARGBROW_NEON 14133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_NV21TOARGBROW_NEON 14233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_RAWTOARGBROW_NEON 14333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_RGB24TOARGBROW_NEON 14433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define HAS_RGBATOARGBROW_NEON 14533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#endif 14633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 14733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#if defined(_MSC_VER) && !defined(__CLR_VER) 14833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define SIMD_ALIGNED(var) __declspec(align(16)) var 14933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamptypedef __declspec(align(16)) int8 vec8[16]; 15033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamptypedef __declspec(align(16)) uint8 uvec8[16]; 15133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamptypedef __declspec(align(16)) int16 vec16[8]; 15233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamptypedef __declspec(align(16)) uint16 uvec16[8]; 15333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamptypedef __declspec(align(16)) int32 vec32[4]; 15433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamptypedef __declspec(align(16)) uint32 uvec32[4]; 15533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#elif defined(__GNUC__) 15633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define SIMD_ALIGNED(var) var __attribute__((aligned(16))) 15733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamptypedef int8 __attribute__((vector_size(16))) vec8; 15833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamptypedef uint8 __attribute__((vector_size(16))) uvec8; 15933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamptypedef int16 __attribute__((vector_size(16))) vec16; 16033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamptypedef uint16 __attribute__((vector_size(16))) uvec16; 16133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamptypedef int32 __attribute__((vector_size(16))) vec32; 16233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamptypedef uint32 __attribute__((vector_size(16))) uvec32; 16333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#else 16433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define SIMD_ALIGNED(var) var 16533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamptypedef int8 vec8[16]; 16633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamptypedef uint8 uvec8[16]; 16733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamptypedef int16 vec16[8]; 16833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamptypedef uint16 uvec16[8]; 16933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamptypedef int32 vec32[4]; 17033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamptypedef uint32 uvec32[4]; 17133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#endif 17233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 17333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#if defined(__APPLE__) || defined(__x86_64__) || defined(__llvm__) 17433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define OMITFP 17533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#else 17633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#define OMITFP __attribute__((optimize("omit-frame-pointer"))) 17733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#endif 17833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 17933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToARGBRow_NEON(const uint8* y_buf, 18033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 18133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 18233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* rgb_buf, 18333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 18433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToBGRARow_NEON(const uint8* y_buf, 18533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 18633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 18733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* rgb_buf, 18833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 18933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToABGRRow_NEON(const uint8* y_buf, 19033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 19133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 19233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* rgb_buf, 19333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 19433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToRGBARow_NEON(const uint8* y_buf, 19533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 19633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 19733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* rgb_buf, 19833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 19933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToRGB24Row_NEON(const uint8* y_buf, 20033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 20133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 20233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* rgb_buf, 20333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 20433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToRAWRow_NEON(const uint8* y_buf, 20533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 20633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 20733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* rgb_buf, 20833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 20933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid NV12ToARGBRow_NEON(const uint8* y_buf, 21033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* uv_buf, 21133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* rgb_buf, 21233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 21333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid NV21ToARGBRow_NEON(const uint8* y_buf, 21433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* uv_buf, 21533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* rgb_buf, 21633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 21733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 21833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToYRow_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); 21933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid BGRAToYRow_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); 22033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ABGRToYRow_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); 22133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid RGBAToYRow_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); 22233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToYRow_Unaligned_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); 22333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid BGRAToYRow_Unaligned_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); 22433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ABGRToYRow_Unaligned_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); 22533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid RGBAToYRow_Unaligned_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); 22633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 22733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToUVRow_SSSE3(const uint8* src_argb0, int src_stride_argb, 22833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int width); 22933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid BGRAToUVRow_SSSE3(const uint8* src_argb0, int src_stride_argb, 23033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int width); 23133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ABGRToUVRow_SSSE3(const uint8* src_argb0, int src_stride_argb, 23233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int width); 23333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid RGBAToUVRow_SSSE3(const uint8* src_argb0, int src_stride_argb, 23433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int width); 23533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToUVRow_Unaligned_SSSE3(const uint8* src_argb0, int src_stride_argb, 23633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int width); 23733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid BGRAToUVRow_Unaligned_SSSE3(const uint8* src_argb0, int src_stride_argb, 23833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int width); 23933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ABGRToUVRow_Unaligned_SSSE3(const uint8* src_argb0, int src_stride_argb, 24033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int width); 24133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid RGBAToUVRow_Unaligned_SSSE3(const uint8* src_argb0, int src_stride_argb, 24233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int width); 24333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 24433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid MirrorRow_SSSE3(const uint8* src, uint8* dst, int width); 24533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid MirrorRow_SSE2(const uint8* src, uint8* dst, int width); 24633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid MirrorRow_NEON(const uint8* src, uint8* dst, int width); 24733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid MirrorRow_C(const uint8* src, uint8* dst, int width); 24833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 24933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid MirrorRowUV_SSSE3(const uint8* src, uint8* dst_u, uint8* dst_v, int width); 25033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid MirrorRowUV_NEON(const uint8* src, uint8* dst_u, uint8* dst_v, int width); 25133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid MirrorRowUV_C(const uint8* src, uint8* dst_u, uint8* dst_v, int width); 25233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 25333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBMirrorRow_SSSE3(const uint8* src, uint8* dst, int width); 25433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBMirrorRow_C(const uint8* src, uint8* dst, int width); 25533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 25633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid SplitUV_SSE2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix); 25733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid SplitUV_NEON(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix); 25833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid SplitUV_C(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix); 25933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 26033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid CopyRow_SSE2(const uint8* src, uint8* dst, int count); 26133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid CopyRow_X86(const uint8* src, uint8* dst, int count); 26233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid CopyRow_NEON(const uint8* src, uint8* dst, int count); 26333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid CopyRow_C(const uint8* src, uint8* dst, int count); 26433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 26533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid SetRow8_X86(uint8* dst, uint32 v32, int count); 26633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid SetRows32_X86(uint8* dst, uint32 v32, int width, 26733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int dst_stride, int height); 26833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid SetRow8_NEON(uint8* dst, uint32 v32, int count); 26933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid SetRows32_NEON(uint8* dst, uint32 v32, int width, 27033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int dst_stride, int height); 27133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid SetRow8_C(uint8* dst, uint32 v32, int count); 27233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid SetRows32_C(uint8* dst, uint32 v32, int width, int dst_stride, int height); 27333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 27433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToYRow_C(const uint8* src_argb, uint8* dst_y, int pix); 27533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid BGRAToYRow_C(const uint8* src_argb, uint8* dst_y, int pix); 27633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ABGRToYRow_C(const uint8* src_argb, uint8* dst_y, int pix); 27733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid RGBAToYRow_C(const uint8* src_argb, uint8* dst_y, int pix); 27833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 27933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToUVRow_C(const uint8* src_argb0, int src_stride_argb, 28033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int width); 28133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid BGRAToUVRow_C(const uint8* src_argb0, int src_stride_argb, 28233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int width); 28333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ABGRToUVRow_C(const uint8* src_argb0, int src_stride_argb, 28433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int width); 28533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid RGBAToUVRow_C(const uint8* src_argb0, int src_stride_argb, 28633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int width); 28733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 28833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid BGRAToARGBRow_SSSE3(const uint8* src_bgra, uint8* dst_argb, int pix); 28933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ABGRToARGBRow_SSSE3(const uint8* src_abgr, uint8* dst_argb, int pix); 29033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid RGBAToARGBRow_SSSE3(const uint8* src_rgba, uint8* dst_argb, int pix); 29133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid RGB24ToARGBRow_SSSE3(const uint8* src_rgb24, uint8* dst_argb, int pix); 29233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid RAWToARGBRow_SSSE3(const uint8* src_rgb24, uint8* dst_argb, int pix); 29333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGB1555ToARGBRow_SSE2(const uint8* src_argb, uint8* dst_argb, int pix); 29433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid RGB565ToARGBRow_SSE2(const uint8* src_argb, uint8* dst_argb, int pix); 29533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGB4444ToARGBRow_SSE2(const uint8* src_argb, uint8* dst_argb, int pix); 29633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 29733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid BGRAToARGBRow_NEON(const uint8* src_bgra, uint8* dst_argb, int pix); 29833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ABGRToARGBRow_NEON(const uint8* src_abgr, uint8* dst_argb, int pix); 29933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid RGBAToARGBRow_NEON(const uint8* src_rgba, uint8* dst_argb, int pix); 30033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid RGB24ToARGBRow_NEON(const uint8* src_rgb24, uint8* dst_argb, int pix); 30133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid RAWToARGBRow_NEON(const uint8* src_rgb24, uint8* dst_argb, int pix); 30233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 30333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid BGRAToARGBRow_C(const uint8* src_bgra, uint8* dst_argb, int pix); 30433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ABGRToARGBRow_C(const uint8* src_abgr, uint8* dst_argb, int pix); 30533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid RGBAToARGBRow_C(const uint8* src_rgba, uint8* dst_argb, int pix); 30633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid RGB24ToARGBRow_C(const uint8* src_rgb24, uint8* dst_argb, int pix); 30733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid RAWToARGBRow_C(const uint8* src_rgb24, uint8* dst_argb, int pix); 30833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid RGB565ToARGBRow_C(const uint8* src_rgb, uint8* dst_argb, int pix); 30933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGB1555ToARGBRow_C(const uint8* src_argb, uint8* dst_argb, int pix); 31033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGB4444ToARGBRow_C(const uint8* src_argb, uint8* dst_argb, int pix); 31133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 31233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToRGBARow_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); 31333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToRGB24Row_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); 31433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToRAWRow_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); 31533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToRGB565Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); 31633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToARGB1555Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); 31733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToARGB4444Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); 31833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 31933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToRGBARow_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); 32033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToRGB24Row_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); 32133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToRAWRow_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); 32233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 32333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToRGBARow_C(const uint8* src_argb, uint8* dst_rgb, int pix); 32433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToRGB24Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); 32533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToRAWRow_C(const uint8* src_argb, uint8* dst_rgb, int pix); 32633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToRGB565Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); 32733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToARGB1555Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); 32833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToARGB4444Row_C(const uint8* src_argb, uint8* dst_rgb, int pix); 32933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 33033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I400ToARGBRow_SSE2(const uint8* src_y, uint8* dst_argb, int pix); 33133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I400ToARGBRow_C(const uint8* src_y, uint8* dst_argb, int pix); 33233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 33333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I444ToARGBRow_C(const uint8* y_buf, 33433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 33533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 33633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* argb_buf, 33733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 33833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 33933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToARGBRow_C(const uint8* y_buf, 34033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 34133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 34233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* argb_buf, 34333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 34433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 34533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I411ToARGBRow_C(const uint8* y_buf, 34633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 34733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 34833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* rgb_buf, 34933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 35033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 35133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid NV12ToARGBRow_C(const uint8* y_buf, 35233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* uv_buf, 35333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* argb_buf, 35433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 35533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 35633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid NV21ToARGBRow_C(const uint8* y_buf, 35733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* vu_buf, 35833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* argb_buf, 35933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 36033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 36133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToBGRARow_C(const uint8* y_buf, 36233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 36333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 36433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* bgra_buf, 36533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 36633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 36733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToABGRRow_C(const uint8* y_buf, 36833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 36933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 37033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* abgr_buf, 37133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 37233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 37333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToRGBARow_C(const uint8* y_buf, 37433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 37533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 37633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* rgba_buf, 37733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 37833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToRGB24Row_C(const uint8* y_buf, 37933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 38033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 38133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* rgb24_buf, 38233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 38333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToRAWRow_C(const uint8* y_buf, 38433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 38533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 38633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* raw_buf, 38733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 38833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 38933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid YToARGBRow_C(const uint8* y_buf, 39033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* rgb_buf, 39133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 39233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 39333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I444ToARGBRow_SSSE3(const uint8* y_buf, 39433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 39533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 39633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* argb_buf, 39733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 39833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 39933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToARGBRow_SSSE3(const uint8* y_buf, 40033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 40133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 40233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* argb_buf, 40333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 40433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 40533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I411ToARGBRow_SSSE3(const uint8* y_buf, 40633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 40733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 40833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* rgb_buf, 40933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 41033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 41133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid NV12ToARGBRow_SSSE3(const uint8* y_buf, 41233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* uv_buf, 41333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* argb_buf, 41433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 41533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 41633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid NV21ToARGBRow_SSSE3(const uint8* y_buf, 41733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* vu_buf, 41833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* argb_buf, 41933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 42033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 42133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToBGRARow_SSSE3(const uint8* y_buf, 42233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 42333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 42433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* bgra_buf, 42533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 42633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 42733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToABGRRow_SSSE3(const uint8* y_buf, 42833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 42933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 43033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* abgr_buf, 43133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 43233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 43333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToRGBARow_SSSE3(const uint8* y_buf, 43433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 43533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 43633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* rgba_buf, 43733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 43833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 43933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I444ToARGBRow_Unaligned_SSSE3(const uint8* y_buf, 44033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 44133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 44233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* argb_buf, 44333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 44433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 44533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToARGBRow_Unaligned_SSSE3(const uint8* y_buf, 44633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 44733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 44833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* argb_buf, 44933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 45033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 45133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I411ToARGBRow_Unaligned_SSSE3(const uint8* y_buf, 45233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 45333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 45433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* rgb_buf, 45533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 45633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 45733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid NV12ToARGBRow_Unaligned_SSSE3(const uint8* y_buf, 45833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* uv_buf, 45933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* argb_buf, 46033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 46133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 46233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid NV21ToARGBRow_Unaligned_SSSE3(const uint8* y_buf, 46333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* vu_buf, 46433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* argb_buf, 46533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 46633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 46733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToBGRARow_Unaligned_SSSE3(const uint8* y_buf, 46833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 46933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 47033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* bgra_buf, 47133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 47233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 47333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToABGRRow_Unaligned_SSSE3(const uint8* y_buf, 47433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 47533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 47633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* abgr_buf, 47733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 47833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 47933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToRGBARow_Unaligned_SSSE3(const uint8* y_buf, 48033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 48133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 48233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* rgba_buf, 48333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 48433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 48533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I444ToARGBRow_Any_SSSE3(const uint8* y_buf, 48633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 48733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 48833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* argb_buf, 48933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 49033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 49133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToARGBRow_Any_SSSE3(const uint8* y_buf, 49233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 49333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 49433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* argb_buf, 49533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 49633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 49733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I411ToARGBRow_Any_SSSE3(const uint8* y_buf, 49833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 49933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 50033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* rgb_buf, 50133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 50233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 50333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid NV12ToARGBRow_Any_SSSE3(const uint8* y_buf, 50433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* uv_buf, 50533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* argb_buf, 50633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 50733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 50833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid NV21ToARGBRow_Any_SSSE3(const uint8* y_buf, 50933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* vu_buf, 51033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* argb_buf, 51133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 51233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 51333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToBGRARow_Any_SSSE3(const uint8* y_buf, 51433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 51533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 51633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* bgra_buf, 51733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 51833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 51933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToABGRRow_Any_SSSE3(const uint8* y_buf, 52033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 52133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 52233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* abgr_buf, 52333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 52433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 52533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToRGBARow_Any_SSSE3(const uint8* y_buf, 52633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 52733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 52833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* rgba_buf, 52933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 53033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 53133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid YToARGBRow_SSE2(const uint8* y_buf, 53233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* argb_buf, 53333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 53433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 53533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp// ARGB preattenuated alpha blend. 53633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBBlendRow_SSSE3(const uint8* src_argb0, const uint8* src_argb1, 53733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_argb, int width); 53833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBBlendRow_SSE2(const uint8* src_argb0, const uint8* src_argb1, 53933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_argb, int width); 54033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBBlendRow_C(const uint8* src_argb0, const uint8* src_argb1, 54133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_argb, int width); 54233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 54333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToRGB24Row_Any_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); 54433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToRAWRow_Any_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix); 54533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToRGB565Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); 54633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToARGB1555Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); 54733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToARGB4444Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix); 54833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 54933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToRGB24Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); 55033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToRAWRow_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int pix); 55133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 55233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToYRow_Any_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); 55333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid BGRAToYRow_Any_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); 55433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ABGRToYRow_Any_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); 55533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid RGBAToYRow_Any_SSSE3(const uint8* src_argb, uint8* dst_y, int pix); 55633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBToUVRow_Any_SSSE3(const uint8* src_argb0, int src_stride_argb, 55733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int width); 55833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid BGRAToUVRow_Any_SSSE3(const uint8* src_argb0, int src_stride_argb, 55933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int width); 56033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ABGRToUVRow_Any_SSSE3(const uint8* src_argb0, int src_stride_argb, 56133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int width); 56233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid RGBAToUVRow_Any_SSSE3(const uint8* src_argb0, int src_stride_argb, 56333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int width); 56433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToARGBRow_Any_NEON(const uint8* y_buf, 56533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 56633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 56733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* rgb_buf, 56833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 56933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToBGRARow_Any_NEON(const uint8* y_buf, 57033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 57133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 57233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* rgb_buf, 57333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 57433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToABGRRow_Any_NEON(const uint8* y_buf, 57533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 57633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 57733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* rgb_buf, 57833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 57933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToRGBARow_Any_NEON(const uint8* y_buf, 58033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 58133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 58233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* rgb_buf, 58333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 58433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToRGB24Row_Any_NEON(const uint8* y_buf, 58533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 58633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 58733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* rgb_buf, 58833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 58933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid I422ToRAWRow_Any_NEON(const uint8* y_buf, 59033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* u_buf, 59133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* v_buf, 59233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* rgb_buf, 59333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 59433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid NV12ToARGBRow_Any_NEON(const uint8* y_buf, 59533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* uv_buf, 59633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* argb_buf, 59733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 59833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid NV21ToARGBRow_Any_NEON(const uint8* y_buf, 59933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const uint8* uv_buf, 60033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* argb_buf, 60133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 60233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 60333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid YUY2ToYRow_SSE2(const uint8* src_yuy2, uint8* dst_y, int pix); 60433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid YUY2ToUVRow_SSE2(const uint8* src_yuy2, int stride_yuy2, 60533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int pix); 60633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid YUY2ToUV422Row_SSE2(const uint8* src_yuy2, 60733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int pix); 60833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid YUY2ToYRow_Unaligned_SSE2(const uint8* src_yuy2, 60933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_y, int pix); 61033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid YUY2ToUVRow_Unaligned_SSE2(const uint8* src_yuy2, int stride_yuy2, 61133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int pix); 61233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid YUY2ToUV422Row_Unaligned_SSE2(const uint8* src_yuy2, 61333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int pix); 61433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid YUY2ToYRow_NEON(const uint8* src_yuy2, uint8* dst_y, int pix); 61533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid YUY2ToUVRow_NEON(const uint8* src_yuy2, int stride_yuy2, 61633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int pix); 61733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid YUY2ToUV422Row_NEON(const uint8* src_yuy2, 61833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int pix); 61933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid YUY2ToYRow_C(const uint8* src_yuy2, uint8* dst_y, int pix); 62033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid YUY2ToUVRow_C(const uint8* src_yuy2, int stride_yuy2, 62133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int pix); 62233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid YUY2ToUV422Row_C(const uint8* src_yuy2, 62333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int pix); 62433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid YUY2ToYRow_Any_SSE2(const uint8* src_yuy2, uint8* dst_y, int pix); 62533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid YUY2ToUVRow_Any_SSE2(const uint8* src_yuy2, int stride_yuy2, 62633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int pix); 62733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid YUY2ToUV422Row_Any_SSE2(const uint8* src_yuy2, 62833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int pix); 62933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid YUY2ToYRow_Any_NEON(const uint8* src_yuy2, uint8* dst_y, int pix); 63033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid YUY2ToUVRow_Any_NEON(const uint8* src_yuy2, int stride_yuy2, 63133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int pix); 63233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid YUY2ToUV422Row_Any_NEON(const uint8* src_yuy2, 63333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int pix); 63433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 63533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid UYVYToYRow_SSE2(const uint8* src_uyvy, uint8* dst_y, int pix); 63633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid UYVYToUVRow_SSE2(const uint8* src_uyvy, int stride_uyvy, 63733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int pix); 63833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid UYVYToUV422Row_SSE2(const uint8* src_uyvy, 63933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int pix); 64033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid UYVYToYRow_Unaligned_SSE2(const uint8* src_uyvy, 64133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_y, int pix); 64233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid UYVYToUVRow_Unaligned_SSE2(const uint8* src_uyvy, int stride_uyvy, 64333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int pix); 64433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid UYVYToUV422Row_Unaligned_SSE2(const uint8* src_uyvy, 64533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int pix); 64633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid UYVYToYRow_NEON(const uint8* src_uyvy, uint8* dst_y, int pix); 64733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid UYVYToUVRow_NEON(const uint8* src_uyvy, int stride_uyvy, 64833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int pix); 64933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid UYVYToUV422Row_NEON(const uint8* src_uyvy, 65033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int pix); 65133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 65233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid UYVYToYRow_C(const uint8* src_uyvy, uint8* dst_y, int pix); 65333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid UYVYToUVRow_C(const uint8* src_uyvy, int stride_uyvy, 65433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int pix); 65533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid UYVYToUV422Row_C(const uint8* src_uyvy, 65633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int pix); 65733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid UYVYToYRow_Any_SSE2(const uint8* src_uyvy, uint8* dst_y, int pix); 65833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid UYVYToUVRow_Any_SSE2(const uint8* src_uyvy, int stride_uyvy, 65933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int pix); 66033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid UYVYToUV422Row_Any_SSE2(const uint8* src_uyvy, 66133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int pix); 66233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid UYVYToYRow_Any_NEON(const uint8* src_uyvy, uint8* dst_y, int pix); 66333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid UYVYToUVRow_Any_NEON(const uint8* src_uyvy, int stride_uyvy, 66433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int pix); 66533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid UYVYToUV422Row_Any_NEON(const uint8* src_uyvy, 66633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_u, uint8* dst_v, int pix); 66733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 66833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBAttenuateRow_C(const uint8* src_argb, uint8* dst_argb, int width); 66933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBAttenuateRow_SSE2(const uint8* src_argb, uint8* dst_argb, int width); 67033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBAttenuateRow_SSSE3(const uint8* src_argb, uint8* dst_argb, int width); 67133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 67233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp// Inverse table for unattenuate, shared by C and SSE2. 67333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampextern uint32 fixed_invtbl8[256]; 67433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBUnattenuateRow_C(const uint8* src_argb, uint8* dst_argb, int width); 67533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBUnattenuateRow_SSE2(const uint8* src_argb, uint8* dst_argb, int width); 67633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 67733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBGrayRow_C(const uint8* src_argb, uint8* dst_argb, int width); 67833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBGrayRow_SSSE3(const uint8* src_argb, uint8* dst_argb, int width); 67933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 68033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBSepiaRow_C(uint8* dst_argb, int width); 68133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBSepiaRow_SSSE3(uint8* dst_argb, int width); 68233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 68333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBColorMatrixRow_C(uint8* dst_argb, const int8* matrix_argb, int width); 68433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBColorMatrixRow_SSSE3(uint8* dst_argb, const int8* matrix_argb, 68533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width); 68633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 68733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBColorTableRow_C(uint8* dst_argb, const uint8* table_argb, int width); 68833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBColorTableRow_X86(uint8* dst_argb, const uint8* table_argb, int width); 68933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 69033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBQuantizeRow_C(uint8* dst_argb, int scale, int interval_size, 69133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int interval_offset, int width); 69233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBQuantizeRow_SSE2(uint8* dst_argb, int scale, int interval_size, 69333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int interval_offset, int width); 69433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 69533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp// Used for blur. 69633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid CumulativeSumToAverage_SSE2(const int32* topleft, const int32* botleft, 69733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width, int area, uint8* dst, int count); 69833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ComputeCumulativeSumRow_SSE2(const uint8* row, int32* cumsum, 69933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const int32* previous_cumsum, int width); 70033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 70133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid CumulativeSumToAverage_C(const int32* topleft, const int32* botleft, 70233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int width, int area, uint8* dst, int count); 70333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ComputeCumulativeSumRow_C(const uint8* row, int32* cumsum, 70433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp const int32* previous_cumsum, int width); 70533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 70633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBShadeRow_C(const uint8* src_argb, uint8* dst_argb, int width, 70733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint32 value); 70833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBShadeRow_SSE2(const uint8* src_argb, uint8* dst_argb, int width, 70933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint32 value); 71033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 71133cfdeb7b267ab635413797fffb046b73272f7ecHendrik DahlkampLIBYUV_API 71233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBAffineRow_C(const uint8* src_argb, int src_argb_stride, 71333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_argb, const float* uv_dudv, int width); 71433cfdeb7b267ab635413797fffb046b73272f7ecHendrik DahlkampLIBYUV_API 71533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBAffineRow_SSE2(const uint8* src_argb, int src_argb_stride, 71633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp uint8* dst_argb, const float* uv_dudv, int width); 71733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 71833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBInterpolateRow_C(uint8* dst_ptr, const uint8* src_ptr, 71933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp ptrdiff_t src_stride, 72033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int dst_width, int source_y_fraction); 72133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkampvoid ARGBInterpolateRow_SSSE3(uint8* dst_ptr, const uint8* src_ptr, 72233cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp ptrdiff_t src_stride, int dst_width, 72333cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp int source_y_fraction); 72433cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 72533cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#ifdef __cplusplus 72633cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp} // extern "C" 72733cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp} // namespace libyuv 72833cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#endif 72933cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 73033cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp#endif // INCLUDE_LIBYUV_ROW_H_ NOLINT 73133cfdeb7b267ab635413797fffb046b73272f7ecHendrik Dahlkamp 732