Factorize media/audio into new GN.

Breaks out one of the most complex media/ targets into its
own BUILD.gn file for improved readibility and targetting.

BUG=none
TEST=media_unittests

Review URL: https://codereview.chromium.org/396793003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@284314 0039d316-1c4b-4281-b951-d872f2087c98
parent fb87cfdf
...@@ -220,7 +220,7 @@ deps = { ...@@ -220,7 +220,7 @@ deps = {
"src/third_party/ffmpeg": "src/third_party/ffmpeg":
Var("chromium_git") + Var("chromium_git") +
"/chromium/third_party/ffmpeg.git@4b7b36f956209fad838ad87d0129130713fbb00c", "/chromium/third_party/ffmpeg.git@35b6086d85dd8aa7d29c2525e11debc5937bb506",
"src/third_party/libjingle/source/talk": "src/third_party/libjingle/source/talk":
(Var("googlecode_url") % "webrtc") + "/trunk/talk@" + (Var("googlecode_url") % "webrtc") + "/trunk/talk@" +
......
...@@ -6,48 +6,7 @@ import("//build/config/android/config.gni") ...@@ -6,48 +6,7 @@ import("//build/config/android/config.gni")
import("//build/config/arm.gni") import("//build/config/arm.gni")
import("//build/config/ui.gni") import("//build/config/ui.gni")
import("//build/config/linux/pkg_config.gni") import("//build/config/linux/pkg_config.gni")
import("//media/media_options.gni")
# These variables need to be args.
# Override to dynamically link the cras (ChromeOS audio) library.
use_cras = false
# Option e.g. for Linux distributions to link pulseaudio directly
# (DT_NEEDED) instead of using dlopen. This helps with automated
# detection of ABI mismatches and prevents silent errors.
#
# TODO(ajwong): Why is this prefixed "linux_"?
linux_link_pulseaudio = false
# TODO(ajwong): Enable libvpx once that's converted.
media_use_ffmpeg = true
media_use_libvpx = false
if (is_android) {
# Android doesn't use ffmpeg or libvpx.
media_use_ffmpeg = false
media_use_libvpx = false
}
# TODO(ajwong): how to disable embedded?
# Original conditional: (OS=="linux" or OS=="freebsd" or OS=="solaris") and embedded!=1
use_alsa = false
use_pulseaudio = false
if (is_posix && !is_android) {
use_alsa = true
if (!use_cras) {
use_pulseaudio = true
}
}
# TODO(ajwong): is_openbsd should be a platform define.
is_openbsd = false
# TODO(ajwong): This should be branding controlled?
proprietary_codecs = false
# TODO(ajwong): Where are these coming from?jk
enable_mpeg2ts_stream_parser = false
enable_browser_cdms = is_android
# Common configuration for targets in the media directory. # Common configuration for targets in the media directory.
# NOT for exporting. # NOT for exporting.
...@@ -83,131 +42,10 @@ if (is_win) { ...@@ -83,131 +42,10 @@ if (is_win) {
} }
} }
if (!linux_link_pulseaudio) {
# When libpulse is not directly linked, use stubs to allow for dlopening of
# the binary.
action("pulse_generate_stubs") {
extra_header = "audio/pulse/pulse_stub_header.fragment"
script = "../tools/generate_stubs/generate_stubs.py"
sources = [ "audio/pulse/pulse.sigs" ]
source_prereqs = [ extra_header ]
stubs_filename_root = "pulse_stubs"
# TODO(ajwong): these need to be included in the pulse build.
outputs = [
"$target_gen_dir/audio/pulse/$stubs_filename_root.cc",
"$target_gen_dir/audio/pulse/$stubs_filename_root.h",
]
args = [
"-i", rebase_path("$target_gen_dir/audio/pulse", root_build_dir),
"-o", rebase_path("$target_gen_dir/audio/pulse", root_build_dir),
"-t", "posix_stubs",
"-e", rebase_path(extra_header, root_build_dir),
"-s", stubs_filename_root,
"-p", "media/audio/pulse",
]
args += rebase_path(sources, root_build_dir)
}
}
component("media") { component("media") {
sources = [ sources = [
"audio/agc_audio_stream.h", "base/audio_block_fifo.cc",
"audio/audio_buffers_state.cc", "base/audio_block_fifo.h",
"audio/audio_buffers_state.h",
"audio/audio_device_name.cc",
"audio/audio_device_name.h",
"audio/audio_device_thread.cc",
"audio/audio_device_thread.h",
"audio/audio_input_controller.cc",
"audio/audio_input_controller.h",
"audio/audio_input_device.cc",
"audio/audio_input_device.h",
"audio/audio_input_ipc.cc",
"audio/audio_input_ipc.h",
"audio/audio_io.h",
"audio/audio_manager.cc",
"audio/audio_manager.h",
"audio/audio_manager_base.cc",
"audio/audio_manager_base.h",
"audio/audio_output_controller.cc",
"audio/audio_output_controller.h",
"audio/audio_output_device.cc",
"audio/audio_output_device.h",
"audio/audio_output_dispatcher.cc",
"audio/audio_output_dispatcher.h",
"audio/audio_output_dispatcher_impl.cc",
"audio/audio_output_dispatcher_impl.h",
"audio/audio_output_ipc.cc",
"audio/audio_output_ipc.h",
"audio/audio_output_proxy.cc",
"audio/audio_output_proxy.h",
"audio/audio_output_resampler.cc",
"audio/audio_output_resampler.h",
"audio/audio_power_monitor.cc",
"audio/audio_power_monitor.h",
"audio/audio_source_diverter.h",
"audio/clockless_audio_sink.cc",
"audio/clockless_audio_sink.h",
"audio/fake_audio_consumer.cc",
"audio/fake_audio_consumer.h",
"audio/fake_audio_input_stream.cc",
"audio/fake_audio_input_stream.h",
"audio/fake_audio_log_factory.h",
"audio/fake_audio_log_factory.cc",
"audio/fake_audio_manager.cc",
"audio/fake_audio_manager.h",
"audio/fake_audio_output_stream.cc",
"audio/fake_audio_output_stream.h",
"audio/linux/audio_manager_linux.cc",
"audio/mac/audio_auhal_mac.cc",
"audio/mac/audio_auhal_mac.h",
"audio/mac/audio_device_listener_mac.cc",
"audio/mac/audio_device_listener_mac.h",
"audio/mac/audio_input_mac.cc",
"audio/mac/audio_input_mac.h",
"audio/mac/audio_low_latency_input_mac.cc",
"audio/mac/audio_low_latency_input_mac.h",
"audio/mac/audio_manager_mac.cc",
"audio/mac/audio_manager_mac.h",
"audio/null_audio_sink.cc",
"audio/null_audio_sink.h",
"audio/sample_rates.cc",
"audio/sample_rates.h",
"audio/scoped_task_runner_observer.cc",
"audio/scoped_task_runner_observer.h",
"audio/simple_sources.cc",
"audio/simple_sources.h",
"audio/sounds/audio_stream_handler.cc",
"audio/sounds/audio_stream_handler.h",
"audio/sounds/sounds_manager.cc",
"audio/sounds/sounds_manager.h",
"audio/sounds/wav_audio_handler.cc",
"audio/sounds/wav_audio_handler.h",
"audio/virtual_audio_input_stream.cc",
"audio/virtual_audio_input_stream.h",
"audio/virtual_audio_output_stream.cc",
"audio/virtual_audio_output_stream.h",
"audio/win/audio_device_listener_win.cc",
"audio/win/audio_device_listener_win.h",
"audio/win/audio_low_latency_input_win.cc",
"audio/win/audio_low_latency_input_win.h",
"audio/win/audio_low_latency_output_win.cc",
"audio/win/audio_low_latency_output_win.h",
"audio/win/audio_manager_win.cc",
"audio/win/audio_manager_win.h",
"audio/win/avrt_wrapper_win.cc",
"audio/win/avrt_wrapper_win.h",
"audio/win/core_audio_util_win.cc",
"audio/win/core_audio_util_win.h",
"audio/win/device_enumeration_win.cc",
"audio/win/device_enumeration_win.h",
"audio/win/wavein_input_win.cc",
"audio/win/wavein_input_win.h",
"audio/win/waveout_output_win.cc",
"audio/win/waveout_output_win.h",
"base/audio_buffer.cc", "base/audio_buffer.cc",
"base/audio_buffer.h", "base/audio_buffer.h",
"base/audio_buffer_queue.cc", "base/audio_buffer_queue.cc",
...@@ -328,6 +166,7 @@ component("media") { ...@@ -328,6 +166,7 @@ component("media") {
"base/text_track_config.h", "base/text_track_config.h",
"base/time_delta_interpolator.cc", "base/time_delta_interpolator.cc",
"base/time_delta_interpolator.h", "base/time_delta_interpolator.h",
"base/time_source.h",
"base/user_input_monitor.cc", "base/user_input_monitor.cc",
"base/user_input_monitor.h", "base/user_input_monitor.h",
"base/user_input_monitor_mac.cc", "base/user_input_monitor_mac.cc",
...@@ -345,6 +184,8 @@ component("media") { ...@@ -345,6 +184,8 @@ component("media") {
"base/video_rotation.h", "base/video_rotation.h",
"base/video_util.cc", "base/video_util.cc",
"base/video_util.h", "base/video_util.h",
"base/wall_clock_time_source.cc",
"base/wall_clock_time_source.h",
"base/yuv_convert.cc", "base/yuv_convert.cc",
"base/yuv_convert.h", "base/yuv_convert.h",
"cdm/aes_decryptor.cc", "cdm/aes_decryptor.cc",
...@@ -581,15 +422,6 @@ component("media") { ...@@ -581,15 +422,6 @@ component("media") {
] ]
} else { } else {
sources += [ sources += [
"audio/android/audio_manager_android.cc",
"audio/android/audio_manager_android.h",
"audio/android/audio_record_input.cc",
"audio/android/audio_record_input.h",
"audio/android/opensles_input.cc",
"audio/android/opensles_input.h",
"audio/android/opensles_output.cc",
"audio/android/opensles_output.h",
"audio/android/opensles_wrapper.cc",
"base/android/demuxer_android.h", "base/android/demuxer_android.h",
"base/android/demuxer_stream_player_params.cc", "base/android/demuxer_stream_player_params.cc",
"base/android/demuxer_stream_player_params.h", "base/android/demuxer_stream_player_params.h",
...@@ -647,28 +479,11 @@ component("media") { ...@@ -647,28 +479,11 @@ component("media") {
libs += [ "asound" ] libs += [ "asound" ]
defines += [ "USE_ALSA" ] defines += [ "USE_ALSA" ]
sources += [ sources += [
"audio/alsa/alsa_input.cc",
"audio/alsa/alsa_input.h",
"audio/alsa/alsa_output.cc",
"audio/alsa/alsa_output.h",
"audio/alsa/alsa_util.cc",
"audio/alsa/alsa_util.h",
"audio/alsa/alsa_wrapper.cc",
"audio/alsa/alsa_wrapper.h",
"audio/alsa/audio_manager_alsa.cc",
"audio/alsa/audio_manager_alsa.h",
"midi/midi_manager_alsa.cc", "midi/midi_manager_alsa.cc",
"midi/midi_manager_alsa.h", "midi/midi_manager_alsa.h",
] ]
} }
if (is_openbsd) {
sources += [
"audio/openbsd/audio_manager_openbsd.cc",
"audio/openbsd/audio_manager_openbsd.h",
]
}
# A simple WebM encoder for animated avatars on ChromeOS. # A simple WebM encoder for animated avatars on ChromeOS.
if (is_linux) { if (is_linux) {
if (use_x11) { if (use_x11) {
...@@ -686,22 +501,6 @@ component("media") { ...@@ -686,22 +501,6 @@ component("media") {
} else { } else {
defines += [ "DISABLE_USER_INPUT_MONITOR" ] defines += [ "DISABLE_USER_INPUT_MONITOR" ]
} }
if (use_cras) {
pkg_config("libcras") {
packages = [ "libcras" ]
}
configs += [ "libcras" ]
sources += [
"audio/cras/audio_manager_cras.cc",
"audio/cras/audio_manager_cras.h",
"audio/cras/cras_input.cc",
"audio/cras/cras_input.h",
"audio/cras/cras_unified.cc",
"audio/cras/cras_unified.h",
]
}
} }
if (use_ozone) { if (use_ozone) {
...@@ -736,35 +535,8 @@ component("media") { ...@@ -736,35 +535,8 @@ component("media") {
} }
} }
if (use_pulseaudio) {
if (linux_link_pulseaudio) {
pkg_config("libpulse") {
packages = [ "libpulse" ]
}
configs += [ ":libpulse" ]
} else {
# TODO(ajwong): Technically, this dl should go in the action.
libs += [ "dl" ]
deps += [ ":pulse_generate_stubs" ]
sources += get_target_outputs(":pulse_generate_stubs")
}
sources += [
"audio/pulse/audio_manager_pulse.cc",
"audio/pulse/audio_manager_pulse.h",
"audio/pulse/pulse_input.cc",
"audio/pulse/pulse_input.h",
"audio/pulse/pulse_output.cc",
"audio/pulse/pulse_output.h",
"audio/pulse/pulse_util.cc",
"audio/pulse/pulse_util.h",
]
}
if (is_mac) { if (is_mac) {
libs += [ libs += [
"AudioToolbox.framework",
"AudioUnit.framework",
"CoreAudio.framework",
"CoreMIDI.framework", "CoreMIDI.framework",
"CoreVideo.framework", "CoreVideo.framework",
"OpenGL.framework", "OpenGL.framework",
...@@ -863,6 +635,7 @@ component("media") { ...@@ -863,6 +635,7 @@ component("media") {
"//crypto", "//crypto",
"//crypto:platform", # TODO(ajwong): This used to be provided by crypto.gyp via export_dependent_settings "//crypto:platform", # TODO(ajwong): This used to be provided by crypto.gyp via export_dependent_settings
"//gpu/command_buffer/common", "//gpu/command_buffer/common",
"//media/audio",
"//skia", "//skia",
"//third_party/opus", "//third_party/opus",
"//ui/events:events_base", "//ui/events:events_base",
...@@ -874,35 +647,10 @@ component("media") { ...@@ -874,35 +647,10 @@ component("media") {
test("media_unittests") { test("media_unittests") {
sources = [ sources = [
"audio/android/audio_android_unittest.cc",
"audio/audio_input_controller_unittest.cc",
"audio/audio_input_unittest.cc",
"audio/audio_manager_unittest.cc",
"audio/audio_output_controller_unittest.cc",
"audio/audio_output_device_unittest.cc",
"audio/audio_output_proxy_unittest.cc",
"audio/audio_parameters_unittest.cc",
"audio/audio_power_monitor_unittest.cc",
"audio/fake_audio_consumer_unittest.cc",
"audio/mac/audio_auhal_mac_unittest.cc",
"audio/mac/audio_device_listener_mac_unittest.cc",
"audio/mac/audio_low_latency_input_mac_unittest.cc",
"audio/simple_sources_unittest.cc",
"audio/sounds/audio_stream_handler_unittest.cc",
"audio/sounds/sounds_manager_unittest.cc",
"audio/sounds/test_data.cc",
"audio/sounds/test_data.h",
"audio/sounds/wav_audio_handler_unittest.cc",
"audio/virtual_audio_input_stream_unittest.cc",
"audio/virtual_audio_output_stream_unittest.cc",
"audio/win/audio_device_listener_win_unittest.cc",
"audio/win/audio_low_latency_input_win_unittest.cc",
"audio/win/audio_low_latency_output_win_unittest.cc",
"audio/win/audio_output_win_unittest.cc",
"audio/win/core_audio_util_win_unittest.cc",
"base/android/media_codec_bridge_unittest.cc", "base/android/media_codec_bridge_unittest.cc",
"base/android/media_drm_bridge_unittest.cc", "base/android/media_drm_bridge_unittest.cc",
"base/android/media_source_player_unittest.cc", "base/android/media_source_player_unittest.cc",
"base/audio_block_fifo_unittest.cc",
"base/audio_buffer_converter_unittest.cc", "base/audio_buffer_converter_unittest.cc",
"base/audio_buffer_unittest.cc", "base/audio_buffer_unittest.cc",
"base/audio_buffer_queue_unittest.cc", "base/audio_buffer_queue_unittest.cc",
...@@ -944,6 +692,7 @@ test("media_unittests") { ...@@ -944,6 +692,7 @@ test("media_unittests") {
"base/video_frame_unittest.cc", "base/video_frame_unittest.cc",
"base/video_frame_pool_unittest.cc", "base/video_frame_pool_unittest.cc",
"base/video_util_unittest.cc", "base/video_util_unittest.cc",
"base/wall_clock_time_source_unittest.cc",
"base/yuv_convert_unittest.cc", "base/yuv_convert_unittest.cc",
"cdm/aes_decryptor_unittest.cc", "cdm/aes_decryptor_unittest.cc",
"cdm/json_web_key_unittest.cc", "cdm/json_web_key_unittest.cc",
...@@ -1002,7 +751,7 @@ test("media_unittests") { ...@@ -1002,7 +751,7 @@ test("media_unittests") {
if (!is_android) { if (!is_android) {
sources += [ sources += [
"audio/audio_input_volume_unittest.cc",
"base/container_names_unittest.cc", "base/container_names_unittest.cc",
"ffmpeg/ffmpeg_common_unittest.cc", "ffmpeg/ffmpeg_common_unittest.cc",
"filters/audio_decoder_unittest.cc", "filters/audio_decoder_unittest.cc",
...@@ -1023,24 +772,10 @@ test("media_unittests") { ...@@ -1023,24 +772,10 @@ test("media_unittests") {
# ] # ]
} }
if (is_linux && use_cras) {
sources += [
"audio/cras/cras_input_unittest.cc",
"audio/cras/cras_unified_unittest.cc",
]
}
if (cpu_arch != "arm" && is_chromeos && use_x11) { if (cpu_arch != "arm" && is_chromeos && use_x11) {
sources += [ "filters/h264_bitstream_buffer_unittest.cc" ] sources += [ "filters/h264_bitstream_buffer_unittest.cc" ]
} }
if (use_alsa) {
sources += [
"audio/alsa/alsa_output_unittest.cc",
"audio/audio_low_latency_input_output_unittest.cc",
]
}
if (cpu_arch == "x86" || cpu_arch == "x64") { if (cpu_arch == "x86" || cpu_arch == "x64") {
sources += [ "base/simd/convert_rgb_to_yuv_unittest.cc" ] sources += [ "base/simd/convert_rgb_to_yuv_unittest.cc" ]
} }
...@@ -1100,6 +835,8 @@ test("media_unittests") { ...@@ -1100,6 +835,8 @@ test("media_unittests") {
":media", ":media",
":media_test_support", ":media_test_support",
"//base/test:test_support", "//base/test:test_support",
"//media/audio:unittests",
"//media/audio:test_support",
"//skia", # Direct dependency required to inherit config. "//skia", # Direct dependency required to inherit config.
"//testing/gmock", "//testing/gmock",
"//testing/gtest", "//testing/gtest",
...@@ -1137,6 +874,7 @@ test("media_perftests") { ...@@ -1137,6 +874,7 @@ test("media_perftests") {
":media_test_support", ":media_test_support",
":shared_memory_support", ":shared_memory_support",
"//base/test:test_support", "//base/test:test_support",
"//media/audio:test_support",
"//testing/gmock", "//testing/gmock",
"//testing/gtest", "//testing/gtest",
"//testing/perf", "//testing/perf",
...@@ -1230,12 +968,6 @@ if (cpu_arch == "x86" || cpu_arch == "x64") { ...@@ -1230,12 +968,6 @@ if (cpu_arch == "x86" || cpu_arch == "x64") {
source_set("media_test_support") { source_set("media_test_support") {
sources = [ sources = [
"audio/mock_audio_manager.cc",
"audio/mock_audio_manager.h",
"audio/mock_audio_source_callback.cc",
"audio/mock_audio_source_callback.h",
"audio/test_audio_input_controller_factory.cc",
"audio/test_audio_input_controller_factory.h",
"base/fake_audio_render_callback.cc", "base/fake_audio_render_callback.cc",
"base/fake_audio_render_callback.h", "base/fake_audio_render_callback.h",
"base/fake_audio_renderer_sink.cc", "base/fake_audio_renderer_sink.cc",
...@@ -1272,6 +1004,7 @@ source_set("media_test_support") { ...@@ -1272,6 +1004,7 @@ source_set("media_test_support") {
] ]
} }
# TODO(dalecurtis): How to split this across audio/base directories??
component("shared_memory_support") { component("shared_memory_support") {
sources = [ sources = [
"audio/audio_parameters.cc", "audio/audio_parameters.cc",
...@@ -1316,6 +1049,7 @@ if (media_use_ffmpeg) { ...@@ -1316,6 +1049,7 @@ if (media_use_ffmpeg) {
":media", ":media",
":media_test_support", ":media_test_support",
"//base/test:test_support", "//base/test:test_support",
"//media/audio:test_support",
"//testing/gmock", "//testing/gmock",
"//testing/gtest", "//testing/gtest",
"//third_party/ffmpeg", "//third_party/ffmpeg",
......
# Copyright 2014 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("//media/media_options.gni")
# When libpulse is not directly linked, use stubs to allow for dlopening of the
# binary.
if (!linux_link_pulseaudio) {
action("pulse_generate_stubs") {
extra_header = "pulse/pulse_stub_header.fragment"
script = "../../tools/generate_stubs/generate_stubs.py"
sources = [ "pulse/pulse.sigs" ]
source_prereqs = [ extra_header ]
stubs_filename_root = "pulse_stubs"
# TODO(ajwong): these need to be included in the pulse build.
outputs = [
"$target_gen_dir/pulse/$stubs_filename_root.cc",
"$target_gen_dir/pulse/$stubs_filename_root.h",
]
args = [
"-i", rebase_path("$target_gen_dir/pulse", root_build_dir),
"-o", rebase_path("$target_gen_dir/pulse", root_build_dir),
"-t", "posix_stubs",
"-e", rebase_path(extra_header, root_build_dir),
"-s", stubs_filename_root,
"-p", "media/audio/pulse",
]
args += rebase_path(sources, root_build_dir)
}
}
source_set("audio") {
sources = [
"agc_audio_stream.h",
"audio_buffers_state.cc",
"audio_buffers_state.h",
"audio_device_name.cc",
"audio_device_name.h",
"audio_device_thread.cc",
"audio_device_thread.h",
"audio_input_controller.cc",
"audio_input_controller.h",
"audio_input_device.cc",
"audio_input_device.h",
"audio_input_ipc.cc",
"audio_input_ipc.h",
"audio_io.h",
"audio_manager.cc",
"audio_manager.h",
"audio_manager_base.cc",
"audio_manager_base.h",
"audio_output_controller.cc",
"audio_output_controller.h",
"audio_output_device.cc",
"audio_output_device.h",
"audio_output_dispatcher.cc",
"audio_output_dispatcher.h",
"audio_output_dispatcher_impl.cc",
"audio_output_dispatcher_impl.h",
"audio_output_ipc.cc",
"audio_output_ipc.h",
"audio_output_proxy.cc",
"audio_output_proxy.h",
"audio_output_resampler.cc",
"audio_output_resampler.h",
"audio_power_monitor.cc",
"audio_power_monitor.h",
"audio_source_diverter.h",
"fake_audio_consumer.cc",
"fake_audio_consumer.h",
"fake_audio_input_stream.cc",
"fake_audio_input_stream.h",
"fake_audio_log_factory.h",
"fake_audio_log_factory.cc",
"fake_audio_manager.cc",
"fake_audio_manager.h",
"fake_audio_output_stream.cc",
"fake_audio_output_stream.h",
"null_audio_sink.cc",
"null_audio_sink.h",
"sample_rates.cc",
"sample_rates.h",
"scoped_task_runner_observer.cc",
"scoped_task_runner_observer.h",
"simple_sources.cc",
"simple_sources.h",
"virtual_audio_input_stream.cc",
"virtual_audio_input_stream.h",
"virtual_audio_output_stream.cc",
"virtual_audio_output_stream.h",
]
deps = []
libs = []
configs += [ "//media:media_config" ]
if (is_chromeos) {
sources += [
"sounds/audio_stream_handler.cc",
"sounds/audio_stream_handler.h",
"sounds/sounds_manager.cc",
"sounds/sounds_manager.h",
"sounds/wav_audio_handler.cc",
"sounds/wav_audio_handler.h",
]
}
if (is_mac) {
sources += [
"mac/audio_auhal_mac.cc",
"mac/audio_auhal_mac.h",
"mac/audio_device_listener_mac.cc",
"mac/audio_device_listener_mac.h",
"mac/audio_input_mac.cc",
"mac/audio_input_mac.h",
"mac/audio_low_latency_input_mac.cc",
"mac/audio_low_latency_input_mac.h",
"mac/audio_manager_mac.cc",
"mac/audio_manager_mac.h",
]
libs += [
"AudioToolbox.framework",
"AudioUnit.framework",
"CoreAudio.framework",
]
}
if (is_win) {
sources += [
"win/audio_device_listener_win.cc",
"win/audio_device_listener_win.h",
"win/audio_low_latency_input_win.cc",
"win/audio_low_latency_input_win.h",
"win/audio_low_latency_output_win.cc",
"win/audio_low_latency_output_win.h",
"win/audio_manager_win.cc",
"win/audio_manager_win.h",
"win/avrt_wrapper_win.cc",
"win/avrt_wrapper_win.h",
"win/core_audio_util_win.cc",
"win/core_audio_util_win.h",
"win/device_enumeration_win.cc",
"win/device_enumeration_win.h",
"win/wavein_input_win.cc",
"win/wavein_input_win.h",
"win/waveout_output_win.cc",
"win/waveout_output_win.h",
]
}
if (is_android) {
sources += [
"android/audio_manager_android.cc",
"android/audio_manager_android.h",
"android/audio_record_input.cc",
"android/audio_record_input.h",
"android/opensles_input.cc",
"android/opensles_input.h",
"android/opensles_output.cc",
"android/opensles_output.h",
"android/opensles_wrapper.cc",
]
deps += [
"//media:media_android_jni_headers",
]
}
if (is_openbsd) {
sources += [
"openbsd/audio_manager_openbsd.cc",
"openbsd/audio_manager_openbsd.h",
]
}
if (is_linux) {
sources += [
"linux/audio_manager_linux.cc",
]
}
if (use_alsa) {
libs = [ "asound" ]
defines = [ "USE_ALSA" ]
sources += [
"alsa/alsa_input.cc",
"alsa/alsa_input.h",
"alsa/alsa_output.cc",
"alsa/alsa_output.h",
"alsa/alsa_util.cc",
"alsa/alsa_util.h",
"alsa/alsa_wrapper.cc",
"alsa/alsa_wrapper.h",
"alsa/audio_manager_alsa.cc",
"alsa/audio_manager_alsa.h",
]
}
if (use_cras) {
sources += [
"cras/audio_manager_cras.cc",
"cras/audio_manager_cras.h",
"cras/cras_input.cc",
"cras/cras_input.h",
"cras/cras_unified.cc",
"cras/cras_unified.h",
]
pkg_config("libcras") {
packages = [ "libcras" ]
}
configs += [ "libcras" ]
}
if (use_pulseaudio) {
sources += [
"pulse/audio_manager_pulse.cc",
"pulse/audio_manager_pulse.h",
"pulse/pulse_input.cc",
"pulse/pulse_input.h",
"pulse/pulse_output.cc",
"pulse/pulse_output.h",
"pulse/pulse_util.cc",
"pulse/pulse_util.h",
]
if (linux_link_pulseaudio) {
pkg_config("libpulse") {
packages = [ "libpulse" ]
}
configs += [ ":libpulse" ]
} else {
# TODO(ajwong): Technically, this dl should go in the action.
libs += [ "dl" ]
deps += [ ":pulse_generate_stubs" ]
sources += get_target_outputs(":pulse_generate_stubs")
}
}
}
source_set("test_support") {
sources = [
"clockless_audio_sink.cc",
"clockless_audio_sink.h",
"mock_audio_manager.cc",
"mock_audio_manager.h",
"mock_audio_source_callback.cc",
"mock_audio_source_callback.h",
"test_audio_input_controller_factory.cc",
"test_audio_input_controller_factory.h",
]
deps = [ "//testing/gmock" ]
configs += [ "//media:media_config" ]
}
source_set("unittests") {
sources = [
"audio_input_controller_unittest.cc",
"audio_input_unittest.cc",
"audio_low_latency_input_output_unittest.cc",
"audio_manager_unittest.cc",
"audio_output_controller_unittest.cc",
"audio_output_device_unittest.cc",
"audio_output_proxy_unittest.cc",
"audio_parameters_unittest.cc",
"audio_power_monitor_unittest.cc",
"fake_audio_consumer_unittest.cc",
"simple_sources_unittest.cc",
"virtual_audio_input_stream_unittest.cc",
"virtual_audio_output_stream_unittest.cc",
]
deps = [
":test_support",
"//testing/gmock",
"//testing/gtest",
]
configs += [ "//media:media_config" ]
if (is_android) {
sources += [
"android/audio_android_unittest.cc",
]
} else {
sources += [
"audio_input_volume_unittest.cc",
]
}
if (is_mac) {
sources += [
"mac/audio_auhal_mac_unittest.cc",
"mac/audio_device_listener_mac_unittest.cc",
"mac/audio_low_latency_input_mac_unittest.cc",
]
}
if (is_chromeos) {
sources += [
"sounds/audio_stream_handler_unittest.cc",
"sounds/sounds_manager_unittest.cc",
"sounds/test_data.cc",
"sounds/test_data.h",
"sounds/wav_audio_handler_unittest.cc",
]
if (use_cras) {
sources += [
"cras/cras_input_unittest.cc",
"cras/cras_unified_unittest.cc",
]
}
}
if (is_win) {
sources += [
"win/audio_device_listener_win_unittest.cc",
"win/audio_low_latency_input_win_unittest.cc",
"win/audio_low_latency_output_win_unittest.cc",
"win/audio_output_win_unittest.cc",
"win/core_audio_util_win_unittest.cc",
]
}
if (use_alsa) {
sources += [
"alsa/alsa_output_unittest.cc",
]
}
}
...@@ -18,8 +18,12 @@ ...@@ -18,8 +18,12 @@
#include "testing/gmock/include/gmock/gmock.h" #include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
#if defined(USE_ALSA) #if defined(USE_PULSEAUDIO)
#include "media/audio/pulse/audio_manager_pulse.h"
#elif defined(USE_ALSA)
#include "media/audio/alsa/audio_manager_alsa.h" #include "media/audio/alsa/audio_manager_alsa.h"
#elif defined(USE_CRAS)
#include "media/audio/cras/audio_manager_cras.h"
#elif defined(OS_MACOSX) #elif defined(OS_MACOSX)
#include "media/audio/mac/audio_manager_mac.h" #include "media/audio/mac/audio_manager_mac.h"
#elif defined(OS_WIN) #elif defined(OS_WIN)
...@@ -33,8 +37,12 @@ ...@@ -33,8 +37,12 @@
namespace media { namespace media {
#if defined(USE_ALSA) #if defined(USE_PULSEAUDIO)
typedef AudioManagerPulse AudioManagerAnyPlatform;
#elif defined(USE_ALSA)
typedef AudioManagerAlsa AudioManagerAnyPlatform; typedef AudioManagerAlsa AudioManagerAnyPlatform;
#elif defined(USE_CRAS)
typedef AudioManagerCras AudioManagerAnyPlatform;
#elif defined(OS_MACOSX) #elif defined(OS_MACOSX)
typedef AudioManagerMac AudioManagerAnyPlatform; typedef AudioManagerMac AudioManagerAnyPlatform;
#elif defined(OS_WIN) #elif defined(OS_WIN)
......
# Copyright 2014 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.
# These variables need to be args.
# Override to dynamically link the cras (ChromeOS audio) library.
use_cras = false
# Option e.g. for Linux distributions to link pulseaudio directly
# (DT_NEEDED) instead of using dlopen. This helps with automated
# detection of ABI mismatches and prevents silent errors.
#
# TODO(ajwong): Why is this prefixed "linux_"?
linux_link_pulseaudio = false
# TODO(ajwong): Enable libvpx once that's converted.
media_use_ffmpeg = true
media_use_libvpx = false
if (is_android) {
# Android doesn't use ffmpeg or libvpx.
media_use_ffmpeg = false
media_use_libvpx = false
}
# TODO(ajwong): how to disable embedded?
# Original conditional: (OS=="linux" or OS=="freebsd" or OS=="solaris") and embedded!=1
use_alsa = false
use_pulseaudio = false
if (is_posix && !is_android) {
use_alsa = true
if (!use_cras) {
use_pulseaudio = true
}
}
# TODO(ajwong): is_openbsd should be a platform define.
is_openbsd = false
# TODO(ajwong): This should be branding controlled?
proprietary_codecs = false
# TODO(ajwong): Where are these coming from?jk
enable_mpeg2ts_stream_parser = false
enable_browser_cdms = is_android
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