Reland "Inform VideoEncoder of negotiated capabilities"

This is a reland of 11dfff0878c949f2e19d95a0ddc209cdad94b3b4

Now that I am sure that WebRTC code is not calling the obsolete
versions, I will just remove the NOT_REACHED and call the
new version from the old ones, so as not to trip up downstream
projects.

Original change's description:
> Inform VideoEncoder of negotiated capabilities
>
> After this CL lands, an announcement will be made to
> discuss-webrtc about the deprecation of one version
> of InitEncode().
>
> Bug: webrtc:10720
> Change-Id: Ib992af0272bbb16ae16ef7e69491f365702d179e
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140884
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Elad Alon <eladalon@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28224}

TBR=sakal@webrtc.org,kwiberg@webrtc.org,sprang@webrtc.org

Bug: webrtc:10720
Change-Id: I46c69e45c190805c07f7e51acbe277d7eebd1600
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/141412
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28236}
diff --git a/call/call_perf_tests.cc b/call/call_perf_tests.cc
index 0bbf034..d869c87 100644
--- a/call/call_perf_tests.cc
+++ b/call/call_perf_tests.cc
@@ -18,6 +18,7 @@
 #include "api/test/simulated_network.h"
 #include "api/video/builtin_video_bitrate_allocator_factory.h"
 #include "api/video/video_bitrate_allocation.h"
+#include "api/video_codecs/video_encoder.h"
 #include "api/video_codecs/video_encoder_config.h"
 #include "call/call.h"
 #include "call/fake_network_pipe.h"
@@ -749,8 +750,7 @@
               CreateBuiltinVideoBitrateAllocatorFactory()) {}
 
     int32_t InitEncode(const VideoCodec* config,
-                       int32_t number_of_cores,
-                       size_t max_payload_size) override {
+                       const VideoEncoder::Settings& settings) override {
       ++encoder_inits_;
       if (encoder_inits_ == 1) {
         // First time initialization. Frame size is known.
@@ -771,7 +771,7 @@
             << "Encoder reconfigured with bitrate too far away from last set.";
         observation_complete_.Set();
       }
-      return FakeEncoder::InitEncode(config, number_of_cores, max_payload_size);
+      return FakeEncoder::InitEncode(config, settings);
     }
 
     void SetRates(const RateControlParameters& parameters) override {
diff --git a/call/video_send_stream.cc b/call/video_send_stream.cc
index fa2d4f2..dac4029 100644
--- a/call/video_send_stream.cc
+++ b/call/video_send_stream.cc
@@ -77,7 +77,10 @@
 VideoSendStream::Config::Config(Config&&) = default;
 VideoSendStream::Config::Config(Transport* send_transport,
                                 MediaTransportInterface* media_transport)
-    : send_transport(send_transport), media_transport(media_transport) {}
+    : rtp(),
+      encoder_settings(VideoEncoder::Capabilities(rtp.lntf.enabled)),
+      send_transport(send_transport),
+      media_transport(media_transport) {}
 VideoSendStream::Config::Config(Transport* send_transport)
     : Config(send_transport, nullptr) {}
 
diff --git a/call/video_send_stream.h b/call/video_send_stream.h
index 850996e..f38f7bc 100644
--- a/call/video_send_stream.h
+++ b/call/video_send_stream.h
@@ -126,10 +126,10 @@
 
     std::string ToString() const;
 
-    VideoStreamEncoderSettings encoder_settings;
-
     RtpConfig rtp;
 
+    VideoStreamEncoderSettings encoder_settings;
+
     // Time interval between RTCP report for video
     int rtcp_report_interval_ms = 1000;