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

Side by Side Diff: media/renderers/renderer_impl.h

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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef MEDIA_RENDERERS_RENDERER_IMPL_H_ 5 #ifndef MEDIA_RENDERERS_RENDERER_IMPL_H_
6 #define MEDIA_RENDERERS_RENDERER_IMPL_H_ 6 #define MEDIA_RENDERERS_RENDERER_IMPL_H_
7 7
8 #include <memory> 8 #include <memory>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 // Callbacks executed when a renderer has ended. 138 // Callbacks executed when a renderer has ended.
139 void OnRendererEnded(DemuxerStream::Type type); 139 void OnRendererEnded(DemuxerStream::Type type);
140 bool PlaybackHasEnded() const; 140 bool PlaybackHasEnded() const;
141 void RunEndedCallbackIfNeeded(); 141 void RunEndedCallbackIfNeeded();
142 142
143 // Callback executed when a runtime error happens. 143 // Callback executed when a runtime error happens.
144 void OnError(PipelineStatus error); 144 void OnError(PipelineStatus error);
145 void OnWaitingForDecryptionKey(); 145 void OnWaitingForDecryptionKey();
146 void OnVideoNaturalSizeChange(const gfx::Size& size); 146 void OnVideoNaturalSizeChange(const gfx::Size& size);
147 void OnVideoOpacityChange(bool opaque); 147 void OnVideoOpacityChange(bool opaque);
148 void OnFirstFrameRender(DemuxerStream::Type type);
148 149
149 State state_; 150 State state_;
150 151
151 // Task runner used to execute pipeline tasks. 152 // Task runner used to execute pipeline tasks.
152 scoped_refptr<base::SingleThreadTaskRunner> task_runner_; 153 scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
153 154
154 DemuxerStreamProvider* demuxer_stream_provider_; 155 DemuxerStreamProvider* demuxer_stream_provider_;
155 RendererClient* client_; 156 RendererClient* client_;
156 157
157 // Temporary callback used for Initialize() and Flush(). 158 // Temporary callback used for Initialize() and Flush().
(...skipping 30 matching lines...) Expand all
188 // Used to defer underflow for video when audio is present. 189 // Used to defer underflow for video when audio is present.
189 base::CancelableClosure deferred_video_underflow_cb_; 190 base::CancelableClosure deferred_video_underflow_cb_;
190 191
191 // Used to defer underflow for audio when restarting audio playback. 192 // Used to defer underflow for audio when restarting audio playback.
192 base::CancelableClosure deferred_audio_restart_underflow_cb_; 193 base::CancelableClosure deferred_audio_restart_underflow_cb_;
193 194
194 // The amount of time to wait before declaring underflow if the video renderer 195 // The amount of time to wait before declaring underflow if the video renderer
195 // runs out of data but the audio renderer still has enough. 196 // runs out of data but the audio renderer still has enough.
196 base::TimeDelta video_underflow_threshold_; 197 base::TimeDelta video_underflow_threshold_;
197 198
199 // Timestamps when the playback is initiated after play or seek that's set at
200 // StartPlayingFrom(). Used to calculate and report the preroll time from
201 // StartPlayingFrom() to HAVE_ENOUGH_DATA.
202 base::TimeTicks audio_preroll_start_time_;
203 base::TimeTicks video_preroll_start_time_;
204
198 bool restarting_audio_ = false; 205 bool restarting_audio_ = false;
199 bool restarting_video_ = false; 206 bool restarting_video_ = false;
200 207
201 base::WeakPtr<RendererImpl> weak_this_; 208 base::WeakPtr<RendererImpl> weak_this_;
202 base::WeakPtrFactory<RendererImpl> weak_factory_; 209 base::WeakPtrFactory<RendererImpl> weak_factory_;
203 210
204 DISALLOW_COPY_AND_ASSIGN(RendererImpl); 211 DISALLOW_COPY_AND_ASSIGN(RendererImpl);
205 }; 212 };
206 213
207 } // namespace media 214 } // namespace media
208 215
209 #endif // MEDIA_RENDERERS_RENDERER_IMPL_H_ 216 #endif // MEDIA_RENDERERS_RENDERER_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698