summaryrefslogtreecommitdiff
path: root/chromium/media/renderers/renderer_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/media/renderers/renderer_impl.cc')
-rw-r--r--chromium/media/renderers/renderer_impl.cc20
1 files changed, 12 insertions, 8 deletions
diff --git a/chromium/media/renderers/renderer_impl.cc b/chromium/media/renderers/renderer_impl.cc
index 98b8c805dd6..aa1c01263c5 100644
--- a/chromium/media/renderers/renderer_impl.cc
+++ b/chromium/media/renderers/renderer_impl.cc
@@ -93,7 +93,7 @@ RendererImpl::RendererImpl(
video_renderer_(std::move(video_renderer)),
current_audio_stream_(nullptr),
current_video_stream_(nullptr),
- time_source_(NULL),
+ time_source_(nullptr),
time_ticking_(false),
playback_rate_(0.0),
audio_buffering_state_(BUFFERING_HAVE_NOTHING),
@@ -206,6 +206,14 @@ void RendererImpl::SetLatencyHint(
audio_renderer_->SetLatencyHint(latency_hint);
}
+void RendererImpl::SetPreservesPitch(bool preserves_pitch) {
+ DVLOG(1) << __func__;
+ DCHECK(task_runner_->BelongsToCurrentThread());
+
+ if (audio_renderer_)
+ audio_renderer_->SetPreservesPitch(preserves_pitch);
+}
+
void RendererImpl::Flush(base::OnceClosure flush_cb) {
DVLOG(1) << __func__;
DCHECK(task_runner_->BelongsToCurrentThread());
@@ -853,19 +861,15 @@ void RendererImpl::OnRendererEnded(DemuxerStream::Type type) {
DCHECK((type == DemuxerStream::AUDIO) || (type == DemuxerStream::VIDEO));
TRACE_EVENT1("media", "RendererImpl::OnRendererEnded", "type", type_string);
- if (state_ != STATE_PLAYING)
+ // If all streams are ended, do not propagate a redundant ended event.
+ if (state_ != STATE_PLAYING || PlaybackHasEnded())
return;
if (type == DemuxerStream::AUDIO) {
- // If all streams are ended, do not propagate a redundant ended event.
- if (audio_ended_ && PlaybackHasEnded())
- return;
+ DCHECK(audio_renderer_);
audio_ended_ = true;
} else {
DCHECK(video_renderer_);
- // If all streams are ended, do not propagate a redundant ended event.
- if (audio_ended_ && PlaybackHasEnded())
- return;
video_ended_ = true;
video_renderer_->OnTimeStopped();
}