#include "test/pc/e2e/analyzer/video/analyzing_video_sink.h"
#include <memory>
#include <set>
#include <utility>
#include "absl/memory/memory.h"
#include "absl/strings/string_view.h"
#include "absl/types/optional.h"
#include "api/test/metrics/metric.h"
#include "api/test/metrics/metrics_logger.h"
#include "api/test/pclf/media_configuration.h"
#include "api/test/video/video_frame_writer.h"
#include "api/units/timestamp.h"
#include "api/video/i420_buffer.h"
#include "api/video/video_frame.h"
#include "rtc_base/checks.h"
#include "rtc_base/logging.h"
#include "rtc_base/synchronization/mutex.h"
#include "test/pc/e2e/analyzer/video/simulcast_dummy_buffer_helper.h"
#include "test/pc/e2e/analyzer/video/video_dumping.h"
#include "test/pc/e2e/metric_metadata_keys.h"
#include "test/testsupport/fixed_fps_video_frame_writer_adapter.h"
#include "test/video_renderer.h"
namespace webrtc {
namespace webrtc_pc_e2e {
AnalyzingVideoSink::AnalyzingVideoSink(absl::string_view peer_name,
Clock* clock,
VideoQualityAnalyzerInterface& analyzer,
AnalyzingVideoSinksHelper& sinks_helper,
const VideoSubscription& subscription,
bool report_infra_stats)
: … { … }
void AnalyzingVideoSink::UpdateSubscription(
const VideoSubscription& subscription) { … }
void AnalyzingVideoSink::OnFrame(const VideoFrame& frame) { … }
void AnalyzingVideoSink::LogMetrics(webrtc::test::MetricsLogger& metrics_logger,
absl::string_view test_case_name) const { … }
AnalyzingVideoSink::Stats AnalyzingVideoSink::stats() const { … }
VideoFrame AnalyzingVideoSink::ScaleVideoFrame(
const VideoFrame& frame,
const VideoResolution& required_resolution) { … }
void AnalyzingVideoSink::AnalyzeFrame(const VideoFrame& frame) { … }
AnalyzingVideoSink::SinksDescriptor* AnalyzingVideoSink::PopulateSinks(
absl::string_view stream_label) { … }
}
}