Expose VideoCodingModule's decoder stats up the stack from VCMTiming to chrome://webrtc-internals.

R=juberti@google.com, mikhal@webrtc.org, stefan@webrtc.org, wu@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2429004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5027 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/webrtc/modules/video_coding/main/source/timing.cc b/webrtc/modules/video_coding/main/source/timing.cc
index 97fdac9..98a69e9 100644
--- a/webrtc/modules/video_coding/main/source/timing.cc
+++ b/webrtc/modules/video_coding/main/source/timing.cc
@@ -36,6 +36,7 @@
       min_playout_delay_ms_(0),
       jitter_delay_ms_(0),
       current_delay_ms_(0),
+      last_decode_ms_(0),
       prev_frame_timestamp_(0) {
   if (master_timing == NULL) {
     master_ = true;
@@ -158,7 +159,7 @@
         timing_id_), "Codec timer error: %d", time_diff_ms);
     assert(false);
   }
-
+  last_decode_ms_ = time_diff_ms;
   if (master_) {
     WEBRTC_TRACE(webrtc::kTraceDebug, webrtc::kTraceVideoCoding, VCMId(vcm_id_,
         timing_id_),
@@ -262,4 +263,21 @@
       jitter_delay_ms_ + MaxDecodeTimeMs() + render_delay_ms_);
 }
 
+void VCMTiming::GetTimings(int* decode_ms,
+                           int* max_decode_ms,
+                           int* current_delay_ms,
+                           int* target_delay_ms,
+                           int* jitter_buffer_ms,
+                           int* min_playout_delay_ms,
+                           int* render_delay_ms) const {
+  CriticalSectionScoped cs(crit_sect_);
+  *decode_ms = last_decode_ms_;
+  *max_decode_ms = MaxDecodeTimeMs();
+  *current_delay_ms = current_delay_ms_;
+  *target_delay_ms = TargetDelayInternal();
+  *jitter_buffer_ms = jitter_delay_ms_;
+  *min_playout_delay_ms = min_playout_delay_ms_;
+  *render_delay_ms = render_delay_ms_;
+}
+
 }  // namespace webrtc