Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include "cinder/Cinder.h"
00024 #include "cinder/Surface.h"
00025 #include "cinder/Capture.h"
00026 #import <QTKit/QTKit.h>
00027 #include <vector>
00028
00029
00030 namespace cinder {
00031
00032 class CaptureImplQtKitDevice : public Capture::Device {
00033 public:
00034 CaptureImplQtKitDevice( QTCaptureDevice* device );
00035 ~CaptureImplQtKitDevice() {}
00036
00037 bool checkAvailable() const;
00038 bool isConnected() const;
00039 Capture::DeviceIdentifier getUniqueId() const { return mUniqueId; }
00040 void* getNative() const { return mDevice; }
00041 private:
00042 Capture::DeviceIdentifier mUniqueId;
00043 QTCaptureDevice* mDevice;
00044 };
00045
00046 }
00047
00048 @interface CaptureImplQtKit : NSObject {
00049 bool mIsCapturing;
00050 QTCaptureSession *mCaptureSession;
00051 QTCaptureDecompressedVideoOutput *mCaptureDecompressedOutput;
00052 QTCaptureDeviceInput *mCaptureDeviceInput;
00053
00054 CVPixelBufferRef mWorkingPixelBuffer;
00055 cinder::Surface8u mCurrentFrame;
00056 int32_t mWidth, mHeight;
00057 cinder::SurfaceChannelOrder mSurfaceChannelOrderCode;
00058 NSString * mDeviceUniqueId;
00059 int32_t mExposedFrameBytesPerRow;
00060 int32_t mExposedFrameHeight;
00061 int32_t mExposedFrameWidth;
00062 bool mHasNewFrame;
00063 cinder::Capture::DeviceRef mDevice;
00064 }
00065
00066 + (const std::vector<cinder::Capture::DeviceRef>&)getDevices:(BOOL)forceRefresh;
00067
00068 - (id)initWithDevice:(const cinder::Capture::DeviceRef)device width:(int)width height:(int)height;
00069 - (void)prepareStartCapture;
00070 - (void)startCapture;
00071 - (void)stopCapture;
00072 - (bool)isCapturing;
00073 - (cinder::Surface8u)getCurrentFrame;
00074 - (bool)checkNewFrame;
00075 - (const cinder::Capture::DeviceRef)getDevice;
00076 - (int32_t)getWidth;
00077 - (int32_t)getHeight;
00078 - (int32_t)getCurrentFrameBytesPerRow;
00079 - (int32_t)getCurrentFrameWidth;
00080 - (int32_t)getCurrentFrameHeight;
00081
00082 @end