Index: media/capture/video/shared_memory_buffer_tracker.cc |
diff --git a/content/browser/renderer_host/media/shared_memory_buffer_tracker.cc b/media/capture/video/shared_memory_buffer_tracker.cc |
similarity index 49% |
rename from content/browser/renderer_host/media/shared_memory_buffer_tracker.cc |
rename to media/capture/video/shared_memory_buffer_tracker.cc |
index 2ac92b269e44bbbbf11a66611e4057218adb1952..d21e35d7863f9005de4b08b04262f14f827678d9 100644 |
--- a/content/browser/renderer_host/media/shared_memory_buffer_tracker.cc |
+++ b/media/capture/video/shared_memory_buffer_tracker.cc |
@@ -2,20 +2,19 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "content/browser/renderer_host/media/shared_memory_buffer_tracker.h" |
+#include "media/capture/video/shared_memory_buffer_tracker.h" |
#include "base/memory/ptr_util.h" |
-#include "content/browser/renderer_host/media/shared_memory_buffer_handle.h" |
#include "mojo/public/cpp/system/platform_handle.h" |
-namespace content { |
+namespace media { |
SharedMemoryBufferTracker::SharedMemoryBufferTracker() |
: VideoCaptureBufferTracker() {} |
bool SharedMemoryBufferTracker::Init(const gfx::Size& dimensions, |
- media::VideoPixelFormat format, |
- media::VideoPixelStorage storage_type, |
+ VideoPixelFormat format, |
+ VideoPixelStorage storage_type, |
base::Lock* lock) { |
DVLOG(2) << __func__ << "allocating ShMem of " << dimensions.ToString(); |
set_dimensions(dimensions); |
@@ -23,15 +22,14 @@ bool SharedMemoryBufferTracker::Init(const gfx::Size& dimensions, |
set_max_pixel_count(dimensions.GetArea()); |
set_pixel_format(format); |
set_storage_type(storage_type); |
- mapped_size_ = |
- media::VideoCaptureFormat(dimensions, 0.0f, format, storage_type) |
- .ImageAllocationSize(); |
+ mapped_size_ = VideoCaptureFormat(dimensions, 0.0f, format, storage_type) |
+ .ImageAllocationSize(); |
if (!mapped_size_) |
return true; |
return shared_memory_.CreateAndMapAnonymous(mapped_size_); |
} |
-std::unique_ptr<media::VideoCaptureBufferHandle> |
+std::unique_ptr<VideoCaptureBufferHandle> |
SharedMemoryBufferTracker::GetBufferHandle() { |
return base::MakeUnique<SharedMemoryBufferHandle>(this); |
} |
@@ -43,4 +41,37 @@ SharedMemoryBufferTracker::GetHandleForTransit() { |
mapped_size_, false /* read_only */); |
} |
-} // namespace content |
+SharedMemoryBufferHandle::SharedMemoryBufferHandle( |
+ SharedMemoryBufferTracker* tracker) |
+ : tracker_(tracker) {} |
+ |
+SharedMemoryBufferHandle::~SharedMemoryBufferHandle() = default; |
+ |
+gfx::Size SharedMemoryBufferHandle::dimensions() const { |
+ return tracker_->dimensions(); |
+} |
+ |
+size_t SharedMemoryBufferHandle::mapped_size() const { |
+ return tracker_->mapped_size_; |
+} |
+ |
+void* SharedMemoryBufferHandle::data(int plane) { |
+ DCHECK_EQ(0, plane); |
+ return tracker_->shared_memory_.memory(); |
+} |
+ |
+#if defined(OS_POSIX) && !defined(OS_MACOSX) |
+base::FileDescriptor SharedMemoryBufferHandle::AsPlatformFile() { |
+ return tracker_->shared_memory_.handle(); |
+} |
+#endif |
+ |
+bool SharedMemoryBufferHandle::IsBackedByVideoFrame() const { |
+ return false; |
+} |
+ |
+scoped_refptr<VideoFrame> SharedMemoryBufferHandle::GetVideoFrame() { |
+ return scoped_refptr<VideoFrame>(); |
+} |
+ |
+} // namespace media |