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

Unified Diff: media/capture/video/video_capture_buffer_pool_impl.cc

Issue 2620763003: Reland [Mojo Video Capture] Simplify media::VideoCaptureDevice::Client:Buffer to a struct (Closed)
Patch Set: Let Buffer::HandleProvider provide a handle for legacy IPC instead of requiring wrapping/unwrapping. Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: media/capture/video/video_capture_buffer_pool_impl.cc
diff --git a/media/capture/video/video_capture_buffer_pool_impl.cc b/media/capture/video/video_capture_buffer_pool_impl.cc
index 7bc10e16e9e2b4bcd2f18b186e64c5d3ad3cfc48..da6857fa2222be28b73e647d6c70df3cbba943c8 100644
--- a/media/capture/video/video_capture_buffer_pool_impl.cc
+++ b/media/capture/video/video_capture_buffer_pool_impl.cc
@@ -27,8 +27,8 @@ VideoCaptureBufferPoolImpl::VideoCaptureBufferPoolImpl(
VideoCaptureBufferPoolImpl::~VideoCaptureBufferPoolImpl() {}
-mojo::ScopedSharedBufferHandle VideoCaptureBufferPoolImpl::GetHandleForTransit(
- int buffer_id) {
+mojo::ScopedSharedBufferHandle
+VideoCaptureBufferPoolImpl::GetHandleForInterProcessTransit(int buffer_id) {
base::AutoLock lock(lock_);
VideoCaptureBufferTracker* tracker = GetTracker(buffer_id);
@@ -39,18 +39,30 @@ mojo::ScopedSharedBufferHandle VideoCaptureBufferPoolImpl::GetHandleForTransit(
return tracker->GetHandleForTransit();
}
+base::SharedMemoryHandle
+VideoCaptureBufferPoolImpl::GetNonOwnedSharedMemoryHandleForLegacyIPC(
+ int buffer_id) {
+ base::AutoLock lock(lock_);
+
+ VideoCaptureBufferTracker* tracker = GetTracker(buffer_id);
+ if (!tracker) {
+ NOTREACHED() << "Invalid buffer_id.";
+ return base::SharedMemoryHandle();
+ }
+ return tracker->GetNonOwnedSharedMemoryHandleForLegacyIPC();
+}
+
std::unique_ptr<VideoCaptureBufferHandle>
-VideoCaptureBufferPoolImpl::GetBufferHandle(int buffer_id) {
+VideoCaptureBufferPoolImpl::GetHandleForInProcessAccess(int buffer_id) {
base::AutoLock lock(lock_);
VideoCaptureBufferTracker* tracker = GetTracker(buffer_id);
if (!tracker) {
NOTREACHED() << "Invalid buffer_id.";
- return std::unique_ptr<VideoCaptureBufferHandle>();
+ return nullptr;
}
- DCHECK(tracker->held_by_producer());
- return tracker->GetBufferHandle();
+ return tracker->GetMemoryMappedAccess();
}
int VideoCaptureBufferPoolImpl::ReserveForProducer(

Powered by Google App Engine
This is Rietveld 408576698