mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-20 00:57:49 +01:00
Inline one-line RtpPacket getters
inlining these accessors both reduce binary size and, likely, slightly improve performance. Bug: None Change-Id: I4d1f3285afb044946b9611ad36d5d093299c19a9 Reviewed-on: https://webrtc-review.googlesource.com/94146 Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Reviewed-by: Niels Moller <nisse@webrtc.org> Cr-Commit-Position: refs/heads/master@{#24286}
This commit is contained in:
parent
20317f9ca4
commit
7d2df3f848
2 changed files with 23 additions and 95 deletions
|
@ -107,32 +107,6 @@ bool RtpPacket::Parse(rtc::CopyOnWriteBuffer buffer) {
|
|||
return true;
|
||||
}
|
||||
|
||||
bool RtpPacket::Marker() const {
|
||||
RTC_DCHECK_EQ(marker_, (data()[1] & 0x80) != 0);
|
||||
return marker_;
|
||||
}
|
||||
|
||||
uint8_t RtpPacket::PayloadType() const {
|
||||
RTC_DCHECK_EQ(payload_type_, data()[1] & 0x7f);
|
||||
return payload_type_;
|
||||
}
|
||||
|
||||
uint16_t RtpPacket::SequenceNumber() const {
|
||||
RTC_DCHECK_EQ(sequence_number_,
|
||||
ByteReader<uint16_t>::ReadBigEndian(data() + 2));
|
||||
return sequence_number_;
|
||||
}
|
||||
|
||||
uint32_t RtpPacket::Timestamp() const {
|
||||
RTC_DCHECK_EQ(timestamp_, ByteReader<uint32_t>::ReadBigEndian(data() + 4));
|
||||
return timestamp_;
|
||||
}
|
||||
|
||||
uint32_t RtpPacket::Ssrc() const {
|
||||
RTC_DCHECK_EQ(ssrc_, ByteReader<uint32_t>::ReadBigEndian(data() + 8));
|
||||
return ssrc_;
|
||||
}
|
||||
|
||||
std::vector<uint32_t> RtpPacket::Csrcs() const {
|
||||
size_t num_csrc = data()[0] & 0x0F;
|
||||
RTC_DCHECK_GE(capacity(), kFixedHeaderSize + num_csrc * 4);
|
||||
|
@ -144,48 +118,6 @@ std::vector<uint32_t> RtpPacket::Csrcs() const {
|
|||
return csrcs;
|
||||
}
|
||||
|
||||
size_t RtpPacket::headers_size() const {
|
||||
return payload_offset_;
|
||||
}
|
||||
|
||||
size_t RtpPacket::payload_size() const {
|
||||
return payload_size_;
|
||||
}
|
||||
|
||||
size_t RtpPacket::padding_size() const {
|
||||
return padding_size_;
|
||||
}
|
||||
|
||||
rtc::ArrayView<const uint8_t> RtpPacket::payload() const {
|
||||
return rtc::MakeArrayView(data() + payload_offset_, payload_size_);
|
||||
}
|
||||
|
||||
rtc::CopyOnWriteBuffer RtpPacket::Buffer() const {
|
||||
return buffer_;
|
||||
}
|
||||
|
||||
size_t RtpPacket::capacity() const {
|
||||
return buffer_.capacity();
|
||||
}
|
||||
|
||||
size_t RtpPacket::size() const {
|
||||
size_t ret = payload_offset_ + payload_size_ + padding_size_;
|
||||
RTC_DCHECK_EQ(buffer_.size(), ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
const uint8_t* RtpPacket::data() const {
|
||||
return buffer_.cdata();
|
||||
}
|
||||
|
||||
size_t RtpPacket::FreeCapacity() const {
|
||||
return capacity() - size();
|
||||
}
|
||||
|
||||
size_t RtpPacket::MaxPayloadSize() const {
|
||||
return capacity() - payload_offset_;
|
||||
}
|
||||
|
||||
void RtpPacket::CopyHeaderFrom(const RtpPacket& packet) {
|
||||
RTC_DCHECK_GE(capacity(), packet.headers_size());
|
||||
|
||||
|
@ -235,7 +167,7 @@ void RtpPacket::SetSsrc(uint32_t ssrc) {
|
|||
ByteWriter<uint32_t>::WriteBigEndian(WriteAt(8), ssrc);
|
||||
}
|
||||
|
||||
void RtpPacket::SetCsrcs(const std::vector<uint32_t>& csrcs) {
|
||||
void RtpPacket::SetCsrcs(rtc::ArrayView<const uint32_t> csrcs) {
|
||||
RTC_DCHECK_EQ(extensions_size_, 0);
|
||||
RTC_DCHECK_EQ(payload_size_, 0);
|
||||
RTC_DCHECK_EQ(padding_size_, 0);
|
||||
|
@ -517,12 +449,4 @@ rtc::ArrayView<uint8_t> RtpPacket::AllocateExtension(ExtensionType type,
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
uint8_t* RtpPacket::WriteAt(size_t offset) {
|
||||
return buffer_.data() + offset;
|
||||
}
|
||||
|
||||
void RtpPacket::WriteAt(size_t offset, uint8_t byte) {
|
||||
buffer_.data()[offset] = byte;
|
||||
}
|
||||
|
||||
} // namespace webrtc
|
||||
|
|
|
@ -51,27 +51,31 @@ class RtpPacket {
|
|||
void IdentifyExtensions(const ExtensionManager& extensions);
|
||||
|
||||
// Header.
|
||||
bool Marker() const;
|
||||
uint8_t PayloadType() const;
|
||||
uint16_t SequenceNumber() const;
|
||||
uint32_t Timestamp() const;
|
||||
uint32_t Ssrc() const;
|
||||
bool Marker() const { return marker_; }
|
||||
uint8_t PayloadType() const { return payload_type_; }
|
||||
uint16_t SequenceNumber() const { return sequence_number_; }
|
||||
uint32_t Timestamp() const { return timestamp_; }
|
||||
uint32_t Ssrc() const { return ssrc_; }
|
||||
std::vector<uint32_t> Csrcs() const;
|
||||
|
||||
size_t headers_size() const;
|
||||
size_t headers_size() const { return payload_offset_; }
|
||||
|
||||
// Payload.
|
||||
size_t payload_size() const;
|
||||
size_t padding_size() const;
|
||||
rtc::ArrayView<const uint8_t> payload() const;
|
||||
size_t payload_size() const { return payload_size_; }
|
||||
size_t padding_size() const { return padding_size_; }
|
||||
rtc::ArrayView<const uint8_t> payload() const {
|
||||
return rtc::MakeArrayView(data() + payload_offset_, payload_size_);
|
||||
}
|
||||
|
||||
// Buffer.
|
||||
rtc::CopyOnWriteBuffer Buffer() const;
|
||||
size_t capacity() const;
|
||||
size_t size() const;
|
||||
const uint8_t* data() const;
|
||||
size_t FreeCapacity() const;
|
||||
size_t MaxPayloadSize() const;
|
||||
rtc::CopyOnWriteBuffer Buffer() const { return buffer_; }
|
||||
size_t capacity() const { return buffer_.capacity(); }
|
||||
size_t size() const {
|
||||
return payload_offset_ + payload_size_ + padding_size_;
|
||||
}
|
||||
const uint8_t* data() const { return buffer_.cdata(); }
|
||||
size_t FreeCapacity() const { return capacity() - size(); }
|
||||
size_t MaxPayloadSize() const { return capacity() - headers_size(); }
|
||||
|
||||
// Reset fields and buffer.
|
||||
void Clear();
|
||||
|
@ -87,7 +91,7 @@ class RtpPacket {
|
|||
// Writes csrc list. Assumes:
|
||||
// a) There is enough room left in buffer.
|
||||
// b) Extension headers, payload or padding data has not already been added.
|
||||
void SetCsrcs(const std::vector<uint32_t>& csrcs);
|
||||
void SetCsrcs(rtc::ArrayView<const uint32_t> csrcs);
|
||||
|
||||
// Header extensions.
|
||||
template <typename Extension>
|
||||
|
@ -131,8 +135,8 @@ class RtpPacket {
|
|||
// to write raw extension to or an empty view on failure.
|
||||
rtc::ArrayView<uint8_t> AllocateExtension(ExtensionType type, size_t length);
|
||||
|
||||
uint8_t* WriteAt(size_t offset);
|
||||
void WriteAt(size_t offset, uint8_t byte);
|
||||
uint8_t* WriteAt(size_t offset) { return buffer_.data() + offset; }
|
||||
void WriteAt(size_t offset, uint8_t byte) { buffer_.data()[offset] = byte; }
|
||||
|
||||
// Header.
|
||||
bool marker_;
|
||||
|
|
Loading…
Reference in a new issue