summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorxhwang@chromium.org <xhwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-26 08:15:05 +0000
committerxhwang@chromium.org <xhwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-26 08:15:05 +0000
commitdb9dbcfda097cdde3dadff13352006be8835bdcb (patch)
tree4c5f08b96fd8a38ac3856902f6bb9e58fea9c197 /media
parent056bbb31eb3208dda716590e3544a00fe1e38956 (diff)
downloadchromium_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.h6
-rw-r--r--media/base/data_buffer_unittest.cc15
-rw-r--r--media/base/seekable_buffer.cc4
-rw-r--r--media/base/seekable_buffer_unittest.cc11
-rw-r--r--media/filters/ffmpeg_audio_decoder.cc5
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_;