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 #include <algorithm> | 10 #include <algorithm> |
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
307 } | 307 } |
308 | 308 |
309 class CodecObserver : public test::EndToEndTest, | 309 class CodecObserver : public test::EndToEndTest, |
310 public rtc::VideoSinkInterface<VideoFrame> { | 310 public rtc::VideoSinkInterface<VideoFrame> { |
311 public: | 311 public: |
312 CodecObserver(int no_frames_to_wait_for, | 312 CodecObserver(int no_frames_to_wait_for, |
313 VideoRotation rotation_to_test, | 313 VideoRotation rotation_to_test, |
314 const std::string& payload_name, | 314 const std::string& payload_name, |
315 webrtc::VideoEncoder* encoder, | 315 webrtc::VideoEncoder* encoder, |
316 webrtc::VideoDecoder* decoder) | 316 webrtc::VideoDecoder* decoder) |
317 : EndToEndTest(2 * webrtc::EndToEndTest::kDefaultTimeoutMs), | 317 : EndToEndTest(4 * webrtc::EndToEndTest::kDefaultTimeoutMs), |
| 318 // TODO(hta): This timeout (120 seconds) is excessive. |
| 319 // https://bugs.webrtc.org/6830 |
318 no_frames_to_wait_for_(no_frames_to_wait_for), | 320 no_frames_to_wait_for_(no_frames_to_wait_for), |
319 expected_rotation_(rotation_to_test), | 321 expected_rotation_(rotation_to_test), |
320 payload_name_(payload_name), | 322 payload_name_(payload_name), |
321 encoder_(encoder), | 323 encoder_(encoder), |
322 decoder_(decoder), | 324 decoder_(decoder), |
323 frame_counter_(0) {} | 325 frame_counter_(0) {} |
324 | 326 |
325 void PerformTest() override { | 327 void PerformTest() override { |
326 EXPECT_TRUE(Wait()) | 328 EXPECT_TRUE(Wait()) |
327 << "Timed out while waiting for enough frames to be decoded."; | 329 << "Timed out while waiting for enough frames to be decoded."; |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
397 H264Decoder::Create()); | 399 H264Decoder::Create()); |
398 RunBaseTest(&test); | 400 RunBaseTest(&test); |
399 } | 401 } |
400 | 402 |
401 TEST_P(EndToEndTest, SendsAndReceivesH264VideoRotation90) { | 403 TEST_P(EndToEndTest, SendsAndReceivesH264VideoRotation90) { |
402 CodecObserver test(5, kVideoRotation_90, "H264", | 404 CodecObserver test(5, kVideoRotation_90, "H264", |
403 H264Encoder::Create(cricket::VideoCodec("H264")), | 405 H264Encoder::Create(cricket::VideoCodec("H264")), |
404 H264Decoder::Create()); | 406 H264Decoder::Create()); |
405 RunBaseTest(&test); | 407 RunBaseTest(&test); |
406 } | 408 } |
| 409 |
| 410 TEST_P(EndToEndTest, SendsAndReceivesH264PacketizationMode0) { |
| 411 cricket::VideoCodec codec = cricket::VideoCodec("H264"); |
| 412 codec.SetParam(cricket::kH264FmtpPacketizationMode, "0"); |
| 413 CodecObserver test(500, kVideoRotation_0, "H264", H264Encoder::Create(codec), |
| 414 H264Decoder::Create()); |
| 415 RunBaseTest(&test); |
| 416 } |
| 417 |
| 418 TEST_P(EndToEndTest, SendsAndReceivesH264PacketizationMode1) { |
| 419 cricket::VideoCodec codec = cricket::VideoCodec("H264"); |
| 420 codec.SetParam(cricket::kH264FmtpPacketizationMode, "1"); |
| 421 CodecObserver test(500, kVideoRotation_0, "H264", H264Encoder::Create(codec), |
| 422 H264Decoder::Create()); |
| 423 RunBaseTest(&test); |
| 424 } |
| 425 |
407 #endif // defined(WEBRTC_USE_H264) | 426 #endif // defined(WEBRTC_USE_H264) |
408 | 427 |
409 TEST_P(EndToEndTest, ReceiverUsesLocalSsrc) { | 428 TEST_P(EndToEndTest, ReceiverUsesLocalSsrc) { |
410 class SyncRtcpObserver : public test::EndToEndTest { | 429 class SyncRtcpObserver : public test::EndToEndTest { |
411 public: | 430 public: |
412 SyncRtcpObserver() : EndToEndTest(kDefaultTimeoutMs) {} | 431 SyncRtcpObserver() : EndToEndTest(kDefaultTimeoutMs) {} |
413 | 432 |
414 Action OnReceiveRtcp(const uint8_t* packet, size_t length) override { | 433 Action OnReceiveRtcp(const uint8_t* packet, size_t length) override { |
415 test::RtcpPacketParser parser; | 434 test::RtcpPacketParser parser; |
416 EXPECT_TRUE(parser.Parse(packet, length)); | 435 EXPECT_TRUE(parser.Parse(packet, length)); |
(...skipping 3627 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4044 std::unique_ptr<VideoEncoder> encoder_; | 4063 std::unique_ptr<VideoEncoder> encoder_; |
4045 std::unique_ptr<VideoDecoder> decoder_; | 4064 std::unique_ptr<VideoDecoder> decoder_; |
4046 rtc::CriticalSection crit_; | 4065 rtc::CriticalSection crit_; |
4047 int recorded_frames_ GUARDED_BY(crit_); | 4066 int recorded_frames_ GUARDED_BY(crit_); |
4048 } test(this); | 4067 } test(this); |
4049 | 4068 |
4050 RunBaseTest(&test); | 4069 RunBaseTest(&test); |
4051 } | 4070 } |
4052 | 4071 |
4053 } // namespace webrtc | 4072 } // namespace webrtc |
OLD | NEW |