summaryrefslogtreecommitdiff
path: root/media/base/data_buffer.cc
diff options
context:
space:
mode:
authorTorne (Richard Coles) <torne@google.com>2012-11-14 11:43:16 +0000
committerTorne (Richard Coles) <torne@google.com>2012-11-14 11:43:16 +0000
commit5821806d5e7f356e8fa4b058a389a808ea183019 (patch)
treee19f4793aac92e2c0d9a01087019a60d6657d838 /media/base/data_buffer.cc
parent8e79a8efe247f109aafd917a69e8a392961b3687 (diff)
downloadchromium_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.cc67
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