Update MultiplexEncoderAdapter to use EncodedImage::Allocate

Bug: webrtc:9378
Change-Id: Icb09478c7035ec4ddbcb11f402db140a838721f3
Reviewed-on: https://webrtc-review.googlesource.com/c/122881
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26663}
This commit is contained in:
Niels Möller
2019-02-13 11:56:14 +01:00
committed by Commit Bot
parent 448c387b82
commit cbf5949fff
2 changed files with 5 additions and 17 deletions

View File

@ -188,7 +188,7 @@ EncodedImage MultiplexEncodedImagePacker::PackAndRelease(
frame_headers.push_back(frame_header);
}
combined_image.set_buffer(new uint8_t[bitstream_offset], bitstream_offset);
combined_image.Allocate(bitstream_offset);
combined_image.set_size(bitstream_offset);
// header

View File

@ -247,16 +247,8 @@ int MultiplexEncoderAdapter::Release() {
encoders_.clear();
adapter_callbacks_.clear();
rtc::CritScope cs(&crit_);
for (auto& stashed_image : stashed_images_) {
for (auto& image_component : stashed_image.second.image_components) {
delete[] image_component.encoded_image.data();
}
}
stashed_images_.clear();
if (combined_image_.buffer()) {
delete[] combined_image_.buffer();
combined_image_.set_buffer(nullptr, 0);
}
return WEBRTC_VIDEO_CODEC_OK;
}
@ -275,11 +267,9 @@ EncodedImageCallback::Result MultiplexEncoderAdapter::OnEncodedImage(
image_component.codec_type =
PayloadStringToCodecType(associated_format_.name);
image_component.encoded_image = encodedImage;
image_component.encoded_image.set_buffer(new uint8_t[encodedImage.size()],
encodedImage.size());
image_component.encoded_image.set_size(encodedImage.size());
std::memcpy(image_component.encoded_image.data(), encodedImage.data(),
encodedImage.size());
// If we don't already own the buffer, make a copy.
image_component.encoded_image.Retain();
rtc::CritScope cs(&crit_);
const auto& stashed_image_itr =
@ -302,8 +292,6 @@ EncodedImageCallback::Result MultiplexEncoderAdapter::OnEncodedImage(
// We have to send out those stashed frames, otherwise the delta frame
// dependency chain is broken.
if (combined_image_.buffer())
delete[] combined_image_.buffer();
combined_image_ =
MultiplexEncodedImagePacker::PackAndRelease(iter->second);