OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2015 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 "webrtc/video/video_quality_test.h" | 10 #include "webrtc/video/video_quality_test.h" |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 #include "webrtc/test/run_loop.h" | 45 #include "webrtc/test/run_loop.h" |
46 #include "webrtc/test/statistics.h" | 46 #include "webrtc/test/statistics.h" |
47 #include "webrtc/test/testsupport/fileutils.h" | 47 #include "webrtc/test/testsupport/fileutils.h" |
48 #include "webrtc/test/vcm_capturer.h" | 48 #include "webrtc/test/vcm_capturer.h" |
49 #include "webrtc/test/video_renderer.h" | 49 #include "webrtc/test/video_renderer.h" |
50 #include "webrtc/voice_engine/include/voe_base.h" | 50 #include "webrtc/voice_engine/include/voe_base.h" |
51 | 51 |
52 namespace { | 52 namespace { |
53 | 53 |
54 constexpr int kSendStatsPollingIntervalMs = 1000; | 54 constexpr int kSendStatsPollingIntervalMs = 1000; |
55 constexpr int kPayloadTypeH264 = 122; | |
56 constexpr int kPayloadTypeVP8 = 123; | |
57 constexpr int kPayloadTypeVP9 = 124; | |
58 | 55 |
59 constexpr size_t kMaxComparisons = 10; | 56 constexpr size_t kMaxComparisons = 10; |
60 constexpr char kSyncGroup[] = "av_sync"; | 57 constexpr char kSyncGroup[] = "av_sync"; |
61 constexpr int kOpusMinBitrateBps = 6000; | 58 constexpr int kOpusMinBitrateBps = 6000; |
62 constexpr int kOpusBitrateFbBps = 32000; | 59 constexpr int kOpusBitrateFbBps = 32000; |
63 constexpr int kFramesSentInQuickTest = 1; | 60 constexpr int kFramesSentInQuickTest = 1; |
64 constexpr uint32_t kThumbnailSendSsrcStart = 0xE0000; | 61 constexpr uint32_t kThumbnailSendSsrcStart = 0xE0000; |
65 constexpr uint32_t kThumbnailRtxSsrcStart = 0xF0000; | 62 constexpr uint32_t kThumbnailRtxSsrcStart = 0xF0000; |
66 | 63 |
67 constexpr int kDefaultMaxQp = cricket::WebRtcVideoChannel::kDefaultQpMax; | 64 constexpr int kDefaultMaxQp = cricket::WebRtcVideoChannel::kDefaultQpMax; |
(...skipping 513 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
581 parent_->PreEncodeOnFrame(video_frame); | 578 parent_->PreEncodeOnFrame(video_frame); |
582 } | 579 } |
583 | 580 |
584 private: | 581 private: |
585 VideoAnalyzer* const parent_; | 582 VideoAnalyzer* const parent_; |
586 }; | 583 }; |
587 | 584 |
588 bool IsInSelectedSpatialAndTemporalLayer(const uint8_t* packet, | 585 bool IsInSelectedSpatialAndTemporalLayer(const uint8_t* packet, |
589 size_t length, | 586 size_t length, |
590 const RTPHeader& header) { | 587 const RTPHeader& header) { |
591 if (header.payloadType != kPayloadTypeVP9 && | 588 if (header.payloadType != test::CallTest::kPayloadTypeVP9 && |
592 header.payloadType != kPayloadTypeVP8) { | 589 header.payloadType != test::CallTest::kPayloadTypeVP8) { |
593 return true; | 590 return true; |
594 } else { | 591 } else { |
595 // Get VP8 and VP9 specific header to check layers indexes. | 592 // Get VP8 and VP9 specific header to check layers indexes. |
596 const uint8_t* payload = packet + header.headerLength; | 593 const uint8_t* payload = packet + header.headerLength; |
597 const size_t payload_length = length - header.headerLength; | 594 const size_t payload_length = length - header.headerLength; |
598 const size_t payload_data_length = payload_length - header.paddingLength; | 595 const size_t payload_data_length = payload_length - header.paddingLength; |
599 const bool is_vp8 = header.payloadType == kPayloadTypeVP8; | 596 const bool is_vp8 = header.payloadType == test::CallTest::kPayloadTypeVP8; |
600 std::unique_ptr<RtpDepacketizer> depacketizer( | 597 std::unique_ptr<RtpDepacketizer> depacketizer( |
601 RtpDepacketizer::Create(is_vp8 ? kRtpVideoVp8 : kRtpVideoVp9)); | 598 RtpDepacketizer::Create(is_vp8 ? kRtpVideoVp8 : kRtpVideoVp9)); |
602 RtpDepacketizer::ParsedPayload parsed_payload; | 599 RtpDepacketizer::ParsedPayload parsed_payload; |
603 bool result = | 600 bool result = |
604 depacketizer->Parse(&parsed_payload, payload, payload_data_length); | 601 depacketizer->Parse(&parsed_payload, payload, payload_data_length); |
605 RTC_DCHECK(result); | 602 RTC_DCHECK(result); |
606 const int temporal_idx = static_cast<int>( | 603 const int temporal_idx = static_cast<int>( |
607 is_vp8 ? parsed_payload.type.Video.codecHeader.VP8.temporalIdx | 604 is_vp8 ? parsed_payload.type.Video.codecHeader.VP8.temporalIdx |
608 : parsed_payload.type.Video.codecHeader.VP9.temporal_idx); | 605 : parsed_payload.type.Video.codecHeader.VP9.temporal_idx); |
609 const int spatial_idx = static_cast<int>( | 606 const int spatial_idx = static_cast<int>( |
(...skipping 1434 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2044 if (!params_.video.encoded_frame_base_path.empty()) { | 2041 if (!params_.video.encoded_frame_base_path.empty()) { |
2045 std::ostringstream str; | 2042 std::ostringstream str; |
2046 str << receive_logs_++; | 2043 str << receive_logs_++; |
2047 std::string path = | 2044 std::string path = |
2048 params_.video.encoded_frame_base_path + "." + str.str() + ".recv.ivf"; | 2045 params_.video.encoded_frame_base_path + "." + str.str() + ".recv.ivf"; |
2049 stream->EnableEncodedFrameRecording(rtc::CreatePlatformFile(path), | 2046 stream->EnableEncodedFrameRecording(rtc::CreatePlatformFile(path), |
2050 10000000); | 2047 10000000); |
2051 } | 2048 } |
2052 } | 2049 } |
2053 } // namespace webrtc | 2050 } // namespace webrtc |
OLD | NEW |