Source-SCCamera/ManagedCapturer/SCManagedStillImageCapturer...

64 lines
2.3 KiB
Objective-C

//
// SCManagedStillImageCapturer_Protected.h
// Snapchat
//
// Created by Chao Pang on 10/4/16.
// Copyright © 2016 Snapchat, Inc. All rights reserved.
//
SC_EXTERN_C_BEGIN
extern NSDictionary *cameraInfoForBuffer(CMSampleBufferRef imageDataSampleBuffer);
SC_EXTERN_C_END
extern NSString *const kSCManagedStillImageCapturerErrorDomain;
#if !TARGET_IPHONE_SIMULATOR
extern NSInteger const kSCManagedStillImageCapturerNoStillImageConnection;
#endif
extern NSInteger const kSCManagedStillImageCapturerApplicationStateBackground;
// We will do the image capture regardless if these is still camera adjustment in progress after 0.4 seconds.
extern NSTimeInterval const kSCManagedStillImageCapturerDeadline;
extern NSTimeInterval const kSCCameraRetryInterval;
@protocol SCManagedCapturerLensAPI;
@interface SCManagedStillImageCapturer () {
@protected
id<SCManagedCapturerLensAPI> _lensAPI;
id<SCPerforming> _performer;
AVCaptureSession *_session;
id<SCManagedStillImageCapturerDelegate> __weak _delegate;
NSString *_captureSessionID;
SCCapturerLightingConditionType _lightingConditionType;
}
- (instancetype)initWithSession:(AVCaptureSession *)session
performer:(id<SCPerforming>)performer
lensProcessingCore:(id<SCManagedCapturerLensAPI>)lensProcessingCore
delegate:(id<SCManagedStillImageCapturerDelegate>)delegate;
- (UIImage *)imageFromData:(NSData *)data
currentZoomFactor:(float)currentZoomFactor
targetAspectRatio:(CGFloat)targetAspectRatio
fieldOfView:(float)fieldOfView
state:(SCManagedCapturerState *)state
sampleBuffer:(CMSampleBufferRef)sampleBuffer;
- (UIImage *)imageFromData:(NSData *)data
currentZoomFactor:(float)currentZoomFactor
targetAspectRatio:(CGFloat)targetAspectRatio
fieldOfView:(float)fieldOfView
state:(SCManagedCapturerState *)state
metadata:(NSDictionary *)metadata;
- (UIImage *)imageFromImage:(UIImage *)image
currentZoomFactor:(float)currentZoomFactor
targetAspectRatio:(CGFloat)targetAspectRatio
fieldOfView:(float)fieldOfView
state:(SCManagedCapturerState *)state;
- (CMTime)adjustedExposureDurationForNightModeWithCurrentExposureDuration:(CMTime)exposureDuration;
@end