| Index: media/base/decode_capabilities.cc
|
| diff --git a/content/renderer/media/render_media_client.cc b/media/base/decode_capabilities.cc
|
| similarity index 56%
|
| copy from content/renderer/media/render_media_client.cc
|
| copy to media/base/decode_capabilities.cc
|
| index 4343171c37d0bebfbbe4b9fcbb3d2900934d25a4..48bc2ef0f3ae0f26a17ea3331749c0770861f5a1 100644
|
| --- a/content/renderer/media/render_media_client.cc
|
| +++ b/media/base/decode_capabilities.cc
|
| @@ -1,97 +1,15 @@
|
| -// Copyright 2014 The Chromium Authors. All rights reserved.
|
| +// Copyright 2017 The Chromium Authors. All rights reserved.
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include "content/renderer/media/render_media_client.h"
|
| +#include "media/base/decode_capabilities.h"
|
|
|
| #include "base/command_line.h"
|
| -#include "base/logging.h"
|
| -#include "base/time/default_tick_clock.h"
|
| -#include "content/public/common/content_client.h"
|
| -#include "content/public/renderer/content_renderer_client.h"
|
| +#include "base/feature_list.h"
|
| #include "media/base/media_switches.h"
|
| -#include "media/base/video_color_space.h"
|
| #include "ui/display/display_switches.h"
|
|
|
| -namespace content {
|
| -
|
| -void RenderMediaClient::Initialize() {
|
| - GetInstance();
|
| -}
|
| -
|
| -RenderMediaClient::RenderMediaClient()
|
| - : has_updated_(false),
|
| - is_update_needed_(true),
|
| - tick_clock_(new base::DefaultTickClock()) {
|
| - media::SetMediaClient(this);
|
| -}
|
| -
|
| -RenderMediaClient::~RenderMediaClient() {
|
| -}
|
| -
|
| -void RenderMediaClient::AddKeySystemsInfoForUMA(
|
| - std::vector<media::KeySystemInfoForUMA>* key_systems_info_for_uma) {
|
| - DVLOG(2) << __func__;
|
| -#if defined(WIDEVINE_CDM_AVAILABLE)
|
| - key_systems_info_for_uma->push_back(media::KeySystemInfoForUMA(
|
| - kWidevineKeySystem, kWidevineKeySystemNameForUMA));
|
| -#endif // WIDEVINE_CDM_AVAILABLE
|
| -}
|
| -
|
| -bool RenderMediaClient::IsKeySystemsUpdateNeeded() {
|
| - DVLOG(2) << __func__;
|
| - DCHECK(thread_checker_.CalledOnValidThread());
|
| -
|
| - // Always needs update if we have never updated, regardless the
|
| - // |last_update_time_ticks_|'s initial value.
|
| - if (!has_updated_) {
|
| - DCHECK(is_update_needed_);
|
| - return true;
|
| - }
|
| -
|
| - if (!is_update_needed_)
|
| - return false;
|
| -
|
| - // The update could be expensive. For example, it could involve a sync IPC to
|
| - // the browser process. Use a minimum update interval to avoid unnecessarily
|
| - // frequent update.
|
| - static const int kMinUpdateIntervalInMilliseconds = 1000;
|
| - if ((tick_clock_->NowTicks() - last_update_time_ticks_).InMilliseconds() <
|
| - kMinUpdateIntervalInMilliseconds) {
|
| - return false;
|
| - }
|
| -
|
| - return true;
|
| -}
|
| -
|
| -void RenderMediaClient::AddSupportedKeySystems(
|
| - std::vector<std::unique_ptr<media::KeySystemProperties>>*
|
| - key_systems_properties) {
|
| - DVLOG(2) << __func__;
|
| - DCHECK(thread_checker_.CalledOnValidThread());
|
| -
|
| - GetContentClient()->renderer()->AddSupportedKeySystems(
|
| - key_systems_properties);
|
| -
|
| - has_updated_ = true;
|
| - last_update_time_ticks_ = tick_clock_->NowTicks();
|
| -
|
| - // Check whether all potentially supported key systems are supported. If so,
|
| - // no need to update again.
|
| -#if defined(WIDEVINE_CDM_AVAILABLE) && defined(WIDEVINE_CDM_IS_COMPONENT)
|
| - for (const auto& properties : *key_systems_properties) {
|
| - if (properties->GetKeySystemName() == kWidevineKeySystem)
|
| - is_update_needed_ = false;
|
| - }
|
| -#else
|
| - is_update_needed_ = false;
|
| -#endif
|
| -}
|
| -
|
| -void RenderMediaClient::RecordRapporURL(const std::string& metric,
|
| - const GURL& url) {
|
| - GetContentClient()->renderer()->RecordRapporURL(metric, url);
|
| -}
|
| +namespace media {
|
|
|
| bool IsColorSpaceSupported(const media::VideoColorSpace& color_space) {
|
| bool color_management =
|
| @@ -184,9 +102,9 @@ bool IsColorSpaceSupported(const media::VideoColorSpace& color_space) {
|
| return true;
|
| }
|
|
|
| -bool RenderMediaClient::IsSupportedVideoConfig(
|
| - const media::VideoConfig& config) {
|
| - // TODO(chcunningham): Query decoders for codec profile support.
|
| +// TODO(chcunningham): Query decoders for codec profile support. Add platform
|
| +// specific logic for Android (move from MimeUtilIntenral).
|
| +bool IsSupportedVideoConfig(const VideoConfig& config) {
|
| switch (config.codec) {
|
| case media::kCodecVP9:
|
| // Color management required for HDR to not look terrible.
|
| @@ -210,15 +128,4 @@ bool RenderMediaClient::IsSupportedVideoConfig(
|
| return false;
|
| }
|
|
|
| -void RenderMediaClient::SetTickClockForTesting(
|
| - std::unique_ptr<base::TickClock> tick_clock) {
|
| - tick_clock_.swap(tick_clock);
|
| -}
|
| -
|
| -// static
|
| -RenderMediaClient* RenderMediaClient::GetInstance() {
|
| - static RenderMediaClient* client = new RenderMediaClient();
|
| - return client;
|
| -}
|
| -
|
| -} // namespace content
|
| +} // namespace media
|
|
|