Revert of Remove ignored return code from modules. (patchset #3 id:40001 of https://codereview.webrtc.org/1703833002/ )

Reason for revert:
Breaks Chromium.

Original issue's description:
> Remove ignored return code from modules.
>
> ModuleProcessImpl doesn't act on return codes and having them around is
> confusing (it's unclear what an error return code here would do even).
>
> BUG=
> R=tommi@webrtc.org
>
> Committed: https://chromium.googlesource.com/external/webrtc/+/f14c47a58cb2a333cb9b11aef593f0e632fdb28a

TBR=tommi@webrtc.org,pbos@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11761}
diff --git a/webrtc/modules/video_coding/test/vcm_payload_sink_factory.cc b/webrtc/modules/video_coding/test/vcm_payload_sink_factory.cc
index 88242fd..c9ec372 100644
--- a/webrtc/modules/video_coding/test/vcm_payload_sink_factory.cc
+++ b/webrtc/modules/video_coding/test/vcm_payload_sink_factory.cc
@@ -74,7 +74,9 @@
 
   bool Process() {
     if (vcm_->TimeUntilNextProcess() <= 0) {
-      vcm_->Process();
+      if (vcm_->Process() < 0) {
+        return false;
+      }
     }
     return true;
   }
diff --git a/webrtc/modules/video_coding/video_coding_impl.cc b/webrtc/modules/video_coding/video_coding_impl.cc
index 7d6d177..7f74b41 100644
--- a/webrtc/modules/video_coding/video_coding_impl.cc
+++ b/webrtc/modules/video_coding/video_coding_impl.cc
@@ -94,9 +94,12 @@
     return VCM_MIN(sender_time, receiver_time);
   }
 
-  void Process() override {
-    sender_.Process();
-    receiver_.Process();
+  int32_t Process() override {
+    int32_t sender_return = sender_.Process();
+    int32_t receiver_return = receiver_.Process();
+    if (sender_return != VCM_OK)
+      return sender_return;
+    return receiver_return;
   }
 
   int32_t RegisterSendCodec(const VideoCodec* sendCodec,
diff --git a/webrtc/modules/video_coding/video_coding_impl.h b/webrtc/modules/video_coding/video_coding_impl.h
index dc766b1..581ab0e 100644
--- a/webrtc/modules/video_coding/video_coding_impl.h
+++ b/webrtc/modules/video_coding/video_coding_impl.h
@@ -93,7 +93,7 @@
   bool VideoSuspended() const;
 
   int64_t TimeUntilNextProcess();
-  void Process();
+  int32_t Process();
 
  private:
   void SetEncoderParameters(EncoderParameters params)
@@ -172,7 +172,7 @@
   int32_t SetVideoProtection(VCMVideoProtection videoProtection, bool enable);
 
   int64_t TimeUntilNextProcess();
-  void Process();
+  int32_t Process();
 
   void RegisterPreDecodeImageCallback(EncodedImageCallback* observer);
   void TriggerDecoderShutdown();
diff --git a/webrtc/modules/video_coding/video_coding_robustness_unittest.cc b/webrtc/modules/video_coding/video_coding_robustness_unittest.cc
index eb5d485..51cffcd 100644
--- a/webrtc/modules/video_coding/video_coding_robustness_unittest.cc
+++ b/webrtc/modules/video_coding/video_coding_robustness_unittest.cc
@@ -113,20 +113,20 @@
 
   clock_->AdvanceTimeMilliseconds(10);
 
-  vcm_->Process();
+  ASSERT_EQ(VCM_OK, vcm_->Process());
 
   ASSERT_EQ(VCM_FRAME_NOT_READY, vcm_->Decode(0));
 
   InsertPacket(6000, 8, false, true, kVideoFrameDelta);
   clock_->AdvanceTimeMilliseconds(10);
-  vcm_->Process();
+  ASSERT_EQ(VCM_OK, vcm_->Process());
 
   ASSERT_EQ(VCM_FRAME_NOT_READY, vcm_->Decode(0));
 
   InsertPacket(6000, 6, true, false, kVideoFrameDelta);
   InsertPacket(6000, 7, false, false, kVideoFrameDelta);
   clock_->AdvanceTimeMilliseconds(10);
-  vcm_->Process();
+  ASSERT_EQ(VCM_OK, vcm_->Process());
 
   ASSERT_EQ(VCM_OK, vcm_->Decode(0));
 }
@@ -143,12 +143,12 @@
   InsertPacket(3000, 5, false, true, kVideoFrameDelta);
 
   EXPECT_EQ(VCM_FRAME_NOT_READY, vcm_->Decode(0));
-  vcm_->Process();
+  ASSERT_EQ(VCM_OK, vcm_->Process());
 
   clock_->AdvanceTimeMilliseconds(10);
 
   EXPECT_EQ(VCM_FRAME_NOT_READY, vcm_->Decode(0));
-  vcm_->Process();
+  ASSERT_EQ(VCM_OK, vcm_->Process());
 }
 
 TEST_F(VCMRobustnessTest, TestModeNoneWithErrors) {
@@ -195,25 +195,25 @@
   InsertPacket(0, 1, false, false, kVideoFrameKey);
   InsertPacket(0, 2, false, true, kVideoFrameKey);
   EXPECT_EQ(VCM_OK, vcm_->Decode(33));  // Decode timestamp 0.
-  vcm_->Process();
+  EXPECT_EQ(VCM_OK, vcm_->Process());   // Expect no NACK list.
 
   clock_->AdvanceTimeMilliseconds(33);
   InsertPacket(3000, 3, true, false, kVideoFrameDelta);
   // Packet 4 missing
   InsertPacket(3000, 5, false, true, kVideoFrameDelta);
   EXPECT_EQ(VCM_FRAME_NOT_READY, vcm_->Decode(0));
-  vcm_->Process();
+  EXPECT_EQ(VCM_OK, vcm_->Process());  // Expect no NACK list.
 
   clock_->AdvanceTimeMilliseconds(33);
   InsertPacket(6000, 6, true, false, kVideoFrameDelta);
   InsertPacket(6000, 7, false, false, kVideoFrameDelta);
   InsertPacket(6000, 8, false, true, kVideoFrameDelta);
   EXPECT_EQ(VCM_OK, vcm_->Decode(0));  // Decode timestamp 3000 incomplete.
-  vcm_->Process();
+  EXPECT_EQ(VCM_OK, vcm_->Process());  // Expect no NACK list.
 
   clock_->AdvanceTimeMilliseconds(10);
   EXPECT_EQ(VCM_OK, vcm_->Decode(23));  // Decode timestamp 6000 complete.
-  vcm_->Process();
+  EXPECT_EQ(VCM_OK, vcm_->Process());   // Expect no NACK list.
 
   clock_->AdvanceTimeMilliseconds(23);
   InsertPacket(3000, 4, false, false, kVideoFrameDelta);
diff --git a/webrtc/modules/video_coding/video_receiver.cc b/webrtc/modules/video_coding/video_receiver.cc
index e7844d0..02d51a7 100644
--- a/webrtc/modules/video_coding/video_receiver.cc
+++ b/webrtc/modules/video_coding/video_receiver.cc
@@ -63,7 +63,9 @@
 #endif
 }
 
-void VideoReceiver::Process() {
+int32_t VideoReceiver::Process() {
+  int32_t returnValue = VCM_OK;
+
   // Receive-side statistics
   if (_receiveStatsTimer.TimeUntilProcess() == 0) {
     _receiveStatsTimer.Processed();
@@ -106,8 +108,12 @@
       CriticalSectionScoped cs(process_crit_sect_.get());
       request_key_frame = _scheduleKeyRequest && _frameTypeCallback != NULL;
     }
-    if (request_key_frame)
-      RequestKeyFrame();
+    if (request_key_frame) {
+      const int32_t ret = RequestKeyFrame();
+      if (ret != VCM_OK && returnValue == VCM_OK) {
+        returnValue = ret;
+      }
+    }
   }
 
   // Packet retransmission requests
@@ -129,6 +135,9 @@
       int32_t ret = VCM_OK;
       if (request_key_frame) {
         ret = RequestKeyFrame();
+        if (ret != VCM_OK && returnValue == VCM_OK) {
+          returnValue = ret;
+        }
       }
       if (ret == VCM_OK && !nackList.empty()) {
         CriticalSectionScoped cs(process_crit_sect_.get());
@@ -138,6 +147,8 @@
       }
     }
   }
+
+  return returnValue;
 }
 
 int64_t VideoReceiver::TimeUntilNextProcess() {
diff --git a/webrtc/modules/video_coding/video_receiver_unittest.cc b/webrtc/modules/video_coding/video_receiver_unittest.cc
index 693fdc6..820ce9a 100644
--- a/webrtc/modules/video_coding/video_receiver_unittest.cc
+++ b/webrtc/modules/video_coding/video_receiver_unittest.cc
@@ -52,7 +52,7 @@
       EXPECT_EQ(0, receiver_->IncomingPacket(payload, 0, *header));
       ++header->header.sequenceNumber;
     }
-    receiver_->Process();
+    EXPECT_EQ(0, receiver_->Process());
     EXPECT_CALL(decoder_, Decode(_, _, _, _, _)).Times(0);
     EXPECT_EQ(VCM_FRAME_NOT_READY, receiver_->Decode(100));
   }
@@ -64,7 +64,7 @@
     EXPECT_EQ(0, receiver_->IncomingPacket(payload, length, *header));
     ++header->header.sequenceNumber;
     EXPECT_CALL(packet_request_callback_, ResendPackets(_, _)).Times(0);
-    receiver_->Process();;
+    EXPECT_EQ(0, receiver_->Process());
     EXPECT_CALL(decoder_, Decode(_, _, _, _, _)).Times(1);
     EXPECT_EQ(0, receiver_->Decode(100));
   }
diff --git a/webrtc/modules/video_coding/video_sender.cc b/webrtc/modules/video_coding/video_sender.cc
index d92ad45..f14f852 100644
--- a/webrtc/modules/video_coding/video_sender.cc
+++ b/webrtc/modules/video_coding/video_sender.cc
@@ -53,7 +53,9 @@
 
 VideoSender::~VideoSender() {}
 
-void VideoSender::Process() {
+int32_t VideoSender::Process() {
+  int32_t returnValue = VCM_OK;
+
   if (_sendStatsTimer.TimeUntilProcess() == 0) {
     _sendStatsTimer.Processed();
     CriticalSectionScoped cs(process_crit_sect_.get());
@@ -70,6 +72,8 @@
     // updated even if bandwidth hasn't changed.
     encoder_params_.input_frame_rate = _mediaOpt.InputFrameRate();
   }
+
+  return returnValue;
 }
 
 int64_t VideoSender::TimeUntilNextProcess() {