OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef REMOTING_PROTOCOL_SESSION_CONFIG_H_ | 5 #ifndef REMOTING_PROTOCOL_SESSION_CONFIG_H_ |
6 #define REMOTING_PROTOCOL_SESSION_CONFIG_H_ | 6 #define REMOTING_PROTOCOL_SESSION_CONFIG_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 14 matching lines...) Expand all Loading... |
25 TRANSPORT_MUX_STREAM, | 25 TRANSPORT_MUX_STREAM, |
26 TRANSPORT_DATAGRAM, | 26 TRANSPORT_DATAGRAM, |
27 TRANSPORT_NONE, | 27 TRANSPORT_NONE, |
28 }; | 28 }; |
29 | 29 |
30 enum Codec { | 30 enum Codec { |
31 CODEC_UNDEFINED, // Used for event and control channels. | 31 CODEC_UNDEFINED, // Used for event and control channels. |
32 CODEC_VERBATIM, | 32 CODEC_VERBATIM, |
33 CODEC_ZIP, | 33 CODEC_ZIP, |
34 CODEC_VP8, | 34 CODEC_VP8, |
| 35 CODEC_VP9, |
35 CODEC_OPUS, | 36 CODEC_OPUS, |
36 CODEC_SPEEX, | 37 CODEC_SPEEX, |
37 }; | 38 }; |
38 | 39 |
39 // Creates a config with transport field set to TRANSPORT_NONE which indicates | 40 // Creates a config with transport field set to TRANSPORT_NONE which indicates |
40 // that corresponding channel is disabled. | 41 // that corresponding channel is disabled. |
41 static ChannelConfig None(); | 42 static ChannelConfig None(); |
42 | 43 |
43 // Default constructor. Equivalent to None(). | 44 // Default constructor. Equivalent to None(). |
44 ChannelConfig(); | 45 ChannelConfig(); |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
150 // or undefined (e.g. no configurations for a channel) then NULL is returned. | 151 // or undefined (e.g. no configurations for a channel) then NULL is returned. |
151 bool GetFinalConfig(SessionConfig* result) const; | 152 bool GetFinalConfig(SessionConfig* result) const; |
152 | 153 |
153 scoped_ptr<CandidateSessionConfig> Clone() const; | 154 scoped_ptr<CandidateSessionConfig> Clone() const; |
154 | 155 |
155 static scoped_ptr<CandidateSessionConfig> CreateEmpty(); | 156 static scoped_ptr<CandidateSessionConfig> CreateEmpty(); |
156 static scoped_ptr<CandidateSessionConfig> CreateFrom( | 157 static scoped_ptr<CandidateSessionConfig> CreateFrom( |
157 const SessionConfig& config); | 158 const SessionConfig& config); |
158 static scoped_ptr<CandidateSessionConfig> CreateDefault(); | 159 static scoped_ptr<CandidateSessionConfig> CreateDefault(); |
159 | 160 |
160 // Helper method that modifies |config| to disable audio support. | 161 // Modifies |config| to disable specific features. |
161 static void DisableAudioChannel(CandidateSessionConfig* config); | 162 static void DisableAudioChannel(CandidateSessionConfig* config); |
| 163 static void DisableVideoCodec(CandidateSessionConfig* config, |
| 164 ChannelConfig::Codec codec); |
162 | 165 |
163 private: | 166 private: |
164 CandidateSessionConfig(); | 167 CandidateSessionConfig(); |
165 explicit CandidateSessionConfig(const CandidateSessionConfig& config); | 168 explicit CandidateSessionConfig(const CandidateSessionConfig& config); |
166 CandidateSessionConfig& operator=(const CandidateSessionConfig& b); | 169 CandidateSessionConfig& operator=(const CandidateSessionConfig& b); |
167 | 170 |
168 static bool SelectCommonChannelConfig( | 171 static bool SelectCommonChannelConfig( |
169 const std::vector<ChannelConfig>& host_configs_, | 172 const std::vector<ChannelConfig>& host_configs_, |
170 const std::vector<ChannelConfig>& client_configs_, | 173 const std::vector<ChannelConfig>& client_configs_, |
171 ChannelConfig* config); | 174 ChannelConfig* config); |
172 static bool IsChannelConfigSupported(const std::vector<ChannelConfig>& vector, | 175 static bool IsChannelConfigSupported(const std::vector<ChannelConfig>& vector, |
173 const ChannelConfig& value); | 176 const ChannelConfig& value); |
174 | 177 |
175 std::vector<ChannelConfig> control_configs_; | 178 std::vector<ChannelConfig> control_configs_; |
176 std::vector<ChannelConfig> event_configs_; | 179 std::vector<ChannelConfig> event_configs_; |
177 std::vector<ChannelConfig> video_configs_; | 180 std::vector<ChannelConfig> video_configs_; |
178 std::vector<ChannelConfig> audio_configs_; | 181 std::vector<ChannelConfig> audio_configs_; |
179 }; | 182 }; |
180 | 183 |
181 } // namespace protocol | 184 } // namespace protocol |
182 } // namespace remoting | 185 } // namespace remoting |
183 | 186 |
184 #endif // REMOTING_PROTOCOL_SESSION_CONFIG_H_ | 187 #endif // REMOTING_PROTOCOL_SESSION_CONFIG_H_ |
OLD | NEW |