Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(66)

Unified Diff: webrtc/media/engine/webrtcvoiceengine.cc

Issue 2686043006: WebRtcVoiceMediaChannel::AddRecvStream: Don't call SetRecPayloadType (Closed)
Patch Set: rebase Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/media/engine/webrtcvoiceengine.h ('k') | webrtc/media/engine/webrtcvoiceengine_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/media/engine/webrtcvoiceengine.cc
diff --git a/webrtc/media/engine/webrtcvoiceengine.cc b/webrtc/media/engine/webrtcvoiceengine.cc
index 7c6d7940f685cd9e11aa4f90227b93582ccf6ce0..31a9d27184c785e40d286779b1e1199b4c3e7d12 100644
--- a/webrtc/media/engine/webrtcvoiceengine.cc
+++ b/webrtc/media/engine/webrtcvoiceengine.cc
@@ -132,13 +132,6 @@ std::string ToString(const AudioCodec& codec) {
return ss.str();
}
-std::string ToString(const webrtc::CodecInst& codec) {
- std::stringstream ss;
- ss << codec.plname << "/" << codec.plfreq << "/" << codec.channels
- << " (" << codec.pltype << ")";
- return ss.str();
-}
-
bool IsCodec(const AudioCodec& codec, const char* ref_name) {
return (_stricmp(codec.name.c_str(), ref_name) == 0);
}
@@ -1466,7 +1459,8 @@ class WebRtcVoiceMediaChannel::WebRtcAudioReceiveStream {
const std::vector<webrtc::RtpExtension>& extensions,
webrtc::Call* call,
webrtc::Transport* rtcp_send_transport,
- const rtc::scoped_refptr<webrtc::AudioDecoderFactory>& decoder_factory)
+ const rtc::scoped_refptr<webrtc::AudioDecoderFactory>& decoder_factory,
+ const std::map<int, webrtc::SdpAudioFormat>& decoder_map)
: call_(call), config_() {
RTC_DCHECK_GE(ch, 0);
RTC_DCHECK(call);
@@ -1479,6 +1473,7 @@ class WebRtcVoiceMediaChannel::WebRtcAudioReceiveStream {
config_.voe_channel_id = ch;
config_.sync_group = sync_group;
config_.decoder_factory = decoder_factory;
+ config_.decoder_map = decoder_map;
RecreateAudioReceiveStream();
}
@@ -1867,8 +1862,9 @@ bool WebRtcVoiceMediaChannel::SetRecvCodecs(
ChangePlayout(false);
}
+ decoder_map_ = std::move(decoder_map);
for (auto& kv : recv_streams_) {
- kv.second->RecreateAudioReceiveStream(decoder_map);
+ kv.second->RecreateAudioReceiveStream(decoder_map_);
}
recv_codecs_ = codecs;
@@ -2225,38 +2221,12 @@ bool WebRtcVoiceMediaChannel::AddRecvStream(const StreamParams& sp) {
return false;
}
- // Turn off all supported codecs.
- // TODO(solenberg): Remove once "no codecs" is the default state of a stream.
- for (webrtc::CodecInst voe_codec : webrtc::acm2::RentACodec::Database()) {
- voe_codec.pltype = -1;
- if (engine()->voe()->codec()->SetRecPayloadType(channel, voe_codec) == -1) {
- LOG_RTCERR2(SetRecPayloadType, channel, ToString(voe_codec));
- DeleteVoEChannel(channel);
- return false;
- }
- }
-
- // Only enable those configured for this channel.
- for (const auto& codec : recv_codecs_) {
- webrtc::CodecInst voe_codec = {0};
- if (WebRtcVoiceEngine::ToCodecInst(codec, &voe_codec)) {
- voe_codec.pltype = codec.id;
- if (engine()->voe()->codec()->SetRecPayloadType(
- channel, voe_codec) == -1) {
- LOG_RTCERR2(SetRecPayloadType, channel, ToString(voe_codec));
- DeleteVoEChannel(channel);
- return false;
- }
- }
- }
-
recv_streams_.insert(std::make_pair(
- ssrc, new WebRtcAudioReceiveStream(channel, ssrc, receiver_reports_ssrc_,
- recv_transport_cc_enabled_,
- recv_nack_enabled_,
- sp.sync_label, recv_rtp_extensions_,
- call_, this,
- engine()->decoder_factory_)));
+ ssrc,
+ new WebRtcAudioReceiveStream(
+ channel, ssrc, receiver_reports_ssrc_, recv_transport_cc_enabled_,
+ recv_nack_enabled_, sp.sync_label, recv_rtp_extensions_, call_, this,
+ engine()->decoder_factory_, decoder_map_)));
recv_streams_[ssrc]->SetPlayout(playout_);
return true;
« no previous file with comments | « webrtc/media/engine/webrtcvoiceengine.h ('k') | webrtc/media/engine/webrtcvoiceengine_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698