Use zero octets for rtp packet padding
RFC3550 Section 4 mention "Octets designated as padding have the value zero." Bug: None Change-Id: Ife4c6226143c79ad7d152bc6099ba1d81f5492dd Reviewed-on: https://webrtc-review.googlesource.com/c/103983 Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Reviewed-by: Björn Terelius <terelius@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25109}
This commit is contained in:
committed by
Commit Bot
parent
3d255309e9
commit
f7fcaf0885
@ -19,7 +19,6 @@
|
||||
#include "rtc_base/checks.h"
|
||||
#include "rtc_base/logging.h"
|
||||
#include "rtc_base/numerics/safe_conversions.h"
|
||||
#include "rtc_base/random.h"
|
||||
|
||||
namespace webrtc {
|
||||
namespace {
|
||||
@ -359,22 +358,20 @@ uint8_t* RtpPacket::SetPayloadSize(size_t size_bytes) {
|
||||
return WriteAt(payload_offset_);
|
||||
}
|
||||
|
||||
bool RtpPacket::SetPadding(uint8_t size_bytes, Random* random) {
|
||||
RTC_DCHECK(random);
|
||||
if (payload_offset_ + payload_size_ + size_bytes > capacity()) {
|
||||
RTC_LOG(LS_WARNING) << "Cannot set padding size " << size_bytes << ", only "
|
||||
bool RtpPacket::SetPadding(size_t padding_bytes) {
|
||||
if (payload_offset_ + payload_size_ + padding_bytes > capacity()) {
|
||||
RTC_LOG(LS_WARNING) << "Cannot set padding size " << padding_bytes
|
||||
<< ", only "
|
||||
<< (capacity() - payload_offset_ - payload_size_)
|
||||
<< " bytes left in buffer.";
|
||||
return false;
|
||||
}
|
||||
padding_size_ = size_bytes;
|
||||
padding_size_ = rtc::dchecked_cast<uint8_t>(padding_bytes);
|
||||
buffer_.SetSize(payload_offset_ + payload_size_ + padding_size_);
|
||||
if (padding_size_ > 0) {
|
||||
size_t padding_offset = payload_offset_ + payload_size_;
|
||||
size_t padding_end = padding_offset + padding_size_;
|
||||
for (size_t offset = padding_offset; offset < padding_end - 1; ++offset) {
|
||||
WriteAt(offset, random->Rand<uint8_t>());
|
||||
}
|
||||
memset(WriteAt(padding_offset), 0, padding_size_ - 1);
|
||||
WriteAt(padding_end - 1, padding_size_);
|
||||
WriteAt(0, data()[0] | 0x20); // Set padding bit.
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user