| # 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("//build/config/chromecast_build.gni") |
| import("//chromecast/chromecast.gni") |
| import("//media/media_options.gni") |
| import("//testing/test.gni") |
| |
| declare_args() { |
| # Set true to use raw timestamps on non-desktop cast build. |
| # ALSA version equal or later than 1.0.29 support this function. |
| use_alsa_monotonic_raw_tstamps = !is_cast_desktop_build |
| } |
| |
| # Alsa must be used for these targets to build. |
| assert(use_alsa) |
| |
| shared_library("libcast_media_1.0_audio") { |
| sources = [ |
| "cast_media_shlib.cc", |
| "media_codec_support_cast_audio.cc", |
| ] |
| |
| deps = [ |
| ":alsa_cma_backend", |
| "//base", |
| "//chromecast/base", |
| "//chromecast/public", |
| "//media", |
| ] |
| } |
| |
| source_set("alsa_cma_backend") { |
| sources = [ |
| "alsa_wrapper.cc", |
| "alsa_wrapper.h", |
| "audio_decoder_alsa.cc", |
| "audio_decoder_alsa.h", |
| "filter_group.cc", |
| "filter_group.h", |
| "media_pipeline_backend_alsa.cc", |
| "media_pipeline_backend_alsa.h", |
| "stream_mixer_alsa.cc", |
| "stream_mixer_alsa.h", |
| "stream_mixer_alsa_input.cc", |
| "stream_mixer_alsa_input.h", |
| "stream_mixer_alsa_input_impl.cc", |
| "stream_mixer_alsa_input_impl.h", |
| ] |
| |
| libs = [ "asound" ] |
| |
| deps = [ |
| ":alsa_features", |
| ":audio_filter_includes", |
| ":slew_volume", |
| "//base", |
| "//chromecast/base", |
| "//chromecast/media/base", |
| "//chromecast/media/cma/backend:null", |
| "//chromecast/media/cma/base", |
| "//chromecast/media/cma/decoder", |
| "//chromecast/public/media", |
| "//media", |
| "//media:shared_memory_support", |
| ] |
| |
| if (chromecast_branding == "public") { |
| deps += [ ":audio_filter_null" ] |
| } else { |
| deps += [ "//chromecast/internal/media/cma/backend/alsa:filter" ] |
| } |
| } |
| |
| source_set("audio_filter_null") { |
| sources = [ |
| "audio_filter_factory_default.cc", |
| ] |
| |
| deps = [ |
| ":audio_filter_includes", |
| ] |
| } |
| |
| source_set("audio_filter_includes") { |
| sources = [ |
| "audio_filter_factory.h", |
| "audio_filter_interface.h", |
| ] |
| |
| deps = [ |
| "//base", |
| "//media", |
| ] |
| } |
| |
| source_set("slew_volume") { |
| sources = [ |
| "slew_volume.cc", |
| "slew_volume.h", |
| ] |
| deps = [ |
| "//base", |
| "//media", |
| ] |
| } |
| |
| buildflag_header("alsa_features") { |
| header = "alsa_features.h" |
| |
| flags = [ "ALSA_MONOTONIC_RAW_TSTAMPS=$use_alsa_monotonic_raw_tstamps" ] |
| } |
| |
| test("cast_alsa_cma_backend_unittests") { |
| sources = [ |
| "stream_mixer_alsa_unittest.cc", |
| ] |
| |
| deps = [ |
| ":test_support", |
| "//base", |
| "//base/test:run_all_unittests", |
| "//chromecast/media", |
| "//media", |
| "//media:shared_memory_support", |
| "//testing/gmock", |
| "//testing/gtest", |
| ] |
| } |
| |
| source_set("test_support") { |
| testonly = true |
| |
| sources = [ |
| "mock_alsa_wrapper.cc", |
| "mock_alsa_wrapper.h", |
| ] |
| |
| public_deps = [ |
| ":alsa_cma_backend", |
| ] |
| |
| deps = [ |
| "//base", |
| "//media", |
| "//testing/gmock", |
| ] |
| } |