New interface EncodedImageBufferInterface, replacing use of CopyOnWriteBuffer

Bug: webrtc:9378
Change-Id: I62b7adbd9dd539c545b5b1b1520721482a4623c4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138820
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28317}
This commit is contained in:
Niels Möller
2019-06-18 15:56:56 +02:00
committed by Commit Bot
parent 0894f0fd76
commit 4d504c76cb
27 changed files with 215 additions and 134 deletions

View File

@ -54,7 +54,8 @@ RtpFrameObject::RtpFrameObject(PacketBuffer* packet_buffer,
// as of the first packet's.
SetPlayoutDelay(first_packet->video_header.playout_delay);
AllocateBitstreamBuffer(frame_size);
// TODO(nisse): Change GetBitstream to return the buffer?
SetEncodedData(EncodedImageBuffer::Create(frame_size));
bool bitstream_copied = packet_buffer_->GetBitstream(*this, data());
RTC_DCHECK(bitstream_copied);
_encodedWidth = first_packet->width();
@ -166,13 +167,5 @@ absl::optional<FrameMarking> RtpFrameObject::GetFrameMarking() const {
return packet->video_header.frame_marking;
}
void RtpFrameObject::AllocateBitstreamBuffer(size_t frame_size) {
if (capacity() < frame_size) {
Allocate(frame_size);
}
set_size(frame_size);
}
} // namespace video_coding
} // namespace webrtc