Remove VCMEncodedFrameCallback and VCMGenericEncoder

This CL takes a few parts of VCMEncodedFrameCallback and
VCMGenericEncoder and folds some aspect directly into
VideoStreamEncoder. Parts related to timing frames are extracted
into a new class FrameEncodeTimer that explicitly handles that.

Bug: webrtc:10164
Change-Id: I9b26f734473b659e4093c84c09fb0ed441290e40
Reviewed-on: https://webrtc-review.googlesource.com/c/124122
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26862}
diff --git a/video/BUILD.gn b/video/BUILD.gn
index cfe20c4..8b0caed 100644
--- a/video/BUILD.gn
+++ b/video/BUILD.gn
@@ -173,6 +173,8 @@
     "encoder_bitrate_adjuster.h",
     "encoder_overshoot_detector.cc",
     "encoder_overshoot_detector.h",
+    "frame_encode_timer.cc",
+    "frame_encode_timer.h",
     "overuse_frame_detector.cc",
     "overuse_frame_detector.h",
     "video_stream_encoder.cc",
@@ -195,7 +197,9 @@
     "../api/video:video_stream_encoder",
     "../api/video_codecs:video_codecs_api",
     "../common_video:common_video",
+    "../modules:module_api_public",
     "../modules/video_coding",
+    "../modules/video_coding:video_codec_interface",
     "../modules/video_coding:video_coding_utility",
     "../modules/video_coding:webrtc_vp9_helpers",
     "../rtc_base:checks",
@@ -208,6 +212,7 @@
     "../rtc_base:rtc_task_queue",
     "../rtc_base:sequenced_task_checker",
     "../rtc_base:timeutils",
+    "../rtc_base/experiments:alr_experiment",
     "../rtc_base/experiments:quality_scaling_experiment",
     "../rtc_base/experiments:rate_control_settings",
     "../rtc_base/system:fallthrough",
@@ -480,6 +485,7 @@
       "end_to_end_tests/ssrc_tests.cc",
       "end_to_end_tests/stats_tests.cc",
       "end_to_end_tests/transport_feedback_tests.cc",
+      "frame_encode_timer_unittest.cc",
       "overuse_frame_detector_unittest.cc",
       "picture_id_tests.cc",
       "quality_scaling_tests.cc",