#ifndef MODULES_RTP_RTCP_SOURCE_RTP_PACKET_H_
#define MODULES_RTP_RTCP_SOURCE_RTP_PACKET_H_
#include <string>
#include <utility>
#include <vector>
#include "absl/types/optional.h"
#include "api/array_view.h"
#include "modules/rtp_rtcp/include/rtp_header_extension_map.h"
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
#include "rtc_base/copy_on_write_buffer.h"
namespace webrtc {
class RtpPacket { … };
template <typename Extension>
bool RtpPacket::HasExtension() const { … }
template <typename Extension>
bool RtpPacket::IsRegistered() const { … }
template <typename Extension, typename FirstValue, typename... Values>
bool RtpPacket::GetExtension(FirstValue&& first, Values&&... values) const { … }
template <typename Extension>
absl::optional<typename Extension::value_type> RtpPacket::GetExtension() const { … }
template <typename Extension>
rtc::ArrayView<const uint8_t> RtpPacket::GetRawExtension() const { … }
template <typename Extension, typename... Values>
bool RtpPacket::SetExtension(const Values&... values) { … }
template <typename Extension>
bool RtpPacket::SetRawExtension(rtc::ArrayView<const uint8_t> data) { … }
template <typename Extension>
bool RtpPacket::ReserveExtension() { … }
}
#endif