#include "rtp_feedback.h" #include "byte_io.h" // RFC 4585, Section 6.1: Feedback format. // // Common packet format: // // 0 1 2 3 // 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // |V=2|P| FMT | PT | length | // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // 0 | SSRC of packet sender | // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // 4 | SSRC of media source | // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // : Feedback Control Information (FCI) : // : : void RtpFeedback::ParseCommonFeedback(const uint8_t* payload) { SetSenderSsrc(ByteReader::ReadBigEndian(&payload[0])); SetMediaSsrc(ByteReader::ReadBigEndian(&payload[4])); } void RtpFeedback::CreateCommonFeedback(uint8_t* payload) const { ByteWriter::WriteBigEndian(&payload[0], sender_ssrc()); ByteWriter::WriteBigEndian(&payload[4], media_ssrc()); }