chromium/third_party/openscreen/src/cast/streaming/impl/rtp_packet_parser.h

// 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.

#ifndef CAST_STREAMING_IMPL_RTP_PACKET_PARSER_H_
#define CAST_STREAMING_IMPL_RTP_PACKET_PARSER_H_

#include <chrono>
#include <optional>

#include "cast/streaming/public/frame_id.h"
#include "cast/streaming/impl/rtp_defines.h"
#include "cast/streaming/rtp_time.h"
#include "cast/streaming/ssrc.h"
#include "platform/base/span.h"

namespace openscreen::cast {

// Parses RTP packets for all frames in the same Cast RTP stream. One
// RtpPacketParser instance should be used for all RTP packets having the same
// SSRC.
//
// Note that the parser is not stateless: One of its responsibilities is to
// bit-expand values that exist in a truncated form within the packets. It
// tracks the progression of those values in a live system to re-constitute such
// values.
class RtpPacketParser {};

}  // namespace openscreen::cast

#endif  // CAST_STREAMING_IMPL_RTP_PACKET_PARSER_H_