GPUImageVideoCamera 方法解析

GPUImageVideoCamera 方法解析

颜色矩阵转换

extern const GLfloat kColorConversion601[];//标准清晰度
extern const GLfloat kColorConversion601FullRange[];//全彩
extern const GLfloat kColorConversion709[];//高清晰度

片段着色器:

extern NSString *const kGPUImageYUVVideoRangeConversionForRGFragmentShaderString;
extern NSString *const kGPUImageYUVFullRangeConversionForLAFragmentShaderString;
extern NSString *const kGPUImageYUVVideoRangeConversionForLAFragmentShaderString;

代理:

-(void)willOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer;//将要输出samp leBuffer

私有属性:

    NSUInteger numberOfFramesCaptured;//已采集的帧数
    CGFloat totalFrameTimeDuringCapture;//采集的总帧数
    AVCaptureSession *_captureSession;//采集会话层
    AVCaptureDevice *_inputCamera;//视频输入设备
    AVCaptureDevice *_microphone;//音频输入设备
    AVCaptureDeviceInput *videoInput;//视频输入
    AVCaptureVideoDataOutput *videoOutput;//视频数据输出

    BOOL capturePaused;//停止采集
    GPUImageRotationMode outputRotation, internalRotation;//输入和输出旋转方式
    dispatch_semaphore_t frameRenderingSemaphore;//帧渲染信号量

    BOOL captureAsYUV;//yuv格式采集
    GLuint luminanceTexture, chrominanceTexture;//亮度纹理、色度纹理

    __unsafe_unretained id _delegate;//摄像头采集协议

属性:

    @property(readonly, retain, nonatomic) AVCaptureSession *captureSession;//会话层
    @property (readwrite, nonatomic, copy) NSString *captureSessionPreset;//采集分辨率
    @property (readwrite) int32_t frameRate;//帧率
    @property (readonly, getter = isFrontFacingCameraPresent) BOOL frontFacingCameraPresent;//前置摄像头
    @property (readonly, getter = isBackFacingCameraPresent) BOOL backFacingCameraPresent;//后置摄像头
    @property(readwrite, nonatomic) BOOL runBenchmark;//基准
    @property(readonly) AVCaptureDevice *inputCamera;//输入摄像头
    @property(readwrite, nonatomic) UIInterfaceOrientation outputImageOrientation;//摄像头朝向
    @property(readwrite, nonatomic) BOOL horizontallyMirrorFrontFacingCamera, horizontallyMirrorRearFacingCamera;//前者摄像头水平镜像,后置摄像头水平镜像
    @property(nonatomic, assign) id delegate;//摄像头代理

方法集合:

-(id)initWithSessionPreset:(NSString *)sessionPreset cameraPosition:(AVCaptureDevicePosition)cameraPosition;//根据分辨率、摄像头朝向初始化摄像头
    -(BOOL)addAudioInputsAndOutputs;//添加音频的输入和输出
    -(BOOL)removeAudioInputsAndOutputs;//移除音频的输入和输出
    -(void)removeInputsAndOutputs;//移除输入和输出设备
    -(void)startCameraCapture;//开始采集
    -(void)stopCameraCapture;//停止采集
    -(void)pauseCameraCapture;//暂停采集
    -(void)resumeCameraCapture;//恢复采集
    -(void)processVideoSampleBuffer:(CMSampleBufferRef)sampleBuffer;//处理视频数据
    -(void)processAudioSampleBuffer:(CMSampleBufferRef)sampleBuffer;//处理音频数据
    -(AVCaptureDevicePosition)cameraPosition;//摄像头位置(前置/后置)
    -(AVCaptureConnection *)videoCaptureConnection;//视频连接
    -(void)rotateCamera;//转换摄像头
    -(CGFloat)averageFrameDurationDuringCapture;//平均帧时长
    - (void)resetBenchmarkAverage;
    + (BOOL)isBackFacingCameraPresent;
    + (BOOL)isFrontFacingCameraPresent;

你可能感兴趣的:(GPUImageVideoCamera 方法解析)