Add RtpPacket::GetRawExtension function

to extract byte representation of a built extension without rebuilding it.

Bug: webrtc:9361
Change-Id: I5e2a5caeb8ff28dcb58dc25d53407c449c86df44
Reviewed-on: https://webrtc-review.googlesource.com/102940
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24925}
This commit is contained in:
Danil Chapovalov
2018-10-01 16:12:28 +02:00
committed by Commit Bot
parent 73d117f64e
commit e19953bdcb
2 changed files with 43 additions and 0 deletions

View File

@ -97,6 +97,10 @@ class RtpPacket {
template <typename Extension, typename... Values>
bool GetExtension(Values...) const;
// Returns view of the raw extension or empty view on failure.
template <typename Extension>
rtc::ArrayView<const uint8_t> GetRawExtension() const;
template <typename Extension, typename... Values>
bool SetExtension(Values...);
@ -175,6 +179,11 @@ bool RtpPacket::GetExtension(Values... values) const {
return Extension::Parse(raw, values...);
}
template <typename Extension>
rtc::ArrayView<const uint8_t> RtpPacket::GetRawExtension() const {
return FindExtension(Extension::kId);
}
template <typename Extension, typename... Values>
bool RtpPacket::SetExtension(Values... values) {
const size_t value_size = Extension::ValueSize(values...);