Chromium Code Reviews| Index: content/common/gpu/media/shared_memory_region.cc |
| diff --git a/content/common/gpu/media/shared_memory_region.cc b/content/common/gpu/media/shared_memory_region.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..4ee6a24257827978d9746eae9a938e0474248d5c |
| --- /dev/null |
| +++ b/content/common/gpu/media/shared_memory_region.cc |
| @@ -0,0 +1,42 @@ |
| +// Copyright (c) 2015 The Chromium Authors. All rights reserved. |
|
kcwu
2016/03/16 06:20:53
s/(c) 2015/2016/
|
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "base/sys_info.h" |
| +#include "content/common/gpu/media/shared_memory_region.h" |
| + |
| +namespace content { |
| + |
| +SharedMemoryRegion::SharedMemoryRegion(const base::SharedMemoryHandle& handle, |
| + off_t offset, |
| + size_t size, |
| + bool read_only) |
| + : shm_(handle, read_only), |
| + offset_(offset), |
| + size_(size), |
| + alignment_size_(offset % base::SysInfo::VMAllocationGranularity()) { |
|
kcwu
2016/03/16 06:20:53
How about name it |offset_to_alignment| or |paddin
|
| + DCHECK_GE(offset_, 0) << "Invalid offset: " << offset_; |
| +} |
| + |
| +SharedMemoryRegion::SharedMemoryRegion( |
| + const media::BitstreamBuffer& bitstream_buffer, |
| + bool read_only) |
| + : SharedMemoryRegion(bitstream_buffer.handle(), |
| + bitstream_buffer.offset(), |
| + bitstream_buffer.size(), |
| + read_only) {} |
| + |
| +bool SharedMemoryRegion::Map() { |
| + if (offset_ < 0) { |
| + DVLOG(1) << "Invalid offset: " << offset_; |
| + return false; |
| + } |
| + return shm_.MapAt(offset_ - alignment_size_, size_ + alignment_size_); |
| +} |
| + |
| +void* SharedMemoryRegion::memory() { |
| + int8_t* addr = reinterpret_cast<int8_t*>(shm_.memory()); |
| + return addr ? addr + alignment_size_ : nullptr; |
| +} |
| + |
| +} // namespace content |