OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 16 matching lines...) Expand all Loading... |
27 namespace { | 27 namespace { |
28 | 28 |
29 class TestVideoReceiver : public ::testing::Test { | 29 class TestVideoReceiver : public ::testing::Test { |
30 protected: | 30 protected: |
31 static const int kUnusedPayloadType = 10; | 31 static const int kUnusedPayloadType = 10; |
32 | 32 |
33 TestVideoReceiver() : clock_(0) {} | 33 TestVideoReceiver() : clock_(0) {} |
34 | 34 |
35 virtual void SetUp() { | 35 virtual void SetUp() { |
36 receiver_.reset(new VideoReceiver(&clock_, &event_factory_)); | 36 receiver_.reset(new VideoReceiver(&clock_, &event_factory_)); |
37 receiver_->RegisterExternalDecoder(&decoder_, kUnusedPayloadType, true); | 37 receiver_->RegisterExternalDecoder(&decoder_, kUnusedPayloadType); |
38 const size_t kMaxNackListSize = 250; | 38 const size_t kMaxNackListSize = 250; |
39 const int kMaxPacketAgeToNack = 450; | 39 const int kMaxPacketAgeToNack = 450; |
40 receiver_->SetNackSettings(kMaxNackListSize, kMaxPacketAgeToNack, 0); | 40 receiver_->SetNackSettings(kMaxNackListSize, kMaxPacketAgeToNack, 0); |
41 | 41 |
42 memset(&settings_, 0, sizeof(settings_)); | 42 memset(&settings_, 0, sizeof(settings_)); |
43 EXPECT_EQ(0, VideoCodingModule::Codec(kVideoCodecVP8, &settings_)); | 43 EXPECT_EQ(0, VideoCodingModule::Codec(kVideoCodecVP8, &settings_)); |
44 settings_.plType = kUnusedPayloadType; // Use the mocked encoder. | 44 settings_.plType = kUnusedPayloadType; // Use the mocked encoder. |
45 EXPECT_EQ(0, receiver_->RegisterReceiveCodec(&settings_, 1, true)); | 45 EXPECT_EQ(0, receiver_->RegisterReceiveCodec(&settings_, 1, true)); |
46 } | 46 } |
47 | 47 |
48 void InsertAndVerifyPaddingFrame(const uint8_t* payload, | 48 void InsertAndVerifyPaddingFrame(const uint8_t* payload, |
49 WebRtcRTPHeader* header) { | 49 WebRtcRTPHeader* header) { |
50 ASSERT_TRUE(header != NULL); | 50 ASSERT_TRUE(header != NULL); |
51 for (int j = 0; j < 5; ++j) { | 51 for (int j = 0; j < 5; ++j) { |
52 // Padding only packets are passed to the VCM with payload size 0. | 52 // Padding only packets are passed to the VCM with payload size 0. |
53 EXPECT_EQ(0, receiver_->IncomingPacket(payload, 0, *header)); | 53 EXPECT_EQ(0, receiver_->IncomingPacket(payload, 0, *header)); |
54 ++header->header.sequenceNumber; | 54 ++header->header.sequenceNumber; |
55 } | 55 } |
56 EXPECT_EQ(0, receiver_->Process()); | 56 EXPECT_EQ(0, receiver_->Process()); |
57 EXPECT_CALL(decoder_, Decode(_, _, _, _, _)).Times(0); | 57 EXPECT_CALL(decoder_, Decode(_, _, _, _, _)).Times(0); |
58 EXPECT_EQ(VCM_FRAME_NOT_READY, receiver_->Decode(0)); | 58 EXPECT_EQ(VCM_FRAME_NOT_READY, receiver_->Decode(100)); |
59 } | 59 } |
60 | 60 |
61 void InsertAndVerifyDecodableFrame(const uint8_t* payload, | 61 void InsertAndVerifyDecodableFrame(const uint8_t* payload, |
62 size_t length, | 62 size_t length, |
63 WebRtcRTPHeader* header) { | 63 WebRtcRTPHeader* header) { |
64 ASSERT_TRUE(header != NULL); | 64 ASSERT_TRUE(header != NULL); |
65 EXPECT_EQ(0, receiver_->IncomingPacket(payload, length, *header)); | 65 EXPECT_EQ(0, receiver_->IncomingPacket(payload, length, *header)); |
66 ++header->header.sequenceNumber; | 66 ++header->header.sequenceNumber; |
67 EXPECT_CALL(packet_request_callback_, ResendPackets(_, _)).Times(0); | 67 EXPECT_CALL(packet_request_callback_, ResendPackets(_, _)).Times(0); |
68 EXPECT_EQ(0, receiver_->Process()); | 68 EXPECT_EQ(0, receiver_->Process()); |
69 EXPECT_CALL(decoder_, Decode(_, _, _, _, _)).Times(1); | 69 EXPECT_CALL(decoder_, Decode(_, _, _, _, _)).Times(1); |
70 EXPECT_EQ(0, receiver_->Decode(0)); | 70 EXPECT_EQ(0, receiver_->Decode(100)); |
71 } | 71 } |
72 | 72 |
73 SimulatedClock clock_; | 73 SimulatedClock clock_; |
74 NullEventFactory event_factory_; | 74 NullEventFactory event_factory_; |
75 VideoCodec settings_; | 75 VideoCodec settings_; |
76 NiceMock<MockVideoDecoder> decoder_; | 76 NiceMock<MockVideoDecoder> decoder_; |
77 NiceMock<MockPacketRequestCallback> packet_request_callback_; | 77 NiceMock<MockPacketRequestCallback> packet_request_callback_; |
78 | 78 |
79 rtc::scoped_ptr<VideoReceiver> receiver_; | 79 rtc::scoped_ptr<VideoReceiver> receiver_; |
80 }; | 80 }; |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
201 TEST_F(TestVideoReceiver, ReceiverDelay) { | 201 TEST_F(TestVideoReceiver, ReceiverDelay) { |
202 EXPECT_EQ(0, receiver_->SetMinReceiverDelay(0)); | 202 EXPECT_EQ(0, receiver_->SetMinReceiverDelay(0)); |
203 EXPECT_EQ(0, receiver_->SetMinReceiverDelay(5000)); | 203 EXPECT_EQ(0, receiver_->SetMinReceiverDelay(5000)); |
204 EXPECT_EQ(-1, receiver_->SetMinReceiverDelay(-100)); | 204 EXPECT_EQ(-1, receiver_->SetMinReceiverDelay(-100)); |
205 EXPECT_EQ(-1, receiver_->SetMinReceiverDelay(10010)); | 205 EXPECT_EQ(-1, receiver_->SetMinReceiverDelay(10010)); |
206 } | 206 } |
207 | 207 |
208 } // namespace | 208 } // namespace |
209 } // namespace vcm | 209 } // namespace vcm |
210 } // namespace webrtc | 210 } // namespace webrtc |
OLD | NEW |