Buffer using --time_estimation_buffer_seconds in multinode_timestamp_filter

When time is having trouble sorting, we can sometimes throw out old
times too fast. When we are doing this, we crank up
--time_estimation_buffer_seconds to compensate, so tie the buffer to
this quantity as well.

Change-Id: I05004b9dc956bc8f207ecc1564736d87a286be15
diff --git a/aos/events/logging/log_cat.cc b/aos/events/logging/log_cat.cc
index 1168e6f..f9da914 100644
--- a/aos/events/logging/log_cat.cc
+++ b/aos/events/logging/log_cat.cc
@@ -132,6 +132,10 @@
   const std::vector<aos::logger::LogFile> logfiles =
       aos::logger::SortParts(unsorted_logfiles);
 
+  for (auto &it : logfiles) {
+    VLOG(1) << it;
+  }
+
   aos::logger::LogReader reader(logfiles);
 
   aos::FastStringBuilder builder;
diff --git a/aos/events/logging/logger.cc b/aos/events/logging/logger.cc
index 7e822de..99c853e 100644
--- a/aos/events/logging/logger.cc
+++ b/aos/events/logging/logger.cc
@@ -1111,7 +1111,9 @@
   filters_ =
       std::make_unique<message_bridge::MultiNodeNoncausalOffsetEstimator>(
           event_loop_factory_, logged_configuration(),
-          FLAGS_skip_order_validation);
+          FLAGS_skip_order_validation,
+          chrono::duration_cast<chrono::nanoseconds>(
+              chrono::duration<double>(FLAGS_time_estimation_buffer_seconds)));
 
   for (const Node *node : configuration::GetNodes(configuration())) {
     const size_t node_index =