Refactor + enable GN check on video_coding_utility

To avoid the cyclic dependency

BUG=webrtc:6828
NOTRY=True
TBR=magjed@webrtc.org

Review-Url: https://codereview.webrtc.org/2717113002
Cr-Commit-Position: refs/heads/master@{#17116}
diff --git a/webrtc/modules/video_coding/BUILD.gn b/webrtc/modules/video_coding/BUILD.gn
index effe459..1ef5c5d 100644
--- a/webrtc/modules/video_coding/BUILD.gn
+++ b/webrtc/modules/video_coding/BUILD.gn
@@ -59,6 +59,8 @@
     "packet_buffer.h",
     "protection_bitrate_calculator.cc",
     "protection_bitrate_calculator.h",
+    "qp_parser.cc",
+    "qp_parser.h",
     "receiver.cc",
     "receiver.h",
     "rtp_frame_reference_finder.cc",
@@ -105,10 +107,6 @@
 }
 
 rtc_static_library("video_coding_utility") {
-  # TODO(ehmaldonado): Remove (bugs.webrtc.org/6828)
-  # Errors on cyclic dependency with :video_coding if enabled.
-  check_includes = false
-
   sources = [
     "utility/default_video_bitrate_allocator.cc",
     "utility/default_video_bitrate_allocator.h",
@@ -118,12 +116,8 @@
     "utility/ivf_file_writer.h",
     "utility/moving_average.cc",
     "utility/moving_average.h",
-    "utility/qp_parser.cc",
-    "utility/qp_parser.h",
     "utility/quality_scaler.cc",
     "utility/quality_scaler.h",
-    "utility/simulcast_rate_allocator.cc",
-    "utility/simulcast_rate_allocator.h",
     "utility/vp8_header_parser.cc",
     "utility/vp8_header_parser.h",
   ]
@@ -137,7 +131,9 @@
     "../..:webrtc_common",
     "../../base:rtc_base_approved",
     "../../base:rtc_numerics",
+    "../../base:rtc_task_queue",
     "../../common_video",
+    "../../modules/rtp_rtcp:rtp_rtcp",
     "../../system_wrappers",
   ]
 }
@@ -213,6 +209,8 @@
     "codecs/vp8/screenshare_layers.h",
     "codecs/vp8/simulcast_encoder_adapter.cc",
     "codecs/vp8/simulcast_encoder_adapter.h",
+    "codecs/vp8/simulcast_rate_allocator.cc",
+    "codecs/vp8/simulcast_rate_allocator.h",
     "codecs/vp8/temporal_layers.h",
     "codecs/vp8/vp8_impl.cc",
     "codecs/vp8/vp8_impl.h",
@@ -325,6 +323,7 @@
     deps = [
       ":video_coding",
       ":video_coding_utility",
+      ":webrtc_vp8",
       "../..:webrtc_common",
       "../../base:rtc_base_approved",
       "../../common_video:common_video",
diff --git a/webrtc/modules/video_coding/codecs/test/videoprocessor.cc b/webrtc/modules/video_coding/codecs/test/videoprocessor.cc
index de373dd..4da51ea 100644
--- a/webrtc/modules/video_coding/codecs/test/videoprocessor.cc
+++ b/webrtc/modules/video_coding/codecs/test/videoprocessor.cc
@@ -22,8 +22,8 @@
 #include "webrtc/base/timeutils.h"
 #include "webrtc/common_types.h"
 #include "webrtc/modules/video_coding/include/video_codec_initializer.h"
+#include "webrtc/modules/video_coding/codecs/vp8/simulcast_rate_allocator.h"
 #include "webrtc/modules/video_coding/utility/default_video_bitrate_allocator.h"
-#include "webrtc/modules/video_coding/utility/simulcast_rate_allocator.h"
 #include "webrtc/system_wrappers/include/cpu_info.h"
 
 namespace webrtc {
diff --git a/webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter.cc b/webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter.cc
index a4d1067..3aaa9c7 100644
--- a/webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter.cc
+++ b/webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter.cc
@@ -18,7 +18,7 @@
 #include "webrtc/api/video/i420_buffer.h"
 #include "webrtc/base/checks.h"
 #include "webrtc/modules/video_coding/codecs/vp8/screenshare_layers.h"
-#include "webrtc/modules/video_coding/utility/simulcast_rate_allocator.h"
+#include "webrtc/modules/video_coding/codecs/vp8/simulcast_rate_allocator.h"
 #include "webrtc/system_wrappers/include/clock.h"
 
 namespace {
diff --git a/webrtc/modules/video_coding/utility/simulcast_rate_allocator.cc b/webrtc/modules/video_coding/codecs/vp8/simulcast_rate_allocator.cc
similarity index 98%
rename from webrtc/modules/video_coding/utility/simulcast_rate_allocator.cc
rename to webrtc/modules/video_coding/codecs/vp8/simulcast_rate_allocator.cc
index 0a81550..af073cd 100644
--- a/webrtc/modules/video_coding/utility/simulcast_rate_allocator.cc
+++ b/webrtc/modules/video_coding/codecs/vp8/simulcast_rate_allocator.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/modules/video_coding/utility/simulcast_rate_allocator.h"
+#include "webrtc/modules/video_coding/codecs/vp8/simulcast_rate_allocator.h"
 
 #include <algorithm>
 #include <memory>
diff --git a/webrtc/modules/video_coding/utility/simulcast_rate_allocator.h b/webrtc/modules/video_coding/codecs/vp8/simulcast_rate_allocator.h
similarity index 87%
rename from webrtc/modules/video_coding/utility/simulcast_rate_allocator.h
rename to webrtc/modules/video_coding/codecs/vp8/simulcast_rate_allocator.h
index 7f54f5c..8e7c792 100644
--- a/webrtc/modules/video_coding/utility/simulcast_rate_allocator.h
+++ b/webrtc/modules/video_coding/codecs/vp8/simulcast_rate_allocator.h
@@ -8,8 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#ifndef WEBRTC_MODULES_VIDEO_CODING_UTILITY_SIMULCAST_RATE_ALLOCATOR_H_
-#define WEBRTC_MODULES_VIDEO_CODING_UTILITY_SIMULCAST_RATE_ALLOCATOR_H_
+#ifndef WEBRTC_MODULES_VIDEO_CODING_CODECS_VP8_SIMULCAST_RATE_ALLOCATOR_H_
+#define WEBRTC_MODULES_VIDEO_CODING_CODECS_VP8_SIMULCAST_RATE_ALLOCATOR_H_
 
 #include <stdint.h>
 
@@ -48,4 +48,4 @@
 
 }  // namespace webrtc
 
-#endif  // WEBRTC_MODULES_VIDEO_CODING_UTILITY_SIMULCAST_RATE_ALLOCATOR_H_
+#endif  // WEBRTC_MODULES_VIDEO_CODING_CODECS_VP8_SIMULCAST_RATE_ALLOCATOR_H_
diff --git a/webrtc/modules/video_coding/codecs/vp8/simulcast_unittest.h b/webrtc/modules/video_coding/codecs/vp8/simulcast_unittest.h
index fb59646..d8e247e 100644
--- a/webrtc/modules/video_coding/codecs/vp8/simulcast_unittest.h
+++ b/webrtc/modules/video_coding/codecs/vp8/simulcast_unittest.h
@@ -21,9 +21,9 @@
 #include "webrtc/base/checks.h"
 #include "webrtc/common_video/libyuv/include/webrtc_libyuv.h"
 #include "webrtc/modules/video_coding/codecs/vp8/include/vp8.h"
+#include "webrtc/modules/video_coding/codecs/vp8/simulcast_rate_allocator.h"
 #include "webrtc/modules/video_coding/codecs/vp8/temporal_layers.h"
 #include "webrtc/modules/video_coding/include/mock/mock_video_codec_interface.h"
-#include "webrtc/modules/video_coding/utility/simulcast_rate_allocator.h"
 #include "webrtc/test/gtest.h"
 #include "webrtc/video_frame.h"
 
diff --git a/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc b/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc
index bef4e63..72d5a76 100644
--- a/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc
+++ b/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc
@@ -28,8 +28,8 @@
 #include "webrtc/modules/video_coding/include/video_codec_interface.h"
 #include "webrtc/modules/video_coding/codecs/vp8/include/vp8_common_types.h"
 #include "webrtc/modules/video_coding/codecs/vp8/screenshare_layers.h"
+#include "webrtc/modules/video_coding/codecs/vp8/simulcast_rate_allocator.h"
 #include "webrtc/modules/video_coding/codecs/vp8/temporal_layers.h"
-#include "webrtc/modules/video_coding/utility/simulcast_rate_allocator.h"
 #include "webrtc/system_wrappers/include/clock.h"
 #include "webrtc/system_wrappers/include/field_trial.h"
 #include "webrtc/system_wrappers/include/metrics.h"
diff --git a/webrtc/modules/video_coding/utility/qp_parser.cc b/webrtc/modules/video_coding/qp_parser.cc
similarity index 93%
rename from webrtc/modules/video_coding/utility/qp_parser.cc
rename to webrtc/modules/video_coding/qp_parser.cc
index 0916cb0..976cfff 100644
--- a/webrtc/modules/video_coding/utility/qp_parser.cc
+++ b/webrtc/modules/video_coding/qp_parser.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/modules/video_coding/utility/qp_parser.h"
+#include "webrtc/modules/video_coding/qp_parser.h"
 
 #include "webrtc/common_types.h"
 #include "webrtc/modules/video_coding/utility/vp8_header_parser.h"
diff --git a/webrtc/modules/video_coding/utility/qp_parser.h b/webrtc/modules/video_coding/qp_parser.h
similarity index 80%
rename from webrtc/modules/video_coding/utility/qp_parser.h
rename to webrtc/modules/video_coding/qp_parser.h
index 0b644ef..c41bf57 100644
--- a/webrtc/modules/video_coding/utility/qp_parser.h
+++ b/webrtc/modules/video_coding/qp_parser.h
@@ -8,8 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#ifndef WEBRTC_MODULES_VIDEO_CODING_UTILITY_QP_PARSER_H_
-#define WEBRTC_MODULES_VIDEO_CODING_UTILITY_QP_PARSER_H_
+#ifndef WEBRTC_MODULES_VIDEO_CODING_QP_PARSER_H_
+#define WEBRTC_MODULES_VIDEO_CODING_QP_PARSER_H_
 
 #include "webrtc/modules/video_coding/encoded_frame.h"
 
@@ -27,4 +27,4 @@
 
 }  // namespace webrtc
 
-#endif  // WEBRTC_MODULES_VIDEO_CODING_UTILITY_QP_PARSER_H_
+#endif  // WEBRTC_MODULES_VIDEO_CODING_QP_PARSER_H_
diff --git a/webrtc/modules/video_coding/utility/simulcast_rate_allocator_unittest.cc b/webrtc/modules/video_coding/utility/simulcast_rate_allocator_unittest.cc
index b635ec2..a0dd7c8 100644
--- a/webrtc/modules/video_coding/utility/simulcast_rate_allocator_unittest.cc
+++ b/webrtc/modules/video_coding/utility/simulcast_rate_allocator_unittest.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/modules/video_coding/utility/simulcast_rate_allocator.h"
+#include "webrtc/modules/video_coding/codecs/vp8/simulcast_rate_allocator.h"
 
 #include <limits>
 #include <memory>
diff --git a/webrtc/modules/video_coding/video_codec_initializer.cc b/webrtc/modules/video_coding/video_codec_initializer.cc
index 39ce8f2..6e0b806 100644
--- a/webrtc/modules/video_coding/video_codec_initializer.cc
+++ b/webrtc/modules/video_coding/video_codec_initializer.cc
@@ -15,8 +15,8 @@
 #include "webrtc/common_video/include/video_bitrate_allocator.h"
 #include "webrtc/common_types.h"
 #include "webrtc/modules/video_coding/codecs/vp8/screenshare_layers.h"
+#include "webrtc/modules/video_coding/codecs/vp8/simulcast_rate_allocator.h"
 #include "webrtc/modules/video_coding/codecs/vp8/temporal_layers.h"
-#include "webrtc/modules/video_coding/utility/simulcast_rate_allocator.h"
 #include "webrtc/modules/video_coding/utility/default_video_bitrate_allocator.h"
 #include "webrtc/system_wrappers/include/clock.h"
 
diff --git a/webrtc/modules/video_coding/video_coding_impl.h b/webrtc/modules/video_coding/video_coding_impl.h
index e4fff1e..a45105a 100644
--- a/webrtc/modules/video_coding/video_coding_impl.h
+++ b/webrtc/modules/video_coding/video_coding_impl.h
@@ -27,9 +27,9 @@
 #include "webrtc/modules/video_coding/generic_encoder.h"
 #include "webrtc/modules/video_coding/jitter_buffer.h"
 #include "webrtc/modules/video_coding/media_optimization.h"
+#include "webrtc/modules/video_coding/qp_parser.h"
 #include "webrtc/modules/video_coding/receiver.h"
 #include "webrtc/modules/video_coding/timing.h"
-#include "webrtc/modules/video_coding/utility/qp_parser.h"
 #include "webrtc/system_wrappers/include/clock.h"
 
 namespace webrtc {
diff --git a/webrtc/modules/video_coding/video_sender_unittest.cc b/webrtc/modules/video_coding/video_sender_unittest.cc
index 81eca3b..d4059f6 100644
--- a/webrtc/modules/video_coding/video_sender_unittest.cc
+++ b/webrtc/modules/video_coding/video_sender_unittest.cc
@@ -14,6 +14,7 @@
 #include "webrtc/api/video/i420_buffer.h"
 #include "webrtc/modules/video_coding/codecs/vp8/include/vp8.h"
 #include "webrtc/modules/video_coding/codecs/vp8/include/vp8_common_types.h"
+#include "webrtc/modules/video_coding/codecs/vp8/simulcast_rate_allocator.h"
 #include "webrtc/modules/video_coding/codecs/vp8/temporal_layers.h"
 #include "webrtc/modules/video_coding/include/mock/mock_vcm_callbacks.h"
 #include "webrtc/modules/video_coding/include/mock/mock_video_codec_interface.h"
@@ -21,7 +22,6 @@
 #include "webrtc/modules/video_coding/test/test_util.h"
 #include "webrtc/modules/video_coding/video_coding_impl.h"
 #include "webrtc/modules/video_coding/utility/default_video_bitrate_allocator.h"
-#include "webrtc/modules/video_coding/utility/simulcast_rate_allocator.h"
 #include "webrtc/system_wrappers/include/clock.h"
 #include "webrtc/test/frame_generator.h"
 #include "webrtc/test/gtest.h"