Use VideoDecoder::Configure interface when setting up decoder

Bug: webrtc:13045
Change-Id: I322ff91d96bab8bb7c40f4dea1c9c2b5c7631635
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228420
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34756}
diff --git a/modules/video_coding/video_coding_impl.cc b/modules/video_coding/video_coding_impl.cc
index f19ea51..6f4903e 100644
--- a/modules/video_coding/video_coding_impl.cc
+++ b/modules/video_coding/video_coding_impl.cc
@@ -56,11 +56,25 @@
 
   void Process() override { receiver_.Process(); }
 
+  bool RegisterReceiveCodec(
+      uint8_t payload_type,
+      const VideoDecoder::Settings& decoder_settings) override {
+    return receiver_.RegisterReceiveCodec(payload_type, decoder_settings);
+  }
+
   int32_t RegisterReceiveCodec(uint8_t payload_type,
-                               const VideoCodec* receiveCodec,
-                               int32_t numberOfCores) override {
-    return receiver_.RegisterReceiveCodec(payload_type, receiveCodec,
-                                          numberOfCores);
+                               const VideoCodec* receive_codec,
+                               int32_t number_of_cores) override {
+    VideoDecoder::Settings decoder_settings;
+    if (receive_codec != nullptr) {
+      decoder_settings.set_codec_type(receive_codec->codecType);
+      decoder_settings.set_max_render_resolution(
+          {receive_codec->width, receive_codec->height});
+      decoder_settings.set_buffer_pool_size(receive_codec->buffer_pool_size);
+    }
+    decoder_settings.set_number_of_cores(number_of_cores);
+    return receiver_.RegisterReceiveCodec(payload_type, decoder_settings) ? 0
+                                                                          : -1;
   }
 
   void RegisterExternalDecoder(VideoDecoder* externalDecoder,