AcmReceiver: Ask NetEq to delete all decoders at once instead of one by one

It requires a new NetEq method, but it can no longer fail. And we no
longer need to use AcmReceiver::decoders_, which we're trying to
eliminate.

(This is a re-land of https://codereview.webrtc.org/2342313002.)

BUG=webrtc:5801

Review-Url: https://codereview.webrtc.org/2348233002
Cr-Commit-Position: refs/heads/master@{#14304}
This commit is contained in:
kwiberg
2016-09-20 04:02:25 -07:00
committed by Commit bot
parent 6f0f616b53
commit 6b19b560ac
11 changed files with 47 additions and 23 deletions

View File

@ -47,6 +47,21 @@ TEST(DecoderDatabase, InsertAndRemove) {
EXPECT_TRUE(db.Empty());
}
TEST(DecoderDatabase, InsertAndRemoveAll) {
DecoderDatabase db(new rtc::RefCountedObject<MockAudioDecoderFactory>);
const std::string kCodecName1 = "Robert\'); DROP TABLE Students;";
const std::string kCodecName2 = "https://xkcd.com/327/";
EXPECT_EQ(DecoderDatabase::kOK,
db.RegisterPayload(0, NetEqDecoder::kDecoderPCMu, kCodecName1));
EXPECT_EQ(DecoderDatabase::kOK,
db.RegisterPayload(1, NetEqDecoder::kDecoderPCMa, kCodecName2));
EXPECT_EQ(2, db.Size());
EXPECT_FALSE(db.Empty());
db.RemoveAll();
EXPECT_EQ(0, db.Size());
EXPECT_TRUE(db.Empty());
}
TEST(DecoderDatabase, GetDecoderInfo) {
rtc::scoped_refptr<MockAudioDecoderFactory> factory(
new rtc::RefCountedObject<MockAudioDecoderFactory>);