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

Side by Side Diff: content/renderer/media/media_stream_constraints_util_audio.h

Issue 2940553005: Remove support for some device constraints from SelectSettings. (Closed)
Patch Set: Created 3 years, 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_RENDERER_MEDIA_MEDIA_STREAM_CONSTRAINTS_UTIL_AUDIO_H_ 5 #ifndef CONTENT_RENDERER_MEDIA_MEDIA_STREAM_CONSTRAINTS_UTIL_AUDIO_H_
6 #define CONTENT_RENDERER_MEDIA_MEDIA_STREAM_CONSTRAINTS_UTIL_AUDIO_H_ 6 #define CONTENT_RENDERER_MEDIA_MEDIA_STREAM_CONSTRAINTS_UTIL_AUDIO_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 23 matching lines...) Expand all
34 // empty (e.g., if there are no devices in the system). 34 // empty (e.g., if there are no devices in the system).
35 // After the basic constraint set is applied, advanced constraint sets are 35 // After the basic constraint set is applied, advanced constraint sets are
36 // applied. If no candidates can satisfy an advanced set, the advanced set is 36 // applied. If no candidates can satisfy an advanced set, the advanced set is
37 // ignored, otherwise the candidates that cannot satisfy the advanced set are 37 // ignored, otherwise the candidates that cannot satisfy the advanced set are
38 // removed. 38 // removed.
39 // Once all constraint sets are applied, the result is selected from the 39 // Once all constraint sets are applied, the result is selected from the
40 // remaining candidates by giving preference to candidates closest to the ideal 40 // remaining candidates by giving preference to candidates closest to the ideal
41 // values specified in the basic constraint set, or using default 41 // values specified in the basic constraint set, or using default
42 // implementation-specific values. 42 // implementation-specific values.
43 // The result includes the following properties: 43 // The result includes the following properties:
44 // * Device. A device is chosen using the device_id, sample_rate, sample_size, 44 // * Device. A device can be chosen using the device_id constraint.
45 // and channel_count constraints. If multiple devices satisfy the constraints 45 // For device capture, the validity of device IDs is checked by
46 // preference is given to the default device (system defined or chosen by 46 // SelectSettings since the list of allowed device IDs is known in advance.
47 // user preferences). If the default device is not included in the valid 47 // For content capture, all device IDs are considered valid by
48 // candidates, the first valid device in the list obtained by querying the 48 // SelectSettings. Actual validation is performed by the getUserMedia
49 // system capabilities is chosen. For content capture, no real audio input 49 // implementation.
50 // devices are used and the sample_rate, sample_size and channel_count
51 // constraints are ignored. In content capture, the deviceId constraint is
52 // supported and is interpreted by the system as a string that indicates,
53 // for example, which tab to capture. Validation for that "device" ID is
54 // performed by the getUserMedia implementation. To decide between content
55 // or device capture, the value of the special media_stream_source constraint
56 // is used.
57 // * Audio features: the hotword_enabled, disable_local_echo and 50 // * Audio features: the hotword_enabled, disable_local_echo and
58 // render_to_associated_sink constraints can be used to enable the 51 // render_to_associated_sink constraints can be used to enable the
59 // corresponding audio feature. If not specified, their default value is 52 // corresponding audio feature. If not specified, their default value is
60 // false. 53 // false, except for disable_local_echo, whose default value is false only
54 // for desktop capture.
61 // * Audio processing. The remaining constraints are used to control audio 55 // * Audio processing. The remaining constraints are used to control audio
62 // processing. This is how audio-processing properties are set for device 56 // processing. This is how audio-processing properties are set for device
63 // capture(see the content::AudioProcessingProperties struct) : 57 // capture(see the content::AudioProcessingProperties struct) :
64 // - enable_sw_echo_cancellation: If the selected device has hardware echo 58 // - enable_sw_echo_cancellation: If the selected device has hardware echo
65 // cancellation, software echo cancellation is disabled regardless of 59 // cancellation, software echo cancellation is disabled regardless of
66 // any constraint values. Otherwise, it is enabled by default unless 60 // any constraint values. Otherwise, it is enabled by default unless
67 // either the echo_cancellation or the goog_echo_cancellation constraint 61 // either the echo_cancellation or the goog_echo_cancellation constraint
68 // has a final value of false after applying all constraint sets. Note 62 // has a final value of false after applying all constraint sets. Note
69 // that if these constraints have contradictory values, SelectSettings 63 // that if these constraints have contradictory values, SelectSettings
70 // fails and returns no value. 64 // fails and returns no value.
(...skipping 15 matching lines...) Expand all
86 // constraints. Constraints are an input to SelectSettings, while properties 80 // constraints. Constraints are an input to SelectSettings, while properties
87 // are part of the output. The value for most boolean properties comes 81 // are part of the output. The value for most boolean properties comes
88 // directly from a corresponding boolean constraint, but this is not true for 82 // directly from a corresponding boolean constraint, but this is not true for
89 // all constraints and properties. For example, the echo_cancellation and 83 // all constraints and properties. For example, the echo_cancellation and
90 // goog_echo_cancellation constraints are not directly mapped to any 84 // goog_echo_cancellation constraints are not directly mapped to any
91 // property, but they, together with hardware characteristics, influence the 85 // property, but they, together with hardware characteristics, influence the
92 // enabling and disabling of software and hardware echo cancellation. 86 // enabling and disabling of software and hardware echo cancellation.
93 // Moreover, the echo_cancellation constraint influences most other 87 // Moreover, the echo_cancellation constraint influences most other
94 // audio-processing properties for which no explicit value is provided in 88 // audio-processing properties for which no explicit value is provided in
95 // their corresponding constraints. 89 // their corresponding constraints.
90 // TODO(guidou): Add support for other standard constraints such as sampleRate,
91 // channelCount and groupId. http://crbug.com/731170
96 AudioCaptureSettings CONTENT_EXPORT 92 AudioCaptureSettings CONTENT_EXPORT
97 SelectSettingsAudioCapture(const AudioDeviceCaptureCapabilities& capabilities, 93 SelectSettingsAudioCapture(const AudioDeviceCaptureCapabilities& capabilities,
98 const blink::WebMediaConstraints& constraints); 94 const blink::WebMediaConstraints& constraints);
99 95
100 } // namespace content 96 } // namespace content
101 97
102 #endif // CONTENT_RENDERER_MEDIA_MEDIA_STREAM_CONSTRAINTS_UTIL_AUDIO_H_ 98 #endif // CONTENT_RENDERER_MEDIA_MEDIA_STREAM_CONSTRAINTS_UTIL_AUDIO_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698