summaryrefslogtreecommitdiff
path: root/video_engine/vie_base_impl.cc
diff options
context:
space:
mode:
authorasapersson@webrtc.org <asapersson@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d>2014-05-27 07:43:15 +0000
committerasapersson@webrtc.org <asapersson@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d>2014-05-27 07:43:15 +0000
commit4e95436d6302be2854cd5b3e7baa3c4f563e4901 (patch)
tree61574bad729d352a6ca1396f05115b06e039eca2 /video_engine/vie_base_impl.cc
parente066d34bb747f730084f1726408ca8348ff25da7 (diff)
downloadwebrtc-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.cc33
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;
}
}