Material PDF: Restore animated entry and exit of viewer toolbars
[chromium-blink-merge.git] / media / base / data_buffer.cc
blob9d6afaf8d2f4e2ce7d964f2b2a47875683c39b1f
1 // Copyright (c) 2012 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.
5 #include "media/base/data_buffer.h"
8 namespace media {
10 DataBuffer::DataBuffer(int buffer_size)
11 : buffer_size_(buffer_size),
12 data_size_(0) {
13 CHECK_GE(buffer_size, 0);
14 data_.reset(new uint8[buffer_size_]);
17 DataBuffer::DataBuffer(scoped_ptr<uint8[]> buffer, int buffer_size)
18 : data_(buffer.Pass()),
19 buffer_size_(buffer_size),
20 data_size_(buffer_size) {
21 CHECK(data_.get());
22 CHECK_GE(buffer_size, 0);
25 DataBuffer::DataBuffer(const uint8* data, int data_size)
26 : buffer_size_(data_size),
27 data_size_(data_size) {
28 if (!data) {
29 CHECK_EQ(data_size, 0);
30 return;
33 CHECK_GE(data_size, 0);
34 data_.reset(new uint8[buffer_size_]);
35 memcpy(data_.get(), data, data_size_);
38 DataBuffer::~DataBuffer() {}
40 // static
41 scoped_refptr<DataBuffer> DataBuffer::CopyFrom(const uint8* data, int size) {
42 // If you hit this CHECK you likely have a bug in a demuxer. Go fix it.
43 CHECK(data);
44 return make_scoped_refptr(new DataBuffer(data, size));
47 // static
48 scoped_refptr<DataBuffer> DataBuffer::CreateEOSBuffer() {
49 return make_scoped_refptr(new DataBuffer(NULL, 0));
51 } // namespace media