Index: webrtc/api/peerconnectioninterface.h |
diff --git a/webrtc/api/peerconnectioninterface.h b/webrtc/api/peerconnectioninterface.h |
index 9259275b86a99071131fc5beeb9b422c71920269..59bc160014d65250da978281a90d920c671ab2ca 100644 |
--- a/webrtc/api/peerconnectioninterface.h |
+++ b/webrtc/api/peerconnectioninterface.h |
@@ -70,6 +70,7 @@ |
#include "webrtc/base/rtccertificate.h" |
#include "webrtc/base/socketaddress.h" |
#include "webrtc/base/sslstreamadapter.h" |
+#include "webrtc/media/base/mediachannel.h" |
#include "webrtc/p2p/base/portallocator.h" |
namespace rtc { |
@@ -222,6 +223,11 @@ class PeerConnectionInterface : public rtc::RefCountInterface { |
}; |
// TODO(hbos): Change into class with private data and public getters. |
+ // TODO(nisse): In particular, accessing fields directly from an |
+ // application is brittle, since the organization mirrors the |
+ // organization of the implementation, which isn't stable. So we |
+ // need getters and setters at least for fields which applications |
+ // are interested in. |
struct RTCConfiguration { |
// This struct is subject to reorganization, both for naming |
// consistency, and to group settings to match where they are used |
@@ -229,28 +235,33 @@ class PeerConnectionInterface : public rtc::RefCountInterface { |
// methods for all settings which are of interest to applications, |
// Chrome in particular. |
- bool dscp() { return enable_dscp.value_or(false); } |
- void set_dscp(bool enable) { enable_dscp = rtc::Optional<bool>(enable); } |
+ bool dscp() { return media_config.enable_dscp; } |
+ void set_dscp(bool enable) { media_config.enable_dscp = enable; } |
// TODO(nisse): The corresponding flag in MediaConfig and |
// elsewhere should be renamed enable_cpu_adaptation. |
- bool cpu_adaptation() { return cpu_overuse_detection.value_or(true); } |
+ bool cpu_adaptation() { |
+ return media_config.video.enable_cpu_overuse_detection; |
+ } |
void set_cpu_adaptation(bool enable) { |
- cpu_overuse_detection = rtc::Optional<bool>(enable); |
+ media_config.video.enable_cpu_overuse_detection = enable; |
} |
- // TODO(nisse): Currently no getter method, since it collides with |
- // the flag itself. Add when the flag is moved to MediaConfig. |
+ bool suspend_below_min_bitrate() { |
+ return media_config.video.suspend_below_min_bitrate; |
+ } |
void set_suspend_below_min_bitrate(bool enable) { |
- suspend_below_min_bitrate = rtc::Optional<bool>(enable); |
+ media_config.video.suspend_below_min_bitrate = enable; |
} |
// TODO(nisse): The negation in the corresponding MediaConfig |
// attribute is inconsistent, and it should be renamed at some |
// point. |
- bool prerenderer_smoothing() { return !disable_prerenderer_smoothing; } |
+ bool prerenderer_smoothing() { |
+ return !media_config.video.disable_prerenderer_smoothing; |
+ } |
void set_prerenderer_smoothing(bool enable) { |
- disable_prerenderer_smoothing = !enable; |
+ media_config.video.disable_prerenderer_smoothing = !enable; |
} |
static const int kUndefined = -1; |
@@ -271,16 +282,13 @@ class PeerConnectionInterface : public rtc::RefCountInterface { |
int ice_backup_candidate_pair_ping_interval; // ms |
ContinualGatheringPolicy continual_gathering_policy; |
std::vector<rtc::scoped_refptr<rtc::RTCCertificate>> certificates; |
- bool disable_prerenderer_smoothing; |
bool prioritize_most_likely_ice_candidate_pairs; |
+ struct cricket::MediaConfig media_config; |
// Flags corresponding to values set by constraint flags. |
// rtc::Optional flags can be "missing", in which case the webrtc |
// default applies. |
bool disable_ipv6; |
- rtc::Optional<bool> enable_dscp; |
bool enable_rtp_data_channel; |
- rtc::Optional<bool> cpu_overuse_detection; |
- rtc::Optional<bool> suspend_below_min_bitrate; |
rtc::Optional<int> screencast_min_bitrate; |
rtc::Optional<bool> combined_audio_video_bwe; |
rtc::Optional<bool> enable_dtls_srtp; |
@@ -294,7 +302,6 @@ class PeerConnectionInterface : public rtc::RefCountInterface { |
ice_connection_receiving_timeout(kUndefined), |
ice_backup_candidate_pair_ping_interval(kUndefined), |
continual_gathering_policy(GATHER_ONCE), |
- disable_prerenderer_smoothing(false), |
prioritize_most_likely_ice_candidate_pairs(false), |
disable_ipv6(false), |
enable_rtp_data_channel(false) {} |