blob: 6d902efec6c2b05692f857cb02517a522aed226d [file] [log] [blame]
/*
* Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include "after_initialization_fixture.h"
class CodecBeforeStreamingTest : public AfterInitializationFixture {
protected:
void SetUp() {
memset(&codec_instance_, 0, sizeof(codec_instance_));
codec_instance_.channels = 1;
codec_instance_.plfreq = 16000;
codec_instance_.pacsize = 480;
channel_ = voe_base_->CreateChannel();
}
void TearDown() {
voe_base_->DeleteChannel(channel_);
}
webrtc::CodecInst codec_instance_;
int channel_;
};
// TODO(phoglund): add test which verifies default pltypes for various codecs.
TEST_F(CodecBeforeStreamingTest, GetRecPayloadTypeFailsForInvalidCodecName) {
strcpy(codec_instance_.plname, "SomeInvalidCodecName");
// Should fail since the codec name is invalid.
EXPECT_NE(0, voe_codec_->GetRecPayloadType(channel_, codec_instance_));
}
TEST_F(CodecBeforeStreamingTest, GetRecPayloadTypeRecognizesISAC) {
strcpy(codec_instance_.plname, "iSAC");
EXPECT_EQ(0, voe_codec_->GetRecPayloadType(channel_, codec_instance_));
strcpy(codec_instance_.plname, "ISAC");
EXPECT_EQ(0, voe_codec_->GetRecPayloadType(channel_, codec_instance_));
}
TEST_F(CodecBeforeStreamingTest, SetRecPayloadTypeCanChangeISACPayloadType) {
strcpy(codec_instance_.plname, "ISAC");
codec_instance_.pltype = 123;
EXPECT_EQ(0, voe_codec_->SetRecPayloadType(channel_, codec_instance_));
EXPECT_EQ(0, voe_codec_->GetRecPayloadType(channel_, codec_instance_));
EXPECT_EQ(123, codec_instance_.pltype);
codec_instance_.pltype = 104;
EXPECT_EQ(0, voe_codec_->SetRecPayloadType(channel_, codec_instance_));
EXPECT_EQ(0, voe_codec_->GetRecPayloadType(channel_, codec_instance_));
EXPECT_EQ(104, codec_instance_.pltype);
}
TEST_F(CodecBeforeStreamingTest, SetRecPayloadTypeCanChangeILBCPayloadType) {
strcpy(codec_instance_.plname, "iLBC");
codec_instance_.plfreq = 8000;
codec_instance_.pacsize = 240;
codec_instance_.rate = 13300;
EXPECT_EQ(0, voe_codec_->GetRecPayloadType(channel_, codec_instance_));
int original_pltype = codec_instance_.pltype;
codec_instance_.pltype = 123;
EXPECT_EQ(0, voe_codec_->SetRecPayloadType(channel_, codec_instance_));
EXPECT_EQ(0, voe_codec_->GetRecPayloadType(channel_, codec_instance_));
EXPECT_EQ(123, codec_instance_.pltype);
codec_instance_.pltype = original_pltype;
EXPECT_EQ(0, voe_codec_->SetRecPayloadType(channel_, codec_instance_));
EXPECT_EQ(0, voe_codec_->GetRecPayloadType(channel_, codec_instance_));
EXPECT_EQ(original_pltype, codec_instance_.pltype);
}