chromium/third_party/openscreen/src/cast/streaming/impl/compound_rtcp_parser.cc

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "cast/streaming/impl/compound_rtcp_parser.h"

#include <algorithm>
#include <utility>

#include "cast/streaming/impl/packet_util.h"
#include "cast/streaming/impl/rtcp_session.h"
#include "util/chrono_helpers.h"
#include "util/osp_logging.h"
#include "util/std_util.h"

namespace openscreen::cast {

namespace {

// Use the Clock's minimum time value (an impossible value, waaaaay before epoch
// time) to represent unset time_point values.
constexpr auto kNullTimePoint =;

constexpr uint32_t kCastName =;

// Some receivers send time sync requests (that we ignore).
constexpr uint32_t kTimeSyncRequestName =;

// Canonicalizes the just-parsed list of packet-specific NACKs so that the
// CompoundRtcpParser::Client can make several simplifying assumptions when
// processing the results.
void CanonicalizePacketNackVector(std::vector<PacketNack>* packets) {}

// TODO(issuetracker.google.com/298085631): implement the serialization of
// StatisticsEventType to wire type as part of implementing receiver side event
// generation.
// NOTE: the legacy mappings, like AudioAckSent below, may still be in use
// on some legacy receivers.
StatisticsEventType ToEventTypeFromWire(uint8_t wire_event) {}

}  // namespace

CompoundRtcpParser::CompoundRtcpParser(RtcpSession& session,
                                       CompoundRtcpParser::Client& client)
    :{}

CompoundRtcpParser::~CompoundRtcpParser() = default;

bool CompoundRtcpParser::Parse(ByteView buffer, FrameId max_feedback_frame_id) {}

bool CompoundRtcpParser::ParseReceiverReport(
    ByteView in,
    int num_report_blocks,
    std::optional<RtcpReportBlock>& receiver_report) {}

bool CompoundRtcpParser::ParseApplicationDefined(
    RtcpSubtype subtype,
    ByteView in,
    std::vector<RtcpReceiverFrameLogMessage>& messages) {}

bool CompoundRtcpParser::ParseFrameLogMessages(
    ByteView in,
    std::vector<RtcpReceiverFrameLogMessage>& messages) {}

bool CompoundRtcpParser::ParseFeedback(ByteView in,
                                       FrameId max_feedback_frame_id,
                                       FrameId* checkpoint_frame_id,
                                       milliseconds* target_playout_delay,
                                       std::vector<FrameId>* received_frames,
                                       std::vector<PacketNack>& packet_nacks) {}

bool CompoundRtcpParser::ParseExtendedReports(
    ByteView in,
    Clock::time_point& receiver_reference_time) {}

bool CompoundRtcpParser::ParsePictureLossIndicator(
    ByteView in,
    bool& picture_loss_indicator) {}

CompoundRtcpParser::Client::Client() = default;
CompoundRtcpParser::Client::~Client() = default;
void CompoundRtcpParser::Client::OnReceiverReferenceTimeAdvanced(
    Clock::time_point reference_time) {}
void CompoundRtcpParser::Client::OnReceiverReport(
    const RtcpReportBlock& receiver_report) {}
void CompoundRtcpParser::Client::OnCastReceiverFrameLogMessages(
    std::vector<RtcpReceiverFrameLogMessage> messages) {}
void CompoundRtcpParser::Client::OnReceiverIndicatesPictureLoss() {}
void CompoundRtcpParser::Client::OnReceiverCheckpoint(
    FrameId frame_id,
    milliseconds playout_delay) {}
void CompoundRtcpParser::Client::OnReceiverHasFrames(
    std::vector<FrameId> acks) {}
void CompoundRtcpParser::Client::OnReceiverIsMissingPackets(
    std::vector<PacketNack> nacks) {}

}  // namespace openscreen::cast