Disable PLC for iSAC
A codec's packet-loss concealer is called once from NetEq before decoding the first packet after a packet loss. The purpose is not to use the PLC output, but to prepare the state of the decoder such that it may recover faster after the loss. However, this effect is not achieved by calling iSAC's PLC. Also, there are some problems with the fixed-point implementation of the PLC (see the associated bug). BUG=4423 R=kwiberg@webrtc.org Review URL: https://webrtc-codereview.appspot.com/42849004 Cr-Commit-Position: refs/heads/master@{#8827} git-svn-id: http://webrtc.googlecode.com/svn/trunk@8827 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@ -242,7 +242,7 @@ int AudioEncoderDecoderIsacT<T>::DecodeInternal(const uint8_t* encoded,
|
|||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
bool AudioEncoderDecoderIsacT<T>::HasDecodePlc() const {
|
bool AudioEncoderDecoderIsacT<T>::HasDecodePlc() const {
|
||||||
return true;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
|
@ -563,7 +563,7 @@ class AcmReceiverBitExactness : public ::testing::Test {
|
|||||||
TEST_F(AcmReceiverBitExactness, MAYBE_8kHzOutput) {
|
TEST_F(AcmReceiverBitExactness, MAYBE_8kHzOutput) {
|
||||||
Run(8000,
|
Run(8000,
|
||||||
PlatformChecksum("dcee98c623b147ebe1b40dd30efa896e",
|
PlatformChecksum("dcee98c623b147ebe1b40dd30efa896e",
|
||||||
"6ac89c7145072c26bfeba602cd661afb",
|
"adc92e173f908f93b96ba5844209815a",
|
||||||
"908002dc01fc4eb1d2be24eb1d3f354b"));
|
"908002dc01fc4eb1d2be24eb1d3f354b"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -576,7 +576,7 @@ TEST_F(AcmReceiverBitExactness, MAYBE_8kHzOutput) {
|
|||||||
TEST_F(AcmReceiverBitExactness, MAYBE_16kHzOutput) {
|
TEST_F(AcmReceiverBitExactness, MAYBE_16kHzOutput) {
|
||||||
Run(16000,
|
Run(16000,
|
||||||
PlatformChecksum("f790e7a8cce4e2c8b7bb5e0e4c5dac0d",
|
PlatformChecksum("f790e7a8cce4e2c8b7bb5e0e4c5dac0d",
|
||||||
"3e888eb04f57db2c6ef952fe64f17fe6",
|
"8cffa6abcb3e18e33b9d857666dff66a",
|
||||||
"a909560b5ca49fa472b17b7b277195e9"));
|
"a909560b5ca49fa472b17b7b277195e9"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -589,7 +589,7 @@ TEST_F(AcmReceiverBitExactness, MAYBE_16kHzOutput) {
|
|||||||
TEST_F(AcmReceiverBitExactness, MAYBE_32kHzOutput) {
|
TEST_F(AcmReceiverBitExactness, MAYBE_32kHzOutput) {
|
||||||
Run(32000,
|
Run(32000,
|
||||||
PlatformChecksum("306e0d990ee6e92de3fbecc0123ece37",
|
PlatformChecksum("306e0d990ee6e92de3fbecc0123ece37",
|
||||||
"aeca37e963310f5b6552b7edea23c2f1",
|
"3e126fe894720c3f85edadcc91964ba5",
|
||||||
"441aab4b347fb3db4e9244337aca8d8e"));
|
"441aab4b347fb3db4e9244337aca8d8e"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -602,7 +602,7 @@ TEST_F(AcmReceiverBitExactness, MAYBE_32kHzOutput) {
|
|||||||
TEST_F(AcmReceiverBitExactness, MAYBE_48kHzOutput) {
|
TEST_F(AcmReceiverBitExactness, MAYBE_48kHzOutput) {
|
||||||
Run(48000,
|
Run(48000,
|
||||||
PlatformChecksum("aa7c232f63a67b2a72703593bdd172e0",
|
PlatformChecksum("aa7c232f63a67b2a72703593bdd172e0",
|
||||||
"76b9e99e0a3998aa28355e7a2bd836f7",
|
"0155665e93067c4e89256b944dd11999",
|
||||||
"4ee2730fa1daae755e8a8fd3abd779ec"));
|
"4ee2730fa1daae755e8a8fd3abd779ec"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -751,7 +751,7 @@ class AcmReceiverBitExactnessOldApi : public ::testing::Test {
|
|||||||
TEST_F(AcmReceiverBitExactnessOldApi, MAYBE_8kHzOutput) {
|
TEST_F(AcmReceiverBitExactnessOldApi, MAYBE_8kHzOutput) {
|
||||||
Run(8000,
|
Run(8000,
|
||||||
PlatformChecksum("dcee98c623b147ebe1b40dd30efa896e",
|
PlatformChecksum("dcee98c623b147ebe1b40dd30efa896e",
|
||||||
"6ac89c7145072c26bfeba602cd661afb",
|
"adc92e173f908f93b96ba5844209815a",
|
||||||
"908002dc01fc4eb1d2be24eb1d3f354b"));
|
"908002dc01fc4eb1d2be24eb1d3f354b"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -764,7 +764,7 @@ TEST_F(AcmReceiverBitExactnessOldApi, MAYBE_8kHzOutput) {
|
|||||||
TEST_F(AcmReceiverBitExactnessOldApi, MAYBE_16kHzOutput) {
|
TEST_F(AcmReceiverBitExactnessOldApi, MAYBE_16kHzOutput) {
|
||||||
Run(16000,
|
Run(16000,
|
||||||
PlatformChecksum("f790e7a8cce4e2c8b7bb5e0e4c5dac0d",
|
PlatformChecksum("f790e7a8cce4e2c8b7bb5e0e4c5dac0d",
|
||||||
"3e888eb04f57db2c6ef952fe64f17fe6",
|
"8cffa6abcb3e18e33b9d857666dff66a",
|
||||||
"a909560b5ca49fa472b17b7b277195e9"));
|
"a909560b5ca49fa472b17b7b277195e9"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -777,7 +777,7 @@ TEST_F(AcmReceiverBitExactnessOldApi, MAYBE_16kHzOutput) {
|
|||||||
TEST_F(AcmReceiverBitExactnessOldApi, MAYBE_32kHzOutput) {
|
TEST_F(AcmReceiverBitExactnessOldApi, MAYBE_32kHzOutput) {
|
||||||
Run(32000,
|
Run(32000,
|
||||||
PlatformChecksum("306e0d990ee6e92de3fbecc0123ece37",
|
PlatformChecksum("306e0d990ee6e92de3fbecc0123ece37",
|
||||||
"aeca37e963310f5b6552b7edea23c2f1",
|
"3e126fe894720c3f85edadcc91964ba5",
|
||||||
"441aab4b347fb3db4e9244337aca8d8e"));
|
"441aab4b347fb3db4e9244337aca8d8e"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -790,7 +790,7 @@ TEST_F(AcmReceiverBitExactnessOldApi, MAYBE_32kHzOutput) {
|
|||||||
TEST_F(AcmReceiverBitExactnessOldApi, MAYBE_48kHzOutput) {
|
TEST_F(AcmReceiverBitExactnessOldApi, MAYBE_48kHzOutput) {
|
||||||
Run(48000,
|
Run(48000,
|
||||||
PlatformChecksum("aa7c232f63a67b2a72703593bdd172e0",
|
PlatformChecksum("aa7c232f63a67b2a72703593bdd172e0",
|
||||||
"76b9e99e0a3998aa28355e7a2bd836f7",
|
"0155665e93067c4e89256b944dd11999",
|
||||||
"4ee2730fa1daae755e8a8fd3abd779ec"));
|
"4ee2730fa1daae755e8a8fd3abd779ec"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -521,8 +521,7 @@ TEST_F(AudioDecoderIsacFloatTest, EncodeDecode) {
|
|||||||
EXPECT_TRUE(CodecSupported(kDecoderISAC));
|
EXPECT_TRUE(CodecSupported(kDecoderISAC));
|
||||||
EncodeDecodeTest(0, tolerance, mse, delay);
|
EncodeDecodeTest(0, tolerance, mse, delay);
|
||||||
ReInitTest();
|
ReInitTest();
|
||||||
EXPECT_TRUE(decoder_->HasDecodePlc());
|
EXPECT_FALSE(decoder_->HasDecodePlc());
|
||||||
DecodePlcTest();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(AudioDecoderIsacSwbTest, EncodeDecode) {
|
TEST_F(AudioDecoderIsacSwbTest, EncodeDecode) {
|
||||||
@ -532,8 +531,7 @@ TEST_F(AudioDecoderIsacSwbTest, EncodeDecode) {
|
|||||||
EXPECT_TRUE(CodecSupported(kDecoderISACswb));
|
EXPECT_TRUE(CodecSupported(kDecoderISACswb));
|
||||||
EncodeDecodeTest(0, tolerance, mse, delay);
|
EncodeDecodeTest(0, tolerance, mse, delay);
|
||||||
ReInitTest();
|
ReInitTest();
|
||||||
EXPECT_TRUE(decoder_->HasDecodePlc());
|
EXPECT_FALSE(decoder_->HasDecodePlc());
|
||||||
DecodePlcTest();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fails Android ARM64. https://code.google.com/p/webrtc/issues/detail?id=4198
|
// Fails Android ARM64. https://code.google.com/p/webrtc/issues/detail?id=4198
|
||||||
@ -554,8 +552,7 @@ TEST_F(AudioDecoderIsacFixTest, MAYBE_EncodeDecode) {
|
|||||||
#endif
|
#endif
|
||||||
EncodeDecodeTest(kEncodedBytes, tolerance, mse, delay);
|
EncodeDecodeTest(kEncodedBytes, tolerance, mse, delay);
|
||||||
ReInitTest();
|
ReInitTest();
|
||||||
EXPECT_TRUE(decoder_->HasDecodePlc());
|
EXPECT_FALSE(decoder_->HasDecodePlc());
|
||||||
DecodePlcTest();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(AudioDecoderG722Test, EncodeDecode) {
|
TEST_F(AudioDecoderG722Test, EncodeDecode) {
|
||||||
|
Reference in New Issue
Block a user