From bf76ae2bdfc0b4e8e875f6cce1c85d4d66357beb Mon Sep 17 00:00:00 2001 From: "mflodman@webrtc.org" Date: Tue, 23 Jul 2013 11:35:00 +0000 Subject: Hooking up first simple CPU adaptation version. BUG= R=pbos@webrtc.org, stefan@webrtc.org Review URL: https://webrtc-codereview.appspot.com/1767004 git-svn-id: http://webrtc.googlecode.com/svn/trunk/webrtc@4384 4adac7df-926f-26a2-2b94-8c16560cd09d --- video_engine/vie_capture_impl.cc | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'video_engine/vie_capture_impl.cc') diff --git a/video_engine/vie_capture_impl.cc b/video_engine/vie_capture_impl.cc index 28b4d19e..85353c30 100644 --- a/video_engine/vie_capture_impl.cc +++ b/video_engine/vie_capture_impl.cc @@ -10,6 +10,8 @@ #include "webrtc/video_engine/vie_capture_impl.h" +#include + #include "webrtc/system_wrappers/interface/trace.h" #include "webrtc/video_engine/include/vie_errors.h" #include "webrtc/video_engine/vie_capturer.h" @@ -23,6 +25,8 @@ namespace webrtc { +class CpuOveruseObserver; + ViECapture* ViECapture::GetInterface(VideoEngine* video_engine) { #ifdef WEBRTC_VIDEO_ENGINE_CAPTURE_API if (!video_engine) { @@ -201,6 +205,11 @@ int ViECaptureImpl::ConnectCaptureDevice(const int capture_id, shared_data_->SetLastError(kViECaptureDeviceUnknownError); return -1; } + std::map::iterator it = + shared_data_->overuse_observers()->find(video_channel); + if (it != shared_data_->overuse_observers()->end()) { + vie_capture->RegisterCpuOveruseObserver(it->second); + } return 0; } @@ -241,6 +250,9 @@ int ViECaptureImpl::DisconnectCaptureDevice(const int video_channel) { return -1; } + ViECapturer* vie_capture = is.Capture(frame_provider->Id()); + assert(vie_capture); + vie_capture->RegisterCpuOveruseObserver(NULL); if (frame_provider->DeregisterFrameCallback(vie_encoder) != 0) { shared_data_->SetLastError(kViECaptureDeviceUnknownError); return -1; -- cgit v1.2.3