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

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

Issue 2523773002: [Mojo Video Capture] Move SharedMem Tracker/BufferHandle/Factory from content to media (Closed)
Patch Set: mcasas comments Created 4 years 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
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "content/browser/renderer_host/media/shared_memory_buffer_tracker.h"
6
7 #include "base/memory/ptr_util.h"
8 #include "content/browser/renderer_host/media/shared_memory_buffer_handle.h"
9 #include "mojo/public/cpp/system/platform_handle.h"
10
11 namespace content {
12
13 SharedMemoryBufferTracker::SharedMemoryBufferTracker()
14 : VideoCaptureBufferTracker() {}
15
16 bool SharedMemoryBufferTracker::Init(const gfx::Size& dimensions,
17 media::VideoPixelFormat format,
18 media::VideoPixelStorage storage_type,
19 base::Lock* lock) {
20 DVLOG(2) << __func__ << "allocating ShMem of " << dimensions.ToString();
21 set_dimensions(dimensions);
22 // |dimensions| can be 0x0 for trackers that do not require memory backing.
23 set_max_pixel_count(dimensions.GetArea());
24 set_pixel_format(format);
25 set_storage_type(storage_type);
26 mapped_size_ =
27 media::VideoCaptureFormat(dimensions, 0.0f, format, storage_type)
28 .ImageAllocationSize();
29 if (!mapped_size_)
30 return true;
31 return shared_memory_.CreateAndMapAnonymous(mapped_size_);
32 }
33
34 std::unique_ptr<media::VideoCaptureBufferHandle>
35 SharedMemoryBufferTracker::GetBufferHandle() {
36 return base::MakeUnique<SharedMemoryBufferHandle>(this);
37 }
38
39 mojo::ScopedSharedBufferHandle
40 SharedMemoryBufferTracker::GetHandleForTransit() {
41 return mojo::WrapSharedMemoryHandle(
42 base::SharedMemory::DuplicateHandle(shared_memory_.handle()),
43 mapped_size_, false /* read_only */);
44 }
45
46 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698