| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2014 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 23 matching lines...) Expand all Loading... |
| 34 #include "webrtc/modules/audio_coding/neteq/tools/input_audio_file.h" | 34 #include "webrtc/modules/audio_coding/neteq/tools/input_audio_file.h" |
| 35 #include "webrtc/modules/audio_coding/neteq/tools/output_audio_file.h" | 35 #include "webrtc/modules/audio_coding/neteq/tools/output_audio_file.h" |
| 36 #include "webrtc/modules/audio_coding/neteq/tools/packet.h" | 36 #include "webrtc/modules/audio_coding/neteq/tools/packet.h" |
| 37 #include "webrtc/modules/audio_coding/neteq/tools/rtp_file_source.h" | 37 #include "webrtc/modules/audio_coding/neteq/tools/rtp_file_source.h" |
| 38 #include "webrtc/modules/include/module_common_types.h" | 38 #include "webrtc/modules/include/module_common_types.h" |
| 39 #include "webrtc/system_wrappers/include/clock.h" | 39 #include "webrtc/system_wrappers/include/clock.h" |
| 40 #include "webrtc/system_wrappers/include/critical_section_wrapper.h" | 40 #include "webrtc/system_wrappers/include/critical_section_wrapper.h" |
| 41 #include "webrtc/system_wrappers/include/event_wrapper.h" | 41 #include "webrtc/system_wrappers/include/event_wrapper.h" |
| 42 #include "webrtc/system_wrappers/include/sleep.h" | 42 #include "webrtc/system_wrappers/include/sleep.h" |
| 43 #include "webrtc/test/testsupport/fileutils.h" | 43 #include "webrtc/test/testsupport/fileutils.h" |
| 44 #include "webrtc/test/testsupport/gtest_disable.h" | |
| 45 | 44 |
| 46 using ::testing::AtLeast; | 45 using ::testing::AtLeast; |
| 47 using ::testing::Invoke; | 46 using ::testing::Invoke; |
| 48 using ::testing::_; | 47 using ::testing::_; |
| 49 | 48 |
| 50 namespace webrtc { | 49 namespace webrtc { |
| 51 | 50 |
| 52 namespace { | 51 namespace { |
| 53 const int kSampleRateHz = 16000; | 52 const int kSampleRateHz = 16000; |
| 54 const int kNumSamples10ms = kSampleRateHz / 100; | 53 const int kNumSamples10ms = kSampleRateHz / 100; |
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 231 rtc::scoped_ptr<AudioCodingModule> acm_; | 230 rtc::scoped_ptr<AudioCodingModule> acm_; |
| 232 PacketizationCallbackStubOldApi packet_cb_; | 231 PacketizationCallbackStubOldApi packet_cb_; |
| 233 WebRtcRTPHeader rtp_header_; | 232 WebRtcRTPHeader rtp_header_; |
| 234 AudioFrame input_frame_; | 233 AudioFrame input_frame_; |
| 235 CodecInst codec_; | 234 CodecInst codec_; |
| 236 Clock* clock_; | 235 Clock* clock_; |
| 237 }; | 236 }; |
| 238 | 237 |
| 239 // Check if the statistics are initialized correctly. Before any call to ACM | 238 // Check if the statistics are initialized correctly. Before any call to ACM |
| 240 // all fields have to be zero. | 239 // all fields have to be zero. |
| 241 TEST_F(AudioCodingModuleTestOldApi, DISABLED_ON_ANDROID(InitializedToZero)) { | 240 #if defined(WEBRTC_ANDROID) |
| 241 #define MAYBE_InitializedToZero DISABLED_InitializedToZero |
| 242 #else |
| 243 #define MAYBE_InitializedToZero InitializedToZero |
| 244 #endif |
| 245 TEST_F(AudioCodingModuleTestOldApi, MAYBE_InitializedToZero) { |
| 242 RegisterCodec(); | 246 RegisterCodec(); |
| 243 AudioDecodingCallStats stats; | 247 AudioDecodingCallStats stats; |
| 244 acm_->GetDecodingCallStatistics(&stats); | 248 acm_->GetDecodingCallStatistics(&stats); |
| 245 EXPECT_EQ(0, stats.calls_to_neteq); | 249 EXPECT_EQ(0, stats.calls_to_neteq); |
| 246 EXPECT_EQ(0, stats.calls_to_silence_generator); | 250 EXPECT_EQ(0, stats.calls_to_silence_generator); |
| 247 EXPECT_EQ(0, stats.decoded_normal); | 251 EXPECT_EQ(0, stats.decoded_normal); |
| 248 EXPECT_EQ(0, stats.decoded_cng); | 252 EXPECT_EQ(0, stats.decoded_cng); |
| 249 EXPECT_EQ(0, stats.decoded_plc); | 253 EXPECT_EQ(0, stats.decoded_plc); |
| 250 EXPECT_EQ(0, stats.decoded_plc_cng); | 254 EXPECT_EQ(0, stats.decoded_plc_cng); |
| 251 } | 255 } |
| 252 | 256 |
| 253 // Insert some packets and pull audio. Check statistics are valid. Then, | 257 // Insert some packets and pull audio. Check statistics are valid. Then, |
| 254 // simulate packet loss and check if PLC and PLC-to-CNG statistics are | 258 // simulate packet loss and check if PLC and PLC-to-CNG statistics are |
| 255 // correctly updated. | 259 // correctly updated. |
| 256 TEST_F(AudioCodingModuleTestOldApi, DISABLED_ON_ANDROID(NetEqCalls)) { | 260 #if defined(WEBRTC_ANDROID) |
| 261 #define MAYBE_NetEqCalls DISABLED_NetEqCalls |
| 262 #else |
| 263 #define MAYBE_NetEqCalls NetEqCalls |
| 264 #endif |
| 265 TEST_F(AudioCodingModuleTestOldApi, MAYBE_NetEqCalls) { |
| 257 RegisterCodec(); | 266 RegisterCodec(); |
| 258 AudioDecodingCallStats stats; | 267 AudioDecodingCallStats stats; |
| 259 const int kNumNormalCalls = 10; | 268 const int kNumNormalCalls = 10; |
| 260 | 269 |
| 261 for (int num_calls = 0; num_calls < kNumNormalCalls; ++num_calls) { | 270 for (int num_calls = 0; num_calls < kNumNormalCalls; ++num_calls) { |
| 262 InsertPacketAndPullAudio(); | 271 InsertPacketAndPullAudio(); |
| 263 } | 272 } |
| 264 acm_->GetDecodingCallStatistics(&stats); | 273 acm_->GetDecodingCallStatistics(&stats); |
| 265 EXPECT_EQ(kNumNormalCalls, stats.calls_to_neteq); | 274 EXPECT_EQ(kNumNormalCalls, stats.calls_to_neteq); |
| 266 EXPECT_EQ(0, stats.calls_to_silence_generator); | 275 EXPECT_EQ(0, stats.calls_to_silence_generator); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 313 EXPECT_EQ(i / k10MsBlocksPerPacket, packet_cb_.num_calls()); | 322 EXPECT_EQ(i / k10MsBlocksPerPacket, packet_cb_.num_calls()); |
| 314 if (packet_cb_.num_calls() > 0) | 323 if (packet_cb_.num_calls() > 0) |
| 315 EXPECT_EQ(kAudioFrameSpeech, packet_cb_.last_frame_type()); | 324 EXPECT_EQ(kAudioFrameSpeech, packet_cb_.last_frame_type()); |
| 316 InsertAudioAndVerifyEncoding(); | 325 InsertAudioAndVerifyEncoding(); |
| 317 } | 326 } |
| 318 EXPECT_EQ(kLoops / k10MsBlocksPerPacket, packet_cb_.num_calls()); | 327 EXPECT_EQ(kLoops / k10MsBlocksPerPacket, packet_cb_.num_calls()); |
| 319 EXPECT_EQ(kAudioFrameSpeech, packet_cb_.last_frame_type()); | 328 EXPECT_EQ(kAudioFrameSpeech, packet_cb_.last_frame_type()); |
| 320 } | 329 } |
| 321 | 330 |
| 322 #if defined(WEBRTC_CODEC_ISAC) || defined(WEBRTC_CODEC_ISACFX) | 331 #if defined(WEBRTC_CODEC_ISAC) || defined(WEBRTC_CODEC_ISACFX) |
| 323 #define IF_ISAC(x) x | |
| 324 #else | |
| 325 #define IF_ISAC(x) DISABLED_##x | |
| 326 #endif | |
| 327 | |
| 328 // Verifies that the RTP timestamp series is not reset when the codec is | 332 // Verifies that the RTP timestamp series is not reset when the codec is |
| 329 // changed. | 333 // changed. |
| 330 TEST_F(AudioCodingModuleTestOldApi, | 334 TEST_F(AudioCodingModuleTestOldApi, TimestampSeriesContinuesWhenCodecChanges) { |
| 331 IF_ISAC(TimestampSeriesContinuesWhenCodecChanges)) { | |
| 332 RegisterCodec(); // This registers the default codec. | 335 RegisterCodec(); // This registers the default codec. |
| 333 uint32_t expected_ts = input_frame_.timestamp_; | 336 uint32_t expected_ts = input_frame_.timestamp_; |
| 334 int blocks_per_packet = codec_.pacsize / (kSampleRateHz / 100); | 337 int blocks_per_packet = codec_.pacsize / (kSampleRateHz / 100); |
| 335 // Encode 5 packets of the first codec type. | 338 // Encode 5 packets of the first codec type. |
| 336 const int kNumPackets1 = 5; | 339 const int kNumPackets1 = 5; |
| 337 for (int j = 0; j < kNumPackets1; ++j) { | 340 for (int j = 0; j < kNumPackets1; ++j) { |
| 338 for (int i = 0; i < blocks_per_packet; ++i) { | 341 for (int i = 0; i < blocks_per_packet; ++i) { |
| 339 EXPECT_EQ(j, packet_cb_.num_calls()); | 342 EXPECT_EQ(j, packet_cb_.num_calls()); |
| 340 InsertAudio(); | 343 InsertAudio(); |
| 341 } | 344 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 353 for (int j = 0; j < kNumPackets2; ++j) { | 356 for (int j = 0; j < kNumPackets2; ++j) { |
| 354 for (int i = 0; i < blocks_per_packet; ++i) { | 357 for (int i = 0; i < blocks_per_packet; ++i) { |
| 355 EXPECT_EQ(kNumPackets1 + j, packet_cb_.num_calls()); | 358 EXPECT_EQ(kNumPackets1 + j, packet_cb_.num_calls()); |
| 356 InsertAudio(); | 359 InsertAudio(); |
| 357 } | 360 } |
| 358 EXPECT_EQ(kNumPackets1 + j + 1, packet_cb_.num_calls()); | 361 EXPECT_EQ(kNumPackets1 + j + 1, packet_cb_.num_calls()); |
| 359 EXPECT_EQ(expected_ts, packet_cb_.last_timestamp()); | 362 EXPECT_EQ(expected_ts, packet_cb_.last_timestamp()); |
| 360 expected_ts += codec_.pacsize; | 363 expected_ts += codec_.pacsize; |
| 361 } | 364 } |
| 362 } | 365 } |
| 366 #endif |
| 363 | 367 |
| 364 // Introduce this class to set different expectations on the number of encoded | 368 // Introduce this class to set different expectations on the number of encoded |
| 365 // bytes. This class expects all encoded packets to be 9 bytes (matching one | 369 // bytes. This class expects all encoded packets to be 9 bytes (matching one |
| 366 // CNG SID frame) or 0 bytes. This test depends on |input_frame_| containing | 370 // CNG SID frame) or 0 bytes. This test depends on |input_frame_| containing |
| 367 // (near-)zero values. It also introduces a way to register comfort noise with | 371 // (near-)zero values. It also introduces a way to register comfort noise with |
| 368 // a custom payload type. | 372 // a custom payload type. |
| 369 class AudioCodingModuleTestWithComfortNoiseOldApi | 373 class AudioCodingModuleTestWithComfortNoiseOldApi |
| 370 : public AudioCodingModuleTestOldApi { | 374 : public AudioCodingModuleTestOldApi { |
| 371 protected: | 375 protected: |
| 372 void RegisterCngCodec(int rtp_payload_type) { | 376 void RegisterCngCodec(int rtp_payload_type) { |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 575 rtc::PlatformThread pull_audio_thread_; | 579 rtc::PlatformThread pull_audio_thread_; |
| 576 const rtc::scoped_ptr<EventWrapper> test_complete_; | 580 const rtc::scoped_ptr<EventWrapper> test_complete_; |
| 577 int send_count_; | 581 int send_count_; |
| 578 int insert_packet_count_; | 582 int insert_packet_count_; |
| 579 int pull_audio_count_ GUARDED_BY(crit_sect_); | 583 int pull_audio_count_ GUARDED_BY(crit_sect_); |
| 580 const rtc::scoped_ptr<CriticalSectionWrapper> crit_sect_; | 584 const rtc::scoped_ptr<CriticalSectionWrapper> crit_sect_; |
| 581 int64_t next_insert_packet_time_ms_ GUARDED_BY(crit_sect_); | 585 int64_t next_insert_packet_time_ms_ GUARDED_BY(crit_sect_); |
| 582 rtc::scoped_ptr<SimulatedClock> fake_clock_; | 586 rtc::scoped_ptr<SimulatedClock> fake_clock_; |
| 583 }; | 587 }; |
| 584 | 588 |
| 585 TEST_F(AudioCodingModuleMtTestOldApi, DISABLED_ON_IOS(DoTest)) { | 589 #if defined(WEBRTC_IOS) |
| 590 #define MAYBE_DoTest DISABLED_DoTest |
| 591 #else |
| 592 #define MAYBE_DoTest DoTest |
| 593 #endif |
| 594 TEST_F(AudioCodingModuleMtTestOldApi, MAYBE_DoTest) { |
| 586 EXPECT_EQ(kEventSignaled, RunTest()); | 595 EXPECT_EQ(kEventSignaled, RunTest()); |
| 587 } | 596 } |
| 588 | 597 |
| 589 // This is a multi-threaded ACM test using iSAC. The test encodes audio | 598 // This is a multi-threaded ACM test using iSAC. The test encodes audio |
| 590 // from a PCM file. The most recent encoded frame is used as input to the | 599 // from a PCM file. The most recent encoded frame is used as input to the |
| 591 // receiving part. Depending on timing, it may happen that the same RTP packet | 600 // receiving part. Depending on timing, it may happen that the same RTP packet |
| 592 // is inserted into the receiver multiple times, but this is a valid use-case, | 601 // is inserted into the receiver multiple times, but this is a valid use-case, |
| 593 // and simplifies the test code a lot. | 602 // and simplifies the test code a lot. |
| 594 class AcmIsacMtTestOldApi : public AudioCodingModuleMtTestOldApi { | 603 class AcmIsacMtTestOldApi : public AudioCodingModuleMtTestOldApi { |
| 595 protected: | 604 protected: |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 679 } | 688 } |
| 680 } | 689 } |
| 681 return false; | 690 return false; |
| 682 } | 691 } |
| 683 | 692 |
| 684 int last_packet_number_; | 693 int last_packet_number_; |
| 685 std::vector<uint8_t> last_payload_vec_; | 694 std::vector<uint8_t> last_payload_vec_; |
| 686 test::AudioLoop audio_loop_; | 695 test::AudioLoop audio_loop_; |
| 687 }; | 696 }; |
| 688 | 697 |
| 689 TEST_F(AcmIsacMtTestOldApi, DISABLED_ON_IOS(IF_ISAC(DoTest))) { | 698 #if defined(WEBRTC_IOS) |
| 699 #define MAYBE_DoTest DISABLED_DoTest |
| 700 #else |
| 701 #define MAYBE_DoTest DoTest |
| 702 #endif |
| 703 #if defined(WEBRTC_CODEC_ISAC) || defined(WEBRTC_CODEC_ISACFX) |
| 704 TEST_F(AcmIsacMtTestOldApi, MAYBE_DoTest) { |
| 690 EXPECT_EQ(kEventSignaled, RunTest()); | 705 EXPECT_EQ(kEventSignaled, RunTest()); |
| 691 } | 706 } |
| 707 #endif |
| 692 | 708 |
| 693 class AcmReRegisterIsacMtTestOldApi : public AudioCodingModuleTestOldApi { | 709 class AcmReRegisterIsacMtTestOldApi : public AudioCodingModuleTestOldApi { |
| 694 protected: | 710 protected: |
| 695 static const int kRegisterAfterNumPackets = 5; | 711 static const int kRegisterAfterNumPackets = 5; |
| 696 static const int kNumPackets = 10; | 712 static const int kNumPackets = 10; |
| 697 static const int kPacketSizeMs = 30; | 713 static const int kPacketSizeMs = 30; |
| 698 static const int kPacketSizeSamples = kPacketSizeMs * 16; | 714 static const int kPacketSizeSamples = kPacketSizeMs * 16; |
| 699 | 715 |
| 700 AcmReRegisterIsacMtTestOldApi() | 716 AcmReRegisterIsacMtTestOldApi() |
| 701 : AudioCodingModuleTestOldApi(), | 717 : AudioCodingModuleTestOldApi(), |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 831 const rtc::scoped_ptr<EventWrapper> test_complete_; | 847 const rtc::scoped_ptr<EventWrapper> test_complete_; |
| 832 const rtc::scoped_ptr<CriticalSectionWrapper> crit_sect_; | 848 const rtc::scoped_ptr<CriticalSectionWrapper> crit_sect_; |
| 833 bool codec_registered_ GUARDED_BY(crit_sect_); | 849 bool codec_registered_ GUARDED_BY(crit_sect_); |
| 834 int receive_packet_count_ GUARDED_BY(crit_sect_); | 850 int receive_packet_count_ GUARDED_BY(crit_sect_); |
| 835 int64_t next_insert_packet_time_ms_ GUARDED_BY(crit_sect_); | 851 int64_t next_insert_packet_time_ms_ GUARDED_BY(crit_sect_); |
| 836 rtc::scoped_ptr<AudioEncoderIsac> isac_encoder_; | 852 rtc::scoped_ptr<AudioEncoderIsac> isac_encoder_; |
| 837 rtc::scoped_ptr<SimulatedClock> fake_clock_; | 853 rtc::scoped_ptr<SimulatedClock> fake_clock_; |
| 838 test::AudioLoop audio_loop_; | 854 test::AudioLoop audio_loop_; |
| 839 }; | 855 }; |
| 840 | 856 |
| 841 TEST_F(AcmReRegisterIsacMtTestOldApi, DISABLED_ON_IOS(IF_ISAC(DoTest))) { | 857 #if defined(WEBRTC_IOS) |
| 858 #define MAYBE_DoTest DISABLED_DoTest |
| 859 #else |
| 860 #define MAYBE_DoTest DoTest |
| 861 #endif |
| 862 #if defined(WEBRTC_CODEC_ISAC) || defined(WEBRTC_CODEC_ISACFX) |
| 863 TEST_F(AcmReRegisterIsacMtTestOldApi, MAYBE_DoTest) { |
| 842 EXPECT_EQ(kEventSignaled, RunTest()); | 864 EXPECT_EQ(kEventSignaled, RunTest()); |
| 843 } | 865 } |
| 866 #endif |
| 844 | 867 |
| 845 // Disabling all of these tests on iOS until file support has been added. | 868 // Disabling all of these tests on iOS until file support has been added. |
| 846 // See https://code.google.com/p/webrtc/issues/detail?id=4752 for details. | 869 // See https://code.google.com/p/webrtc/issues/detail?id=4752 for details. |
| 847 #if !defined(WEBRTC_IOS) | 870 #if !defined(WEBRTC_IOS) |
| 848 | 871 |
| 849 class AcmReceiverBitExactnessOldApi : public ::testing::Test { | 872 class AcmReceiverBitExactnessOldApi : public ::testing::Test { |
| 850 public: | 873 public: |
| 851 static std::string PlatformChecksum(std::string others, | 874 static std::string PlatformChecksum(std::string others, |
| 852 std::string win64, | 875 std::string win64, |
| 853 std::string android_arm32, | 876 std::string android_arm32, |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 912 std::string checksum_string = checksum.Finish(); | 935 std::string checksum_string = checksum.Finish(); |
| 913 EXPECT_EQ(checksum_ref, checksum_string); | 936 EXPECT_EQ(checksum_ref, checksum_string); |
| 914 | 937 |
| 915 // Delete the output file. | 938 // Delete the output file. |
| 916 remove(output_file_name.c_str()); | 939 remove(output_file_name.c_str()); |
| 917 } | 940 } |
| 918 }; | 941 }; |
| 919 | 942 |
| 920 #if (defined(WEBRTC_CODEC_ISAC) || defined(WEBRTC_CODEC_ISACFX)) && \ | 943 #if (defined(WEBRTC_CODEC_ISAC) || defined(WEBRTC_CODEC_ISACFX)) && \ |
| 921 defined(WEBRTC_CODEC_ILBC) && defined(WEBRTC_CODEC_G722) | 944 defined(WEBRTC_CODEC_ILBC) && defined(WEBRTC_CODEC_G722) |
| 922 #define IF_ALL_CODECS(x) x | 945 TEST_F(AcmReceiverBitExactnessOldApi, 8kHzOutput) { |
| 923 #else | |
| 924 #define IF_ALL_CODECS(x) DISABLED_##x | |
| 925 #endif | |
| 926 | |
| 927 TEST_F(AcmReceiverBitExactnessOldApi, IF_ALL_CODECS(8kHzOutput)) { | |
| 928 Run(8000, PlatformChecksum("908002dc01fc4eb1d2be24eb1d3f354b", | 946 Run(8000, PlatformChecksum("908002dc01fc4eb1d2be24eb1d3f354b", |
| 929 "dcee98c623b147ebe1b40dd30efa896e", | 947 "dcee98c623b147ebe1b40dd30efa896e", |
| 930 "adc92e173f908f93b96ba5844209815a", | 948 "adc92e173f908f93b96ba5844209815a", |
| 931 "ba16137d3a5a1e637252289c57522bfe"), | 949 "ba16137d3a5a1e637252289c57522bfe"), |
| 932 std::vector<ExternalDecoder>()); | 950 std::vector<ExternalDecoder>()); |
| 933 } | 951 } |
| 934 | 952 |
| 935 TEST_F(AcmReceiverBitExactnessOldApi, IF_ALL_CODECS(16kHzOutput)) { | 953 TEST_F(AcmReceiverBitExactnessOldApi, 16kHzOutput) { |
| 936 Run(16000, PlatformChecksum("a909560b5ca49fa472b17b7b277195e9", | 954 Run(16000, PlatformChecksum("a909560b5ca49fa472b17b7b277195e9", |
| 937 "f790e7a8cce4e2c8b7bb5e0e4c5dac0d", | 955 "f790e7a8cce4e2c8b7bb5e0e4c5dac0d", |
| 938 "8cffa6abcb3e18e33b9d857666dff66a", | 956 "8cffa6abcb3e18e33b9d857666dff66a", |
| 939 "66ee001e23534d4dcf5d0f81f916c93b"), | 957 "66ee001e23534d4dcf5d0f81f916c93b"), |
| 940 std::vector<ExternalDecoder>()); | 958 std::vector<ExternalDecoder>()); |
| 941 } | 959 } |
| 942 | 960 |
| 943 TEST_F(AcmReceiverBitExactnessOldApi, IF_ALL_CODECS(32kHzOutput)) { | 961 TEST_F(AcmReceiverBitExactnessOldApi, 32kHzOutput) { |
| 944 Run(32000, PlatformChecksum("441aab4b347fb3db4e9244337aca8d8e", | 962 Run(32000, PlatformChecksum("441aab4b347fb3db4e9244337aca8d8e", |
| 945 "306e0d990ee6e92de3fbecc0123ece37", | 963 "306e0d990ee6e92de3fbecc0123ece37", |
| 946 "3e126fe894720c3f85edadcc91964ba5", | 964 "3e126fe894720c3f85edadcc91964ba5", |
| 947 "9c6ff204b14152c48fe41d5ab757943b"), | 965 "9c6ff204b14152c48fe41d5ab757943b"), |
| 948 std::vector<ExternalDecoder>()); | 966 std::vector<ExternalDecoder>()); |
| 949 } | 967 } |
| 950 | 968 |
| 951 TEST_F(AcmReceiverBitExactnessOldApi, IF_ALL_CODECS(48kHzOutput)) { | 969 TEST_F(AcmReceiverBitExactnessOldApi, 48kHzOutput) { |
| 952 Run(48000, PlatformChecksum("4ee2730fa1daae755e8a8fd3abd779ec", | 970 Run(48000, PlatformChecksum("4ee2730fa1daae755e8a8fd3abd779ec", |
| 953 "aa7c232f63a67b2a72703593bdd172e0", | 971 "aa7c232f63a67b2a72703593bdd172e0", |
| 954 "0155665e93067c4e89256b944dd11999", | 972 "0155665e93067c4e89256b944dd11999", |
| 955 "fc4f0da8844cd808d822bbddf3b9c285"), | 973 "fc4f0da8844cd808d822bbddf3b9c285"), |
| 956 std::vector<ExternalDecoder>()); | 974 std::vector<ExternalDecoder>()); |
| 957 } | 975 } |
| 958 | 976 |
| 959 TEST_F(AcmReceiverBitExactnessOldApi, | 977 TEST_F(AcmReceiverBitExactnessOldApi, 48kHzOutputExternalDecoder) { |
| 960 IF_ALL_CODECS(48kHzOutputExternalDecoder)) { | |
| 961 // Class intended to forward a call from a mock DecodeInternal to Decode on | 978 // Class intended to forward a call from a mock DecodeInternal to Decode on |
| 962 // the real decoder's Decode. DecodeInternal for the real decoder isn't | 979 // the real decoder's Decode. DecodeInternal for the real decoder isn't |
| 963 // public. | 980 // public. |
| 964 class DecodeForwarder { | 981 class DecodeForwarder { |
| 965 public: | 982 public: |
| 966 DecodeForwarder(AudioDecoder* decoder) : decoder_(decoder) {} | 983 DecodeForwarder(AudioDecoder* decoder) : decoder_(decoder) {} |
| 967 int Decode(const uint8_t* encoded, | 984 int Decode(const uint8_t* encoded, |
| 968 size_t encoded_len, | 985 size_t encoded_len, |
| 969 int sample_rate_hz, | 986 int sample_rate_hz, |
| 970 int16_t* decoded, | 987 int16_t* decoded, |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1009 external_decoders.push_back(ed); | 1026 external_decoders.push_back(ed); |
| 1010 | 1027 |
| 1011 Run(48000, PlatformChecksum("4ee2730fa1daae755e8a8fd3abd779ec", | 1028 Run(48000, PlatformChecksum("4ee2730fa1daae755e8a8fd3abd779ec", |
| 1012 "aa7c232f63a67b2a72703593bdd172e0", | 1029 "aa7c232f63a67b2a72703593bdd172e0", |
| 1013 "0155665e93067c4e89256b944dd11999", | 1030 "0155665e93067c4e89256b944dd11999", |
| 1014 "fc4f0da8844cd808d822bbddf3b9c285"), | 1031 "fc4f0da8844cd808d822bbddf3b9c285"), |
| 1015 external_decoders); | 1032 external_decoders); |
| 1016 | 1033 |
| 1017 EXPECT_CALL(mock_decoder, Die()); | 1034 EXPECT_CALL(mock_decoder, Die()); |
| 1018 } | 1035 } |
| 1036 #endif |
| 1019 | 1037 |
| 1020 // This test verifies bit exactness for the send-side of ACM. The test setup is | 1038 // This test verifies bit exactness for the send-side of ACM. The test setup is |
| 1021 // a chain of three different test classes: | 1039 // a chain of three different test classes: |
| 1022 // | 1040 // |
| 1023 // test::AcmSendTest -> AcmSenderBitExactness -> test::AcmReceiveTest | 1041 // test::AcmSendTest -> AcmSenderBitExactness -> test::AcmReceiveTest |
| 1024 // | 1042 // |
| 1025 // The receiver side is driving the test by requesting new packets from | 1043 // The receiver side is driving the test by requesting new packets from |
| 1026 // AcmSenderBitExactness::NextPacket(). This method, in turn, asks for the | 1044 // AcmSenderBitExactness::NextPacket(). This method, in turn, asks for the |
| 1027 // packet from test::AcmSendTest::NextPacket, which inserts audio from the | 1045 // packet from test::AcmSendTest::NextPacket, which inserts audio from the |
| 1028 // input file until one packet is produced. (The input file loops indefinitely.) | 1046 // input file until one packet is produced. (The input file loops indefinitely.) |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1187 rtc::scoped_ptr<test::AcmSendTestOldApi> send_test_; | 1205 rtc::scoped_ptr<test::AcmSendTestOldApi> send_test_; |
| 1188 rtc::scoped_ptr<test::InputAudioFile> audio_source_; | 1206 rtc::scoped_ptr<test::InputAudioFile> audio_source_; |
| 1189 uint32_t frame_size_rtp_timestamps_; | 1207 uint32_t frame_size_rtp_timestamps_; |
| 1190 int packet_count_; | 1208 int packet_count_; |
| 1191 uint8_t payload_type_; | 1209 uint8_t payload_type_; |
| 1192 uint16_t last_sequence_number_; | 1210 uint16_t last_sequence_number_; |
| 1193 uint32_t last_timestamp_; | 1211 uint32_t last_timestamp_; |
| 1194 rtc::Md5Digest payload_checksum_; | 1212 rtc::Md5Digest payload_checksum_; |
| 1195 }; | 1213 }; |
| 1196 | 1214 |
| 1197 TEST_F(AcmSenderBitExactnessOldApi, IF_ISAC(IsacWb30ms)) { | 1215 #if defined(WEBRTC_CODEC_ISAC) || defined(WEBRTC_CODEC_ISACFX) |
| 1216 TEST_F(AcmSenderBitExactnessOldApi, IsacWb30ms) { |
| 1198 ASSERT_NO_FATAL_FAILURE(SetUpTest("ISAC", 16000, 1, 103, 480, 480)); | 1217 ASSERT_NO_FATAL_FAILURE(SetUpTest("ISAC", 16000, 1, 103, 480, 480)); |
| 1199 Run(AcmReceiverBitExactnessOldApi::PlatformChecksum( | 1218 Run(AcmReceiverBitExactnessOldApi::PlatformChecksum( |
| 1200 "0b58f9eeee43d5891f5f6c75e77984a3", | 1219 "0b58f9eeee43d5891f5f6c75e77984a3", |
| 1201 "c7e5bdadfa2871df95639fcc297cf23d", | 1220 "c7e5bdadfa2871df95639fcc297cf23d", |
| 1202 "0499ca260390769b3172136faad925b9", | 1221 "0499ca260390769b3172136faad925b9", |
| 1203 "866abf524acd2807efbe65e133c23f95"), | 1222 "866abf524acd2807efbe65e133c23f95"), |
| 1204 AcmReceiverBitExactnessOldApi::PlatformChecksum( | 1223 AcmReceiverBitExactnessOldApi::PlatformChecksum( |
| 1205 "3c79f16f34218271f3dca4e2b1dfe1bb", | 1224 "3c79f16f34218271f3dca4e2b1dfe1bb", |
| 1206 "d42cb5195463da26c8129bbfe73a22e6", | 1225 "d42cb5195463da26c8129bbfe73a22e6", |
| 1207 "83de248aea9c3c2bd680b6952401b4ca", | 1226 "83de248aea9c3c2bd680b6952401b4ca", |
| 1208 "3c79f16f34218271f3dca4e2b1dfe1bb"), | 1227 "3c79f16f34218271f3dca4e2b1dfe1bb"), |
| 1209 33, test::AcmReceiveTestOldApi::kMonoOutput); | 1228 33, test::AcmReceiveTestOldApi::kMonoOutput); |
| 1210 } | 1229 } |
| 1211 | 1230 |
| 1212 TEST_F(AcmSenderBitExactnessOldApi, IF_ISAC(IsacWb60ms)) { | 1231 TEST_F(AcmSenderBitExactnessOldApi, IsacWb60ms) { |
| 1213 ASSERT_NO_FATAL_FAILURE(SetUpTest("ISAC", 16000, 1, 103, 960, 960)); | 1232 ASSERT_NO_FATAL_FAILURE(SetUpTest("ISAC", 16000, 1, 103, 960, 960)); |
| 1214 Run(AcmReceiverBitExactnessOldApi::PlatformChecksum( | 1233 Run(AcmReceiverBitExactnessOldApi::PlatformChecksum( |
| 1215 "1ad29139a04782a33daad8c2b9b35875", | 1234 "1ad29139a04782a33daad8c2b9b35875", |
| 1216 "14d63c5f08127d280e722e3191b73bdd", | 1235 "14d63c5f08127d280e722e3191b73bdd", |
| 1217 "8da003e16c5371af2dc2be79a50f9076", | 1236 "8da003e16c5371af2dc2be79a50f9076", |
| 1218 "ef75e900e6f375e3061163c53fd09a63"), | 1237 "ef75e900e6f375e3061163c53fd09a63"), |
| 1219 AcmReceiverBitExactnessOldApi::PlatformChecksum( | 1238 AcmReceiverBitExactnessOldApi::PlatformChecksum( |
| 1220 "9e0a0ab743ad987b55b8e14802769c56", | 1239 "9e0a0ab743ad987b55b8e14802769c56", |
| 1221 "ebe04a819d3a9d83a83a17f271e1139a", | 1240 "ebe04a819d3a9d83a83a17f271e1139a", |
| 1222 "97aeef98553b5a4b5a68f8b716e8eaf0", | 1241 "97aeef98553b5a4b5a68f8b716e8eaf0", |
| 1223 "9e0a0ab743ad987b55b8e14802769c56"), | 1242 "9e0a0ab743ad987b55b8e14802769c56"), |
| 1224 16, test::AcmReceiveTestOldApi::kMonoOutput); | 1243 16, test::AcmReceiveTestOldApi::kMonoOutput); |
| 1225 } | 1244 } |
| 1226 | |
| 1227 #ifdef WEBRTC_CODEC_ISAC | |
| 1228 #define IF_ISAC_FLOAT(x) x | |
| 1229 #else | |
| 1230 #define IF_ISAC_FLOAT(x) DISABLED_##x | |
| 1231 #endif | 1245 #endif |
| 1232 | 1246 |
| 1233 TEST_F(AcmSenderBitExactnessOldApi, | 1247 #if defined(WEBRTC_ANDROID) |
| 1234 DISABLED_ON_ANDROID(IF_ISAC_FLOAT(IsacSwb30ms))) { | 1248 #define MAYBE_IsacSwb30ms DISABLED_IsacSwb30ms |
| 1249 #else |
| 1250 #define MAYBE_IsacSwb30ms IsacSwb30ms |
| 1251 #endif |
| 1252 #if defined(WEBRTC_CODEC_ISAC) |
| 1253 TEST_F(AcmSenderBitExactnessOldApi, MAYBE_IsacSwb30ms) { |
| 1235 ASSERT_NO_FATAL_FAILURE(SetUpTest("ISAC", 32000, 1, 104, 960, 960)); | 1254 ASSERT_NO_FATAL_FAILURE(SetUpTest("ISAC", 32000, 1, 104, 960, 960)); |
| 1236 Run(AcmReceiverBitExactnessOldApi::PlatformChecksum( | 1255 Run(AcmReceiverBitExactnessOldApi::PlatformChecksum( |
| 1237 "5683b58da0fbf2063c7adc2e6bfb3fb8", | 1256 "5683b58da0fbf2063c7adc2e6bfb3fb8", |
| 1238 "2b3c387d06f00b7b7aad4c9be56fb83d", "android_arm32_audio", | 1257 "2b3c387d06f00b7b7aad4c9be56fb83d", "android_arm32_audio", |
| 1239 "android_arm64_audio"), | 1258 "android_arm64_audio"), |
| 1240 AcmReceiverBitExactnessOldApi::PlatformChecksum( | 1259 AcmReceiverBitExactnessOldApi::PlatformChecksum( |
| 1241 "ce86106a93419aefb063097108ec94ab", | 1260 "ce86106a93419aefb063097108ec94ab", |
| 1242 "bcc2041e7744c7ebd9f701866856849c", "android_arm32_payload", | 1261 "bcc2041e7744c7ebd9f701866856849c", "android_arm32_payload", |
| 1243 "android_arm64_payload"), | 1262 "android_arm64_payload"), |
| 1244 33, test::AcmReceiveTestOldApi::kMonoOutput); | 1263 33, test::AcmReceiveTestOldApi::kMonoOutput); |
| 1245 } | 1264 } |
| 1265 #endif |
| 1246 | 1266 |
| 1247 TEST_F(AcmSenderBitExactnessOldApi, Pcm16_8000khz_10ms) { | 1267 TEST_F(AcmSenderBitExactnessOldApi, Pcm16_8000khz_10ms) { |
| 1248 ASSERT_NO_FATAL_FAILURE(SetUpTest("L16", 8000, 1, 107, 80, 80)); | 1268 ASSERT_NO_FATAL_FAILURE(SetUpTest("L16", 8000, 1, 107, 80, 80)); |
| 1249 Run("de4a98e1406f8b798d99cd0704e862e2", | 1269 Run("de4a98e1406f8b798d99cd0704e862e2", |
| 1250 "c1edd36339ce0326cc4550041ad719a0", | 1270 "c1edd36339ce0326cc4550041ad719a0", |
| 1251 100, | 1271 100, |
| 1252 test::AcmReceiveTestOldApi::kMonoOutput); | 1272 test::AcmReceiveTestOldApi::kMonoOutput); |
| 1253 } | 1273 } |
| 1254 | 1274 |
| 1255 TEST_F(AcmSenderBitExactnessOldApi, Pcm16_16000khz_10ms) { | 1275 TEST_F(AcmSenderBitExactnessOldApi, Pcm16_16000khz_10ms) { |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1317 } | 1337 } |
| 1318 | 1338 |
| 1319 TEST_F(AcmSenderBitExactnessOldApi, Pcma_stereo_20ms) { | 1339 TEST_F(AcmSenderBitExactnessOldApi, Pcma_stereo_20ms) { |
| 1320 ASSERT_NO_FATAL_FAILURE(SetUpTest("PCMA", 8000, 2, 118, 160, 160)); | 1340 ASSERT_NO_FATAL_FAILURE(SetUpTest("PCMA", 8000, 2, 118, 160, 160)); |
| 1321 Run("a5c6d83c5b7cedbeff734238220a4b0c", | 1341 Run("a5c6d83c5b7cedbeff734238220a4b0c", |
| 1322 "92b282c83efd20e7eeef52ba40842cf7", | 1342 "92b282c83efd20e7eeef52ba40842cf7", |
| 1323 50, | 1343 50, |
| 1324 test::AcmReceiveTestOldApi::kStereoOutput); | 1344 test::AcmReceiveTestOldApi::kStereoOutput); |
| 1325 } | 1345 } |
| 1326 | 1346 |
| 1327 #ifdef WEBRTC_CODEC_ILBC | 1347 #if defined(WEBRTC_ANDROID) |
| 1328 #define IF_ILBC(x) x | 1348 #define MAYBE_Ilbc_30ms DISABLED_Ilbc_30ms |
| 1329 #else | 1349 #else |
| 1330 #define IF_ILBC(x) DISABLED_##x | 1350 #define MAYBE_Ilbc_30ms Ilbc_30ms |
| 1331 #endif | 1351 #endif |
| 1332 | 1352 #if defined(WEBRTC_CODEC_ILBC) |
| 1333 TEST_F(AcmSenderBitExactnessOldApi, DISABLED_ON_ANDROID(IF_ILBC(Ilbc_30ms))) { | 1353 TEST_F(AcmSenderBitExactnessOldApi, MAYBE_Ilbc_30ms) { |
| 1334 ASSERT_NO_FATAL_FAILURE(SetUpTest("ILBC", 8000, 1, 102, 240, 240)); | 1354 ASSERT_NO_FATAL_FAILURE(SetUpTest("ILBC", 8000, 1, 102, 240, 240)); |
| 1335 Run(AcmReceiverBitExactnessOldApi::PlatformChecksum( | 1355 Run(AcmReceiverBitExactnessOldApi::PlatformChecksum( |
| 1336 "7b6ec10910debd9af08011d3ed5249f7", | 1356 "7b6ec10910debd9af08011d3ed5249f7", |
| 1337 "7b6ec10910debd9af08011d3ed5249f7", "android_arm32_audio", | 1357 "7b6ec10910debd9af08011d3ed5249f7", "android_arm32_audio", |
| 1338 "android_arm64_audio"), | 1358 "android_arm64_audio"), |
| 1339 AcmReceiverBitExactnessOldApi::PlatformChecksum( | 1359 AcmReceiverBitExactnessOldApi::PlatformChecksum( |
| 1340 "cfae2e9f6aba96e145f2bcdd5050ce78", | 1360 "cfae2e9f6aba96e145f2bcdd5050ce78", |
| 1341 "cfae2e9f6aba96e145f2bcdd5050ce78", "android_arm32_payload", | 1361 "cfae2e9f6aba96e145f2bcdd5050ce78", "android_arm32_payload", |
| 1342 "android_arm64_payload"), | 1362 "android_arm64_payload"), |
| 1343 33, test::AcmReceiveTestOldApi::kMonoOutput); | 1363 33, test::AcmReceiveTestOldApi::kMonoOutput); |
| 1344 } | 1364 } |
| 1345 | |
| 1346 #ifdef WEBRTC_CODEC_G722 | |
| 1347 #define IF_G722(x) x | |
| 1348 #else | |
| 1349 #define IF_G722(x) DISABLED_##x | |
| 1350 #endif | 1365 #endif |
| 1351 | 1366 |
| 1352 TEST_F(AcmSenderBitExactnessOldApi, DISABLED_ON_ANDROID(IF_G722(G722_20ms))) { | 1367 #if defined(WEBRTC_ANDROID) |
| 1368 #define MAYBE_G722_20ms DISABLED_G722_20ms |
| 1369 #else |
| 1370 #define MAYBE_G722_20ms G722_20ms |
| 1371 #endif |
| 1372 #if defined(WEBRTC_CODEC_G722) |
| 1373 TEST_F(AcmSenderBitExactnessOldApi, MAYBE_G722_20ms) { |
| 1353 ASSERT_NO_FATAL_FAILURE(SetUpTest("G722", 16000, 1, 9, 320, 160)); | 1374 ASSERT_NO_FATAL_FAILURE(SetUpTest("G722", 16000, 1, 9, 320, 160)); |
| 1354 Run(AcmReceiverBitExactnessOldApi::PlatformChecksum( | 1375 Run(AcmReceiverBitExactnessOldApi::PlatformChecksum( |
| 1355 "7d759436f2533582950d148b5161a36c", | 1376 "7d759436f2533582950d148b5161a36c", |
| 1356 "7d759436f2533582950d148b5161a36c", "android_arm32_audio", | 1377 "7d759436f2533582950d148b5161a36c", "android_arm32_audio", |
| 1357 "android_arm64_audio"), | 1378 "android_arm64_audio"), |
| 1358 AcmReceiverBitExactnessOldApi::PlatformChecksum( | 1379 AcmReceiverBitExactnessOldApi::PlatformChecksum( |
| 1359 "fc68a87e1380614e658087cb35d5ca10", | 1380 "fc68a87e1380614e658087cb35d5ca10", |
| 1360 "fc68a87e1380614e658087cb35d5ca10", "android_arm32_payload", | 1381 "fc68a87e1380614e658087cb35d5ca10", "android_arm32_payload", |
| 1361 "android_arm64_payload"), | 1382 "android_arm64_payload"), |
| 1362 50, test::AcmReceiveTestOldApi::kMonoOutput); | 1383 50, test::AcmReceiveTestOldApi::kMonoOutput); |
| 1363 } | 1384 } |
| 1385 #endif |
| 1364 | 1386 |
| 1365 TEST_F(AcmSenderBitExactnessOldApi, | 1387 #if defined(WEBRTC_ANDROID) |
| 1366 DISABLED_ON_ANDROID(IF_G722(G722_stereo_20ms))) { | 1388 #define MAYBE_G722_stereo_20ms DISABLED_G722_stereo_20ms |
| 1389 #else |
| 1390 #define MAYBE_G722_stereo_20ms G722_stereo_20ms |
| 1391 #endif |
| 1392 #if defined(WEBRTC_CODEC_G722) |
| 1393 TEST_F(AcmSenderBitExactnessOldApi, MAYBE_G722_stereo_20ms) { |
| 1367 ASSERT_NO_FATAL_FAILURE(SetUpTest("G722", 16000, 2, 119, 320, 160)); | 1394 ASSERT_NO_FATAL_FAILURE(SetUpTest("G722", 16000, 2, 119, 320, 160)); |
| 1368 Run(AcmReceiverBitExactnessOldApi::PlatformChecksum( | 1395 Run(AcmReceiverBitExactnessOldApi::PlatformChecksum( |
| 1369 "7190ee718ab3d80eca181e5f7140c210", | 1396 "7190ee718ab3d80eca181e5f7140c210", |
| 1370 "7190ee718ab3d80eca181e5f7140c210", "android_arm32_audio", | 1397 "7190ee718ab3d80eca181e5f7140c210", "android_arm32_audio", |
| 1371 "android_arm64_audio"), | 1398 "android_arm64_audio"), |
| 1372 AcmReceiverBitExactnessOldApi::PlatformChecksum( | 1399 AcmReceiverBitExactnessOldApi::PlatformChecksum( |
| 1373 "66516152eeaa1e650ad94ff85f668dac", | 1400 "66516152eeaa1e650ad94ff85f668dac", |
| 1374 "66516152eeaa1e650ad94ff85f668dac", "android_arm32_payload", | 1401 "66516152eeaa1e650ad94ff85f668dac", "android_arm32_payload", |
| 1375 "android_arm64_payload"), | 1402 "android_arm64_payload"), |
| 1376 50, test::AcmReceiveTestOldApi::kStereoOutput); | 1403 50, test::AcmReceiveTestOldApi::kStereoOutput); |
| 1377 } | 1404 } |
| 1405 #endif |
| 1378 | 1406 |
| 1379 TEST_F(AcmSenderBitExactnessOldApi, Opus_stereo_20ms) { | 1407 TEST_F(AcmSenderBitExactnessOldApi, Opus_stereo_20ms) { |
| 1380 ASSERT_NO_FATAL_FAILURE(SetUpTest("opus", 48000, 2, 120, 960, 960)); | 1408 ASSERT_NO_FATAL_FAILURE(SetUpTest("opus", 48000, 2, 120, 960, 960)); |
| 1381 Run(AcmReceiverBitExactnessOldApi::PlatformChecksum( | 1409 Run(AcmReceiverBitExactnessOldApi::PlatformChecksum( |
| 1382 "855041f2490b887302bce9d544731849", | 1410 "855041f2490b887302bce9d544731849", |
| 1383 "855041f2490b887302bce9d544731849", | 1411 "855041f2490b887302bce9d544731849", |
| 1384 "1e1a0fce893fef2d66886a7f09e2ebce", | 1412 "1e1a0fce893fef2d66886a7f09e2ebce", |
| 1385 "7417a66c28be42d5d9b2d64e0c191585"), | 1413 "7417a66c28be42d5d9b2d64e0c191585"), |
| 1386 AcmReceiverBitExactnessOldApi::PlatformChecksum( | 1414 AcmReceiverBitExactnessOldApi::PlatformChecksum( |
| 1387 "d781cce1ab986b618d0da87226cdde30", | 1415 "d781cce1ab986b618d0da87226cdde30", |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1483 ASSERT_NO_FATAL_FAILURE(SetUpTest("opus", 48000, 1, 107, 960, 960)); | 1511 ASSERT_NO_FATAL_FAILURE(SetUpTest("opus", 48000, 1, 107, 960, 960)); |
| 1484 #if defined(WEBRTC_ANDROID) | 1512 #if defined(WEBRTC_ANDROID) |
| 1485 Run(50000, 47952); | 1513 Run(50000, 47952); |
| 1486 #else | 1514 #else |
| 1487 Run(50000, 49600); | 1515 Run(50000, 49600); |
| 1488 #endif // WEBRTC_ANDROID | 1516 #endif // WEBRTC_ANDROID |
| 1489 } | 1517 } |
| 1490 | 1518 |
| 1491 // The result on the Android platforms is inconsistent for this test case. | 1519 // The result on the Android platforms is inconsistent for this test case. |
| 1492 // On android_rel the result is different from android and android arm64 rel. | 1520 // On android_rel the result is different from android and android arm64 rel. |
| 1493 TEST_F(AcmSetBitRateOldApi, DISABLED_ON_ANDROID(Opus_48khz_20ms_100kbps)) { | 1521 #if defined(WEBRTC_ANDROID) |
| 1522 #define MAYBE_Opus_48khz_20ms_100kbps DISABLED_Opus_48khz_20ms_100kbps |
| 1523 #else |
| 1524 #define MAYBE_Opus_48khz_20ms_100kbps Opus_48khz_20ms_100kbps |
| 1525 #endif |
| 1526 TEST_F(AcmSetBitRateOldApi, MAYBE_Opus_48khz_20ms_100kbps) { |
| 1494 ASSERT_NO_FATAL_FAILURE(SetUpTest("opus", 48000, 1, 107, 960, 960)); | 1527 ASSERT_NO_FATAL_FAILURE(SetUpTest("opus", 48000, 1, 107, 960, 960)); |
| 1495 Run(100000, 100888); | 1528 Run(100000, 100888); |
| 1496 } | 1529 } |
| 1497 | 1530 |
| 1498 // These next 2 tests ensure that the SetBitRate function has no effect on PCM | 1531 // These next 2 tests ensure that the SetBitRate function has no effect on PCM |
| 1499 TEST_F(AcmSetBitRateOldApi, Pcm16_8khz_10ms_8kbps) { | 1532 TEST_F(AcmSetBitRateOldApi, Pcm16_8khz_10ms_8kbps) { |
| 1500 ASSERT_NO_FATAL_FAILURE(SetUpTest("L16", 8000, 1, 107, 80, 80)); | 1533 ASSERT_NO_FATAL_FAILURE(SetUpTest("L16", 8000, 1, 107, 80, 80)); |
| 1501 Run(8000, 128000); | 1534 Run(8000, 128000); |
| 1502 } | 1535 } |
| 1503 | 1536 |
| (...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1747 Run(16000, 8000, 1000); | 1780 Run(16000, 8000, 1000); |
| 1748 } | 1781 } |
| 1749 | 1782 |
| 1750 TEST_F(AcmSwitchingOutputFrequencyOldApi, Toggle8KhzTo16Khz) { | 1783 TEST_F(AcmSwitchingOutputFrequencyOldApi, Toggle8KhzTo16Khz) { |
| 1751 Run(8000, 16000, 1000); | 1784 Run(8000, 16000, 1000); |
| 1752 } | 1785 } |
| 1753 | 1786 |
| 1754 #endif | 1787 #endif |
| 1755 | 1788 |
| 1756 } // namespace webrtc | 1789 } // namespace webrtc |
| OLD | NEW |