12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- //
- // CvCamera2.h
- //
- // Created by Giles Payne on 2020/03/11.
- //
- #import <UIKit/UIKit.h>
- #import <Accelerate/Accelerate.h>
- #import <AVFoundation/AVFoundation.h>
- #import <ImageIO/ImageIO.h>
- #import "CVObjcUtil.h"
- @class Mat;
- @class CvAbstractCamera2;
- CV_EXPORTS @interface CvAbstractCamera2 : NSObject
- @property UIDeviceOrientation currentDeviceOrientation;
- @property BOOL cameraAvailable;
- @property (nonatomic, strong) AVCaptureSession* captureSession;
- @property (nonatomic, strong) AVCaptureConnection* videoCaptureConnection;
- @property (nonatomic, readonly) BOOL running;
- @property (nonatomic, readonly) BOOL captureSessionLoaded;
- @property (nonatomic, assign) int defaultFPS;
- @property (nonatomic, readonly) AVCaptureVideoPreviewLayer *captureVideoPreviewLayer;
- @property (nonatomic, assign) AVCaptureDevicePosition defaultAVCaptureDevicePosition;
- @property (nonatomic, assign) AVCaptureVideoOrientation defaultAVCaptureVideoOrientation;
- @property (nonatomic, assign) BOOL useAVCaptureVideoPreviewLayer;
- @property (nonatomic, strong) NSString *const defaultAVCaptureSessionPreset;
- @property (nonatomic, assign) int imageWidth;
- @property (nonatomic, assign) int imageHeight;
- @property (nonatomic, strong) UIView* parentView;
- - (void)start;
- - (void)stop;
- - (void)switchCameras;
- - (id)initWithParentView:(UIView*)parent;
- - (void)createCaptureOutput;
- - (void)createVideoPreviewLayer;
- - (void)updateOrientation;
- - (void)lockFocus;
- - (void)unlockFocus;
- - (void)lockExposure;
- - (void)unlockExposure;
- - (void)lockBalance;
- - (void)unlockBalance;
- @end
- ///////////////////////////////// CvVideoCamera ///////////////////////////////////////////
- @class CvVideoCamera2;
- @protocol CvVideoCameraDelegate2 <NSObject>
- - (void)processImage:(Mat*)image;
- @end
- CV_EXPORTS @interface CvVideoCamera2 : CvAbstractCamera2<AVCaptureVideoDataOutputSampleBufferDelegate>
- @property (nonatomic, weak) id<CvVideoCameraDelegate2> delegate;
- @property (nonatomic, assign) BOOL grayscaleMode;
- @property (nonatomic, assign) BOOL recordVideo;
- @property (nonatomic, assign) BOOL rotateVideo;
- @property (nonatomic, strong) AVAssetWriterInput* recordAssetWriterInput;
- @property (nonatomic, strong) AVAssetWriterInputPixelBufferAdaptor* recordPixelBufferAdaptor;
- @property (nonatomic, strong) AVAssetWriter* recordAssetWriter;
- - (void)adjustLayoutToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation;
- - (void)layoutPreviewLayer;
- - (void)saveVideo;
- - (NSURL *)videoFileURL;
- - (NSString *)videoFileString;
- @end
- ///////////////////////////////// CvPhotoCamera ///////////////////////////////////////////
- @class CvPhotoCamera2;
- @protocol CvPhotoCameraDelegate2 <NSObject>
- - (void)photoCamera:(CvPhotoCamera2*)photoCamera capturedImage:(UIImage*)image;
- - (void)photoCameraCancel:(CvPhotoCamera2*)photoCamera;
- @end
- CV_EXPORTS @interface CvPhotoCamera2 : CvAbstractCamera2<AVCapturePhotoCaptureDelegate>
- @property (nonatomic, weak) id<CvPhotoCameraDelegate2> delegate;
- - (void)takePicture;
- @end
|