Update NetEq bitexactness tests to only run on Linux.

Running bitexactness tests only on Linux makes it significantly easier to
update them, while still giving many of the same benefits.

Bug: webrtc:12518, b/216736217
Change-Id: I7f3c9a27c0fc14b7ee0e83aede2e7702cfa79141
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/249787
Reviewed-by: Jakob Ivarsson‎ <jakobi@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35829}
This commit is contained in:
Ivo Creusen
2022-01-28 17:07:09 +01:00
committed by WebRTC LUCI CQ
parent 5b66130209
commit a37384899b
2 changed files with 85 additions and 312 deletions

View File

@ -835,32 +835,6 @@ TEST_F(AcmReRegisterIsacMtTestOldApi, MAYBE_DoTest) {
#if !defined(WEBRTC_IOS)
class AcmReceiverBitExactnessOldApi : public ::testing::Test {
public:
static std::string PlatformChecksum(std::string others,
std::string win64,
std::string android_arm32,
std::string android_arm64,
std::string android_arm64_clang,
std::string mac_arm64) {
#if defined(_WIN32) && defined(WEBRTC_ARCH_64_BITS)
return win64;
#elif defined(WEBRTC_MAC) && defined(WEBRTC_ARCH_ARM64)
return mac_arm64;
#elif defined(WEBRTC_ANDROID) && defined(WEBRTC_ARCH_ARM)
return android_arm32;
#elif defined(WEBRTC_ANDROID) && defined(WEBRTC_ARCH_ARM64)
#if defined(__clang__)
// Android ARM64 with Clang compiler
return android_arm64_clang;
#else
// Android ARM64 with non-Clang compiler
return android_arm64;
#endif // __clang__
#else
return others;
#endif
}
protected:
struct ExternalDecoder {
int rtp_payload_type;
@ -917,65 +891,34 @@ class AcmReceiverBitExactnessOldApi : public ::testing::Test {
};
#if (defined(WEBRTC_CODEC_ISAC) || defined(WEBRTC_CODEC_ISACFX)) && \
defined(WEBRTC_CODEC_ILBC)
defined(WEBRTC_CODEC_ILBC) && defined(WEBRTC_LINUX) && \
defined(WEBRTC_ARCH_X86_64)
TEST_F(AcmReceiverBitExactnessOldApi, 8kHzOutput) {
std::string others_checksum_reference =
GetCPUInfo(kAVX2) != 0 ? "d8671dd38dab43fc9ca64a45c048c218"
: "4710c99559aec2f9f02a983ba2146f2d";
std::string win64_checksum_reference =
GetCPUInfo(kAVX2) != 0 ? "405a50f0bcb8827e20aa944299fc59f6"
: "0ed5830930f5527a01bbec0ba11f8541";
Run(8000, PlatformChecksum(
others_checksum_reference, win64_checksum_reference,
/*android_arm32=*/"4a8ffd7fd235c8bea74d0e18c022fac3",
/*android_arm64=*/"4598140b5e4f7ee66c5adad609e65a3e",
/*android_arm64_clang=*/"ad2ae6c6e48b714d728a7af0d3c8dc51",
/*mac_arm64=*/"6a288942d67e82076b38b17777cdaee4"));
std::string checksum_reference = GetCPUInfo(kAVX2) != 0
? "d8671dd38dab43fc9ca64a45c048c218"
: "4710c99559aec2f9f02a983ba2146f2d";
Run(8000, checksum_reference);
}
TEST_F(AcmReceiverBitExactnessOldApi, 16kHzOutput) {
std::string others_checksum_reference =
GetCPUInfo(kAVX2) != 0 ? "abcb31509af46545edb4f6700728a4de"
: "70b3217df49834b7093c631531068bd0";
std::string win64_checksum_reference =
GetCPUInfo(kAVX2) != 0 ? "58fd62a5c49ee513f9fa6fe7dbf62c97"
: "0509cf0672f543efb4b050e8cffefb1d";
Run(16000, PlatformChecksum(
others_checksum_reference, win64_checksum_reference,
/*android_arm32=*/"00d703da221363804d6fccc309a3f684",
/*android_arm64=*/"f2aad418af974a3b1694d5ae5cc2c3c7",
/*android_arm64_clang=*/"2b8525c77a6e10800bb209a83160282a",
/*mac_arm64=*/"35786906e6e352ad7031e3acf1c2d1ea"));
std::string checksum_reference = GetCPUInfo(kAVX2) != 0
? "abcb31509af46545edb4f6700728a4de"
: "70b3217df49834b7093c631531068bd0";
Run(16000, checksum_reference);
}
TEST_F(AcmReceiverBitExactnessOldApi, 32kHzOutput) {
std::string others_checksum_reference =
GetCPUInfo(kAVX2) != 0 ? "8489b7743d6cd1903807ac81e5ee493d"
: "2679e4e596e33259228c62df545eb635";
std::string win64_checksum_reference =
GetCPUInfo(kAVX2) != 0 ? "04ce6a1dac5ffdd8438d804623d0132f"
: "39a4a7a1c455b35baeffb9fd193d7858";
Run(32000, PlatformChecksum(
others_checksum_reference, win64_checksum_reference,
/*android_arm32=*/"809446f684b8095a93495ad63ec19891",
/*android_arm64=*/"100869c8dcde51346c2073e52a272d98",
/*android_arm64_clang=*/"dfe6fba596ed68d5a32d9f9eba5a39cb",
/*mac_arm64=*/"c42f05eafd86f8d3ae39e1dbe62b96ef"));
std::string checksum_reference = GetCPUInfo(kAVX2) != 0
? "8489b7743d6cd1903807ac81e5ee493d"
: "2679e4e596e33259228c62df545eb635";
Run(32000, checksum_reference);
}
TEST_F(AcmReceiverBitExactnessOldApi, 48kHzOutput) {
std::string others_checksum_reference =
GetCPUInfo(kAVX2) != 0 ? "454996a7adb3f62b259a53a09ff624cf"
: "f0148c5ef84e74e019ac7057af839102";
std::string win64_checksum_reference =
GetCPUInfo(kAVX2) != 0 ? "f59833d9b0924f4b0704707dd3589f80"
: "74cbe7345e2b6b45c1e455a5d1e921ca";
Run(48000, PlatformChecksum(
others_checksum_reference, win64_checksum_reference,
/*android_arm32=*/"f5c1290ce96d675aaf52be0b54362bee",
/*android_arm64=*/"bd44bf97e7899186532f91235cef444d",
/*android_arm64_clang=*/"7c2e28b943baf8c8af556be203bea256",
/*mac_arm64=*/"74cadd87797f7123c1a7baec6a66663c"));
std::string checksum_reference = GetCPUInfo(kAVX2) != 0
? "454996a7adb3f62b259a53a09ff624cf"
: "f0148c5ef84e74e019ac7057af839102";
Run(48000, checksum_reference);
}
TEST_F(AcmReceiverBitExactnessOldApi, 48kHzOutputExternalDecoder) {
@ -1052,20 +995,11 @@ TEST_F(AcmReceiverBitExactnessOldApi, 48kHzOutputExternalDecoder) {
};
auto factory = rtc::make_ref_counted<ADFactory>();
std::string others_checksum_reference =
GetCPUInfo(kAVX2) != 0 ? "454996a7adb3f62b259a53a09ff624cf"
: "f0148c5ef84e74e019ac7057af839102";
std::string win64_checksum_reference =
GetCPUInfo(kAVX2) != 0 ? "f59833d9b0924f4b0704707dd3589f80"
: "74cbe7345e2b6b45c1e455a5d1e921ca";
Run(48000,
PlatformChecksum(
others_checksum_reference, win64_checksum_reference,
/*android_arm32=*/"f5c1290ce96d675aaf52be0b54362bee",
/*android_arm64=*/"bd44bf97e7899186532f91235cef444d",
/*android_arm64_clang=*/"7c2e28b943baf8c8af556be203bea256",
/*mac_arm64=*/"74cadd87797f7123c1a7baec6a66663c"),
factory, [](AudioCodingModule* acm) {
std::string checksum_reference = GetCPUInfo(kAVX2) != 0
? "454996a7adb3f62b259a53a09ff624cf"
: "f0148c5ef84e74e019ac7057af839102";
Run(48000, checksum_reference, factory,
[](AudioCodingModule* acm) {
acm->SetReceiveCodecs({{0, {"MockPCMu", 8000, 1}},
{103, {"ISAC", 16000, 1}},
{104, {"ISAC", 32000, 1}},
@ -1279,65 +1213,26 @@ class AcmSenderBitExactnessNewApi : public AcmSenderBitExactnessOldApi {};
// Run bit exactness tests only for release builds.
#if (defined(WEBRTC_CODEC_ISAC) || defined(WEBRTC_CODEC_ISACFX)) && \
defined(NDEBUG)
defined(NDEBUG) && defined(WEBRTC_LINUX) && defined(WEBRTC_ARCH_X86_64)
TEST_F(AcmSenderBitExactnessOldApi, IsacWb30ms) {
ASSERT_NO_FATAL_FAILURE(SetUpTest("ISAC", 16000, 1, 103, 480, 480));
Run(AcmReceiverBitExactnessOldApi::PlatformChecksum(
/*others=*/"a3077ac01b0137e8bbc237fb1f9816a5",
/*win64=*/"9336a9b993cbd8a751f0e8958e66c89c",
/*android_arm32=*/"ab39f101ca76efdf6a5b2250550f10c4",
/*android_arm64=*/"343f1f42be0607c61e6516aece424609",
/*android_arm64_clang=*/"a3077ac01b0137e8bbc237fb1f9816a5",
/*mac_arm64=*/"a3077ac01b0137e8bbc237fb1f9816a5"),
AcmReceiverBitExactnessOldApi::PlatformChecksum(
/*others=*/"3c79f16f34218271f3dca4e2b1dfe1bb",
/*win64=*/"d42cb5195463da26c8129bbfe73a22e6",
/*android_arm32=*/"83de248aea9c3c2bd680b6952401b4ca",
/*android_arm64=*/"3c79f16f34218271f3dca4e2b1dfe1bb",
/*android_arm64_clang=*/"3c79f16f34218271f3dca4e2b1dfe1bb",
/*mac_arm64=*/"3c79f16f34218271f3dca4e2b1dfe1bb"),
Run("a3077ac01b0137e8bbc237fb1f9816a5", "3c79f16f34218271f3dca4e2b1dfe1bb",
33, test::AcmReceiveTestOldApi::kMonoOutput);
}
TEST_F(AcmSenderBitExactnessOldApi, IsacWb60ms) {
ASSERT_NO_FATAL_FAILURE(SetUpTest("ISAC", 16000, 1, 103, 960, 960));
Run(AcmReceiverBitExactnessOldApi::PlatformChecksum(
/*others=*/"76da9b7514f986fc2bb32b1c3170e8d4",
/*win64=*/"14d63c5f08127d280e722e3191b73bdd",
/*android_arm32=*/"0bd883118ff9c26b9471df7a0c664197",
/*android_arm64=*/"ef75e900e6f375e3061163c53fd09a63",
/*android_arm64_clang=*/"76da9b7514f986fc2bb32b1c3170e8d4",
/*mac_arm64=*/"76da9b7514f986fc2bb32b1c3170e8d4"),
AcmReceiverBitExactnessOldApi::PlatformChecksum(
/*others=*/"9e0a0ab743ad987b55b8e14802769c56",
/*win64=*/"ebe04a819d3a9d83a83a17f271e1139a",
/*android_arm32=*/"97aeef98553b5a4b5a68f8b716e8eaf0",
/*android_arm64=*/"9e0a0ab743ad987b55b8e14802769c56",
/*android_arm64_clang=*/"9e0a0ab743ad987b55b8e14802769c56",
/*mac_arm64=*/"9e0a0ab743ad987b55b8e14802769c56"),
Run("76da9b7514f986fc2bb32b1c3170e8d4", "9e0a0ab743ad987b55b8e14802769c56",
16, test::AcmReceiveTestOldApi::kMonoOutput);
}
#endif
// Run bit exactness test only for release build.
#if defined(WEBRTC_ANDROID) || !defined(NDEBUG)
#define MAYBE_IsacSwb30ms DISABLED_IsacSwb30ms
#else
#define MAYBE_IsacSwb30ms IsacSwb30ms
#endif
#if defined(WEBRTC_CODEC_ISAC)
TEST_F(AcmSenderBitExactnessOldApi, MAYBE_IsacSwb30ms) {
#if defined(WEBRTC_CODEC_ISAC) && defined(NDEBUG) && defined(WEBRTC_LINUX) && \
defined(WEBRTC_ARCH_X86_64)
TEST_F(AcmSenderBitExactnessOldApi, IsacSwb30ms) {
ASSERT_NO_FATAL_FAILURE(SetUpTest("ISAC", 32000, 1, 104, 960, 960));
Run(AcmReceiverBitExactnessOldApi::PlatformChecksum(
/*others=*/"f4cf577f28a0dcbac33358b757518e0c",
/*win64=*/"2b3c387d06f00b7b7aad4c9be56fb83d", "android_arm32_audio",
"android_arm64_audio", "android_arm64_clang_audio",
/*mac_arm64=*/"f4cf577f28a0dcbac33358b757518e0c"),
AcmReceiverBitExactnessOldApi::PlatformChecksum(
/*others=*/"ce86106a93419aefb063097108ec94ab",
/*win64=*/"bcc2041e7744c7ebd9f701866856849c", "android_arm32_payload",
"android_arm64_payload", "android_arm64_clang_payload",
/*mac_arm64=*/"ce86106a93419aefb063097108ec94ab"),
Run("f4cf577f28a0dcbac33358b757518e0c", "ce86106a93419aefb063097108ec94ab",
33, test::AcmReceiveTestOldApi::kMonoOutput);
}
#endif
@ -1402,106 +1297,51 @@ TEST_F(AcmSenderBitExactnessOldApi, Pcma_stereo_20ms) {
50, test::AcmReceiveTestOldApi::kStereoOutput);
}
#if defined(WEBRTC_ANDROID)
#define MAYBE_Ilbc_30ms DISABLED_Ilbc_30ms
#else
#define MAYBE_Ilbc_30ms Ilbc_30ms
#endif
#if defined(WEBRTC_CODEC_ILBC)
TEST_F(AcmSenderBitExactnessOldApi, MAYBE_Ilbc_30ms) {
#if defined(WEBRTC_CODEC_ILBC) && defined(WEBRTC_LINUX) && \
defined(WEBRTC_ARCH_X86_64)
TEST_F(AcmSenderBitExactnessOldApi, Ilbc_30ms) {
ASSERT_NO_FATAL_FAILURE(SetUpTest("ILBC", 8000, 1, 102, 240, 240));
Run(AcmReceiverBitExactnessOldApi::PlatformChecksum(
/*others=*/"b14dba0de36efa5ec88a32c0b320b70f",
/*win64=*/"b14dba0de36efa5ec88a32c0b320b70f", "android_arm32_audio",
"android_arm64_audio", "android_arm64_clang_audio",
/*mac_arm64=*/"b14dba0de36efa5ec88a32c0b320b70f"),
AcmReceiverBitExactnessOldApi::PlatformChecksum(
/*others=*/"cfae2e9f6aba96e145f2bcdd5050ce78",
/*win64=*/"cfae2e9f6aba96e145f2bcdd5050ce78", "android_arm32_payload",
"android_arm64_payload", "android_arm64_clang_payload",
/*mac_arm64=*/"cfae2e9f6aba96e145f2bcdd5050ce78"),
Run("b14dba0de36efa5ec88a32c0b320b70f", "cfae2e9f6aba96e145f2bcdd5050ce78",
33, test::AcmReceiveTestOldApi::kMonoOutput);
}
#endif
#if defined(WEBRTC_ANDROID)
#define MAYBE_G722_20ms DISABLED_G722_20ms
#else
#define MAYBE_G722_20ms G722_20ms
#endif
TEST_F(AcmSenderBitExactnessOldApi, MAYBE_G722_20ms) {
#if defined(WEBRTC_LINUX) && defined(WEBRTC_ARCH_X86_64)
TEST_F(AcmSenderBitExactnessOldApi, G722_20ms) {
ASSERT_NO_FATAL_FAILURE(SetUpTest("G722", 16000, 1, 9, 320, 160));
Run(AcmReceiverBitExactnessOldApi::PlatformChecksum(
/*others=*/"a87a91ec0124510a64967f5d768554ff",
/*win64=*/"a87a91ec0124510a64967f5d768554ff", "android_arm32_audio",
"android_arm64_audio", "android_arm64_clang_audio",
/*mac_arm64=*/"a87a91ec0124510a64967f5d768554ff"),
AcmReceiverBitExactnessOldApi::PlatformChecksum(
/*others=*/"fc68a87e1380614e658087cb35d5ca10",
/*win64=*/"fc68a87e1380614e658087cb35d5ca10", "android_arm32_payload",
"android_arm64_payload", "android_arm64_clang_payload",
/*mac_arm64=*/"fc68a87e1380614e658087cb35d5ca10"),
Run("a87a91ec0124510a64967f5d768554ff", "fc68a87e1380614e658087cb35d5ca10",
50, test::AcmReceiveTestOldApi::kMonoOutput);
}
#if defined(WEBRTC_ANDROID)
#define MAYBE_G722_stereo_20ms DISABLED_G722_stereo_20ms
#else
#define MAYBE_G722_stereo_20ms G722_stereo_20ms
#endif
TEST_F(AcmSenderBitExactnessOldApi, MAYBE_G722_stereo_20ms) {
#if defined(WEBRTC_LINUX) && defined(WEBRTC_ARCH_X86_64)
TEST_F(AcmSenderBitExactnessOldApi, G722_stereo_20ms) {
ASSERT_NO_FATAL_FAILURE(SetUpTest("G722", 16000, 2, 119, 320, 160));
Run(AcmReceiverBitExactnessOldApi::PlatformChecksum(
/*others=*/"be0b8528ff9db3a2219f55ddd36faf7f",
/*win64=*/"be0b8528ff9db3a2219f55ddd36faf7f", "android_arm32_audio",
"android_arm64_audio", "android_arm64_clang_audio",
/*mac_arm64=*/"be0b8528ff9db3a2219f55ddd36faf7f"),
AcmReceiverBitExactnessOldApi::PlatformChecksum(
/*others=*/"66516152eeaa1e650ad94ff85f668dac",
/*win64=*/"66516152eeaa1e650ad94ff85f668dac", "android_arm32_payload",
"android_arm64_payload", "android_arm64_clang_payload",
/*mac_arm64=*/"66516152eeaa1e650ad94ff85f668dac"),
Run("be0b8528ff9db3a2219f55ddd36faf7f", "66516152eeaa1e650ad94ff85f668dac",
50, test::AcmReceiveTestOldApi::kStereoOutput);
}
#endif
namespace {
// Checksum depends on libopus being compiled with or without SSE.
const std::string audio_maybe_sse =
"e0ddf36854059151cdb7a0c4af3d282a"
const std::string audio_checksum =
"6a76fe2ffba057c06eb63239b3c47abe"
"|32574e78db4eab0c467d3c0785e3b484";
const std::string payload_maybe_sse =
const std::string payload_checksum =
"b43bdf7638b2bc2a5a6f30bdc640b9ed"
"|c30d463e7ed10bdd1da9045f80561f27";
// Common checksums.
const std::string audio_checksum =
AcmReceiverBitExactnessOldApi::PlatformChecksum(
/*others=*/audio_maybe_sse,
/*win64=*/audio_maybe_sse,
/*android_arm32=*/"6fcceb83acf427730570bc13eeac920c",
/*android_arm64=*/"fd96f15d547c4e155daeeef4253b174e",
/*android_arm64_clang=*/"fd96f15d547c4e155daeeef4253b174e",
"Mac_arm64_checksum_placeholder");
const std::string payload_checksum =
AcmReceiverBitExactnessOldApi::PlatformChecksum(
/*others=*/payload_maybe_sse,
/*win64=*/payload_maybe_sse,
/*android_arm32=*/"4bd846d0aa5656ecd5dfd85701a1b78c",
/*android_arm64=*/"7efbfc9f8e3b4b2933ae2d01ab919028",
/*android_arm64_clang=*/"7efbfc9f8e3b4b2933ae2d01ab919028",
"Mac_arm64_checksum_placeholder");
} // namespace
// TODO(http://bugs.webrtc.org/12518): Enable the test after Opus has been
// updated.
TEST_F(AcmSenderBitExactnessOldApi, DISABLED_Opus_stereo_20ms) {
#if defined(WEBRTC_LINUX) && defined(WEBRTC_ARCH_X86_64)
TEST_F(AcmSenderBitExactnessOldApi, Opus_stereo_20ms) {
ASSERT_NO_FATAL_FAILURE(SetUpTest("opus", 48000, 2, 120, 960, 960));
Run(audio_checksum, payload_checksum, 50,
test::AcmReceiveTestOldApi::kStereoOutput);
}
#endif
// TODO(http://bugs.webrtc.org/12518): Enable the test after Opus has been
// updated.
TEST_F(AcmSenderBitExactnessNewApi, DISABLED_OpusFromFormat_stereo_20ms) {
#if defined(WEBRTC_LINUX) && defined(WEBRTC_ARCH_X86_64)
TEST_F(AcmSenderBitExactnessNewApi, OpusFromFormat_stereo_20ms) {
const auto config = AudioEncoderOpus::SdpToConfig(
SdpAudioFormat("opus", 48000, 2, {{"stereo", "1"}}));
ASSERT_TRUE(SetUpSender(kTestFileFakeStereo32kHz, 32000));
@ -1510,9 +1350,11 @@ TEST_F(AcmSenderBitExactnessNewApi, DISABLED_OpusFromFormat_stereo_20ms) {
Run(audio_checksum, payload_checksum, 50,
test::AcmReceiveTestOldApi::kStereoOutput);
}
#endif
// TODO(webrtc:8649): Disabled until the Encoder counterpart of
// https://webrtc-review.googlesource.com/c/src/+/129768 lands.
#if defined(WEBRTC_LINUX) && defined(WEBRTC_ARCH_X86_64)
TEST_F(AcmSenderBitExactnessNewApi, DISABLED_OpusManyChannels) {
constexpr int kNumChannels = 4;
constexpr int kOpusPayloadType = 120;
@ -1543,29 +1385,14 @@ TEST_F(AcmSenderBitExactnessNewApi, DISABLED_OpusManyChannels) {
rtc::make_ref_counted<test::AudioDecoderProxyFactory>(opus_decoder.get());
// Set up an EXTERNAL DECODER to parse 4 channels.
Run(AcmReceiverBitExactnessOldApi::PlatformChecksum( // audio checksum
/*others=*/"audio checksum check "
"downstream|8051617907766bec5f4e4a4f7c6d5291",
/*win64=*/"8051617907766bec5f4e4a4f7c6d5291",
/*android_arm32=*/"6183752a62dc1368f959eb3a8c93b846",
"android arm64 audio checksum",
/*android_arm64_clang=*/"48bf1f3ca0b72f3c9cdfbe79956122b1",
"Mac_arm64_checksum_placeholder"),
// payload_checksum,
AcmReceiverBitExactnessOldApi::PlatformChecksum( // payload checksum
/*others=*/"payload checksum check "
"downstream|b09c52e44b2bdd9a0809e3a5b1623a76",
/*win64=*/"b09c52e44b2bdd9a0809e3a5b1623a76",
/*android_arm32=*/"2ea535ef60f7d0c9d89e3002d4c2124f",
"android arm64 payload checksum",
/*android_arm64_clang=*/"e87995a80f50a0a735a230ca8b04a67d",
"Mac_arm64_checksum_placeholder"),
50, test::AcmReceiveTestOldApi::kQuadOutput, decoder_factory);
Run("audio checksum check downstream|8051617907766bec5f4e4a4f7c6d5291",
"payload checksum check downstream|b09c52e44b2bdd9a0809e3a5b1623a76", 50,
test::AcmReceiveTestOldApi::kQuadOutput, decoder_factory);
}
#endif
// TODO(http://bugs.webrtc.org/12518): Enable the test after Opus has been
// updated.
TEST_F(AcmSenderBitExactnessNewApi, DISABLED_OpusFromFormat_stereo_20ms_voip) {
#if defined(WEBRTC_LINUX) && defined(WEBRTC_ARCH_X86_64)
TEST_F(AcmSenderBitExactnessNewApi, OpusFromFormat_stereo_20ms_voip) {
auto config = AudioEncoderOpus::SdpToConfig(
SdpAudioFormat("opus", 48000, 2, {{"stereo", "1"}}));
// If not set, default will be kAudio in case of stereo.
@ -1574,27 +1401,15 @@ TEST_F(AcmSenderBitExactnessNewApi, DISABLED_OpusFromFormat_stereo_20ms_voip) {
ASSERT_NO_FATAL_FAILURE(SetUpTestExternalEncoder(
AudioEncoderOpus::MakeAudioEncoder(*config, 120), 120));
const std::string audio_maybe_sse =
"2d7e5797444f75e5bfeaffbd8c25176b"
"058c03ca2c9bb5c0066d4c15ce50d772"
"|408d4bdc05a8c23e46c6ac06c5b917ee";
const std::string payload_maybe_sse =
"b38b5584cfa7b6999b2e8e996c950c88"
"f270ec7be7a5ed60c203c2317c4e1011"
"|eb0752ce1b6f2436fefc2e19bd084fb5";
Run(AcmReceiverBitExactnessOldApi::PlatformChecksum(
/*others=*/audio_maybe_sse,
/*win64=*/audio_maybe_sse,
/*android_arm32=*/"f1cefe107ffdced7694d7f735342adf3",
/*android_arm64=*/"3b1bfe5dd8ed16ee5b04b93a5b5e7e48",
/*android_arm64_clang=*/"3b1bfe5dd8ed16ee5b04b93a5b5e7e48",
"Mac_arm64_checksum_placeholder"),
AcmReceiverBitExactnessOldApi::PlatformChecksum(
/*others=*/payload_maybe_sse,
/*win64=*/payload_maybe_sse,
/*android_arm32=*/"5e79a2f51c633fe145b6c10ae198d1aa",
/*android_arm64=*/"e730050cb304d54d853fd285ab0424fa",
/*android_arm64_clang=*/"e730050cb304d54d853fd285ab0424fa",
"Mac_arm64_checksum_placeholder"),
50, test::AcmReceiveTestOldApi::kStereoOutput);
Run(audio_maybe_sse, payload_maybe_sse, 50,
test::AcmReceiveTestOldApi::kStereoOutput);
}
#endif
// This test is for verifying the SetBitRate function. The bitrate is changed at
// the beginning, and the number of generated bytes are checked.

View File

@ -44,36 +44,10 @@ ABSL_FLAG(bool, gen_ref, false, "Generate reference files.");
namespace webrtc {
namespace {
const std::string& PlatformChecksum(const std::string& checksum_general,
const std::string& checksum_android_32,
const std::string& checksum_android_64,
const std::string& checksum_win_32,
const std::string& checksum_win_64) {
#if defined(WEBRTC_ANDROID)
#ifdef WEBRTC_ARCH_64_BITS
return checksum_android_64;
#else
return checksum_android_32;
#endif // WEBRTC_ARCH_64_BITS
#elif defined(WEBRTC_WIN)
#ifdef WEBRTC_ARCH_64_BITS
return checksum_win_64;
#else
return checksum_win_32;
#endif // WEBRTC_ARCH_64_BITS
#else
return checksum_general;
#endif // WEBRTC_WIN
}
} // namespace
#if !defined(WEBRTC_IOS) && defined(WEBRTC_NETEQ_UNITTEST_BITEXACT) && \
(defined(WEBRTC_CODEC_ISAC) || defined(WEBRTC_CODEC_ISACFX)) && \
defined(WEBRTC_CODEC_ILBC) && !defined(WEBRTC_ARCH_ARM64)
#if defined(WEBRTC_LINUX) && defined(WEBRTC_ARCH_X86_64) && \
defined(WEBRTC_NETEQ_UNITTEST_BITEXACT) && \
(defined(WEBRTC_CODEC_ISAC) || defined(WEBRTC_CODEC_ISACFX)) && \
defined(WEBRTC_CODEC_ILBC)
#define MAYBE_TestBitExactness TestBitExactness
#else
#define MAYBE_TestBitExactness DISABLED_TestBitExactness
@ -83,66 +57,50 @@ TEST_F(NetEqDecodingTest, MAYBE_TestBitExactness) {
webrtc::test::ResourcePath("audio_coding/neteq_universal_new", "rtp");
const std::string output_checksum =
PlatformChecksum("ba4fae83a52f5e9d95b0910f05d540114285697b",
"aa557f30f7fdcebbbbf99d7f235ccba3a1c98983", "not used",
"ba4fae83a52f5e9d95b0910f05d540114285697b",
"64b46bb3c1165537a880ae8404afce2efba456c0");
"ba4fae83a52f5e9d95b0910f05d540114285697b";
const std::string network_stats_checksum =
PlatformChecksum("fa878a8464ef1cb3d01503b7f927c3e2ce6f02c4",
"300ccc2aaee7ed1971afb2f9a20247ed8760441d", "not used",
"fa878a8464ef1cb3d01503b7f927c3e2ce6f02c4",
"fa878a8464ef1cb3d01503b7f927c3e2ce6f02c4");
"fa878a8464ef1cb3d01503b7f927c3e2ce6f02c4";
DecodeAndCompare(input_rtp_file, output_checksum, network_stats_checksum,
absl::GetFlag(FLAGS_gen_ref));
}
#if !defined(WEBRTC_IOS) && defined(WEBRTC_NETEQ_UNITTEST_BITEXACT) && \
defined(WEBRTC_CODEC_OPUS)
#if defined(WEBRTC_LINUX) && defined(WEBRTC_ARCH_X86_64) && \
defined(WEBRTC_NETEQ_UNITTEST_BITEXACT) && defined(WEBRTC_CODEC_OPUS)
#define MAYBE_TestOpusBitExactness TestOpusBitExactness
#else
#define MAYBE_TestOpusBitExactness DISABLED_TestOpusBitExactness
#endif
// TODO(http://bugs.webrtc.org/12518): Enable the test after Opus has been
// updated.
TEST_F(NetEqDecodingTest, DISABLED_TestOpusBitExactness) {
TEST_F(NetEqDecodingTest, MAYBE_TestOpusBitExactness) {
const std::string input_rtp_file =
webrtc::test::ResourcePath("audio_coding/neteq_opus", "rtp");
const std::string maybe_sse =
"c7887ff60eecf460332c6c7a28c81561f9e8a40f"
"|673dd422cfc174152536d3b13af64f9722520ab5";
const std::string output_checksum = PlatformChecksum(
maybe_sse, "e39283dd61a89cead3786ef8642d2637cc447296",
"53d8073eb848b70974cba9e26424f4946508fd19", maybe_sse, maybe_sse);
const std::string output_checksum =
"6e23d8827ae54ca352e1448ae363bdfd2878c78e";
const std::string network_stats_checksum =
PlatformChecksum("c438bfa3b018f77691279eb9c63730569f54585c",
"8a474ed0992591e0c84f593824bb05979c3de157",
"9a05378dbf7e6edd56cdeb8ec45bcd6d8589623c",
"c438bfa3b018f77691279eb9c63730569f54585c",
"c438bfa3b018f77691279eb9c63730569f54585c");
"f89a9533dbb35a4c449b44c3ed120f7f1c7f90b6";
DecodeAndCompare(input_rtp_file, output_checksum, network_stats_checksum,
absl::GetFlag(FLAGS_gen_ref));
}
// TODO(http://bugs.webrtc.org/12518): Enable the test after Opus has been
// updated.
TEST_F(NetEqDecodingTest, DISABLED_TestOpusDtxBitExactness) {
#if defined(WEBRTC_LINUX) && defined(WEBRTC_ARCH_X86_64) && \
defined(WEBRTC_NETEQ_UNITTEST_BITEXACT) && defined(WEBRTC_CODEC_OPUS)
#define MAYBE_TestOpusDtxBitExactness TestOpusDtxBitExactness
#else
#define MAYBE_TestOpusDtxBitExactness DISABLED_TestOpusDtxBitExactness
#endif
TEST_F(NetEqDecodingTest, MAYBE_TestOpusDtxBitExactness) {
const std::string input_rtp_file =
webrtc::test::ResourcePath("audio_coding/neteq_opus_dtx", "rtp");
const std::string maybe_sse =
"0fb0a3d6b3758ca6e108368bb777cd38d0a865af"
"|79cfb99a21338ba977eb0e15eb8464e2db9436f8";
const std::string output_checksum = PlatformChecksum(
maybe_sse, "b6632690f8d7c2340c838df2821fc014f1cc8360",
"f890b9eb9bc5ab8313489230726b297f6a0825af", maybe_sse, maybe_sse);
const std::string output_checksum =
"5cea4a8e750842ac67b79e8e2ce6a0a1c01f8130";
const std::string network_stats_checksum =
"18983bb67a57628c604dbdefa99574c6e0c5bb48";
"dc8447b9fee1a21fd5d1f4045d62b982a3fb0215";
DecodeAndCompare(input_rtp_file, output_checksum, network_stats_checksum,
absl::GetFlag(FLAGS_gen_ref));