summaryrefslogtreecommitdiffstats
path: root/media/base/seekable_buffer.cc
diff options
context:
space:
mode:
authorsergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-29 01:21:27 +0000
committersergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-29 01:21:27 +0000
commit5c86ecf8936269cdc5f00f57b7531cdac7b3e706 (patch)
tree79392d0c2e959af863e2b6d4626a79d039b178ab /media/base/seekable_buffer.cc
parente10eacda58687b9363919a9203181322b649946c (diff)
downloadchromium_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.cc13
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) {