| 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 571 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 582 frame_->samples_per_channel_, | 582 frame_->samples_per_channel_, |
| 583 frame_->sample_rate_hz_, | 583 frame_->sample_rate_hz_, |
| 584 LayoutFromChannels(frame_->num_channels_), | 584 LayoutFromChannels(frame_->num_channels_), |
| 585 output_sample_rate_hz_, | 585 output_sample_rate_hz_, |
| 586 LayoutFromChannels(num_output_channels_), | 586 LayoutFromChannels(num_output_channels_), |
| 587 float_cb_->channels()); | 587 float_cb_->channels()); |
| 588 } | 588 } |
| 589 | 589 |
| 590 int ApmTest::AnalyzeReverseStreamChooser(Format format) { | 590 int ApmTest::AnalyzeReverseStreamChooser(Format format) { |
| 591 if (format == kIntFormat) { | 591 if (format == kIntFormat) { |
| 592 return apm_->AnalyzeReverseStream(revframe_); | 592 return apm_->ProcessReverseStream(revframe_); |
| 593 } | 593 } |
| 594 return apm_->AnalyzeReverseStream( | 594 return apm_->AnalyzeReverseStream( |
| 595 revfloat_cb_->channels(), | 595 revfloat_cb_->channels(), |
| 596 revframe_->samples_per_channel_, | 596 revframe_->samples_per_channel_, |
| 597 revframe_->sample_rate_hz_, | 597 revframe_->sample_rate_hz_, |
| 598 LayoutFromChannels(revframe_->num_channels_)); | 598 LayoutFromChannels(revframe_->num_channels_)); |
| 599 } | 599 } |
| 600 | 600 |
| 601 void ApmTest::ProcessDelayVerificationTest(int delay_ms, int system_delay_ms, | 601 void ApmTest::ProcessDelayVerificationTest(int delay_ms, int system_delay_ms, |
| 602 int delay_min, int delay_max) { | 602 int delay_min, int delay_max) { |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 638 AudioFrame* reverse_frame = frame; | 638 AudioFrame* reverse_frame = frame; |
| 639 AudioFrame* process_frame = frame_queue.front(); | 639 AudioFrame* process_frame = frame_queue.front(); |
| 640 if (!causal) { | 640 if (!causal) { |
| 641 reverse_frame = frame_queue.front(); | 641 reverse_frame = frame_queue.front(); |
| 642 // When we call ProcessStream() the frame is modified, so we can't use the | 642 // When we call ProcessStream() the frame is modified, so we can't use the |
| 643 // pointer directly when things are non-causal. Use an intermediate frame | 643 // pointer directly when things are non-causal. Use an intermediate frame |
| 644 // and copy the data. | 644 // and copy the data. |
| 645 process_frame = &tmp_frame; | 645 process_frame = &tmp_frame; |
| 646 process_frame->CopyFrom(*frame); | 646 process_frame->CopyFrom(*frame); |
| 647 } | 647 } |
| 648 EXPECT_EQ(apm_->kNoError, apm_->AnalyzeReverseStream(reverse_frame)); | 648 EXPECT_EQ(apm_->kNoError, apm_->ProcessReverseStream(reverse_frame)); |
| 649 EXPECT_EQ(apm_->kNoError, apm_->set_stream_delay_ms(system_delay_ms)); | 649 EXPECT_EQ(apm_->kNoError, apm_->set_stream_delay_ms(system_delay_ms)); |
| 650 EXPECT_EQ(apm_->kNoError, apm_->ProcessStream(process_frame)); | 650 EXPECT_EQ(apm_->kNoError, apm_->ProcessStream(process_frame)); |
| 651 frame = frame_queue.front(); | 651 frame = frame_queue.front(); |
| 652 frame_queue.pop(); | 652 frame_queue.pop(); |
| 653 delete frame; | 653 delete frame; |
| 654 | 654 |
| 655 if (frame_count == 250) { | 655 if (frame_count == 250) { |
| 656 int median; | 656 int median; |
| 657 int std; | 657 int std; |
| 658 float poor_fraction; | 658 float poor_fraction; |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 808 EXPECT_EQ(0, apm_->stream_delay_ms()); | 808 EXPECT_EQ(0, apm_->stream_delay_ms()); |
| 809 EXPECT_EQ(apm_->kNoError, apm_->set_stream_delay_ms(100)); | 809 EXPECT_EQ(apm_->kNoError, apm_->set_stream_delay_ms(100)); |
| 810 EXPECT_EQ(50, apm_->stream_delay_ms()); | 810 EXPECT_EQ(50, apm_->stream_delay_ms()); |
| 811 } | 811 } |
| 812 | 812 |
| 813 void ApmTest::TestChangingChannelsInt16Interface( | 813 void ApmTest::TestChangingChannelsInt16Interface( |
| 814 size_t num_channels, | 814 size_t num_channels, |
| 815 AudioProcessing::Error expected_return) { | 815 AudioProcessing::Error expected_return) { |
| 816 frame_->num_channels_ = num_channels; | 816 frame_->num_channels_ = num_channels; |
| 817 EXPECT_EQ(expected_return, apm_->ProcessStream(frame_)); | 817 EXPECT_EQ(expected_return, apm_->ProcessStream(frame_)); |
| 818 EXPECT_EQ(expected_return, apm_->AnalyzeReverseStream(frame_)); | 818 EXPECT_EQ(expected_return, apm_->ProcessReverseStream(frame_)); |
| 819 } | 819 } |
| 820 | 820 |
| 821 void ApmTest::TestChangingForwardChannels( | 821 void ApmTest::TestChangingForwardChannels( |
| 822 size_t num_in_channels, | 822 size_t num_in_channels, |
| 823 size_t num_out_channels, | 823 size_t num_out_channels, |
| 824 AudioProcessing::Error expected_return) { | 824 AudioProcessing::Error expected_return) { |
| 825 const StreamConfig input_stream = {frame_->sample_rate_hz_, num_in_channels}; | 825 const StreamConfig input_stream = {frame_->sample_rate_hz_, num_in_channels}; |
| 826 const StreamConfig output_stream = {output_sample_rate_hz_, num_out_channels}; | 826 const StreamConfig output_stream = {output_sample_rate_hz_, num_out_channels}; |
| 827 | 827 |
| 828 EXPECT_EQ(expected_return, | 828 EXPECT_EQ(expected_return, |
| (...skipping 758 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1587 2, | 1587 2, |
| 1588 2, | 1588 2, |
| 1589 2, | 1589 2, |
| 1590 false); | 1590 false); |
| 1591 int analog_level = 127; | 1591 int analog_level = 127; |
| 1592 ASSERT_EQ(0, feof(far_file_)); | 1592 ASSERT_EQ(0, feof(far_file_)); |
| 1593 ASSERT_EQ(0, feof(near_file_)); | 1593 ASSERT_EQ(0, feof(near_file_)); |
| 1594 while (ReadFrame(far_file_, revframe_) && ReadFrame(near_file_, frame_)) { | 1594 while (ReadFrame(far_file_, revframe_) && ReadFrame(near_file_, frame_)) { |
| 1595 CopyLeftToRightChannel(revframe_->data_, revframe_->samples_per_channel_); | 1595 CopyLeftToRightChannel(revframe_->data_, revframe_->samples_per_channel_); |
| 1596 | 1596 |
| 1597 ASSERT_EQ(kNoErr, apm_->AnalyzeReverseStream(revframe_)); | 1597 ASSERT_EQ(kNoErr, apm_->ProcessReverseStream(revframe_)); |
| 1598 | 1598 |
| 1599 CopyLeftToRightChannel(frame_->data_, frame_->samples_per_channel_); | 1599 CopyLeftToRightChannel(frame_->data_, frame_->samples_per_channel_); |
| 1600 frame_->vad_activity_ = AudioFrame::kVadUnknown; | 1600 frame_->vad_activity_ = AudioFrame::kVadUnknown; |
| 1601 | 1601 |
| 1602 ASSERT_EQ(kNoErr, apm_->set_stream_delay_ms(0)); | 1602 ASSERT_EQ(kNoErr, apm_->set_stream_delay_ms(0)); |
| 1603 apm_->echo_cancellation()->set_stream_drift_samples(0); | 1603 apm_->echo_cancellation()->set_stream_drift_samples(0); |
| 1604 ASSERT_EQ(kNoErr, | 1604 ASSERT_EQ(kNoErr, |
| 1605 apm_->gain_control()->set_stream_analog_level(analog_level)); | 1605 apm_->gain_control()->set_stream_analog_level(analog_level)); |
| 1606 ASSERT_EQ(kNoErr, apm_->ProcessStream(frame_)); | 1606 ASSERT_EQ(kNoErr, apm_->ProcessStream(frame_)); |
| 1607 analog_level = apm_->gain_control()->stream_analog_level(); | 1607 analog_level = apm_->gain_control()->stream_analog_level(); |
| (...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1862 test::TempFilename(test::OutputPath(), "debug_aec"); | 1862 test::TempFilename(test::OutputPath(), "debug_aec"); |
| 1863 EXPECT_EQ(apm_->kNullPointerError, | 1863 EXPECT_EQ(apm_->kNullPointerError, |
| 1864 apm_->StartDebugRecording(static_cast<const char*>(NULL), -1)); | 1864 apm_->StartDebugRecording(static_cast<const char*>(NULL), -1)); |
| 1865 | 1865 |
| 1866 #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP | 1866 #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP |
| 1867 // Stopping without having started should be OK. | 1867 // Stopping without having started should be OK. |
| 1868 EXPECT_EQ(apm_->kNoError, apm_->StopDebugRecording()); | 1868 EXPECT_EQ(apm_->kNoError, apm_->StopDebugRecording()); |
| 1869 | 1869 |
| 1870 EXPECT_EQ(apm_->kNoError, apm_->StartDebugRecording(filename.c_str(), -1)); | 1870 EXPECT_EQ(apm_->kNoError, apm_->StartDebugRecording(filename.c_str(), -1)); |
| 1871 EXPECT_EQ(apm_->kNoError, apm_->ProcessStream(frame_)); | 1871 EXPECT_EQ(apm_->kNoError, apm_->ProcessStream(frame_)); |
| 1872 EXPECT_EQ(apm_->kNoError, apm_->AnalyzeReverseStream(revframe_)); | 1872 EXPECT_EQ(apm_->kNoError, apm_->ProcessReverseStream(revframe_)); |
| 1873 EXPECT_EQ(apm_->kNoError, apm_->StopDebugRecording()); | 1873 EXPECT_EQ(apm_->kNoError, apm_->StopDebugRecording()); |
| 1874 | 1874 |
| 1875 // Verify the file has been written. | 1875 // Verify the file has been written. |
| 1876 FILE* fid = fopen(filename.c_str(), "r"); | 1876 FILE* fid = fopen(filename.c_str(), "r"); |
| 1877 ASSERT_TRUE(fid != NULL); | 1877 ASSERT_TRUE(fid != NULL); |
| 1878 | 1878 |
| 1879 // Clean it up. | 1879 // Clean it up. |
| 1880 ASSERT_EQ(0, fclose(fid)); | 1880 ASSERT_EQ(0, fclose(fid)); |
| 1881 ASSERT_EQ(0, remove(filename.c_str())); | 1881 ASSERT_EQ(0, remove(filename.c_str())); |
| 1882 #else | 1882 #else |
| (...skipping 13 matching lines...) Expand all Loading... |
| 1896 const std::string filename = | 1896 const std::string filename = |
| 1897 test::TempFilename(test::OutputPath(), "debug_aec"); | 1897 test::TempFilename(test::OutputPath(), "debug_aec"); |
| 1898 fid = fopen(filename.c_str(), "w"); | 1898 fid = fopen(filename.c_str(), "w"); |
| 1899 ASSERT_TRUE(fid); | 1899 ASSERT_TRUE(fid); |
| 1900 | 1900 |
| 1901 #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP | 1901 #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP |
| 1902 // Stopping without having started should be OK. | 1902 // Stopping without having started should be OK. |
| 1903 EXPECT_EQ(apm_->kNoError, apm_->StopDebugRecording()); | 1903 EXPECT_EQ(apm_->kNoError, apm_->StopDebugRecording()); |
| 1904 | 1904 |
| 1905 EXPECT_EQ(apm_->kNoError, apm_->StartDebugRecording(fid, -1)); | 1905 EXPECT_EQ(apm_->kNoError, apm_->StartDebugRecording(fid, -1)); |
| 1906 EXPECT_EQ(apm_->kNoError, apm_->AnalyzeReverseStream(revframe_)); | 1906 EXPECT_EQ(apm_->kNoError, apm_->ProcessReverseStream(revframe_)); |
| 1907 EXPECT_EQ(apm_->kNoError, apm_->ProcessStream(frame_)); | 1907 EXPECT_EQ(apm_->kNoError, apm_->ProcessStream(frame_)); |
| 1908 EXPECT_EQ(apm_->kNoError, apm_->StopDebugRecording()); | 1908 EXPECT_EQ(apm_->kNoError, apm_->StopDebugRecording()); |
| 1909 | 1909 |
| 1910 // Verify the file has been written. | 1910 // Verify the file has been written. |
| 1911 fid = fopen(filename.c_str(), "r"); | 1911 fid = fopen(filename.c_str(), "r"); |
| 1912 ASSERT_TRUE(fid != NULL); | 1912 ASSERT_TRUE(fid != NULL); |
| 1913 | 1913 |
| 1914 // Clean it up. | 1914 // Clean it up. |
| 1915 ASSERT_EQ(0, fclose(fid)); | 1915 ASSERT_EQ(0, fclose(fid)); |
| 1916 ASSERT_EQ(0, remove(filename.c_str())); | 1916 ASSERT_EQ(0, remove(filename.c_str())); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1956 ChannelBuffer<int16_t> output_cb(samples_per_channel, num_input_channels); | 1956 ChannelBuffer<int16_t> output_cb(samples_per_channel, num_input_channels); |
| 1957 ChannelBuffer<int16_t> output_int16(samples_per_channel, | 1957 ChannelBuffer<int16_t> output_int16(samples_per_channel, |
| 1958 num_input_channels); | 1958 num_input_channels); |
| 1959 | 1959 |
| 1960 int analog_level = 127; | 1960 int analog_level = 127; |
| 1961 size_t num_bad_chunks = 0; | 1961 size_t num_bad_chunks = 0; |
| 1962 while (ReadFrame(far_file_, revframe_, revfloat_cb_.get()) && | 1962 while (ReadFrame(far_file_, revframe_, revfloat_cb_.get()) && |
| 1963 ReadFrame(near_file_, frame_, float_cb_.get())) { | 1963 ReadFrame(near_file_, frame_, float_cb_.get())) { |
| 1964 frame_->vad_activity_ = AudioFrame::kVadUnknown; | 1964 frame_->vad_activity_ = AudioFrame::kVadUnknown; |
| 1965 | 1965 |
| 1966 EXPECT_NOERR(apm_->AnalyzeReverseStream(revframe_)); | 1966 EXPECT_NOERR(apm_->ProcessReverseStream(revframe_)); |
| 1967 EXPECT_NOERR(fapm->AnalyzeReverseStream( | 1967 EXPECT_NOERR(fapm->AnalyzeReverseStream( |
| 1968 revfloat_cb_->channels(), | 1968 revfloat_cb_->channels(), |
| 1969 samples_per_channel, | 1969 samples_per_channel, |
| 1970 test->sample_rate(), | 1970 test->sample_rate(), |
| 1971 LayoutFromChannels(num_render_channels))); | 1971 LayoutFromChannels(num_render_channels))); |
| 1972 | 1972 |
| 1973 EXPECT_NOERR(apm_->set_stream_delay_ms(0)); | 1973 EXPECT_NOERR(apm_->set_stream_delay_ms(0)); |
| 1974 EXPECT_NOERR(fapm->set_stream_delay_ms(0)); | 1974 EXPECT_NOERR(fapm->set_stream_delay_ms(0)); |
| 1975 apm_->echo_cancellation()->set_stream_drift_samples(0); | 1975 apm_->echo_cancellation()->set_stream_drift_samples(0); |
| 1976 fapm->echo_cancellation()->set_stream_drift_samples(0); | 1976 fapm->echo_cancellation()->set_stream_drift_samples(0); |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2096 int frame_count = 0; | 2096 int frame_count = 0; |
| 2097 int has_echo_count = 0; | 2097 int has_echo_count = 0; |
| 2098 int has_voice_count = 0; | 2098 int has_voice_count = 0; |
| 2099 int is_saturated_count = 0; | 2099 int is_saturated_count = 0; |
| 2100 int analog_level = 127; | 2100 int analog_level = 127; |
| 2101 int analog_level_average = 0; | 2101 int analog_level_average = 0; |
| 2102 int max_output_average = 0; | 2102 int max_output_average = 0; |
| 2103 float ns_speech_prob_average = 0.0f; | 2103 float ns_speech_prob_average = 0.0f; |
| 2104 | 2104 |
| 2105 while (ReadFrame(far_file_, revframe_) && ReadFrame(near_file_, frame_)) { | 2105 while (ReadFrame(far_file_, revframe_) && ReadFrame(near_file_, frame_)) { |
| 2106 EXPECT_EQ(apm_->kNoError, apm_->AnalyzeReverseStream(revframe_)); | 2106 EXPECT_EQ(apm_->kNoError, apm_->ProcessReverseStream(revframe_)); |
| 2107 | 2107 |
| 2108 frame_->vad_activity_ = AudioFrame::kVadUnknown; | 2108 frame_->vad_activity_ = AudioFrame::kVadUnknown; |
| 2109 | 2109 |
| 2110 EXPECT_EQ(apm_->kNoError, apm_->set_stream_delay_ms(0)); | 2110 EXPECT_EQ(apm_->kNoError, apm_->set_stream_delay_ms(0)); |
| 2111 apm_->echo_cancellation()->set_stream_drift_samples(0); | 2111 apm_->echo_cancellation()->set_stream_drift_samples(0); |
| 2112 EXPECT_EQ(apm_->kNoError, | 2112 EXPECT_EQ(apm_->kNoError, |
| 2113 apm_->gain_control()->set_stream_analog_level(analog_level)); | 2113 apm_->gain_control()->set_stream_analog_level(analog_level)); |
| 2114 | 2114 |
| 2115 EXPECT_EQ(apm_->kNoError, apm_->ProcessStream(frame_)); | 2115 EXPECT_EQ(apm_->kNoError, apm_->ProcessStream(frame_)); |
| 2116 | 2116 |
| (...skipping 635 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2752 std::tr1::make_tuple(16000, 32000, 48000, 32000, 25, 35), | 2752 std::tr1::make_tuple(16000, 32000, 48000, 32000, 25, 35), |
| 2753 std::tr1::make_tuple(16000, 32000, 32000, 32000, 25, 0), | 2753 std::tr1::make_tuple(16000, 32000, 32000, 32000, 25, 0), |
| 2754 std::tr1::make_tuple(16000, 32000, 16000, 32000, 25, 20), | 2754 std::tr1::make_tuple(16000, 32000, 16000, 32000, 25, 20), |
| 2755 std::tr1::make_tuple(16000, 16000, 48000, 16000, 35, 20), | 2755 std::tr1::make_tuple(16000, 16000, 48000, 16000, 35, 20), |
| 2756 std::tr1::make_tuple(16000, 16000, 32000, 16000, 35, 20), | 2756 std::tr1::make_tuple(16000, 16000, 32000, 16000, 35, 20), |
| 2757 std::tr1::make_tuple(16000, 16000, 16000, 16000, 0, 0))); | 2757 std::tr1::make_tuple(16000, 16000, 16000, 16000, 0, 0))); |
| 2758 #endif | 2758 #endif |
| 2759 | 2759 |
| 2760 } // namespace | 2760 } // namespace |
| 2761 } // namespace webrtc | 2761 } // namespace webrtc |
| OLD | NEW |