顏色轉(zhuǎn)換矩陣:
extern const GLfloat kColorConversion601[];//標準清晰度
extern const GLfloat kColorConversion601FullRange[];//全彩
extern const GLfloat kColorConversion709[];//高清晰度
片段著色器:
extern NSString *const kGPUImageYUVVideoRangeConversionForRGFragmentShaderString;
extern NSString *const kGPUImageYUVFullRangeConversionForLAFragmentShaderString;
extern NSString *const kGPUImageYUVVideoRangeConversionForLAFragmentShaderString;
代理:
@protocol GPUImageVideoCameraDelegate <NSObject>
@optional
-(void)willOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer;//將要輸出samp leBuffer
@end
interface:
@interface GPUImageVideoCamera : GPUImageOutput <AVCaptureVideoDataOutputSampleBufferDelegate,
AVCaptureAudioDataOutputSampleBufferDelegate>
{
NSUInteger numberOfFramesCaptured;//已采集的幀數(shù)
CGFloat totalFrameTimeDuringCapture;//采集的總幀數(shù)
AVCaptureSession *_captureSession;//采集會話層
AVCaptureDevice *_inputCamera;//視頻輸入設備
AVCaptureDevice *_microphone;//音頻輸入設備
AVCaptureDeviceInput *videoInput;//視頻輸入
AVCaptureVideoDataOutput *videoOutput;//視頻數(shù)據(jù)輸出
BOOL capturePaused;//停止采集
GPUImageRotationMode outputRotation, internalRotation;//輸入和輸出旋轉(zhuǎn)方式
dispatch_semaphore_t frameRenderingSemaphore;//幀渲染信號量
BOOL captureAsYUV;//yuv格式采集
GLuint luminanceTexture, chrominanceTexture;//亮度紋理、色度紋理
__unsafe_unretained id<GPUImageVideoCameraDelegate> _delegate;//攝像頭采集協(xié)議
}
@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<GPUImageVideoCameraDelegate> delegate;//攝像頭代理
-(id)initWithSessionPreset:(NSString *)sessionPreset cameraPosition:(AVCaptureDevicePosition)cameraPosition;//根據(jù)分辨率冒冬、攝像頭朝向初始化攝像頭
-(BOOL)addAudioInputsAndOutputs;//添加音頻的輸入和輸出
-(BOOL)removeAudioInputsAndOutputs;//移除音頻的輸入和輸出
-(void)removeInputsAndOutputs;//移除輸入和輸出設備
-(void)startCameraCapture;//開始采集
-(void)stopCameraCapture;//停止采集
-(void)pauseCameraCapture;//暫停采集
-(void)resumeCameraCapture;//恢復采集
-(void)processVideoSampleBuffer:(CMSampleBufferRef)sampleBuffer;//處理視頻數(shù)據(jù)
-(void)processAudioSampleBuffer:(CMSampleBufferRef)sampleBuffer;//處理音頻數(shù)據(jù)
-(AVCaptureDevicePosition)cameraPosition;//攝像頭位置(前置/后置)
-(AVCaptureConnection *)videoCaptureConnection;//視頻連接
-(void)rotateCamera;//轉(zhuǎn)換攝像頭
-(CGFloat)averageFrameDurationDuringCapture;//平均幀時長
- (void)resetBenchmarkAverage;
+ (BOOL)isBackFacingCameraPresent;
+ (BOOL)isFrontFacingCameraPresent;
@end
GPUImageVideoCamera.h源碼解析
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門抖格,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人咕晋,你說我怎么就攤上這事雹拄。” “怎么了掌呜?”我有些...
- 文/不壞的土叔 我叫張陵滓玖,是天一觀的道長。 經(jīng)常有香客問我质蕉,道長势篡,這世上最難降的妖魔是什么翩肌? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮禁悠,結(jié)果婚禮上念祭,老公的妹妹穿的比我還像新娘。我一直安慰自己碍侦,他們只是感情好粱坤,可當我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著瓷产,像睡著了一般站玄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上拦英,一...
- 文/蒼蘭香墨 我猛地睜開眼沈撞,長吁一口氣:“原來是場噩夢啊……” “哼慷荔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起缠俺,我...
- 正文 年R本政府宣布,位于F島的核電站英妓,受9級特大地震影響枉疼,放射性物質(zhì)發(fā)生泄漏皮假。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一骂维、第九天 我趴在偏房一處隱蔽的房頂上張望惹资。 院中可真熱鬧,春花似錦航闺、人聲如沸褪测。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽侮措。三九已至,卻和暖如春乖杠,著一層夾襖步出監(jiān)牢的瞬間分扎,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 1._has_include()以前自己從沒用過 __has_include() 這個宏宏悦,其實從字面意義也能猜出其...
- 回首過去的一年,還真的是發(fā)生了很多大事在我們這個小家庭里损离。年初四月份哥艇,先生遭遇到了intel十年一遇的大裁員,記得...