| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 297 // |processing_config.input_stream()|. | 297 // |processing_config.input_stream()|. |
| 298 // | 298 // |
| 299 // The float interfaces accept arbitrary rates and support differing input and | 299 // The float interfaces accept arbitrary rates and support differing input and |
| 300 // output layouts, but the output must have either one channel or the same | 300 // output layouts, but the output must have either one channel or the same |
| 301 // number of channels as the input. | 301 // number of channels as the input. |
| 302 virtual int Initialize(const ProcessingConfig& processing_config) = 0; | 302 virtual int Initialize(const ProcessingConfig& processing_config) = 0; |
| 303 | 303 |
| 304 // Initialize with unpacked parameters. See Initialize() above for details. | 304 // Initialize with unpacked parameters. See Initialize() above for details. |
| 305 // | 305 // |
| 306 // TODO(mgraczyk): Remove once clients are updated to use the new interface. | 306 // TODO(mgraczyk): Remove once clients are updated to use the new interface. |
| 307 virtual int Initialize(int input_sample_rate_hz, | 307 virtual int Initialize(int capture_input_sample_rate_hz, |
| 308 int output_sample_rate_hz, | 308 int capture_output_sample_rate_hz, |
| 309 int reverse_sample_rate_hz, | 309 int render_sample_rate_hz, |
| 310 ChannelLayout input_layout, | 310 ChannelLayout capture_input_layout, |
| 311 ChannelLayout output_layout, | 311 ChannelLayout capture_output_layout, |
| 312 ChannelLayout reverse_layout) = 0; | 312 ChannelLayout render_input_layout) = 0; |
| 313 | 313 |
| 314 // TODO(peah): This method is a temporary solution used to take control | 314 // TODO(peah): This method is a temporary solution used to take control |
| 315 // over the parameters in the audio processing module and is likely to change. | 315 // over the parameters in the audio processing module and is likely to change. |
| 316 virtual void ApplyConfig(const Config& config) = 0; | 316 virtual void ApplyConfig(const Config& config) = 0; |
| 317 | 317 |
| 318 // Pass down additional options which don't have explicit setters. This | 318 // Pass down additional options which don't have explicit setters. This |
| 319 // ensures the options are applied immediately. | 319 // ensures the options are applied immediately. |
| 320 virtual void SetExtraOptions(const webrtc::Config& config) = 0; | 320 virtual void SetExtraOptions(const webrtc::Config& config) = 0; |
| 321 | 321 |
| 322 // TODO(ajm): Only intended for internal use. Make private and friend the | 322 // TODO(ajm): Only intended for internal use. Make private and friend the |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 387 // | 387 // |
| 388 // The |sample_rate_hz_|, |num_channels_|, and |samples_per_channel_| | 388 // The |sample_rate_hz_|, |num_channels_|, and |samples_per_channel_| |
| 389 // members of |frame| must be valid. | 389 // members of |frame| must be valid. |
| 390 virtual int ProcessReverseStream(AudioFrame* frame) = 0; | 390 virtual int ProcessReverseStream(AudioFrame* frame) = 0; |
| 391 | 391 |
| 392 // Accepts deinterleaved float audio with the range [-1, 1]. Each element | 392 // Accepts deinterleaved float audio with the range [-1, 1]. Each element |
| 393 // of |data| points to a channel buffer, arranged according to |layout|. | 393 // of |data| points to a channel buffer, arranged according to |layout|. |
| 394 // TODO(mgraczyk): Remove once clients are updated to use the new interface. | 394 // TODO(mgraczyk): Remove once clients are updated to use the new interface. |
| 395 virtual int AnalyzeReverseStream(const float* const* data, | 395 virtual int AnalyzeReverseStream(const float* const* data, |
| 396 size_t samples_per_channel, | 396 size_t samples_per_channel, |
| 397 int rev_sample_rate_hz, | 397 int sample_rate_hz, |
| 398 ChannelLayout layout) = 0; | 398 ChannelLayout layout) = 0; |
| 399 | 399 |
| 400 // Accepts deinterleaved float audio with the range [-1, 1]. Each element of | 400 // Accepts deinterleaved float audio with the range [-1, 1]. Each element of |
| 401 // |data| points to a channel buffer, arranged according to |reverse_config|. | 401 // |data| points to a channel buffer, arranged according to |reverse_config|. |
| 402 virtual int ProcessReverseStream(const float* const* src, | 402 virtual int ProcessReverseStream(const float* const* src, |
| 403 const StreamConfig& reverse_input_config, | 403 const StreamConfig& input_config, |
| 404 const StreamConfig& reverse_output_config, | 404 const StreamConfig& output_config, |
| 405 float* const* dest) = 0; | 405 float* const* dest) = 0; |
| 406 | 406 |
| 407 // This must be called if and only if echo processing is enabled. | 407 // This must be called if and only if echo processing is enabled. |
| 408 // | 408 // |
| 409 // Sets the |delay| in ms between ProcessReverseStream() receiving a far-end | 409 // Sets the |delay| in ms between ProcessReverseStream() receiving a far-end |
| 410 // frame and ProcessStream() receiving a near-end frame containing the | 410 // frame and ProcessStream() receiving a near-end frame containing the |
| 411 // corresponding echo. On the client-side this can be expressed as | 411 // corresponding echo. On the client-side this can be expressed as |
| 412 // delay = (t_render - t_analyze) + (t_process - t_capture) | 412 // delay = (t_render - t_analyze) + (t_process - t_capture) |
| 413 // where, | 413 // where, |
| 414 // - t_analyze is the time a frame is passed to ProcessReverseStream() and | 414 // - t_analyze is the time a frame is passed to ProcessReverseStream() and |
| (...skipping 580 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 995 // This does not impact the size of frames passed to |ProcessStream()|. | 995 // This does not impact the size of frames passed to |ProcessStream()|. |
| 996 virtual int set_frame_size_ms(int size) = 0; | 996 virtual int set_frame_size_ms(int size) = 0; |
| 997 virtual int frame_size_ms() const = 0; | 997 virtual int frame_size_ms() const = 0; |
| 998 | 998 |
| 999 protected: | 999 protected: |
| 1000 virtual ~VoiceDetection() {} | 1000 virtual ~VoiceDetection() {} |
| 1001 }; | 1001 }; |
| 1002 } // namespace webrtc | 1002 } // namespace webrtc |
| 1003 | 1003 |
| 1004 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_INCLUDE_AUDIO_PROCESSING_H_ | 1004 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_INCLUDE_AUDIO_PROCESSING_H_ |
| OLD | NEW |