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 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
292 // Accepts deinterleaved float audio with the range [-1, 1]. Each element | 292 // Accepts deinterleaved float audio with the range [-1, 1]. Each element |
293 // of |src| points to a channel buffer, arranged according to | 293 // of |src| points to a channel buffer, arranged according to |
294 // |input_layout|. At output, the channels will be arranged according to | 294 // |input_layout|. At output, the channels will be arranged according to |
295 // |output_layout| at |output_sample_rate_hz| in |dest|. | 295 // |output_layout| at |output_sample_rate_hz| in |dest|. |
296 // | 296 // |
297 // The output layout must have one channel or as many channels as the input. | 297 // The output layout must have one channel or as many channels as the input. |
298 // |src| and |dest| may use the same memory, if desired. | 298 // |src| and |dest| may use the same memory, if desired. |
299 // | 299 // |
300 // TODO(mgraczyk): Remove once clients are updated to use the new interface. | 300 // TODO(mgraczyk): Remove once clients are updated to use the new interface. |
301 virtual int ProcessStream(const float* const* src, | 301 virtual int ProcessStream(const float* const* src, |
302 int samples_per_channel, | 302 size_t samples_per_channel, |
303 int input_sample_rate_hz, | 303 int input_sample_rate_hz, |
304 ChannelLayout input_layout, | 304 ChannelLayout input_layout, |
305 int output_sample_rate_hz, | 305 int output_sample_rate_hz, |
306 ChannelLayout output_layout, | 306 ChannelLayout output_layout, |
307 float* const* dest) = 0; | 307 float* const* dest) = 0; |
308 | 308 |
309 // Accepts deinterleaved float audio with the range [-1, 1]. Each element of | 309 // Accepts deinterleaved float audio with the range [-1, 1]. Each element of |
310 // |src| points to a channel buffer, arranged according to |input_stream|. At | 310 // |src| points to a channel buffer, arranged according to |input_stream|. At |
311 // output, the channels will be arranged according to |output_stream| in | 311 // output, the channels will be arranged according to |output_stream| in |
312 // |dest|. | 312 // |dest|. |
(...skipping 20 matching lines...) Expand all Loading... |
333 // |input_sample_rate_hz()| | 333 // |input_sample_rate_hz()| |
334 // | 334 // |
335 // TODO(ajm): add const to input; requires an implementation fix. | 335 // TODO(ajm): add const to input; requires an implementation fix. |
336 virtual int AnalyzeReverseStream(AudioFrame* frame) = 0; | 336 virtual int AnalyzeReverseStream(AudioFrame* frame) = 0; |
337 | 337 |
338 // Accepts deinterleaved float audio with the range [-1, 1]. Each element | 338 // Accepts deinterleaved float audio with the range [-1, 1]. Each element |
339 // of |data| points to a channel buffer, arranged according to |layout|. | 339 // of |data| points to a channel buffer, arranged according to |layout|. |
340 // | 340 // |
341 // TODO(mgraczyk): Remove once clients are updated to use the new interface. | 341 // TODO(mgraczyk): Remove once clients are updated to use the new interface. |
342 virtual int AnalyzeReverseStream(const float* const* data, | 342 virtual int AnalyzeReverseStream(const float* const* data, |
343 int samples_per_channel, | 343 size_t samples_per_channel, |
344 int sample_rate_hz, | 344 int sample_rate_hz, |
345 ChannelLayout layout) = 0; | 345 ChannelLayout layout) = 0; |
346 | 346 |
347 // Accepts deinterleaved float audio with the range [-1, 1]. Each element of | 347 // Accepts deinterleaved float audio with the range [-1, 1]. Each element of |
348 // |data| points to a channel buffer, arranged according to |reverse_config|. | 348 // |data| points to a channel buffer, arranged according to |reverse_config|. |
349 virtual int AnalyzeReverseStream(const float* const* data, | 349 virtual int AnalyzeReverseStream(const float* const* data, |
350 const StreamConfig& reverse_config) = 0; | 350 const StreamConfig& reverse_config) = 0; |
351 | 351 |
352 // This must be called if and only if echo processing is enabled. | 352 // This must be called if and only if echo processing is enabled. |
353 // | 353 // |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
484 void set_num_channels(int value) { num_channels_ = value; } | 484 void set_num_channels(int value) { num_channels_ = value; } |
485 void set_has_keyboard(bool value) { has_keyboard_ = value; } | 485 void set_has_keyboard(bool value) { has_keyboard_ = value; } |
486 | 486 |
487 int sample_rate_hz() const { return sample_rate_hz_; } | 487 int sample_rate_hz() const { return sample_rate_hz_; } |
488 | 488 |
489 // The number of channels in the stream, not including the keyboard channel if | 489 // The number of channels in the stream, not including the keyboard channel if |
490 // present. | 490 // present. |
491 int num_channels() const { return num_channels_; } | 491 int num_channels() const { return num_channels_; } |
492 | 492 |
493 bool has_keyboard() const { return has_keyboard_; } | 493 bool has_keyboard() const { return has_keyboard_; } |
494 int num_frames() const { return num_frames_; } | 494 size_t num_frames() const { return num_frames_; } |
495 | 495 |
496 bool operator==(const StreamConfig& other) const { | 496 bool operator==(const StreamConfig& other) const { |
497 return sample_rate_hz_ == other.sample_rate_hz_ && | 497 return sample_rate_hz_ == other.sample_rate_hz_ && |
498 num_channels_ == other.num_channels_ && | 498 num_channels_ == other.num_channels_ && |
499 has_keyboard_ == other.has_keyboard_; | 499 has_keyboard_ == other.has_keyboard_; |
500 } | 500 } |
501 | 501 |
502 bool operator!=(const StreamConfig& other) const { return !(*this == other); } | 502 bool operator!=(const StreamConfig& other) const { return !(*this == other); } |
503 | 503 |
504 private: | 504 private: |
505 static int calculate_frames(int sample_rate_hz) { | 505 static size_t calculate_frames(int sample_rate_hz) { |
506 return AudioProcessing::kChunkSizeMs * sample_rate_hz / 1000; | 506 return static_cast<size_t>( |
| 507 AudioProcessing::kChunkSizeMs * sample_rate_hz / 1000); |
507 } | 508 } |
508 | 509 |
509 int sample_rate_hz_; | 510 int sample_rate_hz_; |
510 int num_channels_; | 511 int num_channels_; |
511 bool has_keyboard_; | 512 bool has_keyboard_; |
512 int num_frames_; | 513 size_t num_frames_; |
513 }; | 514 }; |
514 | 515 |
515 class ProcessingConfig { | 516 class ProcessingConfig { |
516 public: | 517 public: |
517 enum StreamName { | 518 enum StreamName { |
518 kInputStream, | 519 kInputStream, |
519 kOutputStream, | 520 kOutputStream, |
520 kReverseStream, | 521 kReverseStream, |
521 kNumStreamNames, | 522 kNumStreamNames, |
522 }; | 523 }; |
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
906 // This does not impact the size of frames passed to |ProcessStream()|. | 907 // This does not impact the size of frames passed to |ProcessStream()|. |
907 virtual int set_frame_size_ms(int size) = 0; | 908 virtual int set_frame_size_ms(int size) = 0; |
908 virtual int frame_size_ms() const = 0; | 909 virtual int frame_size_ms() const = 0; |
909 | 910 |
910 protected: | 911 protected: |
911 virtual ~VoiceDetection() {} | 912 virtual ~VoiceDetection() {} |
912 }; | 913 }; |
913 } // namespace webrtc | 914 } // namespace webrtc |
914 | 915 |
915 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_INCLUDE_AUDIO_PROCESSING_H_ | 916 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_INCLUDE_AUDIO_PROCESSING_H_ |
OLD | NEW |