Index: media/capture/video/shared_memory_buffer_tracker.h |
diff --git a/media/capture/video/shared_memory_buffer_tracker.h b/media/capture/video/shared_memory_buffer_tracker.h |
index 1d10727262c689e3cfd85075b7a3f6595624e94b..bbca851336d9f9240e1ea993825852aefe8bc4fe 100644 |
--- a/media/capture/video/shared_memory_buffer_tracker.h |
+++ b/media/capture/video/shared_memory_buffer_tracker.h |
@@ -5,10 +5,11 @@ |
#ifndef MEDIA_CAPTURE_VIDEO_SHARED_MEMORY_BUFFER_TRACKER_H_ |
#define MEDIA_CAPTURE_VIDEO_SHARED_MEMORY_BUFFER_TRACKER_H_ |
-#include "media/capture/video/shared_memory_buffer_handle.h" |
#include "media/capture/video/video_capture_buffer_tracker.h" |
namespace media { |
+ |
+class SharedMemoryBufferHandle; |
// Tracker specifics for SharedMemory. |
class SharedMemoryBufferTracker final : public VideoCaptureBufferTracker { |
@@ -32,6 +33,24 @@ |
size_t mapped_size_; |
}; |
+// A simple proxy that implements the BufferHandle interface, providing |
+// accessors to SharedMemTracker's memory and properties. |
+class SharedMemoryBufferHandle : public VideoCaptureBufferHandle { |
+ public: |
+ // |tracker| must outlive SimpleBufferHandle. This is ensured since a |
+ // tracker is pinned until ownership of this SimpleBufferHandle is returned |
+ // to VideoCaptureBufferPool. |
+ explicit SharedMemoryBufferHandle(SharedMemoryBufferTracker* tracker); |
+ ~SharedMemoryBufferHandle() override; |
+ |
+ size_t mapped_size() const override; |
+ uint8_t* data() override; |
+ const uint8_t* data() const override; |
+ |
+ private: |
+ SharedMemoryBufferTracker* const tracker_; |
+}; |
+ |
} // namespace media |
#endif // MEDIA_CAPTURE_VIDEO_SHARED_MEMORY_BUFFER_TRACKER_H_ |