Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(150)

Side by Side Diff: content/renderer/media/gpu/rtc_video_decoder.cc

Issue 2228403003: content: Use stl utilities from the base namespace (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/media/gpu/rtc_video_decoder.h" 5 #include "content/renderer/media/gpu/rtc_video_decoder.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 weak_factory_(this) { 84 weak_factory_(this) {
85 DCHECK(!factories_->GetTaskRunner()->BelongsToCurrentThread()); 85 DCHECK(!factories_->GetTaskRunner()->BelongsToCurrentThread());
86 } 86 }
87 87
88 RTCVideoDecoder::~RTCVideoDecoder() { 88 RTCVideoDecoder::~RTCVideoDecoder() {
89 DVLOG(2) << "~RTCVideoDecoder"; 89 DVLOG(2) << "~RTCVideoDecoder";
90 DCheckGpuVideoAcceleratorFactoriesTaskRunnerIsCurrent(); 90 DCheckGpuVideoAcceleratorFactoriesTaskRunnerIsCurrent();
91 DestroyVDA(); 91 DestroyVDA();
92 92
93 // Delete all shared memories. 93 // Delete all shared memories.
94 STLDeleteElements(&available_shm_segments_); 94 base::STLDeleteElements(&available_shm_segments_);
95 STLDeleteValues(&bitstream_buffers_in_decoder_); 95 base::STLDeleteValues(&bitstream_buffers_in_decoder_);
96 STLDeleteContainerPairFirstPointers(decode_buffers_.begin(), 96 base::STLDeleteContainerPairFirstPointers(decode_buffers_.begin(),
97 decode_buffers_.end()); 97 decode_buffers_.end());
98 decode_buffers_.clear(); 98 decode_buffers_.clear();
99 ClearPendingBuffers(); 99 ClearPendingBuffers();
100 } 100 }
101 101
102 // static 102 // static
103 std::unique_ptr<RTCVideoDecoder> RTCVideoDecoder::Create( 103 std::unique_ptr<RTCVideoDecoder> RTCVideoDecoder::Create(
104 webrtc::VideoCodecType type, 104 webrtc::VideoCodecType type,
105 media::GpuVideoAcceleratorFactories* factories) { 105 media::GpuVideoAcceleratorFactories* factories) {
106 std::unique_ptr<RTCVideoDecoder> decoder; 106 std::unique_ptr<RTCVideoDecoder> decoder;
107 // See https://bugs.chromium.org/p/webrtc/issues/detail?id=5717. 107 // See https://bugs.chromium.org/p/webrtc/issues/detail?id=5717.
(...skipping 697 matching lines...) Expand 10 before | Expand all | Expand 10 after
805 if (available_shm_segments_.size() != num_shm_buffers_) { 805 if (available_shm_segments_.size() != num_shm_buffers_) {
806 // Either available_shm_segments_ is empty (and we already have some SHM 806 // Either available_shm_segments_ is empty (and we already have some SHM
807 // buffers allocated), or the size of available segments is not large 807 // buffers allocated), or the size of available segments is not large
808 // enough. In the former case we need to wait for buffers to be returned, 808 // enough. In the former case we need to wait for buffers to be returned,
809 // in the latter we need to wait for all buffers to be returned to drop 809 // in the latter we need to wait for all buffers to be returned to drop
810 // them and reallocate with a new size. 810 // them and reallocate with a new size.
811 return NULL; 811 return NULL;
812 } 812 }
813 813
814 if (num_shm_buffers_ != 0) { 814 if (num_shm_buffers_ != 0) {
815 STLDeleteElements(&available_shm_segments_); 815 base::STLDeleteElements(&available_shm_segments_);
816 num_shm_buffers_ = 0; 816 num_shm_buffers_ = 0;
817 } 817 }
818 818
819 // Create twice as large buffers as required, to avoid frequent reallocation. 819 // Create twice as large buffers as required, to avoid frequent reallocation.
820 factories_->GetTaskRunner()->PostTask( 820 factories_->GetTaskRunner()->PostTask(
821 FROM_HERE, 821 FROM_HERE,
822 base::Bind(&RTCVideoDecoder::CreateSHM, weak_factory_.GetWeakPtr(), 822 base::Bind(&RTCVideoDecoder::CreateSHM, weak_factory_.GetWeakPtr(),
823 kNumSharedMemorySegments, min_size * 2)); 823 kNumSharedMemorySegments, min_size * 2));
824 824
825 // We'll be called again after the shared memory is created. 825 // We'll be called again after the shared memory is created.
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
893 } 893 }
894 894
895 void RTCVideoDecoder::ClearPendingBuffers() { 895 void RTCVideoDecoder::ClearPendingBuffers() {
896 // Delete WebRTC input buffers. 896 // Delete WebRTC input buffers.
897 for (const auto& pending_buffer : pending_buffers_) 897 for (const auto& pending_buffer : pending_buffers_)
898 delete[] pending_buffer.first._buffer; 898 delete[] pending_buffer.first._buffer;
899 pending_buffers_.clear(); 899 pending_buffers_.clear();
900 } 900 }
901 901
902 } // namespace content 902 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/cdm/renderer_cdm_manager.cc ('k') | content/renderer/media/rtc_peer_connection_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698