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

Side by Side Diff: media/filters/vpx_video_decoder.cc

Issue 2371783002: Remove stl_util's deletion functions from media/. (Closed)
Patch Set: wolenetz Created 4 years, 2 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
« no previous file with comments | « media/filters/media_source_state.cc ('k') | media/formats/mp2t/mp2t_stream_parser.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "media/filters/vpx_video_decoder.h" 5 #include "media/filters/vpx_video_decoder.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
11 #include <memory>
11 #include <string> 12 #include <string>
12 #include <vector> 13 #include <vector>
13 14
14 #include "base/bind.h" 15 #include "base/bind.h"
15 #include "base/callback_helpers.h" 16 #include "base/callback_helpers.h"
16 #include "base/command_line.h" 17 #include "base/command_line.h"
17 #include "base/lazy_instance.h" 18 #include "base/lazy_instance.h"
18 #include "base/location.h" 19 #include "base/location.h"
19 #include "base/logging.h" 20 #include "base/logging.h"
20 #include "base/macros.h" 21 #include "base/macros.h"
22 #include "base/memory/ptr_util.h"
21 #include "base/single_thread_task_runner.h" 23 #include "base/single_thread_task_runner.h"
22 #include "base/stl_util.h"
23 #include "base/strings/string_number_conversions.h" 24 #include "base/strings/string_number_conversions.h"
24 #include "base/sys_byteorder.h" 25 #include "base/sys_byteorder.h"
25 #include "base/sys_info.h" 26 #include "base/sys_info.h"
26 #include "base/threading/thread.h" 27 #include "base/threading/thread.h"
27 #include "base/trace_event/memory_allocator_dump.h" 28 #include "base/trace_event/memory_allocator_dump.h"
28 #include "base/trace_event/memory_dump_manager.h" 29 #include "base/trace_event/memory_dump_manager.h"
29 #include "base/trace_event/memory_dump_provider.h" 30 #include "base/trace_event/memory_dump_provider.h"
30 #include "base/trace_event/process_memory_dump.h" 31 #include "base/trace_event/process_memory_dump.h"
31 #include "base/trace_event/trace_event.h" 32 #include "base/trace_event/trace_event.h"
32 #include "media/base/bind_to_current_loop.h" 33 #include "media/base/bind_to_current_loop.h"
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 ~MemoryPool() override; 217 ~MemoryPool() override;
217 218
218 // Gets the next available frame buffer for use by libvpx. 219 // Gets the next available frame buffer for use by libvpx.
219 VP9FrameBuffer* GetFreeFrameBuffer(size_t min_size); 220 VP9FrameBuffer* GetFreeFrameBuffer(size_t min_size);
220 221
221 // Method that gets called when a VideoFrame that references this pool gets 222 // Method that gets called when a VideoFrame that references this pool gets
222 // destroyed. 223 // destroyed.
223 void OnVideoFrameDestroyed(VP9FrameBuffer* frame_buffer); 224 void OnVideoFrameDestroyed(VP9FrameBuffer* frame_buffer);
224 225
225 // Frame buffers to be used by libvpx for VP9 Decoding. 226 // Frame buffers to be used by libvpx for VP9 Decoding.
226 std::vector<VP9FrameBuffer*> frame_buffers_; 227 std::vector<std::unique_ptr<VP9FrameBuffer>> frame_buffers_;
227 228
228 DISALLOW_COPY_AND_ASSIGN(MemoryPool); 229 DISALLOW_COPY_AND_ASSIGN(MemoryPool);
229 }; 230 };
230 231
231 VpxVideoDecoder::MemoryPool::MemoryPool() { 232 VpxVideoDecoder::MemoryPool::MemoryPool() {
232 base::trace_event::MemoryDumpManager::GetInstance()->RegisterDumpProvider( 233 base::trace_event::MemoryDumpManager::GetInstance()->RegisterDumpProvider(
233 this, "VpxVideoDecoder", base::ThreadTaskRunnerHandle::Get()); 234 this, "VpxVideoDecoder", base::ThreadTaskRunnerHandle::Get());
234 } 235 }
235 236
236 VpxVideoDecoder::MemoryPool::~MemoryPool() { 237 VpxVideoDecoder::MemoryPool::~MemoryPool() {
237 base::STLDeleteElements(&frame_buffers_);
238 base::trace_event::MemoryDumpManager::GetInstance()->UnregisterDumpProvider( 238 base::trace_event::MemoryDumpManager::GetInstance()->UnregisterDumpProvider(
239 this); 239 this);
240 } 240 }
241 241
242 VpxVideoDecoder::MemoryPool::VP9FrameBuffer* 242 VpxVideoDecoder::MemoryPool::VP9FrameBuffer*
243 VpxVideoDecoder::MemoryPool::GetFreeFrameBuffer(size_t min_size) { 243 VpxVideoDecoder::MemoryPool::GetFreeFrameBuffer(size_t min_size) {
244 // Check if a free frame buffer exists. 244 // Check if a free frame buffer exists.
245 size_t i = 0; 245 size_t i = 0;
246 for (; i < frame_buffers_.size(); ++i) { 246 for (; i < frame_buffers_.size(); ++i) {
247 if (frame_buffers_[i]->ref_cnt == 0) 247 if (frame_buffers_[i]->ref_cnt == 0)
248 break; 248 break;
249 } 249 }
250 250
251 if (i == frame_buffers_.size()) { 251 if (i == frame_buffers_.size()) {
252 // Create a new frame buffer. 252 // Create a new frame buffer.
253 frame_buffers_.push_back(new VP9FrameBuffer()); 253 frame_buffers_.push_back(base::MakeUnique<VP9FrameBuffer>());
254 } 254 }
255 255
256 // Resize the frame buffer if necessary. 256 // Resize the frame buffer if necessary.
257 if (frame_buffers_[i]->data.size() < min_size) 257 if (frame_buffers_[i]->data.size() < min_size)
258 frame_buffers_[i]->data.resize(min_size); 258 frame_buffers_[i]->data.resize(min_size);
259 return frame_buffers_[i]; 259 return frame_buffers_[i].get();
260 } 260 }
261 261
262 int32_t VpxVideoDecoder::MemoryPool::GetVP9FrameBuffer( 262 int32_t VpxVideoDecoder::MemoryPool::GetVP9FrameBuffer(
263 void* user_priv, 263 void* user_priv,
264 size_t min_size, 264 size_t min_size,
265 vpx_codec_frame_buffer* fb) { 265 vpx_codec_frame_buffer* fb) {
266 DCHECK(user_priv); 266 DCHECK(user_priv);
267 DCHECK(fb); 267 DCHECK(fb);
268 268
269 VpxVideoDecoder::MemoryPool* memory_pool = 269 VpxVideoDecoder::MemoryPool* memory_pool =
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
310 base::trace_event::MemoryAllocatorDump* memory_dump = 310 base::trace_event::MemoryAllocatorDump* memory_dump =
311 pmd->CreateAllocatorDump("media/vpx/memory_pool"); 311 pmd->CreateAllocatorDump("media/vpx/memory_pool");
312 base::trace_event::MemoryAllocatorDump* used_memory_dump = 312 base::trace_event::MemoryAllocatorDump* used_memory_dump =
313 pmd->CreateAllocatorDump("media/vpx/memory_pool/used"); 313 pmd->CreateAllocatorDump("media/vpx/memory_pool/used");
314 314
315 pmd->AddSuballocation(memory_dump->guid(), 315 pmd->AddSuballocation(memory_dump->guid(),
316 base::trace_event::MemoryDumpManager::GetInstance() 316 base::trace_event::MemoryDumpManager::GetInstance()
317 ->system_allocator_pool_name()); 317 ->system_allocator_pool_name());
318 size_t bytes_used = 0; 318 size_t bytes_used = 0;
319 size_t bytes_reserved = 0; 319 size_t bytes_reserved = 0;
320 for (const VP9FrameBuffer* frame_buffer : frame_buffers_) { 320 for (const auto& frame_buffer : frame_buffers_) {
321 if (frame_buffer->ref_cnt) 321 if (frame_buffer->ref_cnt)
322 bytes_used += frame_buffer->data.size(); 322 bytes_used += frame_buffer->data.size();
323 bytes_reserved += frame_buffer->data.size(); 323 bytes_reserved += frame_buffer->data.size();
324 } 324 }
325 325
326 memory_dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameSize, 326 memory_dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameSize,
327 base::trace_event::MemoryAllocatorDump::kUnitsBytes, 327 base::trace_event::MemoryAllocatorDump::kUnitsBytes,
328 bytes_reserved); 328 bytes_reserved);
329 used_memory_dump->AddScalar( 329 used_memory_dump->AddScalar(
330 base::trace_event::MemoryAllocatorDump::kNameSize, 330 base::trace_event::MemoryAllocatorDump::kNameSize,
(...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after
826 (*video_frame)->visible_data(VideoFrame::kUPlane), 826 (*video_frame)->visible_data(VideoFrame::kUPlane),
827 (*video_frame)->stride(VideoFrame::kUPlane), 827 (*video_frame)->stride(VideoFrame::kUPlane),
828 (*video_frame)->visible_data(VideoFrame::kVPlane), 828 (*video_frame)->visible_data(VideoFrame::kVPlane),
829 (*video_frame)->stride(VideoFrame::kVPlane), coded_size.width(), 829 (*video_frame)->stride(VideoFrame::kVPlane), coded_size.width(),
830 coded_size.height()); 830 coded_size.height());
831 831
832 return true; 832 return true;
833 } 833 }
834 834
835 } // namespace media 835 } // namespace media
OLDNEW
« no previous file with comments | « media/filters/media_source_state.cc ('k') | media/formats/mp2t/mp2t_stream_parser.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698