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

Unified Diff: media/remoting/renderer_controller.cc

Issue 2643253003: Media Remoting Clean-up: Less-redundant naming, style consistency, etc. (Closed)
Patch Set: REBASE Created 3 years, 11 months 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
« no previous file with comments | « media/remoting/renderer_controller.h ('k') | media/remoting/renderer_controller_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/remoting/renderer_controller.cc
diff --git a/media/remoting/remoting_renderer_controller.cc b/media/remoting/renderer_controller.cc
similarity index 63%
rename from media/remoting/remoting_renderer_controller.cc
rename to media/remoting/renderer_controller.cc
index 515e08298ccd8e502f3be587800605d144722036..03f862de0a7ff73170698fea6fbf87388878228b 100644
--- a/media/remoting/remoting_renderer_controller.cc
+++ b/media/remoting/renderer_controller.cc
@@ -2,29 +2,30 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "media/remoting/remoting_renderer_controller.h"
+#include "media/remoting/renderer_controller.h"
#include "base/bind.h"
#include "base/logging.h"
#include "base/threading/thread_checker.h"
#include "base/time/time.h"
+#include "media/remoting/remoting_cdm.h"
#include "media/remoting/remoting_cdm_context.h"
namespace media {
+namespace remoting {
-RemotingRendererController::RemotingRendererController(
- scoped_refptr<RemotingSourceImpl> remoting_source)
- : remoting_source_(remoting_source), weak_factory_(this) {
- remoting_source_->AddClient(this);
+RendererController::RendererController(scoped_refptr<SharedSession> session)
+ : session_(std::move(session)), weak_factory_(this) {
+ session_->AddClient(this);
}
-RemotingRendererController::~RemotingRendererController() {
+RendererController::~RendererController() {
DCHECK(thread_checker_.CalledOnValidThread());
- metrics_recorder_.WillStopSession(remoting::MEDIA_ELEMENT_DESTROYED);
- remoting_source_->RemoveClient(this);
+ metrics_recorder_.WillStopSession(MEDIA_ELEMENT_DESTROYED);
+ session_->RemoveClient(this);
}
-void RemotingRendererController::OnStarted(bool success) {
+void RendererController::OnStarted(bool success) {
DCHECK(thread_checker_.CalledOnValidThread());
if (success) {
@@ -34,24 +35,23 @@ void RemotingRendererController::OnStarted(bool success) {
DCHECK(!switch_renderer_cb_.is_null());
switch_renderer_cb_.Run();
} else {
- remoting_source_->StopRemoting(this);
+ session_->StopRemoting(this);
}
} else {
VLOG(1) << "Failed to start remoting.";
remote_rendering_started_ = false;
- metrics_recorder_.WillStopSession(remoting::START_RACE);
+ metrics_recorder_.WillStopSession(START_RACE);
}
}
-void RemotingRendererController::OnSessionStateChanged() {
+void RendererController::OnSessionStateChanged() {
DCHECK(thread_checker_.CalledOnValidThread());
- UpdateFromSessionState(remoting::SINK_AVAILABLE, remoting::ROUTE_TERMINATED);
+ UpdateFromSessionState(SINK_AVAILABLE, ROUTE_TERMINATED);
}
-void RemotingRendererController::UpdateFromSessionState(
- remoting::StartTrigger start_trigger,
- remoting::StopTrigger stop_trigger) {
- VLOG(1) << "UpdateFromSessionState: " << remoting_source_->state();
+void RendererController::UpdateFromSessionState(StartTrigger start_trigger,
+ StopTrigger stop_trigger) {
+ VLOG(1) << "UpdateFromSessionState: " << session_->state();
if (!sink_available_changed_cb_.is_null())
sink_available_changed_cb_.Run(IsRemoteSinkAvailable());
@@ -59,45 +59,43 @@ void RemotingRendererController::UpdateFromSessionState(
UpdateAndMaybeSwitch(start_trigger, stop_trigger);
}
-bool RemotingRendererController::IsRemoteSinkAvailable() {
+bool RendererController::IsRemoteSinkAvailable() {
DCHECK(thread_checker_.CalledOnValidThread());
- switch (remoting_source_->state()) {
- case SESSION_CAN_START:
- case SESSION_STARTING:
- case SESSION_STARTED:
+ switch (session_->state()) {
+ case SharedSession::SESSION_CAN_START:
+ case SharedSession::SESSION_STARTING:
+ case SharedSession::SESSION_STARTED:
return true;
- case SESSION_UNAVAILABLE:
- case SESSION_STOPPING:
- case SESSION_PERMANENTLY_STOPPED:
+ case SharedSession::SESSION_UNAVAILABLE:
+ case SharedSession::SESSION_STOPPING:
+ case SharedSession::SESSION_PERMANENTLY_STOPPED:
return false;
}
- return false; // To suppress compile warning.
+ NOTREACHED();
+ return false; // To suppress compiler warning on Windows.
}
-void RemotingRendererController::OnEnteredFullscreen() {
+void RendererController::OnEnteredFullscreen() {
DCHECK(thread_checker_.CalledOnValidThread());
is_fullscreen_ = true;
// See notes in OnBecameDominantVisibleContent() for why this is forced:
is_dominant_content_ = true;
- UpdateAndMaybeSwitch(remoting::ENTERED_FULLSCREEN,
- remoting::UNKNOWN_STOP_TRIGGER);
+ UpdateAndMaybeSwitch(ENTERED_FULLSCREEN, UNKNOWN_STOP_TRIGGER);
}
-void RemotingRendererController::OnExitedFullscreen() {
+void RendererController::OnExitedFullscreen() {
DCHECK(thread_checker_.CalledOnValidThread());
is_fullscreen_ = false;
// See notes in OnBecameDominantVisibleContent() for why this is forced:
is_dominant_content_ = false;
- UpdateAndMaybeSwitch(remoting::UNKNOWN_START_TRIGGER,
- remoting::EXITED_FULLSCREEN);
+ UpdateAndMaybeSwitch(UNKNOWN_START_TRIGGER, EXITED_FULLSCREEN);
}
-void RemotingRendererController::OnBecameDominantVisibleContent(
- bool is_dominant) {
+void RendererController::OnBecameDominantVisibleContent(bool is_dominant) {
DCHECK(thread_checker_.CalledOnValidThread());
// Two scenarios where "dominance" status mixes with fullscreen transitions:
@@ -117,32 +115,31 @@ void RemotingRendererController::OnBecameDominantVisibleContent(
return;
is_dominant_content_ = is_dominant;
- UpdateAndMaybeSwitch(remoting::BECAME_DOMINANT_CONTENT,
- remoting::BECAME_AUXILIARY_CONTENT);
+ UpdateAndMaybeSwitch(BECAME_DOMINANT_CONTENT, BECAME_AUXILIARY_CONTENT);
}
-void RemotingRendererController::OnSetCdm(CdmContext* cdm_context) {
+void RendererController::OnSetCdm(CdmContext* cdm_context) {
DCHECK(thread_checker_.CalledOnValidThread());
auto* remoting_cdm_context = RemotingCdmContext::From(cdm_context);
if (!remoting_cdm_context)
return;
- remoting_source_->RemoveClient(this);
- remoting_source_ = remoting_cdm_context->GetRemotingSource();
- remoting_source_->AddClient(this);
- UpdateFromSessionState(remoting::CDM_READY, remoting::DECRYPTION_ERROR);
+ session_->RemoveClient(this);
+ session_ = remoting_cdm_context->GetSharedSession();
+ session_->AddClient(this);
+ UpdateFromSessionState(CDM_READY, DECRYPTION_ERROR);
}
-void RemotingRendererController::OnRemotePlaybackDisabled(bool disabled) {
+void RendererController::OnRemotePlaybackDisabled(bool disabled) {
DCHECK(thread_checker_.CalledOnValidThread());
is_remote_playback_disabled_ = disabled;
metrics_recorder_.OnRemotePlaybackDisabled(disabled);
- UpdateAndMaybeSwitch(remoting::ENABLED_BY_PAGE, remoting::DISABLED_BY_PAGE);
+ UpdateAndMaybeSwitch(ENABLED_BY_PAGE, DISABLED_BY_PAGE);
}
-void RemotingRendererController::OnSetPoster(const GURL& poster_url) {
+void RendererController::OnSetPoster(const GURL& poster_url) {
DCHECK(thread_checker_.CalledOnValidThread());
if (poster_url != poster_url_) {
@@ -154,19 +151,18 @@ void RemotingRendererController::OnSetPoster(const GURL& poster_url) {
}
}
-void RemotingRendererController::SetSwitchRendererCallback(
- const base::Closure& cb) {
+void RendererController::SetSwitchRendererCallback(const base::Closure& cb) {
DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!cb.is_null());
switch_renderer_cb_ = cb;
// Note: Not calling UpdateAndMaybeSwitch() here since this method should be
- // called during the initialization phase of this RemotingRendererController;
+ // called during the initialization phase of this RendererController;
// and definitely before a whole lot of other things that are needed to
// trigger a switch.
}
-void RemotingRendererController::SetRemoteSinkAvailableChangedCallback(
+void RendererController::SetRemoteSinkAvailableChangedCallback(
const base::Callback<void(bool)>& cb) {
DCHECK(thread_checker_.CalledOnValidThread());
@@ -175,25 +171,23 @@ void RemotingRendererController::SetRemoteSinkAvailableChangedCallback(
sink_available_changed_cb_.Run(IsRemoteSinkAvailable());
}
-base::WeakPtr<remoting::RpcBroker> RemotingRendererController::GetRpcBroker()
- const {
+base::WeakPtr<RpcBroker> RendererController::GetRpcBroker() const {
DCHECK(thread_checker_.CalledOnValidThread());
- return remoting_source_->GetRpcBroker()->GetWeakPtr();
+ return session_->rpc_broker()->GetWeakPtr();
}
-void RemotingRendererController::StartDataPipe(
+void RendererController::StartDataPipe(
std::unique_ptr<mojo::DataPipe> audio_data_pipe,
std::unique_ptr<mojo::DataPipe> video_data_pipe,
- const RemotingSourceImpl::DataPipeStartCallback& done_callback) {
+ const SharedSession::DataPipeStartCallback& done_callback) {
DCHECK(thread_checker_.CalledOnValidThread());
- remoting_source_->StartDataPipe(std::move(audio_data_pipe),
- std::move(video_data_pipe), done_callback);
+ session_->StartDataPipe(std::move(audio_data_pipe),
+ std::move(video_data_pipe), done_callback);
}
-void RemotingRendererController::OnMetadataChanged(
- const PipelineMetadata& metadata) {
+void RendererController::OnMetadataChanged(const PipelineMetadata& metadata) {
DCHECK(thread_checker_.CalledOnValidThread());
const gfx::Size old_size = pipeline_metadata_.natural_size;
@@ -213,26 +207,26 @@ void RemotingRendererController::OnMetadataChanged(
if (pipeline_metadata_.natural_size != old_size)
UpdateInterstitial(base::nullopt);
- remoting::StartTrigger start_trigger = remoting::UNKNOWN_START_TRIGGER;
+ StartTrigger start_trigger = UNKNOWN_START_TRIGGER;
if (!was_audio_codec_supported && is_audio_codec_supported)
- start_trigger = remoting::SUPPORTED_AUDIO_CODEC;
+ start_trigger = SUPPORTED_AUDIO_CODEC;
if (!was_video_codec_supported && is_video_codec_supported) {
- start_trigger = start_trigger == remoting::SUPPORTED_AUDIO_CODEC
- ? remoting::SUPPORTED_AUDIO_AND_VIDEO_CODECS
- : remoting::SUPPORTED_VIDEO_CODEC;
+ start_trigger = start_trigger == SUPPORTED_AUDIO_CODEC
+ ? SUPPORTED_AUDIO_AND_VIDEO_CODECS
+ : SUPPORTED_VIDEO_CODEC;
}
- remoting::StopTrigger stop_trigger = remoting::UNKNOWN_STOP_TRIGGER;
+ StopTrigger stop_trigger = UNKNOWN_STOP_TRIGGER;
if (was_audio_codec_supported && !is_audio_codec_supported)
- stop_trigger = remoting::UNSUPPORTED_AUDIO_CODEC;
+ stop_trigger = UNSUPPORTED_AUDIO_CODEC;
if (was_video_codec_supported && !is_video_codec_supported) {
- stop_trigger = stop_trigger == remoting::UNSUPPORTED_AUDIO_CODEC
- ? remoting::UNSUPPORTED_AUDIO_AND_VIDEO_CODECS
- : remoting::UNSUPPORTED_VIDEO_CODEC;
+ stop_trigger = stop_trigger == UNSUPPORTED_AUDIO_CODEC
+ ? UNSUPPORTED_AUDIO_AND_VIDEO_CODECS
+ : UNSUPPORTED_VIDEO_CODEC;
}
UpdateAndMaybeSwitch(start_trigger, stop_trigger);
}
-bool RemotingRendererController::IsVideoCodecSupported() {
+bool RendererController::IsVideoCodecSupported() {
DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(has_video());
@@ -247,7 +241,7 @@ bool RemotingRendererController::IsVideoCodecSupported() {
}
}
-bool RemotingRendererController::IsAudioCodecSupported() {
+bool RendererController::IsAudioCodecSupported() {
DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(has_audio());
@@ -276,59 +270,59 @@ bool RemotingRendererController::IsAudioCodecSupported() {
}
}
-void RemotingRendererController::OnPlaying() {
+void RendererController::OnPlaying() {
DCHECK(thread_checker_.CalledOnValidThread());
is_paused_ = false;
- UpdateAndMaybeSwitch(remoting::PLAY_COMMAND, remoting::UNKNOWN_STOP_TRIGGER);
+ UpdateAndMaybeSwitch(PLAY_COMMAND, UNKNOWN_STOP_TRIGGER);
}
-void RemotingRendererController::OnPaused() {
+void RendererController::OnPaused() {
DCHECK(thread_checker_.CalledOnValidThread());
is_paused_ = true;
}
-bool RemotingRendererController::ShouldBeRemoting() {
+bool RendererController::ShouldBeRemoting() {
DCHECK(thread_checker_.CalledOnValidThread());
if (switch_renderer_cb_.is_null()) {
DCHECK(!remote_rendering_started_);
- return false; // No way to switch to a RemotingRenderImpl.
+ return false; // No way to switch to the remoting renderer.
}
- const RemotingSessionState state = remoting_source_->state();
+ const SharedSession::SessionState state = session_->state();
if (is_encrypted_) {
// Due to technical limitations when playing encrypted content, once a
// remoting session has been started, always return true here to indicate
- // that the RemotingRendererImpl should be used. In the stopped states,
- // RemotingRendererImpl will display an interstitial to notify the user that
- // local rendering cannot be resumed.
+ // that the CourierRenderer should continue to be used. In the stopped
+ // states, CourierRenderer will display an interstitial to notify the user
+ // that local rendering cannot be resumed.
//
// TODO(miu): Revisit this once more of the encrypted-remoting impl is
// in-place. For example, this will prevent metrics from recording session
// stop reasons.
- return state == RemotingSessionState::SESSION_STARTED ||
- state == RemotingSessionState::SESSION_STOPPING ||
- state == RemotingSessionState::SESSION_PERMANENTLY_STOPPED;
+ return state == SharedSession::SESSION_STARTED ||
+ state == SharedSession::SESSION_STOPPING ||
+ state == SharedSession::SESSION_PERMANENTLY_STOPPED;
}
if (encountered_renderer_fatal_error_)
return false;
switch (state) {
- case SESSION_UNAVAILABLE:
+ case SharedSession::SESSION_UNAVAILABLE:
return false; // Cannot remote media without a remote sink.
- case SESSION_CAN_START:
- case SESSION_STARTING:
- case SESSION_STARTED:
+ case SharedSession::SESSION_CAN_START:
+ case SharedSession::SESSION_STARTING:
+ case SharedSession::SESSION_STARTED:
break; // Media remoting is possible, assuming other requirments are met.
- case SESSION_STOPPING:
- case SESSION_PERMANENTLY_STOPPED:
+ case SharedSession::SESSION_STOPPING:
+ case SharedSession::SESSION_PERMANENTLY_STOPPED:
return false; // Use local rendering after stopping remoting.
}
- switch (remoting_source_->sink_capabilities()) {
+ switch (session_->sink_capabilities()) {
case mojom::RemotingSinkCapabilities::NONE:
return false;
case mojom::RemotingSinkCapabilities::RENDERING_ONLY:
@@ -351,9 +345,8 @@ bool RemotingRendererController::ShouldBeRemoting() {
return is_fullscreen_ || is_dominant_content_;
}
-void RemotingRendererController::UpdateAndMaybeSwitch(
- remoting::StartTrigger start_trigger,
- remoting::StopTrigger stop_trigger) {
+void RendererController::UpdateAndMaybeSwitch(StartTrigger start_trigger,
+ StopTrigger stop_trigger) {
DCHECK(thread_checker_.CalledOnValidThread());
bool should_be_remoting = ShouldBeRemoting();
@@ -374,30 +367,29 @@ void RemotingRendererController::UpdateAndMaybeSwitch(
if (remote_rendering_started_) {
DCHECK(!switch_renderer_cb_.is_null());
- if (remoting_source_->state() ==
- RemotingSessionState::SESSION_PERMANENTLY_STOPPED) {
+ if (session_->state() == SharedSession::SESSION_PERMANENTLY_STOPPED) {
switch_renderer_cb_.Run();
return;
}
- DCHECK_NE(start_trigger, remoting::UNKNOWN_START_TRIGGER);
+ DCHECK_NE(start_trigger, UNKNOWN_START_TRIGGER);
metrics_recorder_.WillStartSession(start_trigger);
// |switch_renderer_cb_.Run()| will be called after remoting is started
// successfully.
- remoting_source_->StartRemoting(this);
+ session_->StartRemoting(this);
} else {
// For encrypted content, it's only valid to switch to remoting renderer,
// and never back to the local renderer. The RemotingCdmController will
// force-stop the session when remoting has ended; so no need to call
// StopRemoting() from here.
DCHECK(!is_encrypted_);
- DCHECK_NE(stop_trigger, remoting::UNKNOWN_STOP_TRIGGER);
+ DCHECK_NE(stop_trigger, UNKNOWN_STOP_TRIGGER);
metrics_recorder_.WillStopSession(stop_trigger);
switch_renderer_cb_.Run();
- remoting_source_->StopRemoting(this);
+ session_->StopRemoting(this);
}
}
-void RemotingRendererController::SetShowInterstitialCallback(
+void RendererController::SetShowInterstitialCallback(
const ShowInterstitialCallback& cb) {
DCHECK(thread_checker_.CalledOnValidThread());
show_interstitial_cb_ = cb;
@@ -406,7 +398,7 @@ void RemotingRendererController::SetShowInterstitialCallback(
DownloadPosterImage();
}
-void RemotingRendererController::SetDownloadPosterCallback(
+void RendererController::SetDownloadPosterCallback(
const DownloadPosterCallback& cb) {
DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(download_poster_cb_.is_null());
@@ -415,32 +407,32 @@ void RemotingRendererController::SetDownloadPosterCallback(
DownloadPosterImage();
}
-void RemotingRendererController::UpdateInterstitial(
+void RendererController::UpdateInterstitial(
const base::Optional<SkBitmap>& image) {
DCHECK(thread_checker_.CalledOnValidThread());
if (show_interstitial_cb_.is_null() ||
pipeline_metadata_.natural_size.IsEmpty())
return;
- RemotingInterstitialType type = RemotingInterstitialType::BETWEEN_SESSIONS;
- switch (remoting_source_->state()) {
- case SESSION_STARTED:
- type = RemotingInterstitialType::IN_SESSION;
+ InterstitialType type = InterstitialType::BETWEEN_SESSIONS;
+ switch (session_->state()) {
+ case SharedSession::SESSION_STARTED:
+ type = InterstitialType::IN_SESSION;
break;
- case SESSION_PERMANENTLY_STOPPED:
- type = RemotingInterstitialType::ENCRYPTED_MEDIA_FATAL_ERROR;
+ case SharedSession::SESSION_PERMANENTLY_STOPPED:
+ type = InterstitialType::ENCRYPTED_MEDIA_FATAL_ERROR;
break;
- case SESSION_UNAVAILABLE:
- case SESSION_CAN_START:
- case SESSION_STARTING:
- case SESSION_STOPPING:
+ case SharedSession::SESSION_UNAVAILABLE:
+ case SharedSession::SESSION_CAN_START:
+ case SharedSession::SESSION_STARTING:
+ case SharedSession::SESSION_STOPPING:
break;
}
show_interstitial_cb_.Run(image, pipeline_metadata_.natural_size, type);
}
-void RemotingRendererController::DownloadPosterImage() {
+void RendererController::DownloadPosterImage() {
if (download_poster_cb_.is_null() || show_interstitial_cb_.is_null())
return;
DCHECK(!poster_url_.is_empty());
@@ -448,11 +440,11 @@ void RemotingRendererController::DownloadPosterImage() {
const base::TimeTicks download_start_time = base::TimeTicks::Now();
download_poster_cb_.Run(
poster_url_,
- base::Bind(&RemotingRendererController::OnPosterImageDownloaded,
+ base::Bind(&RendererController::OnPosterImageDownloaded,
weak_factory_.GetWeakPtr(), poster_url_, download_start_time));
}
-void RemotingRendererController::OnPosterImageDownloaded(
+void RendererController::OnPosterImageDownloaded(
const GURL& download_url,
base::TimeTicks download_start_time,
const SkBitmap& image) {
@@ -465,8 +457,7 @@ void RemotingRendererController::OnPosterImageDownloaded(
UpdateInterstitial(image);
}
-void RemotingRendererController::OnRendererFatalError(
- remoting::StopTrigger stop_trigger) {
+void RendererController::OnRendererFatalError(StopTrigger stop_trigger) {
DCHECK(thread_checker_.CalledOnValidThread());
// Do not act on errors caused by things like Mojo pipes being closed during
@@ -475,7 +466,8 @@ void RemotingRendererController::OnRendererFatalError(
return;
encountered_renderer_fatal_error_ = true;
- UpdateAndMaybeSwitch(remoting::UNKNOWN_START_TRIGGER, stop_trigger);
+ UpdateAndMaybeSwitch(UNKNOWN_START_TRIGGER, stop_trigger);
}
+} // namespace remoting
} // namespace media
« no previous file with comments | « media/remoting/renderer_controller.h ('k') | media/remoting/renderer_controller_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698