Use rtc::CopyOnWriteBuffer::MutableData through webrtc

where mutable access is required.

Bug: webrtc:12334
Change-Id: I4b2b74f836aaf7f12278c3569d0d49936297716b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/198846
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32936}
This commit is contained in:
Danil Chapovalov
2021-01-07 15:24:05 +01:00
committed by Commit Bot
parent da06e8f6bd
commit e15dc58f32
27 changed files with 99 additions and 87 deletions

View File

@ -127,7 +127,7 @@ void RtpFecTest<ForwardErrorCorrectionType>::ReceivedPackets(
// For media packets, the sequence number is obtained from the
// RTP header as written by MediaPacketGenerator::ConstructMediaPackets.
received_packet->seq_num =
ByteReader<uint16_t>::ReadBigEndian(&packet->data[2]);
ByteReader<uint16_t>::ReadBigEndian(packet->data.data() + 2);
} else {
received_packet->ssrc = ForwardErrorCorrectionType::kFecSsrc;
// For FEC packets, we simulate the sequence numbers differently
@ -222,10 +222,10 @@ TYPED_TEST(RtpFecTest, WillProtectMediaPacketsWithLargeSequenceNumberGap) {
this->media_packet_generator_.ConstructMediaPackets(kNumMediaPackets);
// Create |kMaxMediaPackets - 1| sequence number difference.
ByteWriter<uint16_t>::WriteBigEndian(&this->media_packets_.front()->data[2],
1);
ByteWriter<uint16_t>::WriteBigEndian(&this->media_packets_.back()->data[2],
kMaxMediaPackets);
ByteWriter<uint16_t>::WriteBigEndian(
this->media_packets_.front()->data.MutableData() + 2, 1);
ByteWriter<uint16_t>::WriteBigEndian(
this->media_packets_.back()->data.MutableData() + 2, kMaxMediaPackets);
EXPECT_EQ(
0, this->fec_.EncodeFec(this->media_packets_, kProtectionFactor,
@ -245,10 +245,11 @@ TYPED_TEST(RtpFecTest,
this->media_packet_generator_.ConstructMediaPackets(kNumMediaPackets);
// Create |kMaxMediaPackets| sequence number difference.
ByteWriter<uint16_t>::WriteBigEndian(&this->media_packets_.front()->data[2],
1);
ByteWriter<uint16_t>::WriteBigEndian(&this->media_packets_.back()->data[2],
kMaxMediaPackets + 1);
ByteWriter<uint16_t>::WriteBigEndian(
this->media_packets_.front()->data.MutableData() + 2, 1);
ByteWriter<uint16_t>::WriteBigEndian(
this->media_packets_.back()->data.MutableData() + 2,
kMaxMediaPackets + 1);
EXPECT_EQ(
-1, this->fec_.EncodeFec(this->media_packets_, kProtectionFactor,
@ -526,9 +527,9 @@ TEST_F(RtpFecTestFlexfecOnly, FecRecoveryWithSeqNumGapOneFrameNoRecovery) {
// Overwrite the sequence numbers generated by ConstructMediaPackets,
// to make sure that we do have a wrap.
auto it = this->generated_fec_packets_.begin();
ByteWriter<uint16_t>::WriteBigEndian(&(*it)->data[2], 65535);
ByteWriter<uint16_t>::WriteBigEndian(&(*it)->data.MutableData()[2], 65535);
++it;
ByteWriter<uint16_t>::WriteBigEndian(&(*it)->data[2], 0);
ByteWriter<uint16_t>::WriteBigEndian(&(*it)->data.MutableData()[2], 0);
// Lose the last two media packets (seq# 65533, 65534).
memset(this->media_loss_mask_, 0, sizeof(this->media_loss_mask_));