Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1505)

Unified Diff: modules/video_coding/codecs/test/videoprocessor.cc

Issue 3014623002: Adding test for SingleNalUnit mode (Closed)
Patch Set: addressing cl reviewers comments Created 3 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: modules/video_coding/codecs/test/videoprocessor.cc
diff --git a/modules/video_coding/codecs/test/videoprocessor.cc b/modules/video_coding/codecs/test/videoprocessor.cc
index af5b4b35b5e75465823f89dbf0aaa5416568db21..d2a5b5df4f6f19f2c8ef9bd23215935d7300f534 100644
--- a/modules/video_coding/codecs/test/videoprocessor.cc
+++ b/modules/video_coding/codecs/test/videoprocessor.cc
@@ -16,6 +16,7 @@
#include <memory>
#include <utility>
#include <vector>
+#include <algorithm>
brandtr 2017/09/26 09:19:13 Also sort the include order here.
ssilkin 2017/09/26 11:07:04 Done.
#include "api/video/i420_buffer.h"
#include "common_types.h" // NOLINT(build/include)
@@ -108,6 +109,22 @@ void VerifyQpParser(const EncodedImage& encoded_frame,
EXPECT_EQ(encoded_frame.qp_, qp) << "Encoder QP != parsed bitstream QP.";
}
+rtc::Optional<size_t> GetMaxNaluLength(const EncodedImage& encoded_frame,
+ const TestConfig& config) {
brandtr 2017/09/26 09:19:13 To fix the indentation, you can run 'git cl format
ssilkin 2017/09/26 11:07:04 Great. I didn't know about that command.
+ if (config.codec_settings.codecType != kVideoCodecH264)
+ return rtc::Optional<size_t>();
+
+ std::vector<webrtc::H264::NaluIndex> nalu_indices =
+ webrtc::H264::FindNaluIndices(encoded_frame._buffer,
+ encoded_frame._length);
+
+ size_t maxLength = 0;
brandtr 2017/09/26 09:19:13 We typically use snake_case for naming local varia
ssilkin 2017/09/26 11:07:04 Done.
+ for (const webrtc::H264::NaluIndex& index : nalu_indices)
+ maxLength = std::max(maxLength, index.payload_size);
+
+ return rtc::Optional<size_t>(maxLength);
+}
+
int GetElapsedTimeMicroseconds(int64_t start_ns, int64_t stop_ns) {
int64_t diff_us = (stop_ns - start_ns) / rtc::kNumNanosecsPerMicrosec;
RTC_DCHECK_GE(diff_us, std::numeric_limits<int>::min());
@@ -351,6 +368,8 @@ void VideoProcessor::FrameEncoded(webrtc::VideoCodecType codec,
encoded_image._length / config_.networking_config.packet_size_in_bytes +
1;
+ frame_stat->max_nalu_length = GetMaxNaluLength(encoded_image, config_);
+
// Simulate packet loss.
bool exclude_this_frame = false;
if (encoded_image._frameType == kVideoFrameKey) {

Powered by Google App Engine
This is Rietveld 408576698