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

Unified Diff: remoting/protocol/session_config.cc

Issue 1099203005: Revert of Use standard ICE in Chromoting. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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 | « remoting/protocol/session_config.h ('k') | remoting/protocol/transport.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/protocol/session_config.cc
diff --git a/remoting/protocol/session_config.cc b/remoting/protocol/session_config.cc
index f6163f4fa8df622d07e92dfa5ce85620ec484416..460da2807bfa7bd13b1cbdbca1eac2b837b08e66 100644
--- a/remoting/protocol/session_config.cc
+++ b/remoting/protocol/session_config.cc
@@ -9,18 +9,124 @@
namespace remoting {
namespace protocol {
-namespace {
-
-bool IsChannelConfigSupported(const std::list<ChannelConfig>& list,
- const ChannelConfig& value) {
- return std::find(list.begin(), list.end(), value) != list.end();
-}
-
-bool SelectCommonChannelConfig(const std::list<ChannelConfig>& host_configs,
- const std::list<ChannelConfig>& client_configs,
- ChannelConfig* config) {
- // Usually each of these lists will contain just a few elements, so iterating
- // over all of them is not a problem.
+const int kDefaultStreamVersion = 2;
+const int kControlStreamVersion = 3;
+
+ChannelConfig ChannelConfig::None() {
+ return ChannelConfig();
+}
+
+ChannelConfig::ChannelConfig()
+ : transport(TRANSPORT_NONE),
+ version(0),
+ codec(CODEC_UNDEFINED) {
+}
+
+ChannelConfig::ChannelConfig(TransportType transport, int version, Codec codec)
+ : transport(transport),
+ version(version),
+ codec(codec) {
+}
+
+bool ChannelConfig::operator==(const ChannelConfig& b) const {
+ // If the transport field is set to NONE then all other fields are irrelevant.
+ if (transport == ChannelConfig::TRANSPORT_NONE)
+ return transport == b.transport;
+ return transport == b.transport && version == b.version && codec == b.codec;
+}
+
+SessionConfig::SessionConfig() {
+}
+
+// static
+SessionConfig SessionConfig::ForTest() {
+ SessionConfig result;
+ result.set_control_config(ChannelConfig(ChannelConfig::TRANSPORT_MUX_STREAM,
+ kControlStreamVersion,
+ ChannelConfig::CODEC_UNDEFINED));
+ result.set_event_config(ChannelConfig(ChannelConfig::TRANSPORT_MUX_STREAM,
+ kDefaultStreamVersion,
+ ChannelConfig::CODEC_UNDEFINED));
+ result.set_video_config(ChannelConfig(ChannelConfig::TRANSPORT_STREAM,
+ kDefaultStreamVersion,
+ ChannelConfig::CODEC_VP8));
+ result.set_audio_config(ChannelConfig(ChannelConfig::TRANSPORT_NONE,
+ kDefaultStreamVersion,
+ ChannelConfig::CODEC_UNDEFINED));
+ return result;
+}
+
+CandidateSessionConfig::CandidateSessionConfig() { }
+
+CandidateSessionConfig::CandidateSessionConfig(
+ const CandidateSessionConfig& config)
+ : control_configs_(config.control_configs_),
+ event_configs_(config.event_configs_),
+ video_configs_(config.video_configs_),
+ audio_configs_(config.audio_configs_) {
+}
+
+CandidateSessionConfig::~CandidateSessionConfig() { }
+
+bool CandidateSessionConfig::Select(
+ const CandidateSessionConfig* client_config,
+ SessionConfig* result) {
+ 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) ||
+ !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;
+}
+
+bool CandidateSessionConfig::IsSupported(
+ const SessionConfig& config) const {
+ return
+ IsChannelConfigSupported(control_configs_, config.control_config()) &&
+ IsChannelConfigSupported(event_configs_, config.event_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 ||
+ 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;
+}
+
+// static
+bool CandidateSessionConfig::SelectCommonChannelConfig(
+ const std::list<ChannelConfig>& host_configs,
+ const std::list<ChannelConfig>& client_configs,
+ ChannelConfig* config) {
+ // Usually each of these vectors will contain just several elements,
+ // so iterating over all of them is not a problem.
std::list<ChannelConfig>::const_iterator it;
for (it = client_configs.begin(); it != client_configs.end(); ++it) {
if (IsChannelConfigSupported(host_configs, *it)) {
@@ -31,129 +137,11 @@
return false;
}
-} // namespace
-
-const int kDefaultStreamVersion = 2;
-const int kControlStreamVersion = 3;
-
-ChannelConfig ChannelConfig::None() {
- return ChannelConfig();
-}
-
-ChannelConfig::ChannelConfig(TransportType transport, int version, Codec codec)
- : transport(transport),
- version(version),
- codec(codec) {
-}
-
-bool ChannelConfig::operator==(const ChannelConfig& b) const {
- // If the transport field is set to NONE then all other fields are irrelevant.
- if (transport == ChannelConfig::TRANSPORT_NONE)
- return transport == b.transport;
- return transport == b.transport && version == b.version && codec == b.codec;
-}
-
-// static
-scoped_ptr<SessionConfig> SessionConfig::SelectCommon(
- const CandidateSessionConfig* client_config,
- const CandidateSessionConfig* host_config) {
- scoped_ptr<SessionConfig> result(new SessionConfig());
- ChannelConfig control_config;
- ChannelConfig event_config;
- ChannelConfig video_config;
- ChannelConfig audio_config;
-
- result->standard_ice_ =
- host_config->standard_ice() && client_config->standard_ice();
-
- if (!SelectCommonChannelConfig(host_config->control_configs(),
- client_config->control_configs(),
- &result->control_config_) ||
- !SelectCommonChannelConfig(host_config->event_configs(),
- client_config->event_configs(),
- &result->event_config_) ||
- !SelectCommonChannelConfig(host_config->video_configs(),
- client_config->video_configs(),
- &result->video_config_) ||
- !SelectCommonChannelConfig(host_config->audio_configs(),
- client_config->audio_configs(),
- &result->audio_config_)) {
- return nullptr;
- }
-
- return result;
-}
-
-// static
-scoped_ptr<SessionConfig> SessionConfig::GetFinalConfig(
- const CandidateSessionConfig* candidate_config) {
- if (candidate_config->control_configs().size() != 1 ||
- candidate_config->event_configs().size() != 1 ||
- candidate_config->video_configs().size() != 1 ||
- candidate_config->audio_configs().size() != 1) {
- return nullptr;
- }
-
- scoped_ptr<SessionConfig> result(new SessionConfig());
- result->standard_ice_ = candidate_config->standard_ice();
- result->control_config_ = candidate_config->control_configs().front();
- result->event_config_ = candidate_config->event_configs().front();
- result->video_config_ = candidate_config->video_configs().front();
- result->audio_config_ = candidate_config->audio_configs().front();
-
- return result.Pass();
-}
-
-// static
-scoped_ptr<SessionConfig> SessionConfig::ForTest() {
- scoped_ptr<SessionConfig> result(new SessionConfig());
- result->standard_ice_ = true;
- result->control_config_ = ChannelConfig(ChannelConfig::TRANSPORT_MUX_STREAM,
- kControlStreamVersion,
- ChannelConfig::CODEC_UNDEFINED);
- result->event_config_ = ChannelConfig(ChannelConfig::TRANSPORT_MUX_STREAM,
- kDefaultStreamVersion,
- ChannelConfig::CODEC_UNDEFINED);
- result->video_config_ = ChannelConfig(ChannelConfig::TRANSPORT_STREAM,
- kDefaultStreamVersion,
- ChannelConfig::CODEC_VP8);
- result->audio_config_ = ChannelConfig(ChannelConfig::TRANSPORT_NONE,
- kDefaultStreamVersion,
- ChannelConfig::CODEC_UNDEFINED);
- return result.Pass();
-}
-
-// static
-scoped_ptr<SessionConfig> SessionConfig::WithLegacyIceForTest() {
- scoped_ptr<SessionConfig> result = ForTest();
- result->standard_ice_ = false;
- return result.Pass();
-}
-
-SessionConfig::SessionConfig() {
-}
-
-
-CandidateSessionConfig::CandidateSessionConfig() { }
-
-CandidateSessionConfig::CandidateSessionConfig(
- const CandidateSessionConfig& config)
- : standard_ice_(true),
- control_configs_(config.control_configs_),
- event_configs_(config.event_configs_),
- video_configs_(config.video_configs_),
- audio_configs_(config.audio_configs_) {
-}
-
-CandidateSessionConfig::~CandidateSessionConfig() { }
-
-bool CandidateSessionConfig::IsSupported(
- const SessionConfig& config) const {
- return
- IsChannelConfigSupported(control_configs_, config.control_config()) &&
- IsChannelConfigSupported(event_configs_, config.event_config()) &&
- IsChannelConfigSupported(video_configs_, config.video_config()) &&
- IsChannelConfigSupported(audio_configs_, config.audio_config());
+// static
+bool CandidateSessionConfig::IsChannelConfigSupported(
+ const std::list<ChannelConfig>& vector,
+ const ChannelConfig& value) {
+ return std::find(vector.begin(), vector.end(), value) != vector.end();
}
scoped_ptr<CandidateSessionConfig> CandidateSessionConfig::Clone() const {
@@ -169,7 +157,6 @@
scoped_ptr<CandidateSessionConfig> CandidateSessionConfig::CreateFrom(
const SessionConfig& config) {
scoped_ptr<CandidateSessionConfig> result = CreateEmpty();
- result->set_standard_ice(config.standard_ice());
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());
@@ -181,8 +168,6 @@
scoped_ptr<CandidateSessionConfig> CandidateSessionConfig::CreateDefault() {
scoped_ptr<CandidateSessionConfig> result = CreateEmpty();
- result->set_standard_ice(true);
-
// Control channel.
result->mutable_control_configs()->push_back(
ChannelConfig(ChannelConfig::TRANSPORT_MUX_STREAM,
« no previous file with comments | « remoting/protocol/session_config.h ('k') | remoting/protocol/transport.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698