# 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("//build/config/arm.gni") import("//build/config/chrome_build.gni") import("//build/config/chromecast_build.gni") import("//build/config/sanitizers/sanitizers.gni") if (is_chrome_branded) { _default_ffmpeg_branding = "Chrome" } else { _default_ffmpeg_branding = "Chromium" } if (is_chromeos && is_chrome_branded) { _default_ffmpeg_branding = "ChromeOS" } if (is_chromecast) { if (is_android) { _default_ffmpeg_branding = "Chrome" } else { # TODO(alokp): What audio codecs does Chromecast want here? Sort # out and add configs if necessary. http://crbug.com/570754 _default_ffmpeg_branding = "ChromeOS" } } declare_args() { # Controls whether we build the Chromium or Google Chrome version of FFmpeg. # The Google Chrome version contains additional codecs. Typical values are # Chromium, Chrome, and ChromeOS. ffmpeg_branding = _default_ffmpeg_branding # Set true to build ffmpeg as a shared library. NOTE: this means we should # always consult is_component_ffmpeg instead of is_component_build for # ffmpeg targets. This helps linux chromium packagers that swap out our # ffmpeg.so with their own. See discussion here # https://groups.google.com/a/chromium.org/forum/#!msg/chromium-packagers/R5rcZXWxBEQ/B6k0zzmJbvcJ is_component_ffmpeg = is_component_build # Set to true to force the use of ffmpeg's stdatomic fallback code. # # Windows and GCC prior to 4.9 lack stdatomic.h. # # This is also useful for developers who use icecc, which relies upon # clang's -frewrite-includes flag which is broken with #include_next # directives as used in chromium's clang stdatomic.h. # Some background: https://bugs.llvm.org/show_bug.cgi?id=26828 ffmpeg_use_atomics_fallback = !is_clang } assert(ffmpeg_branding == "Chromium" || ffmpeg_branding == "Chrome" || ffmpeg_branding == "ChromeOS") if (current_cpu == "x86") { ffmpeg_arch = "ia32" } else if (current_cpu == "arm" && arm_version >= 7 && arm_use_neon) { ffmpeg_arch = "arm-neon" } else { ffmpeg_arch = current_cpu } os_config = current_os if ((is_linux || is_chromeos) && is_msan) { os_config = "linux-noasm" } else if (is_chromeos || is_fuchsia) { os_config = "linux" } else if (is_win && !is_clang) { os_config = "win-msvc" }