Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(26)

Unified Diff: media/base/seekable_buffer.cc

Issue 2008010: Fixes in AlsaPcmOutputStream. (Closed)
Patch Set: - Created 10 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/base/seekable_buffer.cc
diff --git a/media/base/seekable_buffer.cc b/media/base/seekable_buffer.cc
index 0f1cc33cb14ef5ff458c1540169bc888032d6742..15819c13c09f6b0623d3abe6ed2d2abe4bd626e6 100644
--- a/media/base/seekable_buffer.cc
+++ b/media/base/seekable_buffer.cc
@@ -44,6 +44,22 @@ size_t SeekableBuffer::Peek(uint8* data, size_t size) {
return InternalRead(data, size, false);
}
+bool SeekableBuffer::GetCurrentChunk(const uint8** data, size_t* size) const {
+ BufferQueue::iterator current_buffer = current_buffer_;
+ size_t current_buffer_offset = current_buffer_offset_;
+ // Advance position if we are in the end of the current buffer.
+ while (current_buffer != buffers_.end() &&
+ current_buffer_offset >= (*current_buffer)->GetDataSize()) {
+ ++current_buffer;
+ current_buffer_offset = 0;
+ }
+ if (current_buffer == buffers_.end())
+ return false;
+ *data = (*current_buffer)->GetData() + current_buffer_offset;
+ *size = (*current_buffer)->GetDataSize() - current_buffer_offset;
+ return true;
+}
+
bool SeekableBuffer::Append(Buffer* buffer_in) {
if (buffers_.empty() && buffer_in->GetTimestamp().InMicroseconds() > 0) {
current_time_ = buffer_in->GetTimestamp();

Powered by Google App Engine
This is Rietveld 408576698