Index: remoting/protocol/session_config.cc |
diff --git a/remoting/protocol/session_config.cc b/remoting/protocol/session_config.cc |
index 528d96c400268959a7ef07d54421c6b4287c9f81..8479a043dd7d4de4df9b2e215fd23f0ccb9790e6 100644 |
--- a/remoting/protocol/session_config.cc |
+++ b/remoting/protocol/session_config.cc |
@@ -31,6 +31,9 @@ void ChannelConfig::Reset() { |
codec = CODEC_UNDEFINED; |
} |
+SessionConfig::SessionConfig() { |
+} |
+ |
// static |
SessionConfig SessionConfig::GetDefault() { |
SessionConfig result; |
@@ -43,6 +46,9 @@ SessionConfig SessionConfig::GetDefault() { |
result.set_video_config(ChannelConfig(ChannelConfig::TRANSPORT_STREAM, |
kDefaultStreamVersion, |
ChannelConfig::CODEC_VP8)); |
+ result.set_audio_config(ChannelConfig(ChannelConfig::TRANSPORT_STREAM, |
+ kDefaultStreamVersion, |
+ ChannelConfig::CODEC_VERBATIM)); |
return result; |
} |
@@ -52,7 +58,8 @@ CandidateSessionConfig::CandidateSessionConfig( |
const CandidateSessionConfig& config) |
: control_configs_(config.control_configs_), |
event_configs_(config.event_configs_), |
- video_configs_(config.video_configs_) { |
+ video_configs_(config.video_configs_), |
+ audio_configs_(config.audio_configs_) { |
} |
CandidateSessionConfig::~CandidateSessionConfig() { } |
@@ -63,19 +70,23 @@ bool CandidateSessionConfig::Select( |
ChannelConfig control_config; |
ChannelConfig event_config; |
ChannelConfig video_config; |
+ ChannelConfig audio_config; |
if (!SelectCommonChannelConfig( |
control_configs_, client_config->control_configs_, &control_config) || |
!SelectCommonChannelConfig( |
event_configs_, client_config->event_configs_, &event_config) || |
!SelectCommonChannelConfig( |
- video_configs_, client_config->video_configs_, &video_config)) { |
+ video_configs_, client_config->video_configs_, &video_config) || |
+ !SelectCommonChannelConfig( |
+ audio_configs_, client_config->audio_configs_, &audio_config)) { |
return false; |
} |
result->set_control_config(control_config); |
result->set_event_config(event_config); |
result->set_video_config(video_config); |
+ result->set_audio_config(audio_config); |
return true; |
} |
@@ -85,19 +96,22 @@ bool CandidateSessionConfig::IsSupported( |
return |
IsChannelConfigSupported(control_configs_, config.control_config()) && |
IsChannelConfigSupported(event_configs_, config.event_config()) && |
- IsChannelConfigSupported(video_configs_, config.video_config()); |
+ IsChannelConfigSupported(video_configs_, config.video_config()) && |
+ IsChannelConfigSupported(audio_configs_, config.audio_config()); |
} |
bool CandidateSessionConfig::GetFinalConfig(SessionConfig* result) const { |
if (control_configs_.size() != 1 || |
event_configs_.size() != 1 || |
- video_configs_.size() != 1) { |
+ video_configs_.size() != 1 || |
+ audio_configs_.size() != 1) { |
return false; |
} |
result->set_control_config(control_configs_.front()); |
result->set_event_config(event_configs_.front()); |
result->set_video_config(video_configs_.front()); |
+ result->set_audio_config(audio_configs_.front()); |
return true; |
} |
@@ -142,6 +156,7 @@ scoped_ptr<CandidateSessionConfig> CandidateSessionConfig::CreateFrom( |
result->mutable_control_configs()->push_back(config.control_config()); |
result->mutable_event_configs()->push_back(config.event_config()); |
result->mutable_video_configs()->push_back(config.video_config()); |
+ result->mutable_audio_configs()->push_back(config.audio_config()); |
return result.Pass(); |
} |
@@ -160,6 +175,18 @@ scoped_ptr<CandidateSessionConfig> CandidateSessionConfig::CreateDefault() { |
ChannelConfig(ChannelConfig::TRANSPORT_STREAM, |
kDefaultStreamVersion, |
ChannelConfig::CODEC_VP8)); |
+ result->mutable_audio_configs()->push_back( |
+ ChannelConfig(ChannelConfig::TRANSPORT_NONE, |
+ kDefaultStreamVersion, |
+ ChannelConfig::CODEC_VERBATIM)); |
+ result->mutable_audio_configs()->push_back( |
+ ChannelConfig(ChannelConfig::TRANSPORT_STREAM, |
+ kDefaultStreamVersion, |
+ ChannelConfig::CODEC_VERBATIM)); |
+ result->mutable_audio_configs()->push_back( |
+ ChannelConfig(ChannelConfig::TRANSPORT_STREAM, |
+ kDefaultStreamVersion, |
+ ChannelConfig::CODEC_VORBIS)); |
return result.Pass(); |
} |