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:
@ -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;
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
Reference in New Issue
Block a user