| OLD | NEW |
| 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 #include <cmath> | 5 #include <cmath> |
| 6 #include <cstdint> | 6 #include <cstdint> |
| 7 #include <limits> | 7 #include <limits> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| 11 #include "base/macros.h" | 11 #include "base/macros.h" |
| 12 #include "base/memory/ptr_util.h" | 12 #include "base/memory/ptr_util.h" |
| 13 #include "base/strings/stringprintf.h" | 13 #include "base/strings/stringprintf.h" |
| 14 #include "chromecast/media/cma/backend/alsa/post_processor_factory.h" |
| 14 #include "chromecast/media/cma/backend/alsa/post_processors/governor.h" | 15 #include "chromecast/media/cma/backend/alsa/post_processors/governor.h" |
| 15 #include "chromecast/media/cma/backend/alsa/post_processors/post_processor_unitt
est.h" | 16 #include "chromecast/media/cma/backend/alsa/post_processors/post_processor_unitt
est.h" |
| 16 #include "media/base/audio_bus.h" | |
| 17 #include "media/base/audio_sample_types.h" | |
| 18 #include "testing/gtest/include/gtest/gtest.h" | 17 #include "testing/gtest/include/gtest/gtest.h" |
| 19 | 18 |
| 20 namespace chromecast { | 19 namespace chromecast { |
| 21 namespace media { | 20 namespace media { |
| 22 namespace post_processor_test { | 21 namespace post_processor_test { |
| 23 | 22 |
| 24 namespace { | 23 namespace { |
| 25 | 24 |
| 26 const char* kConfigTemplate = | 25 const char* kConfigTemplate = |
| 27 R"config({"onset_volume": %f, "clamp_multiplier": %f})config"; | 26 R"config({"onset_volume": %f, "clamp_multiplier": %f})config"; |
| 28 | 27 |
| 28 const char kLibraryPath[] = "libcast_governor_1.0.so"; |
| 29 const float kDefaultClamp = 0.6f; | 29 const float kDefaultClamp = 0.6f; |
| 30 const int kNumFrames = 100; | 30 const int kNumFrames = 100; |
| 31 const int kFrequency = 2000; | 31 const int kFrequency = 2000; |
| 32 const int kSampleRate = 44100; | 32 const int kSampleRate = 44100; |
| 33 | 33 |
| 34 std::string MakeConfigString(float onset_volume, float clamp_multiplier) { | 34 std::string MakeConfigString(float onset_volume, float clamp_multiplier) { |
| 35 return base::StringPrintf(kConfigTemplate, onset_volume, clamp_multiplier); | 35 return base::StringPrintf(kConfigTemplate, onset_volume, clamp_multiplier); |
| 36 } | 36 } |
| 37 | 37 |
| 38 void ScaleData(float* data, int frames, float scale) { | 38 void ScaleData(float* data, int frames, float scale) { |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 ScaleData(expected_.data(), kNumFrames * kNumChannels, clamp_); | 104 ScaleData(expected_.data(), kNumFrames * kNumChannels, clamp_); |
| 105 } | 105 } |
| 106 CompareBuffers(); | 106 CompareBuffers(); |
| 107 } | 107 } |
| 108 | 108 |
| 109 INSTANTIATE_TEST_CASE_P(GovernorClampVolumeTest, | 109 INSTANTIATE_TEST_CASE_P(GovernorClampVolumeTest, |
| 110 GovernorTest, | 110 GovernorTest, |
| 111 ::testing::Values(0.0f, 0.1f, 0.5f, 0.9f, 1.0f, 1.1f)); | 111 ::testing::Values(0.0f, 0.1f, 0.5f, 0.9f, 1.0f, 1.1f)); |
| 112 | 112 |
| 113 // Default tests from post_processor_test | 113 // Default tests from post_processor_test |
| 114 TEST_P(PostProcessorTest, TestDelay) { | 114 TEST_P(PostProcessorTest, GovernorDelay) { |
| 115 std::string config = MakeConfigString(1.0, 1.0); | 115 std::string config = MakeConfigString(1.0, 1.0); |
| 116 auto pp = | 116 PostProcessorFactory factory; |
| 117 base::WrapUnique(AudioPostProcessorShlib_Create(config, kNumChannels)); | 117 auto pp = factory.CreatePostProcessor(kLibraryPath, config, kNumChannels); |
| 118 TestDelay(pp.get(), sample_rate_); | 118 TestDelay(pp.get(), sample_rate_); |
| 119 } | 119 } |
| 120 | 120 |
| 121 TEST_P(PostProcessorTest, TestRinging) { | 121 TEST_P(PostProcessorTest, GovernorRinging) { |
| 122 std::string config = MakeConfigString(1.0, 1.0); | 122 std::string config = MakeConfigString(1.0, 1.0); |
| 123 auto pp = | 123 PostProcessorFactory factory; |
| 124 base::WrapUnique(AudioPostProcessorShlib_Create(config, kNumChannels)); | 124 auto pp = factory.CreatePostProcessor(kLibraryPath, config, kNumChannels); |
| 125 TestRingingTime(pp.get(), sample_rate_); | 125 TestRingingTime(pp.get(), sample_rate_); |
| 126 } | 126 } |
| 127 | 127 |
| 128 TEST_P(PostProcessorTest, TestPassthrough) { | 128 TEST_P(PostProcessorTest, GovernorPassthrough) { |
| 129 std::string config = MakeConfigString(1.0, 1.0); | 129 std::string config = MakeConfigString(1.0, 1.0); |
| 130 auto pp = | 130 PostProcessorFactory factory; |
| 131 base::WrapUnique(AudioPostProcessorShlib_Create(config, kNumChannels)); | 131 auto pp = factory.CreatePostProcessor(kLibraryPath, config, kNumChannels); |
| 132 TestPassthrough(pp.get(), sample_rate_); | 132 TestPassthrough(pp.get(), sample_rate_); |
| 133 } | 133 } |
| 134 | 134 |
| 135 } // namespace post_processor_test | 135 } // namespace post_processor_test |
| 136 } // namespace media | 136 } // namespace media |
| 137 } // namespace chromecast | 137 } // namespace chromecast |
| OLD | NEW |