Move sequence_number_utils.h to rtc_base/

Bug: webrtc:8440
Change-Id: I36e70da6ce70b95db7d3fce8b0013bff5c795bfc
Reviewed-on: https://webrtc-review.googlesource.com/14860
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20429}
diff --git a/modules/remote_bitrate_estimator/BUILD.gn b/modules/remote_bitrate_estimator/BUILD.gn
index e394b81..adfb2e2 100644
--- a/modules/remote_bitrate_estimator/BUILD.gn
+++ b/modules/remote_bitrate_estimator/BUILD.gn
@@ -141,6 +141,7 @@
       "../../rtc_base:gtest_prod",
       "../../rtc_base:rtc_base",
       "../../rtc_base:rtc_base_approved",
+      "../../rtc_base:rtc_numerics",
       "../../system_wrappers",
       "../../test:test_support",
       "../../voice_engine",
diff --git a/modules/remote_bitrate_estimator/test/estimators/bbr.h b/modules/remote_bitrate_estimator/test/estimators/bbr.h
index a79a40b..966f1e2 100644
--- a/modules/remote_bitrate_estimator/test/estimators/bbr.h
+++ b/modules/remote_bitrate_estimator/test/estimators/bbr.h
@@ -19,7 +19,7 @@
 
 #include "api/optional.h"
 #include "modules/remote_bitrate_estimator/test/bwe.h"
-#include "modules/video_coding/sequence_number_util.h"
+#include "rtc_base/numerics/sequence_number_util.h"
 #include "rtc_base/random.h"
 
 namespace webrtc {
diff --git a/modules/video_coding/BUILD.gn b/modules/video_coding/BUILD.gn
index da3a593..48636e9 100644
--- a/modules/video_coding/BUILD.gn
+++ b/modules/video_coding/BUILD.gn
@@ -137,7 +137,6 @@
   sources = [
     "codecs/interface/video_codec_interface.h",
     "codecs/interface/video_error_codes.h",
-    "sequence_number_util.h",
     "utility/default_video_bitrate_allocator.cc",
     "utility/default_video_bitrate_allocator.h",
     "utility/frame_dropper.cc",
@@ -524,7 +523,6 @@
       "protection_bitrate_calculator_unittest.cc",
       "receiver_unittest.cc",
       "rtp_frame_reference_finder_unittest.cc",
-      "sequence_number_util_unittest.cc",
       "session_info_unittest.cc",
       "test/stream_generator.cc",
       "test/stream_generator.h",
@@ -564,6 +562,7 @@
       "../../common_video:common_video",
       "../../rtc_base:rtc_base",
       "../../rtc_base:rtc_base_approved",
+      "../../rtc_base:rtc_numerics",
       "../../rtc_base:rtc_task_queue",
       "../../system_wrappers:metrics_default",
       "../../system_wrappers:system_wrappers",
diff --git a/modules/video_coding/frame_buffer2.h b/modules/video_coding/frame_buffer2.h
index e502666..f535442 100644
--- a/modules/video_coding/frame_buffer2.h
+++ b/modules/video_coding/frame_buffer2.h
@@ -19,10 +19,10 @@
 #include "modules/video_coding/frame_object.h"
 #include "modules/video_coding/include/video_coding_defines.h"
 #include "modules/video_coding/inter_frame_delay.h"
-#include "modules/video_coding/sequence_number_util.h"
 #include "rtc_base/constructormagic.h"
 #include "rtc_base/criticalsection.h"
 #include "rtc_base/event.h"
+#include "rtc_base/numerics/sequence_number_util.h"
 #include "rtc_base/thread_annotations.h"
 
 namespace webrtc {
diff --git a/modules/video_coding/frame_buffer2_unittest.cc b/modules/video_coding/frame_buffer2_unittest.cc
index 7d79218..9cdd81b 100644
--- a/modules/video_coding/frame_buffer2_unittest.cc
+++ b/modules/video_coding/frame_buffer2_unittest.cc
@@ -17,8 +17,8 @@
 
 #include "modules/video_coding/frame_object.h"
 #include "modules/video_coding/jitter_estimator.h"
-#include "modules/video_coding/sequence_number_util.h"
 #include "modules/video_coding/timing.h"
+#include "rtc_base/numerics/sequence_number_util.h"
 #include "rtc_base/platform_thread.h"
 #include "rtc_base/random.h"
 #include "system_wrappers/include/clock.h"
diff --git a/modules/video_coding/histogram.cc b/modules/video_coding/histogram.cc
index d4c46da..e87b0c0 100644
--- a/modules/video_coding/histogram.cc
+++ b/modules/video_coding/histogram.cc
@@ -12,7 +12,7 @@
 
 #include <algorithm>
 
-#include "modules/video_coding/sequence_number_util.h"
+#include "rtc_base/numerics/sequence_number_util.h"
 
 namespace webrtc {
 namespace video_coding {
diff --git a/modules/video_coding/nack_module.h b/modules/video_coding/nack_module.h
index 8eda719..0b91f0b 100644
--- a/modules/video_coding/nack_module.h
+++ b/modules/video_coding/nack_module.h
@@ -19,8 +19,8 @@
 #include "modules/video_coding/histogram.h"
 #include "modules/video_coding/include/video_coding_defines.h"
 #include "modules/video_coding/packet.h"
-#include "modules/video_coding/sequence_number_util.h"
 #include "rtc_base/criticalsection.h"
+#include "rtc_base/numerics/sequence_number_util.h"
 #include "rtc_base/thread_annotations.h"
 #include "system_wrappers/include/clock.h"
 
diff --git a/modules/video_coding/packet_buffer.h b/modules/video_coding/packet_buffer.h
index 6604c36..ca499bf 100644
--- a/modules/video_coding/packet_buffer.h
+++ b/modules/video_coding/packet_buffer.h
@@ -18,8 +18,8 @@
 #include "modules/include/module_common_types.h"
 #include "modules/video_coding/packet.h"
 #include "modules/video_coding/rtp_frame_reference_finder.h"
-#include "modules/video_coding/sequence_number_util.h"
 #include "rtc_base/criticalsection.h"
+#include "rtc_base/numerics/sequence_number_util.h"
 #include "rtc_base/scoped_ref_ptr.h"
 #include "rtc_base/thread_annotations.h"
 
diff --git a/modules/video_coding/rtp_frame_reference_finder.h b/modules/video_coding/rtp_frame_reference_finder.h
index 2addc59..33716f1 100644
--- a/modules/video_coding/rtp_frame_reference_finder.h
+++ b/modules/video_coding/rtp_frame_reference_finder.h
@@ -19,8 +19,8 @@
 #include <utility>
 
 #include "modules/include/module_common_types.h"
-#include "modules/video_coding/sequence_number_util.h"
 #include "rtc_base/criticalsection.h"
+#include "rtc_base/numerics/sequence_number_util.h"
 #include "rtc_base/thread_annotations.h"
 
 namespace webrtc {
diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn
index 8490a60..775fd14 100644
--- a/rtc_base/BUILD.gn
+++ b/rtc_base/BUILD.gn
@@ -403,9 +403,11 @@
     "numerics/exp_filter.cc",
     "numerics/exp_filter.h",
     "numerics/percentile_filter.h",
+    "numerics/sequence_number_util.h",
   ]
   deps = [
     ":rtc_base_approved",
+    "../api:optional",
   ]
 }
 
@@ -996,6 +998,7 @@
     sources = [
       "numerics/exp_filter_unittest.cc",
       "numerics/percentile_filter_unittest.cc",
+      "numerics/sequence_number_util_unittest.cc",
     ]
     deps = [
       ":rtc_base_approved",
diff --git a/modules/video_coding/sequence_number_util.h b/rtc_base/numerics/sequence_number_util.h
similarity index 95%
rename from modules/video_coding/sequence_number_util.h
rename to rtc_base/numerics/sequence_number_util.h
index b710b8f..9dbd812 100644
--- a/modules/video_coding/sequence_number_util.h
+++ b/rtc_base/numerics/sequence_number_util.h
@@ -8,8 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#ifndef MODULES_VIDEO_CODING_SEQUENCE_NUMBER_UTIL_H_
-#define MODULES_VIDEO_CODING_SEQUENCE_NUMBER_UTIL_H_
+#ifndef RTC_BASE_NUMERICS_SEQUENCE_NUMBER_UTIL_H_
+#define RTC_BASE_NUMERICS_SEQUENCE_NUMBER_UTIL_H_
 
 #include <limits>
 #include <type_traits>
@@ -125,4 +125,4 @@
 
 }  // namespace webrtc
 
-#endif  // MODULES_VIDEO_CODING_SEQUENCE_NUMBER_UTIL_H_
+#endif  // RTC_BASE_NUMERICS_SEQUENCE_NUMBER_UTIL_H_
diff --git a/modules/video_coding/sequence_number_util_unittest.cc b/rtc_base/numerics/sequence_number_util_unittest.cc
similarity index 98%
rename from modules/video_coding/sequence_number_util_unittest.cc
rename to rtc_base/numerics/sequence_number_util_unittest.cc
index ad68820..beb2b52 100644
--- a/modules/video_coding/sequence_number_util_unittest.cc
+++ b/rtc_base/numerics/sequence_number_util_unittest.cc
@@ -10,7 +10,7 @@
 
 #include <set>
 
-#include "modules/video_coding/sequence_number_util.h"
+#include "rtc_base/numerics/sequence_number_util.h"
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/video/BUILD.gn b/video/BUILD.gn
index 0833e52..8799a84 100644
--- a/video/BUILD.gn
+++ b/video/BUILD.gn
@@ -296,6 +296,7 @@
       "../modules/video_coding:webrtc_vp9",
       "../rtc_base:rtc_base_approved",
       "../rtc_base:rtc_base_tests_utils",
+      "../rtc_base:rtc_numerics",
       "../system_wrappers",
       "../system_wrappers:field_trial_default",
       "../system_wrappers:metrics_api",
diff --git a/video/picture_id_tests.cc b/video/picture_id_tests.cc
index 5896d55..b23e073 100644
--- a/video/picture_id_tests.cc
+++ b/video/picture_id_tests.cc
@@ -10,7 +10,7 @@
 #include "media/engine/internalencoderfactory.h"
 #include "media/engine/simulcast_encoder_adapter.h"
 #include "modules/rtp_rtcp/source/rtp_format.h"
-#include "modules/video_coding/sequence_number_util.h"
+#include "rtc_base/numerics/sequence_number_util.h"
 #include "test/call_test.h"
 #include "test/field_trial.h"
 
diff --git a/video/rtp_video_stream_receiver.h b/video/rtp_video_stream_receiver.h
index 90e8200..14553e5 100644
--- a/video/rtp_video_stream_receiver.h
+++ b/video/rtp_video_stream_receiver.h
@@ -22,17 +22,17 @@
 #include "modules/include/module_common_types.h"
 #include "modules/rtp_rtcp/include/receive_statistics.h"
 #include "modules/rtp_rtcp/include/remote_ntp_time_estimator.h"
-#include "modules/rtp_rtcp/include/rtp_payload_registry.h"
 #include "modules/rtp_rtcp/include/rtp_header_extension_map.h"
+#include "modules/rtp_rtcp/include/rtp_payload_registry.h"
 #include "modules/rtp_rtcp/include/rtp_rtcp.h"
 #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
 #include "modules/video_coding/h264_sps_pps_tracker.h"
 #include "modules/video_coding/include/video_coding_defines.h"
 #include "modules/video_coding/packet_buffer.h"
 #include "modules/video_coding/rtp_frame_reference_finder.h"
-#include "modules/video_coding/sequence_number_util.h"
 #include "rtc_base/constructormagic.h"
 #include "rtc_base/criticalsection.h"
+#include "rtc_base/numerics/sequence_number_util.h"
 #include "rtc_base/sequenced_task_checker.h"
 #include "typedefs.h"  // NOLINT(build/include)