This reland https://codereview.webrtc.org/1655793003/ with the change that cricket::VideoCapturer::SignalVideoFrame is added back and used for frame forwarding. It is used in Chrome remoting.

BUG=webrtc:5426
R=pthatcher@webrtc.org
TBR=pthatcher@webrtc.org for moved channelmanager....

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

Cr-Commit-Position: refs/heads/master@{#11597}
diff --git a/webrtc/media/base/fakevideorenderer.h b/webrtc/media/base/fakevideorenderer.h
index bc82cba..0854d0c 100644
--- a/webrtc/media/base/fakevideorenderer.h
+++ b/webrtc/media/base/fakevideorenderer.h
@@ -43,6 +43,7 @@
     ++num_rendered_frames_;
     width_ = static_cast<int>(frame->GetWidth());
     height_ = static_cast<int>(frame->GetHeight());
+    rotation_ = frame->GetVideoRotation();
     SignalRenderFrame(frame);
     return true;
   }
@@ -56,6 +57,10 @@
     rtc::CritScope cs(&crit_);
     return height_;
   }
+  int rotation() const {
+    rtc::CritScope cs(&crit_);
+    return rotation_;
+  }
   int num_rendered_frames() const {
     rtc::CritScope cs(&crit_);
     return num_rendered_frames_;
@@ -123,6 +128,7 @@
   int errors_;
   int width_;
   int height_;
+  webrtc::VideoRotation rotation_;
   int num_rendered_frames_;
   bool black_frame_;
   rtc::CriticalSection crit_;