Update VideoEncoderSoftwareFallbackWrapper to take VideoEncoder as arg

VideoEncoderSoftwareFallbackWrapper is updated to take a VideoEncoder as
argument instead relying on built-in SW codecs. The purpose is to make
VideoEncoderSoftwareFallbackWrapper more modular and not depend on
built-in SW encoders.

Bug: webrtc:7925
Change-Id: I99896f0751cfb77e01efd29c97d3bd07bdb2c7c0
Reviewed-on: https://webrtc-review.googlesource.com/22320
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20671}
diff --git a/media/engine/videoencodersoftwarefallbackwrapper.h b/media/engine/videoencodersoftwarefallbackwrapper.h
index 6322982..a9a349c 100644
--- a/media/engine/videoencodersoftwarefallbackwrapper.h
+++ b/media/engine/videoencodersoftwarefallbackwrapper.h
@@ -26,8 +26,8 @@
 class VideoEncoderSoftwareFallbackWrapper : public VideoEncoder {
  public:
   VideoEncoderSoftwareFallbackWrapper(
-      const cricket::VideoCodec& codec,
-      std::unique_ptr<webrtc::VideoEncoder> encoder);
+      std::unique_ptr<webrtc::VideoEncoder> sw_encoder,
+      std::unique_ptr<webrtc::VideoEncoder> hw_encoder);
 
   int32_t InitEncode(const VideoCodec* codec_settings,
                      int32_t number_of_cores,
@@ -87,10 +87,10 @@
   uint32_t packet_loss_;
   int64_t rtt_;
 
-  cricket::VideoCodec codec_;
-  std::unique_ptr<webrtc::VideoEncoder> encoder_;
+  bool use_fallback_encoder_;
+  const std::unique_ptr<webrtc::VideoEncoder> encoder_;
 
-  std::unique_ptr<webrtc::VideoEncoder> fallback_encoder_;
+  const std::unique_ptr<webrtc::VideoEncoder> fallback_encoder_;
   EncodedImageCallback* callback_;
 
   bool forced_fallback_possible_;