Video: Log scalability configuration on encoder reconfigure

Lately there were 2 separate bugs, where seeing this information in the
log could help immediately figuring out the problem.

Bug: none
Change-Id: I3f2b2d5864106cdb231715e1702edee3b9b05caa
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/154566
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29338}
diff --git a/video/video_stream_encoder.cc b/video/video_stream_encoder.cc
index e4b244a..936d816 100644
--- a/video/video_stream_encoder.cc
+++ b/video/video_stream_encoder.cc
@@ -799,6 +799,40 @@
         SvcRateAllocator::GetPaddingBitrate(codec).bps<int>();
   }
 
+  char log_stream_buf[4 * 1024];
+  rtc::SimpleStringBuilder log_stream(log_stream_buf);
+  log_stream << "ReconfigureEncoder:\n";
+  log_stream << "Simulcast streams:\n";
+  for (size_t i = 0; i < codec.numberOfSimulcastStreams; ++i) {
+    log_stream << i << ": " << codec.simulcastStream[i].width << "x"
+               << codec.simulcastStream[i].height
+               << " fps: " << codec.simulcastStream[i].maxFramerate
+               << " min_bps: " << codec.simulcastStream[i].minBitrate
+               << " target_bps: " << codec.simulcastStream[i].targetBitrate
+               << " max_bps: " << codec.simulcastStream[i].maxBitrate
+               << " max_qp: " << codec.simulcastStream[i].qpMax
+               << " num_tl: " << codec.simulcastStream[i].numberOfTemporalLayers
+               << " active: "
+               << (codec.simulcastStream[i].active ? "true" : "false") << "\n";
+  }
+  if (encoder_config_.codec_type == kVideoCodecVP9) {
+    size_t num_spatial_layers = codec.VP9()->numberOfSpatialLayers;
+    log_stream << "Spatial layers:\n";
+    for (size_t i = 0; i < num_spatial_layers; ++i) {
+      log_stream << i << ": " << codec.spatialLayers[i].width << "x"
+                 << codec.spatialLayers[i].height
+                 << " fps: " << codec.spatialLayers[i].maxFramerate
+                 << " min_bps: " << codec.spatialLayers[i].minBitrate
+                 << " target_bps: " << codec.spatialLayers[i].targetBitrate
+                 << " max_bps: " << codec.spatialLayers[i].maxBitrate
+                 << " max_qp: " << codec.spatialLayers[i].qpMax
+                 << " num_tl: " << codec.spatialLayers[i].numberOfTemporalLayers
+                 << " active: "
+                 << (codec.spatialLayers[i].active ? "true" : "false") << "\n";
+    }
+  }
+  RTC_LOG(LS_INFO) << log_stream.str();
+
   codec.startBitrate =
       std::max(encoder_start_bitrate_bps_ / 1000, codec.minBitrate);
   codec.startBitrate = std::min(codec.startBitrate, codec.maxBitrate);