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
@ -25,8 +25,9 @@ void FuzzOneInput(const uint8_t* data, size_t size) {
|
||||
packet.pkt = rtc::scoped_refptr<Packet>(new Packet());
|
||||
const size_t packet_size =
|
||||
std::min(size, static_cast<size_t>(IP_PACKET_SIZE));
|
||||
memcpy(packet.pkt->data, data, packet_size);
|
||||
packet.pkt->length = packet_size;
|
||||
packet.pkt->data.SetSize(packet_size);
|
||||
packet.pkt->data.EnsureCapacity(IP_PACKET_SIZE);
|
||||
memcpy(packet.pkt->data.data(), data, packet_size);
|
||||
|
||||
FlexfecHeaderReader flexfec_reader;
|
||||
flexfec_reader.ReadFecHeader(&packet);
|
||||
|
||||
Reference in New Issue
Block a user