Chromium Code Reviews| 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..f7a5770e12e2f4b7a718aeb7f9debff155aff1d2 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(plane, 0); |
|
mcasas
2016/11/23 17:23:56
nit: DCHECK_EQ(expected, actual).
chfremer
2016/11/23 17:42:56
Done.
|
| + 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 |