Index: webrtc/audio/audio_send_stream.h |
diff --git a/webrtc/audio/audio_send_stream.h b/webrtc/audio/audio_send_stream.h |
index 567799c336f7bbaba1436a323148fce71f0f1329..5dccf0109f71861d23bd8b22ca13c7cd51e488bd 100644 |
--- a/webrtc/audio/audio_send_stream.h |
+++ b/webrtc/audio/audio_send_stream.h |
@@ -48,6 +48,8 @@ class AudioSendStream final : public webrtc::AudioSendStream, |
~AudioSendStream() override; |
// webrtc::AudioSendStream implementation. |
+ void Reconfigure(const webrtc::AudioSendStream::Config& config) override; |
+ |
void Start() override; |
void Stop() override; |
bool SendTelephoneEvent(int payload_type, int payload_frequency, int event, |
@@ -75,14 +77,28 @@ class AudioSendStream final : public webrtc::AudioSendStream, |
private: |
VoiceEngine* voice_engine() const; |
- bool SetupSendCodec(); |
+ // These are all static to make it less likely that (the old) config_ is |
+ // accessed unintentionally. |
+ static void ConfigureStream(AudioSendStream* stream, |
+ const Config& new_config); |
+ static bool SetupSendCodec(AudioSendStream* stream, const Config& new_config); |
+ static bool ReconfigureSendCodec(AudioSendStream* stream, |
+ const Config& new_config); |
+ static void ReconfigureANA(AudioSendStream* stream, const Config& new_config); |
+ static void ReconfigureCNG(AudioSendStream* stream, const Config& new_config); |
+ static void ReconfigureBitrateObserver(AudioSendStream* stream, |
+ const Config& new_config); |
+ |
+ void ConfigureBitrateObserver(int min_bitrate_bps, int max_bitrate_bps); |
+ void RemoveBitrateObserver(); |
rtc::ThreadChecker worker_thread_checker_; |
rtc::ThreadChecker pacer_thread_checker_; |
rtc::TaskQueue* worker_queue_; |
- const webrtc::AudioSendStream::Config config_; |
+ webrtc::AudioSendStream::Config config_; |
rtc::scoped_refptr<webrtc::AudioState> audio_state_; |
std::unique_ptr<voe::ChannelProxy> channel_proxy_; |
+ RtcEventLog* const event_log_; |
BitrateAllocator* const bitrate_allocator_; |
RtpTransportControllerSendInterface* const transport_; |
@@ -92,6 +108,8 @@ class AudioSendStream final : public webrtc::AudioSendStream, |
TransportFeedbackPacketLossTracker packet_loss_tracker_ |
GUARDED_BY(&packet_loss_tracker_cs_); |
+ bool is_configured_ = false; |
+ |
RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(AudioSendStream); |
}; |
} // namespace internal |