#pragma once #include #include #include #include namespace sc { // Minimal RTP header (RFC 3550) without extensions. struct RtpHeader { uint8_t version = 2; bool padding = false; bool extension = false; uint8_t csrc_count = 0; bool marker = false; uint8_t payload_type = 96; // dynamic uint16_t sequence_number = 0; uint32_t timestamp = 0; uint32_t ssrc = 0; bool serialize(std::span out) const noexcept; static std::optional parse(std::span in) noexcept; }; struct RtpPacket { RtpHeader header; std::vector payload; std::vector serialize() const; static std::optional parse(std::span in) noexcept; }; } // namespace sc