| Index: media/base/data_buffer.cc
|
| diff --git a/media/base/data_buffer.cc b/media/base/data_buffer.cc
|
| index b082a18a14bc6ad4f85aba1364c03bb8cbfc3a0c..9a491e355593d251e83dfce1a45da9caf2b34595 100644
|
| --- a/media/base/data_buffer.cc
|
| +++ b/media/base/data_buffer.cc
|
| @@ -30,23 +30,31 @@ DataBuffer::DataBuffer(int buffer_size)
|
| data_.reset(NULL);
|
| }
|
|
|
| -DataBuffer::~DataBuffer() {}
|
| +DataBuffer::DataBuffer(const uint8* data, int data_size)
|
| + : Buffer(base::TimeDelta(), base::TimeDelta()),
|
| + buffer_size_(0),
|
| + data_size_(0) {
|
| + if (data_size == 0)
|
| + return;
|
|
|
| -scoped_refptr<DataBuffer> DataBuffer::CopyFrom(const uint8* data,
|
| - int data_size) {
|
| int padding_size = 0;
|
| #if !defined(OS_ANDROID)
|
| - // Why FF_INPUT_BUFFER_PADDING_SIZE? FFmpeg assumes all input buffers are
|
| - // padded with this value.
|
| + // FFmpeg assumes all input buffers are padded with this value.
|
| padding_size = FF_INPUT_BUFFER_PADDING_SIZE;
|
| #endif
|
|
|
| - scoped_refptr<DataBuffer> data_buffer(
|
| - new DataBuffer(data_size + padding_size));
|
| - memcpy(data_buffer->data_.get(), data, data_size);
|
| - memset(data_buffer->data_.get() + data_size, 0, padding_size);
|
| - data_buffer->SetDataSize(data_size);
|
| - return data_buffer;
|
| + buffer_size_ = data_size + padding_size;
|
| + data_.reset(new uint8[buffer_size_]);
|
| + memcpy(data_.get(), data, data_size);
|
| + memset(data_.get() + data_size, 0, padding_size);
|
| + SetDataSize(data_size);
|
| +}
|
| +
|
| +DataBuffer::~DataBuffer() {}
|
| +
|
| +scoped_refptr<DataBuffer> DataBuffer::CopyFrom(const uint8* data,
|
| + int data_size) {
|
| + return make_scoped_refptr(new DataBuffer(data, data_size));
|
| }
|
|
|
| const uint8* DataBuffer::GetData() const {
|
| @@ -65,7 +73,6 @@ uint8* DataBuffer::GetWritableData() {
|
| return data_.get();
|
| }
|
|
|
| -
|
| void DataBuffer::SetDataSize(int data_size) {
|
| DCHECK_LE(data_size, buffer_size_);
|
| data_size_ = data_size;
|
|
|