| Index: media/base/pipeline.cc
|
| diff --git a/media/base/pipeline.cc b/media/base/pipeline.cc
|
| index 3cfe296155fd8a9d1b05458e6a3adb7cbe278d05..c0a4343bdf894d9e2af2a475755d80070437c4a1 100644
|
| --- a/media/base/pipeline.cc
|
| +++ b/media/base/pipeline.cc
|
| @@ -421,7 +421,9 @@ void Pipeline::StateTransitionTask(PipelineStatus status) {
|
| // We use audio stream to update the clock. So if there is such a
|
| // stream, we pause the clock until we receive a valid timestamp.
|
| waiting_for_clock_update_ = true;
|
| - if (!audio_renderer_) {
|
| + if (audio_renderer_) {
|
| + audio_renderer_->StartRendering();
|
| + } else {
|
| clock_->SetMaxTime(clock_->Duration());
|
| StartClockIfWaitingForTimeUpdate_Locked();
|
| }
|
| @@ -482,10 +484,6 @@ void Pipeline::DoSeek(
|
| SerialRunner::Queue bound_fns;
|
|
|
| // Pause.
|
| - if (audio_renderer_) {
|
| - bound_fns.Push(base::Bind(
|
| - &AudioRenderer::Pause, base::Unretained(audio_renderer_.get())));
|
| - }
|
| if (text_renderer_) {
|
| bound_fns.Push(base::Bind(
|
| &TextRenderer::Pause, base::Unretained(text_renderer_.get())));
|
| @@ -533,11 +531,6 @@ void Pipeline::DoPlay(const PipelineStatusCB& done_cb) {
|
| PlaybackRateChangedTask(GetPlaybackRate());
|
| VolumeChangedTask(GetVolume());
|
|
|
| - if (audio_renderer_) {
|
| - bound_fns.Push(base::Bind(
|
| - &AudioRenderer::Play, base::Unretained(audio_renderer_.get())));
|
| - }
|
| -
|
| if (video_renderer_) {
|
| bound_fns.Push(base::Bind(
|
| &VideoRenderer::Play, base::Unretained(video_renderer_.get())));
|
| @@ -758,6 +751,9 @@ void Pipeline::SeekTask(TimeDelta time, const PipelineStatusCB& seek_cb) {
|
|
|
| // Kick off seeking!
|
| {
|
| + if (audio_renderer_)
|
| + audio_renderer_->StopRendering();
|
| +
|
| base::AutoLock auto_lock(lock_);
|
| if (clock_->IsPlaying())
|
| clock_->Pause();
|
|
|