Index: media/renderers/audio_renderer_impl.cc |
diff --git a/media/renderers/audio_renderer_impl.cc b/media/renderers/audio_renderer_impl.cc |
index 4899be0a4b98470bf59c19947695bf431bb11610..53d9cceb4a47e73524111edbf5ca8ec0235a6ad3 100644 |
--- a/media/renderers/audio_renderer_impl.cc |
+++ b/media/renderers/audio_renderer_impl.cc |
@@ -58,6 +58,7 @@ AudioRendererImpl::AudioRendererImpl( |
received_end_of_stream_(false), |
rendered_end_of_stream_(false), |
is_suspending_(false), |
+ rendered_first_frame_(false), |
weak_factory_(this) { |
audio_buffer_stream_->set_config_change_observer(base::Bind( |
&AudioRendererImpl::OnConfigChange, weak_factory_.GetWeakPtr())); |
@@ -173,6 +174,7 @@ void AudioRendererImpl::SetMediaTime(base::TimeDelta time) { |
ended_timestamp_ = kInfiniteDuration; |
last_render_time_ = stop_rendering_time_ = base::TimeTicks(); |
first_packet_timestamp_ = kNoTimestamp; |
+ rendered_first_frame_ = false; |
audio_clock_.reset(new AudioClock(time, audio_parameters_.sample_rate())); |
} |
@@ -767,6 +769,10 @@ int AudioRendererImpl::Render(base::TimeDelta delay, |
{ |
base::AutoLock auto_lock(lock_); |
last_render_time_ = tick_clock_->NowTicks(); |
+ if (!rendered_first_frame_) { |
+ rendered_first_frame_ = true; |
+ client_->OnFirstFrameRender(); |
+ } |
int64_t frames_delayed = AudioTimestampHelper::TimeToFrames( |
delay, audio_parameters_.sample_rate()); |