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; |
{ |