summaryrefslogtreecommitdiffstats
path: root/chromium/media/fuchsia/common/vmo_buffer_writer_queue.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/media/fuchsia/common/vmo_buffer_writer_queue.cc')
-rw-r--r--chromium/media/fuchsia/common/vmo_buffer_writer_queue.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/chromium/media/fuchsia/common/vmo_buffer_writer_queue.cc b/chromium/media/fuchsia/common/vmo_buffer_writer_queue.cc
index b983e0033ec..902d19cb5ab 100644
--- a/chromium/media/fuchsia/common/vmo_buffer_writer_queue.cc
+++ b/chromium/media/fuchsia/common/vmo_buffer_writer_queue.cc
@@ -86,7 +86,15 @@ void VmoBufferWriterQueue::PumpPackets() {
PendingBuffer* current_buffer = &pending_buffers_[input_queue_position_];
if (current_buffer->buffer->end_of_stream()) {
- pending_buffers_.pop_front();
+ // Pop the EndOfStream buffer if it's the only buffer. Otherwise, mark it
+ // as complete so that ReleaseBuffer will pop it.
+ if (input_queue_position_ == 0) {
+ pending_buffers_.pop_front();
+ DCHECK(pending_buffers_.empty());
+ } else {
+ current_buffer->is_complete = true;
+ input_queue_position_ += 1;
+ }
end_of_stream_cb_.Run();
if (!weak_this)
return;