| Index: media/renderers/renderer_impl.h | 
| diff --git a/media/renderers/renderer_impl.h b/media/renderers/renderer_impl.h | 
| index 9eb1d4f6e650e9f840832e751fc476c31653a4e0..b9b11a3356d5f51775da6276fc8a63ac4a55025a 100644 | 
| --- a/media/renderers/renderer_impl.h | 
| +++ b/media/renderers/renderer_impl.h | 
| @@ -62,6 +62,8 @@ class MEDIA_EXPORT RendererImpl : public Renderer { | 
| bool HasAudio() final; | 
| bool HasVideo() final; | 
|  | 
| +  void RestartStreamPlayback(DemuxerStream* stream, base::TimeDelta time); | 
| + | 
| // Helper functions for testing purposes. Must be called before Initialize(). | 
| void DisableUnderflowForTesting(); | 
| void EnableClocklessVideoPlaybackForTesting(); | 
| @@ -103,6 +105,9 @@ class MEDIA_EXPORT RendererImpl : public Renderer { | 
| void FlushVideoRenderer(); | 
| void OnVideoRendererFlushDone(); | 
|  | 
| +  void RestartAudioRenderer(base::TimeDelta time); | 
| +  void RestartVideoRenderer(base::TimeDelta time); | 
| + | 
| // Callback executed by filters to update statistics. | 
| void OnStatisticsUpdate(const PipelineStatistics& stats); | 
|  | 
| @@ -174,10 +179,16 @@ class MEDIA_EXPORT RendererImpl : public Renderer { | 
| // Used to defer underflow for video when audio is present. | 
| base::CancelableClosure deferred_underflow_cb_; | 
|  | 
| +  // Used to defer underflow for audio when restarting audio playback. | 
| +  base::CancelableClosure deferred_audio_restart_underflow_cb_; | 
| + | 
| // The amount of time to wait before declaring underflow if the video renderer | 
| // runs out of data but the audio renderer still has enough. | 
| base::TimeDelta video_underflow_threshold_; | 
|  | 
| +  bool restarting_audio_ = false; | 
| +  bool restarting_video_ = false; | 
| + | 
| base::WeakPtr<RendererImpl> weak_this_; | 
| base::WeakPtrFactory<RendererImpl> weak_factory_; | 
|  | 
|  |