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 82a10797b353d3b9978411f1ce9e1c7edf878748..bb2ac2ffc26df05148d1c3f8891d97ef8c9f3494 100644 |
--- a/webrtc/common_video/i420_buffer_pool.cc |
+++ b/webrtc/common_video/i420_buffer_pool.cc |
@@ -15,6 +15,9 @@ |
namespace { |
// One extra indirection is needed to make |HasOneRef| work. |
+// TODO(nisse): Why not simply inherit I420Buffer, and override |
magjed_webrtc
2016/04/13 08:30:50
First, you can't override HasOneRef here, because
nisse-webrtc
2016/04/13 08:47:08
I'll investigate this in a separate cl.
The idea
perkj_webrtc
2016/04/14 06:30:42
please remove this todo then and just keep that th
|
+// HasOneRef? Possibly after renaming to IsExclusive or IsMutable or |
perkj_webrtc
2016/04/12 07:18:40
If you want.
|
+// some such. |
class PooledI420Buffer : public webrtc::VideoFrameBuffer { |
public: |
explicit PooledI420Buffer( |
@@ -26,18 +29,27 @@ class PooledI420Buffer : public webrtc::VideoFrameBuffer { |
int width() const override { return buffer_->width(); } |
int height() const override { return buffer_->height(); } |
- const uint8_t* data(webrtc::PlaneType type) const override { |
- return buffer_->data(type); |
+ const uint8_t* DataY() const override { return buffer_->DataY(); } |
perkj_webrtc
2016/04/12 07:18:40
Skip adding getters for Data on cricket::VideoFram
nisse-webrtc
2016/04/13 13:29:56
I don't do that... this is a subclass of VideoFram
|
+ const uint8_t* DataU() const override { return buffer_->DataU(); } |
+ const uint8_t* DataV() const override { return buffer_->DataV(); } |
+ |
+ // Make the HasOneRef() check here instead of in |buffer_|, because the pool |
+ // also has a reference to |buffer_|. |
+ uint8_t* MutableDataY() override { |
+ RTC_DCHECK(HasOneRef()); |
+ return const_cast<uint8_t*>(buffer_->DataY()); |
} |
- uint8_t* MutableData(webrtc::PlaneType type) override { |
- // Make the HasOneRef() check here instead of in |buffer_|, because the pool |
- // also has a reference to |buffer_|. |
+ uint8_t* MutableDataU() override { |
RTC_DCHECK(HasOneRef()); |
- return const_cast<uint8_t*>(buffer_->data(type)); |
+ return const_cast<uint8_t*>(buffer_->DataU()); |
} |
- int stride(webrtc::PlaneType type) const override { |
- return buffer_->stride(type); |
+ uint8_t* MutableDataV() override { |
+ RTC_DCHECK(HasOneRef()); |
+ return const_cast<uint8_t*>(buffer_->DataV()); |
} |
+ int StrideY() const override { return buffer_->StrideY(); } |
+ int StrideU() const override { return buffer_->StrideU(); } |
+ int StrideV() const override { return buffer_->StrideV(); } |
void* native_handle() const override { return nullptr; } |
rtc::scoped_refptr<VideoFrameBuffer> NativeToI420Buffer() override { |