Use vcm::VideoReceiver on the receive side.

BUG=
R=perkj@webrtc.org

Review URL: https://codereview.webrtc.org/1905983002 .

Cr-Commit-Position: refs/heads/master@{#12473}
diff --git a/webrtc/modules/video_coding/receiver.cc b/webrtc/modules/video_coding/receiver.cc
index a02fd01..abe8ede 100644
--- a/webrtc/modules/video_coding/receiver.cc
+++ b/webrtc/modules/video_coding/receiver.cc
@@ -42,12 +42,17 @@
                          EventFactory* event_factory,
                          NackSender* nack_sender,
                          KeyFrameRequestSender* keyframe_request_sender)
-    : VCMReceiver(timing,
-                  clock,
-                  std::unique_ptr<EventWrapper>(event_factory->CreateEvent()),
-                  std::unique_ptr<EventWrapper>(event_factory->CreateEvent()),
-                  nack_sender,
-                  keyframe_request_sender) {}
+    : VCMReceiver(
+          timing,
+          clock,
+          std::unique_ptr<EventWrapper>(event_factory
+                                            ? event_factory->CreateEvent()
+                                            : EventWrapper::Create()),
+          std::unique_ptr<EventWrapper>(event_factory
+                                            ? event_factory->CreateEvent()
+                                            : EventWrapper::Create()),
+          nack_sender,
+          keyframe_request_sender) {}
 
 VCMReceiver::VCMReceiver(VCMTiming* timing,
                          Clock* clock,
diff --git a/webrtc/modules/video_coding/video_coding_impl.cc b/webrtc/modules/video_coding/video_coding_impl.cc
index a9a4724..5e9b0d4 100644
--- a/webrtc/modules/video_coding/video_coding_impl.cc
+++ b/webrtc/modules/video_coding/video_coding_impl.cc
@@ -73,7 +73,6 @@
  public:
   VideoCodingModuleImpl(Clock* clock,
                         EventFactory* event_factory,
-                        bool owns_event_factory,
                         VideoEncoderRateObserver* encoder_rate_observer,
                         VCMQMSettingsCallback* qm_settings_callback,
                         NackSender* nack_sender,
@@ -88,10 +87,9 @@
                   event_factory,
                   pre_decode_image_callback,
                   nack_sender,
-                  keyframe_request_sender),
-        own_event_factory_(owns_event_factory ? event_factory : NULL) {}
+                  keyframe_request_sender) {}
 
-  virtual ~VideoCodingModuleImpl() { own_event_factory_.reset(); }
+  virtual ~VideoCodingModuleImpl() {}
 
   int64_t TimeUntilNextProcess() override {
     int64_t sender_time = sender_.TimeUntilNextProcess();
@@ -286,7 +284,6 @@
   EncodedImageCallbackWrapper post_encode_callback_;
   vcm::VideoSender sender_;
   vcm::VideoReceiver receiver_;
-  std::unique_ptr<EventFactory> own_event_factory_;
 };
 }  // namespace
 
@@ -315,10 +312,9 @@
     NackSender* nack_sender,
     KeyFrameRequestSender* keyframe_request_sender,
     EncodedImageCallback* pre_decode_image_callback) {
-  return new VideoCodingModuleImpl(clock, new EventFactoryImpl, true,
-                                   encoder_rate_observer, qm_settings_callback,
-                                   nack_sender, keyframe_request_sender,
-                                   pre_decode_image_callback);
+  return new VideoCodingModuleImpl(
+      clock, nullptr, encoder_rate_observer, qm_settings_callback, nack_sender,
+      keyframe_request_sender, pre_decode_image_callback);
 }
 
 // Create method for current interface, will be removed when the
@@ -338,9 +334,9 @@
     KeyFrameRequestSender* keyframe_request_sender) {
   assert(clock);
   assert(event_factory);
-  return new VideoCodingModuleImpl(clock, event_factory, false, nullptr,
-                                   nullptr, nack_sender,
-                                   keyframe_request_sender, nullptr);
+  return new VideoCodingModuleImpl(clock, event_factory, nullptr, nullptr,
+                                   nack_sender, keyframe_request_sender,
+                                   nullptr);
 }
 
 }  // namespace webrtc
diff --git a/webrtc/modules/video_coding/video_coding_impl.h b/webrtc/modules/video_coding/video_coding_impl.h
index e3184a8..f449632 100644
--- a/webrtc/modules/video_coding/video_coding_impl.h
+++ b/webrtc/modules/video_coding/video_coding_impl.h
@@ -128,7 +128,7 @@
   std::vector<FrameType> next_frame_types_ GUARDED_BY(params_crit_);
 };
 
-class VideoReceiver {
+class VideoReceiver : public Module {
  public:
   typedef VideoCodingModule::ReceiverRobustness ReceiverRobustness;
 
@@ -179,8 +179,8 @@
   int32_t SetReceiveChannelParameters(int64_t rtt);
   int32_t SetVideoProtection(VCMVideoProtection videoProtection, bool enable);
 
-  int64_t TimeUntilNextProcess();
-  void Process();
+  int64_t TimeUntilNextProcess() override;
+  void Process() override;
 
   void TriggerDecoderShutdown();