blob: a2d9f77eb086c1c6f7608da676180dfbdaba82ed [file] [log] [blame]
# 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")
import("//testing/test.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_io_thread") {
sources = [
"audio_io_thread.cc",
"audio_io_thread.h",
]
deps = [ "//base" ]
}
cast_source_set("processing") {
sources = [
"audio_clock_simulator.cc",
"audio_clock_simulator.h",
"audio_fader.cc",
"audio_fader.h",
"audio_provider.h",
"interleaved_channel_mixer.cc",
"interleaved_channel_mixer.h",
]
deps = [
"//base",
"//media",
]
# Use fastest possible float math.
configs -= [ "//build/config/compiler:default_optimization" ]
configs += [ "//build/config/compiler:optimize_speed" ]
cflags = [ "-ffast-math" ]
}
cast_source_set("audio") {
sources = [
"cast_audio_input_stream.cc",
"cast_audio_input_stream.h",
"cast_audio_manager.cc",
"cast_audio_manager.h",
"cast_audio_mixer.cc",
"cast_audio_mixer.h",
"cast_audio_output_stream.cc",
"cast_audio_output_stream.h",
"cma_audio_output_stream.cc",
"cma_audio_output_stream.h",
]
deps = [
":audio_buildflags",
"//base",
"//chromecast/base",
"//chromecast/common/mojom",
"//chromecast/media/audio/capture_service:receiver",
"//chromecast/media/audio/mixer_service:common",
"//chromecast/media/audio/mixer_service:output_stream_connection",
"//chromecast/media/audio/mixer_service:proto",
"//chromecast/media/base",
"//chromecast/media/base:monotonic_clock",
"//chromecast/media/cma/backend",
"//chromecast/media/cma/base",
"//chromecast/public/media",
"//media",
"//media:shared_memory_support",
"//services/service_manager/public/cpp",
]
if (use_alsa) {
sources += [
"cast_audio_manager_alsa.cc",
"cast_audio_manager_alsa.h",
]
deps += [
":audio_buildflags",
"//content/public/browser",
]
}
configs += [ "//media/audio:platform_config" ]
}
if (is_android) {
cast_source_set("cast_audio_device_factory") {
sources = [
"cast_audio_device_factory.cc",
"cast_audio_device_factory.h",
]
deps = [
"//base",
"//content/renderer:renderer",
"//media",
]
}
}
source_set("dummy_external_audio_pipeline") {
sources = [ "external_audio_pipeline_dummy.cc" ]
public_deps = [ "//chromecast/public/media" ]
}
cast_shared_library("libcast_external_audio_pipeline_1.0") {
public_deps = [ ":dummy_external_audio_pipeline" ]
}
source_set("fake_external_audio_pipeline") {
sources = [
"fake_external_audio_pipeline.cc",
"fake_external_audio_pipeline_support.h",
]
deps = [
"//base",
"//chromecast/public",
"//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",
"ENABLE_AUDIO_CAPTURE_SERVICE=$enable_audio_capture_service",
]
if (use_alsa) {
# Currently, this flag will only be used in cast_audio_manager_alsa.cc
flags += [ "AUDIO_INPUT_SAMPLE_RATE=$audio_input_sample_rate" ]
}
}
cast_source_set("test_support") {
testonly = true
sources = [ "mock_audio_input_callback.h" ]
public_deps = [ "//testing/gmock" ]
deps = [ "//media" ]
}
cast_source_set("unittests") {
testonly = true
sources = [
"audio_clock_simulator_unittest.cc",
"audio_fader_unittest.cc",
"interleaved_channel_mixer_unittest.cc",
]
deps = [
":processing",
"//base",
"//media",
"//testing/gmock",
"//testing/gtest",
]
}