| Index: media/filters/video_renderer_impl.cc
|
| diff --git a/media/filters/video_renderer_impl.cc b/media/filters/video_renderer_impl.cc
|
| index f315b717053521a2c113e75c1dc179900563f067..743fd1d87ce668cfe048d98b5e1dfb9ba4d77d45 100644
|
| --- a/media/filters/video_renderer_impl.cc
|
| +++ b/media/filters/video_renderer_impl.cc
|
| @@ -202,7 +202,7 @@ void VideoRendererImpl::ThreadMain() {
|
| if (received_end_of_stream_) {
|
| if (!rendered_end_of_stream_) {
|
| rendered_end_of_stream_ = true;
|
| - ended_cb_.Run();
|
| + task_runner_->PostTask(FROM_HERE, ended_cb_);
|
| }
|
| } else {
|
| buffering_state_ = BUFFERING_HAVE_NOTHING;
|
| @@ -283,6 +283,7 @@ void VideoRendererImpl::DropNextReadyFrame_Locked() {
|
|
|
| void VideoRendererImpl::FrameReady(VideoFrameStream::Status status,
|
| const scoped_refptr<VideoFrame>& frame) {
|
| + DCHECK(task_runner_->BelongsToCurrentThread());
|
| base::AutoLock auto_lock(lock_);
|
| DCHECK_NE(state_, kUninitialized);
|
| DCHECK_NE(state_, kFlushed);
|
| @@ -344,6 +345,7 @@ bool VideoRendererImpl::HaveEnoughData_Locked() {
|
| }
|
|
|
| void VideoRendererImpl::TransitionToHaveEnough_Locked() {
|
| + DCHECK(task_runner_->BelongsToCurrentThread());
|
| DCHECK_EQ(buffering_state_, BUFFERING_HAVE_NOTHING);
|
|
|
| if (received_end_of_stream_)
|
| @@ -372,6 +374,7 @@ void VideoRendererImpl::TransitionToHaveEnough_Locked() {
|
|
|
| void VideoRendererImpl::AddReadyFrame_Locked(
|
| const scoped_refptr<VideoFrame>& frame) {
|
| + DCHECK(task_runner_->BelongsToCurrentThread());
|
| lock_.AssertAcquired();
|
| DCHECK(!frame->end_of_stream());
|
|
|
| @@ -454,7 +457,7 @@ void VideoRendererImpl::UpdateStatsAndWait_Locked(
|
| PipelineStatistics statistics;
|
| statistics.video_frames_decoded = frames_decoded_;
|
| statistics.video_frames_dropped = frames_dropped_;
|
| - statistics_cb_.Run(statistics);
|
| + task_runner_->PostTask(FROM_HERE, base::Bind(statistics_cb_, statistics));
|
|
|
| frames_decoded_ = 0;
|
| frames_dropped_ = 0;
|
|
|