Index: webrtc/common_video/include/video_frame_buffer.h |
diff --git a/webrtc/common_video/include/video_frame_buffer.h b/webrtc/common_video/include/video_frame_buffer.h |
index e78a1d696884354ec4021f3c58fc9da9949eebf2..6f082dee9bae928fbb005027b7262f03bdde3053 100644 |
--- a/webrtc/common_video/include/video_frame_buffer.h |
+++ b/webrtc/common_video/include/video_frame_buffer.h |
@@ -50,16 +50,36 @@ class VideoFrameBuffer : public rtc::RefCountInterface { |
virtual int width() const = 0; |
virtual int height() const = 0; |
+ // TODO(nisse): For the transition, we use default implementations |
+ // of the stride and data methods where the new methods calls the |
+ // old method, and the old method calls the new methods. Subclasses |
+ // must override either the new methods or the old method, to break |
+ // infinite recursion. And similarly for the strides. When |
+ // applications, in particular Chrome, are updated, delete the old |
+ // method and delete the default implementation of the new methods. |
+ |
// Returns pointer to the pixel data for a given plane. The memory is owned by |
// the VideoFrameBuffer object and must not be freed by the caller. |
- virtual const uint8_t* data(PlaneType type) const = 0; |
- |
- // Non-const data access is disallowed by default. You need to make sure you |
- // have exclusive access and a writable buffer before calling this function. |
+ virtual const uint8_t* DataY() const; |
+ virtual const uint8_t* DataU() const; |
+ virtual const uint8_t* DataV() const; |
+ // Deprecated method. |
+ // TODO(nisse): Delete after all users are updated. |
+ virtual const uint8_t* data(PlaneType type) const; |
+ |
+ // Non-const data access is allowed only if HasOneRef() is true. |
+ virtual uint8_t* MutableDataY(); |
+ virtual uint8_t* MutableDataU(); |
+ virtual uint8_t* MutableDataV(); |
+ // Deprecated method. TODO(nisse): Delete after all users are updated. |
virtual uint8_t* MutableData(PlaneType type); |
// Returns the number of bytes between successive rows for a given plane. |
- virtual int stride(PlaneType type) const = 0; |
+ virtual int StrideY() const; |
+ virtual int StrideU() const; |
+ virtual int StrideV() const; |
+ // Deprecated method. TODO(nisse): Delete after all users are updated. |
+ virtual int stride(PlaneType type) const; |
// Return the handle of the underlying video frame. This is used when the |
// frame is backed by a texture. |
@@ -82,12 +102,19 @@ class I420Buffer : public VideoFrameBuffer { |
int width() const override; |
int height() const override; |
- const uint8_t* data(PlaneType type) const override; |
- // Non-const data access is only allowed if HasOneRef() is true to protect |
+ const uint8_t* DataY() const override; |
+ const uint8_t* DataU() const override; |
+ const uint8_t* DataV() const override; |
+ // Non-const data access is only allowed if IsMutable() is true, to protect |
// against unexpected overwrites. |
bool IsMutable() override; |
- uint8_t* MutableData(PlaneType type) override; |
- int stride(PlaneType type) const override; |
+ uint8_t* MutableDataY() override; |
+ uint8_t* MutableDataU() override; |
+ uint8_t* MutableDataV() override; |
+ int StrideY() const override; |
+ int StrideU() const override; |
+ int StrideV() const override; |
+ |
void* native_handle() const override; |
rtc::scoped_refptr<VideoFrameBuffer> NativeToI420Buffer() override; |
@@ -117,8 +144,13 @@ class NativeHandleBuffer : public VideoFrameBuffer { |
int width() const override; |
int height() const override; |
- const uint8_t* data(PlaneType type) const override; |
- int stride(PlaneType type) const override; |
+ const uint8_t* DataY() const override; |
+ const uint8_t* DataU() const override; |
+ const uint8_t* DataV() const override; |
+ int StrideY() const override; |
+ int StrideU() const override; |
+ int StrideV() const override; |
+ |
void* native_handle() const override; |
bool IsMutable() override; |
@@ -144,9 +176,13 @@ class WrappedI420Buffer : public webrtc::VideoFrameBuffer { |
bool IsMutable() override; |
- const uint8_t* data(PlaneType type) const override; |
+ const uint8_t* DataY() const override; |
+ const uint8_t* DataU() const override; |
+ const uint8_t* DataV() const override; |
+ int StrideY() const override; |
+ int StrideU() const override; |
+ int StrideV() const override; |
- int stride(PlaneType type) const override; |
void* native_handle() const override; |
rtc::scoped_refptr<VideoFrameBuffer> NativeToI420Buffer() override; |