| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/video/gpu_memory_buffer_video_frame_pool.h" | 5 #include "media/video/gpu_memory_buffer_video_frame_pool.h" |
| 6 | 6 |
| 7 #include <GLES2/gl2.h> | 7 #include <GLES2/gl2.h> |
| 8 #include <GLES2/gl2ext.h> | 8 #include <GLES2/gl2ext.h> |
| 9 #include <stddef.h> | 9 #include <stddef.h> |
| 10 #include <stdint.h> | 10 #include <stdint.h> |
| (...skipping 739 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 750 auto it = std::find(resources_pool_.begin(), resources_pool_.end(), | 750 auto it = std::find(resources_pool_.begin(), resources_pool_.end(), |
| 751 frame_resources); | 751 frame_resources); |
| 752 DCHECK(it != resources_pool_.end()); | 752 DCHECK(it != resources_pool_.end()); |
| 753 // We want the pool to behave in a FIFO way. | 753 // We want the pool to behave in a FIFO way. |
| 754 // This minimizes the chances of locking the buffer that might be | 754 // This minimizes the chances of locking the buffer that might be |
| 755 // still needed for drawing. | 755 // still needed for drawing. |
| 756 std::swap(*it, resources_pool_.back()); | 756 std::swap(*it, resources_pool_.back()); |
| 757 frame_resources->SetIsInUse(false); | 757 frame_resources->SetIsInUse(false); |
| 758 } | 758 } |
| 759 | 759 |
| 760 GpuMemoryBufferVideoFramePool::GpuMemoryBufferVideoFramePool() {} | 760 GpuMemoryBufferVideoFramePool::GpuMemoryBufferVideoFramePool() |
| 761 : weak_ptr_factory_(this) {} |
| 761 | 762 |
| 762 GpuMemoryBufferVideoFramePool::GpuMemoryBufferVideoFramePool( | 763 GpuMemoryBufferVideoFramePool::GpuMemoryBufferVideoFramePool( |
| 763 const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, | 764 const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, |
| 764 const scoped_refptr<base::TaskRunner>& worker_task_runner, | 765 const scoped_refptr<base::TaskRunner>& worker_task_runner, |
| 765 GpuVideoAcceleratorFactories* gpu_factories) | 766 GpuVideoAcceleratorFactories* gpu_factories) |
| 766 : pool_impl_( | 767 : pool_impl_( |
| 767 new PoolImpl(media_task_runner, worker_task_runner, gpu_factories)) { | 768 new PoolImpl(media_task_runner, worker_task_runner, gpu_factories)), |
| 769 weak_ptr_factory_(this) { |
| 768 base::trace_event::MemoryDumpManager::GetInstance()->RegisterDumpProvider( | 770 base::trace_event::MemoryDumpManager::GetInstance()->RegisterDumpProvider( |
| 769 pool_impl_.get(), "GpuMemoryBufferVideoFramePool", media_task_runner); | 771 pool_impl_.get(), "GpuMemoryBufferVideoFramePool", media_task_runner); |
| 770 } | 772 } |
| 771 | 773 |
| 772 GpuMemoryBufferVideoFramePool::~GpuMemoryBufferVideoFramePool() { | 774 GpuMemoryBufferVideoFramePool::~GpuMemoryBufferVideoFramePool() { |
| 773 base::trace_event::MemoryDumpManager::GetInstance()->UnregisterDumpProvider( | 775 base::trace_event::MemoryDumpManager::GetInstance()->UnregisterDumpProvider( |
| 774 pool_impl_.get()); | 776 pool_impl_.get()); |
| 775 } | 777 } |
| 776 | 778 |
| 777 void GpuMemoryBufferVideoFramePool::MaybeCreateHardwareFrame( | 779 void GpuMemoryBufferVideoFramePool::MaybeCreateHardwareFrame( |
| 778 const scoped_refptr<VideoFrame>& video_frame, | 780 const scoped_refptr<VideoFrame>& video_frame, |
| 779 const FrameReadyCB& frame_ready_cb) { | 781 const FrameReadyCB& frame_ready_cb) { |
| 780 DCHECK(video_frame); | 782 DCHECK(video_frame); |
| 781 pool_impl_->CreateHardwareFrame(video_frame, frame_ready_cb); | 783 pool_impl_->CreateHardwareFrame(video_frame, frame_ready_cb); |
| 782 } | 784 } |
| 783 | 785 |
| 786 base::WeakPtr<GpuMemoryBufferVideoFramePool> |
| 787 GpuMemoryBufferVideoFramePool::GetWeakPtr() { |
| 788 return weak_ptr_factory_.GetWeakPtr(); |
| 789 } |
| 790 |
| 784 } // namespace media | 791 } // namespace media |
| OLD | NEW |