Prepare for deleting VideoCodec::plType

Deletes all webrtc usage of this member. Next step is to delete
any downstream references, and when that's done, the member can be
deleted.

Bug: None
Change-Id: I3f3a94a063dccf56468a1069653efd3809875b01
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/181201
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31911}
diff --git a/modules/video_coding/decoder_database.cc b/modules/video_coding/decoder_database.cc
index 029ae45..32be39b 100644
--- a/modules/video_coding/decoder_database.cc
+++ b/modules/video_coding/decoder_database.cc
@@ -29,7 +29,10 @@
 VCMDecoderMapItem::~VCMDecoderMapItem() {}
 
 VCMDecoderDataBase::VCMDecoderDataBase()
-    : receive_codec_(), dec_map_(), dec_external_map_() {}
+    : current_payload_type_(0),
+      receive_codec_(),
+      dec_map_(),
+      dec_external_map_() {}
 
 VCMDecoderDataBase::~VCMDecoderDataBase() {
   ptr_decoder_.reset();
@@ -91,9 +94,10 @@
   }
   delete it->second;
   dec_map_.erase(it);
-  if (receive_codec_.plType == payload_type) {
+  if (payload_type == current_payload_type_) {
     // This codec is currently in use.
     memset(&receive_codec_, 0, sizeof(VideoCodec));
+    current_payload_type_ = 0;
   }
   return true;
 }
@@ -103,24 +107,27 @@
     VCMDecodedFrameCallback* decoded_frame_callback) {
   RTC_DCHECK(decoded_frame_callback->UserReceiveCallback());
   uint8_t payload_type = frame.PayloadType();
-  if (payload_type == receive_codec_.plType || payload_type == 0) {
+  if (payload_type == current_payload_type_ || payload_type == 0) {
     return ptr_decoder_.get();
   }
   // If decoder exists - delete.
   if (ptr_decoder_) {
     ptr_decoder_.reset();
     memset(&receive_codec_, 0, sizeof(VideoCodec));
+    current_payload_type_ = 0;
   }
   ptr_decoder_ = CreateAndInitDecoder(frame, &receive_codec_);
   if (!ptr_decoder_) {
     return nullptr;
   }
+  current_payload_type_ = frame.PayloadType();
   VCMReceiveCallback* callback = decoded_frame_callback->UserReceiveCallback();
-  callback->OnIncomingPayloadType(receive_codec_.plType);
+  callback->OnIncomingPayloadType(current_payload_type_);
   if (ptr_decoder_->RegisterDecodeCompleteCallback(decoded_frame_callback) <
       0) {
     ptr_decoder_.reset();
     memset(&receive_codec_, 0, sizeof(VideoCodec));
+    current_payload_type_ = 0;
     return nullptr;
   }
   return ptr_decoder_.get();
diff --git a/modules/video_coding/decoder_database.h b/modules/video_coding/decoder_database.h
index d66fea3..abfd81e 100644
--- a/modules/video_coding/decoder_database.h
+++ b/modules/video_coding/decoder_database.h
@@ -76,6 +76,7 @@
   const VCMExtDecoderMapItem* FindExternalDecoderItem(
       uint8_t payload_type) const;
 
+  uint8_t current_payload_type_;  // Corresponding to receive_codec_.
   VideoCodec receive_codec_;
   std::unique_ptr<VCMGenericDecoder> ptr_decoder_;
   DecoderMap dec_map_;
diff --git a/modules/video_coding/utility/simulcast_test_fixture_impl.cc b/modules/video_coding/utility/simulcast_test_fixture_impl.cc
index f157734..f4e0294 100644
--- a/modules/video_coding/utility/simulcast_test_fixture_impl.cc
+++ b/modules/video_coding/utility/simulcast_test_fixture_impl.cc
@@ -223,8 +223,6 @@
   RTC_CHECK(settings);
   memset(settings, 0, sizeof(VideoCodec));
   settings->codecType = codec_type;
-  // 96 to 127 dynamic payload types for video codecs
-  settings->plType = 120;
   settings->startBitrate = 300;
   settings->minBitrate = 30;
   settings->maxBitrate = 0;
diff --git a/modules/video_coding/video_codec_initializer.cc b/modules/video_coding/video_codec_initializer.cc
index 4023f6b..2859dd0 100644
--- a/modules/video_coding/video_codec_initializer.cc
+++ b/modules/video_coding/video_codec_initializer.cc
@@ -72,9 +72,6 @@
       config.content_type == VideoEncoderConfig::ContentType::kScreen &&
       config.legacy_conference_mode;
 
-  // TODO(nisse): The plType field should be deleted. Luckily, our
-  // callers don't need it.
-  video_codec.plType = 0;
   video_codec.numberOfSimulcastStreams =
       static_cast<unsigned char>(streams.size());
   video_codec.minBitrate = streams[0].min_bitrate_bps / 1000;
diff --git a/modules/video_coding/video_receiver_unittest.cc b/modules/video_coding/video_receiver_unittest.cc
index cf1e678..fcd4f44 100644
--- a/modules/video_coding/video_receiver_unittest.cc
+++ b/modules/video_coding/video_receiver_unittest.cc
@@ -57,7 +57,6 @@
     // Register decoder.
     receiver_.RegisterExternalDecoder(&decoder_, kUnusedPayloadType);
     webrtc::test::CodecSettings(kVideoCodecVP8, &settings_);
-    settings_.plType = kUnusedPayloadType;
     EXPECT_EQ(
         0, receiver_.RegisterReceiveCodec(kUnusedPayloadType, &settings_, 1));