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

Side by Side Diff: media/remoting/remoting_renderer_controller.cc

Issue 2556333002: Detect change on video/viewport intersection when rendered remotely (Closed)
Patch Set: Fix nits. 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 #include "media/remoting/remoting_renderer_controller.h" 5 #include "media/remoting/remoting_renderer_controller.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/threading/thread_checker.h" 9 #include "base/threading/thread_checker.h"
10 #include "media/remoting/remoting_cdm_context.h" 10 #include "media/remoting/remoting_cdm_context.h"
(...skipping 25 matching lines...) Expand all
36 } else { 36 } else {
37 VLOG(1) << "Failed to start remoting."; 37 VLOG(1) << "Failed to start remoting.";
38 remote_rendering_started_ = false; 38 remote_rendering_started_ = false;
39 } 39 }
40 } 40 }
41 41
42 void RemotingRendererController::OnSessionStateChanged() { 42 void RemotingRendererController::OnSessionStateChanged() {
43 DCHECK(thread_checker_.CalledOnValidThread()); 43 DCHECK(thread_checker_.CalledOnValidThread());
44 44
45 VLOG(1) << "OnSessionStateChanged: " << remoting_source_->state(); 45 VLOG(1) << "OnSessionStateChanged: " << remoting_source_->state();
46 if (!sink_available_changed_cb_.is_null())
47 sink_available_changed_cb_.Run(IsRemoteSinkAvailable());
48
46 UpdateAndMaybeSwitch(); 49 UpdateAndMaybeSwitch();
47 } 50 }
48 51
52 bool RemotingRendererController::IsRemoteSinkAvailable() {
53 DCHECK(thread_checker_.CalledOnValidThread());
54
55 switch (remoting_source_->state()) {
56 case SESSION_CAN_START:
57 case SESSION_STARTING:
58 case SESSION_STARTED:
59 return true;
60 case SESSION_UNAVAILABLE:
61 case SESSION_STOPPING:
62 case SESSION_PERMANENTLY_STOPPED:
63 return false;
64 }
65
66 return false; // To suppress compile warning.
67 }
68
49 void RemotingRendererController::OnEnteredFullscreen() { 69 void RemotingRendererController::OnEnteredFullscreen() {
50 DCHECK(thread_checker_.CalledOnValidThread()); 70 DCHECK(thread_checker_.CalledOnValidThread());
51 71
52 is_fullscreen_ = true; 72 is_fullscreen_ = true;
53 UpdateAndMaybeSwitch(); 73 UpdateAndMaybeSwitch();
54 } 74 }
55 75
56 void RemotingRendererController::OnExitedFullscreen() { 76 void RemotingRendererController::OnExitedFullscreen() {
57 DCHECK(thread_checker_.CalledOnValidThread()); 77 DCHECK(thread_checker_.CalledOnValidThread());
58 78
(...skipping 30 matching lines...) Expand all
89 109
90 void RemotingRendererController::SetSwitchRendererCallback( 110 void RemotingRendererController::SetSwitchRendererCallback(
91 const base::Closure& cb) { 111 const base::Closure& cb) {
92 DCHECK(thread_checker_.CalledOnValidThread()); 112 DCHECK(thread_checker_.CalledOnValidThread());
93 DCHECK(!cb.is_null()); 113 DCHECK(!cb.is_null());
94 114
95 switch_renderer_cb_ = cb; 115 switch_renderer_cb_ = cb;
96 UpdateAndMaybeSwitch(); 116 UpdateAndMaybeSwitch();
97 } 117 }
98 118
119 void RemotingRendererController::SetRemoteSinkAvailableChangedCallback(
120 const base::Callback<void(bool)>& cb) {
121 DCHECK(thread_checker_.CalledOnValidThread());
122
123 sink_available_changed_cb_ = cb;
124 if (!sink_available_changed_cb_.is_null())
125 sink_available_changed_cb_.Run(IsRemoteSinkAvailable());
126 }
127
99 base::WeakPtr<remoting::RpcBroker> RemotingRendererController::GetRpcBroker() 128 base::WeakPtr<remoting::RpcBroker> RemotingRendererController::GetRpcBroker()
100 const { 129 const {
101 DCHECK(thread_checker_.CalledOnValidThread()); 130 DCHECK(thread_checker_.CalledOnValidThread());
102 131
103 return remoting_source_->GetRpcBroker()->GetWeakPtr(); 132 return remoting_source_->GetRpcBroker()->GetWeakPtr();
104 } 133 }
105 134
106 void RemotingRendererController::StartDataPipe( 135 void RemotingRendererController::StartDataPipe(
107 std::unique_ptr<mojo::DataPipe> audio_data_pipe, 136 std::unique_ptr<mojo::DataPipe> audio_data_pipe,
108 std::unique_ptr<mojo::DataPipe> video_data_pipe, 137 std::unique_ptr<mojo::DataPipe> video_data_pipe,
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 // and never back to the local renderer. The RemotingCdmController will 283 // and never back to the local renderer. The RemotingCdmController will
255 // force-stop the session when remoting has ended; so no need to call 284 // force-stop the session when remoting has ended; so no need to call
256 // StopRemoting() from here. 285 // StopRemoting() from here.
257 DCHECK(!is_encrypted_); 286 DCHECK(!is_encrypted_);
258 switch_renderer_cb_.Run(); 287 switch_renderer_cb_.Run();
259 remoting_source_->StopRemoting(this); 288 remoting_source_->StopRemoting(this);
260 } 289 }
261 } 290 }
262 291
263 } // namespace media 292 } // namespace media
OLDNEW
« no previous file with comments | « media/remoting/remoting_renderer_controller.h ('k') | third_party/WebKit/Source/core/html/HTMLMediaElement.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698