[rtp_rtcp] Lint errors cleaned from rtp_utility
R=åsapersson BUG=webrtc:5277 Review URL: https://codereview.webrtc.org/1539423003 Cr-Commit-Position: refs/heads/master@{#11131}
This commit is contained in:
@ -1,7 +1,5 @@
|
||||
#tmmbr_help is refactored in CL#1474693002
|
||||
exclude_files=tmmbr_help.*
|
||||
#rtp_utility is refactored in CL#1481773004
|
||||
exclude_files=rtp_utility.*
|
||||
#rtcp_utility planned to be removed when webrtc:5260 will be finished.
|
||||
exclude_files=rtcp_utility.*
|
||||
#rtcp_receiver/rtcp_receiver_help will be refactored more deeply as part of webrtc:5260
|
||||
|
@ -58,7 +58,7 @@ bool RtpHeaderParserImpl::Parse(const uint8_t* packet,
|
||||
rtp_header_extension_map_.GetCopy(&map);
|
||||
}
|
||||
|
||||
const bool valid_rtpheader = rtp_parser.Parse(*header, &map);
|
||||
const bool valid_rtpheader = rtp_parser.Parse(header, &map);
|
||||
if (!valid_rtpheader) {
|
||||
return false;
|
||||
}
|
||||
|
@ -579,7 +579,7 @@ size_t RTPSender::TrySendRedundantPayloads(size_t bytes_to_send) {
|
||||
break;
|
||||
RtpUtility::RtpHeaderParser rtp_parser(buffer, length);
|
||||
RTPHeader rtp_header;
|
||||
rtp_parser.Parse(rtp_header);
|
||||
rtp_parser.Parse(&rtp_header);
|
||||
bytes_left -= static_cast<int>(length - rtp_header.headerLength);
|
||||
}
|
||||
return bytes_to_send - bytes_left;
|
||||
@ -589,8 +589,7 @@ void RTPSender::BuildPaddingPacket(uint8_t* packet,
|
||||
size_t header_length,
|
||||
size_t padding_length) {
|
||||
packet[0] |= 0x20; // Set padding bit.
|
||||
int32_t *data =
|
||||
reinterpret_cast<int32_t *>(&(packet[header_length]));
|
||||
int32_t* data = reinterpret_cast<int32_t*>(&(packet[header_length]));
|
||||
|
||||
// Fill data buffer with random data.
|
||||
for (size_t j = 0; j < (padding_length >> 2); ++j) {
|
||||
@ -671,7 +670,7 @@ size_t RTPSender::SendPadData(size_t bytes,
|
||||
|
||||
RtpUtility::RtpHeaderParser rtp_parser(padding_packet, length);
|
||||
RTPHeader rtp_header;
|
||||
rtp_parser.Parse(rtp_header);
|
||||
rtp_parser.Parse(&rtp_header);
|
||||
|
||||
if (capture_time_ms > 0) {
|
||||
UpdateTransmissionTimeOffset(
|
||||
@ -723,7 +722,7 @@ int32_t RTPSender::ReSendPacket(uint16_t packet_id, int64_t min_resend_time) {
|
||||
if (paced_sender_) {
|
||||
RtpUtility::RtpHeaderParser rtp_parser(data_buffer, length);
|
||||
RTPHeader header;
|
||||
if (!rtp_parser.Parse(header)) {
|
||||
if (!rtp_parser.Parse(&header)) {
|
||||
assert(false);
|
||||
return -1;
|
||||
}
|
||||
@ -913,7 +912,7 @@ bool RTPSender::PrepareAndSendPacket(uint8_t* buffer,
|
||||
|
||||
RtpUtility::RtpHeaderParser rtp_parser(buffer, length);
|
||||
RTPHeader rtp_header;
|
||||
rtp_parser.Parse(rtp_header);
|
||||
rtp_parser.Parse(&rtp_header);
|
||||
if (!is_retransmit && rtp_header.markerBit) {
|
||||
TRACE_EVENT_ASYNC_END0(TRACE_DISABLED_BY_DEFAULT("webrtc_rtp"), "PacedSend",
|
||||
capture_time_ms);
|
||||
@ -1032,7 +1031,7 @@ int32_t RTPSender::SendToNetwork(uint8_t* buffer,
|
||||
RtpUtility::RtpHeaderParser rtp_parser(buffer,
|
||||
payload_length + rtp_header_length);
|
||||
RTPHeader rtp_header;
|
||||
rtp_parser.Parse(rtp_header);
|
||||
rtp_parser.Parse(&rtp_header);
|
||||
|
||||
int64_t now_ms = clock_->TimeInMilliseconds();
|
||||
|
||||
@ -1827,7 +1826,7 @@ void RTPSender::BuildRtxPacket(uint8_t* buffer, size_t* length,
|
||||
reinterpret_cast<const uint8_t*>(buffer), *length);
|
||||
|
||||
RTPHeader rtp_header;
|
||||
rtp_parser.Parse(rtp_header);
|
||||
rtp_parser.Parse(&rtp_header);
|
||||
|
||||
// Add original RTP header.
|
||||
memcpy(data_buffer_rtx, buffer, rtp_header.headerLength);
|
||||
|
@ -350,7 +350,7 @@ int32_t RTPSenderAudio::SendAudio(FrameType frameType,
|
||||
size_t packetSize = payloadSize + rtpHeaderLength;
|
||||
RtpUtility::RtpHeaderParser rtp_parser(dataBuffer, packetSize);
|
||||
RTPHeader rtp_header;
|
||||
rtp_parser.Parse(rtp_header);
|
||||
rtp_parser.Parse(&rtp_header);
|
||||
_rtpSender->UpdateAudioLevel(dataBuffer, packetSize, rtp_header,
|
||||
(frameType == kAudioFrameSpeech),
|
||||
audio_level_dbov);
|
||||
|
@ -208,7 +208,7 @@ class RtpSenderVideoTest : public RtpSenderTest {
|
||||
} else {
|
||||
ASSERT_EQ(kRtpHeaderSize, length);
|
||||
}
|
||||
ASSERT_TRUE(rtp_parser.Parse(rtp_header, map));
|
||||
ASSERT_TRUE(rtp_parser.Parse(&rtp_header, map));
|
||||
ASSERT_FALSE(rtp_parser.RTCP());
|
||||
EXPECT_EQ(payload_, rtp_header.payloadType);
|
||||
EXPECT_EQ(seq_num, rtp_header.sequenceNumber);
|
||||
@ -335,7 +335,7 @@ TEST_F(RtpSenderTestWithoutPacer, BuildRTPPacket) {
|
||||
webrtc::RtpUtility::RtpHeaderParser rtp_parser(packet_, length);
|
||||
webrtc::RTPHeader rtp_header;
|
||||
|
||||
const bool valid_rtp_header = rtp_parser.Parse(rtp_header, nullptr);
|
||||
const bool valid_rtp_header = rtp_parser.Parse(&rtp_header, nullptr);
|
||||
|
||||
ASSERT_TRUE(valid_rtp_header);
|
||||
ASSERT_FALSE(rtp_parser.RTCP());
|
||||
@ -370,7 +370,7 @@ TEST_F(RtpSenderTestWithoutPacer,
|
||||
RtpHeaderExtensionMap map;
|
||||
map.Register(kRtpExtensionTransmissionTimeOffset,
|
||||
kTransmissionTimeOffsetExtensionId);
|
||||
const bool valid_rtp_header = rtp_parser.Parse(rtp_header, &map);
|
||||
const bool valid_rtp_header = rtp_parser.Parse(&rtp_header, &map);
|
||||
|
||||
ASSERT_TRUE(valid_rtp_header);
|
||||
ASSERT_FALSE(rtp_parser.RTCP());
|
||||
@ -381,7 +381,7 @@ TEST_F(RtpSenderTestWithoutPacer,
|
||||
|
||||
// Parse without map extension
|
||||
webrtc::RTPHeader rtp_header2;
|
||||
const bool valid_rtp_header2 = rtp_parser.Parse(rtp_header2, nullptr);
|
||||
const bool valid_rtp_header2 = rtp_parser.Parse(&rtp_header2, nullptr);
|
||||
|
||||
ASSERT_TRUE(valid_rtp_header2);
|
||||
VerifyRTPHeaderCommon(rtp_header2);
|
||||
@ -410,7 +410,7 @@ TEST_F(RtpSenderTestWithoutPacer,
|
||||
RtpHeaderExtensionMap map;
|
||||
map.Register(kRtpExtensionTransmissionTimeOffset,
|
||||
kTransmissionTimeOffsetExtensionId);
|
||||
const bool valid_rtp_header = rtp_parser.Parse(rtp_header, &map);
|
||||
const bool valid_rtp_header = rtp_parser.Parse(&rtp_header, &map);
|
||||
|
||||
ASSERT_TRUE(valid_rtp_header);
|
||||
ASSERT_FALSE(rtp_parser.RTCP());
|
||||
@ -437,7 +437,7 @@ TEST_F(RtpSenderTestWithoutPacer, BuildRTPPacketWithAbsoluteSendTimeExtension) {
|
||||
|
||||
RtpHeaderExtensionMap map;
|
||||
map.Register(kRtpExtensionAbsoluteSendTime, kAbsoluteSendTimeExtensionId);
|
||||
const bool valid_rtp_header = rtp_parser.Parse(rtp_header, &map);
|
||||
const bool valid_rtp_header = rtp_parser.Parse(&rtp_header, &map);
|
||||
|
||||
ASSERT_TRUE(valid_rtp_header);
|
||||
ASSERT_FALSE(rtp_parser.RTCP());
|
||||
@ -448,7 +448,7 @@ TEST_F(RtpSenderTestWithoutPacer, BuildRTPPacketWithAbsoluteSendTimeExtension) {
|
||||
|
||||
// Parse without map extension
|
||||
webrtc::RTPHeader rtp_header2;
|
||||
const bool valid_rtp_header2 = rtp_parser.Parse(rtp_header2, nullptr);
|
||||
const bool valid_rtp_header2 = rtp_parser.Parse(&rtp_header2, nullptr);
|
||||
|
||||
ASSERT_TRUE(valid_rtp_header2);
|
||||
VerifyRTPHeaderCommon(rtp_header2);
|
||||
@ -476,7 +476,7 @@ TEST_F(RtpSenderTestWithoutPacer, BuildRTPPacketWithVideoRotation_MarkerBit) {
|
||||
webrtc::RtpUtility::RtpHeaderParser rtp_parser(packet_, length);
|
||||
webrtc::RTPHeader rtp_header;
|
||||
|
||||
ASSERT_TRUE(rtp_parser.Parse(rtp_header, &map));
|
||||
ASSERT_TRUE(rtp_parser.Parse(&rtp_header, &map));
|
||||
ASSERT_FALSE(rtp_parser.RTCP());
|
||||
VerifyRTPHeaderCommon(rtp_header);
|
||||
EXPECT_EQ(length, rtp_header.headerLength);
|
||||
@ -504,7 +504,7 @@ TEST_F(RtpSenderTestWithoutPacer,
|
||||
webrtc::RtpUtility::RtpHeaderParser rtp_parser(packet_, length);
|
||||
webrtc::RTPHeader rtp_header;
|
||||
|
||||
ASSERT_TRUE(rtp_parser.Parse(rtp_header, &map));
|
||||
ASSERT_TRUE(rtp_parser.Parse(&rtp_header, &map));
|
||||
ASSERT_FALSE(rtp_parser.RTCP());
|
||||
VerifyRTPHeaderCommon(rtp_header, false);
|
||||
EXPECT_EQ(length, rtp_header.headerLength);
|
||||
@ -525,12 +525,12 @@ TEST_F(RtpSenderTestWithoutPacer, BuildRTPPacketWithAudioLevelExtension) {
|
||||
webrtc::RTPHeader rtp_header;
|
||||
|
||||
// Updating audio level is done in RTPSenderAudio, so simulate it here.
|
||||
rtp_parser.Parse(rtp_header);
|
||||
rtp_parser.Parse(&rtp_header);
|
||||
rtp_sender_->UpdateAudioLevel(packet_, length, rtp_header, true, kAudioLevel);
|
||||
|
||||
RtpHeaderExtensionMap map;
|
||||
map.Register(kRtpExtensionAudioLevel, kAudioLevelExtensionId);
|
||||
const bool valid_rtp_header = rtp_parser.Parse(rtp_header, &map);
|
||||
const bool valid_rtp_header = rtp_parser.Parse(&rtp_header, &map);
|
||||
|
||||
ASSERT_TRUE(valid_rtp_header);
|
||||
ASSERT_FALSE(rtp_parser.RTCP());
|
||||
@ -542,7 +542,7 @@ TEST_F(RtpSenderTestWithoutPacer, BuildRTPPacketWithAudioLevelExtension) {
|
||||
|
||||
// Parse without map extension
|
||||
webrtc::RTPHeader rtp_header2;
|
||||
const bool valid_rtp_header2 = rtp_parser.Parse(rtp_header2, nullptr);
|
||||
const bool valid_rtp_header2 = rtp_parser.Parse(&rtp_header2, nullptr);
|
||||
|
||||
ASSERT_TRUE(valid_rtp_header2);
|
||||
VerifyRTPHeaderCommon(rtp_header2);
|
||||
@ -579,7 +579,7 @@ TEST_F(RtpSenderTestWithoutPacer, BuildRTPPacketWithHeaderExtensions) {
|
||||
webrtc::RTPHeader rtp_header;
|
||||
|
||||
// Updating audio level is done in RTPSenderAudio, so simulate it here.
|
||||
rtp_parser.Parse(rtp_header);
|
||||
rtp_parser.Parse(&rtp_header);
|
||||
rtp_sender_->UpdateAudioLevel(packet_, length, rtp_header, true, kAudioLevel);
|
||||
|
||||
RtpHeaderExtensionMap map;
|
||||
@ -589,7 +589,7 @@ TEST_F(RtpSenderTestWithoutPacer, BuildRTPPacketWithHeaderExtensions) {
|
||||
map.Register(kRtpExtensionAudioLevel, kAudioLevelExtensionId);
|
||||
map.Register(kRtpExtensionTransportSequenceNumber,
|
||||
kTransportSequenceNumberExtensionId);
|
||||
const bool valid_rtp_header = rtp_parser.Parse(rtp_header, &map);
|
||||
const bool valid_rtp_header = rtp_parser.Parse(&rtp_header, &map);
|
||||
|
||||
ASSERT_TRUE(valid_rtp_header);
|
||||
ASSERT_FALSE(rtp_parser.RTCP());
|
||||
@ -608,7 +608,7 @@ TEST_F(RtpSenderTestWithoutPacer, BuildRTPPacketWithHeaderExtensions) {
|
||||
|
||||
// Parse without map extension
|
||||
webrtc::RTPHeader rtp_header2;
|
||||
const bool valid_rtp_header2 = rtp_parser.Parse(rtp_header2, nullptr);
|
||||
const bool valid_rtp_header2 = rtp_parser.Parse(&rtp_header2, nullptr);
|
||||
|
||||
ASSERT_TRUE(valid_rtp_header2);
|
||||
VerifyRTPHeaderCommon(rtp_header2);
|
||||
@ -667,7 +667,7 @@ TEST_F(RtpSenderTest, TrafficSmoothingWithExtensions) {
|
||||
map.Register(kRtpExtensionTransmissionTimeOffset,
|
||||
kTransmissionTimeOffsetExtensionId);
|
||||
map.Register(kRtpExtensionAbsoluteSendTime, kAbsoluteSendTimeExtensionId);
|
||||
const bool valid_rtp_header = rtp_parser.Parse(rtp_header, &map);
|
||||
const bool valid_rtp_header = rtp_parser.Parse(&rtp_header, &map);
|
||||
ASSERT_TRUE(valid_rtp_header);
|
||||
|
||||
// Verify transmission time offset.
|
||||
@ -727,7 +727,7 @@ TEST_F(RtpSenderTest, TrafficSmoothingRetransmits) {
|
||||
map.Register(kRtpExtensionTransmissionTimeOffset,
|
||||
kTransmissionTimeOffsetExtensionId);
|
||||
map.Register(kRtpExtensionAbsoluteSendTime, kAbsoluteSendTimeExtensionId);
|
||||
const bool valid_rtp_header = rtp_parser.Parse(rtp_header, &map);
|
||||
const bool valid_rtp_header = rtp_parser.Parse(&rtp_header, &map);
|
||||
ASSERT_TRUE(valid_rtp_header);
|
||||
|
||||
// Verify transmission time offset.
|
||||
@ -934,7 +934,7 @@ TEST_F(RtpSenderTestWithoutPacer, SendGenericVideo) {
|
||||
RtpUtility::RtpHeaderParser rtp_parser(transport_.last_sent_packet_,
|
||||
transport_.last_sent_packet_len_);
|
||||
webrtc::RTPHeader rtp_header;
|
||||
ASSERT_TRUE(rtp_parser.Parse(rtp_header));
|
||||
ASSERT_TRUE(rtp_parser.Parse(&rtp_header));
|
||||
|
||||
const uint8_t* payload_data =
|
||||
GetPayloadData(rtp_header, transport_.last_sent_packet_);
|
||||
@ -959,7 +959,7 @@ TEST_F(RtpSenderTestWithoutPacer, SendGenericVideo) {
|
||||
|
||||
RtpUtility::RtpHeaderParser rtp_parser2(transport_.last_sent_packet_,
|
||||
transport_.last_sent_packet_len_);
|
||||
ASSERT_TRUE(rtp_parser.Parse(rtp_header));
|
||||
ASSERT_TRUE(rtp_parser.Parse(&rtp_header));
|
||||
|
||||
payload_data = GetPayloadData(rtp_header, transport_.last_sent_packet_);
|
||||
generic_header = *payload_data++;
|
||||
@ -1217,7 +1217,7 @@ TEST_F(RtpSenderAudioTest, SendAudio) {
|
||||
RtpUtility::RtpHeaderParser rtp_parser(transport_.last_sent_packet_,
|
||||
transport_.last_sent_packet_len_);
|
||||
webrtc::RTPHeader rtp_header;
|
||||
ASSERT_TRUE(rtp_parser.Parse(rtp_header));
|
||||
ASSERT_TRUE(rtp_parser.Parse(&rtp_header));
|
||||
|
||||
const uint8_t* payload_data =
|
||||
GetPayloadData(rtp_header, transport_.last_sent_packet_);
|
||||
@ -1246,7 +1246,7 @@ TEST_F(RtpSenderAudioTest, SendAudioWithAudioLevelExtension) {
|
||||
RtpUtility::RtpHeaderParser rtp_parser(transport_.last_sent_packet_,
|
||||
transport_.last_sent_packet_len_);
|
||||
webrtc::RTPHeader rtp_header;
|
||||
ASSERT_TRUE(rtp_parser.Parse(rtp_header));
|
||||
ASSERT_TRUE(rtp_parser.Parse(&rtp_header));
|
||||
|
||||
const uint8_t* payload_data =
|
||||
GetPayloadData(rtp_header, transport_.last_sent_packet_);
|
||||
|
@ -304,7 +304,7 @@ int32_t RTPSenderVideo::SendVideo(const RtpVideoCodecTypes videoType,
|
||||
size_t packetSize = payloadSize + rtp_header_length;
|
||||
RtpUtility::RtpHeaderParser rtp_parser(dataBuffer, packetSize);
|
||||
RTPHeader rtp_header;
|
||||
rtp_parser.Parse(rtp_header);
|
||||
rtp_parser.Parse(&rtp_header);
|
||||
_rtpSender.UpdateVideoRotation(dataBuffer, packetSize, rtp_header,
|
||||
rtpHdr->rotation);
|
||||
}
|
||||
|
@ -10,38 +10,10 @@
|
||||
|
||||
#include "webrtc/modules/rtp_rtcp/source/rtp_utility.h"
|
||||
|
||||
#include <assert.h>
|
||||
#include <math.h> // ceil
|
||||
#include <string.h> // memcpy
|
||||
|
||||
#if defined(_WIN32)
|
||||
// Order for these headers are important
|
||||
#include <winsock2.h> // timeval
|
||||
#include <windows.h> // FILETIME NOLINT(build/include_alpha)
|
||||
#include <MMSystem.h> // timeGetTime
|
||||
#elif ((defined WEBRTC_LINUX) || (defined WEBRTC_MAC))
|
||||
#include <sys/time.h> // gettimeofday
|
||||
#include <time.h>
|
||||
#endif
|
||||
#if (!defined(NDEBUG) && defined(_WIN32) && (_MSC_VER >= 1400))
|
||||
#include <stdio.h>
|
||||
#endif
|
||||
#include <string.h>
|
||||
|
||||
#include "webrtc/base/logging.h"
|
||||
#include "webrtc/modules/rtp_rtcp/source/byte_io.h"
|
||||
#include "webrtc/system_wrappers/include/tick_util.h"
|
||||
|
||||
#if (!defined(NDEBUG) && defined(_WIN32) && (_MSC_VER >= 1400))
|
||||
#define DEBUG_PRINT(...) \
|
||||
{ \
|
||||
char msg[256]; \
|
||||
sprintf(msg, __VA_ARGS__); \
|
||||
OutputDebugString(msg); \
|
||||
}
|
||||
#else
|
||||
// special fix for visual 2003
|
||||
#define DEBUG_PRINT(exp) ((void)0)
|
||||
#endif // !defined(NDEBUG) && defined(_WIN32)
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
@ -83,12 +55,12 @@ enum {
|
||||
#if defined(_WIN32)
|
||||
bool StringCompare(const char* str1, const char* str2,
|
||||
const uint32_t length) {
|
||||
return (_strnicmp(str1, str2, length) == 0) ? true : false;
|
||||
return _strnicmp(str1, str2, length) == 0;
|
||||
}
|
||||
#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC)
|
||||
bool StringCompare(const char* str1, const char* str2,
|
||||
const uint32_t length) {
|
||||
return (strncasecmp(str1, str2, length) == 0) ? true : false;
|
||||
return strncasecmp(str1, str2, length) == 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -99,10 +71,6 @@ size_t Word32Align(size_t size) {
|
||||
return size;
|
||||
}
|
||||
|
||||
uint32_t pow2(uint8_t exp) {
|
||||
return 1 << exp;
|
||||
}
|
||||
|
||||
RtpHeaderParser::RtpHeaderParser(const uint8_t* rtpData,
|
||||
const size_t rtpDataLength)
|
||||
: _ptrRTPDataBegin(rtpData),
|
||||
@ -212,7 +180,7 @@ bool RtpHeaderParser::ParseRtcp(RTPHeader* header) const {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool RtpHeaderParser::Parse(RTPHeader& header,
|
||||
bool RtpHeaderParser::Parse(RTPHeader* header,
|
||||
RtpHeaderExtensionMap* ptrExtensionMap) const {
|
||||
const ptrdiff_t length = _ptrRTPDataEnd - _ptrRTPDataBegin;
|
||||
if (length < kRtpMinParseLength) {
|
||||
@ -251,39 +219,39 @@ bool RtpHeaderParser::Parse(RTPHeader& header,
|
||||
return false;
|
||||
}
|
||||
|
||||
header.markerBit = M;
|
||||
header.payloadType = PT;
|
||||
header.sequenceNumber = sequenceNumber;
|
||||
header.timestamp = RTPTimestamp;
|
||||
header.ssrc = SSRC;
|
||||
header.numCSRCs = CC;
|
||||
header.paddingLength = P ? *(_ptrRTPDataEnd - 1) : 0;
|
||||
header->markerBit = M;
|
||||
header->payloadType = PT;
|
||||
header->sequenceNumber = sequenceNumber;
|
||||
header->timestamp = RTPTimestamp;
|
||||
header->ssrc = SSRC;
|
||||
header->numCSRCs = CC;
|
||||
header->paddingLength = P ? *(_ptrRTPDataEnd - 1) : 0;
|
||||
|
||||
for (uint8_t i = 0; i < CC; ++i) {
|
||||
uint32_t CSRC = ByteReader<uint32_t>::ReadBigEndian(ptr);
|
||||
ptr += 4;
|
||||
header.arrOfCSRCs[i] = CSRC;
|
||||
header->arrOfCSRCs[i] = CSRC;
|
||||
}
|
||||
|
||||
header.headerLength = 12 + CSRCocts;
|
||||
header->headerLength = 12 + CSRCocts;
|
||||
|
||||
// If in effect, MAY be omitted for those packets for which the offset
|
||||
// is zero.
|
||||
header.extension.hasTransmissionTimeOffset = false;
|
||||
header.extension.transmissionTimeOffset = 0;
|
||||
header->extension.hasTransmissionTimeOffset = false;
|
||||
header->extension.transmissionTimeOffset = 0;
|
||||
|
||||
// May not be present in packet.
|
||||
header.extension.hasAbsoluteSendTime = false;
|
||||
header.extension.absoluteSendTime = 0;
|
||||
header->extension.hasAbsoluteSendTime = false;
|
||||
header->extension.absoluteSendTime = 0;
|
||||
|
||||
// May not be present in packet.
|
||||
header.extension.hasAudioLevel = false;
|
||||
header.extension.voiceActivity = false;
|
||||
header.extension.audioLevel = 0;
|
||||
header->extension.hasAudioLevel = false;
|
||||
header->extension.voiceActivity = false;
|
||||
header->extension.audioLevel = 0;
|
||||
|
||||
// May not be present in packet.
|
||||
header.extension.hasVideoRotation = false;
|
||||
header.extension.videoRotation = 0;
|
||||
header->extension.hasVideoRotation = false;
|
||||
header->extension.videoRotation = 0;
|
||||
|
||||
if (X) {
|
||||
/* RTP header extension, RFC 3550.
|
||||
@ -300,7 +268,7 @@ bool RtpHeaderParser::Parse(RTPHeader& header,
|
||||
return false;
|
||||
}
|
||||
|
||||
header.headerLength += 4;
|
||||
header->headerLength += 4;
|
||||
|
||||
uint16_t definedByProfile = ByteReader<uint16_t>::ReadBigEndian(ptr);
|
||||
ptr += 2;
|
||||
@ -320,15 +288,16 @@ bool RtpHeaderParser::Parse(RTPHeader& header,
|
||||
ptrRTPDataExtensionEnd,
|
||||
ptr);
|
||||
}
|
||||
header.headerLength += XLen;
|
||||
header->headerLength += XLen;
|
||||
}
|
||||
if (header.headerLength + header.paddingLength > static_cast<size_t>(length))
|
||||
if (header->headerLength + header->paddingLength >
|
||||
static_cast<size_t>(length))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
void RtpHeaderParser::ParseOneByteExtensionHeader(
|
||||
RTPHeader& header,
|
||||
RTPHeader* header,
|
||||
const RtpHeaderExtensionMap* ptrExtensionMap,
|
||||
const uint8_t* ptrRTPDataExtensionEnd,
|
||||
const uint8_t* ptr) const {
|
||||
@ -374,9 +343,9 @@ void RtpHeaderParser::ParseOneByteExtensionHeader(
|
||||
// | ID | len=2 | transmission offset |
|
||||
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
|
||||
header.extension.transmissionTimeOffset =
|
||||
header->extension.transmissionTimeOffset =
|
||||
ByteReader<int32_t, 3>::ReadBigEndian(ptr);
|
||||
header.extension.hasTransmissionTimeOffset = true;
|
||||
header->extension.hasTransmissionTimeOffset = true;
|
||||
break;
|
||||
}
|
||||
case kRtpExtensionAudioLevel: {
|
||||
@ -390,9 +359,9 @@ void RtpHeaderParser::ParseOneByteExtensionHeader(
|
||||
// | ID | len=0 |V| level |
|
||||
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
//
|
||||
header.extension.audioLevel = ptr[0] & 0x7f;
|
||||
header.extension.voiceActivity = (ptr[0] & 0x80) != 0;
|
||||
header.extension.hasAudioLevel = true;
|
||||
header->extension.audioLevel = ptr[0] & 0x7f;
|
||||
header->extension.voiceActivity = (ptr[0] & 0x80) != 0;
|
||||
header->extension.hasAudioLevel = true;
|
||||
break;
|
||||
}
|
||||
case kRtpExtensionAbsoluteSendTime: {
|
||||
@ -406,9 +375,9 @@ void RtpHeaderParser::ParseOneByteExtensionHeader(
|
||||
// | ID | len=2 | absolute send time |
|
||||
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
|
||||
header.extension.absoluteSendTime =
|
||||
header->extension.absoluteSendTime =
|
||||
ByteReader<uint32_t, 3>::ReadBigEndian(ptr);
|
||||
header.extension.hasAbsoluteSendTime = true;
|
||||
header->extension.hasAbsoluteSendTime = true;
|
||||
break;
|
||||
}
|
||||
case kRtpExtensionVideoRotation: {
|
||||
@ -422,8 +391,8 @@ void RtpHeaderParser::ParseOneByteExtensionHeader(
|
||||
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
// | ID | len=0 |0 0 0 0 C F R R|
|
||||
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
header.extension.hasVideoRotation = true;
|
||||
header.extension.videoRotation = ptr[0];
|
||||
header->extension.hasVideoRotation = true;
|
||||
header->extension.videoRotation = ptr[0];
|
||||
break;
|
||||
}
|
||||
case kRtpExtensionTransportSequenceNumber: {
|
||||
@ -440,8 +409,8 @@ void RtpHeaderParser::ParseOneByteExtensionHeader(
|
||||
|
||||
uint16_t sequence_number = ptr[0] << 8;
|
||||
sequence_number += ptr[1];
|
||||
header.extension.transportSequenceNumber = sequence_number;
|
||||
header.extension.hasTransportSequenceNumber = true;
|
||||
header->extension.transportSequenceNumber = sequence_number;
|
||||
header->extension.hasTransportSequenceNumber = true;
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
@ -470,5 +439,4 @@ uint8_t RtpHeaderParser::ParsePaddingBytes(
|
||||
return num_zero_bytes;
|
||||
}
|
||||
} // namespace RtpUtility
|
||||
|
||||
} // namespace webrtc
|
||||
|
@ -11,8 +11,6 @@
|
||||
#ifndef WEBRTC_MODULES_RTP_RTCP_SOURCE_RTP_UTILITY_H_
|
||||
#define WEBRTC_MODULES_RTP_RTCP_SOURCE_RTP_UTILITY_H_
|
||||
|
||||
#include <stddef.h> // size_t, ptrdiff_t
|
||||
|
||||
#include <map>
|
||||
|
||||
#include "webrtc/modules/rtp_rtcp/include/receive_statistics.h"
|
||||
@ -31,14 +29,8 @@ RtpAudioFeedback* NullObjectRtpAudioFeedback();
|
||||
ReceiveStatistics* NullObjectReceiveStatistics();
|
||||
|
||||
namespace RtpUtility {
|
||||
// January 1970, in NTP seconds.
|
||||
const uint32_t NTP_JAN_1970 = 2208988800UL;
|
||||
|
||||
// Magic NTP fractional unit.
|
||||
const double NTP_FRAC = 4.294967296E+9;
|
||||
|
||||
struct Payload
|
||||
{
|
||||
struct Payload {
|
||||
char name[RTP_PAYLOAD_NAME_SIZE];
|
||||
bool audio;
|
||||
PayloadUnion typeSpecific;
|
||||
@ -46,18 +38,7 @@ namespace RtpUtility {
|
||||
|
||||
typedef std::map<int8_t, Payload*> PayloadTypeMap;
|
||||
|
||||
uint32_t pow2(uint8_t exp);
|
||||
|
||||
// Returns true if |newTimestamp| is older than |existingTimestamp|.
|
||||
// |wrapped| will be set to true if there has been a wraparound between the
|
||||
// two timestamps.
|
||||
bool OldTimestamp(uint32_t newTimestamp,
|
||||
uint32_t existingTimestamp,
|
||||
bool* wrapped);
|
||||
|
||||
bool StringCompare(const char* str1,
|
||||
const char* str2,
|
||||
const uint32_t length);
|
||||
bool StringCompare(const char* str1, const char* str2, const uint32_t length);
|
||||
|
||||
// Round up to the nearest size that is a multiple of 4.
|
||||
size_t Word32Align(size_t size);
|
||||
@ -69,18 +50,16 @@ namespace RtpUtility {
|
||||
|
||||
bool RTCP() const;
|
||||
bool ParseRtcp(RTPHeader* header) const;
|
||||
bool Parse(RTPHeader& parsedPacket,
|
||||
RtpHeaderExtensionMap* ptrExtensionMap = NULL) const;
|
||||
bool Parse(RTPHeader* parsedPacket,
|
||||
RtpHeaderExtensionMap* ptrExtensionMap = nullptr) const;
|
||||
|
||||
private:
|
||||
void ParseOneByteExtensionHeader(
|
||||
RTPHeader& parsedPacket,
|
||||
void ParseOneByteExtensionHeader(RTPHeader* parsedPacket,
|
||||
const RtpHeaderExtensionMap* ptrExtensionMap,
|
||||
const uint8_t* ptrRTPDataExtensionEnd,
|
||||
const uint8_t* ptr) const;
|
||||
|
||||
uint8_t ParsePaddingBytes(
|
||||
const uint8_t* ptrRTPDataExtensionEnd,
|
||||
uint8_t ParsePaddingBytes(const uint8_t* ptrRTPDataExtensionEnd,
|
||||
const uint8_t* ptr) const;
|
||||
|
||||
const uint8_t* const _ptrRTPDataBegin;
|
||||
|
@ -47,7 +47,7 @@ bool LayerFilteringTransport::SendRtp(const uint8_t* packet,
|
||||
bool set_marker_bit = false;
|
||||
RtpUtility::RtpHeaderParser parser(packet, length);
|
||||
RTPHeader header;
|
||||
parser.Parse(header);
|
||||
parser.Parse(&header);
|
||||
|
||||
RTC_DCHECK_LE(length, static_cast<size_t>(IP_PACKET_SIZE));
|
||||
uint8_t temp_buffer[IP_PACKET_SIZE];
|
||||
|
@ -458,7 +458,7 @@ class PcapReader : public RtpFileReaderImpl {
|
||||
rtp_parser.ParseRtcp(&marker.rtp_header);
|
||||
packets_.push_back(marker);
|
||||
} else {
|
||||
if (!rtp_parser.Parse(marker.rtp_header, NULL)) {
|
||||
if (!rtp_parser.Parse(&marker.rtp_header, nullptr)) {
|
||||
DEBUG_LOG("Not recognized as RTP/RTCP");
|
||||
return kResultSkip;
|
||||
}
|
||||
|
@ -85,7 +85,8 @@ class TestPcapFileReader : public ::testing::Test {
|
||||
while (rtp_packet_source_->NextPacket(&packet)) {
|
||||
RtpUtility::RtpHeaderParser rtp_header_parser(packet.data, packet.length);
|
||||
webrtc::RTPHeader header;
|
||||
if (!rtp_header_parser.RTCP() && rtp_header_parser.Parse(header, NULL)) {
|
||||
if (!rtp_header_parser.RTCP() &&
|
||||
rtp_header_parser.Parse(&header, nullptr)) {
|
||||
pps[header.ssrc]++;
|
||||
}
|
||||
}
|
||||
|
@ -116,7 +116,7 @@ class VideoAnalyzer : public PacketReceiver,
|
||||
const PacketTime& packet_time) override {
|
||||
RtpUtility::RtpHeaderParser parser(packet, length);
|
||||
RTPHeader header;
|
||||
parser.Parse(header);
|
||||
parser.Parse(&header);
|
||||
{
|
||||
rtc::CritScope lock(&crit_);
|
||||
recv_times_[header.timestamp - rtp_timestamp_delta_] =
|
||||
@ -152,7 +152,7 @@ class VideoAnalyzer : public PacketReceiver,
|
||||
const PacketOptions& options) override {
|
||||
RtpUtility::RtpHeaderParser parser(packet, length);
|
||||
RTPHeader header;
|
||||
parser.Parse(header);
|
||||
parser.Parse(&header);
|
||||
|
||||
int64_t current_time =
|
||||
Clock::GetRealTimeClock()->CurrentNtpInMilliseconds();
|
||||
|
Reference in New Issue
Block a user