Update test code to use EncodedImage::Allocate
Bug: webrtc:9378 Change-Id: I2ea63b097b0263b264fbbcca295365781fcae621 Reviewed-on: https://webrtc-review.googlesource.com/c/122780 Commit-Queue: Niels Moller <nisse@webrtc.org> Reviewed-by: Erik Språng <sprang@webrtc.org> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Cr-Commit-Position: refs/heads/master@{#26690}
This commit is contained in:
@ -246,14 +246,6 @@ VideoProcessor::~VideoProcessor() {
|
||||
|
||||
// Sanity check.
|
||||
RTC_CHECK_LE(input_frames_.size(), kMaxBufferedInputFrames);
|
||||
|
||||
// Deal with manual memory management of EncodedImage's.
|
||||
for (size_t i = 0; i < num_simulcast_or_spatial_layers_; ++i) {
|
||||
uint8_t* data = merged_encoded_frames_.at(i).data();
|
||||
if (data) {
|
||||
delete[] data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void VideoProcessor::ProcessFrame() {
|
||||
@ -571,27 +563,19 @@ const webrtc::EncodedImage* VideoProcessor::BuildAndStoreSuperframe(
|
||||
const size_t buffer_size_bytes =
|
||||
payload_size_bytes + EncodedImage::GetBufferPaddingBytes(codec);
|
||||
|
||||
uint8_t* copied_buffer = new uint8_t[buffer_size_bytes];
|
||||
RTC_CHECK(copied_buffer);
|
||||
|
||||
EncodedImage copied_image = encoded_image;
|
||||
copied_image.Allocate(buffer_size_bytes);
|
||||
if (base_image.size()) {
|
||||
RTC_CHECK(base_image.data());
|
||||
memcpy(copied_buffer, base_image.data(), base_image.size());
|
||||
memcpy(copied_image.data(), base_image.data(), base_image.size());
|
||||
}
|
||||
memcpy(copied_buffer + base_image.size(), encoded_image.data(),
|
||||
memcpy(copied_image.data() + base_image.size(), encoded_image.data(),
|
||||
encoded_image.size());
|
||||
|
||||
EncodedImage copied_image = encoded_image;
|
||||
copied_image = encoded_image;
|
||||
copied_image.set_buffer(copied_buffer, buffer_size_bytes);
|
||||
copied_image.set_size(payload_size_bytes);
|
||||
|
||||
// Replace previous EncodedImage for this spatial layer.
|
||||
uint8_t* old_buffer = merged_encoded_frames_.at(spatial_idx).buffer();
|
||||
if (old_buffer) {
|
||||
delete[] old_buffer;
|
||||
}
|
||||
merged_encoded_frames_.at(spatial_idx) = copied_image;
|
||||
merged_encoded_frames_.at(spatial_idx) = std::move(copied_image);
|
||||
|
||||
return &merged_encoded_frames_.at(spatial_idx);
|
||||
}
|
||||
|
||||
@ -109,10 +109,9 @@ class VideoProcessor {
|
||||
const webrtc::EncodedImage& encoded_image,
|
||||
const webrtc::CodecSpecificInfo* codec_specific_info)
|
||||
: video_processor_(video_processor),
|
||||
buffer_(encoded_image.data(), encoded_image.size()),
|
||||
encoded_image_(encoded_image),
|
||||
codec_specific_info_(*codec_specific_info) {
|
||||
encoded_image_.set_buffer(buffer_.data(), buffer_.size());
|
||||
encoded_image_.Retain();
|
||||
}
|
||||
|
||||
bool Run() override {
|
||||
@ -122,7 +121,6 @@ class VideoProcessor {
|
||||
|
||||
private:
|
||||
VideoProcessor* const video_processor_;
|
||||
rtc::Buffer buffer_;
|
||||
webrtc::EncodedImage encoded_image_;
|
||||
const webrtc::CodecSpecificInfo codec_specific_info_;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user