Explicitly resize inner viewport container layer on SetViewportSize
[chromium-blink-merge.git] / media / base / data_buffer.cc
blobd0b40eed1a530146ec5f3350318ba15abfba1783
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"
7 #include "base/logging.h"
9 namespace media {
11 DataBuffer::DataBuffer(int buffer_size)
12 : buffer_size_(buffer_size),
13 data_size_(0) {
14 CHECK_GE(buffer_size, 0);
15 data_.reset(new uint8[buffer_size_]);
18 DataBuffer::DataBuffer(scoped_ptr<uint8[]> buffer, int buffer_size)
19 : data_(buffer.Pass()),
20 buffer_size_(buffer_size),
21 data_size_(buffer_size) {
22 CHECK(data_.get());
23 CHECK_GE(buffer_size, 0);
26 DataBuffer::DataBuffer(const uint8* data, int data_size)
27 : buffer_size_(data_size),
28 data_size_(data_size) {
29 if (!data) {
30 CHECK_EQ(data_size, 0);
31 return;
34 CHECK_GE(data_size, 0);
35 data_.reset(new uint8[buffer_size_]);
36 memcpy(data_.get(), data, data_size_);
39 DataBuffer::~DataBuffer() {}
41 // static
42 scoped_refptr<DataBuffer> DataBuffer::CopyFrom(const uint8* data, int size) {
43 // If you hit this CHECK you likely have a bug in a demuxer. Go fix it.
44 CHECK(data);
45 return make_scoped_refptr(new DataBuffer(data, size));
48 // static
49 scoped_refptr<DataBuffer> DataBuffer::CreateEOSBuffer() {
50 return make_scoped_refptr(new DataBuffer(NULL, 0));
52 } // namespace media