diff options
author | xhwang@chromium.org <xhwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-09 04:51:59 +0000 |
---|---|---|
committer | xhwang@chromium.org <xhwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-09 04:51:59 +0000 |
commit | e28eae97fd809e993b15eaacb0c9f63297e780f6 (patch) | |
tree | 33f8922facbb1022819ccffa430a7b0e52b78958 /media | |
parent | a45dcafaa5c6e7ef89d17f3028f76fc74a2ee21c (diff) | |
download | chromium_src-e28eae97fd809e993b15eaacb0c9f63297e780f6.zip chromium_src-e28eae97fd809e993b15eaacb0c9f63297e780f6.tar.gz chromium_src-e28eae97fd809e993b15eaacb0c9f63297e780f6.tar.bz2 |
Use scoped_ptr<> and deleter for media::DecoderBuffer::data_.
BUG=150920
TEST=media_unittests pass
Review URL: https://chromiumcodereview.appspot.com/11642054
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175710 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r-- | media/base/decoder_buffer.cc | 31 | ||||
-rw-r--r-- | media/base/decoder_buffer.h | 3 |
2 files changed, 10 insertions, 24 deletions
diff --git a/media/base/decoder_buffer.cc b/media/base/decoder_buffer.cc index 3c298a4..e4af00e 100644 --- a/media/base/decoder_buffer.cc +++ b/media/base/decoder_buffer.cc @@ -7,10 +7,6 @@ #include "base/logging.h" #include "media/base/decrypt_config.h" -#if !defined(OS_ANDROID) -#include "base/memory/aligned_memory.h" -#endif - namespace media { DecoderBuffer::DecoderBuffer(int buffer_size) @@ -23,33 +19,22 @@ DecoderBuffer::DecoderBuffer(const uint8* data, int buffer_size) : Buffer(base::TimeDelta(), base::TimeDelta()), buffer_size_(buffer_size) { // Prevent invalid allocations. Also used to create end of stream buffers. - if (!data) { + if (!data || buffer_size <= 0) { buffer_size_ = 0; - data_ = NULL; return; } Initialize(); - memcpy(data_, data, buffer_size_); + memcpy(data_.get(), data, buffer_size_); } -DecoderBuffer::~DecoderBuffer() { -#if !defined(OS_ANDROID) - base::AlignedFree(data_); -#else - delete[] data_; -#endif -} +DecoderBuffer::~DecoderBuffer() {} void DecoderBuffer::Initialize() { DCHECK_GE(buffer_size_, 0); -#if !defined(OS_ANDROID) - data_ = reinterpret_cast<uint8*>( - base::AlignedAlloc(buffer_size_ + kPaddingSize, kAlignmentSize)); - memset(data_ + buffer_size_, 0, kPaddingSize); -#else - data_ = new uint8[buffer_size_]; -#endif + data_.reset(reinterpret_cast<uint8*>( + base::AlignedAlloc(buffer_size_ + kPaddingSize, kAlignmentSize))); + memset(data_.get() + buffer_size_, 0, kPaddingSize); } scoped_refptr<DecoderBuffer> DecoderBuffer::CopyFrom(const uint8* data, @@ -63,7 +48,7 @@ scoped_refptr<DecoderBuffer> DecoderBuffer::CreateEOSBuffer() { } const uint8* DecoderBuffer::GetData() const { - return data_; + return data_.get(); } int DecoderBuffer::GetDataSize() const { @@ -71,7 +56,7 @@ int DecoderBuffer::GetDataSize() const { } uint8* DecoderBuffer::GetWritableData() { - return data_; + return data_.get(); } const DecryptConfig* DecoderBuffer::GetDecryptConfig() const { diff --git a/media/base/decoder_buffer.h b/media/base/decoder_buffer.h index d0c57ce..50b0855 100644 --- a/media/base/decoder_buffer.h +++ b/media/base/decoder_buffer.h @@ -13,6 +13,7 @@ #ifndef MEDIA_BASE_DECODER_BUFFER_H_ #define MEDIA_BASE_DECODER_BUFFER_H_ +#include "base/memory/aligned_memory.h" #include "base/memory/scoped_ptr.h" #include "build/build_config.h" #include "media/base/buffers.h" @@ -62,7 +63,7 @@ class MEDIA_EXPORT DecoderBuffer : public Buffer { private: int buffer_size_; - uint8* data_; + scoped_ptr<uint8, base::ScopedPtrAlignedFree> data_; scoped_ptr<DecryptConfig> decrypt_config_; // Constructor helper method for memory allocations. |