OLD | NEW |
| (Empty) |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 // VideoCaptureDeviceQTKit implements all QTKit related code for | |
6 // communicating with a QTKit capture device. | |
7 | |
8 #ifndef MEDIA_CAPTURE_VIDEO_MAC_VIDEO_CAPTURE_DEVICE_QTKIT_MAC_H_ | |
9 #define MEDIA_CAPTURE_VIDEO_MAC_VIDEO_CAPTURE_DEVICE_QTKIT_MAC_H_ | |
10 | |
11 #import <Foundation/Foundation.h> | |
12 | |
13 #include <vector> | |
14 | |
15 #import "media/capture/video/mac/platform_video_capturing_mac.h" | |
16 | |
17 namespace media { | |
18 class VideoCaptureDeviceMac; | |
19 } | |
20 | |
21 @class QTCaptureDeviceInput; | |
22 @class QTCaptureSession; | |
23 | |
24 @interface VideoCaptureDeviceQTKit : NSObject<PlatformVideoCapturingMac> { | |
25 @private | |
26 // Settings. | |
27 float frameRate_; | |
28 | |
29 NSLock* lock_; | |
30 media::VideoCaptureDeviceMac* frameReceiver_; | |
31 | |
32 // QTKit variables. | |
33 QTCaptureSession* captureSession_; | |
34 QTCaptureDeviceInput* captureDeviceInput_; | |
35 | |
36 // Buffer for adjusting frames which do not fit receiver | |
37 // assumptions. scoped_array<> might make more sense, if the size | |
38 // can be proven invariant. | |
39 std::vector<UInt8> adjustedFrame_; | |
40 } | |
41 | |
42 // Fills up the |deviceNames| dictionary of capture devices with friendly name | |
43 // and unique id. No thread assumptions, but this method should run in UI | |
44 // thread, see http://crbug.com/139164 | |
45 + (void)getDeviceNames:(NSMutableDictionary*)deviceNames; | |
46 | |
47 // Returns a dictionary of capture devices with friendly name and unique id, via | |
48 // runing +getDeviceNames: on Main Thread. | |
49 + (NSDictionary*)deviceNames; | |
50 | |
51 // Initializes the instance and registers the frame receiver. | |
52 - (id)initWithFrameReceiver:(media::VideoCaptureDeviceMac*)frameReceiver; | |
53 | |
54 // Set the frame receiver. | |
55 - (void)setFrameReceiver:(media::VideoCaptureDeviceMac*)frameReceiver; | |
56 | |
57 // Sets which capture device to use. Returns YES on success, NO otherwise. | |
58 - (BOOL)setCaptureDevice:(NSString*)deviceId; | |
59 | |
60 // Configures the capture properties. | |
61 - (BOOL)setCaptureHeight:(int)height | |
62 width:(int)width | |
63 frameRate:(float)frameRate; | |
64 | |
65 // Start video capturing. Returns YES on success, NO otherwise. | |
66 - (BOOL)startCapture; | |
67 | |
68 // Stops video capturing. | |
69 - (void)stopCapture; | |
70 | |
71 // Handle any QTCaptureSessionRuntimeErrorNotifications. | |
72 - (void)handleNotification:(NSNotification*)errorNotification; | |
73 | |
74 @end | |
75 | |
76 #endif // MEDIA_CAPTURE_VIDEO_MAC_VIDEO_CAPTURE_DEVICE_QTKIT_MAC_H_ | |
OLD | NEW |