Chromium Code Reviews| Index: media/video/capture/linux/v4l2_capture_delegate.h |
| diff --git a/media/video/capture/linux/v4l2_capture_delegate.h b/media/video/capture/linux/v4l2_capture_delegate.h |
| index bd0ccad6cf73c30263474a6ca616784c3ca1e33d..153c48a875b1645e8b4f8fb1a5053f4a90d24215 100644 |
| --- a/media/video/capture/linux/v4l2_capture_delegate.h |
| +++ b/media/video/capture/linux/v4l2_capture_delegate.h |
| @@ -66,6 +66,16 @@ class V4L2CaptureDelegate |
| return planes_[plane].start; |
| } |
| + size_t GetPlanePayloadSize(size_t plane) const { |
| + DCHECK_LT(plane, planes_.size()); |
| + return planes_[plane].payload_size; |
| + } |
| + |
| + void SetPlanePayloadSize(size_t plane, size_t payload_size) { |
| + DCHECK_LT(plane, planes_.size()); |
|
wuchengli
2015/05/25 07:51:01
add a DCHECK for |payload_size| <= |length|
kcwu
2015/05/25 07:54:23
Done.
|
| + planes_[plane].payload_size = payload_size; |
| + } |
| + |
| protected: |
| friend class base::RefCounted<BufferTracker>; |
| virtual ~BufferTracker(); |
| @@ -76,6 +86,7 @@ class V4L2CaptureDelegate |
| struct Plane { |
| uint8_t* start; |
| size_t length; |
| + size_t payload_size; |
| }; |
| std::vector<Plane> planes_; |
| }; |
| @@ -98,6 +109,12 @@ class V4L2CaptureDelegate |
| // Finish filling |buffer| struct with planarity-dependent data. |
| virtual void FinishFillingV4L2Buffer(v4l2_buffer* buffer) const = 0; |
| + // Fetch the number of bytes occupied by data in |buffer| and set to |
| + // |buffer_tracker|. |
| + virtual void SetPayloadSize( |
| + const scoped_refptr<BufferTracker>& buffer_tracker, |
| + const v4l2_buffer& buffer) const = 0; |
| + |
| // Sends the captured |buffer| to the |client_|, synchronously. |
| virtual void SendBuffer( |
| const scoped_refptr<BufferTracker>& buffer_tracker, |