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

Side by Side Diff: webrtc/api/peerconnectioninterface.h

Issue 1818033002: Embed a cricket::MediaConfig in RTCConfiguration. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Rebased. Created 4 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 unified diff | Download patch
« no previous file with comments | « webrtc/api/peerconnectionfactory.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 #include "webrtc/api/mediastreaminterface.h" 63 #include "webrtc/api/mediastreaminterface.h"
64 #include "webrtc/api/rtpreceiverinterface.h" 64 #include "webrtc/api/rtpreceiverinterface.h"
65 #include "webrtc/api/rtpsenderinterface.h" 65 #include "webrtc/api/rtpsenderinterface.h"
66 #include "webrtc/api/statstypes.h" 66 #include "webrtc/api/statstypes.h"
67 #include "webrtc/api/umametrics.h" 67 #include "webrtc/api/umametrics.h"
68 #include "webrtc/base/fileutils.h" 68 #include "webrtc/base/fileutils.h"
69 #include "webrtc/base/network.h" 69 #include "webrtc/base/network.h"
70 #include "webrtc/base/rtccertificate.h" 70 #include "webrtc/base/rtccertificate.h"
71 #include "webrtc/base/socketaddress.h" 71 #include "webrtc/base/socketaddress.h"
72 #include "webrtc/base/sslstreamadapter.h" 72 #include "webrtc/base/sslstreamadapter.h"
73 #include "webrtc/media/base/mediachannel.h"
73 #include "webrtc/p2p/base/portallocator.h" 74 #include "webrtc/p2p/base/portallocator.h"
74 75
75 namespace rtc { 76 namespace rtc {
76 class SSLIdentity; 77 class SSLIdentity;
77 class Thread; 78 class Thread;
78 } 79 }
79 80
80 namespace cricket { 81 namespace cricket {
81 class WebRtcVideoDecoderFactory; 82 class WebRtcVideoDecoderFactory;
82 class WebRtcVideoEncoderFactory; 83 class WebRtcVideoEncoderFactory;
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 kTcpCandidatePolicyEnabled, 216 kTcpCandidatePolicyEnabled,
216 kTcpCandidatePolicyDisabled 217 kTcpCandidatePolicyDisabled
217 }; 218 };
218 219
219 enum ContinualGatheringPolicy { 220 enum ContinualGatheringPolicy {
220 GATHER_ONCE, 221 GATHER_ONCE,
221 GATHER_CONTINUALLY 222 GATHER_CONTINUALLY
222 }; 223 };
223 224
224 // TODO(hbos): Change into class with private data and public getters. 225 // TODO(hbos): Change into class with private data and public getters.
226 // TODO(nisse): In particular, accessing fields directly from an
227 // application is brittle, since the organization mirrors the
228 // organization of the implementation, which isn't stable. So we
229 // need getters and setters at least for fields which applications
230 // are interested in.
225 struct RTCConfiguration { 231 struct RTCConfiguration {
226 // This struct is subject to reorganization, both for naming 232 // This struct is subject to reorganization, both for naming
227 // consistency, and to group settings to match where they are used 233 // consistency, and to group settings to match where they are used
228 // in the implementation. To do that, we need getter and setter 234 // in the implementation. To do that, we need getter and setter
229 // methods for all settings which are of interest to applications, 235 // methods for all settings which are of interest to applications,
230 // Chrome in particular. 236 // Chrome in particular.
231 237
232 bool dscp() { return enable_dscp.value_or(false); } 238 bool dscp() { return media_config.enable_dscp; }
233 void set_dscp(bool enable) { enable_dscp = rtc::Optional<bool>(enable); } 239 void set_dscp(bool enable) { media_config.enable_dscp = enable; }
234 240
235 // TODO(nisse): The corresponding flag in MediaConfig and 241 // TODO(nisse): The corresponding flag in MediaConfig and
236 // elsewhere should be renamed enable_cpu_adaptation. 242 // elsewhere should be renamed enable_cpu_adaptation.
237 bool cpu_adaptation() { return cpu_overuse_detection.value_or(true); } 243 bool cpu_adaptation() {
244 return media_config.video.enable_cpu_overuse_detection;
245 }
238 void set_cpu_adaptation(bool enable) { 246 void set_cpu_adaptation(bool enable) {
239 cpu_overuse_detection = rtc::Optional<bool>(enable); 247 media_config.video.enable_cpu_overuse_detection = enable;
240 } 248 }
241 249
242 // TODO(nisse): Currently no getter method, since it collides with 250 bool suspend_below_min_bitrate() {
243 // the flag itself. Add when the flag is moved to MediaConfig. 251 return media_config.video.suspend_below_min_bitrate;
252 }
244 void set_suspend_below_min_bitrate(bool enable) { 253 void set_suspend_below_min_bitrate(bool enable) {
245 suspend_below_min_bitrate = rtc::Optional<bool>(enable); 254 media_config.video.suspend_below_min_bitrate = enable;
246 } 255 }
247 256
248 // TODO(nisse): The negation in the corresponding MediaConfig 257 // TODO(nisse): The negation in the corresponding MediaConfig
249 // attribute is inconsistent, and it should be renamed at some 258 // attribute is inconsistent, and it should be renamed at some
250 // point. 259 // point.
251 bool prerenderer_smoothing() { return !disable_prerenderer_smoothing; } 260 bool prerenderer_smoothing() {
261 return !media_config.video.disable_prerenderer_smoothing;
262 }
252 void set_prerenderer_smoothing(bool enable) { 263 void set_prerenderer_smoothing(bool enable) {
253 disable_prerenderer_smoothing = !enable; 264 media_config.video.disable_prerenderer_smoothing = !enable;
254 } 265 }
255 266
256 static const int kUndefined = -1; 267 static const int kUndefined = -1;
257 // Default maximum number of packets in the audio jitter buffer. 268 // Default maximum number of packets in the audio jitter buffer.
258 static const int kAudioJitterBufferMaxPackets = 50; 269 static const int kAudioJitterBufferMaxPackets = 50;
259 // TODO(pthatcher): Rename this ice_transport_type, but update 270 // TODO(pthatcher): Rename this ice_transport_type, but update
260 // Chromium at the same time. 271 // Chromium at the same time.
261 IceTransportsType type; 272 IceTransportsType type;
262 // TODO(pthatcher): Rename this ice_servers, but update Chromium 273 // TODO(pthatcher): Rename this ice_servers, but update Chromium
263 // at the same time. 274 // at the same time.
264 IceServers servers; 275 IceServers servers;
265 BundlePolicy bundle_policy; 276 BundlePolicy bundle_policy;
266 RtcpMuxPolicy rtcp_mux_policy; 277 RtcpMuxPolicy rtcp_mux_policy;
267 TcpCandidatePolicy tcp_candidate_policy; 278 TcpCandidatePolicy tcp_candidate_policy;
268 int audio_jitter_buffer_max_packets; 279 int audio_jitter_buffer_max_packets;
269 bool audio_jitter_buffer_fast_accelerate; 280 bool audio_jitter_buffer_fast_accelerate;
270 int ice_connection_receiving_timeout; // ms 281 int ice_connection_receiving_timeout; // ms
271 int ice_backup_candidate_pair_ping_interval; // ms 282 int ice_backup_candidate_pair_ping_interval; // ms
272 ContinualGatheringPolicy continual_gathering_policy; 283 ContinualGatheringPolicy continual_gathering_policy;
273 std::vector<rtc::scoped_refptr<rtc::RTCCertificate>> certificates; 284 std::vector<rtc::scoped_refptr<rtc::RTCCertificate>> certificates;
274 bool disable_prerenderer_smoothing;
275 bool prioritize_most_likely_ice_candidate_pairs; 285 bool prioritize_most_likely_ice_candidate_pairs;
286 struct cricket::MediaConfig media_config;
276 // Flags corresponding to values set by constraint flags. 287 // Flags corresponding to values set by constraint flags.
277 // rtc::Optional flags can be "missing", in which case the webrtc 288 // rtc::Optional flags can be "missing", in which case the webrtc
278 // default applies. 289 // default applies.
279 bool disable_ipv6; 290 bool disable_ipv6;
280 rtc::Optional<bool> enable_dscp;
281 bool enable_rtp_data_channel; 291 bool enable_rtp_data_channel;
282 rtc::Optional<bool> cpu_overuse_detection;
283 rtc::Optional<bool> suspend_below_min_bitrate;
284 rtc::Optional<int> screencast_min_bitrate; 292 rtc::Optional<int> screencast_min_bitrate;
285 rtc::Optional<bool> combined_audio_video_bwe; 293 rtc::Optional<bool> combined_audio_video_bwe;
286 rtc::Optional<bool> enable_dtls_srtp; 294 rtc::Optional<bool> enable_dtls_srtp;
287 RTCConfiguration() 295 RTCConfiguration()
288 : type(kAll), 296 : type(kAll),
289 bundle_policy(kBundlePolicyBalanced), 297 bundle_policy(kBundlePolicyBalanced),
290 rtcp_mux_policy(kRtcpMuxPolicyNegotiate), 298 rtcp_mux_policy(kRtcpMuxPolicyNegotiate),
291 tcp_candidate_policy(kTcpCandidatePolicyEnabled), 299 tcp_candidate_policy(kTcpCandidatePolicyEnabled),
292 audio_jitter_buffer_max_packets(kAudioJitterBufferMaxPackets), 300 audio_jitter_buffer_max_packets(kAudioJitterBufferMaxPackets),
293 audio_jitter_buffer_fast_accelerate(false), 301 audio_jitter_buffer_fast_accelerate(false),
294 ice_connection_receiving_timeout(kUndefined), 302 ice_connection_receiving_timeout(kUndefined),
295 ice_backup_candidate_pair_ping_interval(kUndefined), 303 ice_backup_candidate_pair_ping_interval(kUndefined),
296 continual_gathering_policy(GATHER_ONCE), 304 continual_gathering_policy(GATHER_ONCE),
297 disable_prerenderer_smoothing(false),
298 prioritize_most_likely_ice_candidate_pairs(false), 305 prioritize_most_likely_ice_candidate_pairs(false),
299 disable_ipv6(false), 306 disable_ipv6(false),
300 enable_rtp_data_channel(false) {} 307 enable_rtp_data_channel(false) {}
301 }; 308 };
302 309
303 struct RTCOfferAnswerOptions { 310 struct RTCOfferAnswerOptions {
304 static const int kUndefined = -1; 311 static const int kUndefined = -1;
305 static const int kMaxOfferToReceiveMedia = 1; 312 static const int kMaxOfferToReceiveMedia = 1;
306 313
307 // The default value for constraint offerToReceiveX:true. 314 // The default value for constraint offerToReceiveX:true.
(...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after
687 CreatePeerConnectionFactory( 694 CreatePeerConnectionFactory(
688 rtc::Thread* worker_thread, 695 rtc::Thread* worker_thread,
689 rtc::Thread* signaling_thread, 696 rtc::Thread* signaling_thread,
690 AudioDeviceModule* default_adm, 697 AudioDeviceModule* default_adm,
691 cricket::WebRtcVideoEncoderFactory* encoder_factory, 698 cricket::WebRtcVideoEncoderFactory* encoder_factory,
692 cricket::WebRtcVideoDecoderFactory* decoder_factory); 699 cricket::WebRtcVideoDecoderFactory* decoder_factory);
693 700
694 } // namespace webrtc 701 } // namespace webrtc
695 702
696 #endif // WEBRTC_API_PEERCONNECTIONINTERFACE_H_ 703 #endif // WEBRTC_API_PEERCONNECTIONINTERFACE_H_
OLDNEW
« no previous file with comments | « webrtc/api/peerconnectionfactory.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698