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

Unified Diff: webrtc/api/mediaconstraintsinterface.cc

Issue 2628523003: Stop using deprecated constraints-based version of CreateAudioSource. (Closed)
Patch Set: Missing bang. Created 3 years, 11 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/mediaconstraintsinterface.h ('k') | webrtc/api/peerconnectioninterface.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/api/mediaconstraintsinterface.cc
diff --git a/webrtc/api/mediaconstraintsinterface.cc b/webrtc/api/mediaconstraintsinterface.cc
index e35c067acc06624525c1ce2dcd67cab4bff1e5f8..5361a281a1ce44e1508371af5d8b85546dbc4ab7 100644
--- a/webrtc/api/mediaconstraintsinterface.cc
+++ b/webrtc/api/mediaconstraintsinterface.cc
@@ -13,6 +13,65 @@
#include "webrtc/api/peerconnectioninterface.h"
#include "webrtc/base/stringencode.h"
+namespace {
+
+// Find the highest-priority instance of the T-valued constraint named by
+// |key| and return its value as |value|. |constraints| can be null.
+// If |mandatory_constraints| is non-null, it is incremented if the key appears
+// among the mandatory constraints.
+// Returns true if the key was found and has a valid value for type T.
+// If the key appears multiple times as an optional constraint, appearances
+// after the first are ignored.
+// Note: Because this uses FindFirst, repeated optional constraints whose
+// first instance has an unrecognized value are not handled precisely in
+// accordance with the specification.
+template <typename T>
+bool FindConstraint(const webrtc::MediaConstraintsInterface* constraints,
+ const std::string& key,
+ T* value,
+ size_t* mandatory_constraints) {
+ std::string string_value;
+ if (!FindConstraint(constraints, key, &string_value, mandatory_constraints)) {
+ return false;
+ }
+ return rtc::FromString(string_value, value);
+}
+
+// Specialization for std::string, since a string doesn't need conversion.
+template <>
+bool FindConstraint(const webrtc::MediaConstraintsInterface* constraints,
+ const std::string& key,
+ std::string* value,
+ size_t* mandatory_constraints) {
+ if (!constraints) {
+ return false;
+ }
+ if (constraints->GetMandatory().FindFirst(key, value)) {
+ if (mandatory_constraints) {
+ ++*mandatory_constraints;
+ }
+ return true;
+ }
+ if (constraints->GetOptional().FindFirst(key, value)) {
+ return true;
+ }
+ return false;
+}
+
+// Converts a constraint (mandatory takes precedence over optional) to an
+// rtc::Optional.
+template <typename T>
+void ConstraintToOptional(const webrtc::MediaConstraintsInterface* constraints,
+ const std::string& key,
+ rtc::Optional<T>* value_out) {
+ T value;
+ bool present = FindConstraint<T>(constraints, key, &value, nullptr);
+ if (present) {
+ *value_out = rtc::Optional<T>(value);
+ }
+}
+}
+
namespace webrtc {
const char MediaConstraintsInterface::kValueTrue[] = "true";
@@ -108,74 +167,17 @@ bool MediaConstraintsInterface::Constraints::FindFirst(
return false;
}
-// Find the highest-priority instance of the boolean-valued constraint) named by
-// |key| and return its value as |value|. |constraints| can be null.
-// If |mandatory_constraints| is non-null, it is incremented if the key appears
-// among the mandatory constraints.
-// Returns true if the key was found and has a valid boolean value.
-// If the key appears multiple times as an optional constraint, appearances
-// after the first are ignored.
-// Note: Because this uses FindFirst, repeated optional constraints whose
-// first instance has an unrecognized value are not handled precisely in
-// accordance with the specification.
bool FindConstraint(const MediaConstraintsInterface* constraints,
const std::string& key, bool* value,
size_t* mandatory_constraints) {
- std::string string_value;
- if (!constraints) {
- return false;
- }
- if (constraints->GetMandatory().FindFirst(key, &string_value)) {
- if (mandatory_constraints) {
- ++*mandatory_constraints;
- }
- return rtc::FromString(string_value, value);
- }
- if (constraints->GetOptional().FindFirst(key, &string_value)) {
- return rtc::FromString(string_value, value);
- }
- return false;
+ return ::FindConstraint<bool>(constraints, key, value, mandatory_constraints);
}
-// As above, but for integers.
bool FindConstraint(const MediaConstraintsInterface* constraints,
const std::string& key,
int* value,
size_t* mandatory_constraints) {
- std::string string_value;
- if (!constraints) {
- return false;
- }
- if (constraints->GetMandatory().FindFirst(key, &string_value)) {
- if (mandatory_constraints) {
- ++*mandatory_constraints;
- }
- return rtc::FromString(string_value, value);
- }
- if (constraints->GetOptional().FindFirst(key, &string_value)) {
- return rtc::FromString(string_value, value);
- }
- return false;
-}
-
-void ConstraintToOptionalBool(const MediaConstraintsInterface* constraints,
- const std::string& key,
- rtc::Optional<bool>* value_out) {
- bool value;
- bool present = FindConstraint(constraints, key, &value, nullptr);
- if (present) {
- *value_out = rtc::Optional<bool>(value);
- }
-}
-
-void ConstraintToOptionalInt(const MediaConstraintsInterface* constraints,
- const std::string& key,
- rtc::Optional<int>* value_out) {
- int value;
- bool present = FindConstraint(constraints, key, &value, nullptr);
- if (present) {
- *value_out = rtc::Optional<int>(value);
- }
+ return ::FindConstraint<int>(constraints, key, value, mandatory_constraints);
}
void CopyConstraintsIntoRtcConfiguration(
@@ -203,15 +205,71 @@ void CopyConstraintsIntoRtcConfiguration(
MediaConstraintsInterface::kEnableVideoSuspendBelowMinBitrate,
&configuration->media_config.video.suspend_below_min_bitrate,
nullptr);
- ConstraintToOptionalInt(constraints,
- MediaConstraintsInterface::kScreencastMinBitrate,
- &configuration->screencast_min_bitrate);
- ConstraintToOptionalBool(constraints,
- MediaConstraintsInterface::kCombinedAudioVideoBwe,
- &configuration->combined_audio_video_bwe);
- ConstraintToOptionalBool(constraints,
- MediaConstraintsInterface::kEnableDtlsSrtp,
- &configuration->enable_dtls_srtp);
+ ConstraintToOptional<int>(constraints,
+ MediaConstraintsInterface::kScreencastMinBitrate,
+ &configuration->screencast_min_bitrate);
+ ConstraintToOptional<bool>(constraints,
+ MediaConstraintsInterface::kCombinedAudioVideoBwe,
+ &configuration->combined_audio_video_bwe);
+ ConstraintToOptional<bool>(constraints,
+ MediaConstraintsInterface::kEnableDtlsSrtp,
+ &configuration->enable_dtls_srtp);
+}
+
+void CopyConstraintsIntoAudioOptions(
+ const MediaConstraintsInterface* constraints,
+ cricket::AudioOptions* options) {
+ if (!constraints) {
+ return;
+ }
+
+ ConstraintToOptional<bool>(constraints,
+ MediaConstraintsInterface::kGoogEchoCancellation,
+ &options->echo_cancellation);
+ ConstraintToOptional<bool>(
+ constraints, MediaConstraintsInterface::kExtendedFilterEchoCancellation,
+ &options->extended_filter_aec);
+ ConstraintToOptional<bool>(constraints,
+ MediaConstraintsInterface::kDAEchoCancellation,
+ &options->delay_agnostic_aec);
+ ConstraintToOptional<bool>(constraints,
+ MediaConstraintsInterface::kAutoGainControl,
+ &options->auto_gain_control);
+ ConstraintToOptional<bool>(
+ constraints, MediaConstraintsInterface::kExperimentalAutoGainControl,
+ &options->experimental_agc);
+ ConstraintToOptional<bool>(constraints,
+ MediaConstraintsInterface::kNoiseSuppression,
+ &options->noise_suppression);
+ ConstraintToOptional<bool>(
+ constraints, MediaConstraintsInterface::kExperimentalNoiseSuppression,
+ &options->experimental_ns);
+ ConstraintToOptional<bool>(
+ constraints, MediaConstraintsInterface::kIntelligibilityEnhancer,
+ &options->intelligibility_enhancer);
+ ConstraintToOptional<bool>(constraints,
+ MediaConstraintsInterface::kLevelControl,
+ &options->level_control);
+ ConstraintToOptional<bool>(constraints,
+ MediaConstraintsInterface::kHighpassFilter,
+ &options->highpass_filter);
+ ConstraintToOptional<bool>(constraints,
+ MediaConstraintsInterface::kTypingNoiseDetection,
+ &options->typing_detection);
+ ConstraintToOptional<bool>(constraints,
+ MediaConstraintsInterface::kAudioMirroring,
+ &options->stereo_swapping);
+ ConstraintToOptional<float>(
+ constraints, MediaConstraintsInterface::kLevelControlInitialPeakLevelDBFS,
+ &options->level_control_initial_peak_level_dbfs);
+ ConstraintToOptional<std::string>(
+ constraints, MediaConstraintsInterface::kAudioNetworkAdaptorConfig,
+ &options->audio_network_adaptor_config);
+ // When |kAudioNetworkAdaptorConfig| is defined, it both means that audio
+ // network adaptor is desired, and provides the config string.
+ if (options->audio_network_adaptor_config) {
+ options->audio_network_adaptor = rtc::Optional<bool>(true);
+ }
}
} // namespace webrtc
« no previous file with comments | « webrtc/api/mediaconstraintsinterface.h ('k') | webrtc/api/peerconnectioninterface.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698