KSYGPUPicOutput Class Reference

Inherits from NSObject
Conforms to GPUImageInput
Declared in KSYGPUPicOutput.h

Overview

GPU图像输出

从GPU中取得处理后的图像, 通过回调函数将pixelBuffer和时间戳送出

  • 本模块含有一个GPUImageInput的接口, 从其他filter接收渲染结果
  • 通过inputSize 查询输入的图像尺寸
  • 通过outputSize 设置输出的图像尺寸
  • 通过cropRegion 设置裁剪区域
  • 初始化时可指定输出数据的像素格式
  • 支持的输出颜色格式包括:
    • kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange: (NV12)
    • kCVPixelFormatType_420YpCbCr8BiPlanarFullRange:(NV12)
    • kCVPixelFormatType_420YpCbCr8Planar:(I420)
    • kCVPixelFormatType_420YpCbCr8PlanarFullRange:(I420)
    • kCVPixelFormatType_32BGRA:(BGRA)
    • kCVPixelFormatType_4444AYpCbCr8:(AYUV) 排列顺序为 (A Y' Cb Cr)

Initialization

– init

初始化方法

- (id)init

Declared In

KSYGPUPicOutput.h

– initWithOutFmt:

指定输出格式的初始化

- (id)initWithOutFmt:(OSType)fmt

Parameters

fmt

输出格式

Declared In

KSYGPUPicOutput.h

query and settings

  outputPixelFormat

output format (默认:kCVPixelFormatType_32BGRA)

@property (nonatomic, readonly) OSType outputPixelFormat

Discussion

非法颜色格式都会被当做 kCVPixelFormatType_32BGRA 处理

Declared In

KSYGPUPicOutput.h

  enabled

GPUImageInput - (BOOL)enabled;

@property (nonatomic) BOOL enabled

Declared In

KSYGPUPicOutput.h

  bCustomOutputSize

是否使用自定义输出尺寸 (默认为NO)

@property (nonatomic, assign) BOOL bCustomOutputSize

Discussion

NO: outputSize自动跟随输入图像的变化而变化

YES: outputSize使用外部自定义设置,忽略输入尺寸

Declared In

KSYGPUPicOutput.h

  outputSize

output picture size

@property (nonatomic, assign) CGSize outputSize

Discussion

当bCustomOutputSize设置为NO时,outputSize无法被修改

可以对裁剪后的图像再进行缩放

输出尺寸必须为4的整数倍, 内部会进行向上取整

Declared In

KSYGPUPicOutput.h

  cropRegion

裁剪区域 将输入的图像按照区域裁剪出中间的一块

@property (readwrite, nonatomic) CGRect cropRegion

Discussion

cropRegion 标记了左上角的位置和宽高, 范围都是0.0 到1.0

Declared In

KSYGPUPicOutput.h

  inputSize

input picture size

@property (nonatomic, readonly) CGSize inputSize

Declared In

KSYGPUPicOutput.h

  bAutoRepeat

是否冻结图像(主动提供重复图像)

@property (nonatomic, readwrite) BOOL bAutoRepeat

Discussion

比如:视频采集被打断时, bAutoRepeat为NO,则停止提供图像; 为YES, 则主动提供最后一帧图像

Declared In

KSYGPUPicOutput.h

  targetFps

0表示根据过去输入的图像来猜测帧率, 1~30 表示按照设定的帧率提供重复的帧, 默认为0

@property (nonatomic, readwrite) int targetFps

Declared In

KSYGPUPicOutput.h

– getInputRotation

input roation mode

- (GPUImageRotationMode)getInputRotation

Return Value

图像的旋转模式

Declared In

KSYGPUPicOutput.h

  videoProcessingCallback

视频处理回调接口

@property (nonatomic, copy) void ( ^ ) ( CVPixelBufferRef pixelBuffer , CMTime timeInfo ) videoProcessingCallback

Discussion

pixelBuffer 美颜处理后,编码之前的视频数据

timeInfo 时间戳 @warnning 请注意本函数的执行时间,如果太长可能导致不可预知的问题

Declared In

KSYGPUPicOutput.h