Index: media/filters/ffmpeg_video_decoder.cc |
diff --git a/media/filters/ffmpeg_video_decoder.cc b/media/filters/ffmpeg_video_decoder.cc |
index b281fb43724df7c039c70787a79374029403ca5b..5487398644a665a4a7f510e0e7d87284d466cd28 100644 |
--- a/media/filters/ffmpeg_video_decoder.cc |
+++ b/media/filters/ffmpeg_video_decoder.cc |
@@ -183,30 +183,27 @@ void FFmpegVideoDecoder::OnFlushComplete() { |
state_ = kNormal; |
} |
-void FFmpegVideoDecoder::Seek(base::TimeDelta time, |
- FilterCallback* callback) { |
+void FFmpegVideoDecoder::Seek(base::TimeDelta time, const FilterStatusCB& cb) { |
if (MessageLoop::current() != message_loop_) { |
message_loop_->PostTask(FROM_HERE, |
- NewRunnableMethod(this, |
- &FFmpegVideoDecoder::Seek, |
- time, |
- callback)); |
+ NewRunnableMethod(this, &FFmpegVideoDecoder::Seek, |
+ time, cb)); |
return; |
} |
DCHECK_EQ(MessageLoop::current(), message_loop_); |
- DCHECK(!seek_callback_.get()); |
+ DCHECK(seek_cb_.is_null()); |
pts_stream_.Seek(time); |
- seek_callback_.reset(callback); |
+ seek_cb_ = cb; |
decode_engine_->Seek(); |
} |
void FFmpegVideoDecoder::OnSeekComplete() { |
DCHECK_EQ(MessageLoop::current(), message_loop_); |
- DCHECK(seek_callback_.get()); |
+ DCHECK(!seek_cb_.is_null()); |
- AutoCallbackRunner done_runner(seek_callback_.release()); |
+ ResetAndRunCB(&seek_cb_, PIPELINE_OK); |
} |
void FFmpegVideoDecoder::OnError() { |