Chromium Code Reviews| Index: media/base/data_buffer.cc |
| diff --git a/media/base/data_buffer.cc b/media/base/data_buffer.cc |
| index b082a18a14bc6ad4f85aba1364c03bb8cbfc3a0c..b1af5027778700b4647dd7c788db69f112f36108 100644 |
| --- a/media/base/data_buffer.cc |
| +++ b/media/base/data_buffer.cc |
| @@ -30,23 +30,36 @@ 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) { |
|
Ami GONE FROM CHROMIUM
2012/05/02 17:57:25
Why init to 0 here and then SetDataSize in the bod
vrk (LEFT CHROMIUM)
2012/05/02 19:55:18
Talked offline.
|
| + AllocateBuffer(data_size); |
| + memcpy(data_.get(), data, data_size); |
| + SetDataSize(data_size); |
| +} |
| + |
| +void DataBuffer::AllocateBuffer(int data_size) { |
|
Ami GONE FROM CHROMIUM
2012/05/02 17:57:25
Can this be inlined into the ctor?
vrk (LEFT CHROMIUM)
2012/05/02 19:55:18
Done.
|
| + DCHECK_GE(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_]); |
| + memset(data_.get() + data_size, 0, padding_size); |
| +} |
| + |
| +DataBuffer::~DataBuffer() {} |
| + |
| +scoped_refptr<DataBuffer> DataBuffer::CopyFrom(const uint8* data, |
| + int data_size) { |
| + return scoped_refptr<DataBuffer>(new DataBuffer(data, data_size)); |
| } |
| const uint8* DataBuffer::GetData() const { |
| @@ -65,7 +78,6 @@ uint8* DataBuffer::GetWritableData() { |
| return data_.get(); |
| } |
| - |
| void DataBuffer::SetDataSize(int data_size) { |
| DCHECK_LE(data_size, buffer_size_); |
| data_size_ = data_size; |