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

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: Pass stream enabled/disabled flag into StatusChangeCB 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
Index: media/renderers/renderer_impl.cc
diff --git a/media/renderers/renderer_impl.cc b/media/renderers/renderer_impl.cc
index 007b4b02c12bbc1e31b8ec102a0711baf6b12845..88d6fb7d6d14e958d1f1326fbcc207a7b4923f69 100644
--- a/media/renderers/renderer_impl.cc
+++ b/media/renderers/renderer_impl.cc
@@ -134,12 +134,12 @@ void RendererImpl::Initialize(DemuxerStreamProvider* demuxer_stream_provider,
DemuxerStream* audio_stream =
demuxer_stream_provider->GetStream(DemuxerStream::AUDIO);
if (audio_stream)
- audio_stream->SetStreamRestartedCB(
+ audio_stream->SetStreamStatusChangeCB(
base::Bind(&RendererImpl::RestartStreamPlayback, weak_this_));
DemuxerStream* video_stream =
demuxer_stream_provider->GetStream(DemuxerStream::VIDEO);
if (video_stream)
- video_stream->SetStreamRestartedCB(
+ video_stream->SetStreamStatusChangeCB(
base::Bind(&RendererImpl::RestartStreamPlayback, weak_this_));
if (HasEncryptedStream() && !cdm_context_) {
@@ -215,9 +215,13 @@ void RendererImpl::StartPlayingFrom(base::TimeDelta time) {
}
void RendererImpl::RestartStreamPlayback(DemuxerStream* stream,
+ bool enabled,
alokp 2016/08/04 19:02:36 I do not see this new argument being used. Am I mi
servolk 2016/08/04 20:31:47 Yes, it is unused for now. I've added it per Dale
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__;
alokp 2016/08/04 19:02:37 any particular reason for changing the logging lev
servolk 2016/08/04 20:31:48 No particular reason. It was more useful during th
DCHECK(task_runner_->BelongsToCurrentThread());
- DVLOG(2) << __func__;
+ DCHECK(video_renderer_);
+ DCHECK_EQ(state_, STATE_PLAYING);
alokp 2016/08/04 19:02:36 nit: I usually prefer the expected values specifie
servolk 2016/08/04 20:31:47 I have no strong opinion about which order is bett
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__;
alokp 2016/08/04 19:02:36 ditto
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) {

Powered by Google App Engine
This is Rietveld 408576698