diff options
author | Torne (Richard Coles) <torne@google.com> | 2012-11-14 11:43:16 +0000 |
---|---|---|
committer | Torne (Richard Coles) <torne@google.com> | 2012-11-14 11:43:16 +0000 |
commit | 5821806d5e7f356e8fa4b058a389a808ea183019 (patch) | |
tree | e19f4793aac92e2c0d9a01087019a60d6657d838 /media/base/data_buffer.cc | |
parent | 8e79a8efe247f109aafd917a69e8a392961b3687 (diff) | |
download | chromium_org-5821806d5e7f356e8fa4b058a389a808ea183019.tar.gz |
Merge from Chromium at DEPS revision r167172
This commit was generated by merge_to_master.py.
Change-Id: Ib8d56fd5ae39a2d7e8c91dcd76cc6d13f25f2aab
Diffstat (limited to 'media/base/data_buffer.cc')
-rw-r--r-- | media/base/data_buffer.cc | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/media/base/data_buffer.cc b/media/base/data_buffer.cc new file mode 100644 index 0000000000..28ca491eb6 --- /dev/null +++ b/media/base/data_buffer.cc @@ -0,0 +1,67 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "media/base/data_buffer.h" + +#include "base/logging.h" + +namespace media { + +DataBuffer::DataBuffer(scoped_array<uint8> buffer, int buffer_size) + : Buffer(base::TimeDelta(), base::TimeDelta()), + data_(buffer.Pass()), + buffer_size_(buffer_size), + data_size_(buffer_size) { +} + +DataBuffer::DataBuffer(int buffer_size) + : Buffer(base::TimeDelta(), base::TimeDelta()), + buffer_size_(buffer_size), + data_size_(0) { + Initialize(); +} + +DataBuffer::DataBuffer(const uint8* data, int data_size) + : Buffer(base::TimeDelta(), base::TimeDelta()), + buffer_size_(data_size), + data_size_(data_size) { + Initialize(); + memcpy(data_.get(), data, data_size_); +} + +DataBuffer::~DataBuffer() {} + +void DataBuffer::Initialize() { + // Prevent arbitrary pointers. + if (buffer_size_ <= 0) { + buffer_size_ = data_size_ = 0; + data_.reset(); + return; + } + + data_.reset(new uint8[buffer_size_]); +} + +const uint8* DataBuffer::GetData() const { + return data_.get(); +} + +int DataBuffer::GetDataSize() const { + return data_size_; +} + +uint8* DataBuffer::GetWritableData() { + return data_.get(); +} + +void DataBuffer::SetDataSize(int data_size) { + DCHECK_LE(data_size, buffer_size_); + data_size_ = data_size; +} + +int DataBuffer::GetBufferSize() const { + return buffer_size_; +} + +} // namespace media |