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

Unified 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/api/peerconnectionfactory.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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) {}
« 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