Classes/MovieRecorder.h
/* |
<codex> |
<abstract>Real-time movie recorder which is totally non-blocking</abstract> |
</codex> |
*/ |
#import <Foundation/Foundation.h> |
#import <CoreMedia/CMFormatDescription.h> |
#import <CoreMedia/CMSampleBuffer.h> |
@protocol MovieRecorderDelegate; |
@interface MovieRecorder : NSObject |
- (id)initWithURL:(NSURL *)URL; |
// Only one audio and video track each are allowed. |
- (void)addVideoTrackWithSourceFormatDescription:(CMFormatDescriptionRef)formatDescription transform:(CGAffineTransform)transform; |
- (void)addAudioTrackWithSourceFormatDescription:(CMFormatDescriptionRef)formatDescription; |
- (void)setDelegate:(id<MovieRecorderDelegate>)delegate callbackQueue:(dispatch_queue_t)delegateCallbackQueue; // delegate is weak referenced |
- (void)prepareToRecord; // Asynchronous, might take several hunderd milliseconds. When finished the delegate's recorderDidFinishPreparing: or recorder:didFailWithError: method will be called. |
- (void)appendVideoSampleBuffer:(CMSampleBufferRef)sampleBuffer; |
- (void)appendVideoPixelBuffer:(CVPixelBufferRef)pixelBuffer withPresentationTime:(CMTime)presentationTime; |
- (void)appendAudioSampleBuffer:(CMSampleBufferRef)sampleBuffer; |
- (void)finishRecording; // Asynchronous, might take several hundred milliseconds. When finished the delegate's recorderDidFinishRecording: or recorder:didFailWithError: method will be called. |
@end |
@protocol MovieRecorderDelegate <NSObject> |
@required |
- (void)movieRecorderDidFinishPreparing:(MovieRecorder *)recorder; |
- (void)movieRecorder:(MovieRecorder *)recorder didFailWithError:(NSError *)error; |
- (void)movieRecorderDidFinishRecording:(MovieRecorder *)recorder; |
@end |
Copyright © 2016 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2016-09-28