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

Unified Diff: media/renderers/renderer_impl.cc

Issue 2199913002: Notify demux stream clients when a stream is disabled. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Don't pass DemuxerStream into the status callback Created 4 years, 4 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
« no previous file with comments | « media/renderers/renderer_impl.h ('k') | media/renderers/renderer_impl_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/renderers/renderer_impl.cc
diff --git a/media/renderers/renderer_impl.cc b/media/renderers/renderer_impl.cc
index 007b4b02c12bbc1e31b8ec102a0711baf6b12845..7381e94ef695c43036c62291bbbcb0f918057fa6 100644
--- a/media/renderers/renderer_impl.cc
+++ b/media/renderers/renderer_impl.cc
@@ -134,13 +134,13 @@ void RendererImpl::Initialize(DemuxerStreamProvider* demuxer_stream_provider,
DemuxerStream* audio_stream =
demuxer_stream_provider->GetStream(DemuxerStream::AUDIO);
if (audio_stream)
- audio_stream->SetStreamRestartedCB(
- base::Bind(&RendererImpl::RestartStreamPlayback, weak_this_));
+ audio_stream->SetStreamStatusChangeCB(base::Bind(
+ &RendererImpl::RestartStreamPlayback, weak_this_, audio_stream));
DemuxerStream* video_stream =
demuxer_stream_provider->GetStream(DemuxerStream::VIDEO);
if (video_stream)
- video_stream->SetStreamRestartedCB(
- base::Bind(&RendererImpl::RestartStreamPlayback, weak_this_));
+ video_stream->SetStreamStatusChangeCB(base::Bind(
+ &RendererImpl::RestartStreamPlayback, weak_this_, video_stream));
if (HasEncryptedStream() && !cdm_context_) {
state_ = STATE_INIT_PENDING_CDM;
@@ -215,9 +215,13 @@ void RendererImpl::StartPlayingFrom(base::TimeDelta time) {
}
void RendererImpl::RestartStreamPlayback(DemuxerStream* stream,
+ bool enabled,
base::TimeDelta time) {
- DVLOG(1) << __func__ << " stream=" << stream << " time=" << time.InSecondsF();
DCHECK(task_runner_->BelongsToCurrentThread());
+ DCHECK(stream);
+ bool video = (stream->type() == DemuxerStream::VIDEO);
+ DVLOG(1) << __func__ << (video ? " video" : " audio") << " stream=" << stream
+ << " enabled=" << stream->enabled() << " time=" << time.InSecondsF();
if (state_ != STATE_PLAYING)
return;
if (stream->type() == DemuxerStream::VIDEO) {
@@ -246,24 +250,22 @@ void RendererImpl::RestartStreamPlayback(DemuxerStream* stream,
}
void RendererImpl::RestartVideoRenderer(base::TimeDelta time) {
+ DVLOG(3) << __func__;
DCHECK(task_runner_->BelongsToCurrentThread());
- DVLOG(2) << __func__;
+ DCHECK(video_renderer_);
+ DCHECK_EQ(state_, STATE_PLAYING);
video_ended_ = false;
- if (state_ == STATE_PLAYING) {
- DCHECK(video_renderer_);
- video_renderer_->StartPlayingFrom(time);
- }
+ video_renderer_->StartPlayingFrom(time);
}
void RendererImpl::RestartAudioRenderer(base::TimeDelta time) {
+ DVLOG(3) << __func__;
DCHECK(task_runner_->BelongsToCurrentThread());
- DVLOG(2) << __func__;
+ DCHECK_EQ(state_, STATE_PLAYING);
+ DCHECK(time_source_);
+ DCHECK(audio_renderer_);
audio_ended_ = false;
- if (state_ == STATE_PLAYING) {
- DCHECK(time_source_);
- DCHECK(audio_renderer_);
- audio_renderer_->StartPlaying();
- }
+ audio_renderer_->StartPlaying();
}
void RendererImpl::SetPlaybackRate(double playback_rate) {
« no previous file with comments | « media/renderers/renderer_impl.h ('k') | media/renderers/renderer_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698