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

Unified Diff: chromecast/renderer/cast_content_renderer_client.cc

Issue 2712983004: Simplify/Cleanup MediaClient (Closed)
Patch Set: Fix test leak Created 3 years, 8 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 | « chromecast/renderer/cast_content_renderer_client.h ('k') | chromecast/renderer/key_systems_cast.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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*
« no previous file with comments | « chromecast/renderer/cast_content_renderer_client.h ('k') | chromecast/renderer/key_systems_cast.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698