Index: media/filters/ffmpeg_demuxer.cc |
diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc |
index 98ec8829544db9d6ce1ea7cc07d6a0cfef4bc18e..834701950701009ccb8ae84912cc2841f5521965 100644 |
--- a/media/filters/ffmpeg_demuxer.cc |
+++ b/media/filters/ffmpeg_demuxer.cc |
@@ -313,13 +313,13 @@ void FFmpegDemuxer::Stop(FilterCallback* callback) { |
SignalReadCompleted(DataSource::kReadError); |
} |
-void FFmpegDemuxer::Seek(base::TimeDelta time, FilterCallback* callback) { |
+void FFmpegDemuxer::Seek(base::TimeDelta time, const FilterStatusCB& cb) { |
// TODO(hclam): by returning from this method, it is assumed that the seek |
// operation is completed and filters behind the demuxer is good to issue |
// more reads, but we are posting a task here, which makes the seek operation |
// asynchronous, should change how seek works to make it fully asynchronous. |
message_loop_->PostTask(FROM_HERE, |
- NewRunnableMethod(this, &FFmpegDemuxer::SeekTask, time, callback)); |
+ NewRunnableMethod(this, &FFmpegDemuxer::SeekTask, time, cb)); |
} |
void FFmpegDemuxer::SetPlaybackRate(float playback_rate) { |
@@ -528,9 +528,8 @@ void FFmpegDemuxer::InitializeTask(DataSource* data_source, |
callback->Run(PIPELINE_OK); |
} |
-void FFmpegDemuxer::SeekTask(base::TimeDelta time, FilterCallback* callback) { |
+void FFmpegDemuxer::SeekTask(base::TimeDelta time, const FilterStatusCB& cb) { |
DCHECK_EQ(MessageLoop::current(), message_loop_); |
- scoped_ptr<FilterCallback> c(callback); |
// Tell streams to flush buffers due to seeking. |
StreamVector::iterator iter; |
@@ -553,7 +552,7 @@ void FFmpegDemuxer::SeekTask(base::TimeDelta time, FilterCallback* callback) { |
} |
// Notify we're finished seeking. |
- callback->Run(); |
+ cb.Run(PIPELINE_OK); |
} |
void FFmpegDemuxer::DemuxTask() { |