Index: content/renderer/media/media_stream_constraints_util_audio.cc |
diff --git a/content/renderer/media/media_stream_constraints_util_audio.cc b/content/renderer/media/media_stream_constraints_util_audio.cc |
index 155d70698f2d68525e728362a9c7dd848b71b8f6..7de1350a8fbeb0d13688941e61ba05ce32b4e02e 100644 |
--- a/content/renderer/media/media_stream_constraints_util_audio.cc |
+++ b/content/renderer/media/media_stream_constraints_util_audio.cc |
@@ -21,7 +21,7 @@ namespace content { |
namespace { |
// This class has the same data as ::mojom::AudioInputDeviceCapabilities, but |
-// adds extra operations to simplify the device-selection code. |
+// adds extra operations to simplify access to device parameters. |
class AudioDeviceInfo { |
public: |
// This constructor is intended for device capture. |
@@ -83,31 +83,13 @@ AudioDeviceSet AudioDeviceSetForDeviceCapture( |
*failed_constraint_name = constraint_set.device_id.GetName(); |
continue; |
} |
- *failed_constraint_name = |
- IsOutsideConstraintRange(constraint_set.sample_rate, |
- device_capabilities->parameters.sample_rate()); |
- if (*failed_constraint_name) |
- continue; |
- |
- *failed_constraint_name = IsOutsideConstraintRange( |
- constraint_set.sample_size, |
- device_capabilities->parameters.bits_per_sample()); |
- if (*failed_constraint_name) |
- continue; |
- |
- *failed_constraint_name = |
- IsOutsideConstraintRange(constraint_set.channel_count, |
- device_capabilities->parameters.channels()); |
- if (*failed_constraint_name) |
- continue; |
- |
result.push_back(AudioDeviceInfo(device_capabilities)); |
} |
if (!result.empty()) |
*failed_constraint_name = nullptr; |
- return AudioDeviceSet(result); |
+ return AudioDeviceSet(std::move(result)); |
} |
AudioDeviceSet AudioDeviceSetForContentCapture( |
@@ -120,7 +102,7 @@ AudioDeviceSet AudioDeviceSetForContentCapture( |
for (auto& device_id : constraint_set.device_id.Exact()) |
result.push_back(AudioDeviceInfo(device_id.Utf8())); |
- return AudioDeviceSet(result); |
+ return AudioDeviceSet(std::move(result)); |
} |
// This class represents a set of possible candidate settings. |
@@ -320,35 +302,16 @@ void AudioCaptureCandidates::CheckContradictoryEchoCancellation() { |
} |
// Fitness function for constraints involved in device selection. |
-// Based on https://w3c.github.io/mediacapture-main/#dfn-fitness-distance |
+// Based on https://w3c.github.io/mediacapture-main/#dfn-fitness-distance |
+// TODO(guidou): Add support for sampleRate, sampleSize and channelCount |
+// constraints. http://crbug.com/ |
double DeviceInfoFitness( |
bool is_device_capture, |
const AudioDeviceInfo& device_info, |
const blink::WebMediaTrackConstraintSet& basic_constraint_set) { |
- double fitness = 0.0; |
- fitness += StringConstraintFitnessDistance( |
+ return StringConstraintFitnessDistance( |
blink::WebString::FromASCII(device_info.device_id()), |
basic_constraint_set.device_id); |
- |
- if (!is_device_capture) |
- return fitness; |
- |
- if (basic_constraint_set.sample_rate.HasIdeal()) { |
- fitness += NumericConstraintFitnessDistance( |
- device_info.SampleRate(), basic_constraint_set.sample_rate.Ideal()); |
- } |
- |
- if (basic_constraint_set.sample_size.HasIdeal()) { |
- fitness += NumericConstraintFitnessDistance( |
- device_info.SampleSize(), basic_constraint_set.sample_size.Ideal()); |
- } |
- |
- if (basic_constraint_set.channel_count.HasIdeal()) { |
- fitness += NumericConstraintFitnessDistance( |
- device_info.ChannelCount(), basic_constraint_set.channel_count.Ideal()); |
- } |
- |
- return fitness; |
} |
AudioDeviceInfo SelectDevice( |