| Index: media/remoting/remoting_renderer_controller.cc
|
| diff --git a/media/remoting/remoting_renderer_controller.cc b/media/remoting/remoting_renderer_controller.cc
|
| index 40506d8251839278c751f63123a2e2ee45a1cd8f..c58c17a5b3678cfab28ca256cd09a9e49c36f9a8 100644
|
| --- a/media/remoting/remoting_renderer_controller.cc
|
| +++ b/media/remoting/remoting_renderer_controller.cc
|
| @@ -204,6 +204,19 @@ bool RemotingRendererController::IsAudioCodecSupported() {
|
| }
|
| }
|
|
|
| +void RemotingRendererController::OnPlaying() {
|
| + DCHECK(thread_checker_.CalledOnValidThread());
|
| +
|
| + is_paused_ = false;
|
| + UpdateAndMaybeSwitch();
|
| +}
|
| +
|
| +void RemotingRendererController::OnPaused() {
|
| + DCHECK(thread_checker_.CalledOnValidThread());
|
| +
|
| + is_paused_ = true;
|
| +}
|
| +
|
| bool RemotingRendererController::ShouldBeRemoting() {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
|
|
| @@ -265,6 +278,13 @@ void RemotingRendererController::UpdateAndMaybeSwitch() {
|
| if (remote_rendering_started_ == should_be_remoting)
|
| return;
|
|
|
| + // Only switch to remoting when media is playing. Since the renderer is
|
| + // created when video starts loading/playing, receiver will display a black
|
| + // screen before video starts playing if switching to remoting when paused.
|
| + // Keep mirroring the video in this case is good for the user experience.
|
| + if (should_be_remoting && is_paused_)
|
| + return;
|
| +
|
| // Switch between local renderer and remoting renderer.
|
| remote_rendering_started_ = should_be_remoting;
|
|
|
|
|