Chromium Code Reviews| Index: media/base/video_frame_pool.cc |
| diff --git a/media/base/video_frame_pool.cc b/media/base/video_frame_pool.cc |
| index ac021348c14e82d6fe6e2fcd011838fc23c0a58a..3211b5101dca6cd3c3ea2ca9bba1358910c9fa2b 100644 |
| --- a/media/base/video_frame_pool.cc |
| +++ b/media/base/video_frame_pool.cc |
| @@ -20,11 +20,14 @@ class VideoFramePool::PoolImpl |
| // Returns a frame from the pool that matches the specified |
| // parameters or creates a new frame if no suitable frame exists in |
| // the pool. The pool is drained if no matching frame is found. |
| + // If it is to create a new frame and |zero_init_new_allocations| is |
|
DaleCurtis
2015/07/09 23:29:44
nit: If a new frame must be created and |zero_new_
emircan
2015/07/10 00:22:53
Done.
|
| + // true, it will zero initialize the buffer after allocation. |
| scoped_refptr<VideoFrame> CreateFrame(VideoFrame::Format format, |
| const gfx::Size& coded_size, |
| const gfx::Rect& visible_rect, |
| const gfx::Size& natural_size, |
| - base::TimeDelta timestamp); |
| + base::TimeDelta timestamp, |
| + bool zero_init_new_allocations); |
| // Shuts down the frame pool and releases all frames in |frames_|. |
| // Once this is called frames will no longer be inserted back into |
| @@ -60,7 +63,8 @@ scoped_refptr<VideoFrame> VideoFramePool::PoolImpl::CreateFrame( |
| const gfx::Size& coded_size, |
| const gfx::Rect& visible_rect, |
| const gfx::Size& natural_size, |
| - base::TimeDelta timestamp) { |
| + base::TimeDelta timestamp, |
| + bool zero_init_new_allocations) { |
| base::AutoLock auto_lock(lock_); |
| DCHECK(!is_shutdown_); |
| @@ -83,6 +87,8 @@ scoped_refptr<VideoFrame> VideoFramePool::PoolImpl::CreateFrame( |
| if (!frame.get()) { |
| frame = VideoFrame::CreateFrame( |
| format, coded_size, visible_rect, natural_size, timestamp); |
| + if (zero_init_new_allocations) |
| + memset(frame->data(0), 0, VideoFrame::AlignedAllocationSize(frame)); |
| } |
| scoped_refptr<VideoFrame> wrapped_frame = VideoFrame::WrapVideoFrame( |
| @@ -119,9 +125,10 @@ scoped_refptr<VideoFrame> VideoFramePool::CreateFrame( |
| const gfx::Size& coded_size, |
| const gfx::Rect& visible_rect, |
| const gfx::Size& natural_size, |
| - base::TimeDelta timestamp) { |
| + base::TimeDelta timestamp, |
| + bool zero_init_new_allocations) { |
| return pool_->CreateFrame(format, coded_size, visible_rect, natural_size, |
| - timestamp); |
| + timestamp, zero_init_new_allocations); |
| } |
| size_t VideoFramePool::GetPoolSizeForTesting() const { |