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

Unified Diff: media/filters/chunk_demuxer.cc

Issue 10669022: Add status parameter to DemuxerStream::ReadCB (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix seek_tester build buster Created 8 years, 5 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/filters/chunk_demuxer.cc
diff --git a/media/filters/chunk_demuxer.cc b/media/filters/chunk_demuxer.cc
index ead7956de6e412d3f4a460aa4bc8a045c0252094..203c91407ab700c8f5c46b894f21077b0f48e3cb 100644
--- a/media/filters/chunk_demuxer.cc
+++ b/media/filters/chunk_demuxer.cc
@@ -241,7 +241,7 @@ void ChunkDemuxerStream::StartWaitingForSeek() {
}
for (ReadCBQueue::iterator it = read_cbs.begin(); it != read_cbs.end(); ++it)
- it->Run(NULL);
+ it->Run(kAborted, NULL);
}
void ChunkDemuxerStream::Seek(TimeDelta time) {
@@ -364,24 +364,26 @@ void ChunkDemuxerStream::Shutdown() {
// Pass end of stream buffers to all callbacks to signal that no more data
// will be sent.
for (ReadCBQueue::iterator it = read_cbs.begin(); it != read_cbs.end(); ++it)
- it->Run(StreamParserBuffer::CreateEOSBuffer());
+ it->Run(DemuxerStream::kOk, StreamParserBuffer::CreateEOSBuffer());
}
// Helper function that makes sure |read_cb| runs on |message_loop|.
static void RunOnMessageLoop(const DemuxerStream::ReadCB& read_cb,
MessageLoop* message_loop,
+ DemuxerStream::Status status,
const scoped_refptr<DecoderBuffer>& buffer) {
if (MessageLoop::current() != message_loop) {
message_loop->PostTask(FROM_HERE, base::Bind(
- &RunOnMessageLoop, read_cb, message_loop, buffer));
+ &RunOnMessageLoop, read_cb, message_loop, status, buffer));
return;
}
- read_cb.Run(buffer);
+ read_cb.Run(status, buffer);
}
// DemuxerStream methods.
void ChunkDemuxerStream::Read(const ReadCB& read_cb) {
+ DemuxerStream::Status status = kOk;
scoped_refptr<StreamParserBuffer> buffer;
{
base::AutoLock auto_lock(lock_);
@@ -400,6 +402,7 @@ void ChunkDemuxerStream::Read(const ReadCB& read_cb) {
// for a seek. Any buffers in the SourceBuffer should NOT be returned
// because they are associated with the seek.
DCHECK(read_cbs_.empty());
+ status = kAborted;
break;
case SHUTDOWN:
DCHECK(read_cbs_.empty());
@@ -407,7 +410,7 @@ void ChunkDemuxerStream::Read(const ReadCB& read_cb) {
}
}
- read_cb.Run(buffer);
+ read_cb.Run(status, buffer);
}
DemuxerStream::Type ChunkDemuxerStream::type() { return type_; }
@@ -451,7 +454,8 @@ void ChunkDemuxerStream::CreateReadDoneClosures_Locked(ClosureQueue* closures) {
while (!read_cbs_.empty()) {
if (!stream_->GetNextBuffer(&buffer))
return;
- closures->push_back(base::Bind(read_cbs_.front(), buffer));
+ closures->push_back(base::Bind(read_cbs_.front(),
+ DemuxerStream::kOk, buffer));
read_cbs_.pop_front();
}
}

Powered by Google App Engine
This is Rietveld 408576698