Chromium Code Reviews| Index: media/audio/audio_output_resampler.cc |
| diff --git a/media/audio/audio_output_resampler.cc b/media/audio/audio_output_resampler.cc |
| index c643b3e672c24ed086c07bf5d19262d396b66697..623fc307ae69cb5eef1c395aafeb0a49c3a5877c 100644 |
| --- a/media/audio/audio_output_resampler.cc |
| +++ b/media/audio/audio_output_resampler.cc |
| @@ -33,7 +33,8 @@ class OnMoreDataConverter |
| // AudioSourceCallback interface. |
| int OnMoreData(AudioBus* dest, |
| uint32_t total_bytes_delay, |
| - uint32_t frames_skipped) override; |
| + uint32_t frames_skipped, |
| + const AudioTimestamp& timestamp) override; |
| void OnError(AudioOutputStream* stream) override; |
| // Sets |source_callback_|. If this is not a new object, then Stop() must be |
| @@ -72,6 +73,9 @@ class OnMoreDataConverter |
| // stream has been stopped. |
| bool error_occurred_; |
| + // Information about last recodred stream output position. |
|
Raymond Toy
2016/06/14 16:42:40
Typo: "recodred" -> "recorded"
Mikhail
2016/06/17 09:36:57
Done.
|
| + AudioTimestamp output_timestamp_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(OnMoreDataConverter); |
| }; |
| @@ -348,7 +352,8 @@ OnMoreDataConverter::OnMoreDataConverter(const AudioParameters& input_params, |
| source_callback_(nullptr), |
| input_bytes_per_frame_(input_params.GetBytesPerFrame()), |
| audio_converter_(input_params, output_params, false), |
| - error_occurred_(false) {} |
| + error_occurred_(false), |
| + output_timestamp_() {} |
| OnMoreDataConverter::~OnMoreDataConverter() { |
| // Ensure Stop() has been called so we don't end up with an AudioOutputStream |
| @@ -375,7 +380,9 @@ void OnMoreDataConverter::Stop() { |
| int OnMoreDataConverter::OnMoreData(AudioBus* dest, |
| uint32_t total_bytes_delay, |
| - uint32_t frames_skipped) { |
| + uint32_t frames_skipped, |
| + const AudioTimestamp& timestamp) { |
| + output_timestamp_ = timestamp; |
| current_total_bytes_delay_ = total_bytes_delay; |
| audio_converter_.Convert(dest); |
| @@ -394,8 +401,8 @@ double OnMoreDataConverter::ProvideInput(AudioBus* dest, |
| (current_total_bytes_delay_ + frames_delayed * input_bytes_per_frame_)); |
| // Retrieve data from the original callback. |
| - const int frames = |
| - source_callback_->OnMoreData(dest, new_total_bytes_delay, 0); |
| + const int frames = source_callback_->OnMoreData(dest, new_total_bytes_delay, |
| + 0, output_timestamp_); |
| // Zero any unfilled frames if anything was filled, otherwise we'll just |
| // return a volume of zero and let AudioConverter drop the output. |