summaryrefslogtreecommitdiff
path: root/chromium/chromecast
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2019-05-16 09:59:13 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2019-05-20 10:28:53 +0000
commit6c11fb357ec39bf087b8b632e2b1e375aef1b38b (patch)
treec8315530db18a8ee566521c39ab8a6af4f72bc03 /chromium/chromecast
parent3ffaed019d0772e59d6cdb2d0d32fe4834c31f72 (diff)
downloadqtwebengine-chromium-6c11fb357ec39bf087b8b632e2b1e375aef1b38b.tar.gz
BASELINE: Update Chromium to 74.0.3729.159
Change-Id: I8d2497da544c275415aedd94dd25328d555de811 Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'chromium/chromecast')
-rw-r--r--chromium/chromecast/BUILD.gn4
-rw-r--r--chromium/chromecast/app/BUILD.gn5
-rw-r--r--chromium/chromecast/base/BUILD.gn4
-rw-r--r--chromium/chromecast/browser/BUILD.gn40
-rw-r--r--chromium/chromecast/chromecast.gni9
-rw-r--r--chromium/chromecast/common/mojom/media_playback_options.mojom8
-rw-r--r--chromium/chromecast/common/mojom/typemaps.gni5
-rw-r--r--chromium/chromecast/external_mojo/broker_service/BUILD.gn16
-rw-r--r--chromium/chromecast/external_mojo/external_service_support/BUILD.gn71
-rw-r--r--chromium/chromecast/external_mojo/public/cpp/BUILD.gn30
-rw-r--r--chromium/chromecast/external_mojo/public/mojom/BUILD.gn11
-rw-r--r--chromium/chromecast/external_mojo/public/mojom/connector.mojom39
-rw-r--r--chromium/chromecast/media/BUILD.gn4
-rw-r--r--chromium/chromecast/media/audio/BUILD.gn20
-rw-r--r--chromium/chromecast/media/avsettings/BUILD.gn39
-rw-r--r--chromium/chromecast/media/cma/BUILD.gn11
-rw-r--r--chromium/chromecast/media/cma/backend/BUILD.gn71
-rw-r--r--chromium/chromecast/media/cma/backend/cplay/BUILD.gn20
-rw-r--r--chromium/chromecast/typemaps.gni12
19 files changed, 385 insertions, 34 deletions
diff --git a/chromium/chromecast/BUILD.gn b/chromium/chromecast/BUILD.gn
index a05b920501a..e9986487ee4 100644
--- a/chromium/chromecast/BUILD.gn
+++ b/chromium/chromecast/BUILD.gn
@@ -37,6 +37,9 @@ group("all") {
if (chromecast_branding != "public") {
deps += [ "//chromecast/internal:all" ]
}
+ if (enable_external_mojo_services) {
+ deps += [ "//chromecast/external_mojo/external_service_support:standalone_mojo_broker" ]
+ }
# No other targets should depend on this target, since it's just a convenience
# target for the Chromecast internal build infrastructure.
@@ -580,6 +583,7 @@ buildflag_header("chromecast_buildflags") {
"ENABLE_CAST_FRAGMENT=$enable_cast_fragment",
"ENABLE_CAST_WAYLAND_SERVER=$enable_cast_wayland_server",
"ENABLE_CHROMECAST_EXTENSIONS=$enable_chromecast_extensions",
+ "ENABLE_EXTERNAL_MOJO_SERVICES=$enable_external_mojo_services",
"ENABLE_HEADLESS_MUSIC_MODE=$enable_headless_music_mode",
"ENABLE_PLAYREADY=$enable_playready",
"ENABLE_VIDEO_CAPTURE_SERVICE=$enable_video_capture_service",
diff --git a/chromium/chromecast/app/BUILD.gn b/chromium/chromecast/app/BUILD.gn
index c18b2a8eab8..5166e886c90 100644
--- a/chromium/chromecast/app/BUILD.gn
+++ b/chromium/chromecast/app/BUILD.gn
@@ -98,10 +98,7 @@ cast_source_set("unittests") {
"//testing/gtest",
]
- if (is_fuchsia) {
- sources += [ "cast_main_delegate_unittest.cc" ]
- deps += [ ":app" ]
- } else {
+ if (!is_fuchsia) {
deps += [
# TODO(crbug.com/753619): Enable crash reporting on Fuchsia.
":cast_crash_client",
diff --git a/chromium/chromecast/base/BUILD.gn b/chromium/chromecast/base/BUILD.gn
index 75645e485a6..306ad198b34 100644
--- a/chromium/chromecast/base/BUILD.gn
+++ b/chromium/chromecast/base/BUILD.gn
@@ -228,7 +228,7 @@ cast_source_set("cast_sys_info") {
"//chromecast:chromecast_buildflags",
"//chromecast/browser:jni_headers",
]
- } else if (chromecast_branding == "public") {
+ } else if (chromecast_branding == "public" || is_fuchsia) {
sources += [ "cast_sys_info_util_simple.cc" ]
}
}
@@ -249,7 +249,7 @@ cast_shared_library("libcast_sys_info_1.0") {
# Note: Android links //chromecast/base:cast_sys_info statically.
cast_source_set("cast_sys_info_shlib") {
- if (!is_android) {
+ if (!is_android && !is_fuchsia) {
sources = [
"cast_sys_info_util_shlib.cc",
]
diff --git a/chromium/chromecast/browser/BUILD.gn b/chromium/chromecast/browser/BUILD.gn
index 8d0c995bf25..f777f46479b 100644
--- a/chromium/chromecast/browser/BUILD.gn
+++ b/chromium/chromecast/browser/BUILD.gn
@@ -6,7 +6,6 @@ import("//build/buildflag_header.gni")
import("//build/config/ui.gni")
import("//chromecast/chromecast.gni")
import("//media/media_options.gni")
-import("//services/service_manager/public/service_manifest.gni")
import("//testing/test.gni")
import("//tools/grit/grit_rule.gni")
@@ -19,6 +18,28 @@ buildflag_header("browser_buildflags") {
flags = [ "ENABLE_CAST_AUDIO_MANAGER_MIXER=$enable_cast_audio_manager_mixer" ]
}
+cast_source_set("prefs") {
+ sources = [
+ "pref_service_helper.cc",
+ "pref_service_helper.h",
+ ]
+
+ if (chromecast_branding == "public") {
+ sources += [ "pref_service_helper_simple.cc" ]
+ }
+
+ deps = [
+ "//base",
+ "//chromecast:chromecast_buildflags",
+ "//chromecast/base",
+ "//components/prefs",
+ ]
+
+ if (is_android) {
+ deps += [ "//components/cdm/browser" ]
+ }
+}
+
cast_source_set("browser") {
sources = [
"application_media_capabilities.cc",
@@ -49,6 +70,8 @@ cast_source_set("browser") {
"cast_navigation_ui_data.h",
"cast_net_log.cc",
"cast_net_log.h",
+ "cast_network_contexts.cc",
+ "cast_network_contexts.h",
"cast_network_delegate.cc",
"cast_network_delegate.h",
"cast_network_request_interceptor.cc",
@@ -89,8 +112,6 @@ cast_source_set("browser") {
"metrics/cast_metrics_service_client.h",
"metrics/cast_stability_metrics_provider.cc",
"metrics/cast_stability_metrics_provider.h",
- "pref_service_helper.cc",
- "pref_service_helper.h",
"renderer_prelauncher.cc",
"renderer_prelauncher.h",
"service/cast_service_simple.cc",
@@ -111,11 +132,11 @@ cast_source_set("browser") {
"cast_browser_main_parts_simple.cc",
"cast_content_browser_client_simple.cc",
"cast_network_request_interceptor_simple.cc",
- "pref_service_helper_simple.cc",
]
}
public_deps = [
+ ":prefs",
":public",
]
@@ -155,17 +176,16 @@ cast_source_set("browser") {
"//components/prefs",
"//components/proxy_config",
"//components/viz/service",
- "//content",
"//content/public/browser",
"//content/public/common",
"//content/public/common:service_names",
- "//content/public/utility",
"//device/bluetooth",
"//gpu",
"//ipc",
"//media",
"//media/mojo/services:media_manifest",
"//net",
+ "//services/media_session/public/mojom",
"//services/service_manager/public/cpp",
"//ui/base",
"//ui/compositor",
@@ -242,12 +262,18 @@ cast_source_set("browser") {
]
}
+ if (enable_external_mojo_services) {
+ deps += [ "//chromecast/external_mojo/broker_service" ]
+ }
+
if (enable_chromecast_extensions) {
sources += [
"cast_extension_host.cc",
"cast_extension_host.h",
"cast_extension_message_filter.cc",
"cast_extension_message_filter.h",
+ "cast_extension_url_loader_factory.cc",
+ "cast_extension_url_loader_factory.h",
"cast_web_view_extension.cc",
"cast_web_view_extension.h",
"extension_request_protocol_handler.cc",
@@ -403,7 +429,7 @@ cast_source_set("public") {
deps = [
"//base",
"//chromecast/graphics",
- "//content",
+ "//content/public/common",
"//ui/events",
"//url",
]
diff --git a/chromium/chromecast/chromecast.gni b/chromium/chromecast/chromecast.gni
index f1063f0b807..e9c0aba9a97 100644
--- a/chromium/chromecast/chromecast.gni
+++ b/chromium/chromecast/chromecast.gni
@@ -40,6 +40,10 @@ declare_args() {
# still be used to enable multizone.
supports_multizone = is_cast_audio_only && !is_cast_desktop_build
+ # Set to true on devices where the VolumeControl implementation is in the
+ # libcast_avsettings_1.0.so instead of in libcast_media_1.0.so.
+ cast_volume_control_in_avsettings = false
+
# Set to true for builds targeting ARC.
is_android_arc = false
@@ -112,6 +116,11 @@ declare_args() {
# Set to true to enable video capture service for video input and output.
enable_video_capture_service = false
+
+ # Set to true to enable external Mojo services to communicate with services
+ # within cast_shell. Enable for desktop builds to ensure that Chromium CQ
+ # builds the external Mojo broker code.
+ enable_external_mojo_services = is_cast_desktop_build
}
declare_args() {
diff --git a/chromium/chromecast/common/mojom/media_playback_options.mojom b/chromium/chromecast/common/mojom/media_playback_options.mojom
index 9a8fbaad639..3de8120170f 100644
--- a/chromium/chromecast/common/mojom/media_playback_options.mojom
+++ b/chromium/chromecast/common/mojom/media_playback_options.mojom
@@ -11,4 +11,10 @@ interface MediaPlaybackOptions {
SetMediaLoadingBlocked(bool blocked);
SetBackgroundVideoPlaybackEnabled(bool enabled);
-}; \ No newline at end of file
+
+ // Enable CMA (MojoRenderer) for media playback.
+ // Otherwise, media playback uses RendererImpl, which is the same as other
+ // platforms. For video codec supported by v4l2 (e.g. h264), it's still
+ // accelerated by hardware. Video will be rendererd on graphics plane.
+ SetUseCmaRenderer(bool enabled);
+};
diff --git a/chromium/chromecast/common/mojom/typemaps.gni b/chromium/chromecast/common/mojom/typemaps.gni
deleted file mode 100644
index 75d50bf095e..00000000000
--- a/chromium/chromecast/common/mojom/typemaps.gni
+++ /dev/null
@@ -1,5 +0,0 @@
-# Copyright 2018 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.
-
-typemaps = [ "//chromecast/common/mojom/multiroom.typemap" ]
diff --git a/chromium/chromecast/external_mojo/broker_service/BUILD.gn b/chromium/chromecast/external_mojo/broker_service/BUILD.gn
new file mode 100644
index 00000000000..c6e84e4079f
--- /dev/null
+++ b/chromium/chromecast/external_mojo/broker_service/BUILD.gn
@@ -0,0 +1,16 @@
+# Copyright 2019 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.
+
+source_set("broker_service") {
+ sources = [
+ "broker_service.cc",
+ "broker_service.h",
+ ]
+ deps = [
+ "//base",
+ "//chromecast/external_mojo/public/cpp:external_mojo_broker",
+ "//services/service_manager/public/cpp",
+ "//services/service_manager/public/mojom",
+ ]
+}
diff --git a/chromium/chromecast/external_mojo/external_service_support/BUILD.gn b/chromium/chromecast/external_mojo/external_service_support/BUILD.gn
new file mode 100644
index 00000000000..46f0562e64a
--- /dev/null
+++ b/chromium/chromecast/external_mojo/external_service_support/BUILD.gn
@@ -0,0 +1,71 @@
+# Copyright 2019 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.
+
+source_set("external_service") {
+ sources = [
+ "external_connector.cc",
+ "external_connector.h",
+ "external_service.cc",
+ "external_service.h",
+ ]
+ deps = [
+ "//base",
+ "//chromecast/external_mojo/public/mojom",
+ "//mojo/core/embedder",
+ "//mojo/public/cpp/bindings",
+ "//mojo/public/cpp/platform",
+ "//mojo/public/cpp/system",
+ ]
+}
+
+source_set("process_setup") {
+ sources = [
+ "process_setup.cc",
+ "process_setup.h",
+ ]
+ deps = [
+ "//base",
+ ]
+}
+
+source_set("standalone_service_main") {
+ sources = [
+ "service_process.h",
+ "standalone_service_main.cc",
+ ]
+ deps = [
+ ":external_service",
+ ":process_setup",
+ "//base",
+ "//chromecast/external_mojo/public/cpp:common",
+ "//mojo/core/embedder",
+ ]
+}
+
+source_set("chromium_service") {
+ sources = [
+ "chromium_service.cc",
+ "chromium_service.h",
+ ]
+ deps = [
+ ":external_service",
+ "//base",
+ "//chromecast/external_mojo/public/mojom",
+ "//mojo/public/cpp/bindings",
+ "//services/service_manager/public/cpp",
+ "//services/service_manager/public/mojom",
+ ]
+}
+
+executable("standalone_mojo_broker") {
+ sources = [
+ "standalone_mojo_broker.cc",
+ ]
+ deps = [
+ ":process_setup",
+ "//base",
+ "//chromecast/external_mojo/public/cpp:external_mojo_broker",
+ "//mojo/core/embedder",
+ ]
+}
diff --git a/chromium/chromecast/external_mojo/public/cpp/BUILD.gn b/chromium/chromecast/external_mojo/public/cpp/BUILD.gn
new file mode 100644
index 00000000000..ca1fca036dd
--- /dev/null
+++ b/chromium/chromecast/external_mojo/public/cpp/BUILD.gn
@@ -0,0 +1,30 @@
+# Copyright 2019 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.
+
+source_set("common") {
+ sources = [
+ "common.cc",
+ "common.h",
+ ]
+ deps = [
+ "//base",
+ ]
+}
+
+source_set("external_mojo_broker") {
+ sources = [
+ "external_mojo_broker.cc",
+ "external_mojo_broker.h",
+ ]
+ deps = [
+ ":common",
+ "//base",
+ "//chromecast/external_mojo/public/mojom",
+ "//mojo/public/cpp/bindings",
+ "//mojo/public/cpp/platform",
+ "//mojo/public/cpp/system",
+ "//services/service_manager/public/cpp",
+ "//services/service_manager/public/mojom",
+ ]
+}
diff --git a/chromium/chromecast/external_mojo/public/mojom/BUILD.gn b/chromium/chromecast/external_mojo/public/mojom/BUILD.gn
new file mode 100644
index 00000000000..0e60fb82035
--- /dev/null
+++ b/chromium/chromecast/external_mojo/public/mojom/BUILD.gn
@@ -0,0 +1,11 @@
+# Copyright 2019 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.
+
+import("//mojo/public/tools/bindings/mojom.gni")
+
+mojom("mojom") {
+ sources = [
+ "connector.mojom",
+ ]
+}
diff --git a/chromium/chromecast/external_mojo/public/mojom/connector.mojom b/chromium/chromecast/external_mojo/public/mojom/connector.mojom
new file mode 100644
index 00000000000..9939a4b1c6c
--- /dev/null
+++ b/chromium/chromecast/external_mojo/public/mojom/connector.mojom
@@ -0,0 +1,39 @@
+// Copyright 2019 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.
+
+module chromecast.external_mojo.mojom;
+
+// Interface for external (non-Chromium process) Mojo services to receive Mojo
+// binding requests from other processes/services.
+interface ExternalService {
+ // Called when another service/process wants to bind to the interface with the
+ // given |interface_name| on this service.
+ OnBindInterface(string interface_name,
+ handle<message_pipe> interface_pipe);
+};
+
+// Interface to register external Mojo services to the broker, and bind to
+// registered Mojo services. This provides functionality similar to Chromium's
+// service manager, but avoids any dependency on the service manager since this
+// is intended for use by code outside of the Chrome repository.
+interface ExternalConnector {
+ // Registers a service with the broker.
+ RegisterServiceInstance(string service_name,
+ ExternalService service);
+
+ // Asks the broker to pass the |interface_pipe| to the registered service with
+ // the given |service_name| to be bound to the appropriate interface. If the
+ // |service_name| is not registered yet, the request will remain pending until
+ // the service is registered.
+ BindInterface(string service_name,
+ string interface_name,
+ handle<message_pipe> interface_pipe);
+
+ // Creates a new binding to the Connector implementation, to allow clients to
+ // clone Connector pointers for use on other threads.
+ Clone(ExternalConnector& request);
+
+ // Binds to a Chromium service_manager::Connector instance, if possible.
+ BindChromiumConnector(handle<message_pipe> interface_pipe);
+};
diff --git a/chromium/chromecast/media/BUILD.gn b/chromium/chromecast/media/BUILD.gn
index 78d67d12035..43547f137b8 100644
--- a/chromium/chromecast/media/BUILD.gn
+++ b/chromium/chromecast/media/BUILD.gn
@@ -37,6 +37,10 @@ group("libcast_media") {
deps = [
"//chromecast/media/cma/backend:libcast_media_1.0",
]
+
+ if (cast_volume_control_in_avsettings) {
+ deps += [ "//chromecast/media/avsettings:libcast_avsettings_1.0" ]
+ }
}
}
diff --git a/chromium/chromecast/media/audio/BUILD.gn b/chromium/chromecast/media/audio/BUILD.gn
index 0539098e5c5..efa3ccc7ab7 100644
--- a/chromium/chromecast/media/audio/BUILD.gn
+++ b/chromium/chromecast/media/audio/BUILD.gn
@@ -1,10 +1,17 @@
# Copyright 2015 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.
-
+import("//build/buildflag_header.gni")
import("//chromecast/chromecast.gni")
import("//media/media_options.gni")
+declare_args() {
+ # Defines bounds for the output buffer size (in frames)
+ minimum_output_buffer_size_in_frames = 512
+ maximum_output_buffer_size_in_frames = 8192
+ default_output_buffer_size_in_frames = 2048
+}
+
cast_source_set("audio") {
sources = [
"cast_audio_manager.cc",
@@ -16,6 +23,7 @@ cast_source_set("audio") {
]
deps = [
+ ":audio_buildflags",
"//base",
"//chromecast/base",
"//chromecast/common/mojom",
@@ -63,3 +71,13 @@ source_set("fake_external_audio_pipeline") {
"//chromecast/public/media",
]
}
+
+buildflag_header("audio_buildflags") {
+ header = "audio_buildflags.h"
+
+ flags = [
+ "MINIMUM_OUTPUT_BUFFER_SIZE_IN_FRAMES=$minimum_output_buffer_size_in_frames",
+ "MAXIMUM_OUTPUT_BUFFER_SIZE_IN_FRAMES=$maximum_output_buffer_size_in_frames",
+ "DEFAULT_OUTPUT_BUFFER_SIZE_IN_FRAMES=$default_output_buffer_size_in_frames",
+ ]
+}
diff --git a/chromium/chromecast/media/avsettings/BUILD.gn b/chromium/chromecast/media/avsettings/BUILD.gn
new file mode 100644
index 00000000000..dc0116289ce
--- /dev/null
+++ b/chromium/chromecast/media/avsettings/BUILD.gn
@@ -0,0 +1,39 @@
+# Copyright 2019 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.
+
+import("//build/buildflag_header.gni")
+import("//chromecast/chromecast.gni")
+
+buildflag_header("avsettings_buildflags") {
+ header = "avsettings_buildflags.h"
+
+ flags = [
+ "VOLUME_CONTROL_IN_AVSETTINGS_SHLIB=$cast_volume_control_in_avsettings",
+ ]
+}
+
+cast_source_set("avsettings_dummy") {
+ sources = [
+ "avsettings_dummy.cc",
+ "avsettings_dummy.h",
+ ]
+
+ deps = [
+ "//chromecast/public",
+ ]
+}
+
+# Target for OEM partners to override avsettings shared library, i.e.
+# libcast_avsettings_1.0.so.
+cast_shared_library("libcast_avsettings_1.0") {
+ sources = [
+ "avsettings_shlib.cc",
+ ]
+
+ deps = [
+ ":avsettings_buildflags",
+ ":avsettings_dummy",
+ "//chromecast/public",
+ ]
+}
diff --git a/chromium/chromecast/media/cma/BUILD.gn b/chromium/chromecast/media/cma/BUILD.gn
index 427c96cf40d..bf49cf607e6 100644
--- a/chromium/chromecast/media/cma/BUILD.gn
+++ b/chromium/chromecast/media/cma/BUILD.gn
@@ -77,7 +77,16 @@ cast_source_set("unittests") {
if (enable_video_with_mixed_audio) {
defines = [ "ENABLE_VIDEO_WITH_MIXED_AUDIO" ]
- libs = ["videodecoderformixer"]
+
+ # libvideodecoderformixer is linked here for the
+ # VideoDecoderForMixer::InitializeGraphicsForTesting symbol. Currently only
+ # alsa platforms do anything useful in this initialization, so otherwise
+ # just link in a dummy.
+ if (use_alsa) {
+ libs = [ "videodecoderformixer" ]
+ } else {
+ sources += [ "backend/dummy_initialize_graphics_for_testing.cc" ]
+ }
}
data = [
diff --git a/chromium/chromecast/media/cma/backend/BUILD.gn b/chromium/chromecast/media/cma/backend/BUILD.gn
index d3733d8ac7b..f433faeadc8 100644
--- a/chromium/chromecast/media/cma/backend/BUILD.gn
+++ b/chromium/chromecast/media/cma/backend/BUILD.gn
@@ -10,6 +10,8 @@ import("//media/media_options.gni")
declare_args() {
system_owns_volume =
use_alsa && !enable_assistant && chromecast_branding != "google"
+
+ mixer_output = ""
}
cast_source_set("backend") {
@@ -80,16 +82,20 @@ cast_source_set("dummy") {
]
deps = [
+ ":audio_buildflags",
"//chromecast/public",
]
}
+volume_control_in_media_shlib = !cast_volume_control_in_avsettings
+
buildflag_header("audio_buildflags") {
header = "audio_buildflags.h"
flags = [
"MEDIA_CLOCK_MONOTONIC_RAW=$media_clock_monotonic_raw",
"SYSTEM_OWNS_VOLUME=$system_owns_volume",
+ "VOLUME_CONTROL_IN_MEDIA_SHLIB=$volume_control_in_media_shlib",
]
}
@@ -189,6 +195,51 @@ cast_source_set("audio_resampler") {
]
}
+cast_source_set("mixer_pipeline") {
+ sources = [
+ "audio_output_redirector_input.h",
+ "filter_group.cc",
+ "filter_group.h",
+ "mixer_input.cc",
+ "mixer_input.h",
+ "mixer_pipeline.cc",
+ "mixer_pipeline.h",
+ "post_processing_pipeline.h",
+ "post_processing_pipeline_impl.cc",
+ "post_processing_pipeline_impl.h",
+ "post_processing_pipeline_parser.cc",
+ "post_processing_pipeline_parser.h",
+ ]
+ deps = [
+ ":audio_buildflags",
+ ":audio_helpers",
+ ":audio_resampler",
+ ":cast_audio_json",
+ ":post_processor_factory",
+ ":public",
+ "//base",
+ "//chromecast/base",
+ "//chromecast/media/base",
+ "//chromecast/media/cma/base",
+ "//chromecast/media/cma/decoder",
+ "//chromecast/public",
+ "//chromecast/public/media",
+ "//media",
+ "//media:shared_memory_support",
+ ]
+}
+
+cast_source_set("volume_map") {
+ sources = [
+ "volume_map.cc",
+ "volume_map.h",
+ ]
+ deps = [
+ ":cast_audio_json",
+ "//base",
+ ]
+}
+
cast_source_set("for_mixer_audio") {
sources = [
"audio_decoder_for_mixer.cc",
@@ -200,24 +251,11 @@ cast_source_set("for_mixer_audio") {
"cast_media_shlib_mixer_audio.cc",
"direct_mixer_source.cc",
"direct_mixer_source.h",
- "filter_group.cc",
- "filter_group.h",
"media_pipeline_backend_for_mixer.cc",
"media_pipeline_backend_for_mixer.h",
- "mixer_input.cc",
- "mixer_input.h",
- "mixer_pipeline.cc",
- "mixer_pipeline.h",
- "post_processing_pipeline.h",
- "post_processing_pipeline_impl.cc",
- "post_processing_pipeline_impl.h",
- "post_processing_pipeline_parser.cc",
- "post_processing_pipeline_parser.h",
"stream_mixer.cc",
"stream_mixer.h",
"volume_control.cc",
- "volume_map.cc",
- "volume_map.h",
]
deps = [
@@ -225,8 +263,10 @@ cast_source_set("for_mixer_audio") {
":audio_helpers",
":audio_resampler",
":cast_audio_json",
+ ":mixer_pipeline",
":post_processor_factory",
":public",
+ ":volume_map",
"//base",
"//chromecast/base",
"//chromecast/media/audio:libcast_external_audio_pipeline_1.0",
@@ -248,6 +288,9 @@ cast_source_set("for_mixer_audio") {
# provide its own mixer output.
if (!enable_video_with_mixed_audio) {
sources += [ "mixer_output_stream_dummy.cc" ]
+ } else {
+ assert("$mixer_output" != "")
+ deps += [ "$mixer_output" ]
}
}
}
@@ -273,8 +316,10 @@ test("cast_audio_backend_unittests") {
":av_sync_dummy",
":cast_audio_json",
":for_mixer_audio",
+ ":mixer_pipeline",
":null_video",
":public",
+ ":volume_map",
"//base",
"//base/test:run_all_unittests",
"//chromecast/media/audio:fake_external_audio_pipeline",
diff --git a/chromium/chromecast/media/cma/backend/cplay/BUILD.gn b/chromium/chromecast/media/cma/backend/cplay/BUILD.gn
new file mode 100644
index 00000000000..de9c6c42bca
--- /dev/null
+++ b/chromium/chromecast/media/cma/backend/cplay/BUILD.gn
@@ -0,0 +1,20 @@
+# Copyright 2019 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.
+
+executable("cplay") {
+ sources = [
+ "cplay.cc",
+ "wav_header.h",
+ ]
+ deps = [
+ "//base",
+ "//chromecast/media/cma/backend:cast_audio_json",
+ "//chromecast/media/cma/backend:mixer_pipeline",
+ "//chromecast/media/cma/backend:public",
+ "//chromecast/media/cma/backend:volume_map",
+ "//chromecast/public",
+ "//chromecast/public/media",
+ "//media",
+ ]
+}
diff --git a/chromium/chromecast/typemaps.gni b/chromium/chromecast/typemaps.gni
new file mode 100644
index 00000000000..e3efd004c3b
--- /dev/null
+++ b/chromium/chromecast/typemaps.gni
@@ -0,0 +1,12 @@
+# Copyright 2019 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.
+
+import("//build/config/chromecast_build.gni")
+
+typemaps = [ "//chromecast/common/mojom/multiroom.typemap" ]
+
+if (chromecast_branding != "public") {
+ _typemap_internal = read_file("//chromecast/internal/typemaps.gni", "scope")
+ typemaps += _typemap_internal.typemaps
+}