| Index: content/renderer/media/gpu/rtc_video_decoder.cc
|
| diff --git a/content/renderer/media/gpu/rtc_video_decoder.cc b/content/renderer/media/gpu/rtc_video_decoder.cc
|
| index a9f02cd58cfa43721e3d18ee706699e9c11d08f3..5cc84b009edf9f6d29d60754dad124c7edc6aff6 100644
|
| --- a/content/renderer/media/gpu/rtc_video_decoder.cc
|
| +++ b/content/renderer/media/gpu/rtc_video_decoder.cc
|
| @@ -11,7 +11,6 @@
|
| #include "base/memory/ref_counted.h"
|
| #include "base/metrics/histogram.h"
|
| #include "base/numerics/safe_conversions.h"
|
| -#include "base/stl_util.h"
|
| #include "base/synchronization/waitable_event.h"
|
| #include "base/task_runner_util.h"
|
| #include "content/renderer/media/webrtc/webrtc_video_frame_adapter.h"
|
| @@ -91,11 +90,6 @@ RTCVideoDecoder::~RTCVideoDecoder() {
|
| DestroyVDA();
|
|
|
| // Delete all shared memories.
|
| - base::STLDeleteElements(&available_shm_segments_);
|
| - base::STLDeleteValues(&bitstream_buffers_in_decoder_);
|
| - base::STLDeleteContainerPairFirstPointers(decode_buffers_.begin(),
|
| - decode_buffers_.end());
|
| - decode_buffers_.clear();
|
| ClearPendingBuffers();
|
| }
|
|
|
| @@ -493,8 +487,7 @@ void RTCVideoDecoder::NotifyEndOfBitstreamBuffer(int32_t id) {
|
| DVLOG(3) << "NotifyEndOfBitstreamBuffer. id=" << id;
|
| DCheckGpuVideoAcceleratorFactoriesTaskRunnerIsCurrent();
|
|
|
| - std::map<int32_t, base::SharedMemory*>::iterator it =
|
| - bitstream_buffers_in_decoder_.find(id);
|
| + auto it = bitstream_buffers_in_decoder_.find(id);
|
| if (it == bitstream_buffers_in_decoder_.end()) {
|
| NotifyError(media::VideoDecodeAccelerator::PLATFORM_FAILURE);
|
| NOTREACHED() << "Missing bitstream buffer: " << id;
|
| @@ -503,7 +496,7 @@ void RTCVideoDecoder::NotifyEndOfBitstreamBuffer(int32_t id) {
|
|
|
| {
|
| base::AutoLock auto_lock(lock_);
|
| - PutSHM_Locked(std::unique_ptr<base::SharedMemory>(it->second));
|
| + PutSHM_Locked(std::move(it->second));
|
| }
|
| bitstream_buffers_in_decoder_.erase(it);
|
|
|
| @@ -562,7 +555,7 @@ void RTCVideoDecoder::RequestBufferDecode() {
|
| // Do not request decode if VDA is resetting.
|
| if (decode_buffers_.empty() || state_ == RESETTING)
|
| return;
|
| - shm_buffer.reset(decode_buffers_.front().first);
|
| + shm_buffer = std::move(decode_buffers_.front().first);
|
| buffer_data = decode_buffers_.front().second;
|
| decode_buffers_.pop_front();
|
| // Drop the buffers before Release is called.
|
| @@ -577,9 +570,10 @@ void RTCVideoDecoder::RequestBufferDecode() {
|
| media::BitstreamBuffer bitstream_buffer(
|
| buffer_data.bitstream_buffer_id, shm_buffer->handle(), buffer_data.size,
|
| 0, base::TimeDelta::FromInternalValue(buffer_data.timestamp));
|
| - const bool inserted =
|
| - bitstream_buffers_in_decoder_.insert(
|
| - std::make_pair(bitstream_buffer.id(), shm_buffer.release())).second;
|
| + const bool inserted = bitstream_buffers_in_decoder_
|
| + .insert(std::make_pair(bitstream_buffer.id(),
|
| + std::move(shm_buffer)))
|
| + .second;
|
| DCHECK(inserted) << "bitstream_buffer_id " << bitstream_buffer.id()
|
| << " existed already in bitstream_buffers_in_decoder_";
|
| RecordBufferData(buffer_data);
|
| @@ -612,11 +606,9 @@ void RTCVideoDecoder::SaveToDecodeBuffers_Locked(
|
| std::unique_ptr<base::SharedMemory> shm_buffer,
|
| const BufferData& buffer_data) {
|
| memcpy(shm_buffer->memory(), input_image._buffer, input_image._length);
|
| - std::pair<base::SharedMemory*, BufferData> buffer_pair =
|
| - std::make_pair(shm_buffer.release(), buffer_data);
|
|
|
| // Store the buffer and the metadata to the queue.
|
| - decode_buffers_.push_back(buffer_pair);
|
| + decode_buffers_.emplace_back(std::move(shm_buffer), buffer_data);
|
| }
|
|
|
| bool RTCVideoDecoder::SaveToPendingBuffers_Locked(
|
| @@ -785,8 +777,8 @@ void RTCVideoDecoder::DestroyVDA() {
|
| base::AutoLock auto_lock(lock_);
|
|
|
| // Put the buffers back in case we restart the decoder.
|
| - for (const auto& buffer : bitstream_buffers_in_decoder_)
|
| - PutSHM_Locked(std::unique_ptr<base::SharedMemory>(buffer.second));
|
| + for (auto& buffer : bitstream_buffers_in_decoder_)
|
| + PutSHM_Locked(std::move(buffer.second));
|
| bitstream_buffers_in_decoder_.clear();
|
|
|
| state_ = UNINITIALIZED;
|
| @@ -797,7 +789,8 @@ std::unique_ptr<base::SharedMemory> RTCVideoDecoder::GetSHM_Locked(
|
| // Reuse a SHM if possible.
|
| if (!available_shm_segments_.empty() &&
|
| available_shm_segments_.back()->mapped_size() >= min_size) {
|
| - std::unique_ptr<base::SharedMemory> buffer(available_shm_segments_.back());
|
| + std::unique_ptr<base::SharedMemory> buffer =
|
| + std::move(available_shm_segments_.back());
|
| available_shm_segments_.pop_back();
|
| return buffer;
|
| }
|
| @@ -812,7 +805,7 @@ std::unique_ptr<base::SharedMemory> RTCVideoDecoder::GetSHM_Locked(
|
| }
|
|
|
| if (num_shm_buffers_ != 0) {
|
| - base::STLDeleteElements(&available_shm_segments_);
|
| + available_shm_segments_.clear();
|
| num_shm_buffers_ = 0;
|
| }
|
|
|
| @@ -829,7 +822,7 @@ std::unique_ptr<base::SharedMemory> RTCVideoDecoder::GetSHM_Locked(
|
| void RTCVideoDecoder::PutSHM_Locked(
|
| std::unique_ptr<base::SharedMemory> shm_buffer) {
|
| lock_.AssertAcquired();
|
| - available_shm_segments_.push_back(shm_buffer.release());
|
| + available_shm_segments_.push_back(std::move(shm_buffer));
|
| }
|
|
|
| void RTCVideoDecoder::CreateSHM(size_t count, size_t size) {
|
|
|