Permit arbitrary payload names for kVideoCodecGeneric.

BUG=1575

Review URL: https://webrtc-codereview.appspot.com/1282005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3768 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
pbos@webrtc.org
2013-04-05 13:27:38 +00:00
parent b9e402d99f
commit b5bf54c4e7
6 changed files with 60 additions and 12 deletions

View File

@ -39,6 +39,7 @@ WebRtc_Word32 RTPPayloadRegistry::RegisterReceivePayload(
const WebRtc_UWord8 channels,
const WebRtc_UWord32 rate,
bool* created_new_payload) {
assert(payload_type >= 0);
assert(payload_name);
*created_new_payload = false;
@ -61,6 +62,7 @@ WebRtc_Word32 RTPPayloadRegistry::RegisterReceivePayload(
default:
break;
}
size_t payload_name_length = strlen(payload_name);
ModuleRTPUtility::PayloadTypeMap::iterator it =
@ -318,13 +320,10 @@ class RTPPayloadVideoStrategy : public RTPPayloadStrategy {
videoType = kRtpVp8Video;
} else if (ModuleRTPUtility::StringCompare(payloadName, "I420", 4)) {
videoType = kRtpGenericVideo;
} else if (ModuleRTPUtility::StringCompare(payloadName, "GENERIC", 7)) {
videoType = kRtpGenericVideo;
} else if (ModuleRTPUtility::StringCompare(payloadName, "ULPFEC", 6)) {
videoType = kRtpFecVideo;
} else {
assert(false);
return NULL;
videoType = kRtpGenericVideo;
}
ModuleRTPUtility::Payload* payload = new ModuleRTPUtility::Payload;

View File

@ -233,4 +233,22 @@ INSTANTIATE_TEST_CASE_P(TestKnownBadPayloadTypes,
ParameterizedRtpPayloadRegistryTest,
testing::Values(64, 72, 73, 74, 75, 76, 77, 78, 79));
class RtpPayloadRegistryGenericTest :
public RtpPayloadRegistryTest,
public ::testing::WithParamInterface<int> {
};
TEST_P(RtpPayloadRegistryGenericTest, RegisterGenericReceivePayloadType) {
int payload_type = GetParam();
bool ignored;
EXPECT_EQ(0, rtp_payload_registry_->RegisterReceivePayload("generic-codec",
static_cast<int8_t>(payload_type),
19, 1, 17, &ignored)); // dummy values, except for payload_type
}
INSTANTIATE_TEST_CASE_P(TestDynamicRange, RtpPayloadRegistryGenericTest,
testing::Range(96, 127+1));
} // namespace webrtc

View File

@ -95,10 +95,8 @@ WebRtc_Word32 RTPSenderVideo::RegisterVideoPayload(
videoType = kRtpVp8Video;
} else if (ModuleRTPUtility::StringCompare(payloadName, "I420", 4)) {
videoType = kRtpGenericVideo;
} else if (ModuleRTPUtility::StringCompare(payloadName, "GENERIC", 7)) {
videoType = kRtpGenericVideo;
} else {
return -1;
videoType = kRtpGenericVideo;
}
payload = new ModuleRTPUtility::Payload;
payload->name[RTP_PAYLOAD_NAME_SIZE - 1] = 0;