Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(532)

Side by Side Diff: content/browser/renderer_host/media/video_capture_buffer_pool.cc

Issue 1163943004: Make SharedMemoryHandle a class on Mac. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@shared_memory_make_class3_base
Patch Set: Fix logic error. Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/renderer_host/media/video_capture_buffer_pool.h" 5 #include "content/browser/renderer_host/media/video_capture_buffer_pool.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 #include "content/browser/gpu/browser_gpu_memory_buffer_manager.h" 10 #include "content/browser/gpu/browser_gpu_memory_buffer_manager.h"
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 : data_(data), size_(size), handle_(handle) {} 65 : data_(data), size_(size), handle_(handle) {}
66 ~SimpleBufferHandle() override {} 66 ~SimpleBufferHandle() override {}
67 67
68 size_t size() const override { return size_; } 68 size_t size() const override { return size_; }
69 void* data() override { return data_; } 69 void* data() override { return data_; }
70 gfx::GpuMemoryBufferType GetType() override { 70 gfx::GpuMemoryBufferType GetType() override {
71 return gfx::SHARED_MEMORY_BUFFER; 71 return gfx::SHARED_MEMORY_BUFFER;
72 } 72 }
73 ClientBuffer AsClientBuffer() override { return nullptr; } 73 ClientBuffer AsClientBuffer() override { return nullptr; }
74 base::PlatformFile AsPlatformFile() override { 74 base::PlatformFile AsPlatformFile() override {
75 #if defined(OS_POSIX) 75 #if defined(OS_MACOSX)
mcasas 2015/06/17 21:33:11 OS_MACOSX implies OS_POSIX, right? [1] [1] https:
erikchen 2015/06/18 17:58:33 I don't understand your question. Yes, OS_MACOSX i
76 return handle_.GetFileDescriptor()->fd;
77 #elif defined(OS_POSIX)
76 return handle_.fd; 78 return handle_.fd;
77 #elif defined(OS_WIN) 79 #elif defined(OS_WIN)
78 return handle_; 80 return handle_;
79 #endif 81 #endif
Nico 2015/06/17 04:03:21 maybe there could be some function for this direct
erikchen 2015/06/17 17:38:55 This change showed up in a recent rebase against t
80 } 82 }
81 83
82 private: 84 private:
83 void* const data_; 85 void* const data_;
84 const size_t size_; 86 const size_t size_;
85 const base::SharedMemoryHandle handle_; 87 const base::SharedMemoryHandle handle_;
86 }; 88 };
87 89
88 // A holder of a GpuMemoryBuffer-backed buffer, Map()ed on ctor and Unmap()ed on 90 // A holder of a GpuMemoryBuffer-backed buffer, Map()ed on ctor and Unmap()ed on
89 // dtor. Holds a weak reference to its GpuMemoryBuffer. 91 // dtor. Holds a weak reference to its GpuMemoryBuffer.
90 // TODO(mcasas) Map()ed on ctor, or on first use? 92 // TODO(mcasas) Map()ed on ctor, or on first use?
91 class GpuMemoryBufferBufferHandle 93 class GpuMemoryBufferBufferHandle
92 final : public VideoCaptureBufferPool::BufferHandle { 94 final : public VideoCaptureBufferPool::BufferHandle {
93 public: 95 public:
94 GpuMemoryBufferBufferHandle(gfx::GpuMemoryBuffer* gmb, size_t size) 96 GpuMemoryBufferBufferHandle(gfx::GpuMemoryBuffer* gmb, size_t size)
95 : gmb_(gmb), 97 : gmb_(gmb),
96 data_(new void* [GpuMemoryBufferImpl:: 98 data_(new void* [GpuMemoryBufferImpl::
97 NumberOfPlanesForGpuMemoryBufferFormat( 99 NumberOfPlanesForGpuMemoryBufferFormat(
98 gmb_->GetFormat())]), 100 gmb_->GetFormat())]),
99 size_(size) { 101 size_(size) {
100 DCHECK(gmb && !gmb_->IsMapped()); 102 DCHECK(gmb && !gmb_->IsMapped());
101 gmb_->Map(data_.get()); 103 gmb_->Map(data_.get());
102 } 104 }
103 ~GpuMemoryBufferBufferHandle() override { gmb_->Unmap(); } 105 ~GpuMemoryBufferBufferHandle() override { gmb_->Unmap(); }
104 106
105 size_t size() const override { return size_; } 107 size_t size() const override { return size_; }
106 void* data() override { return data_[0]; } 108 void* data() override { return data_[0]; }
107 gfx::GpuMemoryBufferType GetType() override { 109 gfx::GpuMemoryBufferType GetType() override {
108 return gmb_->GetHandle().type; 110 return gmb_->GetHandle().type;
reveman 2015/06/17 19:24:10 Unrelated to this patch but the use of GetHandle()
mcasas 2015/06/17 21:33:11 Currently this is just used for a DCHECK and some
109 } 111 }
110 ClientBuffer AsClientBuffer() override { return gmb_->AsClientBuffer(); } 112 ClientBuffer AsClientBuffer() override { return gmb_->AsClientBuffer(); }
111 base::PlatformFile AsPlatformFile() override { 113 base::PlatformFile AsPlatformFile() override {
112 DCHECK_EQ(gmb_->GetHandle().type, gfx::SHARED_MEMORY_BUFFER); 114 DCHECK_EQ(gmb_->GetHandle().type, gfx::SHARED_MEMORY_BUFFER);
113 #if defined(OS_POSIX) 115 #if defined(OS_MACOSX)
116 return gmb_->GetHandle().handle.GetFileDescriptor()->fd;
117 #elif defined(OS_POSIX)
114 return gmb_->GetHandle().handle.fd; 118 return gmb_->GetHandle().handle.fd;
115 #elif defined(OS_WIN) 119 #elif defined(OS_WIN)
116 return gmb_->GetHandle().handle; 120 return gmb_->GetHandle().handle;
117 #endif 121 #endif
118 } 122 }
119 123
120 private: 124 private:
121 gfx::GpuMemoryBuffer* const gmb_; 125 gfx::GpuMemoryBuffer* const gmb_;
122 scoped_ptr<void*[]> data_; 126 scoped_ptr<void*[]> data_;
123 const size_t size_; 127 const size_t size_;
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after
408 return buffer_id; 412 return buffer_id;
409 } 413 }
410 414
411 VideoCaptureBufferPool::Tracker* VideoCaptureBufferPool::GetTracker( 415 VideoCaptureBufferPool::Tracker* VideoCaptureBufferPool::GetTracker(
412 int buffer_id) { 416 int buffer_id) {
413 TrackerMap::const_iterator it = trackers_.find(buffer_id); 417 TrackerMap::const_iterator it = trackers_.find(buffer_id);
414 return (it == trackers_.end()) ? NULL : it->second; 418 return (it == trackers_.end()) ? NULL : it->second;
415 } 419 }
416 420
417 } // namespace content 421 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698