| Index: webrtc/media/engine/webrtcvideoengine2_unittest.cc
|
| diff --git a/webrtc/media/engine/webrtcvideoengine2_unittest.cc b/webrtc/media/engine/webrtcvideoengine2_unittest.cc
|
| index f422ffcb6dd99ea4784e01c91de8f8330c3557b4..766abd0d1cc5e1e162022f09dd6e294251b45153 100644
|
| --- a/webrtc/media/engine/webrtcvideoengine2_unittest.cc
|
| +++ b/webrtc/media/engine/webrtcvideoengine2_unittest.cc
|
| @@ -4136,6 +4136,49 @@ TEST_F(WebRtcVideoChannel2Test, SetAndGetRtpReceiveParameters) {
|
| EXPECT_EQ(initial_params, channel_->GetRtpReceiveParameters(last_ssrc_));
|
| }
|
|
|
| +// Test that GetRtpReceiveParameters returns parameters correctly when SSRCs
|
| +// aren't signaled. It should always return an empty "RtpEncodingParameters",
|
| +// even after a packet is received and the unsignaled SSRC is known.
|
| +TEST_F(WebRtcVideoChannel2Test, GetRtpReceiveParametersWithUnsignaledSsrc) {
|
| + // Call necessary methods to configure receiving a default stream as
|
| + // soon as it arrives.
|
| + cricket::VideoRecvParameters parameters;
|
| + parameters.codecs.push_back(GetEngineCodec("VP8"));
|
| + parameters.codecs.push_back(GetEngineCodec("VP9"));
|
| + EXPECT_TRUE(channel_->SetRecvParameters(parameters));
|
| +
|
| + // Call GetRtpReceiveParameters before configured to receive an unsignaled
|
| + // stream. Should return nothing.
|
| + EXPECT_EQ(webrtc::RtpParameters(), channel_->GetRtpReceiveParameters(0));
|
| +
|
| + // Set a sink for an unsignaled stream.
|
| + cricket::FakeVideoRenderer renderer;
|
| + // Value of "0" means "unsignaled stream".
|
| + EXPECT_TRUE(channel_->SetSink(0, &renderer));
|
| +
|
| + // Call GetRtpReceiveParameters before the SSRC is known. Value of "0"
|
| + // in this method means "unsignaled stream".
|
| + webrtc::RtpParameters rtp_parameters = channel_->GetRtpReceiveParameters(0);
|
| + ASSERT_EQ(1u, rtp_parameters.encodings.size());
|
| + EXPECT_FALSE(rtp_parameters.encodings[0].ssrc);
|
| +
|
| + // Receive VP8 packet.
|
| + uint8_t data[kMinRtpPacketLen];
|
| + cricket::RtpHeader rtpHeader;
|
| + rtpHeader.payload_type = GetEngineCodec("VP8").id;
|
| + rtpHeader.seq_num = rtpHeader.timestamp = 0;
|
| + rtpHeader.ssrc = kIncomingUnsignalledSsrc;
|
| + cricket::SetRtpHeader(data, sizeof(data), rtpHeader);
|
| + rtc::CopyOnWriteBuffer packet(data, sizeof(data));
|
| + rtc::PacketTime packet_time;
|
| + channel_->OnPacketReceived(&packet, packet_time);
|
| +
|
| + // The |ssrc| member should still be unset.
|
| + rtp_parameters = channel_->GetRtpReceiveParameters(0);
|
| + ASSERT_EQ(1u, rtp_parameters.encodings.size());
|
| + EXPECT_FALSE(rtp_parameters.encodings[0].ssrc);
|
| +}
|
| +
|
| void WebRtcVideoChannel2Test::TestReceiverLocalSsrcConfiguration(
|
| bool receiver_first) {
|
| EXPECT_TRUE(channel_->SetSendParameters(send_parameters_));
|
|
|