diff options
author | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-29 01:21:27 +0000 |
---|---|---|
committer | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-29 01:21:27 +0000 |
commit | 5c86ecf8936269cdc5f00f57b7531cdac7b3e706 (patch) | |
tree | 79392d0c2e959af863e2b6d4626a79d039b178ab /media/base/seekable_buffer.cc | |
parent | e10eacda58687b9363919a9203181322b649946c (diff) | |
download | chromium_src-5c86ecf8936269cdc5f00f57b7531cdac7b3e706.zip chromium_src-5c86ecf8936269cdc5f00f57b7531cdac7b3e706.tar.gz chromium_src-5c86ecf8936269cdc5f00f57b7531cdac7b3e706.tar.bz2 |
Add AudioBuffersState struct. Use it for audio synchronization.
The new AudioBuffersState contains current state of the audio buffers. This
object is passed all the way from the device to the audio renderer. Audio
renderer uses this information to synchronize audio.
BUG=52196,49110
TEST=see repro steps for 51637 and 52196.
Review URL: http://codereview.chromium.org/3444017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60891 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/base/seekable_buffer.cc')
-rw-r--r-- | media/base/seekable_buffer.cc | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/media/base/seekable_buffer.cc b/media/base/seekable_buffer.cc index f076ee8..bb61b78 100644 --- a/media/base/seekable_buffer.cc +++ b/media/base/seekable_buffer.cc @@ -89,10 +89,15 @@ bool SeekableBuffer::Append(Buffer* buffer_in) { } bool SeekableBuffer::Append(const uint8* data, size_t size) { - DataBuffer* data_buffer = new DataBuffer(size); - memcpy(data_buffer->GetWritableData(), data, size); - data_buffer->SetDataSize(size); - return Append(data_buffer); + if (size > 0) { + DataBuffer* data_buffer = new DataBuffer(size); + memcpy(data_buffer->GetWritableData(), data, size); + data_buffer->SetDataSize(size); + return Append(data_buffer); + } else { + // Return true if we have forward capacity. + return forward_bytes_ < forward_capacity_; + } } bool SeekableBuffer::Seek(int32 offset) { |