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 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
304 // Accepts deinterleaved float audio with the range [-1, 1]. Each element | 304 // Accepts deinterleaved float audio with the range [-1, 1]. Each element |
305 // of |src| points to a channel buffer, arranged according to | 305 // of |src| points to a channel buffer, arranged according to |
306 // |input_layout|. At output, the channels will be arranged according to | 306 // |input_layout|. At output, the channels will be arranged according to |
307 // |output_layout| at |output_sample_rate_hz| in |dest|. | 307 // |output_layout| at |output_sample_rate_hz| in |dest|. |
308 // | 308 // |
309 // The output layout must have one channel or as many channels as the input. | 309 // The output layout must have one channel or as many channels as the input. |
310 // |src| and |dest| may use the same memory, if desired. | 310 // |src| and |dest| may use the same memory, if desired. |
311 // | 311 // |
312 // TODO(mgraczyk): Remove once clients are updated to use the new interface. | 312 // TODO(mgraczyk): Remove once clients are updated to use the new interface. |
313 virtual int ProcessStream(const float* const* src, | 313 virtual int ProcessStream(const float* const* src, |
314 int samples_per_channel, | 314 size_t samples_per_channel, |
315 int input_sample_rate_hz, | 315 int input_sample_rate_hz, |
316 ChannelLayout input_layout, | 316 ChannelLayout input_layout, |
317 int output_sample_rate_hz, | 317 int output_sample_rate_hz, |
318 ChannelLayout output_layout, | 318 ChannelLayout output_layout, |
319 float* const* dest) = 0; | 319 float* const* dest) = 0; |
320 | 320 |
321 // Accepts deinterleaved float audio with the range [-1, 1]. Each element of | 321 // Accepts deinterleaved float audio with the range [-1, 1]. Each element of |
322 // |src| points to a channel buffer, arranged according to |input_stream|. At | 322 // |src| points to a channel buffer, arranged according to |input_stream|. At |
323 // output, the channels will be arranged according to |output_stream| in | 323 // output, the channels will be arranged according to |output_stream| in |
324 // |dest|. | 324 // |dest|. |
(...skipping 25 matching lines...) Expand all Loading... |
350 virtual int AnalyzeReverseStream(AudioFrame* frame) = 0; | 350 virtual int AnalyzeReverseStream(AudioFrame* frame) = 0; |
351 | 351 |
352 // Same as |AnalyzeReverseStream|, but may modify |frame| if intelligibility | 352 // Same as |AnalyzeReverseStream|, but may modify |frame| if intelligibility |
353 // is enabled. | 353 // is enabled. |
354 virtual int ProcessReverseStream(AudioFrame* frame) = 0; | 354 virtual int ProcessReverseStream(AudioFrame* frame) = 0; |
355 | 355 |
356 // Accepts deinterleaved float audio with the range [-1, 1]. Each element | 356 // Accepts deinterleaved float audio with the range [-1, 1]. Each element |
357 // of |data| points to a channel buffer, arranged according to |layout|. | 357 // of |data| points to a channel buffer, arranged according to |layout|. |
358 // TODO(mgraczyk): Remove once clients are updated to use the new interface. | 358 // TODO(mgraczyk): Remove once clients are updated to use the new interface. |
359 virtual int AnalyzeReverseStream(const float* const* data, | 359 virtual int AnalyzeReverseStream(const float* const* data, |
360 int samples_per_channel, | 360 size_t samples_per_channel, |
361 int rev_sample_rate_hz, | 361 int rev_sample_rate_hz, |
362 ChannelLayout layout) = 0; | 362 ChannelLayout layout) = 0; |
363 | 363 |
364 // Accepts deinterleaved float audio with the range [-1, 1]. Each element of | 364 // Accepts deinterleaved float audio with the range [-1, 1]. Each element of |
365 // |data| points to a channel buffer, arranged according to |reverse_config|. | 365 // |data| points to a channel buffer, arranged according to |reverse_config|. |
366 virtual int ProcessReverseStream(const float* const* src, | 366 virtual int ProcessReverseStream(const float* const* src, |
367 const StreamConfig& reverse_input_config, | 367 const StreamConfig& reverse_input_config, |
368 const StreamConfig& reverse_output_config, | 368 const StreamConfig& reverse_output_config, |
369 float* const* dest) = 0; | 369 float* const* dest) = 0; |
370 | 370 |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
503 void set_num_channels(int value) { num_channels_ = value; } | 503 void set_num_channels(int value) { num_channels_ = value; } |
504 void set_has_keyboard(bool value) { has_keyboard_ = value; } | 504 void set_has_keyboard(bool value) { has_keyboard_ = value; } |
505 | 505 |
506 int sample_rate_hz() const { return sample_rate_hz_; } | 506 int sample_rate_hz() const { return sample_rate_hz_; } |
507 | 507 |
508 // The number of channels in the stream, not including the keyboard channel if | 508 // The number of channels in the stream, not including the keyboard channel if |
509 // present. | 509 // present. |
510 int num_channels() const { return num_channels_; } | 510 int num_channels() const { return num_channels_; } |
511 | 511 |
512 bool has_keyboard() const { return has_keyboard_; } | 512 bool has_keyboard() const { return has_keyboard_; } |
513 int num_frames() const { return num_frames_; } | 513 size_t num_frames() const { return num_frames_; } |
514 int num_samples() const { return num_channels_ * num_frames_; } | 514 size_t num_samples() const { return num_channels_ * num_frames_; } |
515 | 515 |
516 bool operator==(const StreamConfig& other) const { | 516 bool operator==(const StreamConfig& other) const { |
517 return sample_rate_hz_ == other.sample_rate_hz_ && | 517 return sample_rate_hz_ == other.sample_rate_hz_ && |
518 num_channels_ == other.num_channels_ && | 518 num_channels_ == other.num_channels_ && |
519 has_keyboard_ == other.has_keyboard_; | 519 has_keyboard_ == other.has_keyboard_; |
520 } | 520 } |
521 | 521 |
522 bool operator!=(const StreamConfig& other) const { return !(*this == other); } | 522 bool operator!=(const StreamConfig& other) const { return !(*this == other); } |
523 | 523 |
524 private: | 524 private: |
525 static int calculate_frames(int sample_rate_hz) { | 525 static size_t calculate_frames(int sample_rate_hz) { |
526 return AudioProcessing::kChunkSizeMs * sample_rate_hz / 1000; | 526 return static_cast<size_t>( |
| 527 AudioProcessing::kChunkSizeMs * sample_rate_hz / 1000); |
527 } | 528 } |
528 | 529 |
529 int sample_rate_hz_; | 530 int sample_rate_hz_; |
530 int num_channels_; | 531 int num_channels_; |
531 bool has_keyboard_; | 532 bool has_keyboard_; |
532 int num_frames_; | 533 size_t num_frames_; |
533 }; | 534 }; |
534 | 535 |
535 class ProcessingConfig { | 536 class ProcessingConfig { |
536 public: | 537 public: |
537 enum StreamName { | 538 enum StreamName { |
538 kInputStream, | 539 kInputStream, |
539 kOutputStream, | 540 kOutputStream, |
540 kReverseInputStream, | 541 kReverseInputStream, |
541 kReverseOutputStream, | 542 kReverseOutputStream, |
542 kNumStreamNames, | 543 kNumStreamNames, |
(...skipping 392 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
935 // This does not impact the size of frames passed to |ProcessStream()|. | 936 // This does not impact the size of frames passed to |ProcessStream()|. |
936 virtual int set_frame_size_ms(int size) = 0; | 937 virtual int set_frame_size_ms(int size) = 0; |
937 virtual int frame_size_ms() const = 0; | 938 virtual int frame_size_ms() const = 0; |
938 | 939 |
939 protected: | 940 protected: |
940 virtual ~VoiceDetection() {} | 941 virtual ~VoiceDetection() {} |
941 }; | 942 }; |
942 } // namespace webrtc | 943 } // namespace webrtc |
943 | 944 |
944 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_INCLUDE_AUDIO_PROCESSING_H_ | 945 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_INCLUDE_AUDIO_PROCESSING_H_ |
OLD | NEW |