瀏覽代碼

iOS部分的依赖修改 使用一个自建的pod库以减小上传到pub时的体积

Caijinglong 6 年之前
父節點
當前提交
5a4dc8686f
共有 40 個文件被更改,包括 20 次插入8170 次删除
  1. 11 4
      example/ios/Podfile.lock
  2. 8 2
      example/ios/Runner.xcodeproj/project.pbxproj
  3. 0 79
      ios/IJKMediaFramework.framework/Headers/IJKAVMoviePlayerController.h
  4. 0 65
      ios/IJKMediaFramework.framework/Headers/IJKFFMonitor.h
  5. 0 161
      ios/IJKMediaFramework.framework/Headers/IJKFFMoviePlayerController.h
  6. 0 75
      ios/IJKMediaFramework.framework/Headers/IJKFFOptions.h
  7. 0 39
      ios/IJKMediaFramework.framework/Headers/IJKKVOController.h
  8. 0 32
      ios/IJKMediaFramework.framework/Headers/IJKMPMoviePlayerController.h
  9. 0 63
      ios/IJKMediaFramework.framework/Headers/IJKMediaFramework.h
  10. 0 33
      ios/IJKMediaFramework.framework/Headers/IJKMediaModule.h
  11. 0 233
      ios/IJKMediaFramework.framework/Headers/IJKMediaPlayback.h
  12. 0 32
      ios/IJKMediaFramework.framework/Headers/IJKMediaPlayer.h
  13. 0 37
      ios/IJKMediaFramework.framework/Headers/IJKNotificationManager.h
  14. 0 50
      ios/IJKMediaFramework.framework/Headers/IJKSDLGLViewProtocol.h
  15. 0 3
      ios/IJKMediaFramework.framework/IJKMediaFramework
  16. 二進制
      ios/IJKMediaFramework.framework/Info.plist
  17. 0 6
      ios/IJKMediaFramework.framework/Modules/module.modulemap
  18. 0 32
      ios/IJKMediaFramework.framework/libyuv/include/libyuv.h
  19. 0 117
      ios/IJKMediaFramework.framework/libyuv/include/libyuv/basic_types.h
  20. 0 100
      ios/IJKMediaFramework.framework/libyuv/include/libyuv/compare.h
  21. 0 84
      ios/IJKMediaFramework.framework/libyuv/include/libyuv/compare_row.h
  22. 0 366
      ios/IJKMediaFramework.framework/libyuv/include/libyuv/convert.h
  23. 0 454
      ios/IJKMediaFramework.framework/libyuv/include/libyuv/convert_argb.h
  24. 0 265
      ios/IJKMediaFramework.framework/libyuv/include/libyuv/convert_from.h
  25. 0 265
      ios/IJKMediaFramework.framework/libyuv/include/libyuv/convert_from_argb.h
  26. 0 83
      ios/IJKMediaFramework.framework/libyuv/include/libyuv/cpu_id.h
  27. 0 169
      ios/IJKMediaFramework.framework/libyuv/include/libyuv/macros_msa.h
  28. 0 195
      ios/IJKMediaFramework.framework/libyuv/include/libyuv/mjpeg_decoder.h
  29. 0 796
      ios/IJKMediaFramework.framework/libyuv/include/libyuv/planar_functions.h
  30. 0 164
      ios/IJKMediaFramework.framework/libyuv/include/libyuv/rotate.h
  31. 0 37
      ios/IJKMediaFramework.framework/libyuv/include/libyuv/rotate_argb.h
  32. 0 187
      ios/IJKMediaFramework.framework/libyuv/include/libyuv/rotate_row.h
  33. 0 2668
      ios/IJKMediaFramework.framework/libyuv/include/libyuv/row.h
  34. 0 142
      ios/IJKMediaFramework.framework/libyuv/include/libyuv/scale.h
  35. 0 76
      ios/IJKMediaFramework.framework/libyuv/include/libyuv/scale_argb.h
  36. 0 851
      ios/IJKMediaFramework.framework/libyuv/include/libyuv/scale_row.h
  37. 0 16
      ios/IJKMediaFramework.framework/libyuv/include/libyuv/version.h
  38. 0 184
      ios/IJKMediaFramework.framework/libyuv/include/libyuv/video_common.h
  39. 二進制
      ios/IJKMediaFramework.framework/libyuv/lib/libyuv.a
  40. 1 5
      ios/flutter_ijkplayer.podspec

+ 11 - 4
example/ios/Podfile.lock

@@ -2,6 +2,8 @@ PODS:
   - Flutter (1.0.0)
   - flutter_ijkplayer (0.0.1):
     - Flutter
+    - FlutterIJK (~> 0.0.3)
+  - FlutterIJK (0.0.3)
   - photo_manager (0.0.1):
     - Flutter
 
@@ -10,6 +12,10 @@ DEPENDENCIES:
   - flutter_ijkplayer (from `/Volumes/Evo512/code/flutter/plugins/flutter_ijkplayer/ios/flutter_ijkplayer.podspec`)
   - photo_manager (from `/Users/cai/.pub-cache/hosted/pub.flutter-io.cn/photo_manager-0.3.2/ios/photo_manager.podspec`)
 
+SPEC REPOS:
+  https://github.com/cocoapods/specs.git:
+    - FlutterIJK
+
 EXTERNAL SOURCES:
   Flutter:
     :path: ".symlinks/flutter/ios"
@@ -19,10 +25,11 @@ EXTERNAL SOURCES:
     :path: "/Users/cai/.pub-cache/hosted/pub.flutter-io.cn/photo_manager-0.3.2/ios/photo_manager.podspec"
 
 SPEC CHECKSUMS:
-  Flutter: 9d0fac939486c9aba2809b7982dfdbb47a7b0296
-  flutter_ijkplayer: add1e58f2329ca825b03decb062a9167be9bbc59
-  photo_manager: a406dfebdf49773f7eb25ba093e132f6d1f677e1
+  Flutter: 58dd7d1b27887414a370fcccb9e645c08ffd7a6a
+  flutter_ijkplayer: 68fdddc1bec770c1a40b00f07687a594ffeecd47
+  FlutterIJK: 593a48952fb5022fb5c0bd8bd26fd1a11418ce5c
+  photo_manager: d47ddf6cb25cbfa837dc334540eb9a99b208e191
 
 PODFILE CHECKSUM: a14c63eb48a9d676ed6d876506b3258fd9c85235
 
-COCOAPODS: 1.5.3
+COCOAPODS: 1.6.1

+ 8 - 2
example/ios/Runner.xcodeproj/project.pbxproj

@@ -40,12 +40,15 @@
 /* Begin PBXFileReference section */
 		1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
 		1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
+		29EF858901F78151937EDC42 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
 		3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
 		3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = "<group>"; };
+		43122E89AFC8F3DCA632A421 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Pods/Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
 		7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
 		7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
 		7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
 		7CD093ABDE099193AE19EDDD /* libPods-Runner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Runner.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+		8042ADB7F078163672C45CC5 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
 		9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
 		9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
 		9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = "<group>"; };
@@ -74,6 +77,9 @@
 		2ABB07C25A743DD406317260 /* Pods */ = {
 			isa = PBXGroup;
 			children = (
+				8042ADB7F078163672C45CC5 /* Pods-Runner.debug.xcconfig */,
+				29EF858901F78151937EDC42 /* Pods-Runner.release.xcconfig */,
+				43122E89AFC8F3DCA632A421 /* Pods-Runner.profile.xcconfig */,
 			);
 			name = Pods;
 			sourceTree = "<group>";
@@ -259,7 +265,7 @@
 			files = (
 			);
 			inputPaths = (
-				"${SRCROOT}/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh",
+				"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh",
 				"${PODS_ROOT}/../.symlinks/flutter/ios/Flutter.framework",
 			);
 			name = "[CP] Embed Pods Frameworks";
@@ -268,7 +274,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
+			shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
 			showEnvVarsInLog = 0;
 		};
 		9740EEB61CF901F6004384FC /* Run Script */ = {

+ 0 - 79
ios/IJKMediaFramework.framework/Headers/IJKAVMoviePlayerController.h

@@ -1,79 +0,0 @@
-/*
- * IJKAVMoviePlayerController.h
- *
- * Copyright (c) 2014 Bilibili
- * Copyright (c) 2014 Zhang Rui <bbcallen@gmail.com>
- *
- * This file is part of ijkPlayer.
- *
- * ijkPlayer is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * ijkPlayer is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with ijkPlayer; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/*
- File: AVPlayerDemoPlaybackViewController.h
- Abstract: UIViewController managing a playback view, thumbnail view, and associated playback UI.
- Version: 1.3
-
- Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple
- Inc. ("Apple") in consideration of your agreement to the following
- terms, and your use, installation, modification or redistribution of
- this Apple software constitutes acceptance of these terms.  If you do
- not agree with these terms, please do not use, install, modify or
- redistribute this Apple software.
-
- In consideration of your agreement to abide by the following terms, and
- subject to these terms, Apple grants you a personal, non-exclusive
- license, under Apple's copyrights in this original Apple software (the
- "Apple Software"), to use, reproduce, modify and redistribute the Apple
- Software, with or without modifications, in source and/or binary forms;
- provided that if you redistribute the Apple Software in its entirety and
- without modifications, you must retain this notice and the following
- text and disclaimers in all such redistributions of the Apple Software.
- Neither the name, trademarks, service marks or logos of Apple Inc. may
- be used to endorse or promote products derived from the Apple Software
- without specific prior written permission from Apple.  Except as
- expressly stated in this notice, no other rights or licenses, express or
- implied, are granted by Apple herein, including but not limited to any
- patent rights that may be infringed by your derivative works or by other
- works in which the Apple Software may be incorporated.
-
- The Apple Software is provided by Apple on an "AS IS" basis.  APPLE
- MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION
- THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS
- FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND
- OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
-
- IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,
- MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED
- AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),
- STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-
- Copyright (C) 2014 Apple Inc. All Rights Reserved.
-
- */
-
-#import "IJKMediaPlayback.h"
-
-@interface IJKAVMoviePlayerController : NSObject <IJKMediaPlayback>
-
-- (id)initWithContentURL:(NSURL *)aUrl;
-- (id)initWithContentURLString:(NSString *)aUrl;
-+ (id)getInstance:(NSString *)aUrl;
-
-@end

+ 0 - 65
ios/IJKMediaFramework.framework/Headers/IJKFFMonitor.h

@@ -1,65 +0,0 @@
-/*
- * Copyright (c) 2016 Bilibili
- * Copyright (c) 2016 Zhang Rui <bbcallen@gmail.com>
- *
- * This file is part of ijkPlayer.
- *
- * ijkPlayer is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * ijkPlayer is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with ijkPlayer; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#import <Foundation/Foundation.h>
-
-@interface IJKFFMonitor : NSObject
-
-- (instancetype)init;
-
-@property(nonatomic) NSDictionary *mediaMeta;
-@property(nonatomic) NSDictionary *videoMeta;
-@property(nonatomic) NSDictionary *audioMeta;
-
-@property(nonatomic, readonly) int64_t   duration;   // milliseconds
-@property(nonatomic, readonly) int64_t   bitrate;    // bit / sec
-@property(nonatomic, readonly) float     fps;        // frame / sec
-@property(nonatomic, readonly) int       width;      // width
-@property(nonatomic, readonly) int       height;     // height
-@property(nonatomic, readonly) NSString *vcodec;     // video codec
-@property(nonatomic, readonly) NSString *acodec;     // audio codec
-@property(nonatomic, readonly) int       sampleRate;
-@property(nonatomic, readonly) int64_t   channelLayout;
-
-@property(nonatomic) NSString *vdecoder;
-
-@property(nonatomic) int       tcpError;
-@property(nonatomic) NSString *remoteIp;
-
-@property(nonatomic) int       httpError;
-@property(nonatomic) NSString *httpUrl;
-@property(nonatomic) NSString *httpHost;
-@property(nonatomic) int       httpCode;
-@property(nonatomic) int64_t   httpOpenTick;
-@property(nonatomic) int64_t   httpSeekTick;
-@property(nonatomic) int       httpOpenCount;
-@property(nonatomic) int       httpSeekCount;
-@property(nonatomic) int64_t   lastHttpOpenDuration;
-@property(nonatomic) int64_t   lastHttpSeekDuration;
-@property(nonatomic) int64_t   filesize;
-
-@property(nonatomic) int64_t   prepareStartTick;
-@property(nonatomic) int64_t   prepareDuration;
-@property(nonatomic) int64_t   firstVideoFrameLatency;
-@property(nonatomic) int64_t   lastPrerollStartTick;
-@property(nonatomic) int64_t   lastPrerollDuration;
-
-@end

+ 0 - 161
ios/IJKMediaFramework.framework/Headers/IJKFFMoviePlayerController.h

@@ -1,161 +0,0 @@
-/*
- * IJKFFMoviePlayerController.h
- *
- * Copyright (c) 2013 Bilibili
- * Copyright (c) 2013 Zhang Rui <bbcallen@gmail.com>
- *
- * This file is part of ijkPlayer.
- *
- * ijkPlayer is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * ijkPlayer is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with ijkPlayer; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#import "IJKMediaPlayback.h"
-#import "IJKFFMonitor.h"
-#import "IJKFFOptions.h"
-#import "IJKSDLGLViewProtocol.h"
-
-// media meta
-#define k_IJKM_KEY_FORMAT         @"format"
-#define k_IJKM_KEY_DURATION_US    @"duration_us"
-#define k_IJKM_KEY_START_US       @"start_us"
-#define k_IJKM_KEY_BITRATE        @"bitrate"
-
-// stream meta
-#define k_IJKM_KEY_TYPE           @"type"
-#define k_IJKM_VAL_TYPE__VIDEO    @"video"
-#define k_IJKM_VAL_TYPE__AUDIO    @"audio"
-#define k_IJKM_VAL_TYPE__UNKNOWN  @"unknown"
-
-#define k_IJKM_KEY_CODEC_NAME      @"codec_name"
-#define k_IJKM_KEY_CODEC_PROFILE   @"codec_profile"
-#define k_IJKM_KEY_CODEC_LONG_NAME @"codec_long_name"
-
-// stream: video
-#define k_IJKM_KEY_WIDTH          @"width"
-#define k_IJKM_KEY_HEIGHT         @"height"
-#define k_IJKM_KEY_FPS_NUM        @"fps_num"
-#define k_IJKM_KEY_FPS_DEN        @"fps_den"
-#define k_IJKM_KEY_TBR_NUM        @"tbr_num"
-#define k_IJKM_KEY_TBR_DEN        @"tbr_den"
-#define k_IJKM_KEY_SAR_NUM        @"sar_num"
-#define k_IJKM_KEY_SAR_DEN        @"sar_den"
-// stream: audio
-#define k_IJKM_KEY_SAMPLE_RATE    @"sample_rate"
-#define k_IJKM_KEY_CHANNEL_LAYOUT @"channel_layout"
-
-#define kk_IJKM_KEY_STREAMS       @"streams"
-
-typedef enum IJKLogLevel {
-    k_IJK_LOG_UNKNOWN = 0,
-    k_IJK_LOG_DEFAULT = 1,
-
-    k_IJK_LOG_VERBOSE = 2,
-    k_IJK_LOG_DEBUG   = 3,
-    k_IJK_LOG_INFO    = 4,
-    k_IJK_LOG_WARN    = 5,
-    k_IJK_LOG_ERROR   = 6,
-    k_IJK_LOG_FATAL   = 7,
-    k_IJK_LOG_SILENT  = 8,
-} IJKLogLevel;
-
-@interface IJKFFMoviePlayerController : NSObject <IJKMediaPlayback>
-
-- (id)initWithContentURL:(NSURL *)aUrl
-             withOptions:(IJKFFOptions *)options;
-
-- (id)initWithContentURLString:(NSString *)aUrlString
-                   withOptions:(IJKFFOptions *)options;
-
-- (id)initWithMoreContent:(NSURL *)aUrl
-             withOptions:(IJKFFOptions *)options
-              withGLView:(UIView<IJKSDLGLViewProtocol> *)glView;
-
-- (id)initWithMoreContentString:(NSString *)aUrlString
-                 withOptions:(IJKFFOptions *)options
-                  withGLView:(UIView<IJKSDLGLViewProtocol> *)glView;
-
-- (void)prepareToPlay;
-- (void)play;
-- (void)pause;
-- (void)stop;
-- (BOOL)isPlaying;
-- (int64_t)trafficStatistic;
-- (float)dropFrameRate;
-
-- (void)setPauseInBackground:(BOOL)pause;
-- (BOOL)isVideoToolboxOpen;
-
-//add for flutter
-- (CVPixelBufferRef)framePixelbuffer;
-- (void)framePixelbufferLock;
-- (void)framePixelbufferUnlock;
-//end
-
-- (void)setHudValue:(NSString *)value forKey:(NSString *)key;
-
-+ (void)setLogReport:(BOOL)preferLogReport;
-+ (void)setLogLevel:(IJKLogLevel)logLevel;
-+ (BOOL)checkIfFFmpegVersionMatch:(BOOL)showAlert;
-+ (BOOL)checkIfPlayerVersionMatch:(BOOL)showAlert
-                            version:(NSString *)version;
-
-@property(nonatomic, readonly) CGFloat fpsInMeta;
-@property(nonatomic, readonly) CGFloat fpsAtOutput;
-@property(nonatomic) BOOL shouldShowHudView;
-
-- (void)setOptionValue:(NSString *)value
-                forKey:(NSString *)key
-            ofCategory:(IJKFFOptionCategory)category;
-
-- (void)setOptionIntValue:(int64_t)value
-                   forKey:(NSString *)key
-               ofCategory:(IJKFFOptionCategory)category;
-
-
-
-- (void)setFormatOptionValue:       (NSString *)value forKey:(NSString *)key;
-- (void)setCodecOptionValue:        (NSString *)value forKey:(NSString *)key;
-- (void)setSwsOptionValue:          (NSString *)value forKey:(NSString *)key;
-- (void)setPlayerOptionValue:       (NSString *)value forKey:(NSString *)key;
-
-- (void)setFormatOptionIntValue:    (int64_t)value forKey:(NSString *)key;
-- (void)setCodecOptionIntValue:     (int64_t)value forKey:(NSString *)key;
-- (void)setSwsOptionIntValue:       (int64_t)value forKey:(NSString *)key;
-- (void)setPlayerOptionIntValue:    (int64_t)value forKey:(NSString *)key;
-
-@property (nonatomic, retain) id<IJKMediaUrlOpenDelegate> segmentOpenDelegate;
-@property (nonatomic, retain) id<IJKMediaUrlOpenDelegate> tcpOpenDelegate;
-@property (nonatomic, retain) id<IJKMediaUrlOpenDelegate> httpOpenDelegate;
-@property (nonatomic, retain) id<IJKMediaUrlOpenDelegate> liveOpenDelegate;
-
-@property (nonatomic, retain) id<IJKMediaNativeInvokeDelegate> nativeInvokeDelegate;
-
-- (void)didShutdown;
-
-#pragma mark KVO properties
-@property (nonatomic, readonly) IJKFFMonitor *monitor;
-
-@end
-
-#define IJK_FF_IO_TYPE_READ (1)
-void IJKFFIOStatDebugCallback(const char *url, int type, int bytes);
-void IJKFFIOStatRegister(void (*cb)(const char *url, int type, int bytes));
-
-void IJKFFIOStatCompleteDebugCallback(const char *url,
-                                      int64_t read_bytes, int64_t total_size,
-                                      int64_t elpased_time, int64_t total_duration);
-void IJKFFIOStatCompleteRegister(void (*cb)(const char *url,
-                                            int64_t read_bytes, int64_t total_size,
-                                            int64_t elpased_time, int64_t total_duration));

+ 0 - 75
ios/IJKMediaFramework.framework/Headers/IJKFFOptions.h

@@ -1,75 +0,0 @@
-/*
- * IJKFFOptions.h
- *
- * Copyright (c) 2013-2015 Bilibili
- * Copyright (c) 2013-2015 Zhang Rui <bbcallen@gmail.com>
- *
- * This file is part of ijkPlayer.
- *
- * ijkPlayer is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * ijkPlayer is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with ijkPlayer; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#import <Foundation/Foundation.h>
-
-typedef enum IJKFFOptionCategory {
-    kIJKFFOptionCategoryFormat = 1,
-    kIJKFFOptionCategoryCodec  = 2,
-    kIJKFFOptionCategorySws    = 3,
-    kIJKFFOptionCategoryPlayer = 4,
-    kIJKFFOptionCategorySwr    = 5,
-} IJKFFOptionCategory;
-
-// for codec option 'skip_loop_filter' and 'skip_frame'
-typedef enum IJKAVDiscard {
-    /* We leave some space between them for extensions (drop some
-     * keyframes for intra-only or drop just some bidir frames). */
-    IJK_AVDISCARD_NONE    =-16, ///< discard nothing
-    IJK_AVDISCARD_DEFAULT =  0, ///< discard useless packets like 0 size packets in avi
-    IJK_AVDISCARD_NONREF  =  8, ///< discard all non reference
-    IJK_AVDISCARD_BIDIR   = 16, ///< discard all bidirectional frames
-    IJK_AVDISCARD_NONKEY  = 32, ///< discard all frames except keyframes
-    IJK_AVDISCARD_ALL     = 48, ///< discard all
-} IJKAVDiscard;
-
-struct IjkMediaPlayer;
-
-@interface IJKFFOptions : NSObject
-
-+(IJKFFOptions *)optionsByDefault;
-
--(void)applyTo:(struct IjkMediaPlayer *)mediaPlayer;
-
-- (void)setOptionValue:(NSString *)value
-                forKey:(NSString *)key
-            ofCategory:(IJKFFOptionCategory)category;
-
-- (void)setOptionIntValue:(int64_t)value
-                   forKey:(NSString *)key
-               ofCategory:(IJKFFOptionCategory)category;
-
-
--(void)setFormatOptionValue:       (NSString *)value forKey:(NSString *)key;
--(void)setCodecOptionValue:        (NSString *)value forKey:(NSString *)key;
--(void)setSwsOptionValue:          (NSString *)value forKey:(NSString *)key;
--(void)setPlayerOptionValue:       (NSString *)value forKey:(NSString *)key;
-
--(void)setFormatOptionIntValue:    (int64_t)value forKey:(NSString *)key;
--(void)setCodecOptionIntValue:     (int64_t)value forKey:(NSString *)key;
--(void)setSwsOptionIntValue:       (int64_t)value forKey:(NSString *)key;
--(void)setPlayerOptionIntValue:    (int64_t)value forKey:(NSString *)key;
-
-@property(nonatomic) BOOL showHudView;
-
-@end

+ 0 - 39
ios/IJKMediaFramework.framework/Headers/IJKKVOController.h

@@ -1,39 +0,0 @@
-/*
- * IJKKVOController.h
- *
- * Copyright (c) 2014 Bilibili
- * Copyright (c) 2014 Zhang Rui <bbcallen@gmail.com>
- *
- * This file is part of ijkPlayer.
- *
- * ijkPlayer is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * ijkPlayer is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with ijkPlayer; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#import <Foundation/Foundation.h>
-
-@interface IJKKVOController : NSObject
-
-- (id)initWithTarget:(NSObject *)target;
-
-- (void)safelyAddObserver:(NSObject *)observer
-               forKeyPath:(NSString *)keyPath
-                  options:(NSKeyValueObservingOptions)options
-                  context:(void *)context;
-- (void)safelyRemoveObserver:(NSObject *)observer
-                  forKeyPath:(NSString *)keyPath;
-
-- (void)safelyRemoveAllObservers;
-
-@end

+ 0 - 32
ios/IJKMediaFramework.framework/Headers/IJKMPMoviePlayerController.h

@@ -1,32 +0,0 @@
-/*
- * IJKMPMoviePlayerController.h
- *
- * Copyright (c) 2013 Bilibili
- * Copyright (c) 2013 Zhang Rui <bbcallen@gmail.com>
- *
- * This file is part of ijkPlayer.
- *
- * ijkPlayer is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * ijkPlayer is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with ijkPlayer; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#import "IJKMediaPlayback.h"
-#import <MediaPlayer/MediaPlayer.h>
-
-@interface IJKMPMoviePlayerController : MPMoviePlayerController <IJKMediaPlayback>
-
-- (id)initWithContentURL:(NSURL *)aUrl;
-- (id)initWithContentURLString:(NSString *)aUrl;
-
-@end

+ 0 - 63
ios/IJKMediaFramework.framework/Headers/IJKMediaFramework.h

@@ -1,63 +0,0 @@
-/*
- * IJKMediaFramework.h
- *
- * Copyright (c) 2013 Bilibili
- * Copyright (c) 2013 Zhang Rui <bbcallen@gmail.com>
- *
- * This file is part of ijkPlayer.
- *
- * ijkPlayer is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * ijkPlayer is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with ijkPlayer; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#import <UIKit/UIKit.h>
-
-//! Project version number for IJKMediaFramework.
-FOUNDATION_EXPORT double IJKMediaFrameworkVersionNumber;
-
-//! Project version string for IJKMediaFramework.
-FOUNDATION_EXPORT const unsigned char IJKMediaFrameworkVersionString[];
-
-// In this header, you should import all the public headers of your framework using statements like #import <IJKMediaFrameworkWithSSL/PublicHeader.h>
-#import <IJKMediaFramework/IJKMediaPlayback.h>
-#import <IJKMediaFramework/IJKMPMoviePlayerController.h>
-#import <IJKMediaFramework/IJKFFOptions.h>
-#import <IJKMediaFramework/IJKFFMoviePlayerController.h>
-#import <IJKMediaFramework/IJKAVMoviePlayerController.h>
-#import <IJKMediaFramework/IJKMediaModule.h>
-#import <IJKMediaFramework/IJKMediaPlayer.h>
-#import <IJKMediaFramework/IJKNotificationManager.h>
-#import <IJKMediaFramework/IJKKVOController.h>
-#import <IJKMediaFramework/IJKSDLGLViewProtocol.h>
-
-// backward compatible for old names
-#define IJKMediaPlaybackIsPreparedToPlayDidChangeNotification IJKMPMediaPlaybackIsPreparedToPlayDidChangeNotification
-#define IJKMoviePlayerLoadStateDidChangeNotification IJKMPMoviePlayerLoadStateDidChangeNotification
-#define IJKMoviePlayerPlaybackDidFinishNotification IJKMPMoviePlayerPlaybackDidFinishNotification
-#define IJKMoviePlayerPlaybackDidFinishReasonUserInfoKey IJKMPMoviePlayerPlaybackDidFinishReasonUserInfoKey
-#define IJKMoviePlayerPlaybackStateDidChangeNotification IJKMPMoviePlayerPlaybackStateDidChangeNotification
-#define IJKMoviePlayerIsAirPlayVideoActiveDidChangeNotification IJKMPMoviePlayerIsAirPlayVideoActiveDidChangeNotification
-#define IJKMoviePlayerVideoDecoderOpenNotification IJKMPMoviePlayerVideoDecoderOpenNotification
-#define IJKMoviePlayerFirstVideoFrameRenderedNotification IJKMPMoviePlayerFirstVideoFrameRenderedNotification
-#define IJKMoviePlayerFirstAudioFrameRenderedNotification IJKMPMoviePlayerFirstAudioFrameRenderedNotification
-#define IJKMoviePlayerFirstAudioFrameDecodedNotification IJKMPMoviePlayerFirstAudioFrameDecodedNotification
-#define IJKMoviePlayerFirstVideoFrameDecodedNotification IJKMPMoviePlayerFirstVideoFrameDecodedNotification
-#define IJKMoviePlayerOpenInputNotification IJKMPMoviePlayerOpenInputNotification
-#define IJKMoviePlayerFindStreamInfoNotification IJKMPMoviePlayerFindStreamInfoNotification
-#define IJKMoviePlayerComponentOpenNotification IJKMPMoviePlayerComponentOpenNotification
-
-#define IJKMPMoviePlayerAccurateSeekCompleteNotification IJKMPMoviePlayerAccurateSeekCompleteNotification
-#define IJKMoviePlayerSeekAudioStartNotification IJKMPMoviePlayerSeekAudioStartNotification
-#define IJKMoviePlayerSeekVideoStartNotification IJKMPMoviePlayerSeekVideoStartNotification
-

+ 0 - 33
ios/IJKMediaFramework.framework/Headers/IJKMediaModule.h

@@ -1,33 +0,0 @@
-/*
- * IJKMediaModule.h
- *
- * Copyright (c) 2013 Bilibili
- * Copyright (c) 2013 Zhang Rui <bbcallen@gmail.com>
- *
- * This file is part of ijkPlayer.
- *
- * ijkPlayer is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * ijkPlayer is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with ijkPlayer; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#import <Foundation/Foundation.h>
-
-@interface IJKMediaModule : NSObject
-
-+ (IJKMediaModule *)sharedModule;
-
-@property(atomic, getter=isAppIdleTimerDisabled)            BOOL appIdleTimerDisabled;
-@property(atomic, getter=isMediaModuleIdleTimerDisabled)    BOOL mediaModuleIdleTimerDisabled;
-
-@end

+ 0 - 233
ios/IJKMediaFramework.framework/Headers/IJKMediaPlayback.h

@@ -1,233 +0,0 @@
-/*
- * IJKMediaPlayback.h
- *
- * Copyright (c) 2013 Bilibili
- * Copyright (c) 2013 Zhang Rui <bbcallen@gmail.com>
- *
- * This file is part of ijkPlayer.
- *
- * ijkPlayer is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * ijkPlayer is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with ijkPlayer; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#import <Foundation/Foundation.h>
-#import <UIKit/UIKit.h>
-
-typedef NS_ENUM(NSInteger, IJKMPMovieScalingMode) {
-    IJKMPMovieScalingModeNone,       // No scaling
-    IJKMPMovieScalingModeAspectFit,  // Uniform scale until one dimension fits
-    IJKMPMovieScalingModeAspectFill, // Uniform scale until the movie fills the visible bounds. One dimension may have clipped contents
-    IJKMPMovieScalingModeFill        // Non-uniform scale. Both render dimensions will exactly match the visible bounds
-};
-
-typedef NS_ENUM(NSInteger, IJKMPMoviePlaybackState) {
-    IJKMPMoviePlaybackStateStopped,
-    IJKMPMoviePlaybackStatePlaying,
-    IJKMPMoviePlaybackStatePaused,
-    IJKMPMoviePlaybackStateInterrupted,
-    IJKMPMoviePlaybackStateSeekingForward,
-    IJKMPMoviePlaybackStateSeekingBackward
-};
-
-typedef NS_OPTIONS(NSUInteger, IJKMPMovieLoadState) {
-    IJKMPMovieLoadStateUnknown        = 0,
-    IJKMPMovieLoadStatePlayable       = 1 << 0,
-    IJKMPMovieLoadStatePlaythroughOK  = 1 << 1, // Playback will be automatically started in this state when shouldAutoplay is YES
-    IJKMPMovieLoadStateStalled        = 1 << 2, // Playback will be automatically paused in this state, if started
-};
-
-typedef NS_ENUM(NSInteger, IJKMPMovieFinishReason) {
-    IJKMPMovieFinishReasonPlaybackEnded,
-    IJKMPMovieFinishReasonPlaybackError,
-    IJKMPMovieFinishReasonUserExited
-};
-
-// -----------------------------------------------------------------------------
-// Thumbnails
-
-typedef NS_ENUM(NSInteger, IJKMPMovieTimeOption) {
-    IJKMPMovieTimeOptionNearestKeyFrame,
-    IJKMPMovieTimeOptionExact
-};
-
-@protocol IJKMediaPlayback;
-
-#pragma mark IJKMediaPlayback
-
-@protocol IJKMediaPlayback <NSObject>
-
-- (void)prepareToPlay;
-- (void)play;
-- (void)pause;
-- (void)stop;
-- (BOOL)isPlaying;
-- (void)shutdown;
-- (void)setPauseInBackground:(BOOL)pause;
-
-//added for flutter
-- (CVPixelBufferRef)framePixelbuffer;
-- (void)framePixelbufferLock;
-- (void)framePixelbufferUnlock;
-//end
-
-@property(nonatomic, readonly)  UIView *view;
-@property(nonatomic)            NSTimeInterval currentPlaybackTime;
-@property(nonatomic, readonly)  NSTimeInterval duration;
-@property(nonatomic, readonly)  NSTimeInterval playableDuration;
-@property(nonatomic, readonly)  NSInteger bufferingProgress;
-
-@property(nonatomic, readonly)  BOOL isPreparedToPlay;
-@property(nonatomic, readonly)  IJKMPMoviePlaybackState playbackState;
-@property(nonatomic, readonly)  IJKMPMovieLoadState loadState;
-@property(nonatomic, readonly) int isSeekBuffering;
-@property(nonatomic, readonly) int isAudioSync;
-@property(nonatomic, readonly) int isVideoSync;
-
-@property(nonatomic, readonly) int64_t numberOfBytesTransferred;
-
-@property(nonatomic, readonly) CGSize naturalSize;
-@property(nonatomic) IJKMPMovieScalingMode scalingMode;
-@property(nonatomic) BOOL shouldAutoplay;
-
-@property (nonatomic) BOOL allowsMediaAirPlay;
-@property (nonatomic) BOOL isDanmakuMediaAirPlay;
-@property (nonatomic, readonly) BOOL airPlayMediaActive;
-
-@property (nonatomic) float playbackRate;
-@property (nonatomic) float playbackVolume;
-
-- (UIImage *)thumbnailImageAtCurrentTime;
-
-#pragma mark Notifications
-
-#ifdef __cplusplus
-#define IJK_EXTERN extern "C" __attribute__((visibility ("default")))
-#else
-#define IJK_EXTERN extern __attribute__((visibility ("default")))
-#endif
-
-// -----------------------------------------------------------------------------
-//  MPMediaPlayback.h
-
-// Posted when the prepared state changes of an object conforming to the MPMediaPlayback protocol changes.
-// This supersedes MPMoviePlayerContentPreloadDidFinishNotification.
-IJK_EXTERN NSString *const IJKMPMediaPlaybackIsPreparedToPlayDidChangeNotification;
-
-// -----------------------------------------------------------------------------
-//  MPMoviePlayerController.h
-//  Movie Player Notifications
-
-// Posted when the scaling mode changes.
-IJK_EXTERN NSString* const IJKMPMoviePlayerScalingModeDidChangeNotification;
-
-// Posted when movie playback ends or a user exits playback.
-IJK_EXTERN NSString* const IJKMPMoviePlayerPlaybackDidFinishNotification;
-IJK_EXTERN NSString* const IJKMPMoviePlayerPlaybackDidFinishReasonUserInfoKey; // NSNumber (IJKMPMovieFinishReason)
-
-// Posted when the playback state changes, either programatically or by the user.
-IJK_EXTERN NSString* const IJKMPMoviePlayerPlaybackStateDidChangeNotification;
-
-// Posted when the network load state changes.
-IJK_EXTERN NSString* const IJKMPMoviePlayerLoadStateDidChangeNotification;
-
-// Posted when the movie player begins or ends playing video via AirPlay.
-IJK_EXTERN NSString* const IJKMPMoviePlayerIsAirPlayVideoActiveDidChangeNotification;
-
-// -----------------------------------------------------------------------------
-// Movie Property Notifications
-
-// Calling -prepareToPlay on the movie player will begin determining movie properties asynchronously.
-// These notifications are posted when the associated movie property becomes available.
-IJK_EXTERN NSString* const IJKMPMovieNaturalSizeAvailableNotification;
-
-// -----------------------------------------------------------------------------
-//  Extend Notifications
-
-IJK_EXTERN NSString *const IJKMPMoviePlayerVideoDecoderOpenNotification;
-IJK_EXTERN NSString *const IJKMPMoviePlayerFirstVideoFrameRenderedNotification;
-IJK_EXTERN NSString *const IJKMPMoviePlayerFirstAudioFrameRenderedNotification;
-IJK_EXTERN NSString *const IJKMPMoviePlayerFirstAudioFrameDecodedNotification;
-IJK_EXTERN NSString *const IJKMPMoviePlayerFirstVideoFrameDecodedNotification;
-IJK_EXTERN NSString *const IJKMPMoviePlayerOpenInputNotification;
-IJK_EXTERN NSString *const IJKMPMoviePlayerFindStreamInfoNotification;
-IJK_EXTERN NSString *const IJKMPMoviePlayerComponentOpenNotification;
-
-IJK_EXTERN NSString *const IJKMPMoviePlayerDidSeekCompleteNotification;
-IJK_EXTERN NSString *const IJKMPMoviePlayerDidSeekCompleteTargetKey;
-IJK_EXTERN NSString *const IJKMPMoviePlayerDidSeekCompleteErrorKey;
-IJK_EXTERN NSString *const IJKMPMoviePlayerDidAccurateSeekCompleteCurPos;
-IJK_EXTERN NSString *const IJKMPMoviePlayerAccurateSeekCompleteNotification;
-IJK_EXTERN NSString *const IJKMPMoviePlayerSeekAudioStartNotification;
-IJK_EXTERN NSString *const IJKMPMoviePlayerSeekVideoStartNotification;
-
-@end
-
-#pragma mark IJKMediaUrlOpenDelegate
-
-// Must equal to the defination in ijkavformat/ijkavformat.h
-typedef NS_ENUM(NSInteger, IJKMediaEvent) {
-
-    // Notify Events
-    IJKMediaEvent_WillHttpOpen         = 1,       // attr: url
-    IJKMediaEvent_DidHttpOpen          = 2,       // attr: url, error, http_code
-    IJKMediaEvent_WillHttpSeek         = 3,       // attr: url, offset
-    IJKMediaEvent_DidHttpSeek          = 4,       // attr: url, offset, error, http_code
-    // Control Message
-    IJKMediaCtrl_WillTcpOpen           = 0x20001, // IJKMediaUrlOpenData: no args
-    IJKMediaCtrl_DidTcpOpen            = 0x20002, // IJKMediaUrlOpenData: error, family, ip, port, fd
-    IJKMediaCtrl_WillHttpOpen          = 0x20003, // IJKMediaUrlOpenData: url, segmentIndex, retryCounter
-    IJKMediaCtrl_WillLiveOpen          = 0x20005, // IJKMediaUrlOpenData: url, retryCounter
-    IJKMediaCtrl_WillConcatSegmentOpen = 0x20007, // IJKMediaUrlOpenData: url, segmentIndex, retryCounter
-};
-
-#define IJKMediaEventAttrKey_url            @"url"
-#define IJKMediaEventAttrKey_host           @"host"
-#define IJKMediaEventAttrKey_error          @"error"
-#define IJKMediaEventAttrKey_time_of_event  @"time_of_event"
-#define IJKMediaEventAttrKey_http_code      @"http_code"
-#define IJKMediaEventAttrKey_offset         @"offset"
-#define IJKMediaEventAttrKey_file_size      @"file_size"
-
-// event of IJKMediaUrlOpenEvent_xxx
-@interface IJKMediaUrlOpenData: NSObject
-
-- (id)initWithUrl:(NSString *)url
-            event:(IJKMediaEvent)event
-     segmentIndex:(int)segmentIndex
-     retryCounter:(int)retryCounter;
-
-@property(nonatomic, readonly) IJKMediaEvent event;
-@property(nonatomic, readonly) int segmentIndex;
-@property(nonatomic, readonly) int retryCounter;
-
-@property(nonatomic, retain) NSString *url;
-@property(nonatomic, assign) int fd;
-@property(nonatomic, strong) NSString *msg;
-@property(nonatomic) int error; // set a negative value to indicate an error has occured.
-@property(nonatomic, getter=isHandled)    BOOL handled;     // auto set to YES if url changed
-@property(nonatomic, getter=isUrlChanged) BOOL urlChanged;  // auto set to YES by url changed
-
-@end
-
-@protocol IJKMediaUrlOpenDelegate <NSObject>
-
-- (void)willOpenUrl:(IJKMediaUrlOpenData*) urlOpenData;
-
-@end
-
-@protocol IJKMediaNativeInvokeDelegate <NSObject>
-
-- (int)invoke:(IJKMediaEvent)event attributes:(NSDictionary *)attributes;
-
-@end

+ 0 - 32
ios/IJKMediaFramework.framework/Headers/IJKMediaPlayer.h

@@ -1,32 +0,0 @@
-/*
- * IJKMediaPlayer.h
- *
- * Copyright (c) 2013 Bilibili
- * Copyright (c) 2013 Zhang Rui <bbcallen@gmail.com>
- *
- * This file is part of ijkPlayer.
- *
- * ijkPlayer is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * ijkPlayer is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with ijkPlayer; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#import "IJKMediaPlayback.h"
-#import "IJKMPMoviePlayerController.h"
-
-#import "IJKFFOptions.h"
-#import "IJKFFMoviePlayerController.h"
-
-#import "IJKAVMoviePlayerController.h"
-
-#import "IJKMediaModule.h"

+ 0 - 37
ios/IJKMediaFramework.framework/Headers/IJKNotificationManager.h

@@ -1,37 +0,0 @@
-/*
- * IJKNotificationManager.h
- *
- * Copyright (c) 2016 Bilibili
- * Copyright (c) 2016 Zhang Rui <bbcallen@gmail.com>
- *
- * This file is part of ijkPlayer.
- *
- * ijkPlayer is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * ijkPlayer is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with ijkPlayer; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#import <Foundation/Foundation.h>
-
-@interface IJKNotificationManager : NSObject
-
-- (nullable instancetype)init;
-
-- (void)addObserver:(nonnull id)observer
-           selector:(nonnull SEL)aSelector
-               name:(nullable NSString *)aName
-             object:(nullable id)anObject;
-
-- (void)removeAllObservers:(nonnull id)observer;
-
-@end

+ 0 - 50
ios/IJKMediaFramework.framework/Headers/IJKSDLGLViewProtocol.h

@@ -1,50 +0,0 @@
-/*
- * IJKSDLGLViewProtocol.h
- *
- * Copyright (c) 2017 Bilibili
- * Copyright (c) 2017 raymond <raymondzheng1412@gmail.com>
- *
- * This file is part of ijkPlayer.
- *
- * ijkPlayer is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * ijkPlayer is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with ijkPlayer; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef IJKSDLGLViewProtocol_h
-#define IJKSDLGLViewProtocol_h
-
-#import <UIKit/UIKit.h>
-
-typedef struct IJKOverlay IJKOverlay;
-struct IJKOverlay {
-    int w;
-    int h;
-    UInt32 format;
-    int planes;
-    UInt16 *pitches;
-    UInt8 **pixels;
-    int sar_num;
-    int sar_den;
-    CVPixelBufferRef pixel_buffer;
-};
-
-@protocol IJKSDLGLViewProtocol <NSObject>
-- (UIImage*) snapshot;
-@property(nonatomic, readonly) CGFloat  fps;
-@property(nonatomic)        CGFloat  scaleFactor;
-@property(nonatomic)        BOOL  isThirdGLView;
-- (void) display_pixels: (IJKOverlay *) overlay;
-@end
-
-#endif /* IJKSDLGLViewProtocol_h */

+ 0 - 3
ios/IJKMediaFramework.framework/IJKMediaFramework

@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:337cd02d41e5ae2b758860237cbb8bf5dc0afaa2e6c7b06b269c2df4154bd9fb
-size 135450808

二進制
ios/IJKMediaFramework.framework/Info.plist


+ 0 - 6
ios/IJKMediaFramework.framework/Modules/module.modulemap

@@ -1,6 +0,0 @@
-framework module IJKMediaFramework {
-  umbrella header "IJKMediaFramework.h"
-
-  export *
-  module * { export * }
-}

+ 0 - 32
ios/IJKMediaFramework.framework/libyuv/include/libyuv.h

@@ -1,32 +0,0 @@
-/*
- *  Copyright 2011 The LibYuv Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS. All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef INCLUDE_LIBYUV_H_
-#define INCLUDE_LIBYUV_H_
-
-#include "libyuv/basic_types.h"
-#include "libyuv/compare.h"
-#include "libyuv/convert.h"
-#include "libyuv/convert_argb.h"
-#include "libyuv/convert_from.h"
-#include "libyuv/convert_from_argb.h"
-#include "libyuv/cpu_id.h"
-#include "libyuv/mjpeg_decoder.h"
-#include "libyuv/planar_functions.h"
-#include "libyuv/rotate.h"
-#include "libyuv/rotate_argb.h"
-#include "libyuv/row.h"
-#include "libyuv/scale.h"
-#include "libyuv/scale_argb.h"
-#include "libyuv/scale_row.h"
-#include "libyuv/version.h"
-#include "libyuv/video_common.h"
-
-#endif  // INCLUDE_LIBYUV_H_

+ 0 - 117
ios/IJKMediaFramework.framework/libyuv/include/libyuv/basic_types.h

@@ -1,117 +0,0 @@
-/*
- *  Copyright 2011 The LibYuv Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS. All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef INCLUDE_LIBYUV_BASIC_TYPES_H_
-#define INCLUDE_LIBYUV_BASIC_TYPES_H_
-
-#include <stddef.h>  // for NULL, size_t
-
-#if defined(_MSC_VER) && (_MSC_VER < 1600)
-#include <sys/types.h>  // for uintptr_t on x86
-#else
-#include <stdint.h>  // for uintptr_t
-#endif
-
-#ifndef GG_LONGLONG
-#ifndef INT_TYPES_DEFINED
-#define INT_TYPES_DEFINED
-#ifdef COMPILER_MSVC
-typedef unsigned __int64 uint64;
-typedef __int64 int64;
-#ifndef INT64_C
-#define INT64_C(x) x##I64
-#endif
-#ifndef UINT64_C
-#define UINT64_C(x) x##UI64
-#endif
-#define INT64_F "I64"
-#else  // COMPILER_MSVC
-#if defined(__LP64__) && !defined(__OpenBSD__) && !defined(__APPLE__)
-typedef unsigned long uint64;  // NOLINT
-typedef long int64;            // NOLINT
-#ifndef INT64_C
-#define INT64_C(x) x##L
-#endif
-#ifndef UINT64_C
-#define UINT64_C(x) x##UL
-#endif
-#define INT64_F "l"
-#else  // defined(__LP64__) && !defined(__OpenBSD__) && !defined(__APPLE__)
-typedef unsigned long long uint64;  // NOLINT
-typedef long long int64;            // NOLINT
-#ifndef INT64_C
-#define INT64_C(x) x##LL
-#endif
-#ifndef UINT64_C
-#define UINT64_C(x) x##ULL
-#endif
-#define INT64_F "ll"
-#endif  // __LP64__
-#endif  // COMPILER_MSVC
-typedef unsigned int uint32;
-typedef int int32;
-typedef unsigned short uint16;  // NOLINT
-typedef short int16;            // NOLINT
-typedef unsigned char uint8;
-typedef signed char int8;
-#endif  // INT_TYPES_DEFINED
-#endif  // GG_LONGLONG
-
-// Detect compiler is for x86 or x64.
-#if defined(__x86_64__) || defined(_M_X64) || defined(__i386__) || \
-    defined(_M_IX86)
-#define CPU_X86 1
-#endif
-// Detect compiler is for ARM.
-#if defined(__arm__) || defined(_M_ARM)
-#define CPU_ARM 1
-#endif
-
-#ifndef ALIGNP
-#ifdef __cplusplus
-#define ALIGNP(p, t)        \
-  reinterpret_cast<uint8*>( \
-      ((reinterpret_cast<uintptr_t>(p) + ((t)-1)) & ~((t)-1)))
-#else
-#define ALIGNP(p, t) \
-  (uint8*)((((uintptr_t)(p) + ((t)-1)) & ~((t)-1))) /* NOLINT */
-#endif
-#endif
-
-#if !defined(LIBYUV_API)
-#if defined(_WIN32) || defined(__CYGWIN__)
-#if defined(LIBYUV_BUILDING_SHARED_LIBRARY)
-#define LIBYUV_API __declspec(dllexport)
-#elif defined(LIBYUV_USING_SHARED_LIBRARY)
-#define LIBYUV_API __declspec(dllimport)
-#else
-#define LIBYUV_API
-#endif  // LIBYUV_BUILDING_SHARED_LIBRARY
-#elif defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__APPLE__) && \
-    (defined(LIBYUV_BUILDING_SHARED_LIBRARY) ||                      \
-     defined(LIBYUV_USING_SHARED_LIBRARY))
-#define LIBYUV_API __attribute__((visibility("default")))
-#else
-#define LIBYUV_API
-#endif  // __GNUC__
-#endif  // LIBYUV_API
-
-#define LIBYUV_BOOL int
-#define LIBYUV_FALSE 0
-#define LIBYUV_TRUE 1
-
-// Visual C x86 or GCC little endian.
-#if defined(__x86_64__) || defined(_M_X64) || defined(__i386__) || \
-    defined(_M_IX86) || defined(__arm__) || defined(_M_ARM) ||     \
-    (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
-#define LIBYUV_LITTLE_ENDIAN
-#endif
-
-#endif  // INCLUDE_LIBYUV_BASIC_TYPES_H_

+ 0 - 100
ios/IJKMediaFramework.framework/libyuv/include/libyuv/compare.h

@@ -1,100 +0,0 @@
-/*
- *  Copyright 2011 The LibYuv Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS. All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef INCLUDE_LIBYUV_COMPARE_H_
-#define INCLUDE_LIBYUV_COMPARE_H_
-
-#include "libyuv/basic_types.h"
-
-#ifdef __cplusplus
-namespace libyuv {
-extern "C" {
-#endif
-
-// Compute a hash for specified memory. Seed of 5381 recommended.
-LIBYUV_API
-uint32 HashDjb2(const uint8* src, uint64 count, uint32 seed);
-
-// Scan an opaque argb image and return fourcc based on alpha offset.
-// Returns FOURCC_ARGB, FOURCC_BGRA, or 0 if unknown.
-LIBYUV_API
-uint32 ARGBDetect(const uint8* argb, int stride_argb, int width, int height);
-
-// Sum Square Error - used to compute Mean Square Error or PSNR.
-LIBYUV_API
-uint64 ComputeSumSquareError(const uint8* src_a, const uint8* src_b, int count);
-
-LIBYUV_API
-uint64 ComputeSumSquareErrorPlane(const uint8* src_a,
-                                  int stride_a,
-                                  const uint8* src_b,
-                                  int stride_b,
-                                  int width,
-                                  int height);
-
-static const int kMaxPsnr = 128;
-
-LIBYUV_API
-double SumSquareErrorToPsnr(uint64 sse, uint64 count);
-
-LIBYUV_API
-double CalcFramePsnr(const uint8* src_a,
-                     int stride_a,
-                     const uint8* src_b,
-                     int stride_b,
-                     int width,
-                     int height);
-
-LIBYUV_API
-double I420Psnr(const uint8* src_y_a,
-                int stride_y_a,
-                const uint8* src_u_a,
-                int stride_u_a,
-                const uint8* src_v_a,
-                int stride_v_a,
-                const uint8* src_y_b,
-                int stride_y_b,
-                const uint8* src_u_b,
-                int stride_u_b,
-                const uint8* src_v_b,
-                int stride_v_b,
-                int width,
-                int height);
-
-LIBYUV_API
-double CalcFrameSsim(const uint8* src_a,
-                     int stride_a,
-                     const uint8* src_b,
-                     int stride_b,
-                     int width,
-                     int height);
-
-LIBYUV_API
-double I420Ssim(const uint8* src_y_a,
-                int stride_y_a,
-                const uint8* src_u_a,
-                int stride_u_a,
-                const uint8* src_v_a,
-                int stride_v_a,
-                const uint8* src_y_b,
-                int stride_y_b,
-                const uint8* src_u_b,
-                int stride_u_b,
-                const uint8* src_v_b,
-                int stride_v_b,
-                int width,
-                int height);
-
-#ifdef __cplusplus
-}  // extern "C"
-}  // namespace libyuv
-#endif
-
-#endif  // INCLUDE_LIBYUV_COMPARE_H_

+ 0 - 84
ios/IJKMediaFramework.framework/libyuv/include/libyuv/compare_row.h

@@ -1,84 +0,0 @@
-/*
- *  Copyright 2013 The LibYuv Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS. All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef INCLUDE_LIBYUV_COMPARE_ROW_H_
-#define INCLUDE_LIBYUV_COMPARE_ROW_H_
-
-#include "libyuv/basic_types.h"
-
-#ifdef __cplusplus
-namespace libyuv {
-extern "C" {
-#endif
-
-#if defined(__pnacl__) || defined(__CLR_VER) || \
-    (defined(__i386__) && !defined(__SSE2__))
-#define LIBYUV_DISABLE_X86
-#endif
-// MemorySanitizer does not support assembly code yet. http://crbug.com/344505
-#if defined(__has_feature)
-#if __has_feature(memory_sanitizer)
-#define LIBYUV_DISABLE_X86
-#endif
-#endif
-
-// Visual C 2012 required for AVX2.
-#if defined(_M_IX86) && !defined(__clang__) && defined(_MSC_VER) && \
-    _MSC_VER >= 1700
-#define VISUALC_HAS_AVX2 1
-#endif  // VisualStudio >= 2012
-
-// clang >= 3.4.0 required for AVX2.
-#if defined(__clang__) && (defined(__x86_64__) || defined(__i386__))
-#if (__clang_major__ > 3) || (__clang_major__ == 3 && (__clang_minor__ >= 4))
-#define CLANG_HAS_AVX2 1
-#endif  // clang >= 3.4
-#endif  // __clang__
-
-#if !defined(LIBYUV_DISABLE_X86) && defined(_M_IX86) && \
-    (defined(VISUALC_HAS_AVX2) || defined(CLANG_HAS_AVX2))
-#define HAS_HASHDJB2_AVX2
-#endif
-
-// The following are available for Visual C and GCC:
-#if !defined(LIBYUV_DISABLE_X86) && \
-    (defined(__x86_64__) || (defined(__i386__) || defined(_M_IX86)))
-#define HAS_HASHDJB2_SSE41
-#define HAS_SUMSQUAREERROR_SSE2
-#endif
-
-// The following are available for Visual C and clangcl 32 bit:
-#if !defined(LIBYUV_DISABLE_X86) && defined(_M_IX86) && \
-    (defined(VISUALC_HAS_AVX2) || defined(CLANG_HAS_AVX2))
-#define HAS_HASHDJB2_AVX2
-#define HAS_SUMSQUAREERROR_AVX2
-#endif
-
-// The following are available for Neon:
-#if !defined(LIBYUV_DISABLE_NEON) && \
-    (defined(__ARM_NEON__) || defined(LIBYUV_NEON) || defined(__aarch64__))
-#define HAS_SUMSQUAREERROR_NEON
-#endif
-
-uint32 SumSquareError_C(const uint8* src_a, const uint8* src_b, int count);
-uint32 SumSquareError_SSE2(const uint8* src_a, const uint8* src_b, int count);
-uint32 SumSquareError_AVX2(const uint8* src_a, const uint8* src_b, int count);
-uint32 SumSquareError_NEON(const uint8* src_a, const uint8* src_b, int count);
-
-uint32 HashDjb2_C(const uint8* src, int count, uint32 seed);
-uint32 HashDjb2_SSE41(const uint8* src, int count, uint32 seed);
-uint32 HashDjb2_AVX2(const uint8* src, int count, uint32 seed);
-
-#ifdef __cplusplus
-}  // extern "C"
-}  // namespace libyuv
-#endif
-
-#endif  // INCLUDE_LIBYUV_COMPARE_ROW_H_

+ 0 - 366
ios/IJKMediaFramework.framework/libyuv/include/libyuv/convert.h

@@ -1,366 +0,0 @@
-/*
- *  Copyright 2011 The LibYuv Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS. All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef INCLUDE_LIBYUV_CONVERT_H_
-#define INCLUDE_LIBYUV_CONVERT_H_
-
-#include "libyuv/basic_types.h"
-
-#include "libyuv/rotate.h"  // For enum RotationMode.
-
-// TODO(fbarchard): fix WebRTC source to include following libyuv headers:
-#include "libyuv/convert_argb.h"      // For WebRTC I420ToARGB. b/620
-#include "libyuv/convert_from.h"      // For WebRTC ConvertFromI420. b/620
-#include "libyuv/planar_functions.h"  // For WebRTC I420Rect, CopyPlane. b/618
-
-#ifdef __cplusplus
-namespace libyuv {
-extern "C" {
-#endif
-
-// Convert I444 to I420.
-LIBYUV_API
-int I444ToI420(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_u,
-               int dst_stride_u,
-               uint8* dst_v,
-               int dst_stride_v,
-               int width,
-               int height);
-
-// Convert I422 to I420.
-LIBYUV_API
-int I422ToI420(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_u,
-               int dst_stride_u,
-               uint8* dst_v,
-               int dst_stride_v,
-               int width,
-               int height);
-
-// Copy I420 to I420.
-#define I420ToI420 I420Copy
-LIBYUV_API
-int I420Copy(const uint8* src_y,
-             int src_stride_y,
-             const uint8* src_u,
-             int src_stride_u,
-             const uint8* src_v,
-             int src_stride_v,
-             uint8* dst_y,
-             int dst_stride_y,
-             uint8* dst_u,
-             int dst_stride_u,
-             uint8* dst_v,
-             int dst_stride_v,
-             int width,
-             int height);
-
-// Convert I400 (grey) to I420.
-LIBYUV_API
-int I400ToI420(const uint8* src_y,
-               int src_stride_y,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_u,
-               int dst_stride_u,
-               uint8* dst_v,
-               int dst_stride_v,
-               int width,
-               int height);
-
-#define J400ToJ420 I400ToI420
-
-// Convert NV12 to I420.
-LIBYUV_API
-int NV12ToI420(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_uv,
-               int src_stride_uv,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_u,
-               int dst_stride_u,
-               uint8* dst_v,
-               int dst_stride_v,
-               int width,
-               int height);
-
-// Convert NV21 to I420.
-LIBYUV_API
-int NV21ToI420(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_vu,
-               int src_stride_vu,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_u,
-               int dst_stride_u,
-               uint8* dst_v,
-               int dst_stride_v,
-               int width,
-               int height);
-
-// Convert YUY2 to I420.
-LIBYUV_API
-int YUY2ToI420(const uint8* src_yuy2,
-               int src_stride_yuy2,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_u,
-               int dst_stride_u,
-               uint8* dst_v,
-               int dst_stride_v,
-               int width,
-               int height);
-
-// Convert UYVY to I420.
-LIBYUV_API
-int UYVYToI420(const uint8* src_uyvy,
-               int src_stride_uyvy,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_u,
-               int dst_stride_u,
-               uint8* dst_v,
-               int dst_stride_v,
-               int width,
-               int height);
-
-// Convert M420 to I420.
-LIBYUV_API
-int M420ToI420(const uint8* src_m420,
-               int src_stride_m420,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_u,
-               int dst_stride_u,
-               uint8* dst_v,
-               int dst_stride_v,
-               int width,
-               int height);
-
-// Convert Android420 to I420.
-LIBYUV_API
-int Android420ToI420(const uint8* src_y,
-                     int src_stride_y,
-                     const uint8* src_u,
-                     int src_stride_u,
-                     const uint8* src_v,
-                     int src_stride_v,
-                     int pixel_stride_uv,
-                     uint8* dst_y,
-                     int dst_stride_y,
-                     uint8* dst_u,
-                     int dst_stride_u,
-                     uint8* dst_v,
-                     int dst_stride_v,
-                     int width,
-                     int height);
-
-// ARGB little endian (bgra in memory) to I420.
-LIBYUV_API
-int ARGBToI420(const uint8* src_frame,
-               int src_stride_frame,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_u,
-               int dst_stride_u,
-               uint8* dst_v,
-               int dst_stride_v,
-               int width,
-               int height);
-
-// BGRA little endian (argb in memory) to I420.
-LIBYUV_API
-int BGRAToI420(const uint8* src_frame,
-               int src_stride_frame,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_u,
-               int dst_stride_u,
-               uint8* dst_v,
-               int dst_stride_v,
-               int width,
-               int height);
-
-// ABGR little endian (rgba in memory) to I420.
-LIBYUV_API
-int ABGRToI420(const uint8* src_frame,
-               int src_stride_frame,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_u,
-               int dst_stride_u,
-               uint8* dst_v,
-               int dst_stride_v,
-               int width,
-               int height);
-
-// RGBA little endian (abgr in memory) to I420.
-LIBYUV_API
-int RGBAToI420(const uint8* src_frame,
-               int src_stride_frame,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_u,
-               int dst_stride_u,
-               uint8* dst_v,
-               int dst_stride_v,
-               int width,
-               int height);
-
-// RGB little endian (bgr in memory) to I420.
-LIBYUV_API
-int RGB24ToI420(const uint8* src_frame,
-                int src_stride_frame,
-                uint8* dst_y,
-                int dst_stride_y,
-                uint8* dst_u,
-                int dst_stride_u,
-                uint8* dst_v,
-                int dst_stride_v,
-                int width,
-                int height);
-
-// RGB big endian (rgb in memory) to I420.
-LIBYUV_API
-int RAWToI420(const uint8* src_frame,
-              int src_stride_frame,
-              uint8* dst_y,
-              int dst_stride_y,
-              uint8* dst_u,
-              int dst_stride_u,
-              uint8* dst_v,
-              int dst_stride_v,
-              int width,
-              int height);
-
-// RGB16 (RGBP fourcc) little endian to I420.
-LIBYUV_API
-int RGB565ToI420(const uint8* src_frame,
-                 int src_stride_frame,
-                 uint8* dst_y,
-                 int dst_stride_y,
-                 uint8* dst_u,
-                 int dst_stride_u,
-                 uint8* dst_v,
-                 int dst_stride_v,
-                 int width,
-                 int height);
-
-// RGB15 (RGBO fourcc) little endian to I420.
-LIBYUV_API
-int ARGB1555ToI420(const uint8* src_frame,
-                   int src_stride_frame,
-                   uint8* dst_y,
-                   int dst_stride_y,
-                   uint8* dst_u,
-                   int dst_stride_u,
-                   uint8* dst_v,
-                   int dst_stride_v,
-                   int width,
-                   int height);
-
-// RGB12 (R444 fourcc) little endian to I420.
-LIBYUV_API
-int ARGB4444ToI420(const uint8* src_frame,
-                   int src_stride_frame,
-                   uint8* dst_y,
-                   int dst_stride_y,
-                   uint8* dst_u,
-                   int dst_stride_u,
-                   uint8* dst_v,
-                   int dst_stride_v,
-                   int width,
-                   int height);
-
-#ifdef HAVE_JPEG
-// src_width/height provided by capture.
-// dst_width/height for clipping determine final size.
-LIBYUV_API
-int MJPGToI420(const uint8* sample,
-               size_t sample_size,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_u,
-               int dst_stride_u,
-               uint8* dst_v,
-               int dst_stride_v,
-               int src_width,
-               int src_height,
-               int dst_width,
-               int dst_height);
-
-// Query size of MJPG in pixels.
-LIBYUV_API
-int MJPGSize(const uint8* sample, size_t sample_size, int* width, int* height);
-#endif
-
-// Convert camera sample to I420 with cropping, rotation and vertical flip.
-// "src_size" is needed to parse MJPG.
-// "dst_stride_y" number of bytes in a row of the dst_y plane.
-//   Normally this would be the same as dst_width, with recommended alignment
-//   to 16 bytes for better efficiency.
-//   If rotation of 90 or 270 is used, stride is affected. The caller should
-//   allocate the I420 buffer according to rotation.
-// "dst_stride_u" number of bytes in a row of the dst_u plane.
-//   Normally this would be the same as (dst_width + 1) / 2, with
-//   recommended alignment to 16 bytes for better efficiency.
-//   If rotation of 90 or 270 is used, stride is affected.
-// "crop_x" and "crop_y" are starting position for cropping.
-//   To center, crop_x = (src_width - dst_width) / 2
-//              crop_y = (src_height - dst_height) / 2
-// "src_width" / "src_height" is size of src_frame in pixels.
-//   "src_height" can be negative indicating a vertically flipped image source.
-// "crop_width" / "crop_height" is the size to crop the src to.
-//    Must be less than or equal to src_width/src_height
-//    Cropping parameters are pre-rotation.
-// "rotation" can be 0, 90, 180 or 270.
-// "format" is a fourcc. ie 'I420', 'YUY2'
-// Returns 0 for successful; -1 for invalid parameter. Non-zero for failure.
-LIBYUV_API
-int ConvertToI420(const uint8* src_frame,
-                  size_t src_size,
-                  uint8* dst_y,
-                  int dst_stride_y,
-                  uint8* dst_u,
-                  int dst_stride_u,
-                  uint8* dst_v,
-                  int dst_stride_v,
-                  int crop_x,
-                  int crop_y,
-                  int src_width,
-                  int src_height,
-                  int crop_width,
-                  int crop_height,
-                  enum RotationMode rotation,
-                  uint32 format);
-
-#ifdef __cplusplus
-}  // extern "C"
-}  // namespace libyuv
-#endif
-
-#endif  // INCLUDE_LIBYUV_CONVERT_H_

+ 0 - 454
ios/IJKMediaFramework.framework/libyuv/include/libyuv/convert_argb.h

@@ -1,454 +0,0 @@
-/*
- *  Copyright 2012 The LibYuv Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS. All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef INCLUDE_LIBYUV_CONVERT_ARGB_H_
-#define INCLUDE_LIBYUV_CONVERT_ARGB_H_
-
-#include "libyuv/basic_types.h"
-
-#include "libyuv/rotate.h"  // For enum RotationMode.
-
-// TODO(fbarchard): This set of functions should exactly match convert.h
-// TODO(fbarchard): Add tests. Create random content of right size and convert
-// with C vs Opt and or to I420 and compare.
-// TODO(fbarchard): Some of these functions lack parameter setting.
-
-#ifdef __cplusplus
-namespace libyuv {
-extern "C" {
-#endif
-
-// Alias.
-#define ARGBToARGB ARGBCopy
-
-// Copy ARGB to ARGB.
-LIBYUV_API
-int ARGBCopy(const uint8* src_argb,
-             int src_stride_argb,
-             uint8* dst_argb,
-             int dst_stride_argb,
-             int width,
-             int height);
-
-// Convert I420 to ARGB.
-LIBYUV_API
-int I420ToARGB(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_argb,
-               int dst_stride_argb,
-               int width,
-               int height);
-
-// Duplicate prototype for function in convert_from.h for remoting.
-LIBYUV_API
-int I420ToABGR(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_argb,
-               int dst_stride_argb,
-               int width,
-               int height);
-
-// Convert I422 to ARGB.
-LIBYUV_API
-int I422ToARGB(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_argb,
-               int dst_stride_argb,
-               int width,
-               int height);
-
-// Convert I444 to ARGB.
-LIBYUV_API
-int I444ToARGB(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_argb,
-               int dst_stride_argb,
-               int width,
-               int height);
-
-// Convert J444 to ARGB.
-LIBYUV_API
-int J444ToARGB(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_argb,
-               int dst_stride_argb,
-               int width,
-               int height);
-
-// Convert I444 to ABGR.
-LIBYUV_API
-int I444ToABGR(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_abgr,
-               int dst_stride_abgr,
-               int width,
-               int height);
-
-// Convert I420 with Alpha to preattenuated ARGB.
-LIBYUV_API
-int I420AlphaToARGB(const uint8* src_y,
-                    int src_stride_y,
-                    const uint8* src_u,
-                    int src_stride_u,
-                    const uint8* src_v,
-                    int src_stride_v,
-                    const uint8* src_a,
-                    int src_stride_a,
-                    uint8* dst_argb,
-                    int dst_stride_argb,
-                    int width,
-                    int height,
-                    int attenuate);
-
-// Convert I420 with Alpha to preattenuated ABGR.
-LIBYUV_API
-int I420AlphaToABGR(const uint8* src_y,
-                    int src_stride_y,
-                    const uint8* src_u,
-                    int src_stride_u,
-                    const uint8* src_v,
-                    int src_stride_v,
-                    const uint8* src_a,
-                    int src_stride_a,
-                    uint8* dst_abgr,
-                    int dst_stride_abgr,
-                    int width,
-                    int height,
-                    int attenuate);
-
-// Convert I400 (grey) to ARGB.  Reverse of ARGBToI400.
-LIBYUV_API
-int I400ToARGB(const uint8* src_y,
-               int src_stride_y,
-               uint8* dst_argb,
-               int dst_stride_argb,
-               int width,
-               int height);
-
-// Convert J400 (jpeg grey) to ARGB.
-LIBYUV_API
-int J400ToARGB(const uint8* src_y,
-               int src_stride_y,
-               uint8* dst_argb,
-               int dst_stride_argb,
-               int width,
-               int height);
-
-// Alias.
-#define YToARGB I400ToARGB
-
-// Convert NV12 to ARGB.
-LIBYUV_API
-int NV12ToARGB(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_uv,
-               int src_stride_uv,
-               uint8* dst_argb,
-               int dst_stride_argb,
-               int width,
-               int height);
-
-// Convert NV21 to ARGB.
-LIBYUV_API
-int NV21ToARGB(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_vu,
-               int src_stride_vu,
-               uint8* dst_argb,
-               int dst_stride_argb,
-               int width,
-               int height);
-
-// Convert M420 to ARGB.
-LIBYUV_API
-int M420ToARGB(const uint8* src_m420,
-               int src_stride_m420,
-               uint8* dst_argb,
-               int dst_stride_argb,
-               int width,
-               int height);
-
-// Convert YUY2 to ARGB.
-LIBYUV_API
-int YUY2ToARGB(const uint8* src_yuy2,
-               int src_stride_yuy2,
-               uint8* dst_argb,
-               int dst_stride_argb,
-               int width,
-               int height);
-
-// Convert UYVY to ARGB.
-LIBYUV_API
-int UYVYToARGB(const uint8* src_uyvy,
-               int src_stride_uyvy,
-               uint8* dst_argb,
-               int dst_stride_argb,
-               int width,
-               int height);
-
-// Convert J420 to ARGB.
-LIBYUV_API
-int J420ToARGB(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_argb,
-               int dst_stride_argb,
-               int width,
-               int height);
-
-// Convert J422 to ARGB.
-LIBYUV_API
-int J422ToARGB(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_argb,
-               int dst_stride_argb,
-               int width,
-               int height);
-
-// Convert J420 to ABGR.
-LIBYUV_API
-int J420ToABGR(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_abgr,
-               int dst_stride_abgr,
-               int width,
-               int height);
-
-// Convert J422 to ABGR.
-LIBYUV_API
-int J422ToABGR(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_abgr,
-               int dst_stride_abgr,
-               int width,
-               int height);
-
-// Convert H420 to ARGB.
-LIBYUV_API
-int H420ToARGB(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_argb,
-               int dst_stride_argb,
-               int width,
-               int height);
-
-// Convert H422 to ARGB.
-LIBYUV_API
-int H422ToARGB(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_argb,
-               int dst_stride_argb,
-               int width,
-               int height);
-
-// Convert H420 to ABGR.
-LIBYUV_API
-int H420ToABGR(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_abgr,
-               int dst_stride_abgr,
-               int width,
-               int height);
-
-// Convert H422 to ABGR.
-LIBYUV_API
-int H422ToABGR(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_abgr,
-               int dst_stride_abgr,
-               int width,
-               int height);
-
-// BGRA little endian (argb in memory) to ARGB.
-LIBYUV_API
-int BGRAToARGB(const uint8* src_frame,
-               int src_stride_frame,
-               uint8* dst_argb,
-               int dst_stride_argb,
-               int width,
-               int height);
-
-// ABGR little endian (rgba in memory) to ARGB.
-LIBYUV_API
-int ABGRToARGB(const uint8* src_frame,
-               int src_stride_frame,
-               uint8* dst_argb,
-               int dst_stride_argb,
-               int width,
-               int height);
-
-// RGBA little endian (abgr in memory) to ARGB.
-LIBYUV_API
-int RGBAToARGB(const uint8* src_frame,
-               int src_stride_frame,
-               uint8* dst_argb,
-               int dst_stride_argb,
-               int width,
-               int height);
-
-// Deprecated function name.
-#define BG24ToARGB RGB24ToARGB
-
-// RGB little endian (bgr in memory) to ARGB.
-LIBYUV_API
-int RGB24ToARGB(const uint8* src_frame,
-                int src_stride_frame,
-                uint8* dst_argb,
-                int dst_stride_argb,
-                int width,
-                int height);
-
-// RGB big endian (rgb in memory) to ARGB.
-LIBYUV_API
-int RAWToARGB(const uint8* src_frame,
-              int src_stride_frame,
-              uint8* dst_argb,
-              int dst_stride_argb,
-              int width,
-              int height);
-
-// RGB16 (RGBP fourcc) little endian to ARGB.
-LIBYUV_API
-int RGB565ToARGB(const uint8* src_frame,
-                 int src_stride_frame,
-                 uint8* dst_argb,
-                 int dst_stride_argb,
-                 int width,
-                 int height);
-
-// RGB15 (RGBO fourcc) little endian to ARGB.
-LIBYUV_API
-int ARGB1555ToARGB(const uint8* src_frame,
-                   int src_stride_frame,
-                   uint8* dst_argb,
-                   int dst_stride_argb,
-                   int width,
-                   int height);
-
-// RGB12 (R444 fourcc) little endian to ARGB.
-LIBYUV_API
-int ARGB4444ToARGB(const uint8* src_frame,
-                   int src_stride_frame,
-                   uint8* dst_argb,
-                   int dst_stride_argb,
-                   int width,
-                   int height);
-
-#ifdef HAVE_JPEG
-// src_width/height provided by capture
-// dst_width/height for clipping determine final size.
-LIBYUV_API
-int MJPGToARGB(const uint8* sample,
-               size_t sample_size,
-               uint8* dst_argb,
-               int dst_stride_argb,
-               int src_width,
-               int src_height,
-               int dst_width,
-               int dst_height);
-#endif
-
-// Convert camera sample to ARGB with cropping, rotation and vertical flip.
-// "src_size" is needed to parse MJPG.
-// "dst_stride_argb" number of bytes in a row of the dst_argb plane.
-//   Normally this would be the same as dst_width, with recommended alignment
-//   to 16 bytes for better efficiency.
-//   If rotation of 90 or 270 is used, stride is affected. The caller should
-//   allocate the I420 buffer according to rotation.
-// "dst_stride_u" number of bytes in a row of the dst_u plane.
-//   Normally this would be the same as (dst_width + 1) / 2, with
-//   recommended alignment to 16 bytes for better efficiency.
-//   If rotation of 90 or 270 is used, stride is affected.
-// "crop_x" and "crop_y" are starting position for cropping.
-//   To center, crop_x = (src_width - dst_width) / 2
-//              crop_y = (src_height - dst_height) / 2
-// "src_width" / "src_height" is size of src_frame in pixels.
-//   "src_height" can be negative indicating a vertically flipped image source.
-// "crop_width" / "crop_height" is the size to crop the src to.
-//    Must be less than or equal to src_width/src_height
-//    Cropping parameters are pre-rotation.
-// "rotation" can be 0, 90, 180 or 270.
-// "format" is a fourcc. ie 'I420', 'YUY2'
-// Returns 0 for successful; -1 for invalid parameter. Non-zero for failure.
-LIBYUV_API
-int ConvertToARGB(const uint8* src_frame,
-                  size_t src_size,
-                  uint8* dst_argb,
-                  int dst_stride_argb,
-                  int crop_x,
-                  int crop_y,
-                  int src_width,
-                  int src_height,
-                  int crop_width,
-                  int crop_height,
-                  enum RotationMode rotation,
-                  uint32 format);
-
-#ifdef __cplusplus
-}  // extern "C"
-}  // namespace libyuv
-#endif
-
-#endif  // INCLUDE_LIBYUV_CONVERT_ARGB_H_

+ 0 - 265
ios/IJKMediaFramework.framework/libyuv/include/libyuv/convert_from.h

@@ -1,265 +0,0 @@
-/*
- *  Copyright 2011 The LibYuv Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS. All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef INCLUDE_LIBYUV_CONVERT_FROM_H_
-#define INCLUDE_LIBYUV_CONVERT_FROM_H_
-
-#include "libyuv/basic_types.h"
-#include "libyuv/rotate.h"
-
-#ifdef __cplusplus
-namespace libyuv {
-extern "C" {
-#endif
-
-// See Also convert.h for conversions from formats to I420.
-
-// I420Copy in convert to I420ToI420.
-
-LIBYUV_API
-int I420ToI422(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_u,
-               int dst_stride_u,
-               uint8* dst_v,
-               int dst_stride_v,
-               int width,
-               int height);
-
-LIBYUV_API
-int I420ToI444(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_u,
-               int dst_stride_u,
-               uint8* dst_v,
-               int dst_stride_v,
-               int width,
-               int height);
-
-// Copy to I400. Source can be I420, I422, I444, I400, NV12 or NV21.
-LIBYUV_API
-int I400Copy(const uint8* src_y,
-             int src_stride_y,
-             uint8* dst_y,
-             int dst_stride_y,
-             int width,
-             int height);
-
-LIBYUV_API
-int I420ToNV12(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_uv,
-               int dst_stride_uv,
-               int width,
-               int height);
-
-LIBYUV_API
-int I420ToNV21(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_vu,
-               int dst_stride_vu,
-               int width,
-               int height);
-
-LIBYUV_API
-int I420ToYUY2(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_frame,
-               int dst_stride_frame,
-               int width,
-               int height);
-
-LIBYUV_API
-int I420ToUYVY(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_frame,
-               int dst_stride_frame,
-               int width,
-               int height);
-
-LIBYUV_API
-int I420ToARGB(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_argb,
-               int dst_stride_argb,
-               int width,
-               int height);
-
-LIBYUV_API
-int I420ToBGRA(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_argb,
-               int dst_stride_argb,
-               int width,
-               int height);
-
-LIBYUV_API
-int I420ToABGR(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_argb,
-               int dst_stride_argb,
-               int width,
-               int height);
-
-LIBYUV_API
-int I420ToRGBA(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_rgba,
-               int dst_stride_rgba,
-               int width,
-               int height);
-
-LIBYUV_API
-int I420ToRGB24(const uint8* src_y,
-                int src_stride_y,
-                const uint8* src_u,
-                int src_stride_u,
-                const uint8* src_v,
-                int src_stride_v,
-                uint8* dst_frame,
-                int dst_stride_frame,
-                int width,
-                int height);
-
-LIBYUV_API
-int I420ToRAW(const uint8* src_y,
-              int src_stride_y,
-              const uint8* src_u,
-              int src_stride_u,
-              const uint8* src_v,
-              int src_stride_v,
-              uint8* dst_frame,
-              int dst_stride_frame,
-              int width,
-              int height);
-
-LIBYUV_API
-int I420ToRGB565(const uint8* src_y,
-                 int src_stride_y,
-                 const uint8* src_u,
-                 int src_stride_u,
-                 const uint8* src_v,
-                 int src_stride_v,
-                 uint8* dst_frame,
-                 int dst_stride_frame,
-                 int width,
-                 int height);
-
-// Convert I420 To RGB565 with 4x4 dither matrix (16 bytes).
-// Values in dither matrix from 0 to 7 recommended.
-// The order of the dither matrix is first byte is upper left.
-
-LIBYUV_API
-int I420ToRGB565Dither(const uint8* src_y,
-                       int src_stride_y,
-                       const uint8* src_u,
-                       int src_stride_u,
-                       const uint8* src_v,
-                       int src_stride_v,
-                       uint8* dst_frame,
-                       int dst_stride_frame,
-                       const uint8* dither4x4,
-                       int width,
-                       int height);
-
-LIBYUV_API
-int I420ToARGB1555(const uint8* src_y,
-                   int src_stride_y,
-                   const uint8* src_u,
-                   int src_stride_u,
-                   const uint8* src_v,
-                   int src_stride_v,
-                   uint8* dst_frame,
-                   int dst_stride_frame,
-                   int width,
-                   int height);
-
-LIBYUV_API
-int I420ToARGB4444(const uint8* src_y,
-                   int src_stride_y,
-                   const uint8* src_u,
-                   int src_stride_u,
-                   const uint8* src_v,
-                   int src_stride_v,
-                   uint8* dst_frame,
-                   int dst_stride_frame,
-                   int width,
-                   int height);
-
-// Convert I420 to specified format.
-// "dst_sample_stride" is bytes in a row for the destination. Pass 0 if the
-//    buffer has contiguous rows. Can be negative. A multiple of 16 is optimal.
-LIBYUV_API
-int ConvertFromI420(const uint8* y,
-                    int y_stride,
-                    const uint8* u,
-                    int u_stride,
-                    const uint8* v,
-                    int v_stride,
-                    uint8* dst_sample,
-                    int dst_sample_stride,
-                    int width,
-                    int height,
-                    uint32 format);
-
-#ifdef __cplusplus
-}  // extern "C"
-}  // namespace libyuv
-#endif
-
-#endif  // INCLUDE_LIBYUV_CONVERT_FROM_H_

+ 0 - 265
ios/IJKMediaFramework.framework/libyuv/include/libyuv/convert_from_argb.h

@@ -1,265 +0,0 @@
-/*
- *  Copyright 2012 The LibYuv Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS. All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef INCLUDE_LIBYUV_CONVERT_FROM_ARGB_H_
-#define INCLUDE_LIBYUV_CONVERT_FROM_ARGB_H_
-
-#include "libyuv/basic_types.h"
-
-#ifdef __cplusplus
-namespace libyuv {
-extern "C" {
-#endif
-
-// Copy ARGB to ARGB.
-#define ARGBToARGB ARGBCopy
-LIBYUV_API
-int ARGBCopy(const uint8* src_argb,
-             int src_stride_argb,
-             uint8* dst_argb,
-             int dst_stride_argb,
-             int width,
-             int height);
-
-// Convert ARGB To BGRA.
-LIBYUV_API
-int ARGBToBGRA(const uint8* src_argb,
-               int src_stride_argb,
-               uint8* dst_bgra,
-               int dst_stride_bgra,
-               int width,
-               int height);
-
-// Convert ARGB To ABGR.
-LIBYUV_API
-int ARGBToABGR(const uint8* src_argb,
-               int src_stride_argb,
-               uint8* dst_abgr,
-               int dst_stride_abgr,
-               int width,
-               int height);
-
-// Convert ARGB To RGBA.
-LIBYUV_API
-int ARGBToRGBA(const uint8* src_argb,
-               int src_stride_argb,
-               uint8* dst_rgba,
-               int dst_stride_rgba,
-               int width,
-               int height);
-
-// Convert ARGB To RGB24.
-LIBYUV_API
-int ARGBToRGB24(const uint8* src_argb,
-                int src_stride_argb,
-                uint8* dst_rgb24,
-                int dst_stride_rgb24,
-                int width,
-                int height);
-
-// Convert ARGB To RAW.
-LIBYUV_API
-int ARGBToRAW(const uint8* src_argb,
-              int src_stride_argb,
-              uint8* dst_rgb,
-              int dst_stride_rgb,
-              int width,
-              int height);
-
-// Convert ARGB To RGB565.
-LIBYUV_API
-int ARGBToRGB565(const uint8* src_argb,
-                 int src_stride_argb,
-                 uint8* dst_rgb565,
-                 int dst_stride_rgb565,
-                 int width,
-                 int height);
-
-// Convert ARGB To RGB565 with 4x4 dither matrix (16 bytes).
-// Values in dither matrix from 0 to 7 recommended.
-// The order of the dither matrix is first byte is upper left.
-// TODO(fbarchard): Consider pointer to 2d array for dither4x4.
-// const uint8(*dither)[4][4];
-LIBYUV_API
-int ARGBToRGB565Dither(const uint8* src_argb,
-                       int src_stride_argb,
-                       uint8* dst_rgb565,
-                       int dst_stride_rgb565,
-                       const uint8* dither4x4,
-                       int width,
-                       int height);
-
-// Convert ARGB To ARGB1555.
-LIBYUV_API
-int ARGBToARGB1555(const uint8* src_argb,
-                   int src_stride_argb,
-                   uint8* dst_argb1555,
-                   int dst_stride_argb1555,
-                   int width,
-                   int height);
-
-// Convert ARGB To ARGB4444.
-LIBYUV_API
-int ARGBToARGB4444(const uint8* src_argb,
-                   int src_stride_argb,
-                   uint8* dst_argb4444,
-                   int dst_stride_argb4444,
-                   int width,
-                   int height);
-
-// Convert ARGB To I444.
-LIBYUV_API
-int ARGBToI444(const uint8* src_argb,
-               int src_stride_argb,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_u,
-               int dst_stride_u,
-               uint8* dst_v,
-               int dst_stride_v,
-               int width,
-               int height);
-
-// Convert ARGB To I422.
-LIBYUV_API
-int ARGBToI422(const uint8* src_argb,
-               int src_stride_argb,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_u,
-               int dst_stride_u,
-               uint8* dst_v,
-               int dst_stride_v,
-               int width,
-               int height);
-
-// Convert ARGB To I420. (also in convert.h)
-LIBYUV_API
-int ARGBToI420(const uint8* src_argb,
-               int src_stride_argb,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_u,
-               int dst_stride_u,
-               uint8* dst_v,
-               int dst_stride_v,
-               int width,
-               int height);
-
-// Convert ARGB to J420. (JPeg full range I420).
-LIBYUV_API
-int ARGBToJ420(const uint8* src_argb,
-               int src_stride_argb,
-               uint8* dst_yj,
-               int dst_stride_yj,
-               uint8* dst_u,
-               int dst_stride_u,
-               uint8* dst_v,
-               int dst_stride_v,
-               int width,
-               int height);
-
-// Convert ARGB to J422.
-LIBYUV_API
-int ARGBToJ422(const uint8* src_argb,
-               int src_stride_argb,
-               uint8* dst_yj,
-               int dst_stride_yj,
-               uint8* dst_u,
-               int dst_stride_u,
-               uint8* dst_v,
-               int dst_stride_v,
-               int width,
-               int height);
-
-// Convert ARGB to J400. (JPeg full range).
-LIBYUV_API
-int ARGBToJ400(const uint8* src_argb,
-               int src_stride_argb,
-               uint8* dst_yj,
-               int dst_stride_yj,
-               int width,
-               int height);
-
-// Convert ARGB to I400.
-LIBYUV_API
-int ARGBToI400(const uint8* src_argb,
-               int src_stride_argb,
-               uint8* dst_y,
-               int dst_stride_y,
-               int width,
-               int height);
-
-// Convert ARGB to G. (Reverse of J400toARGB, which replicates G back to ARGB)
-LIBYUV_API
-int ARGBToG(const uint8* src_argb,
-            int src_stride_argb,
-            uint8* dst_g,
-            int dst_stride_g,
-            int width,
-            int height);
-
-// Convert ARGB To NV12.
-LIBYUV_API
-int ARGBToNV12(const uint8* src_argb,
-               int src_stride_argb,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_uv,
-               int dst_stride_uv,
-               int width,
-               int height);
-
-// Convert ARGB To NV21.
-LIBYUV_API
-int ARGBToNV21(const uint8* src_argb,
-               int src_stride_argb,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_vu,
-               int dst_stride_vu,
-               int width,
-               int height);
-
-// Convert ARGB To NV21.
-LIBYUV_API
-int ARGBToNV21(const uint8* src_argb,
-               int src_stride_argb,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_vu,
-               int dst_stride_vu,
-               int width,
-               int height);
-
-// Convert ARGB To YUY2.
-LIBYUV_API
-int ARGBToYUY2(const uint8* src_argb,
-               int src_stride_argb,
-               uint8* dst_yuy2,
-               int dst_stride_yuy2,
-               int width,
-               int height);
-
-// Convert ARGB To UYVY.
-LIBYUV_API
-int ARGBToUYVY(const uint8* src_argb,
-               int src_stride_argb,
-               uint8* dst_uyvy,
-               int dst_stride_uyvy,
-               int width,
-               int height);
-
-#ifdef __cplusplus
-}  // extern "C"
-}  // namespace libyuv
-#endif
-
-#endif  // INCLUDE_LIBYUV_CONVERT_FROM_ARGB_H_

+ 0 - 83
ios/IJKMediaFramework.framework/libyuv/include/libyuv/cpu_id.h

@@ -1,83 +0,0 @@
-/*
- *  Copyright 2011 The LibYuv Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS. All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef INCLUDE_LIBYUV_CPU_ID_H_
-#define INCLUDE_LIBYUV_CPU_ID_H_
-
-#include "libyuv/basic_types.h"
-
-#ifdef __cplusplus
-namespace libyuv {
-extern "C" {
-#endif
-
-// Internal flag to indicate cpuid requires initialization.
-static const int kCpuInitialized = 0x1;
-
-// These flags are only valid on ARM processors.
-static const int kCpuHasARM = 0x2;
-static const int kCpuHasNEON = 0x4;
-// 0x8 reserved for future ARM flag.
-
-// These flags are only valid on x86 processors.
-static const int kCpuHasX86 = 0x10;
-static const int kCpuHasSSE2 = 0x20;
-static const int kCpuHasSSSE3 = 0x40;
-static const int kCpuHasSSE41 = 0x80;
-static const int kCpuHasSSE42 = 0x100;  // unused at this time.
-static const int kCpuHasAVX = 0x200;
-static const int kCpuHasAVX2 = 0x400;
-static const int kCpuHasERMS = 0x800;
-static const int kCpuHasFMA3 = 0x1000;
-static const int kCpuHasAVX3 = 0x2000;
-static const int kCpuHasF16C = 0x4000;
-
-// 0x8000 reserved for future X86 flags.
-
-// These flags are only valid on MIPS processors.
-static const int kCpuHasMIPS = 0x10000;
-static const int kCpuHasDSPR2 = 0x20000;
-static const int kCpuHasMSA = 0x40000;
-
-// Internal function used to auto-init.
-LIBYUV_API
-int InitCpuFlags(void);
-
-// Internal function for parsing /proc/cpuinfo.
-LIBYUV_API
-int ArmCpuCaps(const char* cpuinfo_name);
-
-// Detect CPU has SSE2 etc.
-// Test_flag parameter should be one of kCpuHas constants above.
-// returns non-zero if instruction set is detected
-static __inline int TestCpuFlag(int test_flag) {
-  LIBYUV_API extern int cpu_info_;
-  return (!cpu_info_ ? InitCpuFlags() : cpu_info_) & test_flag;
-}
-
-// For testing, allow CPU flags to be disabled.
-// ie MaskCpuFlags(~kCpuHasSSSE3) to disable SSSE3.
-// MaskCpuFlags(-1) to enable all cpu specific optimizations.
-// MaskCpuFlags(1) to disable all cpu specific optimizations.
-LIBYUV_API
-void MaskCpuFlags(int enable_flags);
-
-// Low level cpuid for X86. Returns zeros on other CPUs.
-// eax is the info type that you want.
-// ecx is typically the cpu number, and should normally be zero.
-LIBYUV_API
-void CpuId(uint32 eax, uint32 ecx, uint32* cpu_info);
-
-#ifdef __cplusplus
-}  // extern "C"
-}  // namespace libyuv
-#endif
-
-#endif  // INCLUDE_LIBYUV_CPU_ID_H_

+ 0 - 169
ios/IJKMediaFramework.framework/libyuv/include/libyuv/macros_msa.h

@@ -1,169 +0,0 @@
-/*
- *  Copyright 2016 The LibYuv Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS. All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef INCLUDE_LIBYUV_MACROS_MSA_H_
-#define INCLUDE_LIBYUV_MACROS_MSA_H_
-
-#if !defined(LIBYUV_DISABLE_MSA) && defined(__mips_msa)
-#include <msa.h>
-#include <stdint.h>
-
-#if (__mips_isa_rev >= 6)
-#define LW(psrc)                                     \
-  ({                                                 \
-    uint8* psrc_lw_m = (uint8*)(psrc); /* NOLINT */  \
-    uint32 val_m;                                    \
-    asm volatile("lw  %[val_m],  %[psrc_lw_m]  \n\t" \
-                 : [val_m] "=r"(val_m)               \
-                 : [psrc_lw_m] "m"(*psrc_lw_m));     \
-    val_m;                                           \
-  })
-
-#if (__mips == 64)
-#define LD(psrc)                                     \
-  ({                                                 \
-    uint8* psrc_ld_m = (uint8*)(psrc); /* NOLINT */  \
-    uint64 val_m = 0;                                \
-    asm volatile("ld  %[val_m],  %[psrc_ld_m]  \n\t" \
-                 : [val_m] "=r"(val_m)               \
-                 : [psrc_ld_m] "m"(*psrc_ld_m));     \
-    val_m;                                           \
-  })
-#else  // !(__mips == 64)
-#define LD(psrc)                                                       \
-  ({                                                                   \
-    uint8* psrc_ld_m = (uint8*)(psrc); /* NOLINT */                    \
-    uint32 val0_m, val1_m;                                             \
-    uint64 val_m = 0;                                                  \
-    val0_m = LW(psrc_ld_m);                                            \
-    val1_m = LW(psrc_ld_m + 4);                                        \
-    val_m = (uint64)(val1_m);                             /* NOLINT */ \
-    val_m = (uint64)((val_m << 32) & 0xFFFFFFFF00000000); /* NOLINT */ \
-    val_m = (uint64)(val_m | (uint64)val0_m);             /* NOLINT */ \
-    val_m;                                                             \
-  })
-#endif  // (__mips == 64)
-#else   // !(__mips_isa_rev >= 6)
-#define LW(psrc)                                      \
-  ({                                                  \
-    uint8* psrc_lw_m = (uint8*)(psrc); /* NOLINT */   \
-    uint32 val_m;                                     \
-    asm volatile("ulw  %[val_m],  %[psrc_lw_m]  \n\t" \
-                 : [val_m] "=r"(val_m)                \
-                 : [psrc_lw_m] "m"(*psrc_lw_m));      \
-    val_m;                                            \
-  })
-
-#if (__mips == 64)
-#define LD(psrc)                                      \
-  ({                                                  \
-    uint8* psrc_ld_m = (uint8*)(psrc); /* NOLINT */   \
-    uint64 val_m = 0;                                 \
-    asm volatile("uld  %[val_m],  %[psrc_ld_m]  \n\t" \
-                 : [val_m] "=r"(val_m)                \
-                 : [psrc_ld_m] "m"(*psrc_ld_m));      \
-    val_m;                                            \
-  })
-#else  // !(__mips == 64)
-#define LD(psrc)                                                       \
-  ({                                                                   \
-    uint8* psrc_ld_m = (uint8*)(psrc); /* NOLINT */                    \
-    uint32 val0_m, val1_m;                                             \
-    uint64 val_m = 0;                                                  \
-    val0_m = LW(psrc_ld_m);                                            \
-    val1_m = LW(psrc_ld_m + 4);                                        \
-    val_m = (uint64)(val1_m);                             /* NOLINT */ \
-    val_m = (uint64)((val_m << 32) & 0xFFFFFFFF00000000); /* NOLINT */ \
-    val_m = (uint64)(val_m | (uint64)val0_m);             /* NOLINT */ \
-    val_m;                                                             \
-  })
-#endif  // (__mips == 64)
-#endif  // (__mips_isa_rev >= 6)
-
-// TODO(fbarchard): Consider removing __VAR_ARGS versions.
-#define LD_B(RTYPE, psrc) *((RTYPE*)(psrc)) /* NOLINT */
-#define LD_UB(...) LD_B(v16u8, __VA_ARGS__)
-
-#define ST_B(RTYPE, in, pdst) *((RTYPE*)(pdst)) = (in) /* NOLINT */
-#define ST_UB(...) ST_B(v16u8, __VA_ARGS__)
-
-/* Description : Load two vectors with 16 'byte' sized elements
-   Arguments   : Inputs  - psrc, stride
-                 Outputs - out0, out1
-                 Return Type - as per RTYPE
-   Details     : Load 16 byte elements in 'out0' from (psrc)
-                 Load 16 byte elements in 'out1' from (psrc + stride)
-*/
-#define LD_B2(RTYPE, psrc, stride, out0, out1) \
-  {                                            \
-    out0 = LD_B(RTYPE, (psrc));                \
-    out1 = LD_B(RTYPE, (psrc) + stride);       \
-  }
-#define LD_UB2(...) LD_B2(v16u8, __VA_ARGS__)
-
-#define LD_B4(RTYPE, psrc, stride, out0, out1, out2, out3) \
-  {                                                        \
-    LD_B2(RTYPE, (psrc), stride, out0, out1);              \
-    LD_B2(RTYPE, (psrc) + 2 * stride, stride, out2, out3); \
-  }
-#define LD_UB4(...) LD_B4(v16u8, __VA_ARGS__)
-
-/* Description : Store two vectors with stride each having 16 'byte' sized
-                 elements
-   Arguments   : Inputs - in0, in1, pdst, stride
-   Details     : Store 16 byte elements from 'in0' to (pdst)
-                 Store 16 byte elements from 'in1' to (pdst + stride)
-*/
-#define ST_B2(RTYPE, in0, in1, pdst, stride) \
-  {                                          \
-    ST_B(RTYPE, in0, (pdst));                \
-    ST_B(RTYPE, in1, (pdst) + stride);       \
-  }
-#define ST_UB2(...) ST_B2(v16u8, __VA_ARGS__)
-
-#define ST_B4(RTYPE, in0, in1, in2, in3, pdst, stride)   \
-  {                                                      \
-    ST_B2(RTYPE, in0, in1, (pdst), stride);              \
-    ST_B2(RTYPE, in2, in3, (pdst) + 2 * stride, stride); \
-  }
-#define ST_UB4(...) ST_B4(v16u8, __VA_ARGS__)
-
-// TODO(fbarchard): Consider using __msa_vshf_b and __msa_ilvr_b directly.
-/* Description : Shuffle byte vector elements as per mask vector
-   Arguments   : Inputs  - in0, in1, in2, in3, mask0, mask1
-                 Outputs - out0, out1
-                 Return Type - as per RTYPE
-   Details     : Byte elements from 'in0' & 'in1' are copied selectively to
-                 'out0' as per control vector 'mask0'
-*/
-#define VSHF_B2(RTYPE, in0, in1, in2, in3, mask0, mask1, out0, out1)  \
-  {                                                                   \
-    out0 = (RTYPE)__msa_vshf_b((v16i8)mask0, (v16i8)in1, (v16i8)in0); \
-    out1 = (RTYPE)__msa_vshf_b((v16i8)mask1, (v16i8)in3, (v16i8)in2); \
-  }
-#define VSHF_B2_UB(...) VSHF_B2(v16u8, __VA_ARGS__)
-
-/* Description : Interleave both left and right half of input vectors
-   Arguments   : Inputs  - in0, in1
-                 Outputs - out0, out1
-                 Return Type - as per RTYPE
-   Details     : Right half of byte elements from 'in0' and 'in1' are
-                 interleaved and written to 'out0'
-*/
-#define ILVRL_B2(RTYPE, in0, in1, out0, out1)           \
-  {                                                     \
-    out0 = (RTYPE)__msa_ilvr_b((v16i8)in0, (v16i8)in1); \
-    out1 = (RTYPE)__msa_ilvl_b((v16i8)in0, (v16i8)in1); \
-  }
-#define ILVRL_B2_UB(...) ILVRL_B2(v16u8, __VA_ARGS__)
-
-#endif /* !defined(LIBYUV_DISABLE_MSA) && defined(__mips_msa) */
-
-#endif  // INCLUDE_LIBYUV_MACROS_MSA_H_

+ 0 - 195
ios/IJKMediaFramework.framework/libyuv/include/libyuv/mjpeg_decoder.h

@@ -1,195 +0,0 @@
-/*
- *  Copyright 2012 The LibYuv Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS. All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef INCLUDE_LIBYUV_MJPEG_DECODER_H_
-#define INCLUDE_LIBYUV_MJPEG_DECODER_H_
-
-#include "libyuv/basic_types.h"
-
-#ifdef __cplusplus
-// NOTE: For a simplified public API use convert.h MJPGToI420().
-
-struct jpeg_common_struct;
-struct jpeg_decompress_struct;
-struct jpeg_source_mgr;
-
-namespace libyuv {
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-LIBYUV_BOOL ValidateJpeg(const uint8* sample, size_t sample_size);
-
-#ifdef __cplusplus
-}  // extern "C"
-#endif
-
-static const uint32 kUnknownDataSize = 0xFFFFFFFF;
-
-enum JpegSubsamplingType {
-  kJpegYuv420,
-  kJpegYuv422,
-  kJpegYuv444,
-  kJpegYuv400,
-  kJpegUnknown
-};
-
-struct Buffer {
-  const uint8* data;
-  int len;
-};
-
-struct BufferVector {
-  Buffer* buffers;
-  int len;
-  int pos;
-};
-
-struct SetJmpErrorMgr;
-
-// MJPEG ("Motion JPEG") is a pseudo-standard video codec where the frames are
-// simply independent JPEG images with a fixed huffman table (which is omitted).
-// It is rarely used in video transmission, but is common as a camera capture
-// format, especially in Logitech devices. This class implements a decoder for
-// MJPEG frames.
-//
-// See http://tools.ietf.org/html/rfc2435
-class LIBYUV_API MJpegDecoder {
- public:
-  typedef void (*CallbackFunction)(void* opaque,
-                                   const uint8* const* data,
-                                   const int* strides,
-                                   int rows);
-
-  static const int kColorSpaceUnknown;
-  static const int kColorSpaceGrayscale;
-  static const int kColorSpaceRgb;
-  static const int kColorSpaceYCbCr;
-  static const int kColorSpaceCMYK;
-  static const int kColorSpaceYCCK;
-
-  MJpegDecoder();
-  ~MJpegDecoder();
-
-  // Loads a new frame, reads its headers, and determines the uncompressed
-  // image format.
-  // Returns LIBYUV_TRUE if image looks valid and format is supported.
-  // If return value is LIBYUV_TRUE, then the values for all the following
-  // getters are populated.
-  // src_len is the size of the compressed mjpeg frame in bytes.
-  LIBYUV_BOOL LoadFrame(const uint8* src, size_t src_len);
-
-  // Returns width of the last loaded frame in pixels.
-  int GetWidth();
-
-  // Returns height of the last loaded frame in pixels.
-  int GetHeight();
-
-  // Returns format of the last loaded frame. The return value is one of the
-  // kColorSpace* constants.
-  int GetColorSpace();
-
-  // Number of color components in the color space.
-  int GetNumComponents();
-
-  // Sample factors of the n-th component.
-  int GetHorizSampFactor(int component);
-
-  int GetVertSampFactor(int component);
-
-  int GetHorizSubSampFactor(int component);
-
-  int GetVertSubSampFactor(int component);
-
-  // Public for testability.
-  int GetImageScanlinesPerImcuRow();
-
-  // Public for testability.
-  int GetComponentScanlinesPerImcuRow(int component);
-
-  // Width of a component in bytes.
-  int GetComponentWidth(int component);
-
-  // Height of a component.
-  int GetComponentHeight(int component);
-
-  // Width of a component in bytes with padding for DCTSIZE. Public for testing.
-  int GetComponentStride(int component);
-
-  // Size of a component in bytes.
-  int GetComponentSize(int component);
-
-  // Call this after LoadFrame() if you decide you don't want to decode it
-  // after all.
-  LIBYUV_BOOL UnloadFrame();
-
-  // Decodes the entire image into a one-buffer-per-color-component format.
-  // dst_width must match exactly. dst_height must be <= to image height; if
-  // less, the image is cropped. "planes" must have size equal to at least
-  // GetNumComponents() and they must point to non-overlapping buffers of size
-  // at least GetComponentSize(i). The pointers in planes are incremented
-  // to point to after the end of the written data.
-  // TODO(fbarchard): Add dst_x, dst_y to allow specific rect to be decoded.
-  LIBYUV_BOOL DecodeToBuffers(uint8** planes, int dst_width, int dst_height);
-
-  // Decodes the entire image and passes the data via repeated calls to a
-  // callback function. Each call will get the data for a whole number of
-  // image scanlines.
-  // TODO(fbarchard): Add dst_x, dst_y to allow specific rect to be decoded.
-  LIBYUV_BOOL DecodeToCallback(CallbackFunction fn,
-                               void* opaque,
-                               int dst_width,
-                               int dst_height);
-
-  // The helper function which recognizes the jpeg sub-sampling type.
-  static JpegSubsamplingType JpegSubsamplingTypeHelper(
-      int* subsample_x,
-      int* subsample_y,
-      int number_of_components);
-
- private:
-  void AllocOutputBuffers(int num_outbufs);
-  void DestroyOutputBuffers();
-
-  LIBYUV_BOOL StartDecode();
-  LIBYUV_BOOL FinishDecode();
-
-  void SetScanlinePointers(uint8** data);
-  LIBYUV_BOOL DecodeImcuRow();
-
-  int GetComponentScanlinePadding(int component);
-
-  // A buffer holding the input data for a frame.
-  Buffer buf_;
-  BufferVector buf_vec_;
-
-  jpeg_decompress_struct* decompress_struct_;
-  jpeg_source_mgr* source_mgr_;
-  SetJmpErrorMgr* error_mgr_;
-
-  // LIBYUV_TRUE iff at least one component has scanline padding. (i.e.,
-  // GetComponentScanlinePadding() != 0.)
-  LIBYUV_BOOL has_scanline_padding_;
-
-  // Temporaries used to point to scanline outputs.
-  int num_outbufs_;  // Outermost size of all arrays below.
-  uint8*** scanlines_;
-  int* scanlines_sizes_;
-  // Temporary buffer used for decoding when we can't decode directly to the
-  // output buffers. Large enough for just one iMCU row.
-  uint8** databuf_;
-  int* databuf_strides_;
-};
-
-}  // namespace libyuv
-
-#endif  //  __cplusplus
-#endif  // INCLUDE_LIBYUV_MJPEG_DECODER_H_

+ 0 - 796
ios/IJKMediaFramework.framework/libyuv/include/libyuv/planar_functions.h

@@ -1,796 +0,0 @@
-/*
- *  Copyright 2011 The LibYuv Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS. All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef INCLUDE_LIBYUV_PLANAR_FUNCTIONS_H_
-#define INCLUDE_LIBYUV_PLANAR_FUNCTIONS_H_
-
-#include "libyuv/basic_types.h"
-
-// TODO(fbarchard): Remove the following headers includes.
-#include "libyuv/convert.h"
-#include "libyuv/convert_argb.h"
-
-#ifdef __cplusplus
-namespace libyuv {
-extern "C" {
-#endif
-
-// Copy a plane of data.
-LIBYUV_API
-void CopyPlane(const uint8* src_y,
-               int src_stride_y,
-               uint8* dst_y,
-               int dst_stride_y,
-               int width,
-               int height);
-
-LIBYUV_API
-void CopyPlane_16(const uint16* src_y,
-                  int src_stride_y,
-                  uint16* dst_y,
-                  int dst_stride_y,
-                  int width,
-                  int height);
-
-// Set a plane of data to a 32 bit value.
-LIBYUV_API
-void SetPlane(uint8* dst_y,
-              int dst_stride_y,
-              int width,
-              int height,
-              uint32 value);
-
-// Split interleaved UV plane into separate U and V planes.
-LIBYUV_API
-void SplitUVPlane(const uint8* src_uv,
-                  int src_stride_uv,
-                  uint8* dst_u,
-                  int dst_stride_u,
-                  uint8* dst_v,
-                  int dst_stride_v,
-                  int width,
-                  int height);
-
-// Merge separate U and V planes into one interleaved UV plane.
-LIBYUV_API
-void MergeUVPlane(const uint8* src_u,
-                  int src_stride_u,
-                  const uint8* src_v,
-                  int src_stride_v,
-                  uint8* dst_uv,
-                  int dst_stride_uv,
-                  int width,
-                  int height);
-
-// Copy I400.  Supports inverting.
-LIBYUV_API
-int I400ToI400(const uint8* src_y,
-               int src_stride_y,
-               uint8* dst_y,
-               int dst_stride_y,
-               int width,
-               int height);
-
-#define J400ToJ400 I400ToI400
-
-// Copy I422 to I422.
-#define I422ToI422 I422Copy
-LIBYUV_API
-int I422Copy(const uint8* src_y,
-             int src_stride_y,
-             const uint8* src_u,
-             int src_stride_u,
-             const uint8* src_v,
-             int src_stride_v,
-             uint8* dst_y,
-             int dst_stride_y,
-             uint8* dst_u,
-             int dst_stride_u,
-             uint8* dst_v,
-             int dst_stride_v,
-             int width,
-             int height);
-
-// Copy I444 to I444.
-#define I444ToI444 I444Copy
-LIBYUV_API
-int I444Copy(const uint8* src_y,
-             int src_stride_y,
-             const uint8* src_u,
-             int src_stride_u,
-             const uint8* src_v,
-             int src_stride_v,
-             uint8* dst_y,
-             int dst_stride_y,
-             uint8* dst_u,
-             int dst_stride_u,
-             uint8* dst_v,
-             int dst_stride_v,
-             int width,
-             int height);
-
-// Convert YUY2 to I422.
-LIBYUV_API
-int YUY2ToI422(const uint8* src_yuy2,
-               int src_stride_yuy2,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_u,
-               int dst_stride_u,
-               uint8* dst_v,
-               int dst_stride_v,
-               int width,
-               int height);
-
-// Convert UYVY to I422.
-LIBYUV_API
-int UYVYToI422(const uint8* src_uyvy,
-               int src_stride_uyvy,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_u,
-               int dst_stride_u,
-               uint8* dst_v,
-               int dst_stride_v,
-               int width,
-               int height);
-
-LIBYUV_API
-int YUY2ToNV12(const uint8* src_yuy2,
-               int src_stride_yuy2,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_uv,
-               int dst_stride_uv,
-               int width,
-               int height);
-
-LIBYUV_API
-int UYVYToNV12(const uint8* src_uyvy,
-               int src_stride_uyvy,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_uv,
-               int dst_stride_uv,
-               int width,
-               int height);
-
-LIBYUV_API
-int YUY2ToY(const uint8* src_yuy2,
-            int src_stride_yuy2,
-            uint8* dst_y,
-            int dst_stride_y,
-            int width,
-            int height);
-
-// Convert I420 to I400. (calls CopyPlane ignoring u/v).
-LIBYUV_API
-int I420ToI400(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_y,
-               int dst_stride_y,
-               int width,
-               int height);
-
-// Alias
-#define J420ToJ400 I420ToI400
-#define I420ToI420Mirror I420Mirror
-
-// I420 mirror.
-LIBYUV_API
-int I420Mirror(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_u,
-               int dst_stride_u,
-               uint8* dst_v,
-               int dst_stride_v,
-               int width,
-               int height);
-
-// Alias
-#define I400ToI400Mirror I400Mirror
-
-// I400 mirror.  A single plane is mirrored horizontally.
-// Pass negative height to achieve 180 degree rotation.
-LIBYUV_API
-int I400Mirror(const uint8* src_y,
-               int src_stride_y,
-               uint8* dst_y,
-               int dst_stride_y,
-               int width,
-               int height);
-
-// Alias
-#define ARGBToARGBMirror ARGBMirror
-
-// ARGB mirror.
-LIBYUV_API
-int ARGBMirror(const uint8* src_argb,
-               int src_stride_argb,
-               uint8* dst_argb,
-               int dst_stride_argb,
-               int width,
-               int height);
-
-// Convert NV12 to RGB565.
-LIBYUV_API
-int NV12ToRGB565(const uint8* src_y,
-                 int src_stride_y,
-                 const uint8* src_uv,
-                 int src_stride_uv,
-                 uint8* dst_rgb565,
-                 int dst_stride_rgb565,
-                 int width,
-                 int height);
-
-// I422ToARGB is in convert_argb.h
-// Convert I422 to BGRA.
-LIBYUV_API
-int I422ToBGRA(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_bgra,
-               int dst_stride_bgra,
-               int width,
-               int height);
-
-// Convert I422 to ABGR.
-LIBYUV_API
-int I422ToABGR(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_abgr,
-               int dst_stride_abgr,
-               int width,
-               int height);
-
-// Convert I422 to RGBA.
-LIBYUV_API
-int I422ToRGBA(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_rgba,
-               int dst_stride_rgba,
-               int width,
-               int height);
-
-// Alias
-#define RGB24ToRAW RAWToRGB24
-
-LIBYUV_API
-int RAWToRGB24(const uint8* src_raw,
-               int src_stride_raw,
-               uint8* dst_rgb24,
-               int dst_stride_rgb24,
-               int width,
-               int height);
-
-// Draw a rectangle into I420.
-LIBYUV_API
-int I420Rect(uint8* dst_y,
-             int dst_stride_y,
-             uint8* dst_u,
-             int dst_stride_u,
-             uint8* dst_v,
-             int dst_stride_v,
-             int x,
-             int y,
-             int width,
-             int height,
-             int value_y,
-             int value_u,
-             int value_v);
-
-// Draw a rectangle into ARGB.
-LIBYUV_API
-int ARGBRect(uint8* dst_argb,
-             int dst_stride_argb,
-             int x,
-             int y,
-             int width,
-             int height,
-             uint32 value);
-
-// Convert ARGB to gray scale ARGB.
-LIBYUV_API
-int ARGBGrayTo(const uint8* src_argb,
-               int src_stride_argb,
-               uint8* dst_argb,
-               int dst_stride_argb,
-               int width,
-               int height);
-
-// Make a rectangle of ARGB gray scale.
-LIBYUV_API
-int ARGBGray(uint8* dst_argb,
-             int dst_stride_argb,
-             int x,
-             int y,
-             int width,
-             int height);
-
-// Make a rectangle of ARGB Sepia tone.
-LIBYUV_API
-int ARGBSepia(uint8* dst_argb,
-              int dst_stride_argb,
-              int x,
-              int y,
-              int width,
-              int height);
-
-// Apply a matrix rotation to each ARGB pixel.
-// matrix_argb is 4 signed ARGB values. -128 to 127 representing -2 to 2.
-// The first 4 coefficients apply to B, G, R, A and produce B of the output.
-// The next 4 coefficients apply to B, G, R, A and produce G of the output.
-// The next 4 coefficients apply to B, G, R, A and produce R of the output.
-// The last 4 coefficients apply to B, G, R, A and produce A of the output.
-LIBYUV_API
-int ARGBColorMatrix(const uint8* src_argb,
-                    int src_stride_argb,
-                    uint8* dst_argb,
-                    int dst_stride_argb,
-                    const int8* matrix_argb,
-                    int width,
-                    int height);
-
-// Deprecated. Use ARGBColorMatrix instead.
-// Apply a matrix rotation to each ARGB pixel.
-// matrix_argb is 3 signed ARGB values. -128 to 127 representing -1 to 1.
-// The first 4 coefficients apply to B, G, R, A and produce B of the output.
-// The next 4 coefficients apply to B, G, R, A and produce G of the output.
-// The last 4 coefficients apply to B, G, R, A and produce R of the output.
-LIBYUV_API
-int RGBColorMatrix(uint8* dst_argb,
-                   int dst_stride_argb,
-                   const int8* matrix_rgb,
-                   int x,
-                   int y,
-                   int width,
-                   int height);
-
-// Apply a color table each ARGB pixel.
-// Table contains 256 ARGB values.
-LIBYUV_API
-int ARGBColorTable(uint8* dst_argb,
-                   int dst_stride_argb,
-                   const uint8* table_argb,
-                   int x,
-                   int y,
-                   int width,
-                   int height);
-
-// Apply a color table each ARGB pixel but preserve destination alpha.
-// Table contains 256 ARGB values.
-LIBYUV_API
-int RGBColorTable(uint8* dst_argb,
-                  int dst_stride_argb,
-                  const uint8* table_argb,
-                  int x,
-                  int y,
-                  int width,
-                  int height);
-
-// Apply a luma/color table each ARGB pixel but preserve destination alpha.
-// Table contains 32768 values indexed by [Y][C] where 7 it 7 bit luma from
-// RGB (YJ style) and C is an 8 bit color component (R, G or B).
-LIBYUV_API
-int ARGBLumaColorTable(const uint8* src_argb,
-                       int src_stride_argb,
-                       uint8* dst_argb,
-                       int dst_stride_argb,
-                       const uint8* luma_rgb_table,
-                       int width,
-                       int height);
-
-// Apply a 3 term polynomial to ARGB values.
-// poly points to a 4x4 matrix.  The first row is constants.  The 2nd row is
-// coefficients for b, g, r and a.  The 3rd row is coefficients for b squared,
-// g squared, r squared and a squared.  The 4rd row is coefficients for b to
-// the 3, g to the 3, r to the 3 and a to the 3.  The values are summed and
-// result clamped to 0 to 255.
-// A polynomial approximation can be dirived using software such as 'R'.
-
-LIBYUV_API
-int ARGBPolynomial(const uint8* src_argb,
-                   int src_stride_argb,
-                   uint8* dst_argb,
-                   int dst_stride_argb,
-                   const float* poly,
-                   int width,
-                   int height);
-
-// Convert plane of 16 bit shorts to half floats.
-// Source values are multiplied by scale before storing as half float.
-LIBYUV_API
-int HalfFloatPlane(const uint16* src_y,
-                   int src_stride_y,
-                   uint16* dst_y,
-                   int dst_stride_y,
-                   float scale,
-                   int width,
-                   int height);
-
-// Quantize a rectangle of ARGB. Alpha unaffected.
-// scale is a 16 bit fractional fixed point scaler between 0 and 65535.
-// interval_size should be a value between 1 and 255.
-// interval_offset should be a value between 0 and 255.
-LIBYUV_API
-int ARGBQuantize(uint8* dst_argb,
-                 int dst_stride_argb,
-                 int scale,
-                 int interval_size,
-                 int interval_offset,
-                 int x,
-                 int y,
-                 int width,
-                 int height);
-
-// Copy ARGB to ARGB.
-LIBYUV_API
-int ARGBCopy(const uint8* src_argb,
-             int src_stride_argb,
-             uint8* dst_argb,
-             int dst_stride_argb,
-             int width,
-             int height);
-
-// Copy Alpha channel of ARGB to alpha of ARGB.
-LIBYUV_API
-int ARGBCopyAlpha(const uint8* src_argb,
-                  int src_stride_argb,
-                  uint8* dst_argb,
-                  int dst_stride_argb,
-                  int width,
-                  int height);
-
-// Extract the alpha channel from ARGB.
-LIBYUV_API
-int ARGBExtractAlpha(const uint8* src_argb,
-                     int src_stride_argb,
-                     uint8* dst_a,
-                     int dst_stride_a,
-                     int width,
-                     int height);
-
-// Copy Y channel to Alpha of ARGB.
-LIBYUV_API
-int ARGBCopyYToAlpha(const uint8* src_y,
-                     int src_stride_y,
-                     uint8* dst_argb,
-                     int dst_stride_argb,
-                     int width,
-                     int height);
-
-typedef void (*ARGBBlendRow)(const uint8* src_argb0,
-                             const uint8* src_argb1,
-                             uint8* dst_argb,
-                             int width);
-
-// Get function to Alpha Blend ARGB pixels and store to destination.
-LIBYUV_API
-ARGBBlendRow GetARGBBlend();
-
-// Alpha Blend ARGB images and store to destination.
-// Source is pre-multiplied by alpha using ARGBAttenuate.
-// Alpha of destination is set to 255.
-LIBYUV_API
-int ARGBBlend(const uint8* src_argb0,
-              int src_stride_argb0,
-              const uint8* src_argb1,
-              int src_stride_argb1,
-              uint8* dst_argb,
-              int dst_stride_argb,
-              int width,
-              int height);
-
-// Alpha Blend plane and store to destination.
-// Source is not pre-multiplied by alpha.
-LIBYUV_API
-int BlendPlane(const uint8* src_y0,
-               int src_stride_y0,
-               const uint8* src_y1,
-               int src_stride_y1,
-               const uint8* alpha,
-               int alpha_stride,
-               uint8* dst_y,
-               int dst_stride_y,
-               int width,
-               int height);
-
-// Alpha Blend YUV images and store to destination.
-// Source is not pre-multiplied by alpha.
-// Alpha is full width x height and subsampled to half size to apply to UV.
-LIBYUV_API
-int I420Blend(const uint8* src_y0,
-              int src_stride_y0,
-              const uint8* src_u0,
-              int src_stride_u0,
-              const uint8* src_v0,
-              int src_stride_v0,
-              const uint8* src_y1,
-              int src_stride_y1,
-              const uint8* src_u1,
-              int src_stride_u1,
-              const uint8* src_v1,
-              int src_stride_v1,
-              const uint8* alpha,
-              int alpha_stride,
-              uint8* dst_y,
-              int dst_stride_y,
-              uint8* dst_u,
-              int dst_stride_u,
-              uint8* dst_v,
-              int dst_stride_v,
-              int width,
-              int height);
-
-// Multiply ARGB image by ARGB image. Shifted down by 8. Saturates to 255.
-LIBYUV_API
-int ARGBMultiply(const uint8* src_argb0,
-                 int src_stride_argb0,
-                 const uint8* src_argb1,
-                 int src_stride_argb1,
-                 uint8* dst_argb,
-                 int dst_stride_argb,
-                 int width,
-                 int height);
-
-// Add ARGB image with ARGB image. Saturates to 255.
-LIBYUV_API
-int ARGBAdd(const uint8* src_argb0,
-            int src_stride_argb0,
-            const uint8* src_argb1,
-            int src_stride_argb1,
-            uint8* dst_argb,
-            int dst_stride_argb,
-            int width,
-            int height);
-
-// Subtract ARGB image (argb1) from ARGB image (argb0). Saturates to 0.
-LIBYUV_API
-int ARGBSubtract(const uint8* src_argb0,
-                 int src_stride_argb0,
-                 const uint8* src_argb1,
-                 int src_stride_argb1,
-                 uint8* dst_argb,
-                 int dst_stride_argb,
-                 int width,
-                 int height);
-
-// Convert I422 to YUY2.
-LIBYUV_API
-int I422ToYUY2(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_frame,
-               int dst_stride_frame,
-               int width,
-               int height);
-
-// Convert I422 to UYVY.
-LIBYUV_API
-int I422ToUYVY(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_frame,
-               int dst_stride_frame,
-               int width,
-               int height);
-
-// Convert unattentuated ARGB to preattenuated ARGB.
-LIBYUV_API
-int ARGBAttenuate(const uint8* src_argb,
-                  int src_stride_argb,
-                  uint8* dst_argb,
-                  int dst_stride_argb,
-                  int width,
-                  int height);
-
-// Convert preattentuated ARGB to unattenuated ARGB.
-LIBYUV_API
-int ARGBUnattenuate(const uint8* src_argb,
-                    int src_stride_argb,
-                    uint8* dst_argb,
-                    int dst_stride_argb,
-                    int width,
-                    int height);
-
-// Internal function - do not call directly.
-// Computes table of cumulative sum for image where the value is the sum
-// of all values above and to the left of the entry. Used by ARGBBlur.
-LIBYUV_API
-int ARGBComputeCumulativeSum(const uint8* src_argb,
-                             int src_stride_argb,
-                             int32* dst_cumsum,
-                             int dst_stride32_cumsum,
-                             int width,
-                             int height);
-
-// Blur ARGB image.
-// dst_cumsum table of width * (height + 1) * 16 bytes aligned to
-//   16 byte boundary.
-// dst_stride32_cumsum is number of ints in a row (width * 4).
-// radius is number of pixels around the center.  e.g. 1 = 3x3. 2=5x5.
-// Blur is optimized for radius of 5 (11x11) or less.
-LIBYUV_API
-int ARGBBlur(const uint8* src_argb,
-             int src_stride_argb,
-             uint8* dst_argb,
-             int dst_stride_argb,
-             int32* dst_cumsum,
-             int dst_stride32_cumsum,
-             int width,
-             int height,
-             int radius);
-
-// Multiply ARGB image by ARGB value.
-LIBYUV_API
-int ARGBShade(const uint8* src_argb,
-              int src_stride_argb,
-              uint8* dst_argb,
-              int dst_stride_argb,
-              int width,
-              int height,
-              uint32 value);
-
-// Interpolate between two images using specified amount of interpolation
-// (0 to 255) and store to destination.
-// 'interpolation' is specified as 8 bit fraction where 0 means 100% src0
-// and 255 means 1% src0 and 99% src1.
-LIBYUV_API
-int InterpolatePlane(const uint8* src0,
-                     int src_stride0,
-                     const uint8* src1,
-                     int src_stride1,
-                     uint8* dst,
-                     int dst_stride,
-                     int width,
-                     int height,
-                     int interpolation);
-
-// Interpolate between two ARGB images using specified amount of interpolation
-// Internally calls InterpolatePlane with width * 4 (bpp).
-LIBYUV_API
-int ARGBInterpolate(const uint8* src_argb0,
-                    int src_stride_argb0,
-                    const uint8* src_argb1,
-                    int src_stride_argb1,
-                    uint8* dst_argb,
-                    int dst_stride_argb,
-                    int width,
-                    int height,
-                    int interpolation);
-
-// Interpolate between two YUV images using specified amount of interpolation
-// Internally calls InterpolatePlane on each plane where the U and V planes
-// are half width and half height.
-LIBYUV_API
-int I420Interpolate(const uint8* src0_y,
-                    int src0_stride_y,
-                    const uint8* src0_u,
-                    int src0_stride_u,
-                    const uint8* src0_v,
-                    int src0_stride_v,
-                    const uint8* src1_y,
-                    int src1_stride_y,
-                    const uint8* src1_u,
-                    int src1_stride_u,
-                    const uint8* src1_v,
-                    int src1_stride_v,
-                    uint8* dst_y,
-                    int dst_stride_y,
-                    uint8* dst_u,
-                    int dst_stride_u,
-                    uint8* dst_v,
-                    int dst_stride_v,
-                    int width,
-                    int height,
-                    int interpolation);
-
-#if defined(__pnacl__) || defined(__CLR_VER) || \
-    (defined(__i386__) && !defined(__SSE2__))
-#define LIBYUV_DISABLE_X86
-#endif
-// MemorySanitizer does not support assembly code yet. http://crbug.com/344505
-#if defined(__has_feature)
-#if __has_feature(memory_sanitizer)
-#define LIBYUV_DISABLE_X86
-#endif
-#endif
-// The following are available on all x86 platforms:
-#if !defined(LIBYUV_DISABLE_X86) && \
-    (defined(_M_IX86) || defined(__x86_64__) || defined(__i386__))
-#define HAS_ARGBAFFINEROW_SSE2
-#endif
-
-// Row function for copying pixels from a source with a slope to a row
-// of destination. Useful for scaling, rotation, mirror, texture mapping.
-LIBYUV_API
-void ARGBAffineRow_C(const uint8* src_argb,
-                     int src_argb_stride,
-                     uint8* dst_argb,
-                     const float* uv_dudv,
-                     int width);
-LIBYUV_API
-void ARGBAffineRow_SSE2(const uint8* src_argb,
-                        int src_argb_stride,
-                        uint8* dst_argb,
-                        const float* uv_dudv,
-                        int width);
-
-// Shuffle ARGB channel order.  e.g. BGRA to ARGB.
-// shuffler is 16 bytes and must be aligned.
-LIBYUV_API
-int ARGBShuffle(const uint8* src_bgra,
-                int src_stride_bgra,
-                uint8* dst_argb,
-                int dst_stride_argb,
-                const uint8* shuffler,
-                int width,
-                int height);
-
-// Sobel ARGB effect with planar output.
-LIBYUV_API
-int ARGBSobelToPlane(const uint8* src_argb,
-                     int src_stride_argb,
-                     uint8* dst_y,
-                     int dst_stride_y,
-                     int width,
-                     int height);
-
-// Sobel ARGB effect.
-LIBYUV_API
-int ARGBSobel(const uint8* src_argb,
-              int src_stride_argb,
-              uint8* dst_argb,
-              int dst_stride_argb,
-              int width,
-              int height);
-
-// Sobel ARGB effect w/ Sobel X, Sobel, Sobel Y in ARGB.
-LIBYUV_API
-int ARGBSobelXY(const uint8* src_argb,
-                int src_stride_argb,
-                uint8* dst_argb,
-                int dst_stride_argb,
-                int width,
-                int height);
-
-#ifdef __cplusplus
-}  // extern "C"
-}  // namespace libyuv
-#endif
-
-#endif  // INCLUDE_LIBYUV_PLANAR_FUNCTIONS_H_

+ 0 - 164
ios/IJKMediaFramework.framework/libyuv/include/libyuv/rotate.h

@@ -1,164 +0,0 @@
-/*
- *  Copyright 2011 The LibYuv Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS. All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef INCLUDE_LIBYUV_ROTATE_H_
-#define INCLUDE_LIBYUV_ROTATE_H_
-
-#include "libyuv/basic_types.h"
-
-#ifdef __cplusplus
-namespace libyuv {
-extern "C" {
-#endif
-
-// Supported rotation.
-typedef enum RotationMode {
-  kRotate0 = 0,      // No rotation.
-  kRotate90 = 90,    // Rotate 90 degrees clockwise.
-  kRotate180 = 180,  // Rotate 180 degrees.
-  kRotate270 = 270,  // Rotate 270 degrees clockwise.
-
-  // Deprecated.
-  kRotateNone = 0,
-  kRotateClockwise = 90,
-  kRotateCounterClockwise = 270,
-} RotationModeEnum;
-
-// Rotate I420 frame.
-LIBYUV_API
-int I420Rotate(const uint8* src_y,
-               int src_stride_y,
-               const uint8* src_u,
-               int src_stride_u,
-               const uint8* src_v,
-               int src_stride_v,
-               uint8* dst_y,
-               int dst_stride_y,
-               uint8* dst_u,
-               int dst_stride_u,
-               uint8* dst_v,
-               int dst_stride_v,
-               int src_width,
-               int src_height,
-               enum RotationMode mode);
-
-// Rotate NV12 input and store in I420.
-LIBYUV_API
-int NV12ToI420Rotate(const uint8* src_y,
-                     int src_stride_y,
-                     const uint8* src_uv,
-                     int src_stride_uv,
-                     uint8* dst_y,
-                     int dst_stride_y,
-                     uint8* dst_u,
-                     int dst_stride_u,
-                     uint8* dst_v,
-                     int dst_stride_v,
-                     int src_width,
-                     int src_height,
-                     enum RotationMode mode);
-
-// Rotate a plane by 0, 90, 180, or 270.
-LIBYUV_API
-int RotatePlane(const uint8* src,
-                int src_stride,
-                uint8* dst,
-                int dst_stride,
-                int src_width,
-                int src_height,
-                enum RotationMode mode);
-
-// Rotate planes by 90, 180, 270. Deprecated.
-LIBYUV_API
-void RotatePlane90(const uint8* src,
-                   int src_stride,
-                   uint8* dst,
-                   int dst_stride,
-                   int width,
-                   int height);
-
-LIBYUV_API
-void RotatePlane180(const uint8* src,
-                    int src_stride,
-                    uint8* dst,
-                    int dst_stride,
-                    int width,
-                    int height);
-
-LIBYUV_API
-void RotatePlane270(const uint8* src,
-                    int src_stride,
-                    uint8* dst,
-                    int dst_stride,
-                    int width,
-                    int height);
-
-LIBYUV_API
-void RotateUV90(const uint8* src,
-                int src_stride,
-                uint8* dst_a,
-                int dst_stride_a,
-                uint8* dst_b,
-                int dst_stride_b,
-                int width,
-                int height);
-
-// Rotations for when U and V are interleaved.
-// These functions take one input pointer and
-// split the data into two buffers while
-// rotating them. Deprecated.
-LIBYUV_API
-void RotateUV180(const uint8* src,
-                 int src_stride,
-                 uint8* dst_a,
-                 int dst_stride_a,
-                 uint8* dst_b,
-                 int dst_stride_b,
-                 int width,
-                 int height);
-
-LIBYUV_API
-void RotateUV270(const uint8* src,
-                 int src_stride,
-                 uint8* dst_a,
-                 int dst_stride_a,
-                 uint8* dst_b,
-                 int dst_stride_b,
-                 int width,
-                 int height);
-
-// The 90 and 270 functions are based on transposes.
-// Doing a transpose with reversing the read/write
-// order will result in a rotation by +- 90 degrees.
-// Deprecated.
-LIBYUV_API
-void TransposePlane(const uint8* src,
-                    int src_stride,
-                    uint8* dst,
-                    int dst_stride,
-                    int width,
-                    int height);
-
-LIBYUV_API
-void TransposeUV(const uint8* src,
-                 int src_stride,
-                 uint8* dst_a,
-                 int dst_stride_a,
-                 uint8* dst_b,
-                 int dst_stride_b,
-                 int width,
-                 int height);
-
-#ifdef __cplusplus
-}  // extern "C"
-}  // namespace libyuv
-#endif
-
-#endif  // INCLUDE_LIBYUV_ROTATE_H_

+ 0 - 37
ios/IJKMediaFramework.framework/libyuv/include/libyuv/rotate_argb.h

@@ -1,37 +0,0 @@
-/*
- *  Copyright 2012 The LibYuv Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS. All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef INCLUDE_LIBYUV_ROTATE_ARGB_H_
-#define INCLUDE_LIBYUV_ROTATE_ARGB_H_
-
-#include "libyuv/basic_types.h"
-#include "libyuv/rotate.h"  // For RotationMode.
-
-#ifdef __cplusplus
-namespace libyuv {
-extern "C" {
-#endif
-
-// Rotate ARGB frame
-LIBYUV_API
-int ARGBRotate(const uint8* src_argb,
-               int src_stride_argb,
-               uint8* dst_argb,
-               int dst_stride_argb,
-               int src_width,
-               int src_height,
-               enum RotationMode mode);
-
-#ifdef __cplusplus
-}  // extern "C"
-}  // namespace libyuv
-#endif
-
-#endif  // INCLUDE_LIBYUV_ROTATE_ARGB_H_

+ 0 - 187
ios/IJKMediaFramework.framework/libyuv/include/libyuv/rotate_row.h

@@ -1,187 +0,0 @@
-/*
- *  Copyright 2013 The LibYuv Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS. All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef INCLUDE_LIBYUV_ROTATE_ROW_H_
-#define INCLUDE_LIBYUV_ROTATE_ROW_H_
-
-#include "libyuv/basic_types.h"
-
-#ifdef __cplusplus
-namespace libyuv {
-extern "C" {
-#endif
-
-#if defined(__pnacl__) || defined(__CLR_VER) || \
-    (defined(__i386__) && !defined(__SSE2__))
-#define LIBYUV_DISABLE_X86
-#endif
-// MemorySanitizer does not support assembly code yet. http://crbug.com/344505
-#if defined(__has_feature)
-#if __has_feature(memory_sanitizer)
-#define LIBYUV_DISABLE_X86
-#endif
-#endif
-// The following are available for Visual C and clangcl 32 bit:
-#if !defined(LIBYUV_DISABLE_X86) && defined(_M_IX86)
-#define HAS_TRANSPOSEWX8_SSSE3
-#define HAS_TRANSPOSEUVWX8_SSE2
-#endif
-
-// The following are available for GCC 32 or 64 bit but not NaCL for 64 bit:
-#if !defined(LIBYUV_DISABLE_X86) && \
-    (defined(__i386__) ||           \
-     (defined(__x86_64__) && !defined(__native_client__)))
-#define HAS_TRANSPOSEWX8_SSSE3
-#endif
-
-// The following are available for 64 bit GCC but not NaCL:
-#if !defined(LIBYUV_DISABLE_X86) && !defined(__native_client__) && \
-    defined(__x86_64__)
-#define HAS_TRANSPOSEWX8_FAST_SSSE3
-#define HAS_TRANSPOSEUVWX8_SSE2
-#endif
-
-#if !defined(LIBYUV_DISABLE_NEON) && !defined(__native_client__) && \
-    (defined(__ARM_NEON__) || defined(LIBYUV_NEON) || defined(__aarch64__))
-#define HAS_TRANSPOSEWX8_NEON
-#define HAS_TRANSPOSEUVWX8_NEON
-#endif
-
-#if !defined(LIBYUV_DISABLE_MIPS) && !defined(__native_client__) && \
-    defined(__mips__) && defined(__mips_dsp) && (__mips_dsp_rev >= 2)
-#define HAS_TRANSPOSEWX8_DSPR2
-#define HAS_TRANSPOSEUVWX8_DSPR2
-#endif  // defined(__mips__)
-
-void TransposeWxH_C(const uint8* src,
-                    int src_stride,
-                    uint8* dst,
-                    int dst_stride,
-                    int width,
-                    int height);
-
-void TransposeWx8_C(const uint8* src,
-                    int src_stride,
-                    uint8* dst,
-                    int dst_stride,
-                    int width);
-void TransposeWx8_NEON(const uint8* src,
-                       int src_stride,
-                       uint8* dst,
-                       int dst_stride,
-                       int width);
-void TransposeWx8_SSSE3(const uint8* src,
-                        int src_stride,
-                        uint8* dst,
-                        int dst_stride,
-                        int width);
-void TransposeWx8_Fast_SSSE3(const uint8* src,
-                             int src_stride,
-                             uint8* dst,
-                             int dst_stride,
-                             int width);
-void TransposeWx8_DSPR2(const uint8* src,
-                        int src_stride,
-                        uint8* dst,
-                        int dst_stride,
-                        int width);
-void TransposeWx8_Fast_DSPR2(const uint8* src,
-                             int src_stride,
-                             uint8* dst,
-                             int dst_stride,
-                             int width);
-
-void TransposeWx8_Any_NEON(const uint8* src,
-                           int src_stride,
-                           uint8* dst,
-                           int dst_stride,
-                           int width);
-void TransposeWx8_Any_SSSE3(const uint8* src,
-                            int src_stride,
-                            uint8* dst,
-                            int dst_stride,
-                            int width);
-void TransposeWx8_Fast_Any_SSSE3(const uint8* src,
-                                 int src_stride,
-                                 uint8* dst,
-                                 int dst_stride,
-                                 int width);
-void TransposeWx8_Any_DSPR2(const uint8* src,
-                            int src_stride,
-                            uint8* dst,
-                            int dst_stride,
-                            int width);
-
-void TransposeUVWxH_C(const uint8* src,
-                      int src_stride,
-                      uint8* dst_a,
-                      int dst_stride_a,
-                      uint8* dst_b,
-                      int dst_stride_b,
-                      int width,
-                      int height);
-
-void TransposeUVWx8_C(const uint8* src,
-                      int src_stride,
-                      uint8* dst_a,
-                      int dst_stride_a,
-                      uint8* dst_b,
-                      int dst_stride_b,
-                      int width);
-void TransposeUVWx8_SSE2(const uint8* src,
-                         int src_stride,
-                         uint8* dst_a,
-                         int dst_stride_a,
-                         uint8* dst_b,
-                         int dst_stride_b,
-                         int width);
-void TransposeUVWx8_NEON(const uint8* src,
-                         int src_stride,
-                         uint8* dst_a,
-                         int dst_stride_a,
-                         uint8* dst_b,
-                         int dst_stride_b,
-                         int width);
-void TransposeUVWx8_DSPR2(const uint8* src,
-                          int src_stride,
-                          uint8* dst_a,
-                          int dst_stride_a,
-                          uint8* dst_b,
-                          int dst_stride_b,
-                          int width);
-
-void TransposeUVWx8_Any_SSE2(const uint8* src,
-                             int src_stride,
-                             uint8* dst_a,
-                             int dst_stride_a,
-                             uint8* dst_b,
-                             int dst_stride_b,
-                             int width);
-void TransposeUVWx8_Any_NEON(const uint8* src,
-                             int src_stride,
-                             uint8* dst_a,
-                             int dst_stride_a,
-                             uint8* dst_b,
-                             int dst_stride_b,
-                             int width);
-void TransposeUVWx8_Any_DSPR2(const uint8* src,
-                              int src_stride,
-                              uint8* dst_a,
-                              int dst_stride_a,
-                              uint8* dst_b,
-                              int dst_stride_b,
-                              int width);
-
-#ifdef __cplusplus
-}  // extern "C"
-}  // namespace libyuv
-#endif
-
-#endif  // INCLUDE_LIBYUV_ROTATE_ROW_H_

+ 0 - 2668
ios/IJKMediaFramework.framework/libyuv/include/libyuv/row.h

@@ -1,2668 +0,0 @@
-/*
- *  Copyright 2011 The LibYuv Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS. All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef INCLUDE_LIBYUV_ROW_H_
-#define INCLUDE_LIBYUV_ROW_H_
-
-#include <stdlib.h>  // For malloc.
-
-#include "libyuv/basic_types.h"
-
-#ifdef __cplusplus
-namespace libyuv {
-extern "C" {
-#endif
-
-#define IS_ALIGNED(p, a) (!((uintptr_t)(p) & ((a)-1)))
-
-#define align_buffer_64(var, size)                                       \
-  uint8* var##_mem = (uint8*)(malloc((size) + 63));         /* NOLINT */ \
-  uint8* var = (uint8*)(((intptr_t)(var##_mem) + 63) & ~63) /* NOLINT */
-
-#define free_aligned_buffer_64(var) \
-  free(var##_mem);                  \
-  var = 0
-
-#if defined(__pnacl__) || defined(__CLR_VER) || \
-    (defined(__i386__) && !defined(__SSE2__))
-#define LIBYUV_DISABLE_X86
-#endif
-// MemorySanitizer does not support assembly code yet. http://crbug.com/344505
-#if defined(__has_feature)
-#if __has_feature(memory_sanitizer)
-#define LIBYUV_DISABLE_X86
-#endif
-#endif
-// True if compiling for SSSE3 as a requirement.
-#if defined(__SSSE3__) || (defined(_M_IX86_FP) && (_M_IX86_FP >= 3))
-#define LIBYUV_SSSE3_ONLY
-#endif
-
-#if defined(__native_client__)
-#define LIBYUV_DISABLE_NEON
-#endif
-// clang >= 3.5.0 required for Arm64.
-#if defined(__clang__) && defined(__aarch64__) && !defined(LIBYUV_DISABLE_NEON)
-#if (__clang_major__ < 3) || (__clang_major__ == 3 && (__clang_minor__ < 5))
-#define LIBYUV_DISABLE_NEON
-#endif  // clang >= 3.5
-#endif  // __clang__
-
-// GCC >= 4.7.0 required for AVX2.
-#if defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__))
-#if (__GNUC__ > 4) || (__GNUC__ == 4 && (__GNUC_MINOR__ >= 7))
-#define GCC_HAS_AVX2 1
-#endif  // GNUC >= 4.7
-#endif  // __GNUC__
-
-// clang >= 3.4.0 required for AVX2.
-#if defined(__clang__) && (defined(__x86_64__) || defined(__i386__))
-#if (__clang_major__ > 3) || (__clang_major__ == 3 && (__clang_minor__ >= 4))
-#define CLANG_HAS_AVX2 1
-#endif  // clang >= 3.4
-#endif  // __clang__
-
-// Visual C 2012 required for AVX2.
-#if defined(_M_IX86) && !defined(__clang__) && defined(_MSC_VER) && \
-    _MSC_VER >= 1700
-#define VISUALC_HAS_AVX2 1
-#endif  // VisualStudio >= 2012
-
-// The following are available on all x86 platforms:
-#if !defined(LIBYUV_DISABLE_X86) && \
-    (defined(_M_IX86) || defined(__x86_64__) || defined(__i386__))
-// Conversions:
-#define HAS_ABGRTOUVROW_SSSE3
-#define HAS_ABGRTOYROW_SSSE3
-#define HAS_ARGB1555TOARGBROW_SSE2
-#define HAS_ARGB4444TOARGBROW_SSE2
-#define HAS_ARGBEXTRACTALPHAROW_SSE2
-#define HAS_ARGBSETROW_X86
-#define HAS_ARGBSHUFFLEROW_SSE2
-#define HAS_ARGBSHUFFLEROW_SSSE3
-#define HAS_ARGBTOARGB1555ROW_SSE2
-#define HAS_ARGBTOARGB4444ROW_SSE2
-#define HAS_ARGBTORAWROW_SSSE3
-#define HAS_ARGBTORGB24ROW_SSSE3
-#define HAS_ARGBTORGB565DITHERROW_SSE2
-#define HAS_ARGBTORGB565ROW_SSE2
-#define HAS_ARGBTOUV444ROW_SSSE3
-#define HAS_ARGBTOUVJROW_SSSE3
-#define HAS_ARGBTOUVROW_SSSE3
-#define HAS_ARGBTOYJROW_SSSE3
-#define HAS_ARGBTOYROW_SSSE3
-#define HAS_BGRATOUVROW_SSSE3
-#define HAS_BGRATOYROW_SSSE3
-#define HAS_COPYROW_ERMS
-#define HAS_COPYROW_SSE2
-#define HAS_H422TOARGBROW_SSSE3
-#define HAS_HALFFLOATROW_SSE2
-#define HAS_I400TOARGBROW_SSE2
-#define HAS_I422TOARGB1555ROW_SSSE3
-#define HAS_I422TOARGB4444ROW_SSSE3
-#define HAS_I422TOARGBROW_SSSE3
-#define HAS_I422TORGB24ROW_SSSE3
-#define HAS_I422TORGB565ROW_SSSE3
-#define HAS_I422TORGBAROW_SSSE3
-#define HAS_I422TOUYVYROW_SSE2
-#define HAS_I422TOYUY2ROW_SSE2
-#define HAS_I444TOARGBROW_SSSE3
-#define HAS_J400TOARGBROW_SSE2
-#define HAS_J422TOARGBROW_SSSE3
-#define HAS_MERGEUVROW_SSE2
-#define HAS_MIRRORROW_SSSE3
-#define HAS_MIRRORUVROW_SSSE3
-#define HAS_NV12TOARGBROW_SSSE3
-#define HAS_NV12TORGB565ROW_SSSE3
-#define HAS_NV21TOARGBROW_SSSE3
-#define HAS_RAWTOARGBROW_SSSE3
-#define HAS_RAWTORGB24ROW_SSSE3
-#define HAS_RAWTOYROW_SSSE3
-#define HAS_RGB24TOARGBROW_SSSE3
-#define HAS_RGB24TOYROW_SSSE3
-#define HAS_RGB565TOARGBROW_SSE2
-#define HAS_RGBATOUVROW_SSSE3
-#define HAS_RGBATOYROW_SSSE3
-#define HAS_SETROW_ERMS
-#define HAS_SETROW_X86
-#define HAS_SPLITUVROW_SSE2
-#define HAS_UYVYTOARGBROW_SSSE3
-#define HAS_UYVYTOUV422ROW_SSE2
-#define HAS_UYVYTOUVROW_SSE2
-#define HAS_UYVYTOYROW_SSE2
-#define HAS_YUY2TOARGBROW_SSSE3
-#define HAS_YUY2TOUV422ROW_SSE2
-#define HAS_YUY2TOUVROW_SSE2
-#define HAS_YUY2TOYROW_SSE2
-
-// Effects:
-#define HAS_ARGBADDROW_SSE2
-#define HAS_ARGBAFFINEROW_SSE2
-#define HAS_ARGBATTENUATEROW_SSSE3
-#define HAS_ARGBBLENDROW_SSSE3
-#define HAS_ARGBCOLORMATRIXROW_SSSE3
-#define HAS_ARGBCOLORTABLEROW_X86
-#define HAS_ARGBCOPYALPHAROW_SSE2
-#define HAS_ARGBCOPYYTOALPHAROW_SSE2
-#define HAS_ARGBGRAYROW_SSSE3
-#define HAS_ARGBLUMACOLORTABLEROW_SSSE3
-#define HAS_ARGBMIRRORROW_SSE2
-#define HAS_ARGBMULTIPLYROW_SSE2
-#define HAS_ARGBPOLYNOMIALROW_SSE2
-#define HAS_ARGBQUANTIZEROW_SSE2
-#define HAS_ARGBSEPIAROW_SSSE3
-#define HAS_ARGBSHADEROW_SSE2
-#define HAS_ARGBSUBTRACTROW_SSE2
-#define HAS_ARGBUNATTENUATEROW_SSE2
-#define HAS_BLENDPLANEROW_SSSE3
-#define HAS_COMPUTECUMULATIVESUMROW_SSE2
-#define HAS_CUMULATIVESUMTOAVERAGEROW_SSE2
-#define HAS_INTERPOLATEROW_SSSE3
-#define HAS_RGBCOLORTABLEROW_X86
-#define HAS_SOBELROW_SSE2
-#define HAS_SOBELTOPLANEROW_SSE2
-#define HAS_SOBELXROW_SSE2
-#define HAS_SOBELXYROW_SSE2
-#define HAS_SOBELYROW_SSE2
-
-// The following functions fail on gcc/clang 32 bit with fpic and framepointer.
-// caveat: clangcl uses row_win.cc which works.
-#if defined(__x86_64__) || !defined(__pic__) || defined(__clang__) || \
-    defined(_MSC_VER)
-// TODO(fbarchard): fix build error on android_full_debug=1
-// https://code.google.com/p/libyuv/issues/detail?id=517
-#define HAS_I422ALPHATOARGBROW_SSSE3
-#endif
-#endif
-
-// The following are available on all x86 platforms, but
-// require VS2012, clang 3.4 or gcc 4.7.
-// The code supports NaCL but requires a new compiler and validator.
-#if !defined(LIBYUV_DISABLE_X86) &&                          \
-    (defined(VISUALC_HAS_AVX2) || defined(CLANG_HAS_AVX2) || \
-     defined(GCC_HAS_AVX2))
-#define HAS_ARGBCOPYALPHAROW_AVX2
-#define HAS_ARGBCOPYYTOALPHAROW_AVX2
-#define HAS_ARGBEXTRACTALPHAROW_AVX2
-#define HAS_ARGBMIRRORROW_AVX2
-#define HAS_ARGBPOLYNOMIALROW_AVX2
-#define HAS_ARGBSHUFFLEROW_AVX2
-#define HAS_ARGBTORGB565DITHERROW_AVX2
-#define HAS_ARGBTOUVJROW_AVX2
-#define HAS_ARGBTOUVROW_AVX2
-#define HAS_ARGBTOYJROW_AVX2
-#define HAS_ARGBTOYROW_AVX2
-#define HAS_COPYROW_AVX
-#define HAS_H422TOARGBROW_AVX2
-#define HAS_HALFFLOATROW_AVX2
-//  #define HAS_HALFFLOATROW_F16C  // Enable to test halffloat cast
-#define HAS_I400TOARGBROW_AVX2
-#define HAS_I422TOARGB1555ROW_AVX2
-#define HAS_I422TOARGB4444ROW_AVX2
-#define HAS_I422TOARGBROW_AVX2
-#define HAS_I422TORGB24ROW_AVX2
-#define HAS_I422TORGB565ROW_AVX2
-#define HAS_I422TORGBAROW_AVX2
-#define HAS_I444TOARGBROW_AVX2
-#define HAS_INTERPOLATEROW_AVX2
-#define HAS_J422TOARGBROW_AVX2
-#define HAS_MERGEUVROW_AVX2
-#define HAS_MIRRORROW_AVX2
-#define HAS_NV12TOARGBROW_AVX2
-#define HAS_NV12TORGB565ROW_AVX2
-#define HAS_NV21TOARGBROW_AVX2
-#define HAS_SPLITUVROW_AVX2
-#define HAS_UYVYTOARGBROW_AVX2
-#define HAS_UYVYTOUV422ROW_AVX2
-#define HAS_UYVYTOUVROW_AVX2
-#define HAS_UYVYTOYROW_AVX2
-#define HAS_YUY2TOARGBROW_AVX2
-#define HAS_YUY2TOUV422ROW_AVX2
-#define HAS_YUY2TOUVROW_AVX2
-#define HAS_YUY2TOYROW_AVX2
-
-// Effects:
-#define HAS_ARGBADDROW_AVX2
-#define HAS_ARGBATTENUATEROW_AVX2
-#define HAS_ARGBMULTIPLYROW_AVX2
-#define HAS_ARGBSUBTRACTROW_AVX2
-#define HAS_ARGBUNATTENUATEROW_AVX2
-#define HAS_BLENDPLANEROW_AVX2
-
-#if defined(__x86_64__) || !defined(__pic__) || defined(__clang__) || \
-    defined(_MSC_VER)
-// TODO(fbarchard): fix build error on android_full_debug=1
-// https://code.google.com/p/libyuv/issues/detail?id=517
-#define HAS_I422ALPHATOARGBROW_AVX2
-#endif
-#endif
-
-// The following are available for AVX2 Visual C and clangcl 32 bit:
-// TODO(fbarchard): Port to gcc.
-#if !defined(LIBYUV_DISABLE_X86) && defined(_M_IX86) && \
-    (defined(VISUALC_HAS_AVX2) || defined(CLANG_HAS_AVX2))
-#define HAS_ARGB1555TOARGBROW_AVX2
-#define HAS_ARGB4444TOARGBROW_AVX2
-#define HAS_ARGBTOARGB1555ROW_AVX2
-#define HAS_ARGBTOARGB4444ROW_AVX2
-#define HAS_ARGBTORGB565ROW_AVX2
-#define HAS_J400TOARGBROW_AVX2
-#define HAS_RGB565TOARGBROW_AVX2
-#endif
-
-// The following are also available on x64 Visual C.
-#if !defined(LIBYUV_DISABLE_X86) && defined(_MSC_VER) && defined(_M_X64) && \
-    (!defined(__clang__) || defined(__SSSE3__))
-#define HAS_I422ALPHATOARGBROW_SSSE3
-#define HAS_I422TOARGBROW_SSSE3
-#endif
-
-// The following are available on Neon platforms:
-#if !defined(LIBYUV_DISABLE_NEON) && \
-    (defined(__aarch64__) || defined(__ARM_NEON__) || defined(LIBYUV_NEON))
-#define HAS_ABGRTOUVROW_NEON
-#define HAS_ABGRTOYROW_NEON
-#define HAS_ARGB1555TOARGBROW_NEON
-#define HAS_ARGB1555TOUVROW_NEON
-#define HAS_ARGB1555TOYROW_NEON
-#define HAS_ARGB4444TOARGBROW_NEON
-#define HAS_ARGB4444TOUVROW_NEON
-#define HAS_ARGB4444TOYROW_NEON
-#define HAS_ARGBEXTRACTALPHAROW_NEON
-#define HAS_ARGBSETROW_NEON
-#define HAS_ARGBTOARGB1555ROW_NEON
-#define HAS_ARGBTOARGB4444ROW_NEON
-#define HAS_ARGBTORAWROW_NEON
-#define HAS_ARGBTORGB24ROW_NEON
-#define HAS_ARGBTORGB565DITHERROW_NEON
-#define HAS_ARGBTORGB565ROW_NEON
-#define HAS_ARGBTOUV444ROW_NEON
-#define HAS_ARGBTOUVJROW_NEON
-#define HAS_ARGBTOUVROW_NEON
-#define HAS_ARGBTOYJROW_NEON
-#define HAS_ARGBTOYROW_NEON
-#define HAS_BGRATOUVROW_NEON
-#define HAS_BGRATOYROW_NEON
-#define HAS_COPYROW_NEON
-#define HAS_HALFFLOATROW_NEON
-#define HAS_I400TOARGBROW_NEON
-#define HAS_I422ALPHATOARGBROW_NEON
-#define HAS_I422TOARGB1555ROW_NEON
-#define HAS_I422TOARGB4444ROW_NEON
-#define HAS_I422TOARGBROW_NEON
-#define HAS_I422TORGB24ROW_NEON
-#define HAS_I422TORGB565ROW_NEON
-#define HAS_I422TORGBAROW_NEON
-#define HAS_I422TOUYVYROW_NEON
-#define HAS_I422TOYUY2ROW_NEON
-#define HAS_I444TOARGBROW_NEON
-#define HAS_J400TOARGBROW_NEON
-#define HAS_MERGEUVROW_NEON
-#define HAS_MIRRORROW_NEON
-#define HAS_MIRRORUVROW_NEON
-#define HAS_NV12TOARGBROW_NEON
-#define HAS_NV12TORGB565ROW_NEON
-#define HAS_NV21TOARGBROW_NEON
-#define HAS_RAWTOARGBROW_NEON
-#define HAS_RAWTORGB24ROW_NEON
-#define HAS_RAWTOUVROW_NEON
-#define HAS_RAWTOYROW_NEON
-#define HAS_RGB24TOARGBROW_NEON
-#define HAS_RGB24TOUVROW_NEON
-#define HAS_RGB24TOYROW_NEON
-#define HAS_RGB565TOARGBROW_NEON
-#define HAS_RGB565TOUVROW_NEON
-#define HAS_RGB565TOYROW_NEON
-#define HAS_RGBATOUVROW_NEON
-#define HAS_RGBATOYROW_NEON
-#define HAS_SETROW_NEON
-#define HAS_SPLITUVROW_NEON
-#define HAS_UYVYTOARGBROW_NEON
-#define HAS_UYVYTOUV422ROW_NEON
-#define HAS_UYVYTOUVROW_NEON
-#define HAS_UYVYTOYROW_NEON
-#define HAS_YUY2TOARGBROW_NEON
-#define HAS_YUY2TOUV422ROW_NEON
-#define HAS_YUY2TOUVROW_NEON
-#define HAS_YUY2TOYROW_NEON
-
-// Effects:
-#define HAS_ARGBADDROW_NEON
-#define HAS_ARGBATTENUATEROW_NEON
-#define HAS_ARGBBLENDROW_NEON
-#define HAS_ARGBCOLORMATRIXROW_NEON
-#define HAS_ARGBGRAYROW_NEON
-#define HAS_ARGBMIRRORROW_NEON
-#define HAS_ARGBMULTIPLYROW_NEON
-#define HAS_ARGBQUANTIZEROW_NEON
-#define HAS_ARGBSEPIAROW_NEON
-#define HAS_ARGBSHADEROW_NEON
-#define HAS_ARGBSHUFFLEROW_NEON
-#define HAS_ARGBSUBTRACTROW_NEON
-#define HAS_INTERPOLATEROW_NEON
-#define HAS_SOBELROW_NEON
-#define HAS_SOBELTOPLANEROW_NEON
-#define HAS_SOBELXROW_NEON
-#define HAS_SOBELXYROW_NEON
-#define HAS_SOBELYROW_NEON
-#endif
-
-// The following are available on Mips platforms:
-#if !defined(LIBYUV_DISABLE_MIPS) && defined(__mips__) && \
-    (_MIPS_SIM == _MIPS_SIM_ABI32) && (__mips_isa_rev < 6)
-#define HAS_COPYROW_MIPS
-#if defined(__mips_dsp) && (__mips_dsp_rev >= 2)
-#define HAS_I422TOARGBROW_DSPR2
-#define HAS_INTERPOLATEROW_DSPR2
-#define HAS_MIRRORROW_DSPR2
-#define HAS_MIRRORUVROW_DSPR2
-#define HAS_SPLITUVROW_DSPR2
-#endif
-#endif
-
-#if !defined(LIBYUV_DISABLE_MSA) && defined(__mips_msa)
-#define HAS_ARGBMIRRORROW_MSA
-#define HAS_I422TOUYVYROW_MSA
-#define HAS_I422TOYUY2ROW_MSA
-#define HAS_MIRRORROW_MSA
-#define HAS_UYVYTOUVROW_MSA
-#define HAS_UYVYTOYROW_MSA
-#define HAS_YUY2TOUV422ROW_MSA
-#define HAS_YUY2TOUVROW_MSA
-#define HAS_YUY2TOYROW_MSA
-#define HAS_ARGB4444TOARGBROW_MSA
-#define HAS_ARGBTOYROW_MSA
-#define HAS_ARGBTOUVROW_MSA
-#define HAS_I422TOARGBROW_MSA
-#define HAS_I422TORGBAROW_MSA
-#define HAS_I422ALPHATOARGBROW_MSA
-#define HAS_I422TORGB24ROW_MSA
-#define HAS_ARGBTORGB24ROW_MSA
-#define HAS_ARGBTORAWROW_MSA
-#define HAS_ARGBTORGB565ROW_MSA
-#define HAS_ARGBTOARGB1555ROW_MSA
-#define HAS_ARGBTOARGB4444ROW_MSA
-#define HAS_ARGBTOUV444ROW_MSA
-#define HAS_ARGBMULTIPLYROW_MSA
-#define HAS_ARGBADDROW_MSA
-#define HAS_ARGBSUBTRACTROW_MSA
-#endif
-
-#if defined(_MSC_VER) && !defined(__CLR_VER) && !defined(__clang__)
-#if defined(VISUALC_HAS_AVX2)
-#define SIMD_ALIGNED(var) __declspec(align(32)) var
-#else
-#define SIMD_ALIGNED(var) __declspec(align(16)) var
-#endif
-typedef __declspec(align(16)) int16 vec16[8];
-typedef __declspec(align(16)) int32 vec32[4];
-typedef __declspec(align(16)) int8 vec8[16];
-typedef __declspec(align(16)) uint16 uvec16[8];
-typedef __declspec(align(16)) uint32 uvec32[4];
-typedef __declspec(align(16)) uint8 uvec8[16];
-typedef __declspec(align(32)) int16 lvec16[16];
-typedef __declspec(align(32)) int32 lvec32[8];
-typedef __declspec(align(32)) int8 lvec8[32];
-typedef __declspec(align(32)) uint16 ulvec16[16];
-typedef __declspec(align(32)) uint32 ulvec32[8];
-typedef __declspec(align(32)) uint8 ulvec8[32];
-#elif !defined(__pnacl__) && (defined(__GNUC__) || defined(__clang__))
-// Caveat GCC 4.2 to 4.7 have a known issue using vectors with const.
-#if defined(CLANG_HAS_AVX2) || defined(GCC_HAS_AVX2)
-#define SIMD_ALIGNED(var) var __attribute__((aligned(32)))
-#else
-#define SIMD_ALIGNED(var) var __attribute__((aligned(16)))
-#endif
-typedef int16 __attribute__((vector_size(16))) vec16;
-typedef int32 __attribute__((vector_size(16))) vec32;
-typedef int8 __attribute__((vector_size(16))) vec8;
-typedef uint16 __attribute__((vector_size(16))) uvec16;
-typedef uint32 __attribute__((vector_size(16))) uvec32;
-typedef uint8 __attribute__((vector_size(16))) uvec8;
-typedef int16 __attribute__((vector_size(32))) lvec16;
-typedef int32 __attribute__((vector_size(32))) lvec32;
-typedef int8 __attribute__((vector_size(32))) lvec8;
-typedef uint16 __attribute__((vector_size(32))) ulvec16;
-typedef uint32 __attribute__((vector_size(32))) ulvec32;
-typedef uint8 __attribute__((vector_size(32))) ulvec8;
-#else
-#define SIMD_ALIGNED(var) var
-typedef int16 vec16[8];
-typedef int32 vec32[4];
-typedef int8 vec8[16];
-typedef uint16 uvec16[8];
-typedef uint32 uvec32[4];
-typedef uint8 uvec8[16];
-typedef int16 lvec16[16];
-typedef int32 lvec32[8];
-typedef int8 lvec8[32];
-typedef uint16 ulvec16[16];
-typedef uint32 ulvec32[8];
-typedef uint8 ulvec8[32];
-#endif
-
-#if defined(__aarch64__)
-// This struct is for Arm64 color conversion.
-struct YuvConstants {
-  uvec16 kUVToRB;
-  uvec16 kUVToRB2;
-  uvec16 kUVToG;
-  uvec16 kUVToG2;
-  vec16 kUVBiasBGR;
-  vec32 kYToRgb;
-};
-#elif defined(__arm__)
-// This struct is for ArmV7 color conversion.
-struct YuvConstants {
-  uvec8 kUVToRB;
-  uvec8 kUVToG;
-  vec16 kUVBiasBGR;
-  vec32 kYToRgb;
-};
-#else
-// This struct is for Intel color conversion.
-struct YuvConstants {
-  int8 kUVToB[32];
-  int8 kUVToG[32];
-  int8 kUVToR[32];
-  int16 kUVBiasB[16];
-  int16 kUVBiasG[16];
-  int16 kUVBiasR[16];
-  int16 kYToRgb[16];
-};
-
-// Offsets into YuvConstants structure
-#define KUVTOB 0
-#define KUVTOG 32
-#define KUVTOR 64
-#define KUVBIASB 96
-#define KUVBIASG 128
-#define KUVBIASR 160
-#define KYTORGB 192
-#endif
-
-// Conversion matrix for YUV to RGB
-extern const struct YuvConstants SIMD_ALIGNED(kYuvI601Constants);  // BT.601
-extern const struct YuvConstants SIMD_ALIGNED(kYuvJPEGConstants);  // JPeg
-extern const struct YuvConstants SIMD_ALIGNED(kYuvH709Constants);  // BT.709
-
-// Conversion matrix for YVU to BGR
-extern const struct YuvConstants SIMD_ALIGNED(kYvuI601Constants);  // BT.601
-extern const struct YuvConstants SIMD_ALIGNED(kYvuJPEGConstants);  // JPeg
-extern const struct YuvConstants SIMD_ALIGNED(kYvuH709Constants);  // BT.709
-
-#if defined(__APPLE__) || defined(__x86_64__) || defined(__llvm__)
-#define OMITFP
-#else
-#define OMITFP __attribute__((optimize("omit-frame-pointer")))
-#endif
-
-// NaCL macros for GCC x86 and x64.
-#if defined(__native_client__)
-#define LABELALIGN ".p2align 5\n"
-#else
-#define LABELALIGN
-#endif
-#if defined(__native_client__) && defined(__x86_64__)
-// r14 is used for MEMOP macros.
-#define NACL_R14 "r14",
-#define BUNDLELOCK ".bundle_lock\n"
-#define BUNDLEUNLOCK ".bundle_unlock\n"
-#define MEMACCESS(base) "%%nacl:(%%r15,%q" #base ")"
-#define MEMACCESS2(offset, base) "%%nacl:" #offset "(%%r15,%q" #base ")"
-#define MEMLEA(offset, base) #offset "(%q" #base ")"
-#define MEMLEA3(offset, index, scale) #offset "(,%q" #index "," #scale ")"
-#define MEMLEA4(offset, base, index, scale) \
-  #offset "(%q" #base ",%q" #index "," #scale ")"
-#define MEMMOVESTRING(s, d) "%%nacl:(%q" #s "),%%nacl:(%q" #d "), %%r15"
-#define MEMSTORESTRING(reg, d) "%%" #reg ",%%nacl:(%q" #d "), %%r15"
-#define MEMOPREG(opcode, offset, base, index, scale, reg)                 \
-  BUNDLELOCK                                                              \
-  "lea " #offset "(%q" #base ",%q" #index "," #scale "),%%r14d\n" #opcode \
-  " (%%r15,%%r14),%%" #reg "\n" BUNDLEUNLOCK
-#define MEMOPMEM(opcode, reg, offset, base, index, scale)                 \
-  BUNDLELOCK                                                              \
-  "lea " #offset "(%q" #base ",%q" #index "," #scale "),%%r14d\n" #opcode \
-  " %%" #reg ",(%%r15,%%r14)\n" BUNDLEUNLOCK
-#define MEMOPARG(opcode, offset, base, index, scale, arg)                 \
-  BUNDLELOCK                                                              \
-  "lea " #offset "(%q" #base ",%q" #index "," #scale "),%%r14d\n" #opcode \
-  " (%%r15,%%r14),%" #arg "\n" BUNDLEUNLOCK
-#define VMEMOPREG(opcode, offset, base, index, scale, reg1, reg2)         \
-  BUNDLELOCK                                                              \
-  "lea " #offset "(%q" #base ",%q" #index "," #scale "),%%r14d\n" #opcode \
-  " (%%r15,%%r14),%%" #reg1 ",%%" #reg2 "\n" BUNDLEUNLOCK
-#define VEXTOPMEM(op, sel, reg, offset, base, index, scale)           \
-  BUNDLELOCK                                                          \
-  "lea " #offset "(%q" #base ",%q" #index "," #scale "),%%r14d\n" #op \
-  " $" #sel ",%%" #reg ",(%%r15,%%r14)\n" BUNDLEUNLOCK
-#else  // defined(__native_client__) && defined(__x86_64__)
-#define NACL_R14
-#define BUNDLEALIGN
-#define MEMACCESS(base) "(%" #base ")"
-#define MEMACCESS2(offset, base) #offset "(%" #base ")"
-#define MEMLEA(offset, base) #offset "(%" #base ")"
-#define MEMLEA3(offset, index, scale) #offset "(,%" #index "," #scale ")"
-#define MEMLEA4(offset, base, index, scale) \
-  #offset "(%" #base ",%" #index "," #scale ")"
-#define MEMMOVESTRING(s, d)
-#define MEMSTORESTRING(reg, d)
-#define MEMOPREG(opcode, offset, base, index, scale, reg) \
-  #opcode " " #offset "(%" #base ",%" #index "," #scale "),%%" #reg "\n"
-#define MEMOPMEM(opcode, reg, offset, base, index, scale) \
-  #opcode " %%" #reg "," #offset "(%" #base ",%" #index "," #scale ")\n"
-#define MEMOPARG(opcode, offset, base, index, scale, arg) \
-  #opcode " " #offset "(%" #base ",%" #index "," #scale "),%" #arg "\n"
-#define VMEMOPREG(opcode, offset, base, index, scale, reg1, reg2)    \
-  #opcode " " #offset "(%" #base ",%" #index "," #scale "),%%" #reg1 \
-          ",%%" #reg2 "\n"
-#define VEXTOPMEM(op, sel, reg, offset, base, index, scale) \
-  #op " $" #sel ",%%" #reg "," #offset "(%" #base ",%" #index "," #scale ")\n"
-#endif  // defined(__native_client__) && defined(__x86_64__)
-
-#if defined(__arm__) || defined(__aarch64__)
-#undef MEMACCESS
-#if defined(__native_client__)
-#define MEMACCESS(base) ".p2align 3\nbic %" #base ", #0xc0000000\n"
-#else
-#define MEMACCESS(base)
-#endif
-#endif
-
-void I444ToARGBRow_NEON(const uint8* src_y,
-                        const uint8* src_u,
-                        const uint8* src_v,
-                        uint8* dst_argb,
-                        const struct YuvConstants* yuvconstants,
-                        int width);
-void I422ToARGBRow_NEON(const uint8* src_y,
-                        const uint8* src_u,
-                        const uint8* src_v,
-                        uint8* dst_argb,
-                        const struct YuvConstants* yuvconstants,
-                        int width);
-void I422AlphaToARGBRow_NEON(const uint8* y_buf,
-                             const uint8* u_buf,
-                             const uint8* v_buf,
-                             const uint8* a_buf,
-                             uint8* dst_argb,
-                             const struct YuvConstants* yuvconstants,
-                             int width);
-void I422ToARGBRow_NEON(const uint8* src_y,
-                        const uint8* src_u,
-                        const uint8* src_v,
-                        uint8* dst_argb,
-                        const struct YuvConstants* yuvconstants,
-                        int width);
-void I422ToRGBARow_NEON(const uint8* src_y,
-                        const uint8* src_u,
-                        const uint8* src_v,
-                        uint8* dst_rgba,
-                        const struct YuvConstants* yuvconstants,
-                        int width);
-void I422ToRGB24Row_NEON(const uint8* src_y,
-                         const uint8* src_u,
-                         const uint8* src_v,
-                         uint8* dst_rgb24,
-                         const struct YuvConstants* yuvconstants,
-                         int width);
-void I422ToRGB565Row_NEON(const uint8* src_y,
-                          const uint8* src_u,
-                          const uint8* src_v,
-                          uint8* dst_rgb565,
-                          const struct YuvConstants* yuvconstants,
-                          int width);
-void I422ToARGB1555Row_NEON(const uint8* src_y,
-                            const uint8* src_u,
-                            const uint8* src_v,
-                            uint8* dst_argb1555,
-                            const struct YuvConstants* yuvconstants,
-                            int width);
-void I422ToARGB4444Row_NEON(const uint8* src_y,
-                            const uint8* src_u,
-                            const uint8* src_v,
-                            uint8* dst_argb4444,
-                            const struct YuvConstants* yuvconstants,
-                            int width);
-void NV12ToARGBRow_NEON(const uint8* src_y,
-                        const uint8* src_uv,
-                        uint8* dst_argb,
-                        const struct YuvConstants* yuvconstants,
-                        int width);
-void NV12ToRGB565Row_NEON(const uint8* src_y,
-                          const uint8* src_uv,
-                          uint8* dst_rgb565,
-                          const struct YuvConstants* yuvconstants,
-                          int width);
-void NV21ToARGBRow_NEON(const uint8* src_y,
-                        const uint8* src_vu,
-                        uint8* dst_argb,
-                        const struct YuvConstants* yuvconstants,
-                        int width);
-void YUY2ToARGBRow_NEON(const uint8* src_yuy2,
-                        uint8* dst_argb,
-                        const struct YuvConstants* yuvconstants,
-                        int width);
-void UYVYToARGBRow_NEON(const uint8* src_uyvy,
-                        uint8* dst_argb,
-                        const struct YuvConstants* yuvconstants,
-                        int width);
-void I422ToARGBRow_MSA(const uint8* src_y,
-                       const uint8* src_u,
-                       const uint8* src_v,
-                       uint8* dst_argb,
-                       const struct YuvConstants* yuvconstants,
-                       int width);
-void I422ToRGBARow_MSA(const uint8* src_y,
-                       const uint8* src_u,
-                       const uint8* src_v,
-                       uint8* dst_rgba,
-                       const struct YuvConstants* yuvconstants,
-                       int width);
-void I422AlphaToARGBRow_MSA(const uint8* y_buf,
-                            const uint8* u_buf,
-                            const uint8* v_buf,
-                            const uint8* a_buf,
-                            uint8* dst_argb,
-                            const struct YuvConstants* yuvconstants,
-                            int width);
-void I422ToRGB24Row_MSA(const uint8* src_y,
-                        const uint8* src_u,
-                        const uint8* src_v,
-                        uint8* dst_rgb24,
-                        const struct YuvConstants* yuvconstants,
-                        int width);
-void I422ToRGB565Row_MSA(const uint8* src_y,
-                         const uint8* src_u,
-                         const uint8* src_v,
-                         uint8* dst_rgb565,
-                         const struct YuvConstants* yuvconstants,
-                         int width);
-void I422ToARGB4444Row_MSA(const uint8* src_y,
-                           const uint8* src_u,
-                           const uint8* src_v,
-                           uint8* dst_argb4444,
-                           const struct YuvConstants* yuvconstants,
-                           int width);
-void I422ToARGB1555Row_MSA(const uint8* src_y,
-                           const uint8* src_u,
-                           const uint8* src_v,
-                           uint8* dst_argb1555,
-                           const struct YuvConstants* yuvconstants,
-                           int width);
-
-void ARGBToYRow_AVX2(const uint8* src_argb, uint8* dst_y, int width);
-void ARGBToYRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int width);
-void ARGBToYRow_SSSE3(const uint8* src_argb, uint8* dst_y, int width);
-void ARGBToYJRow_AVX2(const uint8* src_argb, uint8* dst_y, int width);
-void ARGBToYJRow_Any_AVX2(const uint8* src_argb, uint8* dst_y, int width);
-void ARGBToYJRow_SSSE3(const uint8* src_argb, uint8* dst_y, int width);
-void BGRAToYRow_SSSE3(const uint8* src_bgra, uint8* dst_y, int width);
-void ABGRToYRow_SSSE3(const uint8* src_abgr, uint8* dst_y, int width);
-void RGBAToYRow_SSSE3(const uint8* src_rgba, uint8* dst_y, int width);
-void RGB24ToYRow_SSSE3(const uint8* src_rgb24, uint8* dst_y, int width);
-void RAWToYRow_SSSE3(const uint8* src_raw, uint8* dst_y, int width);
-void ARGBToYRow_NEON(const uint8* src_argb, uint8* dst_y, int width);
-void ARGBToYJRow_NEON(const uint8* src_argb, uint8* dst_y, int width);
-void ARGBToYRow_MSA(const uint8* src_argb, uint8* dst_y, int width);
-void ARGBToUV444Row_NEON(const uint8* src_argb,
-                         uint8* dst_u,
-                         uint8* dst_v,
-                         int width);
-void ARGBToUVRow_NEON(const uint8* src_argb,
-                      int src_stride_argb,
-                      uint8* dst_u,
-                      uint8* dst_v,
-                      int width);
-void ARGBToUV444Row_MSA(const uint8* src_argb,
-                        uint8* dst_u,
-                        uint8* dst_v,
-                        int width);
-void ARGBToUVRow_MSA(const uint8* src_argb,
-                     int src_stride_argb,
-                     uint8* dst_u,
-                     uint8* dst_v,
-                     int width);
-void ARGBToUVJRow_NEON(const uint8* src_argb,
-                       int src_stride_argb,
-                       uint8* dst_u,
-                       uint8* dst_v,
-                       int width);
-void BGRAToUVRow_NEON(const uint8* src_bgra,
-                      int src_stride_bgra,
-                      uint8* dst_u,
-                      uint8* dst_v,
-                      int width);
-void ABGRToUVRow_NEON(const uint8* src_abgr,
-                      int src_stride_abgr,
-                      uint8* dst_u,
-                      uint8* dst_v,
-                      int width);
-void RGBAToUVRow_NEON(const uint8* src_rgba,
-                      int src_stride_rgba,
-                      uint8* dst_u,
-                      uint8* dst_v,
-                      int width);
-void RGB24ToUVRow_NEON(const uint8* src_rgb24,
-                       int src_stride_rgb24,
-                       uint8* dst_u,
-                       uint8* dst_v,
-                       int width);
-void RAWToUVRow_NEON(const uint8* src_raw,
-                     int src_stride_raw,
-                     uint8* dst_u,
-                     uint8* dst_v,
-                     int width);
-void RGB565ToUVRow_NEON(const uint8* src_rgb565,
-                        int src_stride_rgb565,
-                        uint8* dst_u,
-                        uint8* dst_v,
-                        int width);
-void ARGB1555ToUVRow_NEON(const uint8* src_argb1555,
-                          int src_stride_argb1555,
-                          uint8* dst_u,
-                          uint8* dst_v,
-                          int width);
-void ARGB4444ToUVRow_NEON(const uint8* src_argb4444,
-                          int src_stride_argb4444,
-                          uint8* dst_u,
-                          uint8* dst_v,
-                          int width);
-void BGRAToYRow_NEON(const uint8* src_bgra, uint8* dst_y, int width);
-void ABGRToYRow_NEON(const uint8* src_abgr, uint8* dst_y, int width);
-void RGBAToYRow_NEON(const uint8* src_rgba, uint8* dst_y, int width);
-void RGB24ToYRow_NEON(const uint8* src_rgb24, uint8* dst_y, int width);
-void RAWToYRow_NEON(const uint8* src_raw, uint8* dst_y, int width);
-void RGB565ToYRow_NEON(const uint8* src_rgb565, uint8* dst_y, int width);
-void ARGB1555ToYRow_NEON(const uint8* src_argb1555, uint8* dst_y, int width);
-void ARGB4444ToYRow_NEON(const uint8* src_argb4444, uint8* dst_y, int width);
-void ARGBToYRow_C(const uint8* src_argb, uint8* dst_y, int width);
-void ARGBToYJRow_C(const uint8* src_argb, uint8* dst_y, int width);
-void BGRAToYRow_C(const uint8* src_bgra, uint8* dst_y, int width);
-void ABGRToYRow_C(const uint8* src_abgr, uint8* dst_y, int width);
-void RGBAToYRow_C(const uint8* src_rgba, uint8* dst_y, int width);
-void RGB24ToYRow_C(const uint8* src_rgb24, uint8* dst_y, int width);
-void RAWToYRow_C(const uint8* src_raw, uint8* dst_y, int width);
-void RGB565ToYRow_C(const uint8* src_rgb565, uint8* dst_y, int width);
-void ARGB1555ToYRow_C(const uint8* src_argb1555, uint8* dst_y, int width);
-void ARGB4444ToYRow_C(const uint8* src_argb4444, uint8* dst_y, int width);
-void ARGBToYRow_Any_SSSE3(const uint8* src_argb, uint8* dst_y, int width);
-void ARGBToYJRow_Any_SSSE3(const uint8* src_argb, uint8* dst_y, int width);
-void BGRAToYRow_Any_SSSE3(const uint8* src_bgra, uint8* dst_y, int width);
-void ABGRToYRow_Any_SSSE3(const uint8* src_abgr, uint8* dst_y, int width);
-void RGBAToYRow_Any_SSSE3(const uint8* src_rgba, uint8* dst_y, int width);
-void RGB24ToYRow_Any_SSSE3(const uint8* src_rgb24, uint8* dst_y, int width);
-void RAWToYRow_Any_SSSE3(const uint8* src_raw, uint8* dst_y, int width);
-void ARGBToYRow_Any_NEON(const uint8* src_argb, uint8* dst_y, int width);
-void ARGBToYJRow_Any_NEON(const uint8* src_argb, uint8* dst_y, int width);
-void BGRAToYRow_Any_NEON(const uint8* src_bgra, uint8* dst_y, int width);
-void ABGRToYRow_Any_NEON(const uint8* src_abgr, uint8* dst_y, int width);
-void RGBAToYRow_Any_NEON(const uint8* src_rgba, uint8* dst_y, int width);
-void RGB24ToYRow_Any_NEON(const uint8* src_rgb24, uint8* dst_y, int width);
-void RAWToYRow_Any_NEON(const uint8* src_raw, uint8* dst_y, int width);
-void RGB565ToYRow_Any_NEON(const uint8* src_rgb565, uint8* dst_y, int width);
-void ARGB1555ToYRow_Any_NEON(const uint8* src_argb1555,
-                             uint8* dst_y,
-                             int width);
-void ARGB4444ToYRow_Any_NEON(const uint8* src_argb4444,
-                             uint8* dst_y,
-                             int width);
-void ARGBToYRow_Any_MSA(const uint8* src_argb, uint8* dst_y, int width);
-
-void ARGBToUVRow_AVX2(const uint8* src_argb,
-                      int src_stride_argb,
-                      uint8* dst_u,
-                      uint8* dst_v,
-                      int width);
-void ARGBToUVJRow_AVX2(const uint8* src_argb,
-                       int src_stride_argb,
-                       uint8* dst_u,
-                       uint8* dst_v,
-                       int width);
-void ARGBToUVRow_SSSE3(const uint8* src_argb,
-                       int src_stride_argb,
-                       uint8* dst_u,
-                       uint8* dst_v,
-                       int width);
-void ARGBToUVJRow_SSSE3(const uint8* src_argb,
-                        int src_stride_argb,
-                        uint8* dst_u,
-                        uint8* dst_v,
-                        int width);
-void BGRAToUVRow_SSSE3(const uint8* src_bgra,
-                       int src_stride_bgra,
-                       uint8* dst_u,
-                       uint8* dst_v,
-                       int width);
-void ABGRToUVRow_SSSE3(const uint8* src_abgr,
-                       int src_stride_abgr,
-                       uint8* dst_u,
-                       uint8* dst_v,
-                       int width);
-void RGBAToUVRow_SSSE3(const uint8* src_rgba,
-                       int src_stride_rgba,
-                       uint8* dst_u,
-                       uint8* dst_v,
-                       int width);
-void ARGBToUVRow_Any_AVX2(const uint8* src_argb,
-                          int src_stride_argb,
-                          uint8* dst_u,
-                          uint8* dst_v,
-                          int width);
-void ARGBToUVJRow_Any_AVX2(const uint8* src_argb,
-                           int src_stride_argb,
-                           uint8* dst_u,
-                           uint8* dst_v,
-                           int width);
-void ARGBToUVRow_Any_SSSE3(const uint8* src_argb,
-                           int src_stride_argb,
-                           uint8* dst_u,
-                           uint8* dst_v,
-                           int width);
-void ARGBToUVJRow_Any_SSSE3(const uint8* src_argb,
-                            int src_stride_argb,
-                            uint8* dst_u,
-                            uint8* dst_v,
-                            int width);
-void BGRAToUVRow_Any_SSSE3(const uint8* src_bgra,
-                           int src_stride_bgra,
-                           uint8* dst_u,
-                           uint8* dst_v,
-                           int width);
-void ABGRToUVRow_Any_SSSE3(const uint8* src_abgr,
-                           int src_stride_abgr,
-                           uint8* dst_u,
-                           uint8* dst_v,
-                           int width);
-void RGBAToUVRow_Any_SSSE3(const uint8* src_rgba,
-                           int src_stride_rgba,
-                           uint8* dst_u,
-                           uint8* dst_v,
-                           int width);
-void ARGBToUV444Row_Any_NEON(const uint8* src_argb,
-                             uint8* dst_u,
-                             uint8* dst_v,
-                             int width);
-void ARGBToUVRow_Any_NEON(const uint8* src_argb,
-                          int src_stride_argb,
-                          uint8* dst_u,
-                          uint8* dst_v,
-                          int width);
-void ARGBToUV444Row_Any_MSA(const uint8* src_argb,
-                            uint8* dst_u,
-                            uint8* dst_v,
-                            int width);
-void ARGBToUVRow_Any_MSA(const uint8* src_argb,
-                         int src_stride_argb,
-                         uint8* dst_u,
-                         uint8* dst_v,
-                         int width);
-void ARGBToUVJRow_Any_NEON(const uint8* src_argb,
-                           int src_stride_argb,
-                           uint8* dst_u,
-                           uint8* dst_v,
-                           int width);
-void BGRAToUVRow_Any_NEON(const uint8* src_bgra,
-                          int src_stride_bgra,
-                          uint8* dst_u,
-                          uint8* dst_v,
-                          int width);
-void ABGRToUVRow_Any_NEON(const uint8* src_abgr,
-                          int src_stride_abgr,
-                          uint8* dst_u,
-                          uint8* dst_v,
-                          int width);
-void RGBAToUVRow_Any_NEON(const uint8* src_rgba,
-                          int src_stride_rgba,
-                          uint8* dst_u,
-                          uint8* dst_v,
-                          int width);
-void RGB24ToUVRow_Any_NEON(const uint8* src_rgb24,
-                           int src_stride_rgb24,
-                           uint8* dst_u,
-                           uint8* dst_v,
-                           int width);
-void RAWToUVRow_Any_NEON(const uint8* src_raw,
-                         int src_stride_raw,
-                         uint8* dst_u,
-                         uint8* dst_v,
-                         int width);
-void RGB565ToUVRow_Any_NEON(const uint8* src_rgb565,
-                            int src_stride_rgb565,
-                            uint8* dst_u,
-                            uint8* dst_v,
-                            int width);
-void ARGB1555ToUVRow_Any_NEON(const uint8* src_argb1555,
-                              int src_stride_argb1555,
-                              uint8* dst_u,
-                              uint8* dst_v,
-                              int width);
-void ARGB4444ToUVRow_Any_NEON(const uint8* src_argb4444,
-                              int src_stride_argb4444,
-                              uint8* dst_u,
-                              uint8* dst_v,
-                              int width);
-void ARGBToUVRow_C(const uint8* src_argb,
-                   int src_stride_argb,
-                   uint8* dst_u,
-                   uint8* dst_v,
-                   int width);
-void ARGBToUVJRow_C(const uint8* src_argb,
-                    int src_stride_argb,
-                    uint8* dst_u,
-                    uint8* dst_v,
-                    int width);
-void BGRAToUVRow_C(const uint8* src_bgra,
-                   int src_stride_bgra,
-                   uint8* dst_u,
-                   uint8* dst_v,
-                   int width);
-void ABGRToUVRow_C(const uint8* src_abgr,
-                   int src_stride_abgr,
-                   uint8* dst_u,
-                   uint8* dst_v,
-                   int width);
-void RGBAToUVRow_C(const uint8* src_rgba,
-                   int src_stride_rgba,
-                   uint8* dst_u,
-                   uint8* dst_v,
-                   int width);
-void RGB24ToUVRow_C(const uint8* src_rgb24,
-                    int src_stride_rgb24,
-                    uint8* dst_u,
-                    uint8* dst_v,
-                    int width);
-void RAWToUVRow_C(const uint8* src_raw,
-                  int src_stride_raw,
-                  uint8* dst_u,
-                  uint8* dst_v,
-                  int width);
-void RGB565ToUVRow_C(const uint8* src_rgb565,
-                     int src_stride_rgb565,
-                     uint8* dst_u,
-                     uint8* dst_v,
-                     int width);
-void ARGB1555ToUVRow_C(const uint8* src_argb1555,
-                       int src_stride_argb1555,
-                       uint8* dst_u,
-                       uint8* dst_v,
-                       int width);
-void ARGB4444ToUVRow_C(const uint8* src_argb4444,
-                       int src_stride_argb4444,
-                       uint8* dst_u,
-                       uint8* dst_v,
-                       int width);
-
-void ARGBToUV444Row_SSSE3(const uint8* src_argb,
-                          uint8* dst_u,
-                          uint8* dst_v,
-                          int width);
-void ARGBToUV444Row_Any_SSSE3(const uint8* src_argb,
-                              uint8* dst_u,
-                              uint8* dst_v,
-                              int width);
-
-void ARGBToUV444Row_C(const uint8* src_argb,
-                      uint8* dst_u,
-                      uint8* dst_v,
-                      int width);
-
-void MirrorRow_AVX2(const uint8* src, uint8* dst, int width);
-void MirrorRow_SSSE3(const uint8* src, uint8* dst, int width);
-void MirrorRow_NEON(const uint8* src, uint8* dst, int width);
-void MirrorRow_DSPR2(const uint8* src, uint8* dst, int width);
-void MirrorRow_MSA(const uint8* src, uint8* dst, int width);
-void MirrorRow_C(const uint8* src, uint8* dst, int width);
-void MirrorRow_Any_AVX2(const uint8* src, uint8* dst, int width);
-void MirrorRow_Any_SSSE3(const uint8* src, uint8* dst, int width);
-void MirrorRow_Any_SSE2(const uint8* src, uint8* dst, int width);
-void MirrorRow_Any_NEON(const uint8* src, uint8* dst, int width);
-void MirrorRow_Any_MSA(const uint8* src, uint8* dst, int width);
-
-void MirrorUVRow_SSSE3(const uint8* src_uv,
-                       uint8* dst_u,
-                       uint8* dst_v,
-                       int width);
-void MirrorUVRow_NEON(const uint8* src_uv,
-                      uint8* dst_u,
-                      uint8* dst_v,
-                      int width);
-void MirrorUVRow_DSPR2(const uint8* src_uv,
-                       uint8* dst_u,
-                       uint8* dst_v,
-                       int width);
-void MirrorUVRow_C(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int width);
-
-void ARGBMirrorRow_AVX2(const uint8* src, uint8* dst, int width);
-void ARGBMirrorRow_SSE2(const uint8* src, uint8* dst, int width);
-void ARGBMirrorRow_NEON(const uint8* src, uint8* dst, int width);
-void ARGBMirrorRow_MSA(const uint8* src, uint8* dst, int width);
-void ARGBMirrorRow_C(const uint8* src, uint8* dst, int width);
-void ARGBMirrorRow_Any_AVX2(const uint8* src, uint8* dst, int width);
-void ARGBMirrorRow_Any_SSE2(const uint8* src, uint8* dst, int width);
-void ARGBMirrorRow_Any_NEON(const uint8* src, uint8* dst, int width);
-void ARGBMirrorRow_Any_MSA(const uint8* src, uint8* dst, int width);
-
-void SplitUVRow_C(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int width);
-void SplitUVRow_SSE2(const uint8* src_uv,
-                     uint8* dst_u,
-                     uint8* dst_v,
-                     int width);
-void SplitUVRow_AVX2(const uint8* src_uv,
-                     uint8* dst_u,
-                     uint8* dst_v,
-                     int width);
-void SplitUVRow_NEON(const uint8* src_uv,
-                     uint8* dst_u,
-                     uint8* dst_v,
-                     int width);
-void SplitUVRow_DSPR2(const uint8* src_uv,
-                      uint8* dst_u,
-                      uint8* dst_v,
-                      int width);
-void SplitUVRow_Any_SSE2(const uint8* src_uv,
-                         uint8* dst_u,
-                         uint8* dst_v,
-                         int width);
-void SplitUVRow_Any_AVX2(const uint8* src_uv,
-                         uint8* dst_u,
-                         uint8* dst_v,
-                         int width);
-void SplitUVRow_Any_NEON(const uint8* src_uv,
-                         uint8* dst_u,
-                         uint8* dst_v,
-                         int width);
-void SplitUVRow_Any_DSPR2(const uint8* src_uv,
-                          uint8* dst_u,
-                          uint8* dst_v,
-                          int width);
-
-void MergeUVRow_C(const uint8* src_u,
-                  const uint8* src_v,
-                  uint8* dst_uv,
-                  int width);
-void MergeUVRow_SSE2(const uint8* src_u,
-                     const uint8* src_v,
-                     uint8* dst_uv,
-                     int width);
-void MergeUVRow_AVX2(const uint8* src_u,
-                     const uint8* src_v,
-                     uint8* dst_uv,
-                     int width);
-void MergeUVRow_NEON(const uint8* src_u,
-                     const uint8* src_v,
-                     uint8* dst_uv,
-                     int width);
-void MergeUVRow_Any_SSE2(const uint8* src_u,
-                         const uint8* src_v,
-                         uint8* dst_uv,
-                         int width);
-void MergeUVRow_Any_AVX2(const uint8* src_u,
-                         const uint8* src_v,
-                         uint8* dst_uv,
-                         int width);
-void MergeUVRow_Any_NEON(const uint8* src_u,
-                         const uint8* src_v,
-                         uint8* dst_uv,
-                         int width);
-
-void CopyRow_SSE2(const uint8* src, uint8* dst, int count);
-void CopyRow_AVX(const uint8* src, uint8* dst, int count);
-void CopyRow_ERMS(const uint8* src, uint8* dst, int count);
-void CopyRow_NEON(const uint8* src, uint8* dst, int count);
-void CopyRow_MIPS(const uint8* src, uint8* dst, int count);
-void CopyRow_C(const uint8* src, uint8* dst, int count);
-void CopyRow_Any_SSE2(const uint8* src, uint8* dst, int count);
-void CopyRow_Any_AVX(const uint8* src, uint8* dst, int count);
-void CopyRow_Any_NEON(const uint8* src, uint8* dst, int count);
-
-void CopyRow_16_C(const uint16* src, uint16* dst, int count);
-
-void ARGBCopyAlphaRow_C(const uint8* src_argb, uint8* dst_argb, int width);
-void ARGBCopyAlphaRow_SSE2(const uint8* src_argb, uint8* dst_argb, int width);
-void ARGBCopyAlphaRow_AVX2(const uint8* src_argb, uint8* dst_argb, int width);
-void ARGBCopyAlphaRow_Any_SSE2(const uint8* src_argb,
-                               uint8* dst_argb,
-                               int width);
-void ARGBCopyAlphaRow_Any_AVX2(const uint8* src_argb,
-                               uint8* dst_argb,
-                               int width);
-
-void ARGBExtractAlphaRow_C(const uint8* src_argb, uint8* dst_a, int width);
-void ARGBExtractAlphaRow_SSE2(const uint8* src_argb, uint8* dst_a, int width);
-void ARGBExtractAlphaRow_AVX2(const uint8* src_argb, uint8* dst_a, int width);
-void ARGBExtractAlphaRow_NEON(const uint8* src_argb, uint8* dst_a, int width);
-void ARGBExtractAlphaRow_Any_SSE2(const uint8* src_argb,
-                                  uint8* dst_a,
-                                  int width);
-void ARGBExtractAlphaRow_Any_AVX2(const uint8* src_argb,
-                                  uint8* dst_a,
-                                  int width);
-void ARGBExtractAlphaRow_Any_NEON(const uint8* src_argb,
-                                  uint8* dst_a,
-                                  int width);
-
-void ARGBCopyYToAlphaRow_C(const uint8* src_y, uint8* dst_argb, int width);
-void ARGBCopyYToAlphaRow_SSE2(const uint8* src_y, uint8* dst_argb, int width);
-void ARGBCopyYToAlphaRow_AVX2(const uint8* src_y, uint8* dst_argb, int width);
-void ARGBCopyYToAlphaRow_Any_SSE2(const uint8* src_y,
-                                  uint8* dst_argb,
-                                  int width);
-void ARGBCopyYToAlphaRow_Any_AVX2(const uint8* src_y,
-                                  uint8* dst_argb,
-                                  int width);
-
-void SetRow_C(uint8* dst, uint8 v8, int count);
-void SetRow_X86(uint8* dst, uint8 v8, int count);
-void SetRow_ERMS(uint8* dst, uint8 v8, int count);
-void SetRow_NEON(uint8* dst, uint8 v8, int count);
-void SetRow_Any_X86(uint8* dst, uint8 v8, int count);
-void SetRow_Any_NEON(uint8* dst, uint8 v8, int count);
-
-void ARGBSetRow_C(uint8* dst_argb, uint32 v32, int count);
-void ARGBSetRow_X86(uint8* dst_argb, uint32 v32, int count);
-void ARGBSetRow_NEON(uint8* dst_argb, uint32 v32, int count);
-void ARGBSetRow_Any_NEON(uint8* dst_argb, uint32 v32, int count);
-
-// ARGBShufflers for BGRAToARGB etc.
-void ARGBShuffleRow_C(const uint8* src_argb,
-                      uint8* dst_argb,
-                      const uint8* shuffler,
-                      int width);
-void ARGBShuffleRow_SSE2(const uint8* src_argb,
-                         uint8* dst_argb,
-                         const uint8* shuffler,
-                         int width);
-void ARGBShuffleRow_SSSE3(const uint8* src_argb,
-                          uint8* dst_argb,
-                          const uint8* shuffler,
-                          int width);
-void ARGBShuffleRow_AVX2(const uint8* src_argb,
-                         uint8* dst_argb,
-                         const uint8* shuffler,
-                         int width);
-void ARGBShuffleRow_NEON(const uint8* src_argb,
-                         uint8* dst_argb,
-                         const uint8* shuffler,
-                         int width);
-void ARGBShuffleRow_Any_SSE2(const uint8* src_argb,
-                             uint8* dst_argb,
-                             const uint8* shuffler,
-                             int width);
-void ARGBShuffleRow_Any_SSSE3(const uint8* src_argb,
-                              uint8* dst_argb,
-                              const uint8* shuffler,
-                              int width);
-void ARGBShuffleRow_Any_AVX2(const uint8* src_argb,
-                             uint8* dst_argb,
-                             const uint8* shuffler,
-                             int width);
-void ARGBShuffleRow_Any_NEON(const uint8* src_argb,
-                             uint8* dst_argb,
-                             const uint8* shuffler,
-                             int width);
-
-void RGB24ToARGBRow_SSSE3(const uint8* src_rgb24, uint8* dst_argb, int width);
-void RAWToARGBRow_SSSE3(const uint8* src_raw, uint8* dst_argb, int width);
-void RAWToRGB24Row_SSSE3(const uint8* src_raw, uint8* dst_rgb24, int width);
-void RGB565ToARGBRow_SSE2(const uint8* src_rgb565, uint8* dst_argb, int width);
-void ARGB1555ToARGBRow_SSE2(const uint8* src_argb1555,
-                            uint8* dst_argb,
-                            int width);
-void ARGB4444ToARGBRow_SSE2(const uint8* src_argb4444,
-                            uint8* dst_argb,
-                            int width);
-void RGB565ToARGBRow_AVX2(const uint8* src_rgb565, uint8* dst_argb, int width);
-void ARGB1555ToARGBRow_AVX2(const uint8* src_argb1555,
-                            uint8* dst_argb,
-                            int width);
-void ARGB4444ToARGBRow_AVX2(const uint8* src_argb4444,
-                            uint8* dst_argb,
-                            int width);
-
-void RGB24ToARGBRow_NEON(const uint8* src_rgb24, uint8* dst_argb, int width);
-void RAWToARGBRow_NEON(const uint8* src_raw, uint8* dst_argb, int width);
-void RAWToRGB24Row_NEON(const uint8* src_raw, uint8* dst_rgb24, int width);
-void RGB565ToARGBRow_NEON(const uint8* src_rgb565, uint8* dst_argb, int width);
-void ARGB1555ToARGBRow_NEON(const uint8* src_argb1555,
-                            uint8* dst_argb,
-                            int width);
-void ARGB4444ToARGBRow_NEON(const uint8* src_argb4444,
-                            uint8* dst_argb,
-                            int width);
-void ARGB4444ToARGBRow_MSA(const uint8* src_argb4444,
-                           uint8* dst_argb,
-                           int width);
-void RGB24ToARGBRow_C(const uint8* src_rgb24, uint8* dst_argb, int width);
-void RAWToARGBRow_C(const uint8* src_raw, uint8* dst_argb, int width);
-void RAWToRGB24Row_C(const uint8* src_raw, uint8* dst_rgb24, int width);
-void RGB565ToARGBRow_C(const uint8* src_rgb, uint8* dst_argb, int width);
-void ARGB1555ToARGBRow_C(const uint8* src_argb, uint8* dst_argb, int width);
-void ARGB4444ToARGBRow_C(const uint8* src_argb, uint8* dst_argb, int width);
-void RGB24ToARGBRow_Any_SSSE3(const uint8* src_rgb24,
-                              uint8* dst_argb,
-                              int width);
-void RAWToARGBRow_Any_SSSE3(const uint8* src_raw, uint8* dst_argb, int width);
-void RAWToRGB24Row_Any_SSSE3(const uint8* src_raw, uint8* dst_rgb24, int width);
-
-void RGB565ToARGBRow_Any_SSE2(const uint8* src_rgb565,
-                              uint8* dst_argb,
-                              int width);
-void ARGB1555ToARGBRow_Any_SSE2(const uint8* src_argb1555,
-                                uint8* dst_argb,
-                                int width);
-void ARGB4444ToARGBRow_Any_SSE2(const uint8* src_argb4444,
-                                uint8* dst_argb,
-                                int width);
-void RGB565ToARGBRow_Any_AVX2(const uint8* src_rgb565,
-                              uint8* dst_argb,
-                              int width);
-void ARGB1555ToARGBRow_Any_AVX2(const uint8* src_argb1555,
-                                uint8* dst_argb,
-                                int width);
-void ARGB4444ToARGBRow_Any_AVX2(const uint8* src_argb4444,
-                                uint8* dst_argb,
-                                int width);
-
-void RGB24ToARGBRow_Any_NEON(const uint8* src_rgb24,
-                             uint8* dst_argb,
-                             int width);
-void RAWToARGBRow_Any_NEON(const uint8* src_raw, uint8* dst_argb, int width);
-void RAWToRGB24Row_Any_NEON(const uint8* src_raw, uint8* dst_rgb24, int width);
-void RGB565ToARGBRow_Any_NEON(const uint8* src_rgb565,
-                              uint8* dst_argb,
-                              int width);
-void ARGB1555ToARGBRow_Any_NEON(const uint8* src_argb1555,
-                                uint8* dst_argb,
-                                int width);
-void ARGB4444ToARGBRow_Any_NEON(const uint8* src_argb4444,
-                                uint8* dst_argb,
-                                int width);
-void ARGB4444ToARGBRow_Any_MSA(const uint8* src_argb4444,
-                               uint8* dst_argb,
-                               int width);
-
-void ARGBToRGB24Row_SSSE3(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToRAWRow_SSSE3(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToRGB565Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToARGB1555Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToARGB4444Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int width);
-
-void ARGBToRGB565DitherRow_C(const uint8* src_argb,
-                             uint8* dst_rgb,
-                             const uint32 dither4,
-                             int width);
-void ARGBToRGB565DitherRow_SSE2(const uint8* src_argb,
-                                uint8* dst_rgb,
-                                const uint32 dither4,
-                                int width);
-void ARGBToRGB565DitherRow_AVX2(const uint8* src_argb,
-                                uint8* dst_rgb,
-                                const uint32 dither4,
-                                int width);
-
-void ARGBToRGB565Row_AVX2(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToARGB1555Row_AVX2(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToARGB4444Row_AVX2(const uint8* src_argb, uint8* dst_rgb, int width);
-
-void ARGBToRGB24Row_NEON(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToRAWRow_NEON(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToRGB565Row_NEON(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToARGB1555Row_NEON(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToARGB4444Row_NEON(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToRGB565DitherRow_NEON(const uint8* src_argb,
-                                uint8* dst_rgb,
-                                const uint32 dither4,
-                                int width);
-void ARGBToRGB24Row_MSA(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToRAWRow_MSA(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToRGB565Row_MSA(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToARGB1555Row_MSA(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToARGB4444Row_MSA(const uint8* src_argb, uint8* dst_rgb, int width);
-
-void ARGBToRGBARow_C(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToRGB24Row_C(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToRAWRow_C(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToRGB565Row_C(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToARGB1555Row_C(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToARGB4444Row_C(const uint8* src_argb, uint8* dst_rgb, int width);
-
-void J400ToARGBRow_SSE2(const uint8* src_y, uint8* dst_argb, int width);
-void J400ToARGBRow_AVX2(const uint8* src_y, uint8* dst_argb, int width);
-void J400ToARGBRow_NEON(const uint8* src_y, uint8* dst_argb, int width);
-void J400ToARGBRow_C(const uint8* src_y, uint8* dst_argb, int width);
-void J400ToARGBRow_Any_SSE2(const uint8* src_y, uint8* dst_argb, int width);
-void J400ToARGBRow_Any_AVX2(const uint8* src_y, uint8* dst_argb, int width);
-void J400ToARGBRow_Any_NEON(const uint8* src_y, uint8* dst_argb, int width);
-
-void I444ToARGBRow_C(const uint8* src_y,
-                     const uint8* src_u,
-                     const uint8* src_v,
-                     uint8* dst_argb,
-                     const struct YuvConstants* yuvconstants,
-                     int width);
-void I422ToARGBRow_C(const uint8* src_y,
-                     const uint8* src_u,
-                     const uint8* src_v,
-                     uint8* dst_argb,
-                     const struct YuvConstants* yuvconstants,
-                     int width);
-void I422ToARGBRow_C(const uint8* src_y,
-                     const uint8* src_u,
-                     const uint8* src_v,
-                     uint8* dst_argb,
-                     const struct YuvConstants* yuvconstants,
-                     int width);
-void I422AlphaToARGBRow_C(const uint8* y_buf,
-                          const uint8* u_buf,
-                          const uint8* v_buf,
-                          const uint8* a_buf,
-                          uint8* dst_argb,
-                          const struct YuvConstants* yuvconstants,
-                          int width);
-void NV12ToARGBRow_C(const uint8* src_y,
-                     const uint8* src_uv,
-                     uint8* dst_argb,
-                     const struct YuvConstants* yuvconstants,
-                     int width);
-void NV12ToRGB565Row_C(const uint8* src_y,
-                       const uint8* src_uv,
-                       uint8* dst_argb,
-                       const struct YuvConstants* yuvconstants,
-                       int width);
-void NV21ToARGBRow_C(const uint8* src_y,
-                     const uint8* src_uv,
-                     uint8* dst_argb,
-                     const struct YuvConstants* yuvconstants,
-                     int width);
-void YUY2ToARGBRow_C(const uint8* src_yuy2,
-                     uint8* dst_argb,
-                     const struct YuvConstants* yuvconstants,
-                     int width);
-void UYVYToARGBRow_C(const uint8* src_uyvy,
-                     uint8* dst_argb,
-                     const struct YuvConstants* yuvconstants,
-                     int width);
-void I422ToRGBARow_C(const uint8* src_y,
-                     const uint8* src_u,
-                     const uint8* src_v,
-                     uint8* dst_rgba,
-                     const struct YuvConstants* yuvconstants,
-                     int width);
-void I422ToRGB24Row_C(const uint8* src_y,
-                      const uint8* src_u,
-                      const uint8* src_v,
-                      uint8* dst_rgb24,
-                      const struct YuvConstants* yuvconstants,
-                      int width);
-void I422ToARGB4444Row_C(const uint8* src_y,
-                         const uint8* src_u,
-                         const uint8* src_v,
-                         uint8* dst_argb4444,
-                         const struct YuvConstants* yuvconstants,
-                         int width);
-void I422ToARGB1555Row_C(const uint8* src_y,
-                         const uint8* src_u,
-                         const uint8* src_v,
-                         uint8* dst_argb4444,
-                         const struct YuvConstants* yuvconstants,
-                         int width);
-void I422ToRGB565Row_C(const uint8* src_y,
-                       const uint8* src_u,
-                       const uint8* src_v,
-                       uint8* dst_rgb565,
-                       const struct YuvConstants* yuvconstants,
-                       int width);
-void I422ToARGBRow_AVX2(const uint8* src_y,
-                        const uint8* src_u,
-                        const uint8* src_v,
-                        uint8* dst_argb,
-                        const struct YuvConstants* yuvconstants,
-                        int width);
-void I422ToARGBRow_AVX2(const uint8* src_y,
-                        const uint8* src_u,
-                        const uint8* src_v,
-                        uint8* dst_argb,
-                        const struct YuvConstants* yuvconstants,
-                        int width);
-void I422ToRGBARow_AVX2(const uint8* src_y,
-                        const uint8* src_u,
-                        const uint8* src_v,
-                        uint8* dst_argb,
-                        const struct YuvConstants* yuvconstants,
-                        int width);
-void I444ToARGBRow_SSSE3(const uint8* src_y,
-                         const uint8* src_u,
-                         const uint8* src_v,
-                         uint8* dst_argb,
-                         const struct YuvConstants* yuvconstants,
-                         int width);
-void I444ToARGBRow_AVX2(const uint8* src_y,
-                        const uint8* src_u,
-                        const uint8* src_v,
-                        uint8* dst_argb,
-                        const struct YuvConstants* yuvconstants,
-                        int width);
-void I444ToARGBRow_SSSE3(const uint8* src_y,
-                         const uint8* src_u,
-                         const uint8* src_v,
-                         uint8* dst_argb,
-                         const struct YuvConstants* yuvconstants,
-                         int width);
-void I444ToARGBRow_AVX2(const uint8* src_y,
-                        const uint8* src_u,
-                        const uint8* src_v,
-                        uint8* dst_argb,
-                        const struct YuvConstants* yuvconstants,
-                        int width);
-void I422ToARGBRow_SSSE3(const uint8* src_y,
-                         const uint8* src_u,
-                         const uint8* src_v,
-                         uint8* dst_argb,
-                         const struct YuvConstants* yuvconstants,
-                         int width);
-void I422AlphaToARGBRow_SSSE3(const uint8* y_buf,
-                              const uint8* u_buf,
-                              const uint8* v_buf,
-                              const uint8* a_buf,
-                              uint8* dst_argb,
-                              const struct YuvConstants* yuvconstants,
-                              int width);
-void I422AlphaToARGBRow_AVX2(const uint8* y_buf,
-                             const uint8* u_buf,
-                             const uint8* v_buf,
-                             const uint8* a_buf,
-                             uint8* dst_argb,
-                             const struct YuvConstants* yuvconstants,
-                             int width);
-void I422ToARGBRow_SSSE3(const uint8* src_y,
-                         const uint8* src_u,
-                         const uint8* src_v,
-                         uint8* dst_argb,
-                         const struct YuvConstants* yuvconstants,
-                         int width);
-void NV12ToARGBRow_SSSE3(const uint8* src_y,
-                         const uint8* src_uv,
-                         uint8* dst_argb,
-                         const struct YuvConstants* yuvconstants,
-                         int width);
-void NV12ToARGBRow_AVX2(const uint8* src_y,
-                        const uint8* src_uv,
-                        uint8* dst_argb,
-                        const struct YuvConstants* yuvconstants,
-                        int width);
-void NV12ToRGB565Row_SSSE3(const uint8* src_y,
-                           const uint8* src_uv,
-                           uint8* dst_argb,
-                           const struct YuvConstants* yuvconstants,
-                           int width);
-void NV12ToRGB565Row_AVX2(const uint8* src_y,
-                          const uint8* src_uv,
-                          uint8* dst_argb,
-                          const struct YuvConstants* yuvconstants,
-                          int width);
-void NV21ToARGBRow_SSSE3(const uint8* src_y,
-                         const uint8* src_uv,
-                         uint8* dst_argb,
-                         const struct YuvConstants* yuvconstants,
-                         int width);
-void NV21ToARGBRow_AVX2(const uint8* src_y,
-                        const uint8* src_uv,
-                        uint8* dst_argb,
-                        const struct YuvConstants* yuvconstants,
-                        int width);
-void YUY2ToARGBRow_SSSE3(const uint8* src_yuy2,
-                         uint8* dst_argb,
-                         const struct YuvConstants* yuvconstants,
-                         int width);
-void UYVYToARGBRow_SSSE3(const uint8* src_uyvy,
-                         uint8* dst_argb,
-                         const struct YuvConstants* yuvconstants,
-                         int width);
-void YUY2ToARGBRow_AVX2(const uint8* src_yuy2,
-                        uint8* dst_argb,
-                        const struct YuvConstants* yuvconstants,
-                        int width);
-void UYVYToARGBRow_AVX2(const uint8* src_uyvy,
-                        uint8* dst_argb,
-                        const struct YuvConstants* yuvconstants,
-                        int width);
-void I422ToRGBARow_SSSE3(const uint8* src_y,
-                         const uint8* src_u,
-                         const uint8* src_v,
-                         uint8* dst_rgba,
-                         const struct YuvConstants* yuvconstants,
-                         int width);
-void I422ToARGB4444Row_SSSE3(const uint8* src_y,
-                             const uint8* src_u,
-                             const uint8* src_v,
-                             uint8* dst_argb,
-                             const struct YuvConstants* yuvconstants,
-                             int width);
-void I422ToARGB4444Row_AVX2(const uint8* src_y,
-                            const uint8* src_u,
-                            const uint8* src_v,
-                            uint8* dst_argb,
-                            const struct YuvConstants* yuvconstants,
-                            int width);
-void I422ToARGB1555Row_SSSE3(const uint8* src_y,
-                             const uint8* src_u,
-                             const uint8* src_v,
-                             uint8* dst_argb,
-                             const struct YuvConstants* yuvconstants,
-                             int width);
-void I422ToARGB1555Row_AVX2(const uint8* src_y,
-                            const uint8* src_u,
-                            const uint8* src_v,
-                            uint8* dst_argb,
-                            const struct YuvConstants* yuvconstants,
-                            int width);
-void I422ToRGB565Row_SSSE3(const uint8* src_y,
-                           const uint8* src_u,
-                           const uint8* src_v,
-                           uint8* dst_argb,
-                           const struct YuvConstants* yuvconstants,
-                           int width);
-void I422ToRGB565Row_AVX2(const uint8* src_y,
-                          const uint8* src_u,
-                          const uint8* src_v,
-                          uint8* dst_argb,
-                          const struct YuvConstants* yuvconstants,
-                          int width);
-void I422ToRGB24Row_SSSE3(const uint8* src_y,
-                          const uint8* src_u,
-                          const uint8* src_v,
-                          uint8* dst_rgb24,
-                          const struct YuvConstants* yuvconstants,
-                          int width);
-void I422ToRGB24Row_AVX2(const uint8* src_y,
-                         const uint8* src_u,
-                         const uint8* src_v,
-                         uint8* dst_rgb24,
-                         const struct YuvConstants* yuvconstants,
-                         int width);
-void I422ToARGBRow_Any_AVX2(const uint8* src_y,
-                            const uint8* src_u,
-                            const uint8* src_v,
-                            uint8* dst_argb,
-                            const struct YuvConstants* yuvconstants,
-                            int width);
-void I422ToRGBARow_Any_AVX2(const uint8* src_y,
-                            const uint8* src_u,
-                            const uint8* src_v,
-                            uint8* dst_argb,
-                            const struct YuvConstants* yuvconstants,
-                            int width);
-void I444ToARGBRow_Any_SSSE3(const uint8* src_y,
-                             const uint8* src_u,
-                             const uint8* src_v,
-                             uint8* dst_argb,
-                             const struct YuvConstants* yuvconstants,
-                             int width);
-void I444ToARGBRow_Any_AVX2(const uint8* src_y,
-                            const uint8* src_u,
-                            const uint8* src_v,
-                            uint8* dst_argb,
-                            const struct YuvConstants* yuvconstants,
-                            int width);
-void I422ToARGBRow_Any_SSSE3(const uint8* src_y,
-                             const uint8* src_u,
-                             const uint8* src_v,
-                             uint8* dst_argb,
-                             const struct YuvConstants* yuvconstants,
-                             int width);
-void I422AlphaToARGBRow_Any_SSSE3(const uint8* y_buf,
-                                  const uint8* u_buf,
-                                  const uint8* v_buf,
-                                  const uint8* a_buf,
-                                  uint8* dst_argb,
-                                  const struct YuvConstants* yuvconstants,
-                                  int width);
-void I422AlphaToARGBRow_Any_AVX2(const uint8* y_buf,
-                                 const uint8* u_buf,
-                                 const uint8* v_buf,
-                                 const uint8* a_buf,
-                                 uint8* dst_argb,
-                                 const struct YuvConstants* yuvconstants,
-                                 int width);
-void NV12ToARGBRow_Any_SSSE3(const uint8* src_y,
-                             const uint8* src_uv,
-                             uint8* dst_argb,
-                             const struct YuvConstants* yuvconstants,
-                             int width);
-void NV12ToARGBRow_Any_AVX2(const uint8* src_y,
-                            const uint8* src_uv,
-                            uint8* dst_argb,
-                            const struct YuvConstants* yuvconstants,
-                            int width);
-void NV21ToARGBRow_Any_SSSE3(const uint8* src_y,
-                             const uint8* src_vu,
-                             uint8* dst_argb,
-                             const struct YuvConstants* yuvconstants,
-                             int width);
-void NV21ToARGBRow_Any_AVX2(const uint8* src_y,
-                            const uint8* src_vu,
-                            uint8* dst_argb,
-                            const struct YuvConstants* yuvconstants,
-                            int width);
-void NV12ToRGB565Row_Any_SSSE3(const uint8* src_y,
-                               const uint8* src_uv,
-                               uint8* dst_argb,
-                               const struct YuvConstants* yuvconstants,
-                               int width);
-void NV12ToRGB565Row_Any_AVX2(const uint8* src_y,
-                              const uint8* src_uv,
-                              uint8* dst_argb,
-                              const struct YuvConstants* yuvconstants,
-                              int width);
-void YUY2ToARGBRow_Any_SSSE3(const uint8* src_yuy2,
-                             uint8* dst_argb,
-                             const struct YuvConstants* yuvconstants,
-                             int width);
-void UYVYToARGBRow_Any_SSSE3(const uint8* src_uyvy,
-                             uint8* dst_argb,
-                             const struct YuvConstants* yuvconstants,
-                             int width);
-void YUY2ToARGBRow_Any_AVX2(const uint8* src_yuy2,
-                            uint8* dst_argb,
-                            const struct YuvConstants* yuvconstants,
-                            int width);
-void UYVYToARGBRow_Any_AVX2(const uint8* src_uyvy,
-                            uint8* dst_argb,
-                            const struct YuvConstants* yuvconstants,
-                            int width);
-void I422ToRGBARow_Any_SSSE3(const uint8* src_y,
-                             const uint8* src_u,
-                             const uint8* src_v,
-                             uint8* dst_rgba,
-                             const struct YuvConstants* yuvconstants,
-                             int width);
-void I422ToARGB4444Row_Any_SSSE3(const uint8* src_y,
-                                 const uint8* src_u,
-                                 const uint8* src_v,
-                                 uint8* dst_rgba,
-                                 const struct YuvConstants* yuvconstants,
-                                 int width);
-void I422ToARGB4444Row_Any_AVX2(const uint8* src_y,
-                                const uint8* src_u,
-                                const uint8* src_v,
-                                uint8* dst_rgba,
-                                const struct YuvConstants* yuvconstants,
-                                int width);
-void I422ToARGB1555Row_Any_SSSE3(const uint8* src_y,
-                                 const uint8* src_u,
-                                 const uint8* src_v,
-                                 uint8* dst_rgba,
-                                 const struct YuvConstants* yuvconstants,
-                                 int width);
-void I422ToARGB1555Row_Any_AVX2(const uint8* src_y,
-                                const uint8* src_u,
-                                const uint8* src_v,
-                                uint8* dst_rgba,
-                                const struct YuvConstants* yuvconstants,
-                                int width);
-void I422ToRGB565Row_Any_SSSE3(const uint8* src_y,
-                               const uint8* src_u,
-                               const uint8* src_v,
-                               uint8* dst_rgba,
-                               const struct YuvConstants* yuvconstants,
-                               int width);
-void I422ToRGB565Row_Any_AVX2(const uint8* src_y,
-                              const uint8* src_u,
-                              const uint8* src_v,
-                              uint8* dst_rgba,
-                              const struct YuvConstants* yuvconstants,
-                              int width);
-void I422ToRGB24Row_Any_SSSE3(const uint8* src_y,
-                              const uint8* src_u,
-                              const uint8* src_v,
-                              uint8* dst_argb,
-                              const struct YuvConstants* yuvconstants,
-                              int width);
-void I422ToRGB24Row_Any_AVX2(const uint8* src_y,
-                             const uint8* src_u,
-                             const uint8* src_v,
-                             uint8* dst_argb,
-                             const struct YuvConstants* yuvconstants,
-                             int width);
-
-void I400ToARGBRow_C(const uint8* src_y, uint8* dst_argb, int width);
-void I400ToARGBRow_SSE2(const uint8* src_y, uint8* dst_argb, int width);
-void I400ToARGBRow_AVX2(const uint8* src_y, uint8* dst_argb, int width);
-void I400ToARGBRow_NEON(const uint8* src_y, uint8* dst_argb, int width);
-void I400ToARGBRow_Any_SSE2(const uint8* src_y, uint8* dst_argb, int width);
-void I400ToARGBRow_Any_AVX2(const uint8* src_y, uint8* dst_argb, int width);
-void I400ToARGBRow_Any_NEON(const uint8* src_y, uint8* dst_argb, int width);
-
-// ARGB preattenuated alpha blend.
-void ARGBBlendRow_SSSE3(const uint8* src_argb,
-                        const uint8* src_argb1,
-                        uint8* dst_argb,
-                        int width);
-void ARGBBlendRow_NEON(const uint8* src_argb,
-                       const uint8* src_argb1,
-                       uint8* dst_argb,
-                       int width);
-void ARGBBlendRow_C(const uint8* src_argb,
-                    const uint8* src_argb1,
-                    uint8* dst_argb,
-                    int width);
-
-// Unattenuated planar alpha blend.
-void BlendPlaneRow_SSSE3(const uint8* src0,
-                         const uint8* src1,
-                         const uint8* alpha,
-                         uint8* dst,
-                         int width);
-void BlendPlaneRow_Any_SSSE3(const uint8* src0,
-                             const uint8* src1,
-                             const uint8* alpha,
-                             uint8* dst,
-                             int width);
-void BlendPlaneRow_AVX2(const uint8* src0,
-                        const uint8* src1,
-                        const uint8* alpha,
-                        uint8* dst,
-                        int width);
-void BlendPlaneRow_Any_AVX2(const uint8* src0,
-                            const uint8* src1,
-                            const uint8* alpha,
-                            uint8* dst,
-                            int width);
-void BlendPlaneRow_C(const uint8* src0,
-                     const uint8* src1,
-                     const uint8* alpha,
-                     uint8* dst,
-                     int width);
-
-// ARGB multiply images. Same API as Blend, but these require
-// pointer and width alignment for SSE2.
-void ARGBMultiplyRow_C(const uint8* src_argb,
-                       const uint8* src_argb1,
-                       uint8* dst_argb,
-                       int width);
-void ARGBMultiplyRow_SSE2(const uint8* src_argb,
-                          const uint8* src_argb1,
-                          uint8* dst_argb,
-                          int width);
-void ARGBMultiplyRow_Any_SSE2(const uint8* src_argb,
-                              const uint8* src_argb1,
-                              uint8* dst_argb,
-                              int width);
-void ARGBMultiplyRow_AVX2(const uint8* src_argb,
-                          const uint8* src_argb1,
-                          uint8* dst_argb,
-                          int width);
-void ARGBMultiplyRow_Any_AVX2(const uint8* src_argb,
-                              const uint8* src_argb1,
-                              uint8* dst_argb,
-                              int width);
-void ARGBMultiplyRow_NEON(const uint8* src_argb,
-                          const uint8* src_argb1,
-                          uint8* dst_argb,
-                          int width);
-void ARGBMultiplyRow_Any_NEON(const uint8* src_argb,
-                              const uint8* src_argb1,
-                              uint8* dst_argb,
-                              int width);
-void ARGBMultiplyRow_MSA(const uint8* src_argb,
-                         const uint8* src_argb1,
-                         uint8* dst_argb,
-                         int width);
-void ARGBMultiplyRow_Any_MSA(const uint8* src_argb,
-                             const uint8* src_argb1,
-                             uint8* dst_argb,
-                             int width);
-
-// ARGB add images.
-void ARGBAddRow_C(const uint8* src_argb,
-                  const uint8* src_argb1,
-                  uint8* dst_argb,
-                  int width);
-void ARGBAddRow_SSE2(const uint8* src_argb,
-                     const uint8* src_argb1,
-                     uint8* dst_argb,
-                     int width);
-void ARGBAddRow_Any_SSE2(const uint8* src_argb,
-                         const uint8* src_argb1,
-                         uint8* dst_argb,
-                         int width);
-void ARGBAddRow_AVX2(const uint8* src_argb,
-                     const uint8* src_argb1,
-                     uint8* dst_argb,
-                     int width);
-void ARGBAddRow_Any_AVX2(const uint8* src_argb,
-                         const uint8* src_argb1,
-                         uint8* dst_argb,
-                         int width);
-void ARGBAddRow_NEON(const uint8* src_argb,
-                     const uint8* src_argb1,
-                     uint8* dst_argb,
-                     int width);
-void ARGBAddRow_Any_NEON(const uint8* src_argb,
-                         const uint8* src_argb1,
-                         uint8* dst_argb,
-                         int width);
-void ARGBAddRow_MSA(const uint8* src_argb,
-                    const uint8* src_argb1,
-                    uint8* dst_argb,
-                    int width);
-void ARGBAddRow_Any_MSA(const uint8* src_argb,
-                        const uint8* src_argb1,
-                        uint8* dst_argb,
-                        int width);
-
-// ARGB subtract images. Same API as Blend, but these require
-// pointer and width alignment for SSE2.
-void ARGBSubtractRow_C(const uint8* src_argb,
-                       const uint8* src_argb1,
-                       uint8* dst_argb,
-                       int width);
-void ARGBSubtractRow_SSE2(const uint8* src_argb,
-                          const uint8* src_argb1,
-                          uint8* dst_argb,
-                          int width);
-void ARGBSubtractRow_Any_SSE2(const uint8* src_argb,
-                              const uint8* src_argb1,
-                              uint8* dst_argb,
-                              int width);
-void ARGBSubtractRow_AVX2(const uint8* src_argb,
-                          const uint8* src_argb1,
-                          uint8* dst_argb,
-                          int width);
-void ARGBSubtractRow_Any_AVX2(const uint8* src_argb,
-                              const uint8* src_argb1,
-                              uint8* dst_argb,
-                              int width);
-void ARGBSubtractRow_NEON(const uint8* src_argb,
-                          const uint8* src_argb1,
-                          uint8* dst_argb,
-                          int width);
-void ARGBSubtractRow_Any_NEON(const uint8* src_argb,
-                              const uint8* src_argb1,
-                              uint8* dst_argb,
-                              int width);
-void ARGBSubtractRow_MSA(const uint8* src_argb,
-                         const uint8* src_argb1,
-                         uint8* dst_argb,
-                         int width);
-void ARGBSubtractRow_Any_MSA(const uint8* src_argb,
-                             const uint8* src_argb1,
-                             uint8* dst_argb,
-                             int width);
-
-void ARGBToRGB24Row_Any_SSSE3(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToRAWRow_Any_SSSE3(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToRGB565Row_Any_SSE2(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToARGB1555Row_Any_SSE2(const uint8* src_argb,
-                                uint8* dst_rgb,
-                                int width);
-void ARGBToARGB4444Row_Any_SSE2(const uint8* src_argb,
-                                uint8* dst_rgb,
-                                int width);
-
-void ARGBToRGB565DitherRow_Any_SSE2(const uint8* src_argb,
-                                    uint8* dst_rgb,
-                                    const uint32 dither4,
-                                    int width);
-void ARGBToRGB565DitherRow_Any_AVX2(const uint8* src_argb,
-                                    uint8* dst_rgb,
-                                    const uint32 dither4,
-                                    int width);
-
-void ARGBToRGB565Row_Any_AVX2(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToARGB1555Row_Any_AVX2(const uint8* src_argb,
-                                uint8* dst_rgb,
-                                int width);
-void ARGBToARGB4444Row_Any_AVX2(const uint8* src_argb,
-                                uint8* dst_rgb,
-                                int width);
-
-void ARGBToRGB24Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToRAWRow_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToRGB565Row_Any_NEON(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToARGB1555Row_Any_NEON(const uint8* src_argb,
-                                uint8* dst_rgb,
-                                int width);
-void ARGBToARGB4444Row_Any_NEON(const uint8* src_argb,
-                                uint8* dst_rgb,
-                                int width);
-void ARGBToRGB565DitherRow_Any_NEON(const uint8* src_argb,
-                                    uint8* dst_rgb,
-                                    const uint32 dither4,
-                                    int width);
-void ARGBToRGB24Row_Any_MSA(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToRAWRow_Any_MSA(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToRGB565Row_Any_MSA(const uint8* src_argb, uint8* dst_rgb, int width);
-void ARGBToARGB1555Row_Any_MSA(const uint8* src_argb,
-                               uint8* dst_rgb,
-                               int width);
-void ARGBToARGB4444Row_Any_MSA(const uint8* src_argb,
-                               uint8* dst_rgb,
-                               int width);
-
-void I444ToARGBRow_Any_NEON(const uint8* src_y,
-                            const uint8* src_u,
-                            const uint8* src_v,
-                            uint8* dst_argb,
-                            const struct YuvConstants* yuvconstants,
-                            int width);
-void I422ToARGBRow_Any_NEON(const uint8* src_y,
-                            const uint8* src_u,
-                            const uint8* src_v,
-                            uint8* dst_argb,
-                            const struct YuvConstants* yuvconstants,
-                            int width);
-void I422AlphaToARGBRow_Any_NEON(const uint8* src_y,
-                                 const uint8* src_u,
-                                 const uint8* src_v,
-                                 const uint8* src_a,
-                                 uint8* dst_argb,
-                                 const struct YuvConstants* yuvconstants,
-                                 int width);
-void I422ToRGBARow_Any_NEON(const uint8* src_y,
-                            const uint8* src_u,
-                            const uint8* src_v,
-                            uint8* dst_argb,
-                            const struct YuvConstants* yuvconstants,
-                            int width);
-void I422ToRGB24Row_Any_NEON(const uint8* src_y,
-                             const uint8* src_u,
-                             const uint8* src_v,
-                             uint8* dst_argb,
-                             const struct YuvConstants* yuvconstants,
-                             int width);
-void I422ToARGB4444Row_Any_NEON(const uint8* src_y,
-                                const uint8* src_u,
-                                const uint8* src_v,
-                                uint8* dst_argb,
-                                const struct YuvConstants* yuvconstants,
-                                int width);
-void I422ToARGB1555Row_Any_NEON(const uint8* src_y,
-                                const uint8* src_u,
-                                const uint8* src_v,
-                                uint8* dst_argb,
-                                const struct YuvConstants* yuvconstants,
-                                int width);
-void I422ToRGB565Row_Any_NEON(const uint8* src_y,
-                              const uint8* src_u,
-                              const uint8* src_v,
-                              uint8* dst_argb,
-                              const struct YuvConstants* yuvconstants,
-                              int width);
-void NV12ToARGBRow_Any_NEON(const uint8* src_y,
-                            const uint8* src_uv,
-                            uint8* dst_argb,
-                            const struct YuvConstants* yuvconstants,
-                            int width);
-void NV21ToARGBRow_Any_NEON(const uint8* src_y,
-                            const uint8* src_vu,
-                            uint8* dst_argb,
-                            const struct YuvConstants* yuvconstants,
-                            int width);
-void NV12ToRGB565Row_Any_NEON(const uint8* src_y,
-                              const uint8* src_uv,
-                              uint8* dst_argb,
-                              const struct YuvConstants* yuvconstants,
-                              int width);
-void YUY2ToARGBRow_Any_NEON(const uint8* src_yuy2,
-                            uint8* dst_argb,
-                            const struct YuvConstants* yuvconstants,
-                            int width);
-void UYVYToARGBRow_Any_NEON(const uint8* src_uyvy,
-                            uint8* dst_argb,
-                            const struct YuvConstants* yuvconstants,
-                            int width);
-void I422ToARGBRow_DSPR2(const uint8* src_y,
-                         const uint8* src_u,
-                         const uint8* src_v,
-                         uint8* dst_argb,
-                         const struct YuvConstants* yuvconstants,
-                         int width);
-void I422ToARGBRow_DSPR2(const uint8* src_y,
-                         const uint8* src_u,
-                         const uint8* src_v,
-                         uint8* dst_argb,
-                         const struct YuvConstants* yuvconstants,
-                         int width);
-void I422ToARGBRow_Any_MSA(const uint8* src_y,
-                           const uint8* src_u,
-                           const uint8* src_v,
-                           uint8* dst_argb,
-                           const struct YuvConstants* yuvconstants,
-                           int width);
-void I422ToRGBARow_Any_MSA(const uint8* src_y,
-                           const uint8* src_u,
-                           const uint8* src_v,
-                           uint8* dst_argb,
-                           const struct YuvConstants* yuvconstants,
-                           int width);
-void I422AlphaToARGBRow_Any_MSA(const uint8* src_y,
-                                const uint8* src_u,
-                                const uint8* src_v,
-                                const uint8* src_a,
-                                uint8* dst_argb,
-                                const struct YuvConstants* yuvconstants,
-                                int width);
-void I422ToRGB24Row_Any_MSA(const uint8* src_y,
-                            const uint8* src_u,
-                            const uint8* src_v,
-                            uint8* dst_rgb24,
-                            const struct YuvConstants* yuvconstants,
-                            int width);
-void I422ToRGB565Row_Any_MSA(const uint8* src_y,
-                             const uint8* src_u,
-                             const uint8* src_v,
-                             uint8* dst_rgb565,
-                             const struct YuvConstants* yuvconstants,
-                             int width);
-void I422ToARGB4444Row_Any_MSA(const uint8* src_y,
-                               const uint8* src_u,
-                               const uint8* src_v,
-                               uint8* dst_argb4444,
-                               const struct YuvConstants* yuvconstants,
-                               int width);
-void I422ToARGB1555Row_Any_MSA(const uint8* src_y,
-                               const uint8* src_u,
-                               const uint8* src_v,
-                               uint8* dst_argb1555,
-                               const struct YuvConstants* yuvconstants,
-                               int width);
-
-void YUY2ToYRow_AVX2(const uint8* src_yuy2, uint8* dst_y, int width);
-void YUY2ToUVRow_AVX2(const uint8* src_yuy2,
-                      int stride_yuy2,
-                      uint8* dst_u,
-                      uint8* dst_v,
-                      int width);
-void YUY2ToUV422Row_AVX2(const uint8* src_yuy2,
-                         uint8* dst_u,
-                         uint8* dst_v,
-                         int width);
-void YUY2ToYRow_SSE2(const uint8* src_yuy2, uint8* dst_y, int width);
-void YUY2ToUVRow_SSE2(const uint8* src_yuy2,
-                      int stride_yuy2,
-                      uint8* dst_u,
-                      uint8* dst_v,
-                      int width);
-void YUY2ToUV422Row_SSE2(const uint8* src_yuy2,
-                         uint8* dst_u,
-                         uint8* dst_v,
-                         int width);
-void YUY2ToYRow_NEON(const uint8* src_yuy2, uint8* dst_y, int width);
-void YUY2ToUVRow_NEON(const uint8* src_yuy2,
-                      int stride_yuy2,
-                      uint8* dst_u,
-                      uint8* dst_v,
-                      int width);
-void YUY2ToUV422Row_NEON(const uint8* src_yuy2,
-                         uint8* dst_u,
-                         uint8* dst_v,
-                         int width);
-void YUY2ToYRow_MSA(const uint8* src_yuy2, uint8* dst_y, int width);
-void YUY2ToUVRow_MSA(const uint8* src_yuy2,
-                     int stride_yuy2,
-                     uint8* dst_u,
-                     uint8* dst_v,
-                     int width);
-void YUY2ToUV422Row_MSA(const uint8* src_yuy2,
-                        uint8* dst_u,
-                        uint8* dst_v,
-                        int width);
-void YUY2ToYRow_C(const uint8* src_yuy2, uint8* dst_y, int width);
-void YUY2ToUVRow_C(const uint8* src_yuy2,
-                   int stride_yuy2,
-                   uint8* dst_u,
-                   uint8* dst_v,
-                   int width);
-void YUY2ToUV422Row_C(const uint8* src_yuy2,
-                      uint8* dst_u,
-                      uint8* dst_v,
-                      int width);
-void YUY2ToYRow_Any_AVX2(const uint8* src_yuy2, uint8* dst_y, int width);
-void YUY2ToUVRow_Any_AVX2(const uint8* src_yuy2,
-                          int stride_yuy2,
-                          uint8* dst_u,
-                          uint8* dst_v,
-                          int width);
-void YUY2ToUV422Row_Any_AVX2(const uint8* src_yuy2,
-                             uint8* dst_u,
-                             uint8* dst_v,
-                             int width);
-void YUY2ToYRow_Any_SSE2(const uint8* src_yuy2, uint8* dst_y, int width);
-void YUY2ToUVRow_Any_SSE2(const uint8* src_yuy2,
-                          int stride_yuy2,
-                          uint8* dst_u,
-                          uint8* dst_v,
-                          int width);
-void YUY2ToUV422Row_Any_SSE2(const uint8* src_yuy2,
-                             uint8* dst_u,
-                             uint8* dst_v,
-                             int width);
-void YUY2ToYRow_Any_NEON(const uint8* src_yuy2, uint8* dst_y, int width);
-void YUY2ToUVRow_Any_NEON(const uint8* src_yuy2,
-                          int stride_yuy2,
-                          uint8* dst_u,
-                          uint8* dst_v,
-                          int width);
-void YUY2ToUV422Row_Any_NEON(const uint8* src_yuy2,
-                             uint8* dst_u,
-                             uint8* dst_v,
-                             int width);
-void YUY2ToYRow_Any_MSA(const uint8* src_yuy2, uint8* dst_y, int width);
-void YUY2ToUVRow_Any_MSA(const uint8* src_yuy2,
-                         int stride_yuy2,
-                         uint8* dst_u,
-                         uint8* dst_v,
-                         int width);
-void YUY2ToUV422Row_Any_MSA(const uint8* src_yuy2,
-                            uint8* dst_u,
-                            uint8* dst_v,
-                            int width);
-void UYVYToYRow_AVX2(const uint8* src_uyvy, uint8* dst_y, int width);
-void UYVYToUVRow_AVX2(const uint8* src_uyvy,
-                      int stride_uyvy,
-                      uint8* dst_u,
-                      uint8* dst_v,
-                      int width);
-void UYVYToUV422Row_AVX2(const uint8* src_uyvy,
-                         uint8* dst_u,
-                         uint8* dst_v,
-                         int width);
-void UYVYToYRow_SSE2(const uint8* src_uyvy, uint8* dst_y, int width);
-void UYVYToUVRow_SSE2(const uint8* src_uyvy,
-                      int stride_uyvy,
-                      uint8* dst_u,
-                      uint8* dst_v,
-                      int width);
-void UYVYToUV422Row_SSE2(const uint8* src_uyvy,
-                         uint8* dst_u,
-                         uint8* dst_v,
-                         int width);
-void UYVYToYRow_AVX2(const uint8* src_uyvy, uint8* dst_y, int width);
-void UYVYToUVRow_AVX2(const uint8* src_uyvy,
-                      int stride_uyvy,
-                      uint8* dst_u,
-                      uint8* dst_v,
-                      int width);
-void UYVYToUV422Row_AVX2(const uint8* src_uyvy,
-                         uint8* dst_u,
-                         uint8* dst_v,
-                         int width);
-void UYVYToYRow_NEON(const uint8* src_uyvy, uint8* dst_y, int width);
-void UYVYToUVRow_NEON(const uint8* src_uyvy,
-                      int stride_uyvy,
-                      uint8* dst_u,
-                      uint8* dst_v,
-                      int width);
-void UYVYToUV422Row_NEON(const uint8* src_uyvy,
-                         uint8* dst_u,
-                         uint8* dst_v,
-                         int width);
-void UYVYToYRow_MSA(const uint8* src_uyvy, uint8* dst_y, int width);
-void UYVYToUVRow_MSA(const uint8* src_uyvy,
-                     int stride_uyvy,
-                     uint8* dst_u,
-                     uint8* dst_v,
-                     int width);
-void UYVYToUV422Row_MSA(const uint8* src_uyvy,
-                        uint8* dst_u,
-                        uint8* dst_v,
-                        int width);
-
-void UYVYToYRow_C(const uint8* src_uyvy, uint8* dst_y, int width);
-void UYVYToUVRow_C(const uint8* src_uyvy,
-                   int stride_uyvy,
-                   uint8* dst_u,
-                   uint8* dst_v,
-                   int width);
-void UYVYToUV422Row_C(const uint8* src_uyvy,
-                      uint8* dst_u,
-                      uint8* dst_v,
-                      int width);
-void UYVYToYRow_Any_AVX2(const uint8* src_uyvy, uint8* dst_y, int width);
-void UYVYToUVRow_Any_AVX2(const uint8* src_uyvy,
-                          int stride_uyvy,
-                          uint8* dst_u,
-                          uint8* dst_v,
-                          int width);
-void UYVYToUV422Row_Any_AVX2(const uint8* src_uyvy,
-                             uint8* dst_u,
-                             uint8* dst_v,
-                             int width);
-void UYVYToYRow_Any_SSE2(const uint8* src_uyvy, uint8* dst_y, int width);
-void UYVYToUVRow_Any_SSE2(const uint8* src_uyvy,
-                          int stride_uyvy,
-                          uint8* dst_u,
-                          uint8* dst_v,
-                          int width);
-void UYVYToUV422Row_Any_SSE2(const uint8* src_uyvy,
-                             uint8* dst_u,
-                             uint8* dst_v,
-                             int width);
-void UYVYToYRow_Any_NEON(const uint8* src_uyvy, uint8* dst_y, int width);
-void UYVYToUVRow_Any_NEON(const uint8* src_uyvy,
-                          int stride_uyvy,
-                          uint8* dst_u,
-                          uint8* dst_v,
-                          int width);
-void UYVYToUV422Row_Any_NEON(const uint8* src_uyvy,
-                             uint8* dst_u,
-                             uint8* dst_v,
-                             int width);
-void UYVYToYRow_Any_MSA(const uint8* src_uyvy, uint8* dst_y, int width);
-void UYVYToUVRow_Any_MSA(const uint8* src_uyvy,
-                         int stride_uyvy,
-                         uint8* dst_u,
-                         uint8* dst_v,
-                         int width);
-void UYVYToUV422Row_Any_MSA(const uint8* src_uyvy,
-                            uint8* dst_u,
-                            uint8* dst_v,
-                            int width);
-
-void I422ToYUY2Row_C(const uint8* src_y,
-                     const uint8* src_u,
-                     const uint8* src_v,
-                     uint8* dst_yuy2,
-                     int width);
-void I422ToUYVYRow_C(const uint8* src_y,
-                     const uint8* src_u,
-                     const uint8* src_v,
-                     uint8* dst_uyvy,
-                     int width);
-void I422ToYUY2Row_SSE2(const uint8* src_y,
-                        const uint8* src_u,
-                        const uint8* src_v,
-                        uint8* dst_yuy2,
-                        int width);
-void I422ToUYVYRow_SSE2(const uint8* src_y,
-                        const uint8* src_u,
-                        const uint8* src_v,
-                        uint8* dst_uyvy,
-                        int width);
-void I422ToYUY2Row_Any_SSE2(const uint8* src_y,
-                            const uint8* src_u,
-                            const uint8* src_v,
-                            uint8* dst_yuy2,
-                            int width);
-void I422ToUYVYRow_Any_SSE2(const uint8* src_y,
-                            const uint8* src_u,
-                            const uint8* src_v,
-                            uint8* dst_uyvy,
-                            int width);
-void I422ToYUY2Row_NEON(const uint8* src_y,
-                        const uint8* src_u,
-                        const uint8* src_v,
-                        uint8* dst_yuy2,
-                        int width);
-void I422ToUYVYRow_NEON(const uint8* src_y,
-                        const uint8* src_u,
-                        const uint8* src_v,
-                        uint8* dst_uyvy,
-                        int width);
-void I422ToYUY2Row_Any_NEON(const uint8* src_y,
-                            const uint8* src_u,
-                            const uint8* src_v,
-                            uint8* dst_yuy2,
-                            int width);
-void I422ToUYVYRow_Any_NEON(const uint8* src_y,
-                            const uint8* src_u,
-                            const uint8* src_v,
-                            uint8* dst_uyvy,
-                            int width);
-void I422ToYUY2Row_MSA(const uint8* src_y,
-                       const uint8* src_u,
-                       const uint8* src_v,
-                       uint8* dst_yuy2,
-                       int width);
-void I422ToUYVYRow_MSA(const uint8* src_y,
-                       const uint8* src_u,
-                       const uint8* src_v,
-                       uint8* dst_uyvy,
-                       int width);
-void I422ToYUY2Row_Any_MSA(const uint8* src_y,
-                           const uint8* src_u,
-                           const uint8* src_v,
-                           uint8* dst_yuy2,
-                           int width);
-void I422ToUYVYRow_Any_MSA(const uint8* src_y,
-                           const uint8* src_u,
-                           const uint8* src_v,
-                           uint8* dst_uyvy,
-                           int width);
-
-// Effects related row functions.
-void ARGBAttenuateRow_C(const uint8* src_argb, uint8* dst_argb, int width);
-void ARGBAttenuateRow_SSSE3(const uint8* src_argb, uint8* dst_argb, int width);
-void ARGBAttenuateRow_AVX2(const uint8* src_argb, uint8* dst_argb, int width);
-void ARGBAttenuateRow_NEON(const uint8* src_argb, uint8* dst_argb, int width);
-void ARGBAttenuateRow_Any_SSE2(const uint8* src_argb,
-                               uint8* dst_argb,
-                               int width);
-void ARGBAttenuateRow_Any_SSSE3(const uint8* src_argb,
-                                uint8* dst_argb,
-                                int width);
-void ARGBAttenuateRow_Any_AVX2(const uint8* src_argb,
-                               uint8* dst_argb,
-                               int width);
-void ARGBAttenuateRow_Any_NEON(const uint8* src_argb,
-                               uint8* dst_argb,
-                               int width);
-
-// Inverse table for unattenuate, shared by C and SSE2.
-extern const uint32 fixed_invtbl8[256];
-void ARGBUnattenuateRow_C(const uint8* src_argb, uint8* dst_argb, int width);
-void ARGBUnattenuateRow_SSE2(const uint8* src_argb, uint8* dst_argb, int width);
-void ARGBUnattenuateRow_AVX2(const uint8* src_argb, uint8* dst_argb, int width);
-void ARGBUnattenuateRow_Any_SSE2(const uint8* src_argb,
-                                 uint8* dst_argb,
-                                 int width);
-void ARGBUnattenuateRow_Any_AVX2(const uint8* src_argb,
-                                 uint8* dst_argb,
-                                 int width);
-
-void ARGBGrayRow_C(const uint8* src_argb, uint8* dst_argb, int width);
-void ARGBGrayRow_SSSE3(const uint8* src_argb, uint8* dst_argb, int width);
-void ARGBGrayRow_NEON(const uint8* src_argb, uint8* dst_argb, int width);
-
-void ARGBSepiaRow_C(uint8* dst_argb, int width);
-void ARGBSepiaRow_SSSE3(uint8* dst_argb, int width);
-void ARGBSepiaRow_NEON(uint8* dst_argb, int width);
-
-void ARGBColorMatrixRow_C(const uint8* src_argb,
-                          uint8* dst_argb,
-                          const int8* matrix_argb,
-                          int width);
-void ARGBColorMatrixRow_SSSE3(const uint8* src_argb,
-                              uint8* dst_argb,
-                              const int8* matrix_argb,
-                              int width);
-void ARGBColorMatrixRow_NEON(const uint8* src_argb,
-                             uint8* dst_argb,
-                             const int8* matrix_argb,
-                             int width);
-
-void ARGBColorTableRow_C(uint8* dst_argb, const uint8* table_argb, int width);
-void ARGBColorTableRow_X86(uint8* dst_argb, const uint8* table_argb, int width);
-
-void RGBColorTableRow_C(uint8* dst_argb, const uint8* table_argb, int width);
-void RGBColorTableRow_X86(uint8* dst_argb, const uint8* table_argb, int width);
-
-void ARGBQuantizeRow_C(uint8* dst_argb,
-                       int scale,
-                       int interval_size,
-                       int interval_offset,
-                       int width);
-void ARGBQuantizeRow_SSE2(uint8* dst_argb,
-                          int scale,
-                          int interval_size,
-                          int interval_offset,
-                          int width);
-void ARGBQuantizeRow_NEON(uint8* dst_argb,
-                          int scale,
-                          int interval_size,
-                          int interval_offset,
-                          int width);
-
-void ARGBShadeRow_C(const uint8* src_argb,
-                    uint8* dst_argb,
-                    int width,
-                    uint32 value);
-void ARGBShadeRow_SSE2(const uint8* src_argb,
-                       uint8* dst_argb,
-                       int width,
-                       uint32 value);
-void ARGBShadeRow_NEON(const uint8* src_argb,
-                       uint8* dst_argb,
-                       int width,
-                       uint32 value);
-
-// Used for blur.
-void CumulativeSumToAverageRow_SSE2(const int32* topleft,
-                                    const int32* botleft,
-                                    int width,
-                                    int area,
-                                    uint8* dst,
-                                    int count);
-void ComputeCumulativeSumRow_SSE2(const uint8* row,
-                                  int32* cumsum,
-                                  const int32* previous_cumsum,
-                                  int width);
-
-void CumulativeSumToAverageRow_C(const int32* topleft,
-                                 const int32* botleft,
-                                 int width,
-                                 int area,
-                                 uint8* dst,
-                                 int count);
-void ComputeCumulativeSumRow_C(const uint8* row,
-                               int32* cumsum,
-                               const int32* previous_cumsum,
-                               int width);
-
-LIBYUV_API
-void ARGBAffineRow_C(const uint8* src_argb,
-                     int src_argb_stride,
-                     uint8* dst_argb,
-                     const float* uv_dudv,
-                     int width);
-LIBYUV_API
-void ARGBAffineRow_SSE2(const uint8* src_argb,
-                        int src_argb_stride,
-                        uint8* dst_argb,
-                        const float* uv_dudv,
-                        int width);
-
-// Used for I420Scale, ARGBScale, and ARGBInterpolate.
-void InterpolateRow_C(uint8* dst_ptr,
-                      const uint8* src_ptr,
-                      ptrdiff_t src_stride_ptr,
-                      int width,
-                      int source_y_fraction);
-void InterpolateRow_SSSE3(uint8* dst_ptr,
-                          const uint8* src_ptr,
-                          ptrdiff_t src_stride_ptr,
-                          int width,
-                          int source_y_fraction);
-void InterpolateRow_AVX2(uint8* dst_ptr,
-                         const uint8* src_ptr,
-                         ptrdiff_t src_stride_ptr,
-                         int width,
-                         int source_y_fraction);
-void InterpolateRow_NEON(uint8* dst_ptr,
-                         const uint8* src_ptr,
-                         ptrdiff_t src_stride_ptr,
-                         int width,
-                         int source_y_fraction);
-void InterpolateRow_DSPR2(uint8* dst_ptr,
-                          const uint8* src_ptr,
-                          ptrdiff_t src_stride_ptr,
-                          int width,
-                          int source_y_fraction);
-void InterpolateRow_Any_NEON(uint8* dst_ptr,
-                             const uint8* src_ptr,
-                             ptrdiff_t src_stride_ptr,
-                             int width,
-                             int source_y_fraction);
-void InterpolateRow_Any_SSSE3(uint8* dst_ptr,
-                              const uint8* src_ptr,
-                              ptrdiff_t src_stride_ptr,
-                              int width,
-                              int source_y_fraction);
-void InterpolateRow_Any_AVX2(uint8* dst_ptr,
-                             const uint8* src_ptr,
-                             ptrdiff_t src_stride_ptr,
-                             int width,
-                             int source_y_fraction);
-void InterpolateRow_Any_DSPR2(uint8* dst_ptr,
-                              const uint8* src_ptr,
-                              ptrdiff_t src_stride_ptr,
-                              int width,
-                              int source_y_fraction);
-
-void InterpolateRow_16_C(uint16* dst_ptr,
-                         const uint16* src_ptr,
-                         ptrdiff_t src_stride_ptr,
-                         int width,
-                         int source_y_fraction);
-
-// Sobel images.
-void SobelXRow_C(const uint8* src_y0,
-                 const uint8* src_y1,
-                 const uint8* src_y2,
-                 uint8* dst_sobelx,
-                 int width);
-void SobelXRow_SSE2(const uint8* src_y0,
-                    const uint8* src_y1,
-                    const uint8* src_y2,
-                    uint8* dst_sobelx,
-                    int width);
-void SobelXRow_NEON(const uint8* src_y0,
-                    const uint8* src_y1,
-                    const uint8* src_y2,
-                    uint8* dst_sobelx,
-                    int width);
-void SobelYRow_C(const uint8* src_y0,
-                 const uint8* src_y1,
-                 uint8* dst_sobely,
-                 int width);
-void SobelYRow_SSE2(const uint8* src_y0,
-                    const uint8* src_y1,
-                    uint8* dst_sobely,
-                    int width);
-void SobelYRow_NEON(const uint8* src_y0,
-                    const uint8* src_y1,
-                    uint8* dst_sobely,
-                    int width);
-void SobelRow_C(const uint8* src_sobelx,
-                const uint8* src_sobely,
-                uint8* dst_argb,
-                int width);
-void SobelRow_SSE2(const uint8* src_sobelx,
-                   const uint8* src_sobely,
-                   uint8* dst_argb,
-                   int width);
-void SobelRow_NEON(const uint8* src_sobelx,
-                   const uint8* src_sobely,
-                   uint8* dst_argb,
-                   int width);
-void SobelToPlaneRow_C(const uint8* src_sobelx,
-                       const uint8* src_sobely,
-                       uint8* dst_y,
-                       int width);
-void SobelToPlaneRow_SSE2(const uint8* src_sobelx,
-                          const uint8* src_sobely,
-                          uint8* dst_y,
-                          int width);
-void SobelToPlaneRow_NEON(const uint8* src_sobelx,
-                          const uint8* src_sobely,
-                          uint8* dst_y,
-                          int width);
-void SobelXYRow_C(const uint8* src_sobelx,
-                  const uint8* src_sobely,
-                  uint8* dst_argb,
-                  int width);
-void SobelXYRow_SSE2(const uint8* src_sobelx,
-                     const uint8* src_sobely,
-                     uint8* dst_argb,
-                     int width);
-void SobelXYRow_NEON(const uint8* src_sobelx,
-                     const uint8* src_sobely,
-                     uint8* dst_argb,
-                     int width);
-void SobelRow_Any_SSE2(const uint8* src_sobelx,
-                       const uint8* src_sobely,
-                       uint8* dst_argb,
-                       int width);
-void SobelRow_Any_NEON(const uint8* src_sobelx,
-                       const uint8* src_sobely,
-                       uint8* dst_argb,
-                       int width);
-void SobelToPlaneRow_Any_SSE2(const uint8* src_sobelx,
-                              const uint8* src_sobely,
-                              uint8* dst_y,
-                              int width);
-void SobelToPlaneRow_Any_NEON(const uint8* src_sobelx,
-                              const uint8* src_sobely,
-                              uint8* dst_y,
-                              int width);
-void SobelXYRow_Any_SSE2(const uint8* src_sobelx,
-                         const uint8* src_sobely,
-                         uint8* dst_argb,
-                         int width);
-void SobelXYRow_Any_NEON(const uint8* src_sobelx,
-                         const uint8* src_sobely,
-                         uint8* dst_argb,
-                         int width);
-
-void ARGBPolynomialRow_C(const uint8* src_argb,
-                         uint8* dst_argb,
-                         const float* poly,
-                         int width);
-void ARGBPolynomialRow_SSE2(const uint8* src_argb,
-                            uint8* dst_argb,
-                            const float* poly,
-                            int width);
-void ARGBPolynomialRow_AVX2(const uint8* src_argb,
-                            uint8* dst_argb,
-                            const float* poly,
-                            int width);
-
-// Scale and convert to half float.
-void HalfFloatRow_C(const uint16* src, uint16* dst, float scale, int width);
-void HalfFloatRow_SSE2(const uint16* src, uint16* dst, float scale, int width);
-void HalfFloatRow_Any_SSE2(const uint16* src,
-                           uint16* dst,
-                           float scale,
-                           int width);
-void HalfFloatRow_AVX2(const uint16* src, uint16* dst, float scale, int width);
-void HalfFloatRow_Any_AVX2(const uint16* src,
-                           uint16* dst,
-                           float scale,
-                           int width);
-void HalfFloatRow_F16C(const uint16* src, uint16* dst, float scale, int width);
-void HalfFloatRow_Any_F16C(const uint16* src,
-                           uint16* dst,
-                           float scale,
-                           int width);
-void HalfFloat1Row_F16C(const uint16* src, uint16* dst, float scale, int width);
-void HalfFloat1Row_Any_F16C(const uint16* src,
-                            uint16* dst,
-                            float scale,
-                            int width);
-void HalfFloatRow_NEON(const uint16* src, uint16* dst, float scale, int width);
-void HalfFloatRow_Any_NEON(const uint16* src,
-                           uint16* dst,
-                           float scale,
-                           int width);
-void HalfFloat1Row_NEON(const uint16* src, uint16* dst, float scale, int width);
-void HalfFloat1Row_Any_NEON(const uint16* src,
-                            uint16* dst,
-                            float scale,
-                            int width);
-
-void ARGBLumaColorTableRow_C(const uint8* src_argb,
-                             uint8* dst_argb,
-                             int width,
-                             const uint8* luma,
-                             uint32 lumacoeff);
-void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb,
-                                 uint8* dst_argb,
-                                 int width,
-                                 const uint8* luma,
-                                 uint32 lumacoeff);
-
-#ifdef __cplusplus
-}  // extern "C"
-}  // namespace libyuv
-#endif
-
-#endif  // INCLUDE_LIBYUV_ROW_H_

+ 0 - 142
ios/IJKMediaFramework.framework/libyuv/include/libyuv/scale.h

@@ -1,142 +0,0 @@
-/*
- *  Copyright 2011 The LibYuv Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS. All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef INCLUDE_LIBYUV_SCALE_H_
-#define INCLUDE_LIBYUV_SCALE_H_
-
-#include "libyuv/basic_types.h"
-
-#ifdef __cplusplus
-namespace libyuv {
-extern "C" {
-#endif
-
-// Supported filtering.
-typedef enum FilterMode {
-  kFilterNone = 0,      // Point sample; Fastest.
-  kFilterLinear = 1,    // Filter horizontally only.
-  kFilterBilinear = 2,  // Faster than box, but lower quality scaling down.
-  kFilterBox = 3        // Highest quality.
-} FilterModeEnum;
-
-// Scale a YUV plane.
-LIBYUV_API
-void ScalePlane(const uint8* src,
-                int src_stride,
-                int src_width,
-                int src_height,
-                uint8* dst,
-                int dst_stride,
-                int dst_width,
-                int dst_height,
-                enum FilterMode filtering);
-
-LIBYUV_API
-void ScalePlane_16(const uint16* src,
-                   int src_stride,
-                   int src_width,
-                   int src_height,
-                   uint16* dst,
-                   int dst_stride,
-                   int dst_width,
-                   int dst_height,
-                   enum FilterMode filtering);
-
-// Scales a YUV 4:2:0 image from the src width and height to the
-// dst width and height.
-// If filtering is kFilterNone, a simple nearest-neighbor algorithm is
-// used. This produces basic (blocky) quality at the fastest speed.
-// If filtering is kFilterBilinear, interpolation is used to produce a better
-// quality image, at the expense of speed.
-// If filtering is kFilterBox, averaging is used to produce ever better
-// quality image, at further expense of speed.
-// Returns 0 if successful.
-
-LIBYUV_API
-int I420Scale(const uint8* src_y,
-              int src_stride_y,
-              const uint8* src_u,
-              int src_stride_u,
-              const uint8* src_v,
-              int src_stride_v,
-              int src_width,
-              int src_height,
-              uint8* dst_y,
-              int dst_stride_y,
-              uint8* dst_u,
-              int dst_stride_u,
-              uint8* dst_v,
-              int dst_stride_v,
-              int dst_width,
-              int dst_height,
-              enum FilterMode filtering);
-
-LIBYUV_API
-int I420Scale_16(const uint16* src_y,
-                 int src_stride_y,
-                 const uint16* src_u,
-                 int src_stride_u,
-                 const uint16* src_v,
-                 int src_stride_v,
-                 int src_width,
-                 int src_height,
-                 uint16* dst_y,
-                 int dst_stride_y,
-                 uint16* dst_u,
-                 int dst_stride_u,
-                 uint16* dst_v,
-                 int dst_stride_v,
-                 int dst_width,
-                 int dst_height,
-                 enum FilterMode filtering);
-
-#ifdef __cplusplus
-// Legacy API.  Deprecated.
-LIBYUV_API
-int Scale(const uint8* src_y,
-          const uint8* src_u,
-          const uint8* src_v,
-          int src_stride_y,
-          int src_stride_u,
-          int src_stride_v,
-          int src_width,
-          int src_height,
-          uint8* dst_y,
-          uint8* dst_u,
-          uint8* dst_v,
-          int dst_stride_y,
-          int dst_stride_u,
-          int dst_stride_v,
-          int dst_width,
-          int dst_height,
-          LIBYUV_BOOL interpolate);
-
-// Legacy API.  Deprecated.
-LIBYUV_API
-int ScaleOffset(const uint8* src_i420,
-                int src_width,
-                int src_height,
-                uint8* dst_i420,
-                int dst_width,
-                int dst_height,
-                int dst_yoffset,
-                LIBYUV_BOOL interpolate);
-
-// For testing, allow disabling of specialized scalers.
-LIBYUV_API
-void SetUseReferenceImpl(LIBYUV_BOOL use);
-#endif  // __cplusplus
-
-#ifdef __cplusplus
-}  // extern "C"
-}  // namespace libyuv
-#endif
-
-#endif  // INCLUDE_LIBYUV_SCALE_H_

+ 0 - 76
ios/IJKMediaFramework.framework/libyuv/include/libyuv/scale_argb.h

@@ -1,76 +0,0 @@
-/*
- *  Copyright 2012 The LibYuv Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS. All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef INCLUDE_LIBYUV_SCALE_ARGB_H_
-#define INCLUDE_LIBYUV_SCALE_ARGB_H_
-
-#include "libyuv/basic_types.h"
-#include "libyuv/scale.h"  // For FilterMode
-
-#ifdef __cplusplus
-namespace libyuv {
-extern "C" {
-#endif
-
-LIBYUV_API
-int ARGBScale(const uint8* src_argb,
-              int src_stride_argb,
-              int src_width,
-              int src_height,
-              uint8* dst_argb,
-              int dst_stride_argb,
-              int dst_width,
-              int dst_height,
-              enum FilterMode filtering);
-
-// Clipped scale takes destination rectangle coordinates for clip values.
-LIBYUV_API
-int ARGBScaleClip(const uint8* src_argb,
-                  int src_stride_argb,
-                  int src_width,
-                  int src_height,
-                  uint8* dst_argb,
-                  int dst_stride_argb,
-                  int dst_width,
-                  int dst_height,
-                  int clip_x,
-                  int clip_y,
-                  int clip_width,
-                  int clip_height,
-                  enum FilterMode filtering);
-
-// Scale with YUV conversion to ARGB and clipping.
-LIBYUV_API
-int YUVToARGBScaleClip(const uint8* src_y,
-                       int src_stride_y,
-                       const uint8* src_u,
-                       int src_stride_u,
-                       const uint8* src_v,
-                       int src_stride_v,
-                       uint32 src_fourcc,
-                       int src_width,
-                       int src_height,
-                       uint8* dst_argb,
-                       int dst_stride_argb,
-                       uint32 dst_fourcc,
-                       int dst_width,
-                       int dst_height,
-                       int clip_x,
-                       int clip_y,
-                       int clip_width,
-                       int clip_height,
-                       enum FilterMode filtering);
-
-#ifdef __cplusplus
-}  // extern "C"
-}  // namespace libyuv
-#endif
-
-#endif  // INCLUDE_LIBYUV_SCALE_ARGB_H_

+ 0 - 851
ios/IJKMediaFramework.framework/libyuv/include/libyuv/scale_row.h

@@ -1,851 +0,0 @@
-/*
- *  Copyright 2013 The LibYuv Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS. All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef INCLUDE_LIBYUV_SCALE_ROW_H_
-#define INCLUDE_LIBYUV_SCALE_ROW_H_
-
-#include "libyuv/basic_types.h"
-#include "libyuv/scale.h"
-
-#ifdef __cplusplus
-namespace libyuv {
-extern "C" {
-#endif
-
-#if defined(__pnacl__) || defined(__CLR_VER) || \
-    (defined(__i386__) && !defined(__SSE2__))
-#define LIBYUV_DISABLE_X86
-#endif
-// MemorySanitizer does not support assembly code yet. http://crbug.com/344505
-#if defined(__has_feature)
-#if __has_feature(memory_sanitizer)
-#define LIBYUV_DISABLE_X86
-#endif
-#endif
-
-// GCC >= 4.7.0 required for AVX2.
-#if defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__))
-#if (__GNUC__ > 4) || (__GNUC__ == 4 && (__GNUC_MINOR__ >= 7))
-#define GCC_HAS_AVX2 1
-#endif  // GNUC >= 4.7
-#endif  // __GNUC__
-
-// clang >= 3.4.0 required for AVX2.
-#if defined(__clang__) && (defined(__x86_64__) || defined(__i386__))
-#if (__clang_major__ > 3) || (__clang_major__ == 3 && (__clang_minor__ >= 4))
-#define CLANG_HAS_AVX2 1
-#endif  // clang >= 3.4
-#endif  // __clang__
-
-// Visual C 2012 required for AVX2.
-#if defined(_M_IX86) && !defined(__clang__) && defined(_MSC_VER) && \
-    _MSC_VER >= 1700
-#define VISUALC_HAS_AVX2 1
-#endif  // VisualStudio >= 2012
-
-// The following are available on all x86 platforms:
-#if !defined(LIBYUV_DISABLE_X86) && \
-    (defined(_M_IX86) || defined(__x86_64__) || defined(__i386__))
-#define HAS_FIXEDDIV1_X86
-#define HAS_FIXEDDIV_X86
-#define HAS_SCALEARGBCOLS_SSE2
-#define HAS_SCALEARGBCOLSUP2_SSE2
-#define HAS_SCALEARGBFILTERCOLS_SSSE3
-#define HAS_SCALEARGBROWDOWN2_SSE2
-#define HAS_SCALEARGBROWDOWNEVEN_SSE2
-#define HAS_SCALECOLSUP2_SSE2
-#define HAS_SCALEFILTERCOLS_SSSE3
-#define HAS_SCALEROWDOWN2_SSSE3
-#define HAS_SCALEROWDOWN34_SSSE3
-#define HAS_SCALEROWDOWN38_SSSE3
-#define HAS_SCALEROWDOWN4_SSSE3
-#define HAS_SCALEADDROW_SSE2
-#endif
-
-// The following are available on all x86 platforms, but
-// require VS2012, clang 3.4 or gcc 4.7.
-// The code supports NaCL but requires a new compiler and validator.
-#if !defined(LIBYUV_DISABLE_X86) &&                          \
-    (defined(VISUALC_HAS_AVX2) || defined(CLANG_HAS_AVX2) || \
-     defined(GCC_HAS_AVX2))
-#define HAS_SCALEADDROW_AVX2
-#define HAS_SCALEROWDOWN2_AVX2
-#define HAS_SCALEROWDOWN4_AVX2
-#endif
-
-// The following are available on Neon platforms:
-#if !defined(LIBYUV_DISABLE_NEON) && !defined(__native_client__) && \
-    (defined(__ARM_NEON__) || defined(LIBYUV_NEON) || defined(__aarch64__))
-#define HAS_SCALEARGBCOLS_NEON
-#define HAS_SCALEARGBROWDOWN2_NEON
-#define HAS_SCALEARGBROWDOWNEVEN_NEON
-#define HAS_SCALEFILTERCOLS_NEON
-#define HAS_SCALEROWDOWN2_NEON
-#define HAS_SCALEROWDOWN34_NEON
-#define HAS_SCALEROWDOWN38_NEON
-#define HAS_SCALEROWDOWN4_NEON
-#define HAS_SCALEARGBFILTERCOLS_NEON
-#endif
-
-// The following are available on Mips platforms:
-#if !defined(LIBYUV_DISABLE_MIPS) && !defined(__native_client__) && \
-    defined(__mips__) && defined(__mips_dsp) && (__mips_dsp_rev >= 2)
-#define HAS_SCALEROWDOWN2_DSPR2
-#define HAS_SCALEROWDOWN4_DSPR2
-#define HAS_SCALEROWDOWN34_DSPR2
-#define HAS_SCALEROWDOWN38_DSPR2
-#endif
-
-#if !defined(LIBYUV_DISABLE_MSA) && defined(__mips_msa)
-#define HAS_SCALEARGBROWDOWN2_MSA
-#define HAS_SCALEARGBROWDOWNEVEN_MSA
-#endif
-
-// Scale ARGB vertically with bilinear interpolation.
-void ScalePlaneVertical(int src_height,
-                        int dst_width,
-                        int dst_height,
-                        int src_stride,
-                        int dst_stride,
-                        const uint8* src_argb,
-                        uint8* dst_argb,
-                        int x,
-                        int y,
-                        int dy,
-                        int bpp,
-                        enum FilterMode filtering);
-
-void ScalePlaneVertical_16(int src_height,
-                           int dst_width,
-                           int dst_height,
-                           int src_stride,
-                           int dst_stride,
-                           const uint16* src_argb,
-                           uint16* dst_argb,
-                           int x,
-                           int y,
-                           int dy,
-                           int wpp,
-                           enum FilterMode filtering);
-
-// Simplify the filtering based on scale factors.
-enum FilterMode ScaleFilterReduce(int src_width,
-                                  int src_height,
-                                  int dst_width,
-                                  int dst_height,
-                                  enum FilterMode filtering);
-
-// Divide num by div and return as 16.16 fixed point result.
-int FixedDiv_C(int num, int div);
-int FixedDiv_X86(int num, int div);
-// Divide num - 1 by div - 1 and return as 16.16 fixed point result.
-int FixedDiv1_C(int num, int div);
-int FixedDiv1_X86(int num, int div);
-#ifdef HAS_FIXEDDIV_X86
-#define FixedDiv FixedDiv_X86
-#define FixedDiv1 FixedDiv1_X86
-#else
-#define FixedDiv FixedDiv_C
-#define FixedDiv1 FixedDiv1_C
-#endif
-
-// Compute slope values for stepping.
-void ScaleSlope(int src_width,
-                int src_height,
-                int dst_width,
-                int dst_height,
-                enum FilterMode filtering,
-                int* x,
-                int* y,
-                int* dx,
-                int* dy);
-
-void ScaleRowDown2_C(const uint8* src_ptr,
-                     ptrdiff_t src_stride,
-                     uint8* dst,
-                     int dst_width);
-void ScaleRowDown2_16_C(const uint16* src_ptr,
-                        ptrdiff_t src_stride,
-                        uint16* dst,
-                        int dst_width);
-void ScaleRowDown2Linear_C(const uint8* src_ptr,
-                           ptrdiff_t src_stride,
-                           uint8* dst,
-                           int dst_width);
-void ScaleRowDown2Linear_16_C(const uint16* src_ptr,
-                              ptrdiff_t src_stride,
-                              uint16* dst,
-                              int dst_width);
-void ScaleRowDown2Box_C(const uint8* src_ptr,
-                        ptrdiff_t src_stride,
-                        uint8* dst,
-                        int dst_width);
-void ScaleRowDown2Box_Odd_C(const uint8* src_ptr,
-                            ptrdiff_t src_stride,
-                            uint8* dst,
-                            int dst_width);
-void ScaleRowDown2Box_16_C(const uint16* src_ptr,
-                           ptrdiff_t src_stride,
-                           uint16* dst,
-                           int dst_width);
-void ScaleRowDown4_C(const uint8* src_ptr,
-                     ptrdiff_t src_stride,
-                     uint8* dst,
-                     int dst_width);
-void ScaleRowDown4_16_C(const uint16* src_ptr,
-                        ptrdiff_t src_stride,
-                        uint16* dst,
-                        int dst_width);
-void ScaleRowDown4Box_C(const uint8* src_ptr,
-                        ptrdiff_t src_stride,
-                        uint8* dst,
-                        int dst_width);
-void ScaleRowDown4Box_16_C(const uint16* src_ptr,
-                           ptrdiff_t src_stride,
-                           uint16* dst,
-                           int dst_width);
-void ScaleRowDown34_C(const uint8* src_ptr,
-                      ptrdiff_t src_stride,
-                      uint8* dst,
-                      int dst_width);
-void ScaleRowDown34_16_C(const uint16* src_ptr,
-                         ptrdiff_t src_stride,
-                         uint16* dst,
-                         int dst_width);
-void ScaleRowDown34_0_Box_C(const uint8* src_ptr,
-                            ptrdiff_t src_stride,
-                            uint8* d,
-                            int dst_width);
-void ScaleRowDown34_0_Box_16_C(const uint16* src_ptr,
-                               ptrdiff_t src_stride,
-                               uint16* d,
-                               int dst_width);
-void ScaleRowDown34_1_Box_C(const uint8* src_ptr,
-                            ptrdiff_t src_stride,
-                            uint8* d,
-                            int dst_width);
-void ScaleRowDown34_1_Box_16_C(const uint16* src_ptr,
-                               ptrdiff_t src_stride,
-                               uint16* d,
-                               int dst_width);
-void ScaleCols_C(uint8* dst_ptr,
-                 const uint8* src_ptr,
-                 int dst_width,
-                 int x,
-                 int dx);
-void ScaleCols_16_C(uint16* dst_ptr,
-                    const uint16* src_ptr,
-                    int dst_width,
-                    int x,
-                    int dx);
-void ScaleColsUp2_C(uint8* dst_ptr,
-                    const uint8* src_ptr,
-                    int dst_width,
-                    int,
-                    int);
-void ScaleColsUp2_16_C(uint16* dst_ptr,
-                       const uint16* src_ptr,
-                       int dst_width,
-                       int,
-                       int);
-void ScaleFilterCols_C(uint8* dst_ptr,
-                       const uint8* src_ptr,
-                       int dst_width,
-                       int x,
-                       int dx);
-void ScaleFilterCols_16_C(uint16* dst_ptr,
-                          const uint16* src_ptr,
-                          int dst_width,
-                          int x,
-                          int dx);
-void ScaleFilterCols64_C(uint8* dst_ptr,
-                         const uint8* src_ptr,
-                         int dst_width,
-                         int x,
-                         int dx);
-void ScaleFilterCols64_16_C(uint16* dst_ptr,
-                            const uint16* src_ptr,
-                            int dst_width,
-                            int x,
-                            int dx);
-void ScaleRowDown38_C(const uint8* src_ptr,
-                      ptrdiff_t src_stride,
-                      uint8* dst,
-                      int dst_width);
-void ScaleRowDown38_16_C(const uint16* src_ptr,
-                         ptrdiff_t src_stride,
-                         uint16* dst,
-                         int dst_width);
-void ScaleRowDown38_3_Box_C(const uint8* src_ptr,
-                            ptrdiff_t src_stride,
-                            uint8* dst_ptr,
-                            int dst_width);
-void ScaleRowDown38_3_Box_16_C(const uint16* src_ptr,
-                               ptrdiff_t src_stride,
-                               uint16* dst_ptr,
-                               int dst_width);
-void ScaleRowDown38_2_Box_C(const uint8* src_ptr,
-                            ptrdiff_t src_stride,
-                            uint8* dst_ptr,
-                            int dst_width);
-void ScaleRowDown38_2_Box_16_C(const uint16* src_ptr,
-                               ptrdiff_t src_stride,
-                               uint16* dst_ptr,
-                               int dst_width);
-void ScaleAddRow_C(const uint8* src_ptr, uint16* dst_ptr, int src_width);
-void ScaleAddRow_16_C(const uint16* src_ptr, uint32* dst_ptr, int src_width);
-void ScaleARGBRowDown2_C(const uint8* src_argb,
-                         ptrdiff_t src_stride,
-                         uint8* dst_argb,
-                         int dst_width);
-void ScaleARGBRowDown2Linear_C(const uint8* src_argb,
-                               ptrdiff_t src_stride,
-                               uint8* dst_argb,
-                               int dst_width);
-void ScaleARGBRowDown2Box_C(const uint8* src_argb,
-                            ptrdiff_t src_stride,
-                            uint8* dst_argb,
-                            int dst_width);
-void ScaleARGBRowDownEven_C(const uint8* src_argb,
-                            ptrdiff_t src_stride,
-                            int src_stepx,
-                            uint8* dst_argb,
-                            int dst_width);
-void ScaleARGBRowDownEvenBox_C(const uint8* src_argb,
-                               ptrdiff_t src_stride,
-                               int src_stepx,
-                               uint8* dst_argb,
-                               int dst_width);
-void ScaleARGBCols_C(uint8* dst_argb,
-                     const uint8* src_argb,
-                     int dst_width,
-                     int x,
-                     int dx);
-void ScaleARGBCols64_C(uint8* dst_argb,
-                       const uint8* src_argb,
-                       int dst_width,
-                       int x,
-                       int dx);
-void ScaleARGBColsUp2_C(uint8* dst_argb,
-                        const uint8* src_argb,
-                        int dst_width,
-                        int,
-                        int);
-void ScaleARGBFilterCols_C(uint8* dst_argb,
-                           const uint8* src_argb,
-                           int dst_width,
-                           int x,
-                           int dx);
-void ScaleARGBFilterCols64_C(uint8* dst_argb,
-                             const uint8* src_argb,
-                             int dst_width,
-                             int x,
-                             int dx);
-
-// Specialized scalers for x86.
-void ScaleRowDown2_SSSE3(const uint8* src_ptr,
-                         ptrdiff_t src_stride,
-                         uint8* dst_ptr,
-                         int dst_width);
-void ScaleRowDown2Linear_SSSE3(const uint8* src_ptr,
-                               ptrdiff_t src_stride,
-                               uint8* dst_ptr,
-                               int dst_width);
-void ScaleRowDown2Box_SSSE3(const uint8* src_ptr,
-                            ptrdiff_t src_stride,
-                            uint8* dst_ptr,
-                            int dst_width);
-void ScaleRowDown2_AVX2(const uint8* src_ptr,
-                        ptrdiff_t src_stride,
-                        uint8* dst_ptr,
-                        int dst_width);
-void ScaleRowDown2Linear_AVX2(const uint8* src_ptr,
-                              ptrdiff_t src_stride,
-                              uint8* dst_ptr,
-                              int dst_width);
-void ScaleRowDown2Box_AVX2(const uint8* src_ptr,
-                           ptrdiff_t src_stride,
-                           uint8* dst_ptr,
-                           int dst_width);
-void ScaleRowDown4_SSSE3(const uint8* src_ptr,
-                         ptrdiff_t src_stride,
-                         uint8* dst_ptr,
-                         int dst_width);
-void ScaleRowDown4Box_SSSE3(const uint8* src_ptr,
-                            ptrdiff_t src_stride,
-                            uint8* dst_ptr,
-                            int dst_width);
-void ScaleRowDown4_AVX2(const uint8* src_ptr,
-                        ptrdiff_t src_stride,
-                        uint8* dst_ptr,
-                        int dst_width);
-void ScaleRowDown4Box_AVX2(const uint8* src_ptr,
-                           ptrdiff_t src_stride,
-                           uint8* dst_ptr,
-                           int dst_width);
-
-void ScaleRowDown34_SSSE3(const uint8* src_ptr,
-                          ptrdiff_t src_stride,
-                          uint8* dst_ptr,
-                          int dst_width);
-void ScaleRowDown34_1_Box_SSSE3(const uint8* src_ptr,
-                                ptrdiff_t src_stride,
-                                uint8* dst_ptr,
-                                int dst_width);
-void ScaleRowDown34_0_Box_SSSE3(const uint8* src_ptr,
-                                ptrdiff_t src_stride,
-                                uint8* dst_ptr,
-                                int dst_width);
-void ScaleRowDown38_SSSE3(const uint8* src_ptr,
-                          ptrdiff_t src_stride,
-                          uint8* dst_ptr,
-                          int dst_width);
-void ScaleRowDown38_3_Box_SSSE3(const uint8* src_ptr,
-                                ptrdiff_t src_stride,
-                                uint8* dst_ptr,
-                                int dst_width);
-void ScaleRowDown38_2_Box_SSSE3(const uint8* src_ptr,
-                                ptrdiff_t src_stride,
-                                uint8* dst_ptr,
-                                int dst_width);
-void ScaleRowDown2_Any_SSSE3(const uint8* src_ptr,
-                             ptrdiff_t src_stride,
-                             uint8* dst_ptr,
-                             int dst_width);
-void ScaleRowDown2Linear_Any_SSSE3(const uint8* src_ptr,
-                                   ptrdiff_t src_stride,
-                                   uint8* dst_ptr,
-                                   int dst_width);
-void ScaleRowDown2Box_Any_SSSE3(const uint8* src_ptr,
-                                ptrdiff_t src_stride,
-                                uint8* dst_ptr,
-                                int dst_width);
-void ScaleRowDown2Box_Odd_SSSE3(const uint8* src_ptr,
-                                ptrdiff_t src_stride,
-                                uint8* dst_ptr,
-                                int dst_width);
-void ScaleRowDown2_Any_AVX2(const uint8* src_ptr,
-                            ptrdiff_t src_stride,
-                            uint8* dst_ptr,
-                            int dst_width);
-void ScaleRowDown2Linear_Any_AVX2(const uint8* src_ptr,
-                                  ptrdiff_t src_stride,
-                                  uint8* dst_ptr,
-                                  int dst_width);
-void ScaleRowDown2Box_Any_AVX2(const uint8* src_ptr,
-                               ptrdiff_t src_stride,
-                               uint8* dst_ptr,
-                               int dst_width);
-void ScaleRowDown2Box_Odd_AVX2(const uint8* src_ptr,
-                               ptrdiff_t src_stride,
-                               uint8* dst_ptr,
-                               int dst_width);
-void ScaleRowDown4_Any_SSSE3(const uint8* src_ptr,
-                             ptrdiff_t src_stride,
-                             uint8* dst_ptr,
-                             int dst_width);
-void ScaleRowDown4Box_Any_SSSE3(const uint8* src_ptr,
-                                ptrdiff_t src_stride,
-                                uint8* dst_ptr,
-                                int dst_width);
-void ScaleRowDown4_Any_AVX2(const uint8* src_ptr,
-                            ptrdiff_t src_stride,
-                            uint8* dst_ptr,
-                            int dst_width);
-void ScaleRowDown4Box_Any_AVX2(const uint8* src_ptr,
-                               ptrdiff_t src_stride,
-                               uint8* dst_ptr,
-                               int dst_width);
-
-void ScaleRowDown34_Any_SSSE3(const uint8* src_ptr,
-                              ptrdiff_t src_stride,
-                              uint8* dst_ptr,
-                              int dst_width);
-void ScaleRowDown34_1_Box_Any_SSSE3(const uint8* src_ptr,
-                                    ptrdiff_t src_stride,
-                                    uint8* dst_ptr,
-                                    int dst_width);
-void ScaleRowDown34_0_Box_Any_SSSE3(const uint8* src_ptr,
-                                    ptrdiff_t src_stride,
-                                    uint8* dst_ptr,
-                                    int dst_width);
-void ScaleRowDown38_Any_SSSE3(const uint8* src_ptr,
-                              ptrdiff_t src_stride,
-                              uint8* dst_ptr,
-                              int dst_width);
-void ScaleRowDown38_3_Box_Any_SSSE3(const uint8* src_ptr,
-                                    ptrdiff_t src_stride,
-                                    uint8* dst_ptr,
-                                    int dst_width);
-void ScaleRowDown38_2_Box_Any_SSSE3(const uint8* src_ptr,
-                                    ptrdiff_t src_stride,
-                                    uint8* dst_ptr,
-                                    int dst_width);
-
-void ScaleAddRow_SSE2(const uint8* src_ptr, uint16* dst_ptr, int src_width);
-void ScaleAddRow_AVX2(const uint8* src_ptr, uint16* dst_ptr, int src_width);
-void ScaleAddRow_Any_SSE2(const uint8* src_ptr, uint16* dst_ptr, int src_width);
-void ScaleAddRow_Any_AVX2(const uint8* src_ptr, uint16* dst_ptr, int src_width);
-
-void ScaleFilterCols_SSSE3(uint8* dst_ptr,
-                           const uint8* src_ptr,
-                           int dst_width,
-                           int x,
-                           int dx);
-void ScaleColsUp2_SSE2(uint8* dst_ptr,
-                       const uint8* src_ptr,
-                       int dst_width,
-                       int x,
-                       int dx);
-
-// ARGB Column functions
-void ScaleARGBCols_SSE2(uint8* dst_argb,
-                        const uint8* src_argb,
-                        int dst_width,
-                        int x,
-                        int dx);
-void ScaleARGBFilterCols_SSSE3(uint8* dst_argb,
-                               const uint8* src_argb,
-                               int dst_width,
-                               int x,
-                               int dx);
-void ScaleARGBColsUp2_SSE2(uint8* dst_argb,
-                           const uint8* src_argb,
-                           int dst_width,
-                           int x,
-                           int dx);
-void ScaleARGBFilterCols_NEON(uint8* dst_argb,
-                              const uint8* src_argb,
-                              int dst_width,
-                              int x,
-                              int dx);
-void ScaleARGBCols_NEON(uint8* dst_argb,
-                        const uint8* src_argb,
-                        int dst_width,
-                        int x,
-                        int dx);
-void ScaleARGBFilterCols_Any_NEON(uint8* dst_argb,
-                                  const uint8* src_argb,
-                                  int dst_width,
-                                  int x,
-                                  int dx);
-void ScaleARGBCols_Any_NEON(uint8* dst_argb,
-                            const uint8* src_argb,
-                            int dst_width,
-                            int x,
-                            int dx);
-
-// ARGB Row functions
-void ScaleARGBRowDown2_SSE2(const uint8* src_argb,
-                            ptrdiff_t src_stride,
-                            uint8* dst_argb,
-                            int dst_width);
-void ScaleARGBRowDown2Linear_SSE2(const uint8* src_argb,
-                                  ptrdiff_t src_stride,
-                                  uint8* dst_argb,
-                                  int dst_width);
-void ScaleARGBRowDown2Box_SSE2(const uint8* src_argb,
-                               ptrdiff_t src_stride,
-                               uint8* dst_argb,
-                               int dst_width);
-void ScaleARGBRowDown2_NEON(const uint8* src_ptr,
-                            ptrdiff_t src_stride,
-                            uint8* dst,
-                            int dst_width);
-void ScaleARGBRowDown2Linear_NEON(const uint8* src_argb,
-                                  ptrdiff_t src_stride,
-                                  uint8* dst_argb,
-                                  int dst_width);
-void ScaleARGBRowDown2Box_NEON(const uint8* src_ptr,
-                               ptrdiff_t src_stride,
-                               uint8* dst,
-                               int dst_width);
-void ScaleARGBRowDown2_MSA(const uint8_t* src_argb,
-                           ptrdiff_t src_stride,
-                           uint8_t* dst_argb,
-                           int dst_width);
-void ScaleARGBRowDown2Linear_MSA(const uint8_t* src_argb,
-                                 ptrdiff_t src_stride,
-                                 uint8_t* dst_argb,
-                                 int dst_width);
-void ScaleARGBRowDown2Box_MSA(const uint8_t* src_argb,
-                              ptrdiff_t src_stride,
-                              uint8_t* dst_argb,
-                              int dst_width);
-void ScaleARGBRowDown2_Any_SSE2(const uint8* src_argb,
-                                ptrdiff_t src_stride,
-                                uint8* dst_argb,
-                                int dst_width);
-void ScaleARGBRowDown2Linear_Any_SSE2(const uint8* src_argb,
-                                      ptrdiff_t src_stride,
-                                      uint8* dst_argb,
-                                      int dst_width);
-void ScaleARGBRowDown2Box_Any_SSE2(const uint8* src_argb,
-                                   ptrdiff_t src_stride,
-                                   uint8* dst_argb,
-                                   int dst_width);
-void ScaleARGBRowDown2_Any_NEON(const uint8* src_ptr,
-                                ptrdiff_t src_stride,
-                                uint8* dst,
-                                int dst_width);
-void ScaleARGBRowDown2Linear_Any_NEON(const uint8* src_argb,
-                                      ptrdiff_t src_stride,
-                                      uint8* dst_argb,
-                                      int dst_width);
-void ScaleARGBRowDown2Box_Any_NEON(const uint8* src_ptr,
-                                   ptrdiff_t src_stride,
-                                   uint8* dst,
-                                   int dst_width);
-void ScaleARGBRowDown2_Any_MSA(const uint8_t* src_argb,
-                               ptrdiff_t src_stride,
-                               uint8_t* dst_argb,
-                               int dst_width);
-void ScaleARGBRowDown2Linear_Any_MSA(const uint8_t* src_argb,
-                                     ptrdiff_t src_stride,
-                                     uint8_t* dst_argb,
-                                     int dst_width);
-void ScaleARGBRowDown2Box_Any_MSA(const uint8_t* src_argb,
-                                  ptrdiff_t src_stride,
-                                  uint8_t* dst_argb,
-                                  int dst_width);
-
-void ScaleARGBRowDownEven_SSE2(const uint8* src_argb,
-                               ptrdiff_t src_stride,
-                               int src_stepx,
-                               uint8* dst_argb,
-                               int dst_width);
-void ScaleARGBRowDownEvenBox_SSE2(const uint8* src_argb,
-                                  ptrdiff_t src_stride,
-                                  int src_stepx,
-                                  uint8* dst_argb,
-                                  int dst_width);
-void ScaleARGBRowDownEven_NEON(const uint8* src_argb,
-                               ptrdiff_t src_stride,
-                               int src_stepx,
-                               uint8* dst_argb,
-                               int dst_width);
-void ScaleARGBRowDownEvenBox_NEON(const uint8* src_argb,
-                                  ptrdiff_t src_stride,
-                                  int src_stepx,
-                                  uint8* dst_argb,
-                                  int dst_width);
-void ScaleARGBRowDownEven_MSA(const uint8_t* src_argb,
-                              ptrdiff_t src_stride,
-                              int32_t src_stepx,
-                              uint8_t* dst_argb,
-                              int dst_width);
-void ScaleARGBRowDownEvenBox_MSA(const uint8* src_argb,
-                                 ptrdiff_t src_stride,
-                                 int src_stepx,
-                                 uint8* dst_argb,
-                                 int dst_width);
-void ScaleARGBRowDownEven_Any_SSE2(const uint8* src_argb,
-                                   ptrdiff_t src_stride,
-                                   int src_stepx,
-                                   uint8* dst_argb,
-                                   int dst_width);
-void ScaleARGBRowDownEvenBox_Any_SSE2(const uint8* src_argb,
-                                      ptrdiff_t src_stride,
-                                      int src_stepx,
-                                      uint8* dst_argb,
-                                      int dst_width);
-void ScaleARGBRowDownEven_Any_NEON(const uint8* src_argb,
-                                   ptrdiff_t src_stride,
-                                   int src_stepx,
-                                   uint8* dst_argb,
-                                   int dst_width);
-void ScaleARGBRowDownEvenBox_Any_NEON(const uint8* src_argb,
-                                      ptrdiff_t src_stride,
-                                      int src_stepx,
-                                      uint8* dst_argb,
-                                      int dst_width);
-void ScaleARGBRowDownEven_Any_MSA(const uint8_t* src_argb,
-                                  ptrdiff_t src_stride,
-                                  int32_t src_stepx,
-                                  uint8_t* dst_argb,
-                                  int dst_width);
-void ScaleARGBRowDownEvenBox_Any_MSA(const uint8* src_argb,
-                                     ptrdiff_t src_stride,
-                                     int src_stepx,
-                                     uint8* dst_argb,
-                                     int dst_width);
-
-// ScaleRowDown2Box also used by planar functions
-// NEON downscalers with interpolation.
-
-// Note - not static due to reuse in convert for 444 to 420.
-void ScaleRowDown2_NEON(const uint8* src_ptr,
-                        ptrdiff_t src_stride,
-                        uint8* dst,
-                        int dst_width);
-void ScaleRowDown2Linear_NEON(const uint8* src_ptr,
-                              ptrdiff_t src_stride,
-                              uint8* dst,
-                              int dst_width);
-void ScaleRowDown2Box_NEON(const uint8* src_ptr,
-                           ptrdiff_t src_stride,
-                           uint8* dst,
-                           int dst_width);
-
-void ScaleRowDown4_NEON(const uint8* src_ptr,
-                        ptrdiff_t src_stride,
-                        uint8* dst_ptr,
-                        int dst_width);
-void ScaleRowDown4Box_NEON(const uint8* src_ptr,
-                           ptrdiff_t src_stride,
-                           uint8* dst_ptr,
-                           int dst_width);
-
-// Down scale from 4 to 3 pixels. Use the neon multilane read/write
-//  to load up the every 4th pixel into a 4 different registers.
-// Point samples 32 pixels to 24 pixels.
-void ScaleRowDown34_NEON(const uint8* src_ptr,
-                         ptrdiff_t src_stride,
-                         uint8* dst_ptr,
-                         int dst_width);
-void ScaleRowDown34_0_Box_NEON(const uint8* src_ptr,
-                               ptrdiff_t src_stride,
-                               uint8* dst_ptr,
-                               int dst_width);
-void ScaleRowDown34_1_Box_NEON(const uint8* src_ptr,
-                               ptrdiff_t src_stride,
-                               uint8* dst_ptr,
-                               int dst_width);
-
-// 32 -> 12
-void ScaleRowDown38_NEON(const uint8* src_ptr,
-                         ptrdiff_t src_stride,
-                         uint8* dst_ptr,
-                         int dst_width);
-// 32x3 -> 12x1
-void ScaleRowDown38_3_Box_NEON(const uint8* src_ptr,
-                               ptrdiff_t src_stride,
-                               uint8* dst_ptr,
-                               int dst_width);
-// 32x2 -> 12x1
-void ScaleRowDown38_2_Box_NEON(const uint8* src_ptr,
-                               ptrdiff_t src_stride,
-                               uint8* dst_ptr,
-                               int dst_width);
-
-void ScaleRowDown2_Any_NEON(const uint8* src_ptr,
-                            ptrdiff_t src_stride,
-                            uint8* dst,
-                            int dst_width);
-void ScaleRowDown2Linear_Any_NEON(const uint8* src_ptr,
-                                  ptrdiff_t src_stride,
-                                  uint8* dst,
-                                  int dst_width);
-void ScaleRowDown2Box_Any_NEON(const uint8* src_ptr,
-                               ptrdiff_t src_stride,
-                               uint8* dst,
-                               int dst_width);
-void ScaleRowDown2Box_Odd_NEON(const uint8* src_ptr,
-                               ptrdiff_t src_stride,
-                               uint8* dst,
-                               int dst_width);
-void ScaleRowDown4_Any_NEON(const uint8* src_ptr,
-                            ptrdiff_t src_stride,
-                            uint8* dst_ptr,
-                            int dst_width);
-void ScaleRowDown4Box_Any_NEON(const uint8* src_ptr,
-                               ptrdiff_t src_stride,
-                               uint8* dst_ptr,
-                               int dst_width);
-void ScaleRowDown34_Any_NEON(const uint8* src_ptr,
-                             ptrdiff_t src_stride,
-                             uint8* dst_ptr,
-                             int dst_width);
-void ScaleRowDown34_0_Box_Any_NEON(const uint8* src_ptr,
-                                   ptrdiff_t src_stride,
-                                   uint8* dst_ptr,
-                                   int dst_width);
-void ScaleRowDown34_1_Box_Any_NEON(const uint8* src_ptr,
-                                   ptrdiff_t src_stride,
-                                   uint8* dst_ptr,
-                                   int dst_width);
-// 32 -> 12
-void ScaleRowDown38_Any_NEON(const uint8* src_ptr,
-                             ptrdiff_t src_stride,
-                             uint8* dst_ptr,
-                             int dst_width);
-// 32x3 -> 12x1
-void ScaleRowDown38_3_Box_Any_NEON(const uint8* src_ptr,
-                                   ptrdiff_t src_stride,
-                                   uint8* dst_ptr,
-                                   int dst_width);
-// 32x2 -> 12x1
-void ScaleRowDown38_2_Box_Any_NEON(const uint8* src_ptr,
-                                   ptrdiff_t src_stride,
-                                   uint8* dst_ptr,
-                                   int dst_width);
-
-void ScaleAddRow_NEON(const uint8* src_ptr, uint16* dst_ptr, int src_width);
-void ScaleAddRow_Any_NEON(const uint8* src_ptr, uint16* dst_ptr, int src_width);
-
-void ScaleFilterCols_NEON(uint8* dst_ptr,
-                          const uint8* src_ptr,
-                          int dst_width,
-                          int x,
-                          int dx);
-
-void ScaleFilterCols_Any_NEON(uint8* dst_ptr,
-                              const uint8* src_ptr,
-                              int dst_width,
-                              int x,
-                              int dx);
-
-void ScaleRowDown2_DSPR2(const uint8* src_ptr,
-                         ptrdiff_t src_stride,
-                         uint8* dst,
-                         int dst_width);
-void ScaleRowDown2Box_DSPR2(const uint8* src_ptr,
-                            ptrdiff_t src_stride,
-                            uint8* dst,
-                            int dst_width);
-void ScaleRowDown4_DSPR2(const uint8* src_ptr,
-                         ptrdiff_t src_stride,
-                         uint8* dst,
-                         int dst_width);
-void ScaleRowDown4Box_DSPR2(const uint8* src_ptr,
-                            ptrdiff_t src_stride,
-                            uint8* dst,
-                            int dst_width);
-void ScaleRowDown34_DSPR2(const uint8* src_ptr,
-                          ptrdiff_t src_stride,
-                          uint8* dst,
-                          int dst_width);
-void ScaleRowDown34_0_Box_DSPR2(const uint8* src_ptr,
-                                ptrdiff_t src_stride,
-                                uint8* d,
-                                int dst_width);
-void ScaleRowDown34_1_Box_DSPR2(const uint8* src_ptr,
-                                ptrdiff_t src_stride,
-                                uint8* d,
-                                int dst_width);
-void ScaleRowDown38_DSPR2(const uint8* src_ptr,
-                          ptrdiff_t src_stride,
-                          uint8* dst,
-                          int dst_width);
-void ScaleRowDown38_2_Box_DSPR2(const uint8* src_ptr,
-                                ptrdiff_t src_stride,
-                                uint8* dst_ptr,
-                                int dst_width);
-void ScaleRowDown38_3_Box_DSPR2(const uint8* src_ptr,
-                                ptrdiff_t src_stride,
-                                uint8* dst_ptr,
-                                int dst_width);
-
-#ifdef __cplusplus
-}  // extern "C"
-}  // namespace libyuv
-#endif
-
-#endif  // INCLUDE_LIBYUV_SCALE_ROW_H_

+ 0 - 16
ios/IJKMediaFramework.framework/libyuv/include/libyuv/version.h

@@ -1,16 +0,0 @@
-/*
- *  Copyright 2012 The LibYuv Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS. All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef INCLUDE_LIBYUV_VERSION_H_
-#define INCLUDE_LIBYUV_VERSION_H_
-
-#define LIBYUV_VERSION 1636
-
-#endif  // INCLUDE_LIBYUV_VERSION_H_

+ 0 - 184
ios/IJKMediaFramework.framework/libyuv/include/libyuv/video_common.h

@@ -1,184 +0,0 @@
-/*
- *  Copyright 2011 The LibYuv Project Authors. All rights reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS. All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-// Common definitions for video, including fourcc and VideoFormat.
-
-#ifndef INCLUDE_LIBYUV_VIDEO_COMMON_H_
-#define INCLUDE_LIBYUV_VIDEO_COMMON_H_
-
-#include "libyuv/basic_types.h"
-
-#ifdef __cplusplus
-namespace libyuv {
-extern "C" {
-#endif
-
-//////////////////////////////////////////////////////////////////////////////
-// Definition of FourCC codes
-//////////////////////////////////////////////////////////////////////////////
-
-// Convert four characters to a FourCC code.
-// Needs to be a macro otherwise the OS X compiler complains when the kFormat*
-// constants are used in a switch.
-#ifdef __cplusplus
-#define FOURCC(a, b, c, d)                                    \
-  ((static_cast<uint32>(a)) | (static_cast<uint32>(b) << 8) | \
-   (static_cast<uint32>(c) << 16) | (static_cast<uint32>(d) << 24))
-#else
-#define FOURCC(a, b, c, d)                                 \
-  (((uint32)(a)) | ((uint32)(b) << 8) |       /* NOLINT */ \
-   ((uint32)(c) << 16) | ((uint32)(d) << 24)) /* NOLINT */
-#endif
-
-// Some pages discussing FourCC codes:
-//   http://www.fourcc.org/yuv.php
-//   http://v4l2spec.bytesex.org/spec/book1.htm
-//   http://developer.apple.com/quicktime/icefloe/dispatch020.html
-//   http://msdn.microsoft.com/library/windows/desktop/dd206750.aspx#nv12
-//   http://people.xiph.org/~xiphmont/containers/nut/nut4cc.txt
-
-// FourCC codes grouped according to implementation efficiency.
-// Primary formats should convert in 1 efficient step.
-// Secondary formats are converted in 2 steps.
-// Auxilliary formats call primary converters.
-enum FourCC {
-  // 8 Primary YUV formats: 5 planar, 2 biplanar, 2 packed.
-  FOURCC_I420 = FOURCC('I', '4', '2', '0'),
-  FOURCC_I422 = FOURCC('I', '4', '2', '2'),
-  FOURCC_I444 = FOURCC('I', '4', '4', '4'),
-  FOURCC_I411 = FOURCC('I', '4', '1', '1'),  // deprecated.
-  FOURCC_I400 = FOURCC('I', '4', '0', '0'),
-  FOURCC_NV21 = FOURCC('N', 'V', '2', '1'),
-  FOURCC_NV12 = FOURCC('N', 'V', '1', '2'),
-  FOURCC_YUY2 = FOURCC('Y', 'U', 'Y', '2'),
-  FOURCC_UYVY = FOURCC('U', 'Y', 'V', 'Y'),
-
-  // 1 Secondary YUV format: row biplanar.
-  FOURCC_M420 = FOURCC('M', '4', '2', '0'),
-  FOURCC_Q420 = FOURCC('Q', '4', '2', '0'),  // deprecated.
-
-  // 9 Primary RGB formats: 4 32 bpp, 2 24 bpp, 3 16 bpp.
-  FOURCC_ARGB = FOURCC('A', 'R', 'G', 'B'),
-  FOURCC_BGRA = FOURCC('B', 'G', 'R', 'A'),
-  FOURCC_ABGR = FOURCC('A', 'B', 'G', 'R'),
-  FOURCC_24BG = FOURCC('2', '4', 'B', 'G'),
-  FOURCC_RAW = FOURCC('r', 'a', 'w', ' '),
-  FOURCC_RGBA = FOURCC('R', 'G', 'B', 'A'),
-  FOURCC_RGBP = FOURCC('R', 'G', 'B', 'P'),  // rgb565 LE.
-  FOURCC_RGBO = FOURCC('R', 'G', 'B', 'O'),  // argb1555 LE.
-  FOURCC_R444 = FOURCC('R', '4', '4', '4'),  // argb4444 LE.
-
-  // 4 Secondary RGB formats: 4 Bayer Patterns. deprecated.
-  FOURCC_RGGB = FOURCC('R', 'G', 'G', 'B'),
-  FOURCC_BGGR = FOURCC('B', 'G', 'G', 'R'),
-  FOURCC_GRBG = FOURCC('G', 'R', 'B', 'G'),
-  FOURCC_GBRG = FOURCC('G', 'B', 'R', 'G'),
-
-  // 1 Primary Compressed YUV format.
-  FOURCC_MJPG = FOURCC('M', 'J', 'P', 'G'),
-
-  // 5 Auxiliary YUV variations: 3 with U and V planes are swapped, 1 Alias.
-  FOURCC_YV12 = FOURCC('Y', 'V', '1', '2'),
-  FOURCC_YV16 = FOURCC('Y', 'V', '1', '6'),
-  FOURCC_YV24 = FOURCC('Y', 'V', '2', '4'),
-  FOURCC_YU12 = FOURCC('Y', 'U', '1', '2'),  // Linux version of I420.
-  FOURCC_J420 = FOURCC('J', '4', '2', '0'),
-  FOURCC_J400 = FOURCC('J', '4', '0', '0'),  // unofficial fourcc
-  FOURCC_H420 = FOURCC('H', '4', '2', '0'),  // unofficial fourcc
-
-  // 14 Auxiliary aliases.  CanonicalFourCC() maps these to canonical fourcc.
-  FOURCC_IYUV = FOURCC('I', 'Y', 'U', 'V'),  // Alias for I420.
-  FOURCC_YU16 = FOURCC('Y', 'U', '1', '6'),  // Alias for I422.
-  FOURCC_YU24 = FOURCC('Y', 'U', '2', '4'),  // Alias for I444.
-  FOURCC_YUYV = FOURCC('Y', 'U', 'Y', 'V'),  // Alias for YUY2.
-  FOURCC_YUVS = FOURCC('y', 'u', 'v', 's'),  // Alias for YUY2 on Mac.
-  FOURCC_HDYC = FOURCC('H', 'D', 'Y', 'C'),  // Alias for UYVY.
-  FOURCC_2VUY = FOURCC('2', 'v', 'u', 'y'),  // Alias for UYVY on Mac.
-  FOURCC_JPEG = FOURCC('J', 'P', 'E', 'G'),  // Alias for MJPG.
-  FOURCC_DMB1 = FOURCC('d', 'm', 'b', '1'),  // Alias for MJPG on Mac.
-  FOURCC_BA81 = FOURCC('B', 'A', '8', '1'),  // Alias for BGGR.
-  FOURCC_RGB3 = FOURCC('R', 'G', 'B', '3'),  // Alias for RAW.
-  FOURCC_BGR3 = FOURCC('B', 'G', 'R', '3'),  // Alias for 24BG.
-  FOURCC_CM32 = FOURCC(0, 0, 0, 32),  // Alias for BGRA kCMPixelFormat_32ARGB
-  FOURCC_CM24 = FOURCC(0, 0, 0, 24),  // Alias for RAW kCMPixelFormat_24RGB
-  FOURCC_L555 = FOURCC('L', '5', '5', '5'),  // Alias for RGBO.
-  FOURCC_L565 = FOURCC('L', '5', '6', '5'),  // Alias for RGBP.
-  FOURCC_5551 = FOURCC('5', '5', '5', '1'),  // Alias for RGBO.
-
-  // 1 Auxiliary compressed YUV format set aside for capturer.
-  FOURCC_H264 = FOURCC('H', '2', '6', '4'),
-
-  // Match any fourcc.
-  FOURCC_ANY = -1,
-};
-
-enum FourCCBpp {
-  // Canonical fourcc codes used in our code.
-  FOURCC_BPP_I420 = 12,
-  FOURCC_BPP_I422 = 16,
-  FOURCC_BPP_I444 = 24,
-  FOURCC_BPP_I411 = 12,
-  FOURCC_BPP_I400 = 8,
-  FOURCC_BPP_NV21 = 12,
-  FOURCC_BPP_NV12 = 12,
-  FOURCC_BPP_YUY2 = 16,
-  FOURCC_BPP_UYVY = 16,
-  FOURCC_BPP_M420 = 12,
-  FOURCC_BPP_Q420 = 12,
-  FOURCC_BPP_ARGB = 32,
-  FOURCC_BPP_BGRA = 32,
-  FOURCC_BPP_ABGR = 32,
-  FOURCC_BPP_RGBA = 32,
-  FOURCC_BPP_24BG = 24,
-  FOURCC_BPP_RAW = 24,
-  FOURCC_BPP_RGBP = 16,
-  FOURCC_BPP_RGBO = 16,
-  FOURCC_BPP_R444 = 16,
-  FOURCC_BPP_RGGB = 8,
-  FOURCC_BPP_BGGR = 8,
-  FOURCC_BPP_GRBG = 8,
-  FOURCC_BPP_GBRG = 8,
-  FOURCC_BPP_YV12 = 12,
-  FOURCC_BPP_YV16 = 16,
-  FOURCC_BPP_YV24 = 24,
-  FOURCC_BPP_YU12 = 12,
-  FOURCC_BPP_J420 = 12,
-  FOURCC_BPP_J400 = 8,
-  FOURCC_BPP_H420 = 12,
-  FOURCC_BPP_MJPG = 0,  // 0 means unknown.
-  FOURCC_BPP_H264 = 0,
-  FOURCC_BPP_IYUV = 12,
-  FOURCC_BPP_YU16 = 16,
-  FOURCC_BPP_YU24 = 24,
-  FOURCC_BPP_YUYV = 16,
-  FOURCC_BPP_YUVS = 16,
-  FOURCC_BPP_HDYC = 16,
-  FOURCC_BPP_2VUY = 16,
-  FOURCC_BPP_JPEG = 1,
-  FOURCC_BPP_DMB1 = 1,
-  FOURCC_BPP_BA81 = 8,
-  FOURCC_BPP_RGB3 = 24,
-  FOURCC_BPP_BGR3 = 24,
-  FOURCC_BPP_CM32 = 32,
-  FOURCC_BPP_CM24 = 24,
-
-  // Match any fourcc.
-  FOURCC_BPP_ANY = 0,  // 0 means unknown.
-};
-
-// Converts fourcc aliases into canonical ones.
-LIBYUV_API uint32 CanonicalFourCC(uint32 fourcc);
-
-#ifdef __cplusplus
-}  // extern "C"
-}  // namespace libyuv
-#endif
-
-#endif  // INCLUDE_LIBYUV_VIDEO_COMMON_H_

二進制
ios/IJKMediaFramework.framework/libyuv/lib/libyuv.a


+ 1 - 5
ios/flutter_ijkplayer.podspec

@@ -18,11 +18,7 @@ A new flutter plugin project.
 
   s.ios.deployment_target = '8.0'
 
-  # s.dependency 'ijkplayer', '~> 1.1.3'
-  s.vendored_frameworks = "IJKMediaFramework.framework"
-  s.frameworks  = "AudioToolbox", "AVFoundation", "CoreGraphics", "CoreMedia", "CoreVideo", "MobileCoreServices", "OpenGLES", "QuartzCore", "VideoToolbox", "Foundation", "UIKit", "MediaPlayer"
-  s.libraries   = "bz2", "z", "stdc++"
-
+  s.dependency 'FlutterIJK', '~> 0.0.3'
 
 end