RTPPayloadRegistry: Stop using the rate to keep track of receive codecs
It's not used for anything. BUG=webrtc:5805 Review-Url: https://codereview.webrtc.org/2516213002 Cr-Commit-Position: refs/heads/master@{#15438}
This commit is contained in:
@ -29,10 +29,8 @@ bool PayloadIsCompatible(const RtpUtility::Payload& payload,
|
|||||||
if (_stricmp(payload.name, audio_codec.plname) != 0)
|
if (_stricmp(payload.name, audio_codec.plname) != 0)
|
||||||
return false;
|
return false;
|
||||||
const AudioPayload& audio_payload = payload.typeSpecific.Audio;
|
const AudioPayload& audio_payload = payload.typeSpecific.Audio;
|
||||||
const uint32_t rate = std::max(0, audio_codec.rate);
|
|
||||||
return audio_payload.frequency == static_cast<uint32_t>(audio_codec.plfreq) &&
|
return audio_payload.frequency == static_cast<uint32_t>(audio_codec.plfreq) &&
|
||||||
audio_payload.channels == audio_codec.channels &&
|
audio_payload.channels == audio_codec.channels;
|
||||||
(audio_payload.rate == rate || audio_payload.rate == 0 || rate == 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PayloadIsCompatible(const RtpUtility::Payload& payload,
|
bool PayloadIsCompatible(const RtpUtility::Payload& payload,
|
||||||
@ -54,7 +52,7 @@ RtpUtility::Payload CreatePayloadType(const CodecInst& audio_codec) {
|
|||||||
RTC_DCHECK_GE(audio_codec.plfreq, 1000);
|
RTC_DCHECK_GE(audio_codec.plfreq, 1000);
|
||||||
payload.typeSpecific.Audio.frequency = audio_codec.plfreq;
|
payload.typeSpecific.Audio.frequency = audio_codec.plfreq;
|
||||||
payload.typeSpecific.Audio.channels = audio_codec.channels;
|
payload.typeSpecific.Audio.channels = audio_codec.channels;
|
||||||
payload.typeSpecific.Audio.rate = std::max(0, audio_codec.rate);
|
payload.typeSpecific.Audio.rate = 0;
|
||||||
payload.audio = true;
|
payload.audio = true;
|
||||||
return payload;
|
return payload;
|
||||||
}
|
}
|
||||||
@ -134,7 +132,7 @@ int32_t RTPPayloadRegistry::RegisterReceivePayload(const CodecInst& audio_codec,
|
|||||||
// We already use this payload type. Check if it's the same as we already
|
// We already use this payload type. Check if it's the same as we already
|
||||||
// have. If same, ignore sending an error.
|
// have. If same, ignore sending an error.
|
||||||
if (PayloadIsCompatible(it->second, audio_codec)) {
|
if (PayloadIsCompatible(it->second, audio_codec)) {
|
||||||
it->second.typeSpecific.Audio.rate = std::max(0, audio_codec.rate);
|
it->second.typeSpecific.Audio.rate = 0;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
LOG(LS_ERROR) << "Payload type already registered: " << audio_codec.pltype;
|
LOG(LS_ERROR) << "Payload type already registered: " << audio_codec.pltype;
|
||||||
|
|||||||
@ -28,10 +28,9 @@ using ::testing::_;
|
|||||||
static const char* kTypicalPayloadName = "name";
|
static const char* kTypicalPayloadName = "name";
|
||||||
static const size_t kTypicalChannels = 1;
|
static const size_t kTypicalChannels = 1;
|
||||||
static const uint32_t kTypicalFrequency = 44000;
|
static const uint32_t kTypicalFrequency = 44000;
|
||||||
static const uint32_t kTypicalRate = 32 * 1024;
|
static const CodecInst kTypicalAudioCodec = {-1 /* pltype */, "name",
|
||||||
static const CodecInst kTypicalAudioCodec = {-1 /* pltype */, "name",
|
|
||||||
kTypicalFrequency, 0 /* pacsize */,
|
kTypicalFrequency, 0 /* pacsize */,
|
||||||
kTypicalChannels, kTypicalRate};
|
kTypicalChannels};
|
||||||
|
|
||||||
TEST(RtpPayloadRegistryTest,
|
TEST(RtpPayloadRegistryTest,
|
||||||
RegistersAndRemembersVideoPayloadsUntilDeregistered) {
|
RegistersAndRemembersVideoPayloadsUntilDeregistered) {
|
||||||
@ -79,7 +78,6 @@ TEST(RtpPayloadRegistryTest,
|
|||||||
EXPECT_TRUE(retrieved_payload->audio);
|
EXPECT_TRUE(retrieved_payload->audio);
|
||||||
EXPECT_EQ(kTypicalFrequency, retrieved_payload->typeSpecific.Audio.frequency);
|
EXPECT_EQ(kTypicalFrequency, retrieved_payload->typeSpecific.Audio.frequency);
|
||||||
EXPECT_EQ(kTypicalChannels, retrieved_payload->typeSpecific.Audio.channels);
|
EXPECT_EQ(kTypicalChannels, retrieved_payload->typeSpecific.Audio.channels);
|
||||||
EXPECT_EQ(kTypicalRate, retrieved_payload->typeSpecific.Audio.rate);
|
|
||||||
|
|
||||||
// Now forget about it and verify it's gone.
|
// Now forget about it and verify it's gone.
|
||||||
EXPECT_EQ(0, rtp_payload_registry.DeRegisterReceivePayload(payload_type));
|
EXPECT_EQ(0, rtp_payload_registry.DeRegisterReceivePayload(payload_type));
|
||||||
@ -90,7 +88,6 @@ TEST(RtpPayloadRegistryTest, AudioRedWorkProperly) {
|
|||||||
const uint8_t kRedPayloadType = 127;
|
const uint8_t kRedPayloadType = 127;
|
||||||
const int kRedSampleRate = 8000;
|
const int kRedSampleRate = 8000;
|
||||||
const size_t kRedChannels = 1;
|
const size_t kRedChannels = 1;
|
||||||
const int kRedBitRate = 0;
|
|
||||||
|
|
||||||
RTPPayloadRegistry rtp_payload_registry;
|
RTPPayloadRegistry rtp_payload_registry;
|
||||||
|
|
||||||
@ -100,7 +97,6 @@ TEST(RtpPayloadRegistryTest, AudioRedWorkProperly) {
|
|||||||
red_audio_codec.pltype = kRedPayloadType;
|
red_audio_codec.pltype = kRedPayloadType;
|
||||||
red_audio_codec.plfreq = kRedSampleRate;
|
red_audio_codec.plfreq = kRedSampleRate;
|
||||||
red_audio_codec.channels = kRedChannels;
|
red_audio_codec.channels = kRedChannels;
|
||||||
red_audio_codec.rate = kRedBitRate;
|
|
||||||
EXPECT_EQ(0, rtp_payload_registry.RegisterReceivePayload(
|
EXPECT_EQ(0, rtp_payload_registry.RegisterReceivePayload(
|
||||||
red_audio_codec, &new_payload_created));
|
red_audio_codec, &new_payload_created));
|
||||||
EXPECT_TRUE(new_payload_created);
|
EXPECT_TRUE(new_payload_created);
|
||||||
@ -152,7 +148,6 @@ TEST(RtpPayloadRegistryTest,
|
|||||||
EXPECT_TRUE(retrieved_payload->audio);
|
EXPECT_TRUE(retrieved_payload->audio);
|
||||||
EXPECT_EQ(kTypicalFrequency, retrieved_payload->typeSpecific.Audio.frequency);
|
EXPECT_EQ(kTypicalFrequency, retrieved_payload->typeSpecific.Audio.frequency);
|
||||||
EXPECT_EQ(kTypicalChannels, retrieved_payload->typeSpecific.Audio.channels);
|
EXPECT_EQ(kTypicalChannels, retrieved_payload->typeSpecific.Audio.channels);
|
||||||
EXPECT_EQ(kTypicalRate, retrieved_payload->typeSpecific.Audio.rate);
|
|
||||||
|
|
||||||
retrieved_payload =
|
retrieved_payload =
|
||||||
rtp_payload_registry.PayloadTypeToPayload(payload_type - 1);
|
rtp_payload_registry.PayloadTypeToPayload(payload_type - 1);
|
||||||
@ -162,7 +157,6 @@ TEST(RtpPayloadRegistryTest,
|
|||||||
EXPECT_EQ(kTypicalFrequency + 1,
|
EXPECT_EQ(kTypicalFrequency + 1,
|
||||||
retrieved_payload->typeSpecific.Audio.frequency);
|
retrieved_payload->typeSpecific.Audio.frequency);
|
||||||
EXPECT_EQ(kTypicalChannels, retrieved_payload->typeSpecific.Audio.channels);
|
EXPECT_EQ(kTypicalChannels, retrieved_payload->typeSpecific.Audio.channels);
|
||||||
EXPECT_EQ(kTypicalRate, retrieved_payload->typeSpecific.Audio.rate);
|
|
||||||
|
|
||||||
// Ok, update the rate for one of the codecs. If either the incoming rate or
|
// Ok, update the rate for one of the codecs. If either the incoming rate or
|
||||||
// the stored rate is zero it's not really an error to register the same
|
// the stored rate is zero it's not really an error to register the same
|
||||||
@ -241,7 +235,6 @@ TEST_P(ParameterizedRtpPayloadRegistryTest,
|
|||||||
audio_codec.pltype = GetParam();
|
audio_codec.pltype = GetParam();
|
||||||
audio_codec.plfreq = 1900;
|
audio_codec.plfreq = 1900;
|
||||||
audio_codec.channels = 1;
|
audio_codec.channels = 1;
|
||||||
audio_codec.rate = 17;
|
|
||||||
EXPECT_EQ(-1,
|
EXPECT_EQ(-1,
|
||||||
rtp_payload_registry.RegisterReceivePayload(audio_codec, &ignored));
|
rtp_payload_registry.RegisterReceivePayload(audio_codec, &ignored));
|
||||||
}
|
}
|
||||||
@ -262,7 +255,6 @@ TEST_P(RtpPayloadRegistryGenericTest, RegisterGenericReceivePayloadType) {
|
|||||||
audio_codec.pltype = GetParam();
|
audio_codec.pltype = GetParam();
|
||||||
audio_codec.plfreq = 1900;
|
audio_codec.plfreq = 1900;
|
||||||
audio_codec.channels = 1;
|
audio_codec.channels = 1;
|
||||||
audio_codec.rate = 17;
|
|
||||||
EXPECT_EQ(0,
|
EXPECT_EQ(0,
|
||||||
rtp_payload_registry.RegisterReceivePayload(audio_codec, &ignored));
|
rtp_payload_registry.RegisterReceivePayload(audio_codec, &ignored));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -75,10 +75,7 @@ class RTPCallback : public NullRtpFeedback {
|
|||||||
const int frequency,
|
const int frequency,
|
||||||
const size_t channels,
|
const size_t channels,
|
||||||
const uint32_t rate) override {
|
const uint32_t rate) override {
|
||||||
if (payloadType == kPcmuPayloadType) {
|
EXPECT_EQ(0u, rate) << "The rate should be zero";
|
||||||
EXPECT_EQ(kTestRate, rate) <<
|
|
||||||
"The rate should be 64K for this payloadType";
|
|
||||||
}
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user