OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 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 21 matching lines...) Expand all Loading... |
32 const char kForemanCif[] = "foreman_cif"; | 32 const char kForemanCif[] = "foreman_cif"; |
33 #if !defined(WEBRTC_IOS) | 33 #if !defined(WEBRTC_IOS) |
34 const int kNumFramesShort = 100; | 34 const int kNumFramesShort = 100; |
35 #endif | 35 #endif |
36 const int kNumFramesLong = 300; | 36 const int kNumFramesLong = 300; |
37 | 37 |
38 const std::nullptr_t kNoVisualizationParams = nullptr; | 38 const std::nullptr_t kNoVisualizationParams = nullptr; |
39 | 39 |
40 } // namespace | 40 } // namespace |
41 | 41 |
42 #if defined(WEBRTC_USE_H264) | |
43 | |
44 // H264: Run with no packet loss and fixed bitrate. Quality should be very high. | |
45 // Note(hbos): The PacketManipulatorImpl code used to simulate packet loss in | |
46 // these unittests appears to drop "packets" in a way that is not compatible | |
47 // with H264. Therefore ProcessXPercentPacketLossH264, X != 0, unittests have | |
48 // not been added. | |
49 TEST_F(VideoProcessorIntegrationTest, Process0PercentPacketLossH264) { | |
50 SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.0f, kForemanCif, | |
51 kVerboseLogging); | |
52 SetCodecSettings(&config_, kVideoCodecH264, 1, false, false, true, false, | |
53 kResilienceOn, kCifWidth, kCifHeight); | |
54 | |
55 RateProfile rate_profile; | |
56 SetRateProfile(&rate_profile, 0, 500, 30, 0); | |
57 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1; | |
58 rate_profile.num_frames = kNumFramesShort; | |
59 | |
60 std::vector<RateControlThresholds> rc_thresholds; | |
61 AddRateControlThresholds(2, 60, 20, 10, 20, 0, 1, &rc_thresholds); | |
62 | |
63 QualityThresholds quality_thresholds(35.0, 25.0, 0.93, 0.70); | |
64 | |
65 ProcessFramesAndMaybeVerify(rate_profile, &rc_thresholds, &quality_thresholds, | |
66 kNoVisualizationParams); | |
67 } | |
68 | |
69 #endif // defined(WEBRTC_USE_H264) | |
70 | |
71 // Fails on iOS. See webrtc:4755. | 42 // Fails on iOS. See webrtc:4755. |
72 #if !defined(WEBRTC_IOS) | 43 #if !defined(WEBRTC_IOS) |
73 | 44 |
74 #if !defined(RTC_DISABLE_VP9) | 45 #if !defined(RTC_DISABLE_VP9) |
75 // VP9: Run with no packet loss and fixed bitrate. Quality should be very high. | 46 // VP9: Run with no packet loss and fixed bitrate. Quality should be very high. |
76 // One key frame (first frame only) in sequence. | 47 // One key frame (first frame only) in sequence. |
77 TEST_F(VideoProcessorIntegrationTest, Process0PercentPacketLossVP9) { | 48 TEST_F(VideoProcessorIntegrationTest, Process0PercentPacketLossVP9) { |
78 SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.0f, kForemanCif, | 49 SetTestConfig(&config_, kHwCodec, kUseSingleCore, 0.0f, kForemanCif, |
79 kVerboseLogging); | 50 kVerboseLogging); |
80 SetCodecSettings(&config_, kVideoCodecVP9, 1, false, false, true, false, | 51 SetCodecSettings(&config_, kVideoCodecVP9, 1, false, false, true, false, |
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
405 | 376 |
406 std::vector<RateControlThresholds> rc_thresholds; | 377 std::vector<RateControlThresholds> rc_thresholds; |
407 AddRateControlThresholds(0, 20, 30, 10, 10, 0, 1, &rc_thresholds); | 378 AddRateControlThresholds(0, 20, 30, 10, 10, 0, 1, &rc_thresholds); |
408 AddRateControlThresholds(0, 0, 30, 15, 10, 0, 0, &rc_thresholds); | 379 AddRateControlThresholds(0, 0, 30, 15, 10, 0, 0, &rc_thresholds); |
409 | 380 |
410 QualityThresholds quality_thresholds(32.5, 30.0, 0.85, 0.80); | 381 QualityThresholds quality_thresholds(32.5, 30.0, 0.85, 0.80); |
411 | 382 |
412 ProcessFramesAndMaybeVerify(rate_profile, &rc_thresholds, &quality_thresholds, | 383 ProcessFramesAndMaybeVerify(rate_profile, &rc_thresholds, &quality_thresholds, |
413 kNoVisualizationParams); | 384 kNoVisualizationParams); |
414 } | 385 } |
| 386 |
415 } // namespace test | 387 } // namespace test |
416 } // namespace webrtc | 388 } // namespace webrtc |
OLD | NEW |