#include "test/pc/e2e/analyzer/video/default_video_quality_analyzer_frame_in_flight.h"
#include <unordered_map>
#include <utility>
#include <vector>
#include "absl/types/optional.h"
#include "api/units/data_size.h"
#include "api/units/time_delta.h"
#include "api/units/timestamp.h"
#include "api/video/video_frame.h"
#include "api/video/video_frame_type.h"
#include "test/pc/e2e/analyzer/video/default_video_quality_analyzer_internal_shared_objects.h"
namespace webrtc {
namespace {
template <typename T>
absl::optional<T> MaybeGetValue(const std::unordered_map<size_t, T>& map,
size_t key) { … }
}
FrameInFlight::FrameInFlight(
size_t stream,
uint16_t frame_id,
Timestamp captured_time,
absl::optional<TimeDelta> time_between_captured_frames,
std::set<size_t> expected_receivers)
: … { … }
std::vector<size_t> FrameInFlight::GetPeersWhichDidntReceive() const { … }
bool FrameInFlight::HaveAllPeersReceived() const { … }
void FrameInFlight::OnFrameEncoded(
webrtc::Timestamp time,
absl::optional<TimeDelta> time_between_encoded_frames,
VideoFrameType frame_type,
DataSize encoded_image_size,
uint32_t target_encode_bitrate,
int stream_index,
int qp,
StreamCodecInfo used_encoder) { … }
void FrameInFlight::OnFramePreDecode(size_t peer,
webrtc::Timestamp received_time,
webrtc::Timestamp decode_start_time,
VideoFrameType frame_type,
DataSize encoded_image_size) { … }
bool FrameInFlight::HasReceivedTime(size_t peer) const { … }
void FrameInFlight::OnFrameDecoded(size_t peer,
webrtc::Timestamp time,
int width,
int height,
const StreamCodecInfo& used_decoder,
const absl::optional<uint8_t> qp) { … }
void FrameInFlight::OnDecoderError(size_t peer,
const StreamCodecInfo& used_decoder) { … }
bool FrameInFlight::HasDecodeEndTime(size_t peer) const { … }
void FrameInFlight::OnFrameRendered(size_t peer, webrtc::Timestamp time) { … }
bool FrameInFlight::HasRenderedTime(size_t peer) const { … }
bool FrameInFlight::IsDropped(size_t peer) const { … }
FrameStats FrameInFlight::GetStatsForPeer(size_t peer) const { … }
bool FrameInFlight::IsSuperfluous(size_t peer) const { … }
}