diff options
author | asapersson@webrtc.org <asapersson@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> | 2014-05-27 07:43:15 +0000 |
---|---|---|
committer | asapersson@webrtc.org <asapersson@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> | 2014-05-27 07:43:15 +0000 |
commit | 4e95436d6302be2854cd5b3e7baa3c4f563e4901 (patch) | |
tree | 61574bad729d352a6ca1396f05115b06e039eca2 /video_engine/vie_base_impl.cc | |
parent | e066d34bb747f730084f1726408ca8348ff25da7 (diff) | |
download | webrtc-4e95436d6302be2854cd5b3e7baa3c4f563e4901.tar.gz |
Added api for getting cpu measures using a struct.
R=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/12479004
git-svn-id: http://webrtc.googlecode.com/svn/trunk/webrtc@6249 4adac7df-926f-26a2-2b94-8c16560cd09d
Diffstat (limited to 'video_engine/vie_base_impl.cc')
-rw-r--r-- | video_engine/vie_base_impl.cc | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/video_engine/vie_base_impl.cc b/video_engine/vie_base_impl.cc index f4b87e8f..29fbe7fb 100644 --- a/video_engine/vie_base_impl.cc +++ b/video_engine/vie_base_impl.cc @@ -140,10 +140,35 @@ int ViEBaseImpl::CpuOveruseMeasures(int video_channel, if (provider) { ViECapturer* capturer = is.Capture(provider->Id()); if (capturer) { - capturer->CpuOveruseMeasures(capture_jitter_ms, - avg_encode_time_ms, - encode_usage_percent, - capture_queue_delay_ms_per_s); + CpuOveruseMetrics metrics; + capturer->GetCpuOveruseMetrics(&metrics); + *capture_jitter_ms = metrics.capture_jitter_ms; + *avg_encode_time_ms = metrics.avg_encode_time_ms; + *encode_usage_percent = metrics.encode_usage_percent; + *capture_queue_delay_ms_per_s = metrics.capture_queue_delay_ms_per_s; + return 0; + } + } + return -1; +} + +int ViEBaseImpl::GetCpuOveruseMetrics(int video_channel, + CpuOveruseMetrics* metrics) { + ViEChannelManagerScoped cs(*(shared_data_.channel_manager())); + ViEChannel* vie_channel = cs.Channel(video_channel); + if (!vie_channel) { + shared_data_.SetLastError(kViEBaseInvalidChannelId); + return -1; + } + ViEEncoder* vie_encoder = cs.Encoder(video_channel); + assert(vie_encoder); + + ViEInputManagerScoped is(*(shared_data_.input_manager())); + ViEFrameProviderBase* provider = is.FrameProvider(vie_encoder); + if (provider) { + ViECapturer* capturer = is.Capture(provider->Id()); + if (capturer) { + capturer->GetCpuOveruseMetrics(metrics); return 0; } } |