Allow to set av1 scalability mode after encoder is constructed

Bug: webrtc:11404
Change-Id: I70b4115c8afdc4f32fd876d31d54b7d95d0a7e1b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/188582
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32437}
This commit is contained in:
Danil Chapovalov
2020-10-16 17:45:41 +02:00
committed by Commit Bot
parent 0835ce5d6d
commit 9f4859e5e3
11 changed files with 39 additions and 20 deletions

View File

@ -96,7 +96,7 @@ bool VCMDecoderDataBase::DeregisterReceiveCodec(uint8_t payload_type) {
dec_map_.erase(it);
if (payload_type == current_payload_type_) {
// This codec is currently in use.
memset(&receive_codec_, 0, sizeof(VideoCodec));
receive_codec_ = {};
current_payload_type_ = 0;
}
return true;
@ -113,7 +113,7 @@ VCMGenericDecoder* VCMDecoderDataBase::GetDecoder(
// If decoder exists - delete.
if (ptr_decoder_) {
ptr_decoder_.reset();
memset(&receive_codec_, 0, sizeof(VideoCodec));
receive_codec_ = {};
current_payload_type_ = 0;
}
ptr_decoder_ = CreateAndInitDecoder(frame, &receive_codec_);
@ -126,7 +126,7 @@ VCMGenericDecoder* VCMDecoderDataBase::GetDecoder(
if (ptr_decoder_->RegisterDecodeCompleteCallback(decoded_frame_callback) <
0) {
ptr_decoder_.reset();
memset(&receive_codec_, 0, sizeof(VideoCodec));
receive_codec_ = {};
current_payload_type_ = 0;
return nullptr;
}
@ -178,7 +178,7 @@ std::unique_ptr<VCMGenericDecoder> VCMDecoderDataBase::CreateAndInitDecoder(
RTC_LOG(LS_ERROR) << "Failed to initialize decoder. Error code: " << err;
return nullptr;
}
memcpy(new_codec, decoder_item->settings.get(), sizeof(VideoCodec));
*new_codec = *decoder_item->settings.get();
return ptr_decoder;
}