blob: e12be8a003fab0e9bb99a7737786caf3aebbe1a1 [file] [log] [blame]
/*
* Copyright 2019 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include "test/scenario/performance_stats.h"
#include <algorithm>
namespace webrtc {
namespace test {
void VideoFramesStats::AddFrameInfo(const VideoFrameBuffer& frame,
Timestamp at_time) {
++count;
RTC_DCHECK(at_time.IsFinite());
pixels.AddSample(frame.width() * frame.height());
resolution.AddSample(std::max(frame.width(), frame.height()));
frames.AddEvent(at_time);
}
void VideoFramesStats::AddStats(const VideoFramesStats& other) {
count += other.count;
pixels.AddSamples(other.pixels);
resolution.AddSamples(other.resolution);
frames.AddEvents(other.frames);
}
void VideoQualityStats::AddStats(const VideoQualityStats& other) {
capture.AddStats(other.capture);
render.AddStats(other.render);
lost_count += other.lost_count;
freeze_count += other.freeze_count;
capture_to_decoded_delay.AddSamples(other.capture_to_decoded_delay);
end_to_end_delay.AddSamples(other.end_to_end_delay);
psnr.AddSamples(other.psnr);
psnr_with_freeze.AddSamples(other.psnr_with_freeze);
skipped_between_rendered.AddSamples(other.skipped_between_rendered);
freeze_duration.AddSamples(other.freeze_duration);
time_between_freezes.AddSamples(other.time_between_freezes);
}
} // namespace test
} // namespace webrtc