Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1358)

Unified Diff: webrtc/modules/audio_coding/main/acm2/codec_manager.cc

Issue 1431103002: Move the Rent-A-Codec™ from CodecOwner to CodecManager (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@rac-dyn
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/audio_coding/main/acm2/codec_manager.cc
diff --git a/webrtc/modules/audio_coding/main/acm2/codec_manager.cc b/webrtc/modules/audio_coding/main/acm2/codec_manager.cc
index 236f5e033d5b365f96b59016d6777d20e6fcaef5..a1a478e2139f72a7ad8a822fe4eade2c52b17a74 100644
--- a/webrtc/modules/audio_coding/main/acm2/codec_manager.cc
+++ b/webrtc/modules/audio_coding/main/acm2/codec_manager.cc
@@ -264,14 +264,16 @@ int CodecManager::RegisterEncoder(const CodecInst& send_codec) {
// VAD/DTX not supported.
dtx_enabled_ = false;
}
- if (!codec_owner_.SetEncoders(
- send_codec, dtx_enabled_ ? CngPayloadType(send_codec.plfreq) : -1,
- vad_mode_, red_enabled_ ? RedPayloadType(send_codec.plfreq) : -1))
+ AudioEncoder* enc = rent_a_codec_.RentEncoder(send_codec);
+ if (!enc)
return -1;
+ codec_owner_.SetEncoders(
+ enc, dtx_enabled_ ? CngPayloadType(send_codec.plfreq) : -1,
+ vad_mode_, red_enabled_ ? RedPayloadType(send_codec.plfreq) : -1);
RTC_DCHECK(codec_owner_.Encoder());
codec_fec_enabled_ = codec_fec_enabled_ &&
- codec_owner_.Encoder()->SetFec(codec_fec_enabled_);
+ enc->SetFec(codec_fec_enabled_);
send_codec_inst_ = send_codec;
return 0;
@@ -281,10 +283,12 @@ int CodecManager::RegisterEncoder(const CodecInst& send_codec) {
if (send_codec_inst_.plfreq != send_codec.plfreq ||
send_codec_inst_.pacsize != send_codec.pacsize ||
send_codec_inst_.channels != send_codec.channels) {
- if (!codec_owner_.SetEncoders(
- send_codec, dtx_enabled_ ? CngPayloadType(send_codec.plfreq) : -1,
- vad_mode_, red_enabled_ ? RedPayloadType(send_codec.plfreq) : -1))
+ AudioEncoder* enc = rent_a_codec_.RentEncoder(send_codec);
+ if (!enc)
return -1;
+ codec_owner_.SetEncoders(
+ enc, dtx_enabled_ ? CngPayloadType(send_codec.plfreq) : -1,
+ vad_mode_, red_enabled_ ? RedPayloadType(send_codec.plfreq) : -1);
RTC_DCHECK(codec_owner_.Encoder());
}
send_codec_inst_.plfreq = send_codec.plfreq;
@@ -418,7 +422,7 @@ int CodecManager::SetCodecFEC(bool enable_codec_fec) {
}
AudioDecoder* CodecManager::GetAudioDecoder(const CodecInst& codec) {
- return IsIsac(codec) ? codec_owner_.GetIsacDecoder() : nullptr;
+ return IsIsac(codec) ? rent_a_codec_.RentIsacDecoder() : nullptr;
}
int CodecManager::CngPayloadType(int sample_rate_hz) const {
« no previous file with comments | « webrtc/modules/audio_coding/main/acm2/codec_manager.h ('k') | webrtc/modules/audio_coding/main/acm2/codec_owner.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698