Index: media/capture/video/shared_memory_buffer_tracker.h |
diff --git a/content/browser/renderer_host/media/shared_memory_buffer_handle.h b/media/capture/video/shared_memory_buffer_tracker.h |
similarity index 46% |
rename from content/browser/renderer_host/media/shared_memory_buffer_handle.h |
rename to media/capture/video/shared_memory_buffer_tracker.h |
index eaa00917ecaf6a346996aa551f6deb4a5831cd4b..1b6ceb9a6a65e286663bac142d0af9c77e2a7189 100644 |
--- a/content/browser/renderer_host/media/shared_memory_buffer_handle.h |
+++ b/media/capture/video/shared_memory_buffer_tracker.h |
@@ -2,18 +2,39 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#ifndef CONTENT_BROWSER_RENDERER_HOST_MEDIA_SHARED_MEMORY_BUFFER_HANDLE_H_ |
-#define CONTENT_BROWSER_RENDERER_HOST_MEDIA_SHARED_MEMORY_BUFFER_HANDLE_H_ |
+#ifndef MEDIA_CAPTURE_VIDEO_SHARED_MEMORY_BUFFER_TRACKER_H_ |
+#define MEDIA_CAPTURE_VIDEO_SHARED_MEMORY_BUFFER_TRACKER_H_ |
-#include "media/capture/video/video_capture_buffer_handle.h" |
+#include "media/capture/video/video_capture_buffer_tracker.h" |
-namespace content { |
+namespace media { |
-class SharedMemoryBufferTracker; |
+class SharedMemoryBufferHandle; |
+ |
+// Tracker specifics for SharedMemory. |
+class SharedMemoryBufferTracker final : public VideoCaptureBufferTracker { |
+ public: |
+ SharedMemoryBufferTracker(); |
+ |
+ bool Init(const gfx::Size& dimensions, |
+ VideoPixelFormat format, |
+ VideoPixelStorage storage_type, |
+ base::Lock* lock) override; |
+ |
+ std::unique_ptr<VideoCaptureBufferHandle> GetBufferHandle() override; |
+ mojo::ScopedSharedBufferHandle GetHandleForTransit() override; |
+ |
+ private: |
+ friend class SharedMemoryBufferHandle; |
+ |
+ // The memory created to be shared with renderer processes. |
+ base::SharedMemory shared_memory_; |
+ size_t mapped_size_; |
+}; |
// A simple proxy that implements the BufferHandle interface, providing |
// accessors to SharedMemTracker's memory and properties. |
-class SharedMemoryBufferHandle : public media::VideoCaptureBufferHandle { |
+class SharedMemoryBufferHandle : public VideoCaptureBufferHandle { |
public: |
// |tracker| must outlive SimpleBufferHandle. This is ensured since a |
// tracker is pinned until ownership of this SimpleBufferHandle is returned |
@@ -28,12 +49,12 @@ class SharedMemoryBufferHandle : public media::VideoCaptureBufferHandle { |
base::FileDescriptor AsPlatformFile() override; |
#endif |
bool IsBackedByVideoFrame() const override; |
- scoped_refptr<media::VideoFrame> GetVideoFrame() override; |
+ scoped_refptr<VideoFrame> GetVideoFrame() override; |
private: |
SharedMemoryBufferTracker* const tracker_; |
}; |
-} // namespace content |
+} // namespace media |
-#endif // CONTENT_BROWSER_RENDERER_HOST_MEDIA_SHARED_MEMORY_BUFFER_HANDLE_H_ |
+#endif // MEDIA_CAPTURE_VIDEO_SHARED_MEMORY_BUFFER_TRACKER_H_ |