Index: webrtc/examples/peerconnection/client/conductor.cc |
diff --git a/webrtc/examples/peerconnection/client/conductor.cc b/webrtc/examples/peerconnection/client/conductor.cc |
index 2facf94585740bc9f84034f738798584fe3b8e64..ca07ef319cb43aa66c5500523ca81167fcc1cd0a 100644 |
--- a/webrtc/examples/peerconnection/client/conductor.cc |
+++ b/webrtc/examples/peerconnection/client/conductor.cc |
@@ -19,7 +19,8 @@ |
#include "webrtc/base/json.h" |
#include "webrtc/base/logging.h" |
#include "webrtc/examples/peerconnection/client/defaults.h" |
-#include "webrtc/media/devices/devicemanager.h" |
+#include "webrtc/media/engine/webrtcvideocapturerfactory.h" |
+#include "webrtc/modules/video_capture/video_capture_factory.h" |
// Names used for a IceCandidate JSON object. |
const char kCandidateSdpMidName[] = "sdpMid"; |
@@ -369,23 +370,31 @@ void Conductor::ConnectToPeer(int peer_id) { |
} |
cricket::VideoCapturer* Conductor::OpenVideoCaptureDevice() { |
- rtc::scoped_ptr<cricket::DeviceManagerInterface> dev_manager( |
- cricket::DeviceManagerFactory::Create()); |
- if (!dev_manager->Init()) { |
- LOG(LS_ERROR) << "Can't create device manager"; |
- return NULL; |
- } |
- std::vector<cricket::Device> devs; |
- if (!dev_manager->GetVideoCaptureDevices(&devs)) { |
- LOG(LS_ERROR) << "Can't enumerate video devices"; |
- return NULL; |
+ std::vector<std::string> device_names; |
+ { |
+ std::unique_ptr<webrtc::VideoCaptureModule::DeviceInfo> info( |
+ webrtc::VideoCaptureFactory::CreateDeviceInfo(0)); |
+ if (!info) { |
+ return nullptr; |
+ } |
+ int num_devices = info->NumberOfDevices(); |
+ for (int i = 0; i < num_devices; ++i) { |
+ const uint32_t kSize = 256; |
+ char name[kSize] = {0}; |
+ char id[kSize] = {0}; |
+ if (info->GetDeviceName(i, name, kSize, id, kSize) != -1) { |
+ device_names.push_back(name); |
+ } |
+ } |
} |
- std::vector<cricket::Device>::iterator dev_it = devs.begin(); |
- cricket::VideoCapturer* capturer = NULL; |
- for (; dev_it != devs.end(); ++dev_it) { |
- capturer = dev_manager->CreateVideoCapturer(*dev_it); |
- if (capturer != NULL) |
+ |
+ cricket::WebRtcVideoDeviceCapturerFactory factory; |
+ cricket::VideoCapturer* capturer = nullptr; |
+ for (const auto& name : device_names) { |
+ capturer = factory.Create(cricket::Device(name, 0)); |
+ if (capturer) { |
break; |
+ } |
} |
return capturer; |
} |