Chromium Code Reviews| Index: media/base/data_buffer.cc |
| diff --git a/media/base/data_buffer.cc b/media/base/data_buffer.cc |
| index 9a491e355593d251e83dfce1a45da9caf2b34595..dc1dfd83695afadae070f0a4c26a38cc73ace497 100644 |
| --- a/media/base/data_buffer.cc |
| +++ b/media/base/data_buffer.cc |
| @@ -4,10 +4,6 @@ |
| #include "base/logging.h" |
| #include "media/base/data_buffer.h" |
| -#include "media/base/decrypt_config.h" |
| -#if !defined(OS_ANDROID) |
| -#include "media/ffmpeg/ffmpeg_common.h" |
| -#endif |
| namespace media { |
| @@ -20,38 +16,34 @@ DataBuffer::DataBuffer(scoped_array<uint8> buffer, int buffer_size) |
| DataBuffer::DataBuffer(int buffer_size) |
| : Buffer(base::TimeDelta(), base::TimeDelta()), |
| - data_(new uint8[buffer_size]), |
| buffer_size_(buffer_size), |
| data_size_(0) { |
| - CHECK(data_.get()) << "DataBuffer ctor failed to allocate memory"; |
| - |
| - // Prevent arbitrary pointers. |
| - if (buffer_size == 0) |
| - data_.reset(NULL); |
| + Initialize(); |
| } |
| DataBuffer::DataBuffer(const uint8* data, int data_size) |
| : Buffer(base::TimeDelta(), base::TimeDelta()), |
| - buffer_size_(0), |
| - data_size_(0) { |
| - if (data_size == 0) |
| - return; |
| + buffer_size_(data_size), |
| + data_size_(data_size) { |
| + Initialize(); |
| + // If Initialize fails data_size_ == 0 and this becomes a no-op. |
|
scherkus (not reviewing)
2012/05/26 01:36:32
comment not needed -- it's impossible for Initiali
DaleCurtis
2012/05/29 21:17:01
Done.
|
| + memcpy(data_.get(), data, data_size_); |
| +} |
| - int padding_size = 0; |
| -#if !defined(OS_ANDROID) |
| - // FFmpeg assumes all input buffers are padded with this value. |
| - padding_size = FF_INPUT_BUFFER_PADDING_SIZE; |
| -#endif |
| +DataBuffer::~DataBuffer() {} |
| + |
| +void DataBuffer::Initialize() { |
| + // Prevent arbitrary pointers. |
| + if (buffer_size_ <= 0) { |
| + buffer_size_ = data_size_ = 0; |
| + data_.reset(NULL); |
|
scherkus (not reviewing)
2012/05/26 01:36:32
s/NULL//
DaleCurtis
2012/05/29 21:17:01
Done.
|
| + return; |
| + } |
| - 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); |
| + CHECK(data_.get()) << "DataBuffer ctor failed to allocate memory"; |
|
scherkus (not reviewing)
2012/05/26 01:36:32
I noticed you moved this CHECK around but in fact
DaleCurtis
2012/05/29 21:17:01
Done.
|
| } |
| -DataBuffer::~DataBuffer() {} |
| - |
| scoped_refptr<DataBuffer> DataBuffer::CopyFrom(const uint8* data, |
| int data_size) { |
| return make_scoped_refptr(new DataBuffer(data, data_size)); |
| @@ -65,10 +57,6 @@ int DataBuffer::GetDataSize() const { |
| return data_size_; |
| } |
| -const DecryptConfig* DataBuffer::GetDecryptConfig() const { |
| - return decrypt_config_.get(); |
| -} |
| - |
| uint8* DataBuffer::GetWritableData() { |
| return data_.get(); |
| } |
| @@ -82,8 +70,4 @@ int DataBuffer::GetBufferSize() const { |
| return buffer_size_; |
| } |
| -void DataBuffer::SetDecryptConfig(scoped_ptr<DecryptConfig> decrypt_config) { |
| - decrypt_config_ = decrypt_config.Pass(); |
| -} |
| - |
| } // namespace media |