# Copyright 2020 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.

# NOTE: this file is autogenerated by ffmpeg/chromium/scripts/generate_gn.py

import("//build/config/arm.gni")
import("ffmpeg_options.gni")

# Declare empty versions of each variable for easier +=ing later.
ffmpeg_c_sources = []
ffmpeg_gas_sources = []
ffmpeg_asm_sources = []

use_linux_config = is_linux || is_chromeos || is_fuchsia

if ((is_android && current_cpu == "arm" && arm_use_neon) || (is_android && current_cpu == "arm64") || (is_android && current_cpu == "x64") || (is_android && current_cpu == "x86") || (is_mac) || (is_win) || (use_linux_config)) {
  ffmpeg_c_sources += [
    "libavcodec/ac3_parser.c",
    "libavcodec/ac3tab.c",
    "libavcodec/adts_parser.c",
    "libavcodec/allcodecs.c",
    "libavcodec/autorename_libavcodec_flacdec.c",
    "libavcodec/autorename_libavcodec_flacdsp.c",
    "libavcodec/autorename_libavcodec_mpegaudiodsp.c",
    "libavcodec/autorename_libavcodec_utils.c",
    "libavcodec/autorename_libavcodec_vorbisdsp.c",
    "libavcodec/avdct.c",
    "libavcodec/avfft.c",
    "libavcodec/avpacket.c",
    "libavcodec/avpicture.c",
    "libavcodec/bitstream.c",
    "libavcodec/bitstream_filter.c",
    "libavcodec/bitstream_filters.c",
    "libavcodec/bsf.c",
    "libavcodec/codec_desc.c",
    "libavcodec/d3d11va.c",
    "libavcodec/dct.c",
    "libavcodec/dct32_fixed.c",
    "libavcodec/dct32_float.c",
    "libavcodec/decode.c",
    "libavcodec/dirac.c",
    "libavcodec/dv_profile.c",
    "libavcodec/encode.c",
    "libavcodec/fft_fixed.c",
    "libavcodec/fft_fixed_32.c",
    "libavcodec/fft_float.c",
    "libavcodec/fft_init_table.c",
    "libavcodec/flac.c",
    "libavcodec/flac_parser.c",
    "libavcodec/flacdata.c",
    "libavcodec/golomb.c",
    "libavcodec/imgconvert.c",
    "libavcodec/jni.c",
    "libavcodec/libopus.c",
    "libavcodec/libopusdec.c",
    "libavcodec/mathtables.c",
    "libavcodec/mdct_fixed.c",
    "libavcodec/mdct_fixed_32.c",
    "libavcodec/mdct_float.c",
    "libavcodec/mediacodec.c",
    "libavcodec/mjpegenc_huffman.c",
    "libavcodec/mpeg12framerate.c",
    "libavcodec/mpeg4audio.c",
    "libavcodec/mpegaudio.c",
    "libavcodec/mpegaudio_parser.c",
    "libavcodec/mpegaudiodata.c",
    "libavcodec/mpegaudiodec_common.c",
    "libavcodec/mpegaudiodec_fixed.c",
    "libavcodec/mpegaudiodecheader.c",
    "libavcodec/mpegaudiodsp_data.c",
    "libavcodec/mpegaudiodsp_fixed.c",
    "libavcodec/mpegaudiodsp_float.c",
    "libavcodec/null_bsf.c",
    "libavcodec/options.c",
    "libavcodec/opus.c",
    "libavcodec/opus_parser.c",
    "libavcodec/opus_rc.c",
    "libavcodec/opustab.c",
    "libavcodec/parser.c",
    "libavcodec/parsers.c",
    "libavcodec/pcm.c",
    "libavcodec/profiles.c",
    "libavcodec/pthread.c",
    "libavcodec/pthread_frame.c",
    "libavcodec/pthread_slice.c",
    "libavcodec/qsv_api.c",
    "libavcodec/raw.c",
    "libavcodec/rdft.c",
    "libavcodec/vorbis.c",
    "libavcodec/vorbis_data.c",
    "libavcodec/vorbis_parser.c",
    "libavcodec/vorbisdec.c",
    "libavcodec/vp9_parser.c",
    "libavcodec/xiph.c",
    "libavformat/allformats.c",
    "libavformat/autorename_libavformat_options.c",
    "libavformat/autorename_libavformat_pcm.c",
    "libavformat/autorename_libavformat_utils.c",
    "libavformat/avio.c",
    "libavformat/aviobuf.c",
    "libavformat/cutils.c",
    "libavformat/dump.c",
    "libavformat/flac_picture.c",
    "libavformat/flacdec.c",
    "libavformat/format.c",
    "libavformat/id3v1.c",
    "libavformat/id3v2.c",
    "libavformat/isom.c",
    "libavformat/matroska.c",
    "libavformat/matroskadec.c",
    "libavformat/metadata.c",
    "libavformat/mov.c",
    "libavformat/mov_chan.c",
    "libavformat/mov_esds.c",
    "libavformat/mp3dec.c",
    "libavformat/mux.c",
    "libavformat/oggdec.c",
    "libavformat/oggparseflac.c",
    "libavformat/oggparseogm.c",
    "libavformat/oggparseopus.c",
    "libavformat/oggparseskeleton.c",
    "libavformat/oggparsetheora.c",
    "libavformat/oggparsevorbis.c",
    "libavformat/oggparsevp8.c",
    "libavformat/os_support.c",
    "libavformat/protocols.c",
    "libavformat/qtpalette.c",
    "libavformat/rawdec.c",
    "libavformat/replaygain.c",
    "libavformat/riff.c",
    "libavformat/riffdec.c",
    "libavformat/rmsipr.c",
    "libavformat/url.c",
    "libavformat/vorbiscomment.c",
    "libavformat/wavdec.c",
    "libavutil/aes.c",
    "libavutil/aes_ctr.c",
    "libavutil/autorename_libavutil_cpu.c",
    "libavutil/autorename_libavutil_fixed_dsp.c",
    "libavutil/autorename_libavutil_float_dsp.c",
    "libavutil/autorename_libavutil_imgutils.c",
    "libavutil/avsscanf.c",
    "libavutil/avstring.c",
    "libavutil/base64.c",
    "libavutil/bprint.c",
    "libavutil/buffer.c",
    "libavutil/camellia.c",
    "libavutil/channel_layout.c",
    "libavutil/color_utils.c",
    "libavutil/crc.c",
    "libavutil/dict.c",
    "libavutil/display.c",
    "libavutil/dovi_meta.c",
    "libavutil/downmix_info.c",
    "libavutil/encryption_info.c",
    "libavutil/error.c",
    "libavutil/eval.c",
    "libavutil/fifo.c",
    "libavutil/file_open.c",
    "libavutil/film_grain_params.c",
    "libavutil/frame.c",
    "libavutil/hdr_dynamic_metadata.c",
    "libavutil/hwcontext.c",
    "libavutil/integer.c",
    "libavutil/intmath.c",
    "libavutil/lfg.c",
    "libavutil/log.c",
    "libavutil/log2_tab.c",
    "libavutil/mastering_display_metadata.c",
    "libavutil/mathematics.c",
    "libavutil/md5.c",
    "libavutil/mem.c",
    "libavutil/opt.c",
    "libavutil/parseutils.c",
    "libavutil/pixdesc.c",
    "libavutil/pixelutils.c",
    "libavutil/random_seed.c",
    "libavutil/rational.c",
    "libavutil/reverse.c",
    "libavutil/samplefmt.c",
    "libavutil/sha.c",
    "libavutil/slicethread.c",
    "libavutil/spherical.c",
    "libavutil/stereo3d.c",
    "libavutil/tea.c",
    "libavutil/threadmessage.c",
    "libavutil/time.c",
    "libavutil/timecode.c",
    "libavutil/twofish.c",
    "libavutil/tx.c",
    "libavutil/tx_double.c",
    "libavutil/tx_float.c",
    "libavutil/tx_int32.c",
    "libavutil/utils.c",
    "libavutil/video_enc_params.c",
  ]
}

if ((is_mac) || (is_win) || (use_linux_config)) {
  ffmpeg_c_sources += [
    "libavcodec/autorename_libavcodec_hpeldsp.c",
    "libavcodec/autorename_libavcodec_videodsp.c",
    "libavcodec/autorename_libavcodec_vp3dsp.c",
    "libavcodec/autorename_libavcodec_vp8dsp.c",
    "libavcodec/h264pred.c",
    "libavcodec/vp3.c",
    "libavcodec/vp3_parser.c",
    "libavcodec/vp56rac.c",
    "libavcodec/vp8.c",
    "libavcodec/vp8_parser.c",
  ]
}

if ((current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_mac && ffmpeg_branding == "Chrome") || (is_win && ffmpeg_branding == "Chrome") || (use_linux_config && ffmpeg_branding == "Chrome") || (use_linux_config && ffmpeg_branding == "ChromeOS")) {
  ffmpeg_c_sources += [
    "libavcodec/aac_ac3_parser.c",
    "libavcodec/aac_parser.c",
    "libavcodec/aacps_float.c",
    "libavcodec/aacpsdsp_float.c",
    "libavcodec/aacsbr.c",
    "libavcodec/aactab.c",
    "libavcodec/adts_header.c",
    "libavcodec/autorename_libavcodec_aacdec.c",
    "libavcodec/autorename_libavcodec_mdct15.c",
    "libavcodec/autorename_libavcodec_sbrdsp.c",
    "libavcodec/cbrt_data.c",
    "libavcodec/kbdwin.c",
    "libavcodec/sinewin.c",
    "libavcodec/sinewin_fixed.c",
    "libavformat/aacdec.c",
    "libavformat/apetag.c",
    "libavformat/img2.c",
  ]
}

if ((is_mac && ffmpeg_branding == "Chrome") || (is_win && ffmpeg_branding == "Chrome") || (use_linux_config && ffmpeg_branding == "Chrome") || (use_linux_config && ffmpeg_branding == "ChromeOS")) {
  ffmpeg_c_sources += [
    "libavcodec/atsc_a53.c",
    "libavcodec/cabac.c",
    "libavcodec/h2645_parse.c",
    "libavcodec/h264_cabac.c",
    "libavcodec/h264_cavlc.c",
    "libavcodec/h264_direct.c",
    "libavcodec/h264_loopfilter.c",
    "libavcodec/h264_mb.c",
    "libavcodec/h264_parse.c",
    "libavcodec/h264_parser.c",
    "libavcodec/h264_picture.c",
    "libavcodec/h264_ps.c",
    "libavcodec/h264_refs.c",
    "libavcodec/h264_sei.c",
    "libavcodec/h264_slice.c",
    "libavcodec/h264chroma.c",
    "libavcodec/h264data.c",
    "libavcodec/h264dec.c",
    "libavcodec/h264dsp.c",
    "libavcodec/h264idct.c",
    "libavcodec/h264qpel.c",
    "libavcodec/startcode.c",
  ]
}

if ((is_android && current_cpu == "x64") || (is_android && current_cpu == "x86") || (is_mac && current_cpu == "x64") || (is_win && current_cpu == "x64") || (is_win && current_cpu == "x86") || (use_linux_config && current_cpu == "x64") || (use_linux_config && current_cpu == "x86")) {
  ffmpeg_c_sources += [
    "libavcodec/x86/autorename_libavcodec_x86_vorbisdsp_init.c",
    "libavcodec/x86/constants.c",
    "libavcodec/x86/dct_init.c",
    "libavcodec/x86/fft_init.c",
    "libavcodec/x86/flacdsp_init.c",
    "libavcodec/x86/mpegaudiodsp.c",
    "libavutil/x86/autorename_libavutil_x86_cpu.c",
    "libavutil/x86/autorename_libavutil_x86_float_dsp_init.c",
    "libavutil/x86/fixed_dsp_init.c",
    "libavutil/x86/imgutils_init.c",
    "libavutil/x86/lls_init.c",
  ]
}

if ((is_android && current_cpu == "arm64") || (is_mac && current_cpu == "arm64") || (is_win && current_cpu == "arm64") || (use_linux_config && current_cpu == "arm64")) {
  ffmpeg_c_sources += [
    "libavcodec/aarch64/fft_init_aarch64.c",
    "libavcodec/aarch64/mpegaudiodsp_init.c",
    "libavcodec/aarch64/vorbisdsp_init.c",
    "libavutil/aarch64/autorename_libavutil_aarch64_cpu.c",
    "libavutil/aarch64/float_dsp_init.c",
  ]
  ffmpeg_gas_sources += [
    "libavcodec/aarch64/autorename_libavcodec_aarch64_fft_neon.S",
    "libavcodec/aarch64/autorename_libavcodec_aarch64_mdct_neon.S",
    "libavcodec/aarch64/autorename_libavcodec_aarch64_vorbisdsp_neon.S",
    "libavcodec/aarch64/mpegaudiodsp_neon.S",
    "libavutil/aarch64/autorename_libavutil_aarch64_float_dsp_neon.S",
  ]
}

if ((is_android && current_cpu == "arm" && arm_use_neon) || (use_linux_config && current_cpu == "arm" && arm_use_neon) || (use_linux_config && current_cpu == "arm")) {
  ffmpeg_c_sources += [
    "libavcodec/arm/fft_fixed_init_arm.c",
    "libavcodec/arm/fft_init_arm.c",
    "libavcodec/arm/flacdsp_init_arm.c",
    "libavcodec/arm/mpegaudiodsp_init_arm.c",
    "libavcodec/arm/rdft_init_arm.c",
    "libavcodec/arm/vorbisdsp_init_arm.c",
    "libavutil/arm/autorename_libavutil_arm_cpu.c",
    "libavutil/arm/float_dsp_init_arm.c",
    "libavutil/arm/float_dsp_init_vfp.c",
  ]
  ffmpeg_gas_sources += [
    "libavcodec/arm/fft_vfp.S",
    "libavcodec/arm/flacdsp_arm.S",
    "libavcodec/arm/mdct_vfp.S",
    "libavcodec/arm/mpegaudiodsp_fixed_armv6.S",
    "libavutil/arm/float_dsp_vfp.S",
  ]
}

if ((is_android && current_cpu == "x64") || (is_mac && current_cpu == "x64") || (is_win && current_cpu == "x64") || (is_win && current_cpu == "x86") || (use_linux_config && current_cpu == "x64") || (use_linux_config && current_cpu == "x86")) {
  ffmpeg_asm_sources += [
    "libavcodec/x86/dct32.asm",
    "libavcodec/x86/fft.asm",
    "libavcodec/x86/flacdsp.asm",
    "libavcodec/x86/imdct36.asm",
    "libavcodec/x86/vorbisdsp.asm",
    "libavutil/x86/cpuid.asm",
    "libavutil/x86/fixed_dsp.asm",
    "libavutil/x86/float_dsp.asm",
    "libavutil/x86/imgutils.asm",
    "libavutil/x86/lls.asm",
  ]
}

if ((is_mac && current_cpu == "x64") || (is_win && current_cpu == "x64") || (is_win && current_cpu == "x86") || (use_linux_config && current_cpu == "x64") || (use_linux_config && current_cpu == "x86")) {
  ffmpeg_c_sources += [
    "libavcodec/x86/autorename_libavcodec_x86_videodsp_init.c",
    "libavcodec/x86/h264_intrapred_init.c",
    "libavcodec/x86/hpeldsp_init.c",
    "libavcodec/x86/hpeldsp_vp3_init.c",
    "libavcodec/x86/vp3dsp_init.c",
    "libavcodec/x86/vp8dsp_init.c",
  ]
  ffmpeg_asm_sources += [
    "libavcodec/x86/autorename_libavcodec_x86_videodsp.asm",
    "libavcodec/x86/fpel.asm",
    "libavcodec/x86/h264_intrapred.asm",
    "libavcodec/x86/h264_intrapred_10bit.asm",
    "libavcodec/x86/hpeldsp.asm",
    "libavcodec/x86/hpeldsp_vp3.asm",
    "libavcodec/x86/vp3dsp.asm",
    "libavcodec/x86/vp8dsp.asm",
    "libavcodec/x86/vp8dsp_loopfilter.asm",
  ]
}

if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
  ffmpeg_c_sources += [
    "libavcodec/x86/aacpsdsp_init.c",
    "libavcodec/x86/mdct15_init.c",
    "libavcodec/x86/sbrdsp_init.c",
  ]
}

if ((is_android && current_cpu == "arm" && arm_use_neon) || (is_android && current_cpu == "arm64") || (is_android && current_cpu == "x64") || (is_android && current_cpu == "x86")) {
  ffmpeg_c_sources += [
    "compat/strtod.c",
  ]
}

if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
  ffmpeg_asm_sources += [
    "libavcodec/x86/aacpsdsp.asm",
    "libavcodec/x86/mdct15.asm",
    "libavcodec/x86/sbrdsp.asm",
  ]
}

if (use_linux_config && ffmpeg_branding == "ChromeOS") {
  ffmpeg_c_sources += [
    "libavcodec/acelp_filters.c",
    "libavcodec/acelp_pitch_delay.c",
    "libavcodec/acelp_vectors.c",
    "libavcodec/amrnbdec.c",
    "libavcodec/amrwbdec.c",
    "libavcodec/autorename_libavcodec_blockdsp.c",
    "libavcodec/autorename_libavcodec_idctdsp.c",
    "libavcodec/autorename_libavcodec_me_cmp.c",
    "libavcodec/autorename_libavcodec_mpegvideo.c",
    "libavcodec/autorename_libavcodec_mpegvideodsp.c",
    "libavcodec/autorename_libavcodec_pixblockdsp.c",
    "libavcodec/autorename_libavcodec_qpeldsp.c",
    "libavcodec/autorename_libavcodec_simple_idct.c",
    "libavcodec/autorename_libavcodec_xvididct.c",
    "libavcodec/celp_filters.c",
    "libavcodec/celp_math.c",
    "libavcodec/error_resilience.c",
    "libavcodec/exif.c",
    "libavcodec/fdctdsp.c",
    "libavcodec/flvdec.c",
    "libavcodec/gsm_parser.c",
    "libavcodec/gsmdec.c",
    "libavcodec/gsmdec_data.c",
    "libavcodec/h263.c",
    "libavcodec/h263_parser.c",
    "libavcodec/h263data.c",
    "libavcodec/h263dec.c",
    "libavcodec/h263dsp.c",
    "libavcodec/intelh263dec.c",
    "libavcodec/ituh263dec.c",
    "libavcodec/jfdctfst.c",
    "libavcodec/jfdctint.c",
    "libavcodec/jrevdct.c",
    "libavcodec/lsp.c",
    "libavcodec/mpeg4video.c",
    "libavcodec/mpeg4video_parser.c",
    "libavcodec/mpeg4videodec.c",
    "libavcodec/mpeg_er.c",
    "libavcodec/mpegpicture.c",
    "libavcodec/mpegutils.c",
    "libavcodec/mpegvideo_motion.c",
    "libavcodec/mpegvideodata.c",
    "libavcodec/msgsmdec.c",
    "libavcodec/rl.c",
    "libavcodec/tiff_common.c",
    "libavformat/amr.c",
    "libavformat/avidec.c",
  ]
}

if ((use_linux_config && current_cpu == "arm" && arm_use_neon) || (use_linux_config && current_cpu == "arm")) {
  ffmpeg_c_sources += [
    "libavcodec/arm/h264pred_init_arm.c",
    "libavcodec/arm/hpeldsp_init_arm.c",
    "libavcodec/arm/hpeldsp_init_armv6.c",
    "libavcodec/arm/videodsp_init_arm.c",
    "libavcodec/arm/videodsp_init_armv5te.c",
    "libavcodec/arm/vp3dsp_init_arm.c",
    "libavcodec/arm/vp8dsp_init_arm.c",
    "libavcodec/arm/vp8dsp_init_armv6.c",
  ]
  ffmpeg_gas_sources += [
    "libavcodec/arm/hpeldsp_arm.S",
    "libavcodec/arm/hpeldsp_armv6.S",
    "libavcodec/arm/videodsp_armv5te.S",
    "libavcodec/arm/vp8_armv6.S",
    "libavcodec/arm/vp8dsp_armv6.S",
  ]
}

if ((use_linux_config && current_cpu == "mips64el") || (use_linux_config && current_cpu == "mipsel")) {
  ffmpeg_c_sources += [
    "libavcodec/mips/autorename_libavcodec_mips_videodsp_init.c",
    "libavcodec/mips/h264pred_init_mips.c",
    "libavcodec/mips/hpeldsp_init_mips.c",
    "libavcodec/mips/vp3dsp_init_mips.c",
    "libavcodec/mips/vp8dsp_init_mips.c",
    "libavutil/mips/cpu.c",
    "libavutil/mips/float_dsp_mips.c",
  ]
}

if ((is_mac && current_cpu == "arm64") || (is_win && current_cpu == "arm64") || (use_linux_config && current_cpu == "arm64")) {
  ffmpeg_c_sources += [
    "libavcodec/aarch64/h264pred_init.c",
    "libavcodec/aarch64/hpeldsp_init_aarch64.c",
    "libavcodec/aarch64/videodsp_init.c",
    "libavcodec/aarch64/vp8dsp_init_aarch64.c",
  ]
  ffmpeg_gas_sources += [
    "libavcodec/aarch64/autorename_libavcodec_aarch64_h264pred_neon.S",
    "libavcodec/aarch64/autorename_libavcodec_aarch64_hpeldsp_neon.S",
    "libavcodec/aarch64/autorename_libavcodec_aarch64_vp8dsp_neon.S",
    "libavcodec/aarch64/videodsp.S",
  ]
}

if ((current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS")) {
  ffmpeg_c_sources += [
    "libavcodec/aarch64/aacpsdsp_init_aarch64.c",
    "libavcodec/aarch64/sbrdsp_init_aarch64.c",
  ]
  ffmpeg_gas_sources += [
    "libavcodec/aarch64/autorename_libavcodec_aarch64_aacpsdsp_neon.S",
    "libavcodec/aarch64/autorename_libavcodec_aarch64_sbrdsp_neon.S",
  ]
}

if ((is_mac && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS")) {
  ffmpeg_c_sources += [
    "libavcodec/aarch64/h264chroma_init_aarch64.c",
    "libavcodec/aarch64/h264dsp_init_aarch64.c",
    "libavcodec/aarch64/h264qpel_init_aarch64.c",
  ]
  ffmpeg_gas_sources += [
    "libavcodec/aarch64/autorename_libavcodec_aarch64_h264cmc_neon.S",
    "libavcodec/aarch64/autorename_libavcodec_aarch64_h264dsp_neon.S",
    "libavcodec/aarch64/autorename_libavcodec_aarch64_h264idct_neon.S",
    "libavcodec/aarch64/autorename_libavcodec_aarch64_h264qpel_neon.S",
  ]
}

if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "ChromeOS")) {
  ffmpeg_c_sources += [
    "libavcodec/arm/aacpsdsp_init_arm.c",
    "libavcodec/arm/sbrdsp_init_arm.c",
  ]
}

if ((is_android && current_cpu == "arm" && arm_use_neon) || (use_linux_config && current_cpu == "arm" && arm_use_neon)) {
  ffmpeg_c_sources += [
    "libavutil/arm/float_dsp_init_neon.c",
  ]
  ffmpeg_gas_sources += [
    "libavcodec/arm/fft_fixed_neon.S",
    "libavcodec/arm/fft_neon.S",
    "libavcodec/arm/mdct_fixed_neon.S",
    "libavcodec/arm/mdct_neon.S",
    "libavcodec/arm/rdft_neon.S",
    "libavcodec/arm/vorbisdsp_neon.S",
    "libavutil/arm/float_dsp_neon.S",
  ]
}

if ((use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "ChromeOS")) {
  ffmpeg_c_sources += [
    "libavcodec/arm/h264chroma_init_arm.c",
    "libavcodec/arm/h264dsp_init_arm.c",
    "libavcodec/arm/h264qpel_init_arm.c",
  ]
  ffmpeg_gas_sources += [
    "libavcodec/arm/startcode_armv6.S",
  ]
}

if ((is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
  ffmpeg_c_sources += [
    "libavcodec/x86/h264_qpel.c",
    "libavcodec/x86/h264chroma_init.c",
    "libavcodec/x86/h264dsp_init.c",
  ]
  ffmpeg_asm_sources += [
    "libavcodec/x86/h264_chromamc.asm",
    "libavcodec/x86/h264_chromamc_10bit.asm",
    "libavcodec/x86/h264_deblock.asm",
    "libavcodec/x86/h264_deblock_10bit.asm",
    "libavcodec/x86/h264_idct.asm",
    "libavcodec/x86/h264_idct_10bit.asm",
    "libavcodec/x86/h264_qpel_10bit.asm",
    "libavcodec/x86/h264_qpel_8bit.asm",
    "libavcodec/x86/h264_weight.asm",
    "libavcodec/x86/h264_weight_10bit.asm",
    "libavcodec/x86/qpel.asm",
  ]
}

if ((use_linux_config && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "mips64el" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS")) {
  ffmpeg_c_sources += [
    "libavcodec/mips/aacdec_mips.c",
    "libavcodec/mips/aacpsdsp_mips.c",
    "libavcodec/mips/aacsbr_mips.c",
    "libavcodec/mips/h264chroma_init_mips.c",
    "libavcodec/mips/h264dsp_init_mips.c",
    "libavcodec/mips/h264qpel_init_mips.c",
    "libavcodec/mips/sbrdsp_mips.c",
  ]
}

if (use_linux_config && current_cpu == "arm" && arm_use_neon) {
  ffmpeg_c_sources += [
    "libavcodec/arm/hpeldsp_init_neon.c",
    "libavcodec/arm/vp8dsp_init_neon.c",
  ]
  ffmpeg_gas_sources += [
    "libavcodec/arm/h264pred_neon.S",
    "libavcodec/arm/hpeldsp_neon.S",
    "libavcodec/arm/vp3dsp_neon.S",
    "libavcodec/arm/vp8dsp_neon.S",
  ]
}

if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS")) {
  ffmpeg_gas_sources += [
    "libavcodec/arm/aacpsdsp_neon.S",
    "libavcodec/arm/sbrdsp_neon.S",
  ]
}

if ((use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "ChromeOS")) {
  ffmpeg_c_sources += [
    "libavcodec/arm/blockdsp_init_arm.c",
    "libavcodec/arm/idctdsp_init_arm.c",
    "libavcodec/arm/idctdsp_init_armv5te.c",
    "libavcodec/arm/idctdsp_init_armv6.c",
    "libavcodec/arm/me_cmp_init_arm.c",
    "libavcodec/arm/mpegvideo_arm.c",
    "libavcodec/arm/mpegvideo_armv5te.c",
    "libavcodec/arm/pixblockdsp_init_arm.c",
  ]
  ffmpeg_gas_sources += [
    "libavcodec/arm/idctdsp_arm.S",
    "libavcodec/arm/idctdsp_armv6.S",
    "libavcodec/arm/jrevdct_arm.S",
    "libavcodec/arm/me_cmp_armv6.S",
    "libavcodec/arm/mpegvideo_armv5te_s.S",
    "libavcodec/arm/pixblockdsp_armv6.S",
    "libavcodec/arm/simple_idct_arm.S",
    "libavcodec/arm/simple_idct_armv5te.S",
    "libavcodec/arm/simple_idct_armv6.S",
  ]
}

if ((use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS")) {
  ffmpeg_c_sources += [
    "libavcodec/neon/autorename_libavcodec_neon_mpegvideo.c",
  ]
}

if ((use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS")) {
  ffmpeg_gas_sources += [
    "libavcodec/arm/h264cmc_neon.S",
    "libavcodec/arm/h264dsp_neon.S",
    "libavcodec/arm/h264idct_neon.S",
    "libavcodec/arm/h264qpel_neon.S",
  ]
}

if (use_linux_config && current_cpu == "mips64el") {
  ffmpeg_c_sources += [
    "libavcodec/mips/fft_mips.c",
    "libavcodec/mips/mpegaudiodsp_mips_float.c",
  ]
}

if ((use_linux_config && current_cpu == "mips64el" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS")) {
  ffmpeg_c_sources += [
    "libavcodec/mips/blockdsp_init_mips.c",
    "libavcodec/mips/h263dsp_init_mips.c",
    "libavcodec/mips/idctdsp_init_mips.c",
    "libavcodec/mips/me_cmp_init_mips.c",
    "libavcodec/mips/mpegvideo_init_mips.c",
    "libavcodec/mips/pixblockdsp_init_mips.c",
    "libavcodec/mips/qpeldsp_init_mips.c",
    "libavcodec/mips/xvididct_init_mips.c",
  ]
}

if ((use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
  ffmpeg_c_sources += [
    "libavcodec/x86/blockdsp_init.c",
    "libavcodec/x86/fdct.c",
    "libavcodec/x86/fdctdsp_init.c",
    "libavcodec/x86/h263dsp_init.c",
    "libavcodec/x86/idctdsp_init.c",
    "libavcodec/x86/me_cmp_init.c",
    "libavcodec/x86/mpegvideo.c",
    "libavcodec/x86/mpegvideodsp.c",
    "libavcodec/x86/pixblockdsp_init.c",
    "libavcodec/x86/qpeldsp_init.c",
    "libavcodec/x86/xvididct_init.c",
  ]
  ffmpeg_asm_sources += [
    "libavcodec/x86/blockdsp.asm",
    "libavcodec/x86/h263_loopfilter.asm",
    "libavcodec/x86/idctdsp.asm",
    "libavcodec/x86/me_cmp.asm",
    "libavcodec/x86/pixblockdsp.asm",
    "libavcodec/x86/qpeldsp.asm",
    "libavcodec/x86/simple_idct.asm",
    "libavcodec/x86/simple_idct10.asm",
    "libavcodec/x86/xvididct.asm",
  ]
}

if (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") {
  ffmpeg_c_sources += [
    "libavcodec/aarch64/idctdsp_init_aarch64.c",
    "libavcodec/aarch64/pixblockdsp_init_aarch64.c",
  ]
  ffmpeg_gas_sources += [
    "libavcodec/aarch64/autorename_libavcodec_aarch64_pixblockdsp_neon.S",
    "libavcodec/aarch64/autorename_libavcodec_aarch64_simple_idct_neon.S",
  ]
}

if (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") {
  ffmpeg_c_sources += [
    "libavcodec/arm/blockdsp_init_neon.c",
    "libavcodec/arm/idctdsp_init_neon.c",
  ]
  ffmpeg_gas_sources += [
    "libavcodec/arm/blockdsp_neon.S",
    "libavcodec/arm/idctdsp_neon.S",
    "libavcodec/arm/mpegvideo_neon.S",
    "libavcodec/arm/pixblockdsp_neon.S",
    "libavcodec/arm/simple_idct_neon.S",
  ]
}

if (use_linux_config && current_cpu == "mips64el" && ffmpeg_branding == "ChromeOS") {
  ffmpeg_c_sources += [
    "libavcodec/mips/acelp_filters_mips.c",
    "libavcodec/mips/acelp_vectors_mips.c",
    "libavcodec/mips/amrwbdec_mips.c",
    "libavcodec/mips/celp_filters_mips.c",
    "libavcodec/mips/celp_math_mips.c",
  ]
}

