Example #1
0
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;
}
Example #3
0
///
/// 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;
}
Example #5
0
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;
}