Index: webrtc/common_video/i420_buffer_pool.cc |
diff --git a/webrtc/common_video/i420_buffer_pool.cc b/webrtc/common_video/i420_buffer_pool.cc |
index 98daec99f66fcf067ae75ad8998940c0f882f037..c70c14bb6ebbfa2e5e39bcbf6475c692a8917223 100644 |
--- a/webrtc/common_video/i420_buffer_pool.cc |
+++ b/webrtc/common_video/i420_buffer_pool.cc |
@@ -53,7 +53,8 @@ class PooledI420Buffer : public webrtc::VideoFrameBuffer { |
namespace webrtc { |
-I420BufferPool::I420BufferPool() { |
+I420BufferPool::I420BufferPool(bool zero_initialize) |
+ : zero_initialize_(zero_initialize) { |
Release(); |
} |
@@ -83,7 +84,11 @@ rtc::scoped_refptr<VideoFrameBuffer> I420BufferPool::CreateBuffer(int width, |
return new rtc::RefCountedObject<PooledI420Buffer>(buffer); |
} |
// Allocate new buffer. |
- buffers_.push_back(new rtc::RefCountedObject<I420Buffer>(width, height)); |
+ rtc::scoped_refptr<I420Buffer> buffer = new rtc::RefCountedObject<I420Buffer>( |
+ width, height); |
+ if (zero_initialize_) |
+ memset(buffer->MutableData(kYPlane), 0, buffer->DataSize()); |
stefan-webrtc
2016/02/01 14:02:08
Is it safe to assume continuous memory here?
hbos
2016/02/02 16:13:03
Yes because it is a pool specifically for I420Buff
|
+ buffers_.push_back(buffer); |
return new rtc::RefCountedObject<PooledI420Buffer>(buffers_.back()); |
} |