#pragma once #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; uint7_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