neteq_rtpplay: Add one more RTP header extension and fix some stats

The extension ID for transport sequence number is added to the list of
known RTP header extensions. Also, the minimum and maximum waiting
time for packets is now aggregated as minimum and maximum,
respectively, not as averages.

BUG=none

Review-Url: https://codereview.webrtc.org/3004783003
Cr-Original-Commit-Position: refs/heads/master@{#19593}
Cr-Mirrored-From: https://chromium.googlesource.com/external/webrtc
Cr-Mirrored-Commit: 9657172a81f6caf150b431c2b756a0a2a69f850c
diff --git a/modules/audio_coding/neteq/tools/neteq_rtpplay.cc b/modules/audio_coding/neteq/tools/neteq_rtpplay.cc
index b70a7f6..c11394b 100644
--- a/modules/audio_coding/neteq/tools/neteq_rtpplay.cc
+++ b/modules/audio_coding/neteq/tools/neteq_rtpplay.cc
@@ -161,6 +161,10 @@
 DEFINE_int32(abs_send_time, 3, "Extension ID for absolute sender time");
 const bool abs_send_time_dummy =
     google::RegisterFlagValidator(&FLAGS_abs_send_time, &ValidateExtensionId);
+DEFINE_int32(transport_seq_no, 5, "Extension ID for transport sequence number");
+const bool transport_seq_no_dummy =
+    google::RegisterFlagValidator(&FLAGS_transport_seq_no,
+                                  &ValidateExtensionId);
 DEFINE_bool(matlabplot,
             false,
             "Generates a matlab script for plotting the delay profile");
@@ -420,8 +424,12 @@
           a.added_zero_samples += b.added_zero_samples;
           a.mean_waiting_time_ms += b.mean_waiting_time_ms;
           a.median_waiting_time_ms += b.median_waiting_time_ms;
-          a.min_waiting_time_ms += b.min_waiting_time_ms;
-          a.max_waiting_time_ms += b.max_waiting_time_ms;
+          a.min_waiting_time_ms =
+              std::min(a.min_waiting_time_ms,
+                       static_cast<double>(b.min_waiting_time_ms));
+          a.max_waiting_time_ms =
+              std::max(a.max_waiting_time_ms,
+                       static_cast<double>(b.max_waiting_time_ms));
           return a;
         });
 
@@ -439,8 +447,6 @@
     sum_stats.added_zero_samples /= stats_.size();
     sum_stats.mean_waiting_time_ms /= stats_.size();
     sum_stats.median_waiting_time_ms /= stats_.size();
-    sum_stats.min_waiting_time_ms /= stats_.size();
-    sum_stats.max_waiting_time_ms /= stats_.size();
 
     return sum_stats;
   }
@@ -477,7 +483,8 @@
   // Gather RTP header extensions in a map.
   NetEqPacketSourceInput::RtpHeaderExtensionMap rtp_ext_map = {
       {FLAGS_audio_level, kRtpExtensionAudioLevel},
-      {FLAGS_abs_send_time, kRtpExtensionAbsoluteSendTime}};
+      {FLAGS_abs_send_time, kRtpExtensionAbsoluteSendTime},
+      {FLAGS_transport_seq_no, kRtpExtensionTransportSequenceNumber}};
 
   const std::string input_file_name = argv[1];
   std::unique_ptr<NetEqInput> input;