Commit d7998c0e authored by Melisa Carranza Z's avatar Melisa Carranza Z Committed by Commit Bot

Change the DRM flag to ensure MediaDrmStorage creation with CMA.

Bug: b/111886441
Test: Successfully cast DRM content to an Android device with CMA audio
enabled.

Change-Id: Ica7ef53f25a5ff305a7726cebe4fca511a43502d
Reviewed-on: https://chromium-review.googlesource.com/1152464Reviewed-by: default avatarYuchen Liu <yucliu@chromium.org>
Reviewed-by: default avatarLuke Halliwell <halliwell@chromium.org>
Commit-Queue: Melisa Carranza Zúñiga <melisacz@google.com>
Cr-Commit-Position: refs/heads/master@{#580638}
parent ec30509d
...@@ -583,6 +583,7 @@ buildflag_header("chromecast_buildflags") { ...@@ -583,6 +583,7 @@ buildflag_header("chromecast_buildflags") {
"ENABLE_CHROMECAST_EXTENSIONS=$enable_chromecast_extensions", "ENABLE_CHROMECAST_EXTENSIONS=$enable_chromecast_extensions",
"ENABLE_CAST_FRAGMENT=$enable_cast_fragment", "ENABLE_CAST_FRAGMENT=$enable_cast_fragment",
"IS_ANDROID_THINGS_NON_PUBLIC=$is_android_things_non_public", "IS_ANDROID_THINGS_NON_PUBLIC=$is_android_things_non_public",
"USE_CHROMECAST_CDMS=$use_chromecast_cdms",
] ]
} }
......
...@@ -86,17 +86,17 @@ ...@@ -86,17 +86,17 @@
#if defined(OS_ANDROID) #if defined(OS_ANDROID)
#include "components/cdm/browser/cdm_message_filter_android.h" #include "components/cdm/browser/cdm_message_filter_android.h"
#include "components/crash/content/browser/child_exit_observer_android.h" #include "components/crash/content/browser/child_exit_observer_android.h"
#if !BUILDFLAG(IS_CAST_USING_CMA_BACKEND) #if !BUILDFLAG(USE_CHROMECAST_CDMS)
#include "components/cdm/browser/media_drm_storage_impl.h" #include "components/cdm/browser/media_drm_storage_impl.h"
#include "url/origin.h" #include "url/origin.h"
#endif // !BUILDFLAG(IS_CAST_USING_CMA_BACKEND) #endif // !BUILDFLAG(USE_CHROMECAST_CDMS)
#else #else
#include "chromecast/browser/memory_pressure_controller_impl.h" #include "chromecast/browser/memory_pressure_controller_impl.h"
#endif // defined(OS_ANDROID) #endif // defined(OS_ANDROID)
#if BUILDFLAG(IS_CAST_USING_CMA_BACKEND) #if BUILDFLAG(USE_CHROMECAST_CDMS)
#include "chromecast/media/cdm/cast_cdm_factory.h" #include "chromecast/media/cdm/cast_cdm_factory.h"
#endif // BUILDFLAG(IS_CAST_USING_CMA_BACKEND) #endif // BUILDFLAG(USE_CHROMECAST_CDMS)
#if defined(USE_ALSA) #if defined(USE_ALSA)
#include "chromecast/media/audio/cast_audio_manager_alsa.h" // nogncheck #include "chromecast/media/audio/cast_audio_manager_alsa.h" // nogncheck
...@@ -131,7 +131,7 @@ static std::unique_ptr<service_manager::Service> CreateMediaService( ...@@ -131,7 +131,7 @@ static std::unique_ptr<service_manager::Service> CreateMediaService(
} }
#endif // BUILDFLAG(ENABLE_MOJO_MEDIA_IN_BROWSER_PROCESS) #endif // BUILDFLAG(ENABLE_MOJO_MEDIA_IN_BROWSER_PROCESS)
#if defined(OS_ANDROID) && !BUILDFLAG(IS_CAST_USING_CMA_BACKEND) #if defined(OS_ANDROID) && !BUILDFLAG(USE_CHROMECAST_CDMS)
void CreateMediaDrmStorage(content::RenderFrameHost* render_frame_host, void CreateMediaDrmStorage(content::RenderFrameHost* render_frame_host,
::media::mojom::MediaDrmStorageRequest request) { ::media::mojom::MediaDrmStorageRequest request) {
DVLOG(1) << __func__; DVLOG(1) << __func__;
...@@ -148,7 +148,7 @@ void CreateMediaDrmStorage(content::RenderFrameHost* render_frame_host, ...@@ -148,7 +148,7 @@ void CreateMediaDrmStorage(content::RenderFrameHost* render_frame_host,
new cdm::MediaDrmStorageImpl(render_frame_host, pref_service, new cdm::MediaDrmStorageImpl(render_frame_host, pref_service,
std::move(request)); std::move(request));
} }
#endif // defined(OS_ANDROID) && !BUILDFLAG(IS_CAST_USING_CMA_BACKEND) #endif // defined(OS_ANDROID) && !BUILDFLAG(USE_CHROMECAST_CDMS)
} // namespace } // namespace
...@@ -241,7 +241,9 @@ bool CastContentBrowserClient::OverridesAudioManager() { ...@@ -241,7 +241,9 @@ bool CastContentBrowserClient::OverridesAudioManager() {
// See CreateAudioManager(). // See CreateAudioManager().
return true; return true;
} }
#endif // BUILDFLAG(IS_CAST_USING_CMA_BACKEND)
#if BUILDFLAG(USE_CHROMECAST_CDMS)
std::unique_ptr<::media::CdmFactory> std::unique_ptr<::media::CdmFactory>
CastContentBrowserClient::CreateCdmFactory() { CastContentBrowserClient::CreateCdmFactory() {
#if BUILDFLAG(ENABLE_MOJO_MEDIA_IN_BROWSER_PROCESS) #if BUILDFLAG(ENABLE_MOJO_MEDIA_IN_BROWSER_PROCESS)
...@@ -250,7 +252,7 @@ CastContentBrowserClient::CreateCdmFactory() { ...@@ -250,7 +252,7 @@ CastContentBrowserClient::CreateCdmFactory() {
#endif // BUILDFLAG(ENABLE_MOJO_MEDIA_IN_BROWSER_PROCESS) #endif // BUILDFLAG(ENABLE_MOJO_MEDIA_IN_BROWSER_PROCESS)
return nullptr; return nullptr;
} }
#endif // BUILDFLAG(IS_CAST_USING_CMA_BACKEND) #endif // BUILDFLAG(USE_CHROMECAST_CDMS)
media::MediaCapsImpl* CastContentBrowserClient::media_caps() { media::MediaCapsImpl* CastContentBrowserClient::media_caps() {
DCHECK(cast_browser_main_parts_); DCHECK(cast_browser_main_parts_);
...@@ -653,7 +655,7 @@ void CastContentBrowserClient::ExposeInterfacesToRenderer( ...@@ -653,7 +655,7 @@ void CastContentBrowserClient::ExposeInterfacesToRenderer(
void CastContentBrowserClient::ExposeInterfacesToMediaService( void CastContentBrowserClient::ExposeInterfacesToMediaService(
service_manager::BinderRegistry* registry, service_manager::BinderRegistry* registry,
content::RenderFrameHost* render_frame_host) { content::RenderFrameHost* render_frame_host) {
#if defined(OS_ANDROID) && !BUILDFLAG(IS_CAST_USING_CMA_BACKEND) #if defined(OS_ANDROID) && !BUILDFLAG(USE_CHROMECAST_CDMS)
registry->AddInterface( registry->AddInterface(
base::BindRepeating(&CreateMediaDrmStorage, render_frame_host)); base::BindRepeating(&CreateMediaDrmStorage, render_frame_host));
#endif #endif
......
...@@ -197,9 +197,9 @@ class CastContentBrowserClient : public content::ContentBrowserClient { ...@@ -197,9 +197,9 @@ class CastContentBrowserClient : public content::ContentBrowserClient {
return renderer_config_manager_.get(); return renderer_config_manager_.get();
} }
#if BUILDFLAG(IS_CAST_USING_CMA_BACKEND) #if BUILDFLAG(USE_CHROMECAST_CDMS)
virtual std::unique_ptr<::media::CdmFactory> CreateCdmFactory(); virtual std::unique_ptr<::media::CdmFactory> CreateCdmFactory();
#endif // BUILDFLAG(IS_CAST_USING_CMA_BACKEND) #endif // BUILDFLAG(USE_CHROMECAST_CDMS)
protected: protected:
CastContentBrowserClient(); CastContentBrowserClient();
......
...@@ -19,9 +19,9 @@ ...@@ -19,9 +19,9 @@
#include "components/prefs/pref_service_factory.h" #include "components/prefs/pref_service_factory.h"
#include "components/prefs/pref_store.h" #include "components/prefs/pref_store.h"
#if defined(OS_ANDROID) && !BUILDFLAG(IS_CAST_USING_CMA_BACKEND) #if defined(OS_ANDROID) && !BUILDFLAG(USE_CHROMECAST_CDMS)
#include "components/cdm/browser/media_drm_storage_impl.h" #include "components/cdm/browser/media_drm_storage_impl.h"
#endif // defined(OS_ANDROID) && !BUILDFLAG(IS_CAST_USING_CMA_BACKEND) #endif // defined(OS_ANDROID) && !BUILDFLAG(USE_CHROMECAST_CDMS)
namespace chromecast { namespace chromecast {
namespace shell { namespace shell {
...@@ -60,9 +60,9 @@ std::unique_ptr<PrefService> PrefServiceHelper::CreatePrefService( ...@@ -60,9 +60,9 @@ std::unique_ptr<PrefService> PrefServiceHelper::CreatePrefService(
registry->RegisterListPref(prefs::kActiveDCSExperiments); registry->RegisterListPref(prefs::kActiveDCSExperiments);
registry->RegisterDictionaryPref(prefs::kLatestDCSFeatures); registry->RegisterDictionaryPref(prefs::kLatestDCSFeatures);
#if defined(OS_ANDROID) && !BUILDFLAG(IS_CAST_USING_CMA_BACKEND) #if defined(OS_ANDROID) && !BUILDFLAG(USE_CHROMECAST_CDMS)
cdm::MediaDrmStorageImpl::RegisterProfilePrefs(registry); cdm::MediaDrmStorageImpl::RegisterProfilePrefs(registry);
#endif // defined(OS_ANDROID) && !BUILDFLAG(IS_CAST_USING_CMA_BACKEND) #endif // defined(OS_ANDROID) && !BUILDFLAG(USE_CHROMECAST_CDMS)
RegisterPlatformPrefs(registry); RegisterPlatformPrefs(registry);
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
import("//build/config/chromecast_build.gni") import("//build/config/chromecast_build.gni")
import("//build/config/locales.gni") import("//build/config/locales.gni")
import("//extensions/buildflags/buildflags.gni") import("//extensions/buildflags/buildflags.gni")
import("//media/media_options.gni")
# This args block should contain arguments used within the //chromecast # This args block should contain arguments used within the //chromecast
# directory. Arguments which are used in other Chrome components should # directory. Arguments which are used in other Chrome components should
...@@ -113,6 +114,12 @@ cast_locales = locales ...@@ -113,6 +114,12 @@ cast_locales = locales
enable_chromecast_extensions = enable_extensions enable_chromecast_extensions = enable_extensions
# Use Chromecast CDMs for protected content. Some Android platforms use
# MediaDrm for CDM support.
declare_args() {
use_chromecast_cdms = is_cast_using_cma_backend
}
foreach(target_type, foreach(target_type,
[ [
"executable", "executable",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment