Add stats for frequency offset when converting RTP timestamp to NTP time.

- Add histogram: "WebRTC.Video.RtpToNtpFreqOffsetInKhz"

  The absolute value of the difference between the estimated frequency during RTP timestamp to NTP time conversion and the actual value (i.e. 90 kHz) is measured per received video frame. The max offset during 40 second intervals is stored. The average of these stored offsets per received video stream is recorded when a stream is removed.

Updated rtp_to_ntp.cc:
- Add validation for only inserting newer RTCP sender reports to the rtcp list.

- Move calculation of frequency/offset (from RTP/NTP timestamp pairs) to UpdateRtcpList. Calculated when a new RTCP SR in inserted (and not in RtpToNtpMs per packet).

BUG=webrtc:6579

Review-Url: https://codereview.webrtc.org/2385763002
Cr-Commit-Position: refs/heads/master@{#14891}
diff --git a/webrtc/video/rtp_streams_synchronizer.cc b/webrtc/video/rtp_streams_synchronizer.cc
index 885dad3..3bc208f 100644
--- a/webrtc/video/rtp_streams_synchronizer.cc
+++ b/webrtc/video/rtp_streams_synchronizer.cc
@@ -40,8 +40,8 @@
   }
 
   bool new_rtcp_sr = false;
-  if (!UpdateRtcpList(
-      ntp_secs, ntp_frac, rtp_timestamp, &stream->rtcp, &new_rtcp_sr)) {
+  if (!UpdateRtcpList(ntp_secs, ntp_frac, rtp_timestamp, &stream->rtcp,
+                      &new_rtcp_sr)) {
     return -1;
   }
 
@@ -168,7 +168,9 @@
 }
 
 bool RtpStreamsSynchronizer::GetStreamSyncOffsetInMs(
-    const VideoFrame& frame, int64_t* stream_offset_ms) const {
+    const VideoFrame& frame,
+    int64_t* stream_offset_ms,
+    double* estimated_freq_khz) const {
   rtc::CritScope lock(&crit_);
   if (voe_channel_id_ == -1)
     return false;
@@ -197,6 +199,7 @@
     latest_video_ntp += time_to_render_ms;
 
   *stream_offset_ms = latest_audio_ntp - latest_video_ntp;
+  *estimated_freq_khz = video_measurement_.rtcp.params.frequency_khz;
   return true;
 }