cricket::VideoCapturer* RTCPeer::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<cricket::Device>::iterator dev_it = devs.begin(); cricket::VideoCapturer* capturer = NULL; for (; dev_it != devs.end(); ++dev_it) { std::cout << "Video device found" << std::endl; capturer = dev_manager->CreateVideoCapturer(*dev_it); /*if (capturer != NULL){ cricket::VideoFormat f; f.Construct(480,270,200000,cricket::FOURCC_ANY); capturer->video_adapter()->SetOutputFormat(f); capturer->video_adapter()->set_cpu_adaptation(false); std::cout << capturer->enable_video_adapter() << std::endl; break; }*/ } return capturer; }
cricket::VideoCapturer* PeerConnectionManager::OpenVideoCaptureDevice(const std::string & url) { cricket::VideoCapturer* capturer = NULL; if (url.find("rtsp://") == 0) { #ifdef HAVE_LIVE555 capturer = new RTSPVideoCapturer(url); #endif } else { std::vector<cricket::Device> devs; cricket::Device device; rtc::scoped_ptr<cricket::DeviceManagerInterface> dev_manager(cricket::DeviceManagerFactory::Create()); if (!dev_manager->Init()) { LOG(LS_ERROR) << "Can't create device manager"; } else if (!dev_manager->GetVideoCaptureDevice(url, &device)) { LOG(LS_ERROR) << "Can't enumerate get device name:" << url; } else { capturer = dev_manager->CreateVideoCapturer(device); } } return capturer; }
/// /// for device static cricket::VideoCapturer* OpenVideoCaptureDevice(std::string vid) { talk_base::scoped_ptr<cricket::DeviceManagerInterface> dev_manager( cricket::DeviceManagerFactory::Create()); if (!dev_manager->Init()) { LOGW("fail to init DeviceManager"); return NULL; } LOGD("device id="<<vid); cricket::VideoCapturer* capturer = NULL; #if 0 std::vector<cricket::Device> devices; if(!dev_manager->GetVideoCaptureDevices(&devices)) { LOGW("fail to GetVideoCaptureDevices"); return NULL; } std::vector<cricket::Device>::iterator iter = devices.begin(); for (; iter != devices.end(); iter++) { std::string key = (*iter).id; if (!vid.empty() && vid != key) { continue; } capturer = dev_manager->CreateVideoCapturer(*iter); if (capturer != NULL) break; } #else cricket::Device device; if(!dev_manager->GetVideoCaptureDevice(vid, &device)) { LOGW("fail to GetVideoCaptureDevice"); return NULL; } capturer = dev_manager->CreateVideoCapturer(device); #endif // TODO: choose the best format if (capturer) { const std::vector<cricket::VideoFormat>* formats = capturer->GetSupportedFormats(); LOGD("supported format size="<<formats->size()); for (int k=0; k < formats->size(); k++) { const cricket::VideoFormat & format = (*formats)[k]; LOGD("supported format, width="<<format.width<<", height="<<format.height); } } return capturer; }
cricket::VideoCapturer*PeerManager::OpenVideoCaptureDevice() { cricket::VideoCapturer* capturer = NULL; rtc::scoped_ptr<cricket::DeviceManagerInterface> dev_manager(cricket::DeviceManagerFactory::Create()); if (!dev_manager.get() || !dev_manager->Init()) { UMBO_WARN("Fail to create device manager"); return NULL; } std::vector<cricket::Device> devs; if (!dev_manager->GetVideoCaptureDevices(&devs)) { UMBO_WARN("Fail to enumerate video devices"); return NULL; } //#define FAKE_VIDEO #ifdef FAKE_VIDEO cricket::Device device; if (!dev_manager->GetVideoCaptureDevice("YuvFramesGenerator", &device)) { UMBO_WARN("Fail to get fake video devices"); return NULL; } capturer = dev_manager->CreateVideoCapturer(device); if (!capturer) { UMBO_WARN("Fail to create fake video device"); return NULL; } #else std::vector<cricket::Device>::iterator dev_it = devs.begin(); for (; dev_it != devs.end(); ++dev_it) { capturer = dev_manager->CreateVideoCapturer(*dev_it); if (capturer != NULL) break; } #endif if (!capturer) { UMBO_WARN("Fail to create video capture device"); return NULL; } return capturer; }
static cricket::VideoCapturer* OpenVideoCaptureDevice() { talk_base::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<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) break; } return capturer; }