# 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", "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/cma/backend", "//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/base", "//chromecast/media/base:libcast_media_1.0_default_core", "//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", ] }