Index: media/base/video_frame.cc |
diff --git a/media/base/video_frame.cc b/media/base/video_frame.cc |
index 5f0d7282c6e01aedfe0861ee90e55e2cb319b7c1..261d950146f833744d9a725ac6a8f61d1549f467 100644 |
--- a/media/base/video_frame.cc |
+++ b/media/base/video_frame.cc |
@@ -886,6 +886,23 @@ uint8* VideoFrame::data(size_t plane) const { |
return data_[plane]; |
} |
+uint8* VideoFrame::visible_data(size_t plane) const { |
+ uint8* coded_data = data(plane); |
+ const int coded_stride = stride(plane); |
+ switch (plane) { |
+ case kYPlane: |
+ case kAPlane: |
+ return coded_data + visible_rect_.y() * coded_stride + visible_rect_.x(); |
+ case kUPlane: |
+ case kVPlane: |
+ return coded_data + visible_rect_.y() / 2 * coded_stride + |
+ visible_rect_.x() / 2; |
+ default: |
+ NOTIMPLEMENTED(); |
+ return NULL; |
+ } |
+} |
+ |
const gpu::MailboxHolder* VideoFrame::mailbox_holder() const { |
DCHECK_EQ(format_, NATIVE_TEXTURE); |
return mailbox_holder_.get(); |