| 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 |