| Index: media/mojo/services/gpu_mojo_media_client.cc
|
| diff --git a/media/mojo/services/gpu_mojo_media_client.cc b/media/mojo/services/gpu_mojo_media_client.cc
|
| index 1c7643c39f95b7750d6d79d83c5bfeaa878f9e04..7301f6f57a57fd92b53353fe057b74a405810b6e 100644
|
| --- a/media/mojo/services/gpu_mojo_media_client.cc
|
| +++ b/media/mojo/services/gpu_mojo_media_client.cc
|
| @@ -4,6 +4,8 @@
|
|
|
| #include "media/mojo/services/gpu_mojo_media_client.h"
|
|
|
| +#include <utility>
|
| +
|
| #include "media/base/audio_decoder.h"
|
| #include "media/base/cdm_factory.h"
|
| #include "media/base/video_decoder.h"
|
| @@ -12,7 +14,9 @@
|
| #include "base/memory/ptr_util.h"
|
| #include "media/base/android/android_cdm_factory.h"
|
| #include "media/filters/android/media_codec_audio_decoder.h"
|
| +#include "media/mojo/interfaces/media_drm_storage.mojom.h"
|
| #include "media/mojo/interfaces/provision_fetcher.mojom.h"
|
| +#include "media/mojo/services/mojo_media_drm_storage.h"
|
| #include "media/mojo/services/mojo_provision_fetcher.h"
|
| #include "services/service_manager/public/cpp/connect.h"
|
| #endif // defined(OS_ANDROID)
|
| @@ -21,6 +25,9 @@ namespace media {
|
|
|
| namespace {
|
|
|
| +// TODO(xhwang): Remove the duplicate code between GpuMojoMediaClient and
|
| +// AndroidMojoMediaClient.
|
| +
|
| #if defined(OS_ANDROID)
|
| std::unique_ptr<ProvisionFetcher> CreateProvisionFetcher(
|
| service_manager::mojom::InterfaceProvider* interface_provider) {
|
| @@ -29,6 +36,15 @@ std::unique_ptr<ProvisionFetcher> CreateProvisionFetcher(
|
| return base::MakeUnique<MojoProvisionFetcher>(
|
| std::move(provision_fetcher_ptr));
|
| }
|
| +
|
| +std::unique_ptr<MediaDrmStorage> CreateMediaDrmStorage(
|
| + service_manager::mojom::InterfaceProvider* host_interfaces) {
|
| + DCHECK(host_interfaces);
|
| + mojom::MediaDrmStoragePtr media_drm_storage_ptr;
|
| + service_manager::GetInterface(host_interfaces, &media_drm_storage_ptr);
|
| + return base::MakeUnique<MojoMediaDrmStorage>(
|
| + std::move(media_drm_storage_ptr));
|
| +}
|
| #endif // defined(OS_ANDROID)
|
|
|
| } // namespace
|
| @@ -63,7 +79,8 @@ std::unique_ptr<CdmFactory> GpuMojoMediaClient::CreateCdmFactory(
|
| service_manager::mojom::InterfaceProvider* interface_provider) {
|
| #if defined(OS_ANDROID)
|
| return base::MakeUnique<AndroidCdmFactory>(
|
| - base::Bind(&CreateProvisionFetcher, interface_provider));
|
| + base::Bind(&CreateProvisionFetcher, interface_provider),
|
| + base::Bind(&CreateMediaDrmStorage, interface_provider));
|
| #else
|
| return nullptr;
|
| #endif // defined(OS_ANDROID)
|
|
|