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}
This commit is contained in:
@ -29,7 +29,10 @@ VCMExtDecoderMapItem::VCMExtDecoderMapItem(
|
||||
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 @@ bool VCMDecoderDataBase::DeregisterReceiveCodec(uint8_t payload_type) {
|
||||
}
|
||||
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 @@ VCMGenericDecoder* VCMDecoderDataBase::GetDecoder(
|
||||
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();
|
||||
|
@ -76,6 +76,7 @@ class VCMDecoderDataBase {
|
||||
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_;
|
||||
|
@ -223,8 +223,6 @@ void SimulcastTestFixtureImpl::DefaultSettings(
|
||||
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;
|
||||
|
@ -72,9 +72,6 @@ VideoCodec VideoCodecInitializer::VideoEncoderConfigToVideoCodec(
|
||||
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;
|
||||
|
@ -57,7 +57,6 @@ class TestVideoReceiver : public ::testing::Test {
|
||||
// Register decoder.
|
||||
receiver_.RegisterExternalDecoder(&decoder_, kUnusedPayloadType);
|
||||
webrtc::test::CodecSettings(kVideoCodecVP8, &settings_);
|
||||
settings_.plType = kUnusedPayloadType;
|
||||
EXPECT_EQ(
|
||||
0, receiver_.RegisterReceiveCodec(kUnusedPayloadType, &settings_, 1));
|
||||
|
||||
|
Reference in New Issue
Block a user