Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(623)

Side by Side Diff: webrtc/modules/video_capture/objc/video_capture.mm

Issue 2534553002: Replace VideoCaptureDataCallback by VideoSinkInterface. (Closed)
Patch Set: Break overlong lines. Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 #if !defined(__has_feature) || !__has_feature(objc_arc) 11 #if !defined(__has_feature) || !__has_feature(objc_arc)
12 #error "This file requires ARC support." 12 #error "This file requires ARC support."
13 #endif 13 #endif
14 14
15 #include "webrtc/base/refcount.h" 15 #include "webrtc/base/refcount.h"
16 #include "webrtc/base/scoped_ref_ptr.h" 16 #include "webrtc/base/scoped_ref_ptr.h"
17 #include "webrtc/modules/video_capture/objc/device_info_objc.h" 17 #include "webrtc/modules/video_capture/objc/device_info_objc.h"
18 #include "webrtc/modules/video_capture/objc/rtc_video_capture_objc.h" 18 #include "webrtc/modules/video_capture/objc/rtc_video_capture_objc.h"
19 #include "webrtc/system_wrappers/include/trace.h" 19 #include "webrtc/system_wrappers/include/trace.h"
20 20
21 using namespace webrtc; 21 using namespace webrtc;
22 using namespace videocapturemodule; 22 using namespace videocapturemodule;
23 23
24 rtc::scoped_refptr<VideoCaptureModule> VideoCaptureImpl::Create( 24 rtc::scoped_refptr<VideoCaptureModule> VideoCaptureImpl::Create(
25 const int32_t capture_id,
26 const char* deviceUniqueIdUTF8) { 25 const char* deviceUniqueIdUTF8) {
27 return VideoCaptureIos::Create(capture_id, deviceUniqueIdUTF8); 26 return VideoCaptureIos::Create(deviceUniqueIdUTF8);
28 } 27 }
29 28
30 VideoCaptureIos::VideoCaptureIos(const int32_t capture_id) 29 VideoCaptureIos::VideoCaptureIos()
31 : VideoCaptureImpl(capture_id), is_capturing_(false), id_(capture_id) { 30 : is_capturing_(false) {
32 capability_.width = kDefaultWidth; 31 capability_.width = kDefaultWidth;
33 capability_.height = kDefaultHeight; 32 capability_.height = kDefaultHeight;
34 capability_.maxFPS = kDefaultFrameRate; 33 capability_.maxFPS = kDefaultFrameRate;
35 capture_device_ = nil; 34 capture_device_ = nil;
36 } 35 }
37 36
38 VideoCaptureIos::~VideoCaptureIos() { 37 VideoCaptureIos::~VideoCaptureIos() {
39 if (is_capturing_) { 38 if (is_capturing_) {
40 [capture_device_ stopCapture]; 39 [capture_device_ stopCapture];
41 capture_device_ = nil; 40 capture_device_ = nil;
42 } 41 }
43 } 42 }
44 43
45 rtc::scoped_refptr<VideoCaptureModule> VideoCaptureIos::Create( 44 rtc::scoped_refptr<VideoCaptureModule> VideoCaptureIos::Create(
46 const int32_t capture_id,
47 const char* deviceUniqueIdUTF8) { 45 const char* deviceUniqueIdUTF8) {
48 if (!deviceUniqueIdUTF8[0]) { 46 if (!deviceUniqueIdUTF8[0]) {
49 return NULL; 47 return NULL;
50 } 48 }
51 49
52 rtc::scoped_refptr<VideoCaptureIos> capture_module( 50 rtc::scoped_refptr<VideoCaptureIos> capture_module(
53 new rtc::RefCountedObject<VideoCaptureIos>(capture_id)); 51 new rtc::RefCountedObject<VideoCaptureIos>());
54 52
55 const int32_t name_length = strlen(deviceUniqueIdUTF8); 53 const int32_t name_length = strlen(deviceUniqueIdUTF8);
56 if (name_length > kVideoCaptureUniqueNameLength) 54 if (name_length > kVideoCaptureUniqueNameLength)
57 return nullptr; 55 return nullptr;
58 56
59 capture_module->_deviceUniqueId = new char[name_length + 1]; 57 capture_module->_deviceUniqueId = new char[name_length + 1];
60 strncpy(capture_module->_deviceUniqueId, deviceUniqueIdUTF8, name_length + 1); 58 strncpy(capture_module->_deviceUniqueId, deviceUniqueIdUTF8, name_length + 1);
61 capture_module->_deviceUniqueId[name_length] = '\0'; 59 capture_module->_deviceUniqueId[name_length] = '\0';
62 60
63 capture_module->capture_device_ = 61 capture_module->capture_device_ =
64 [[RTCVideoCaptureIosObjC alloc] initWithOwner:capture_module 62 [[RTCVideoCaptureIosObjC alloc] initWithOwner:capture_module];
65 captureId:capture_module->id_];
66 if (!capture_module->capture_device_) { 63 if (!capture_module->capture_device_) {
67 return nullptr; 64 return nullptr;
68 } 65 }
69 66
70 if (![capture_module->capture_device_ 67 if (![capture_module->capture_device_
71 setCaptureDeviceByUniqueId: 68 setCaptureDeviceByUniqueId:
72 [[NSString alloc] initWithCString:deviceUniqueIdUTF8 69 [[NSString alloc] initWithCString:deviceUniqueIdUTF8
73 encoding:NSUTF8StringEncoding]]) { 70 encoding:NSUTF8StringEncoding]]) {
74 return nullptr; 71 return nullptr;
75 } 72 }
(...skipping 24 matching lines...) Expand all
100 97
101 bool VideoCaptureIos::CaptureStarted() { 98 bool VideoCaptureIos::CaptureStarted() {
102 return is_capturing_; 99 return is_capturing_;
103 } 100 }
104 101
105 int32_t VideoCaptureIos::CaptureSettings(VideoCaptureCapability& settings) { 102 int32_t VideoCaptureIos::CaptureSettings(VideoCaptureCapability& settings) {
106 settings = capability_; 103 settings = capability_;
107 settings.rawType = kVideoNV12; 104 settings.rawType = kVideoNV12;
108 return 0; 105 return 0;
109 } 106 }
OLDNEW
« no previous file with comments | « webrtc/modules/video_capture/objc/video_capture.h ('k') | webrtc/modules/video_capture/test/video_capture_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698