Index: webrtc/media/engine/webrtcvoiceengine.h |
diff --git a/webrtc/media/engine/webrtcvoiceengine.h b/webrtc/media/engine/webrtcvoiceengine.h |
index dbb7ea6e76715a811b75a9b907c0e7c4b077fef1..1d45f6e6c2a0ce0be9d439fb436a37b09f88125c 100644 |
--- a/webrtc/media/engine/webrtcvoiceengine.h |
+++ b/webrtc/media/engine/webrtcvoiceengine.h |
@@ -211,10 +211,13 @@ class WebRtcVoiceMediaChannel final : public VoiceMediaChannel, |
int GetSendChannelId(uint32_t ssrc) const; |
private: |
- bool SetSendCodecs(const std::vector<AudioCodec>& codecs); |
bool SetOptions(const AudioOptions& options); |
- bool SetMaxSendBandwidth(int bps); |
bool SetRecvCodecs(const std::vector<AudioCodec>& codecs); |
+ bool SetSendCodecs(const std::vector<AudioCodec>& codecs); |
+ bool SetSendCodecs(int channel); |
+ void SetNack(int channel, bool nack_enabled); |
+ bool SetSendCodec(int channel, const webrtc::CodecInst& send_codec); |
+ bool SetMaxSendBandwidth(int bps); |
bool SetLocalRenderer(uint32_t ssrc, AudioRenderer* renderer); |
bool MuteStream(uint32_t ssrc, bool mute); |
@@ -222,8 +225,6 @@ class WebRtcVoiceMediaChannel final : public VoiceMediaChannel, |
int GetLastEngineError() { return engine()->GetLastEngineError(); } |
int GetOutputLevel(int channel); |
bool SetPlayout(int channel, bool playout); |
- void SetNack(int channel, bool nack_enabled); |
- bool SetSendCodec(int channel, const webrtc::CodecInst& send_codec); |
bool ChangePlayout(bool playout); |
bool ChangeSend(SendFlags send); |
bool ChangeSend(int channel, SendFlags send); |
@@ -232,22 +233,21 @@ class WebRtcVoiceMediaChannel final : public VoiceMediaChannel, |
bool IsDefaultRecvStream(uint32_t ssrc) { |
return default_recv_ssrc_ == static_cast<int64_t>(ssrc); |
} |
- bool SetSendCodecs(int channel, const std::vector<AudioCodec>& codecs); |
bool SetSendBitrateInternal(int bps); |
+ bool HasSendCodec() const { |
+ return send_codec_spec_.codec_inst.pltype != -1; |
+ } |
rtc::ThreadChecker worker_thread_checker_; |
WebRtcVoiceEngine* const engine_ = nullptr; |
std::vector<AudioCodec> recv_codecs_; |
- std::vector<AudioCodec> send_codecs_; |
- std::unique_ptr<webrtc::CodecInst> send_codec_; |
bool send_bitrate_setting_ = false; |
int send_bitrate_bps_ = 0; |
AudioOptions options_; |
rtc::Optional<int> dtmf_payload_type_; |
bool desired_playout_ = false; |
- bool nack_enabled_ = false; |
- bool transport_cc_enabled_ = false; |
+ bool recv_transport_cc_enabled_ = false; |
bool playout_ = false; |
SendFlags desired_send_ = SEND_NOTHING; |
SendFlags send_ = SEND_NOTHING; |
@@ -272,6 +272,23 @@ class WebRtcVoiceMediaChannel final : public VoiceMediaChannel, |
std::map<uint32_t, WebRtcAudioReceiveStream*> recv_streams_; |
std::vector<webrtc::RtpExtension> recv_rtp_extensions_; |
+ struct SendCodecSpec { |
+ SendCodecSpec() { |
+ webrtc::CodecInst empty_inst = {0}; |
+ codec_inst = empty_inst; |
+ codec_inst.pltype = -1; |
+ } |
+ bool nack_enabled = false; |
+ bool transport_cc_enabled = false; |
+ bool enable_codec_fec = false; |
+ bool enable_opus_dtx = false; |
+ int opus_max_playback_rate = 0; |
+ int red_payload_type = -1; |
+ int cng_payload_type = -1; |
+ int cng_plfreq = -1; |
+ webrtc::CodecInst codec_inst; |
+ } send_codec_spec_; |
+ |
RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(WebRtcVoiceMediaChannel); |
}; |
} // namespace cricket |