| Index: chromecast/renderer/cast_content_renderer_client.cc
|
| diff --git a/chromecast/renderer/cast_content_renderer_client.cc b/chromecast/renderer/cast_content_renderer_client.cc
|
| index 1036193d5f269a8c0ee72c4df4219566c5f2ae62..bd68a2d5f85518e9d850e6704939bf681f982350 100644
|
| --- a/chromecast/renderer/cast_content_renderer_client.cc
|
| +++ b/chromecast/renderer/cast_content_renderer_client.cc
|
| @@ -11,11 +11,13 @@
|
| #include "base/strings/string_number_conversions.h"
|
| #include "build/build_config.h"
|
| #include "chromecast/base/chromecast_switches.h"
|
| -#include "chromecast/common/media/cast_media_client.h"
|
| #include "chromecast/crash/cast_crash_keys.h"
|
| +#include "chromecast/media/base/media_caps.h"
|
| +#include "chromecast/media/base/media_codec_support.h"
|
| #include "chromecast/media/base/supported_codec_profile_levels_memo.h"
|
| +#include "chromecast/public/media/media_capabilities_shlib.h"
|
| #include "chromecast/renderer/cast_render_frame_action_deferrer.h"
|
| -#include "chromecast/renderer/key_systems_cast.h"
|
| +#include "chromecast/renderer/media/key_systems_cast.h"
|
| #include "chromecast/renderer/media/media_caps_observer_impl.h"
|
| #include "components/network_hints/renderer/prescient_networking_dispatcher.h"
|
| #include "content/public/common/content_switches.h"
|
| @@ -78,8 +80,6 @@ void CastContentRendererClient::RenderThreadStarted() {
|
| new media::MediaCapsObserverImpl(&proxy, supported_profiles_.get()));
|
| media_caps->AddObserver(std::move(proxy));
|
|
|
| - chromecast::media::CastMediaClient::Initialize(supported_profiles_.get());
|
| -
|
| prescient_networking_dispatcher_.reset(
|
| new network_hints::PrescientNetworkingDispatcher());
|
|
|
| @@ -110,9 +110,51 @@ void CastContentRendererClient::RenderViewCreated(
|
| void CastContentRendererClient::AddSupportedKeySystems(
|
| std::vector<std::unique_ptr<::media::KeySystemProperties>>*
|
| key_systems_properties) {
|
| - AddChromecastKeySystems(key_systems_properties,
|
| - false /* enable_persistent_license_support */,
|
| - false /* force_software_crypto */);
|
| + media::AddChromecastKeySystems(key_systems_properties,
|
| + false /* enable_persistent_license_support */,
|
| + false /* force_software_crypto */);
|
| +}
|
| +
|
| +bool CastContentRendererClient::IsSupportedAudioConfig(
|
| + const ::media::AudioConfig& config) {
|
| +#if defined(OS_ANDROID)
|
| + // TODO(sanfin): Implement this for Android.
|
| + return true;
|
| +#else
|
| + media::AudioCodec codec = media::ToCastAudioCodec(config.codec);
|
| + // Cast platform implements software decoding of Opus and FLAC, so only PCM
|
| + // support is necessary in order to support Opus and FLAC.
|
| + if (codec == media::kCodecOpus || codec == media::kCodecFLAC)
|
| + codec = media::kCodecPCM;
|
| +
|
| + // If HDMI sink supports AC3/EAC3 codecs then we don't need the vendor backend
|
| + // to support these codec directly.
|
| + if (codec == media::kCodecEAC3 &&
|
| + media::MediaCapabilities::HdmiSinkSupportsEAC3())
|
| + return true;
|
| + if (codec == media::kCodecAC3 &&
|
| + media::MediaCapabilities::HdmiSinkSupportsAC3())
|
| + return true;
|
| +
|
| + media::AudioConfig cast_audio_config;
|
| + cast_audio_config.codec = codec;
|
| + return media::MediaCapabilitiesShlib::IsSupportedAudioConfig(
|
| + cast_audio_config);
|
| +#endif
|
| +}
|
| +
|
| +bool CastContentRendererClient::IsSupportedVideoConfig(
|
| + const ::media::VideoConfig& config) {
|
| +// TODO(servolk): make use of eotf.
|
| +#if defined(OS_ANDROID)
|
| + return supported_profiles_->IsSupportedVideoConfig(
|
| + media::ToCastVideoCodec(config.codec, config.profile),
|
| + media::ToCastVideoProfile(config.profile), config.level);
|
| +#else
|
| + return media::MediaCapabilitiesShlib::IsSupportedVideoConfig(
|
| + media::ToCastVideoCodec(config.codec, config.profile),
|
| + media::ToCastVideoProfile(config.profile), config.level);
|
| +#endif
|
| }
|
|
|
| blink::WebPrescientNetworking*
|
|
|