Chromium Code Reviews| Index: media/base/video_frame.h |
| diff --git a/media/base/video_frame.h b/media/base/video_frame.h |
| index cebed0af11a47aea5537b92346d97cebae1ef05f..784ef9db06c293b4bfa93ec5248b09ee4609ef53 100644 |
| --- a/media/base/video_frame.h |
| +++ b/media/base/video_frame.h |
| @@ -147,6 +147,22 @@ class MEDIA_EXPORT VideoFrame : public base::RefCountedThreadSafe<VideoFrame> { |
| base::TimeDelta timestamp, |
| const base::Closure& no_longer_needed_cb); |
| + // Similar to the above function except with const pointers. The pointers will |
| + // be protected with run-time checks. |
| + static scoped_refptr<VideoFrame> WrapExternalYuvConstData( |
| + Format format, |
| + const gfx::Size& coded_size, |
| + const gfx::Rect& visible_rect, |
| + const gfx::Size& natural_size, |
| + int32 y_stride, |
| + int32 u_stride, |
| + int32 v_stride, |
| + const uint8* y_data, |
| + const uint8* u_data, |
| + const uint8* v_data, |
| + base::TimeDelta timestamp, |
| + const base::Closure& no_longer_needed_cb); |
| + |
| #if defined(OS_POSIX) |
| // Wraps provided dmabufs |
| // (https://www.kernel.org/doc/Documentation/dma-buf-sharing.txt) with a |
| @@ -269,6 +285,7 @@ class MEDIA_EXPORT VideoFrame : public base::RefCountedThreadSafe<VideoFrame> { |
| // Returns pointer to the buffer for a given plane. The memory is owned by |
| // VideoFrame object and must not be freed by the caller. |
| const uint8* data(size_t plane) const; |
| + // Non-const data access is only allowed if |is_read_only_| is false. |
| uint8* data(size_t plane); |
| // Returns pointer to the data in the visible region of the frame. I.e. the |
| @@ -276,6 +293,7 @@ class MEDIA_EXPORT VideoFrame : public base::RefCountedThreadSafe<VideoFrame> { |
| // visible_rect().origin(). Memory is owned by VideoFrame object and must not |
| // be freed by the caller. |
| const uint8* visible_data(size_t plane) const; |
| + // Non-const data access is only allowed if |is_read_only_| is false. |
| uint8* visible_data(size_t plane); |
| // Returns the mailbox holder of the native texture wrapped by this frame. |
| @@ -382,6 +400,7 @@ class MEDIA_EXPORT VideoFrame : public base::RefCountedThreadSafe<VideoFrame> { |
| // Array of data pointers to each plane. |
| uint8* data_[kMaxPlanes]; |
| + bool is_read_only_; |
|
mcasas
2015/03/06 17:29:59
Having a flag and |data_[]| separated might be an
magjed_chromium
2015/03/07 14:15:10
DCHECKing a read_only flag adds enough to find pla
|
| // Native texture mailbox, if this is a NATIVE_TEXTURE frame. |
| const scoped_ptr<gpu::MailboxHolder> mailbox_holder_; |