| 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(
|
|
|