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

Side by Side Diff: media/renderers/renderer_impl.cc

Issue 2269313002: Fix DCHECK when track status changes in non-playing state (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed one more DCHECK + added a unit test Created 4 years, 3 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 unified diff | Download patch
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698