Adds support for the "apt" format parameter and turns on the RTX feature.
BUG=1811,1095 R=henrike@webrtc.org, mflodman@webrtc.org Review URL: https://webrtc-codereview.appspot.com/12579009 git-svn-id: http://webrtc.googlecode.com/svn/trunk@6372 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
ed7edb8e89
commit
85d2794e5b
@ -247,6 +247,7 @@ bool PeerConnectionFactory::Initialize_s() {
|
|||||||
|
|
||||||
channel_manager_.reset(new cricket::ChannelManager(
|
channel_manager_.reset(new cricket::ChannelManager(
|
||||||
webrtc_media_engine, device_manager, worker_thread_));
|
webrtc_media_engine, device_manager, worker_thread_));
|
||||||
|
channel_manager_->SetVideoRtxEnabled(true);
|
||||||
if (!channel_manager_->Init()) {
|
if (!channel_manager_->Init()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -71,6 +71,7 @@ using cricket::kCodecParamUseInbandFec;
|
|||||||
using cricket::kCodecParamSctpProtocol;
|
using cricket::kCodecParamSctpProtocol;
|
||||||
using cricket::kCodecParamSctpStreams;
|
using cricket::kCodecParamSctpStreams;
|
||||||
using cricket::kCodecParamMaxAverageBitrate;
|
using cricket::kCodecParamMaxAverageBitrate;
|
||||||
|
using cricket::kCodecParamAssociatedPayloadType;
|
||||||
using cricket::kWildcardPayloadType;
|
using cricket::kWildcardPayloadType;
|
||||||
using cricket::MediaContentDescription;
|
using cricket::MediaContentDescription;
|
||||||
using cricket::MediaType;
|
using cricket::MediaType;
|
||||||
@ -1512,7 +1513,7 @@ bool IsFmtpParam(const std::string& name) {
|
|||||||
kCodecParamStereo, kCodecParamUseInbandFec, kCodecParamStartBitrate,
|
kCodecParamStereo, kCodecParamUseInbandFec, kCodecParamStartBitrate,
|
||||||
kCodecParamMaxBitrate, kCodecParamMinBitrate, kCodecParamMaxQuantization,
|
kCodecParamMaxBitrate, kCodecParamMinBitrate, kCodecParamMaxQuantization,
|
||||||
kCodecParamSctpProtocol, kCodecParamSctpStreams,
|
kCodecParamSctpProtocol, kCodecParamSctpStreams,
|
||||||
kCodecParamMaxAverageBitrate
|
kCodecParamMaxAverageBitrate, kCodecParamAssociatedPayloadType
|
||||||
};
|
};
|
||||||
for (size_t i = 0; i < ARRAY_SIZE(kFmtpParams); ++i) {
|
for (size_t i = 0; i < ARRAY_SIZE(kFmtpParams); ++i) {
|
||||||
if (_stricmp(name.c_str(), kFmtpParams[i]) == 0) {
|
if (_stricmp(name.c_str(), kFmtpParams[i]) == 0) {
|
||||||
|
@ -1153,6 +1153,15 @@ class WebRtcSdpTest : public testing::Test {
|
|||||||
<< "a=maxptime:" << params.max_ptime << "\r\n";
|
<< "a=maxptime:" << params.max_ptime << "\r\n";
|
||||||
sdp += os.str();
|
sdp += os.str();
|
||||||
|
|
||||||
|
os.clear();
|
||||||
|
os.str("");
|
||||||
|
// Pl type 100 preferred.
|
||||||
|
os << "m=video 1 RTP/SAVPF 99 95\r\n"
|
||||||
|
<< "a=rtpmap:99 VP8/90000\r\n"
|
||||||
|
<< "a=rtpmap:95 RTX/90000\r\n"
|
||||||
|
<< "a=fmtp:95 apt=99;rtx-time=1000\r\n";
|
||||||
|
sdp += os.str();
|
||||||
|
|
||||||
// Deserialize
|
// Deserialize
|
||||||
SdpParseError error;
|
SdpParseError error;
|
||||||
EXPECT_TRUE(webrtc::SdpDeserialize(sdp, jdesc_output, &error));
|
EXPECT_TRUE(webrtc::SdpDeserialize(sdp, jdesc_output, &error));
|
||||||
@ -1183,6 +1192,19 @@ class WebRtcSdpTest : public testing::Test {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const ContentInfo* vc = GetFirstVideoContent(jdesc_output->description());
|
||||||
|
ASSERT_TRUE(vc != NULL);
|
||||||
|
const VideoContentDescription* vcd =
|
||||||
|
static_cast<const VideoContentDescription*>(vc->description);
|
||||||
|
ASSERT_FALSE(vcd->codecs().empty());
|
||||||
|
cricket::VideoCodec vp8 = vcd->codecs()[0];
|
||||||
|
EXPECT_EQ("VP8", vp8.name);
|
||||||
|
EXPECT_EQ(99, vp8.id);
|
||||||
|
cricket::VideoCodec rtx = vcd->codecs()[1];
|
||||||
|
EXPECT_EQ("RTX", rtx.name);
|
||||||
|
EXPECT_EQ(95, rtx.id);
|
||||||
|
VerifyCodecParameter(rtx.params, "apt", vp8.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TestDeserializeRtcpFb(JsepSessionDescription* jdesc_output,
|
void TestDeserializeRtcpFb(JsepSessionDescription* jdesc_output,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user