#include "cast/streaming/public/receiver.h"
#include <algorithm>
#include <utility>
#include "cast/streaming/impl/receiver_packet_router.h"
#include "cast/streaming/impl/session_config.h"
#include "cast/streaming/public/constants.h"
#include "platform/base/span.h"
#include "platform/base/trivial_clock_traits.h"
#include "util/chrono_helpers.h"
#include "util/osp_logging.h"
#include "util/std_util.h"
#include "util/trace_logging.h"
namespace openscreen::cast {
operator<<;
#define RECEIVER_LOG(level) …
#define RECEIVER_VLOG …
Receiver::Receiver(Environment& environment,
ReceiverPacketRouter& packet_router,
SessionConfig config)
: … { … }
Receiver::~Receiver() { … }
const SessionConfig& Receiver::config() const { … }
int Receiver::rtp_timebase() const { … }
Ssrc Receiver::ssrc() const { … }
void Receiver::SetConsumer(Consumer* consumer) { … }
void Receiver::SetPlayerProcessingTime(Clock::duration needed_time) { … }
void Receiver::RequestKeyFrame() { … }
int Receiver::AdvanceToNextFrame() { … }
EncodedFrame Receiver::ConsumeNextFrame(ByteBuffer buffer) { … }
void Receiver::OnReceivedRtpPacket(Clock::time_point arrival_time,
std::vector<uint8_t> packet) { … }
void Receiver::OnReceivedRtcpPacket(Clock::time_point arrival_time,
std::vector<uint8_t> packet) { … }
void Receiver::SendRtcp() { … }
const Receiver::PendingFrame& Receiver::GetQueueEntry(FrameId frame_id) const { … }
Receiver::PendingFrame& Receiver::GetQueueEntry(FrameId frame_id) { … }
void Receiver::RecordNewTargetPlayoutDelay(FrameId as_of_frame,
milliseconds delay) { … }
milliseconds Receiver::ResolveTargetPlayoutDelay(FrameId frame_id) const { … }
void Receiver::AdvanceCheckpoint(FrameId new_checkpoint) { … }
void Receiver::DropAllFramesBefore(FrameId first_kept_frame) { … }
void Receiver::ScheduleFrameReadyCheck(Clock::time_point when) { … }
Receiver::PendingFrame::PendingFrame() = default;
Receiver::PendingFrame::~PendingFrame() = default;
void Receiver::PendingFrame::Reset() { … }
constexpr milliseconds Receiver::kDefaultPlayerProcessingTime;
constexpr int Receiver::kNoFramesReady;
constexpr milliseconds Receiver::kNackFeedbackInterval;
}