Skip to content
This repository was archived by the owner on Oct 25, 2024. It is now read-only.

Commit 9f0c89b

Browse files
Bjorn TereliusCommit Bot
authored andcommitted
Allow RTCP packets longer than 1500 bytes in RTC event log.
Bug: chromium:1134107 Change-Id: I05da32c57537c3c2fddae96918ff4e4685d62043 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186720 Reviewed-by: Elad Alon <[email protected]> Commit-Queue: Björn Terelius <[email protected]> Cr-Commit-Position: refs/heads/master@{#32315}
1 parent 0448298 commit 9f0c89b

File tree

2 files changed

+8
-10
lines changed

2 files changed

+8
-10
lines changed

logging/rtc_event_log/encoder/rtc_event_log_encoder_legacy.cc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -696,8 +696,7 @@ std::string RtcEventLogEncoderLegacy::EncodeRtcpPacket(
696696
rtcp::CommonHeader header;
697697
const uint8_t* block_begin = packet.data();
698698
const uint8_t* packet_end = packet.data() + packet.size();
699-
RTC_DCHECK(packet.size() <= IP_PACKET_SIZE);
700-
uint8_t buffer[IP_PACKET_SIZE];
699+
std::vector<uint8_t> buffer(packet.size());
701700
uint32_t buffer_length = 0;
702701
while (block_begin < packet_end) {
703702
if (!header.Parse(block_begin, packet_end - block_begin)) {
@@ -716,7 +715,7 @@ std::string RtcEventLogEncoderLegacy::EncodeRtcpPacket(
716715
// We log sender reports, receiver reports, bye messages
717716
// inter-arrival jitter, third-party loss reports, payload-specific
718717
// feedback and extended reports.
719-
memcpy(buffer + buffer_length, block_begin, block_size);
718+
memcpy(buffer.data() + buffer_length, block_begin, block_size);
720719
buffer_length += block_size;
721720
break;
722721
case rtcp::App::kPacketType:
@@ -729,7 +728,8 @@ std::string RtcEventLogEncoderLegacy::EncodeRtcpPacket(
729728

730729
block_begin += block_size;
731730
}
732-
rtclog_event.mutable_rtcp_packet()->set_packet_data(buffer, buffer_length);
731+
rtclog_event.mutable_rtcp_packet()->set_packet_data(buffer.data(),
732+
buffer_length);
733733

734734
return Serialize(&rtclog_event);
735735
}

logging/rtc_event_log/encoder/rtc_event_log_encoder_new_format.cc

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -288,11 +288,9 @@ rtclog2::IceCandidatePairEvent::IceCandidatePairEventType ConvertToProtoFormat(
288288
}
289289

290290
// Copies all RTCP blocks except APP, SDES and unknown from |packet| to
291-
// |buffer|. |buffer| must have space for |IP_PACKET_SIZE| bytes. |packet| must
292-
// be at most |IP_PACKET_SIZE| bytes long.
291+
// |buffer|. |buffer| must have space for at least |packet.size()| bytes.
293292
size_t RemoveNonWhitelistedRtcpBlocks(const rtc::Buffer& packet,
294293
uint8_t* buffer) {
295-
RTC_DCHECK(packet.size() <= IP_PACKET_SIZE);
296294
RTC_DCHECK(buffer != nullptr);
297295
rtcp::CommonHeader header;
298296
const uint8_t* block_begin = packet.data();
@@ -346,10 +344,10 @@ void EncodeRtcpPacket(rtc::ArrayView<const EventType*> batch,
346344
const EventType* const base_event = batch[0];
347345
proto_batch->set_timestamp_ms(base_event->timestamp_ms());
348346
{
349-
uint8_t buffer[IP_PACKET_SIZE];
347+
std::vector<uint8_t> buffer(base_event->packet().size());
350348
size_t buffer_length =
351-
RemoveNonWhitelistedRtcpBlocks(base_event->packet(), buffer);
352-
proto_batch->set_raw_packet(buffer, buffer_length);
349+
RemoveNonWhitelistedRtcpBlocks(base_event->packet(), buffer.data());
350+
proto_batch->set_raw_packet(buffer.data(), buffer_length);
353351
}
354352

355353
if (batch.size() == 1) {

0 commit comments

Comments
 (0)