summaryrefslogtreecommitdiff
path: root/media/base/data_buffer.cc
diff options
context:
space:
mode:
authorTorne (Richard Coles) <torne@google.com>2013-03-28 15:31:22 +0000
committerTorne (Richard Coles) <torne@google.com>2013-03-28 15:31:22 +0000
commit2a99a7e74a7f215066514fe81d2bfa6639d9eddd (patch)
tree7c2d04841fcd599fd83b0f0bb1100e1c89a35bae /media/base/data_buffer.cc
parent61c449bbbb53310a8c041d8cefdd6b01a126cc7e (diff)
downloadchromium_org-2a99a7e74a7f215066514fe81d2bfa6639d9eddd.tar.gz
Merge from Chromium at DEPS revision r190564
This commit was generated by merge_to_master.py. Change-Id: Icadecbce29854b8fa25fd335b2c1949b5ca5d170
Diffstat (limited to 'media/base/data_buffer.cc')
-rw-r--r--media/base/data_buffer.cc89
1 files changed, 60 insertions, 29 deletions
diff --git a/media/base/data_buffer.cc b/media/base/data_buffer.cc
index 28ca491eb6..898a477470 100644
--- a/media/base/data_buffer.cc
+++ b/media/base/data_buffer.cc
@@ -8,60 +8,91 @@
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_size_(buffer_size),
+ data_size_(0) {
+ CHECK_GE(buffer_size, 0);
+ data_.reset(new uint8[buffer_size_]);
}
-DataBuffer::DataBuffer(int buffer_size)
- : Buffer(base::TimeDelta(), base::TimeDelta()),
+DataBuffer::DataBuffer(scoped_array<uint8> buffer, int buffer_size)
+ : data_(buffer.Pass()),
buffer_size_(buffer_size),
- data_size_(0) {
- Initialize();
+ data_size_(buffer_size) {
+ CHECK(data_.get());
+ CHECK_GE(buffer_size, 0);
}
DataBuffer::DataBuffer(const uint8* data, int data_size)
- : Buffer(base::TimeDelta(), base::TimeDelta()),
- buffer_size_(data_size),
+ : buffer_size_(data_size),
data_size_(data_size) {
- Initialize();
+ if (!data) {
+ CHECK_EQ(data_size, 0);
+ return;
+ }
+
+ CHECK_GE(data_size, 0);
+ data_.reset(new uint8[buffer_size_]);
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;
- }
+// static
+scoped_refptr<DataBuffer> DataBuffer::CopyFrom(const uint8* data, int size) {
+ // If you hit this CHECK you likely have a bug in a demuxer. Go fix it.
+ CHECK(data);
+ return make_scoped_refptr(new DataBuffer(data, size));
+}
- data_.reset(new uint8[buffer_size_]);
+// static
+scoped_refptr<DataBuffer> DataBuffer::CreateEOSBuffer() {
+ return make_scoped_refptr(new DataBuffer(NULL, 0));
}
-const uint8* DataBuffer::GetData() const {
- return data_.get();
+base::TimeDelta DataBuffer::GetTimestamp() const {
+ DCHECK(!IsEndOfStream());
+ return timestamp_;
}
-int DataBuffer::GetDataSize() const {
- return data_size_;
+void DataBuffer::SetTimestamp(const base::TimeDelta& timestamp) {
+ DCHECK(!IsEndOfStream());
+ timestamp_ = timestamp;
+}
+
+base::TimeDelta DataBuffer::GetDuration() const {
+ DCHECK(!IsEndOfStream());
+ return duration_;
+}
+
+void DataBuffer::SetDuration(const base::TimeDelta& duration) {
+ DCHECK(!IsEndOfStream());
+ duration_ = duration;
+}
+
+bool DataBuffer::IsEndOfStream() const {
+ return data_ == NULL;
+}
+
+const uint8* DataBuffer::GetData() const {
+ DCHECK(!IsEndOfStream());
+ return data_.get();
}
uint8* DataBuffer::GetWritableData() {
+ DCHECK(!IsEndOfStream());
return data_.get();
}
-void DataBuffer::SetDataSize(int data_size) {
- DCHECK_LE(data_size, buffer_size_);
- data_size_ = data_size;
+int DataBuffer::GetDataSize() const {
+ DCHECK(!IsEndOfStream());
+ return data_size_;
}
-int DataBuffer::GetBufferSize() const {
- return buffer_size_;
+void DataBuffer::SetDataSize(int data_size) {
+ DCHECK(!IsEndOfStream());
+ CHECK_LE(data_size, buffer_size_);
+ data_size_ = data_size;
}
} // namespace media