OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "media/renderers/renderer_impl.h" | 5 #include "media/renderers/renderer_impl.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/callback.h" | 10 #include "base/callback.h" |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
222 } | 222 } |
223 | 223 |
224 void RendererImpl::RestartStreamPlayback(DemuxerStream* stream, | 224 void RendererImpl::RestartStreamPlayback(DemuxerStream* stream, |
225 bool enabled, | 225 bool enabled, |
226 base::TimeDelta time) { | 226 base::TimeDelta time) { |
227 DCHECK(task_runner_->BelongsToCurrentThread()); | 227 DCHECK(task_runner_->BelongsToCurrentThread()); |
228 DCHECK(stream); | 228 DCHECK(stream); |
229 bool video = (stream->type() == DemuxerStream::VIDEO); | 229 bool video = (stream->type() == DemuxerStream::VIDEO); |
230 DVLOG(1) << __func__ << (video ? " video" : " audio") << " stream=" << stream | 230 DVLOG(1) << __func__ << (video ? " video" : " audio") << " stream=" << stream |
231 << " enabled=" << stream->enabled() << " time=" << time.InSecondsF(); | 231 << " enabled=" << stream->enabled() << " time=" << time.InSecondsF(); |
232 if (state_ != STATE_PLAYING) | 232 if ((state_ != STATE_PLAYING) || (audio_ended_ && video_ended_)) |
chcunningham
2016/08/24 22:16:53
This seems to be a separate issue from relaxing th
servolk
2016/08/24 22:46:32
Yes, somewhat separate, but related. First I've si
| |
233 return; | 233 return; |
234 if (stream->type() == DemuxerStream::VIDEO) { | 234 if (stream->type() == DemuxerStream::VIDEO) { |
235 DCHECK(video_renderer_); | 235 DCHECK(video_renderer_); |
236 if (restarting_video_) | 236 if (restarting_video_) |
237 return; | 237 return; |
238 restarting_video_ = true; | 238 restarting_video_ = true; |
239 video_renderer_->Flush( | 239 video_renderer_->Flush( |
240 base::Bind(&RendererImpl::RestartVideoRenderer, weak_this_, time)); | 240 base::Bind(&RendererImpl::RestartVideoRenderer, weak_this_, time)); |
241 } else if (stream->type() == DemuxerStream::AUDIO) { | 241 } else if (stream->type() == DemuxerStream::AUDIO) { |
242 DCHECK(audio_renderer_); | 242 DCHECK(audio_renderer_); |
(...skipping 606 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
849 DCHECK(task_runner_->BelongsToCurrentThread()); | 849 DCHECK(task_runner_->BelongsToCurrentThread()); |
850 client_->OnVideoNaturalSizeChange(size); | 850 client_->OnVideoNaturalSizeChange(size); |
851 } | 851 } |
852 | 852 |
853 void RendererImpl::OnVideoOpacityChange(bool opaque) { | 853 void RendererImpl::OnVideoOpacityChange(bool opaque) { |
854 DCHECK(task_runner_->BelongsToCurrentThread()); | 854 DCHECK(task_runner_->BelongsToCurrentThread()); |
855 client_->OnVideoOpacityChange(opaque); | 855 client_->OnVideoOpacityChange(opaque); |
856 } | 856 } |
857 | 857 |
858 } // namespace media | 858 } // namespace media |
OLD | NEW |