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"
10 DataBuffer::DataBuffer(int buffer_size
)
11 : buffer_size_(buffer_size
),
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
) {
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
) {
29 CHECK_EQ(data_size
, 0);
33 CHECK_GE(data_size
, 0);
34 data_
.reset(new uint8
[buffer_size_
]);
35 memcpy(data_
.get(), data
, data_size_
);
38 DataBuffer::~DataBuffer() {}
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.
44 return make_scoped_refptr(new DataBuffer(data
, size
));
48 scoped_refptr
<DataBuffer
> DataBuffer::CreateEOSBuffer() {
49 return make_scoped_refptr(new DataBuffer(NULL
, 0));