From 4efeb31d5b4921d7e851c256009486ad86bc70e2 Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Tue, 21 Jun 2022 09:14:57 +0800
Subject: [PATCH] 地址替换

---
 nativePlugins/AR-RtcModule/ios/ARtcKit.framework/Headers/ARMediaIO.h |  224 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 224 insertions(+), 0 deletions(-)

diff --git a/nativePlugins/AR-RtcModule/ios/ARtcKit.framework/Headers/ARMediaIO.h b/nativePlugins/AR-RtcModule/ios/ARtcKit.framework/Headers/ARMediaIO.h
new file mode 100644
index 0000000..32dadce
--- /dev/null
+++ b/nativePlugins/AR-RtcModule/ios/ARtcKit.framework/Headers/ARMediaIO.h
@@ -0,0 +1,224 @@
+//
+//  ARMediaIO.h
+//  ARtcKit
+//
+//  Created by 余生丶 on 2020/6/15.
+//  Copyright © 2020 zjq. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <AVFoundation/AVFoundation.h>
+#import "AREnumerates.h"
+
+/** 视频像素格式
+
+ 关于 YVU 图像格式的描述,请参考:
+ FourCC YUV 格式说明
+ Recommended 8-Bit YUV Formats for Video Rendering
+ */
+typedef NS_ENUM(NSUInteger, ARVideoPixelFormat) {
+    /** I420 */
+    ARVideoPixelFormatI420   = 1,
+    /** BGRA */
+    ARVideoPixelFormatBGRA   = 2,
+    /** NV12 */
+    ARVideoPixelFormatNV12   = 8,
+};
+
+/** 视频的顺时针旋转角度
+
+如果设置为其他数字,系统会自动忽略
+ */
+typedef NS_ENUM(NSInteger, ARVideoRotation) {
+    /** 顺时针旋转 0 度 */
+    ARVideoRotationNone      = 0,
+    /** 顺时针旋转 90 度*/
+    ARVideoRotation90        = 1,
+    /** 顺时针旋转 180 度 */
+    ARVideoRotation180       = 2,
+    /** 顺时针旋转 270 度 */
+    ARVideoRotation270       = 3,
+};
+
+/**
+ ARVideoFrameConsumer 支持接收两种 Buffer 类型的视频帧数据:PixelBuffer 和裸数据。 自定义视频源时,开发者需要通过 bufferType 来指定一种 Buffer 类型,并在自定义视频源中只使用与其对应的方法来传递视频帧数据。
+*/
+@protocol ARVideoFrameConsumer <NSObject>
+
+/** PixelBuffer 类型
+
+ @param pixelBuffer PixelBuffer 类型的视频 Buffer
+ @param timestamp   传入的视频帧的时间戳,开发者必须为每一个视频帧设置一个时间戳。
+ @param rotation    视频的顺时针旋转角度, 详见 ARVideoRotation
+ */
+- (void)consumePixelBuffer:(CVPixelBufferRef _Nonnull)pixelBuffer
+             withTimestamp:(CMTime)timestamp
+                  rotation:(ARVideoRotation)rotation;
+
+/** RawData 类型
+
+ @param rawData   RawData 类型的视频 Buffer
+ @param timestamp 传入的视频帧的时间戳,以毫秒为单位。
+ @param format    ARVideoPixelFormat
+ @param size      视频裸数据的尺寸
+ @param rotation  视频的顺时针旋转角度, 详见 ARVideoRotation
+ */
+- (void)consumeRawData:(void * _Nonnull)rawData
+         withTimestamp:(CMTime)timestamp
+                format:(ARVideoPixelFormat)format
+                  size:(CGSize)size
+              rotation:(ARVideoRotation)rotation;
+
+
+@end
+
+
+/** ARVideoSourceProtocol 协议
+ 
+ ARVideoSourceProtocol 定义了一套协议,开发者通过实现该接口,来创建自定义的视频源,并设置给 sdk 底层的 Media Engine
+
+ 实时通讯过程中,SDK 通常会启动默认的视频输入设备,即内置的摄像头,进行视频推流。 使用 ARVideoSourceProtocol 接口可以自定义视频源。通过调用 设置视频源 setVideoSource 接口,可以改变并控制默认的视频输入设备,再将自定义的视频源发送给 Media Engine,让 Media Engine 进行其它视频处理,如过滤视频、将视频发布到 RTC 链接等。
+ 
+ */
+@protocol ARVideoSourceProtocol <NSObject>
+@required
+/** ARVideoFrameConsumer 协议,详见 ARVideoFrameConsumer */
+@property (strong) id<ARVideoFrameConsumer> _Nullable consumer;
+/** 初始化视频源
+
+ Media Engine 在初始化视频源的时候会回调此方法。开发者可以在这个方法中做一些准备工作,例如打开 Camera,或者初始化视频源,并通过返回值告诉 Media Engine,自定义的视频源是否已经准备好。
+
+**Note**
+ 
+ 初始化视频源过程中,开发者需要在 bufferType 中指定一种 Buffer 类型,并在自定义视频源中只使用与其对应的方法来传递视频帧数据。
+
+ 在初始化视频源过程中,Media Engine 会传递给开发者的一个 ARVideoFrameConsumer 对象。开发者需要保存该对象,并在视频源启动后,通过这个对象把视频帧输入给 Media Engine。
+
+ 开发者需要手动输入 YES 或 NO,以告诉 Media Engine 自定义视频源是否已准备好。
+
+ @return 初始化状态:
+ * YES: 自定义的视频源已经完成了初始化工作
+ * NO: 自定义的视频源设备没准备好或者初始化失败,Media Engine 会停下来并上报错误
+ */
+- (BOOL)shouldInitialize;
+
+/** 启动视频源
+
+ Media Engine 在启动视频源时会回调这个方法。开发者可以在该方法中启动视频帧捕捉。开发者需要通过返回值告诉告知 Media Engine 自定义的视频源是否开启成功。
+
+ 开发者需要手动输入 YES 或 NO,以告诉 Media Engine 自定义视频源是否开启:
+
+ * YES:自定义的视频源已成功开启,接下来会打开 ARVideoFrameConsumer 的开关,接收开发者传输的视频帧
+ * NO:自定义的视频源设备启动失败,Media Engine 会停下来并上报错误
+ */
+- (void)shouldStart;
+
+/** 停止视频源
+
+ Media Engine 在停止视频源的时候会回调这个方法。开发者可以在这个方法中停止视频的采集。Media Engine 通过这个回调通知开发者,ARVideoFrameConsumer 的帧输入开关即将关闭,之后输入的视频帧都会被丢弃。
+ */
+- (void)shouldStop;
+
+/** 释放视频源
+
+Media Engine 通知开发者视频源即将失效,开发者可以在这个方法中关闭视频源设备。引擎会销毁 ARVideoFrameConsumer 对象,开发者需要确保在此回调之后不再使用它。
+ */
+- (void)shouldDispose;
+
+/** 获取 Buffer 类型
+
+ Media Engine 在初始化的时候,会调用这个方法来查询该视频源所使用的 Buffer 类型。开发者必须指定且只能指定一种 Buffer 类型并通过返回值告诉 Media Engine
+
+ @return ARVideoBufferType
+ */
+- (ARVideoBufferType)bufferType;
+
+@end
+
+/** ARVideoSinkProtocol 协议
+
+ ARVideoSinkProtocol 定义了一套协议,开发者通过实现该接口,来创建自定义的视频渲染器,并设置给底层的 Media Engine。
+
+ 实时通讯过程中,SDK 通常会启动默认的视频渲染器进行视频渲染。 ARVideoSinkProtocol 可以自定义视频渲染器,再通过调用 设置本地视频渲染器 setLocalVideoRenderer 和 设置远端视频渲染器 setRemoteVideoRenderer 接口,改变并控制默认的视频渲染器。
+
+ ARVideoSinkProtocol 由以下方法组成:
+
+ - 初始化渲染器(shouldInitialize)
+ - 启动渲染器 (shouldStart)
+ - 停止渲染器 (shouldStop)
+ - 释放渲染器 (shouldDispose)
+ - 获取 Buffer 类型 (AgoraVideoBufferType)
+ - 获取像素格式 (AgoraVideoPixelFormat)
+ - (可选) 输出视频像素 Buffer (renderPixelBuffer)
+ - (可选) 输出视频裸数据 (renderRawData)
+ Note: ARVideoSinkProtocol 接口中定义的所有方法都是回调方法,Media Engine 内部维护着状态机,并使用这些方法将自定义视频源及渲染器的状态传给 Media Engine。因此请避免直接在 App 中直接调用这些接口。 下面这个例子给出了自定义 video sink 的步骤:
+
+ - 调用 bufferType 和 AgoraVideoPixelFormat 方法设置视频帧的 Buffer 类型和像素格式。
+ - 实现 shouldInitialize、shouldStart、shouldStop 和 shouldDispose 管理自定义的 Video Sink。
+ - 根据 ARVideoFrameConsumer 实现 buffer 类型和像素格式。
+ - 创建 ARVideoFrameConsumer 自定义的 Video Sink 对象。
+ - 调用 setLocalVideoRenderer 和 setRemoteVideoRenderer 方法设置本地和远端视频渲染器。
+ - Media Engine 会根据内部状态调用 ARVideoSinkProtocol 接口中的方法。
+ */
+@protocol ARVideoSinkProtocol <NSObject>
+@required
+/** 初始化渲染器
+
+ Media Engine 初始化渲染器的时候调用这个方法。开发者可以在这个方法中做渲染器的初始化工作。如果是耗时操作,也可以提前初始化好,然后在这个方法中通过返回值告知 Media Engine 自定义渲染器已初始化好。 该方法需要开发者手动输入 YES 或 NO,告知 Media Engine 自定义渲染器的状态。
+
+ @return - YES: Media Engine 会认为自定义的渲染器已经初始化好
+ - NO: Media Engine 会认为自定义的渲染器初始化失败,不继续往下运行
+ */
+- (BOOL)shouldInitialize;
+
+/** 启动渲染器
+
+ Media Engine 在开启渲染功能的时候会回调这个方法。开发者可以在这个方法中启动渲染器。 该方法需要开发者手动输入 YES 或 NO,Media Engine 会根据输入值做对应的动作:
+
+ - YES: Media Engine 继续进行渲染
+ - NO:Media Engine 认为出错而停止渲染器的功能
+ */
+- (void)shouldStart;
+
+/** 停止渲染器
+
+ Media Engine 在停止渲染功能的时候会回调这个方法。开发者可以在这个方法中停止渲染。
+ */
+- (void)shouldStop;
+
+/** 释放渲染器
+
+ Media Engine 通知开发者渲染器即将被废弃。在 shouldDispose 返回之后,开发者就可以释放掉资源了。
+ */
+- (void)shouldDispose;
+
+/** 获取 Buffer 类型
+ 
+ 用于在自定义渲染器的时候,需要指定 Buffer 类型,通过返回值告知引擎。Media Engine 会调用这个方法并检查返回值类型。
+
+ @return  Buffer 类型
+ */
+- (ARVideoBufferType)bufferType;
+
+/** 获取像素格式
+
+ @return 用于自定义渲染器的时候,还需要指定视频数据的像素格式。
+ */
+- (ARVideoPixelFormat)pixelFormat;
+
+@optional
+/** (可选)输出视频的 PixelBuffer
+
+ @param pixelBuffer 视频的 PixelBuffer
+ @param rotation   视频像素的顺时针旋转角度, ARVideoRotation
+ */
+- (void)renderPixelBuffer:(CVPixelBufferRef _Nonnull)pixelBuffer rotation:(ARVideoRotation)rotation;
+
+/** 输出视频裸数据
+
+ @param rawData RawData 格式的视频
+ @param size     视频的尺寸
+ @param rotation 视频的顺时针旋转角度, ARVideoRotation
+ */
+- (void)renderRawData:(void * _Nonnull)rawData size:(CGSize)size rotation:(ARVideoRotation)rotation;
+@end

--
Gitblit v1.9.3