diff options
author | xhwang@chromium.org <xhwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-26 08:15:05 +0000 |
---|---|---|
committer | xhwang@chromium.org <xhwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-26 08:15:05 +0000 |
commit | db9dbcfda097cdde3dadff13352006be8835bdcb (patch) | |
tree | 4c5f08b96fd8a38ac3856902f6bb9e58fea9c197 /media | |
parent | 056bbb31eb3208dda716590e3544a00fe1e38956 (diff) | |
download | chromium_src-db9dbcfda097cdde3dadff13352006be8835bdcb.zip chromium_src-db9dbcfda097cdde3dadff13352006be8835bdcb.tar.gz chromium_src-db9dbcfda097cdde3dadff13352006be8835bdcb.tar.bz2 |
Make media::DataBuffer::DataBuffer(data, size) public.
TBR=viettrungluu@chromium.org
BUG=none
TEST=media_unittests
Review URL: https://chromiumcodereview.appspot.com/11274066
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@164289 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r-- | media/base/data_buffer.h | 6 | ||||
-rw-r--r-- | media/base/data_buffer_unittest.cc | 15 | ||||
-rw-r--r-- | media/base/seekable_buffer.cc | 4 | ||||
-rw-r--r-- | media/base/seekable_buffer_unittest.cc | 11 | ||||
-rw-r--r-- | media/filters/ffmpeg_audio_decoder.cc | 5 |
5 files changed, 21 insertions, 20 deletions
diff --git a/media/base/data_buffer.h b/media/base/data_buffer.h index 68c6f60..96e9af5 100644 --- a/media/base/data_buffer.h +++ b/media/base/data_buffer.h @@ -24,6 +24,10 @@ class MEDIA_EXPORT DataBuffer : public Buffer { // set to a NULL ptr. explicit DataBuffer(int buffer_size); + // Allocates buffer of size |data_size|, copies [data,data+data_size) to + // the allocated buffer and sets data size to |data_size|. + DataBuffer(const uint8* data, int data_size); + // Buffer implementation. virtual const uint8* GetData() const OVERRIDE; virtual int GetDataSize() const OVERRIDE; @@ -39,8 +43,6 @@ class MEDIA_EXPORT DataBuffer : public Buffer { virtual int GetBufferSize() const; protected: - // Copies from [data,data+size) to owned array. - DataBuffer(const uint8* data, int size); virtual ~DataBuffer(); private: diff --git a/media/base/data_buffer_unittest.cc b/media/base/data_buffer_unittest.cc index d685a87..71d8389 100644 --- a/media/base/data_buffer_unittest.cc +++ b/media/base/data_buffer_unittest.cc @@ -9,14 +9,23 @@ namespace media { TEST(DataBufferTest, Constructors) { - const int kTestSize = 10; + const uint8 kTestData[] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77 }; + const int kTestDataSize = arraysize(kTestData); scoped_refptr<DataBuffer> buffer(new DataBuffer(0)); EXPECT_FALSE(buffer->GetData()); - scoped_refptr<DataBuffer> buffer2(new DataBuffer(kTestSize)); + scoped_refptr<DataBuffer> buffer2(new DataBuffer(kTestDataSize)); EXPECT_EQ(0, buffer2->GetDataSize()); - EXPECT_EQ(kTestSize, buffer2->GetBufferSize()); + EXPECT_EQ(kTestDataSize, buffer2->GetBufferSize()); + + scoped_refptr<DataBuffer> buffer3(new DataBuffer(kTestData, kTestDataSize)); + EXPECT_EQ(kTestDataSize, buffer3->GetDataSize()); + EXPECT_EQ(kTestDataSize, buffer3->GetBufferSize()); + ASSERT_EQ(0, memcmp(buffer3->GetData(), kTestData, kTestDataSize)); + // Ensure we are copying the data, not just pointing to the original data. + buffer3->GetWritableData()[0] = 0xFF; + ASSERT_NE(0, memcmp(buffer3->GetData(), kTestData, kTestDataSize)); } TEST(DataBufferTest, ReadingWriting) { diff --git a/media/base/seekable_buffer.cc b/media/base/seekable_buffer.cc index 8cfcf98..48c0858 100644 --- a/media/base/seekable_buffer.cc +++ b/media/base/seekable_buffer.cc @@ -89,9 +89,7 @@ bool SeekableBuffer::Append(Buffer* buffer_in) { bool SeekableBuffer::Append(const uint8* data, int size) { if (size > 0) { - DataBuffer* data_buffer = new DataBuffer(size); - memcpy(data_buffer->GetWritableData(), data, size); - data_buffer->SetDataSize(size); + DataBuffer* data_buffer = new DataBuffer(data, size); return Append(data_buffer); } else { // Return true if we have forward capacity. diff --git a/media/base/seekable_buffer_unittest.cc b/media/base/seekable_buffer_unittest.cc index cc8cd09..38d36a6 100644 --- a/media/base/seekable_buffer_unittest.cc +++ b/media/base/seekable_buffer_unittest.cc @@ -36,7 +36,7 @@ class SeekableBufferTest : public testing::Test { return rand() % maximum + 1; } - media::SeekableBuffer buffer_; + SeekableBuffer buffer_; uint8 data_[kDataSize]; uint8 write_buffer_[kDataSize]; }; @@ -225,9 +225,7 @@ TEST_F(SeekableBufferTest, SeekBackward) { TEST_F(SeekableBufferTest, GetCurrentChunk) { const int kSeekSize = kWriteSize / 3; - scoped_refptr<media::DataBuffer> buffer(new media::DataBuffer(kWriteSize)); - memcpy(buffer->GetWritableData(), data_, kWriteSize); - buffer->SetDataSize(kWriteSize); + scoped_refptr<DataBuffer> buffer(new DataBuffer(data_, kWriteSize)); const uint8* data; int size; @@ -289,7 +287,6 @@ TEST_F(SeekableBufferTest, AllMethods) { EXPECT_EQ(0, buffer_.backward_bytes()); } - TEST_F(SeekableBufferTest, GetTime) { const int64 kNoTS = kNoTimestamp().ToInternalValue(); const struct { @@ -331,9 +328,7 @@ TEST_F(SeekableBufferTest, GetTime) { EXPECT_EQ(kNoTimestamp().ToInternalValue(), buffer_.current_time().ToInternalValue()); - scoped_refptr<media::DataBuffer> buffer(new media::DataBuffer(kWriteSize)); - memcpy(buffer->GetWritableData(), data_, kWriteSize); - buffer->SetDataSize(kWriteSize); + scoped_refptr<DataBuffer> buffer(new DataBuffer(data_, kWriteSize)); for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { buffer->SetTimestamp(base::TimeDelta::FromMicroseconds( diff --git a/media/filters/ffmpeg_audio_decoder.cc b/media/filters/ffmpeg_audio_decoder.cc index 68f8efa..517fef2 100644 --- a/media/filters/ffmpeg_audio_decoder.cc +++ b/media/filters/ffmpeg_audio_decoder.cc @@ -323,10 +323,7 @@ void FFmpegAudioDecoder::DoDecodeBuffer( << "Decoder didn't output full frames"; // Copy the audio samples into an output buffer. - output = new DataBuffer(decoded_audio_size); - output->SetDataSize(decoded_audio_size); - uint8* data = output->GetWritableData(); - memcpy(data, decoded_audio_data, decoded_audio_size); + output = new DataBuffer(decoded_audio_data, decoded_audio_size); base::TimeDelta timestamp = GetNextOutputTimestamp(); total_frames_decoded_ += decoded_audio_size / bytes_per_frame_; |