Refactor FEC code to use COW buffers
This refactoring helps to reduce unnecessary memcpy calls on the receive side. This CL replaces |uint8 data[IP_PACKET_SIZE]| with |rtc::CopyOnWriteBuffer data| in Packet class, removes |length| field there, and does necessary changes. This is a reland of these two CLs with fixes: https://webrtc-review.googlesource.com/c/src/+/144942 https://webrtc-review.googlesource.com/c/src/+/144881 Bug: webrtc:10750 Change-Id: I76f6dee5a57ade59942ea2822ca4737edfe6438b Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/145332 Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org> Reviewed-by: Stefan Holmer <stefan@webrtc.org> Cr-Commit-Position: refs/heads/master@{#29035}
This commit is contained in:
committed by
Commit Bot
parent
a66395e72f
commit
eec5fff4df
@ -126,16 +126,16 @@ void UlpfecReceiverTest::BuildAndAddRedMediaPacket(AugmentedPacket* packet) {
|
||||
std::unique_ptr<AugmentedPacket> red_packet(
|
||||
packet_generator_.BuildMediaRedPacket(*packet));
|
||||
EXPECT_EQ(0, receiver_fec_->AddReceivedRedPacket(
|
||||
red_packet->header, red_packet->data, red_packet->length,
|
||||
kFecPayloadType));
|
||||
red_packet->header, red_packet->data.cdata(),
|
||||
red_packet->data.size(), kFecPayloadType));
|
||||
}
|
||||
|
||||
void UlpfecReceiverTest::BuildAndAddRedFecPacket(Packet* packet) {
|
||||
std::unique_ptr<AugmentedPacket> red_packet(
|
||||
packet_generator_.BuildUlpfecRedPacket(*packet));
|
||||
EXPECT_EQ(0, receiver_fec_->AddReceivedRedPacket(
|
||||
red_packet->header, red_packet->data, red_packet->length,
|
||||
kFecPayloadType));
|
||||
red_packet->header, red_packet->data.cdata(),
|
||||
red_packet->data.size(), kFecPayloadType));
|
||||
}
|
||||
|
||||
void UlpfecReceiverTest::VerifyReconstructedMediaPacket(
|
||||
@ -144,8 +144,10 @@ void UlpfecReceiverTest::VerifyReconstructedMediaPacket(
|
||||
// Verify that the content of the reconstructed packet is equal to the
|
||||
// content of |packet|, and that the same content is received |times| number
|
||||
// of times in a row.
|
||||
EXPECT_CALL(recovered_packet_receiver_, OnRecoveredPacket(_, packet.length))
|
||||
.With(Args<0, 1>(ElementsAreArray(packet.data, packet.length)))
|
||||
EXPECT_CALL(recovered_packet_receiver_,
|
||||
OnRecoveredPacket(_, packet.data.size()))
|
||||
.With(
|
||||
Args<0, 1>(ElementsAreArray(packet.data.cdata(), packet.data.size())))
|
||||
.Times(times);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user