| Index: media/audio/audio_output_controller.cc
 | 
| diff --git a/media/audio/audio_output_controller.cc b/media/audio/audio_output_controller.cc
 | 
| index ae879c2fdc106629d4d4b7b004f91fd79373de00..c8a75b6c6d555697c9c8b9b988ff80baf1258277 100644
 | 
| --- a/media/audio/audio_output_controller.cc
 | 
| +++ b/media/audio/audio_output_controller.cc
 | 
| @@ -16,6 +16,7 @@
 | 
|  #include "base/threading/platform_thread.h"
 | 
|  #include "base/time/time.h"
 | 
|  #include "base/trace_event/trace_event.h"
 | 
| +#include "media/base/audio_timestamp_helper.h"
 | 
|  
 | 
|  using base::TimeDelta;
 | 
|  
 | 
| @@ -174,7 +175,7 @@ void AudioOutputController::DoPlay() {
 | 
|      return;
 | 
|  
 | 
|    // Ask for first packet.
 | 
| -  sync_reader_->UpdatePendingBytes(0, 0);
 | 
| +  sync_reader_->RequestMoreData(base::TimeDelta(), base::TimeTicks(), 0);
 | 
|  
 | 
|    state_ = kPlaying;
 | 
|  
 | 
| @@ -227,7 +228,7 @@ void AudioOutputController::DoPause() {
 | 
|    // Let the renderer know we've stopped.  Necessary to let PPAPI clients know
 | 
|    // audio has been shutdown.  TODO(dalecurtis): This stinks.  PPAPI should have
 | 
|    // a better way to know when it should exit PPB_Audio_Shared::Run().
 | 
| -  sync_reader_->UpdatePendingBytes(std::numeric_limits<uint32_t>::max(), 0);
 | 
| +  sync_reader_->RequestMoreData(base::TimeDelta::Max(), base::TimeTicks(), 0);
 | 
|  
 | 
|    handler_->OnPaused();
 | 
|  }
 | 
| @@ -308,12 +309,10 @@ int AudioOutputController::OnMoreData(base::TimeDelta delay,
 | 
|  
 | 
|    sync_reader_->Read(dest);
 | 
|  
 | 
| -  const int total_bytes_delay =
 | 
| -      delay.InSecondsF() * params_.GetBytesPerSecond();
 | 
|    const int frames = dest->frames();
 | 
| -  sync_reader_->UpdatePendingBytes(
 | 
| -      total_bytes_delay + frames * params_.GetBytesPerFrame(),
 | 
| -      prior_frames_skipped);
 | 
| +  delay += AudioTimestampHelper::FramesToTime(frames, params_.sample_rate());
 | 
| +
 | 
| +  sync_reader_->RequestMoreData(delay, delay_timestamp, prior_frames_skipped);
 | 
|  
 | 
|    bool need_to_duplicate = false;
 | 
|    {
 | 
| 
 |