| Index: webrtc/modules/audio_coding/acm2/audio_coding_module.cc
|
| diff --git a/webrtc/modules/audio_coding/acm2/audio_coding_module.cc b/webrtc/modules/audio_coding/acm2/audio_coding_module.cc
|
| index daeea3577e23a854d26f9b702c6d84f1c5ec989d..3b07ce3284c32cfa6df8c478fb807470d4a3010e 100644
|
| --- a/webrtc/modules/audio_coding/acm2/audio_coding_module.cc
|
| +++ b/webrtc/modules/audio_coding/acm2/audio_coding_module.cc
|
| @@ -190,6 +190,10 @@ class AudioCodingModuleImpl final : public AudioCodingModule {
|
|
|
| int DisableOpusDtx() override;
|
|
|
| + int EnableOpusCbr() override;
|
| +
|
| + int DisableOpusCbr() override;
|
| +
|
| int UnregisterReceiveCodec(uint8_t payload_type) override;
|
|
|
| int EnableNack(size_t max_nack_list_size) override;
|
| @@ -400,6 +404,7 @@ class RawAudioEncoderWrapper final : public AudioEncoder {
|
| }
|
| void Reset() override { return enc_->Reset(); }
|
| bool SetFec(bool enable) override { return enc_->SetFec(enable); }
|
| + bool SetCbr(bool enable) override { return enc_->SetCbr(enable); }
|
| bool SetDtx(bool enable) override { return enc_->SetDtx(enable); }
|
| bool SetApplication(Application application) override {
|
| return enc_->SetApplication(application);
|
| @@ -1234,6 +1239,22 @@ int AudioCodingModuleImpl::DisableOpusDtx() {
|
| return encoder_stack_->SetDtx(false) ? 0 : -1;
|
| }
|
|
|
| +int AudioCodingModuleImpl::EnableOpusCbr() {
|
| + rtc::CritScope lock(&acm_crit_sect_);
|
| + if (!HaveValidEncoder("EnableOpusCbr")) {
|
| + return -1;
|
| + }
|
| + return encoder_stack_->SetCbr(true) ? 0 : -1;
|
| +}
|
| +
|
| +int AudioCodingModuleImpl::DisableOpusCbr() {
|
| + rtc::CritScope lock(&acm_crit_sect_);
|
| + if (!HaveValidEncoder("DisableOpusCbr")) {
|
| + return -1;
|
| + }
|
| + return encoder_stack_->SetCbr(false) ? 0 : -1;
|
| +}
|
| +
|
| int32_t AudioCodingModuleImpl::PlayoutTimestamp(uint32_t* timestamp) {
|
| rtc::Optional<uint32_t> ts = PlayoutTimestamp();
|
| if (!ts)
|
|
|