Add a VideoCoding::RegisterReceiveCodec method with payload_type

Intended to ease removal of VideoCodec::plType, separating video
coding from transport.

Bug: None
Change-Id: I0764f2f714eab9ee4c3e55751819cd5915fb37b6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/181075
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31892}
This commit is contained in:
Niels Möller
2020-08-07 16:19:56 +02:00
committed by Commit Bot
parent cf11d1ddbe
commit 582102c9b7
11 changed files with 39 additions and 20 deletions

View File

@ -70,15 +70,16 @@ void VCMDecoderDataBase::RegisterExternalDecoder(VideoDecoder* external_decoder,
dec_external_map_[payload_type] = ext_decoder;
}
bool VCMDecoderDataBase::RegisterReceiveCodec(const VideoCodec* receive_codec,
bool VCMDecoderDataBase::RegisterReceiveCodec(uint8_t payload_type,
const VideoCodec* receive_codec,
int number_of_cores) {
if (number_of_cores < 0) {
return false;
}
// If payload value already exists, erase old and insert new.
DeregisterReceiveCodec(receive_codec->plType);
DeregisterReceiveCodec(payload_type);
VideoCodec* new_receive_codec = new VideoCodec(*receive_codec);
dec_map_[receive_codec->plType] =
dec_map_[payload_type] =
new VCMDecoderMapItem(new_receive_codec, number_of_cores);
return true;
}