summaryrefslogtreecommitdiff
path: root/chromium/media/remoting/renderer_controller.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/media/remoting/renderer_controller.cc')
-rw-r--r--chromium/media/remoting/renderer_controller.cc24
1 files changed, 14 insertions, 10 deletions
diff --git a/chromium/media/remoting/renderer_controller.cc b/chromium/media/remoting/renderer_controller.cc
index 2f72a512534..8b15ff383f5 100644
--- a/chromium/media/remoting/renderer_controller.cc
+++ b/chromium/media/remoting/renderer_controller.cc
@@ -1,10 +1,11 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
+// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "media/remoting/renderer_controller.h"
#include "base/bind.h"
+#include "base/containers/contains.h"
#include "base/logging.h"
#include "base/time/default_tick_clock.h"
#include "base/time/tick_clock.h"
@@ -95,6 +96,7 @@ MediaObserverClient::ReasonToSwitchToLocal GetSwitchReason(
return MediaObserverClient::ReasonToSwitchToLocal::PIPELINE_ERROR;
case ROUTE_TERMINATED:
case MEDIA_ELEMENT_DESTROYED:
+ case MEDIA_ELEMENT_FROZEN:
case START_RACE:
case SERVICE_GONE:
return MediaObserverClient::ReasonToSwitchToLocal::ROUTE_TERMINATED;
@@ -370,6 +372,14 @@ void RendererController::OnPaused() {
CancelDelayedStart();
}
+void RendererController::OnFrozen() {
+ DCHECK(thread_checker_.CalledOnValidThread());
+ DCHECK(is_paused_);
+
+ // If the element is frozen we want to stop remoting.
+ UpdateAndMaybeSwitch(UNKNOWN_START_TRIGGER, MEDIA_ELEMENT_FROZEN);
+}
+
RemotingCompatibility RendererController::GetVideoCompatibility() const {
DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(has_video());
@@ -616,23 +626,17 @@ void RendererController::SetClient(MediaObserverClient* client) {
bool RendererController::HasVideoCapability(
mojom::RemotingSinkVideoCapability capability) const {
- return std::find(std::begin(sink_metadata_.video_capabilities),
- std::end(sink_metadata_.video_capabilities),
- capability) != std::end(sink_metadata_.video_capabilities);
+ return base::Contains(sink_metadata_.video_capabilities, capability);
}
bool RendererController::HasAudioCapability(
mojom::RemotingSinkAudioCapability capability) const {
- return std::find(std::begin(sink_metadata_.audio_capabilities),
- std::end(sink_metadata_.audio_capabilities),
- capability) != std::end(sink_metadata_.audio_capabilities);
+ return base::Contains(sink_metadata_.audio_capabilities, capability);
}
bool RendererController::HasFeatureCapability(
RemotingSinkFeature capability) const {
- return std::find(std::begin(sink_metadata_.features),
- std::end(sink_metadata_.features),
- capability) != std::end(sink_metadata_.features);
+ return base::Contains(sink_metadata_.features, capability);
}
bool RendererController::SinkSupportsRemoting() const {