// // ESCVideoToolboxEncodeH264DataTool.h // ESCCameraH264Demo // // Created by xiang on 2019/4/28. // Copyright © 2019 xiang. All rights reserved. // #import NS_ASSUME_NONNULL_BEGIN typedef NS_CLOSED_ENUM(NSInteger, VideoCodecType) { VideoCodecType_H264 = 0L, VideoCodecType_H265 }; @class RCYUVEncoder; @protocol ESCVideoToolboxYUVEncoderToolDelegate /** 压缩后的h264数据流 */ - (void)encoder:(RCYUVEncoder *)encoder encodeData:(void *)encodeData dataLenth:(NSInteger)lenth; /** 压缩结束 */ - (void)encoderEnd:(RCYUVEncoder *)encoder; @end @interface RCYUVEncoder : NSObject @property(nonatomic,weak)id delegate; //sps和pps数据是否包含在关键帧前面,默认为YES @property(nonatomic,assign)BOOL spsAndPpsIsIncludedInIframe; - (instancetype)initWithCodecType:(VideoCodecType)codecType; /** yuv流转h264流 */ - (void)setupVideoWidth:(NSInteger)width height:(NSInteger)height frameRate:(NSInteger)frameRate delegate:(id)delegate; /** 填充需要压缩的yuv流数据 */ - (void)encoderYUVData:(NSData *)yuvData; /** yuv流数据接收完毕 */ -(void)endYUVDataStream; @end NS_ASSUME_NONNULL_END