Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(781)

Unified Diff: media/renderers/audio_renderer_impl.cc

Issue 2552493002: [Media] Record time it takes to start rendering audio and video (Closed)
Patch Set: Use RestartPlaybackStream and OnFirstFrameRender Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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());

Powered by Google App Engine
This is Rietveld 408576698