Index: webrtc/modules/audio_coding/acm2/audio_coding_module_impl.h |
diff --git a/webrtc/modules/audio_coding/acm2/audio_coding_module_impl.h b/webrtc/modules/audio_coding/acm2/audio_coding_module_impl.h |
index 195ec28deaadac325b51d60edbeacbf341b3bc4f..e463d29f9b53dddf3e94d5804371d2594b8d5583 100644 |
--- a/webrtc/modules/audio_coding/acm2/audio_coding_module_impl.h |
+++ b/webrtc/modules/audio_coding/acm2/audio_coding_module_impl.h |
@@ -49,6 +49,9 @@ class AudioCodingModuleImpl final : public AudioCodingModule { |
void RegisterExternalSendCodec( |
AudioEncoder* external_speech_encoder) override; |
+ void ModifyEncoder( |
+ FunctionView<void(std::unique_ptr<AudioEncoder>*)> modifier) override; |
+ |
// Get current send codec. |
rtc::Optional<CodecInst> SendCodec() const override; |
@@ -119,9 +122,10 @@ class AudioCodingModuleImpl final : public AudioCodingModule { |
// Get current playout frequency. |
int PlayoutFrequency() const override; |
- // Register possible receive codecs, can be called multiple times, |
- // for codecs, CNG, DTMF, RED. |
int RegisterReceiveCodec(const CodecInst& receive_codec) override; |
+ int RegisterReceiveCodec( |
+ const CodecInst& receive_codec, |
+ FunctionView<std::unique_ptr<AudioDecoder>()> isac_factory) override; |
int RegisterExternalReceiveCodec(int rtp_payload_type, |
AudioDecoder* external_decoder, |
@@ -213,6 +217,11 @@ class AudioCodingModuleImpl final : public AudioCodingModule { |
const std::string histogram_name_; |
}; |
+ int RegisterReceiveCodecUnlocked( |
+ const CodecInst& codec, |
+ FunctionView<std::unique_ptr<AudioDecoder>()> isac_factory) |
+ EXCLUSIVE_LOCKS_REQUIRED(acm_crit_sect_); |
+ |
int Add10MsDataInternal(const AudioFrame& audio_frame, InputData* input_data) |
EXCLUSIVE_LOCKS_REQUIRED(acm_crit_sect_); |
int Encode(const InputData& input_data) |
@@ -258,6 +267,8 @@ class AudioCodingModuleImpl final : public AudioCodingModule { |
// RegisterEncoder. |
std::unique_ptr<AudioEncoder> encoder_stack_ GUARDED_BY(acm_crit_sect_); |
+ std::unique_ptr<AudioDecoder> isac_decoder_ GUARDED_BY(acm_crit_sect_); |
+ |
// This is to keep track of CN instances where we can send DTMFs. |
uint8_t previous_pltype_ GUARDED_BY(acm_crit_sect_); |