| Index: webrtc/common_video/include/i420_buffer_pool.h
|
| diff --git a/webrtc/common_video/include/i420_buffer_pool.h b/webrtc/common_video/include/i420_buffer_pool.h
|
| index 5c9ab06a097f1afbd0013cc5c6439d7b62890552..834aa4f7c8cbe863f5af4cfdb8dd3ea6538cb975 100644
|
| --- a/webrtc/common_video/include/i420_buffer_pool.h
|
| +++ b/webrtc/common_video/include/i420_buffer_pool.h
|
| @@ -30,14 +30,22 @@ class I420BufferPool {
|
|
|
| // Returns a buffer from the pool, or creates a new buffer if no suitable
|
| // buffer exists in the pool.
|
| - rtc::scoped_refptr<VideoFrameBuffer> CreateBuffer(int width, int height);
|
| + rtc::scoped_refptr<I420Buffer> CreateBuffer(int width, int height);
|
| // Clears buffers_ and detaches the thread checker so that it can be reused
|
| // later from another thread.
|
| void Release();
|
|
|
| private:
|
| + class PooledI420Buffer : public webrtc::I420Buffer {
|
| + public:
|
| + PooledI420Buffer(int width, int height) : I420Buffer(width, height) {}
|
| +
|
| + // Underlying refcount access, used by the pool to check exclusive access.
|
| + virtual bool HasOneRef() const = 0;
|
| + };
|
| +
|
| rtc::ThreadChecker thread_checker_;
|
| - std::list<rtc::scoped_refptr<I420Buffer>> buffers_;
|
| + std::list<rtc::scoped_refptr<PooledI420Buffer>> buffers_;
|
| // If true, newly allocated buffers are zero-initialized. Note that recycled
|
| // buffers are not zero'd before reuse. This is required of buffers used by
|
| // FFmpeg according to http://crbug.com/390941, which only requires it for the
|
|
|