AudioCodingModuleImpl: Stop failing artificially for non-Opus encoders

All encoders already handle the "Opus-specific" requests sanely (by
failing nicely), so we don't need extra checks to protect them.

BUG=webrtc:5028

Review URL: https://codereview.webrtc.org/1527453005

Cr-Commit-Position: refs/heads/master@{#11051}
This commit is contained in:
kwiberg
2015-12-16 06:24:05 -08:00
committed by Commit bot
parent 99b1a32146
commit 44307630d3
5 changed files with 5 additions and 29 deletions

View File

@ -744,8 +744,6 @@ int AudioCodingModuleImpl::SetOpusApplication(OpusApplicationMode application) {
if (!HaveValidEncoder("SetOpusApplication")) {
return -1;
}
if (!codec_manager_.CurrentEncoderIsOpus())
return -1;
AudioEncoder::Application app;
switch (application) {
case kVoip:
@ -767,8 +765,6 @@ int AudioCodingModuleImpl::SetOpusMaxPlaybackRate(int frequency_hz) {
if (!HaveValidEncoder("SetOpusMaxPlaybackRate")) {
return -1;
}
if (!codec_manager_.CurrentEncoderIsOpus())
return -1;
rent_a_codec_.GetEncoderStack()->SetMaxPlaybackRate(frequency_hz);
return 0;
}
@ -778,8 +774,6 @@ int AudioCodingModuleImpl::EnableOpusDtx() {
if (!HaveValidEncoder("EnableOpusDtx")) {
return -1;
}
if (!codec_manager_.CurrentEncoderIsOpus())
return -1;
return rent_a_codec_.GetEncoderStack()->SetDtx(true) ? 0 : -1;
}
@ -788,8 +782,6 @@ int AudioCodingModuleImpl::DisableOpusDtx() {
if (!HaveValidEncoder("DisableOpusDtx")) {
return -1;
}
if (!codec_manager_.CurrentEncoderIsOpus())
return -1;
return rent_a_codec_.GetEncoderStack()->SetDtx(false) ? 0 : -1;
}

View File

@ -166,7 +166,9 @@ bool CodecManager::SetVAD(bool enable, ACMVADMode mode) {
return false;
}
if (CurrentEncoderIsOpus()) {
// TODO(kwiberg): This doesn't protect Opus when injected as an external
// encoder.
if (send_codec_inst_ && IsOpus(*send_codec_inst_)) {
// VAD/DTX not supported, but don't fail.
enable = false;
}
@ -187,9 +189,5 @@ bool CodecManager::SetCodecFEC(bool enable_codec_fec) {
return true;
}
bool CodecManager::CurrentEncoderIsOpus() const {
return send_codec_inst_ ? IsOpus(*send_codec_inst_) : false;
}
} // namespace acm2
} // namespace webrtc

View File

@ -53,8 +53,6 @@ class CodecManager final {
bool SetCodecFEC(bool enable_codec_fec);
bool CurrentEncoderIsOpus() const;
private:
rtc::ThreadChecker thread_checker_;
rtc::Optional<CodecInst> send_codec_inst_;

View File

@ -234,10 +234,10 @@ void TestWebRtcVadDtx::SetVAD(bool enable_dtx, bool enable_vad,
// Following is the implementation of TestOpusDtx.
void TestOpusDtx::Perform() {
#ifdef WEBRTC_CODEC_ISAC
// If we set other codec than Opus, DTX cannot be toggled.
// If we set other codec than Opus, DTX cannot be switched on.
RegisterCodec(kIsacWb);
EXPECT_EQ(-1, acm_send_->EnableOpusDtx());
EXPECT_EQ(-1, acm_send_->DisableOpusDtx());
EXPECT_EQ(0, acm_send_->DisableOpusDtx());
#endif
#ifdef WEBRTC_CODEC_OPUS