| # Copyright 2025 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 media/ffmpeg/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 (current_cpu == "arm64" || current_cpu == "arm64e" || current_cpu == "x64" || |
| (is_android && current_cpu == "arm" && arm_use_neon) || |
| (is_android && current_cpu == "x86") || is_apple || is_win || |
| use_linux_config) { |
| ffmpeg_c_sources += [ |
| "libavcodec/ac3_channel_layout_tab.c", |
| "libavcodec/ac3_parser.c", |
| "libavcodec/adts_parser.c", |
| "libavcodec/allcodecs.c", |
| "libavcodec/autorename_libavcodec_flacdsp.c", |
| "libavcodec/autorename_libavcodec_mpegaudiodsp.c", |
| "libavcodec/autorename_libavcodec_parser.c", |
| "libavcodec/autorename_libavcodec_vorbisdsp.c", |
| "libavcodec/avcodec.c", |
| "libavcodec/avdct.c", |
| "libavcodec/bitstream.c", |
| "libavcodec/bitstream_filters.c", |
| "libavcodec/bsf.c", |
| "libavcodec/codec_desc.c", |
| "libavcodec/codec_par.c", |
| "libavcodec/d3d11va.c", |
| "libavcodec/dct32_fixed.c", |
| "libavcodec/dct32_float.c", |
| "libavcodec/decode.c", |
| "libavcodec/dirac.c", |
| "libavcodec/dv_profile.c", |
| "libavcodec/encode.c", |
| "libavcodec/flac.c", |
| "libavcodec/flac_parser.c", |
| "libavcodec/flacdata.c", |
| "libavcodec/flacdec.c", |
| "libavcodec/get_buffer.c", |
| "libavcodec/golomb.c", |
| "libavcodec/imgconvert.c", |
| "libavcodec/jni.c", |
| "libavcodec/lcevcdec.c", |
| "libavcodec/libopus.c", |
| "libavcodec/libopusdec.c", |
| "libavcodec/mathtables.c", |
| "libavcodec/mediacodec.c", |
| "libavcodec/mpeg12framerate.c", |
| "libavcodec/mpeg4audio.c", |
| "libavcodec/mpeg4audio_sample_rates.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/mpegaudiotabs.c", |
| "libavcodec/options.c", |
| "libavcodec/opus/parse.c", |
| "libavcodec/opus/parser.c", |
| "libavcodec/packet.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/threadprogress.c", |
| "libavcodec/to_upper4.c", |
| "libavcodec/utils.c", |
| "libavcodec/version.c", |
| "libavcodec/vlc.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_flacdec.c", |
| "libavformat/autorename_libavformat_options.c", |
| "libavformat/autorename_libavformat_pcm.c", |
| "libavformat/autorename_libavformat_utils.c", |
| "libavformat/autorename_libavformat_version.c", |
| "libavformat/avformat.c", |
| "libavformat/avio.c", |
| "libavformat/aviobuf.c", |
| "libavformat/demux.c", |
| "libavformat/demux_utils.c", |
| "libavformat/dovi_isom.c", |
| "libavformat/dump.c", |
| "libavformat/dv.c", |
| "libavformat/dvdclut.c", |
| "libavformat/flac_picture.c", |
| "libavformat/format.c", |
| "libavformat/id3v1.c", |
| "libavformat/id3v2.c", |
| "libavformat/isom.c", |
| "libavformat/isom_tags.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/mux_utils.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/seek.c", |
| "libavformat/url.c", |
| "libavformat/vorbiscomment.c", |
| "libavformat/wavdec.c", |
| "libavutil/aes_ctr.c", |
| "libavutil/ambient_viewing_environment.c", |
| "libavutil/autorename_libavutil_aes.c", |
| "libavutil/autorename_libavutil_cpu.c", |
| "libavutil/autorename_libavutil_fixed_dsp.c", |
| "libavutil/autorename_libavutil_float_dsp.c", |
| "libavutil/autorename_libavutil_imgutils.c", |
| "libavutil/autorename_libavutil_tx_float.c", |
| "libavutil/autorename_libavutil_utils.c", |
| "libavutil/autorename_libavutil_version.c", |
| "libavutil/avstring.c", |
| "libavutil/base64.c", |
| "libavutil/bprint.c", |
| "libavutil/buffer.c", |
| "libavutil/camellia.c", |
| "libavutil/channel_layout.c", |
| "libavutil/container_fifo.c", |
| "libavutil/crc.c", |
| "libavutil/csp.c", |
| "libavutil/detection_bbox.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/executor.c", |
| "libavutil/fifo.c", |
| "libavutil/file_open.c", |
| "libavutil/film_grain_params.c", |
| "libavutil/float_scalarproduct.c", |
| "libavutil/frame.c", |
| "libavutil/hdr_dynamic_metadata.c", |
| "libavutil/hdr_dynamic_vivid_metadata.c", |
| "libavutil/hwcontext.c", |
| "libavutil/hwcontext_stub.c", |
| "libavutil/iamf.c", |
| "libavutil/integer.c", |
| "libavutil/intmath.c", |
| "libavutil/lfg.c", |
| "libavutil/log.c", |
| "libavutil/log2_tab.c", |
| "libavutil/lzo.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/refstruct.c", |
| "libavutil/reverse.c", |
| "libavutil/samplefmt.c", |
| "libavutil/sha.c", |
| "libavutil/side_data.c", |
| "libavutil/slicethread.c", |
| "libavutil/spherical.c", |
| "libavutil/stereo3d.c", |
| "libavutil/tea.c", |
| "libavutil/threadmessage.c", |
| "libavutil/time.c", |
| "libavutil/timecode.c", |
| "libavutil/timecode_internal.c", |
| "libavutil/timestamp.c", |
| "libavutil/twofish.c", |
| "libavutil/tx.c", |
| "libavutil/uuid.c", |
| "libavutil/video_enc_params.c", |
| "libavutil/video_hint.c", |
| ] |
| } |
| |
| if (((current_cpu == "arm64" || current_cpu == "arm64e") && |
| ffmpeg_branding == "Chrome") || |
| (current_cpu == "x64" && ffmpeg_branding == "Chrome") || |
| (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || |
| (is_apple && ffmpeg_branding == "Chrome") || |
| (is_win && ffmpeg_branding == "Chrome") || |
| (use_linux_config && ffmpeg_branding == "Chrome")) { |
| ffmpeg_c_sources += [ |
| "libavcodec/atsc_a53.c", |
| "libavcodec/autorename_libavcodec_videodsp.c", |
| "libavcodec/cabac.c", |
| "libavcodec/h2645_parse.c", |
| "libavcodec/h2645_sei.c", |
| "libavcodec/h2645_vui.c", |
| "libavcodec/h2645data.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/h264pred.c", |
| "libavcodec/h264qpel.c", |
| "libavcodec/h274.c", |
| "libavcodec/startcode.c", |
| ] |
| } |
| |
| if (((current_cpu == "arm64" || current_cpu == "arm64e") && |
| 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_apple && ffmpeg_branding == "Chrome") || |
| (is_win && ffmpeg_branding == "Chrome") || |
| (use_linux_config && ffmpeg_branding == "Chrome")) { |
| ffmpeg_c_sources += [ |
| "libavcodec/aac/aacdec.c", |
| "libavcodec/aac/aacdec_ac.c", |
| "libavcodec/aac/aacdec_float.c", |
| "libavcodec/aac/aacdec_lpd.c", |
| "libavcodec/aac/aacdec_tab.c", |
| "libavcodec/aac/aacdec_usac.c", |
| "libavcodec/aac_ac3_parser.c", |
| "libavcodec/aac_parser.c", |
| "libavcodec/aacps_common.c", |
| "libavcodec/aacps_float.c", |
| "libavcodec/aacpsdsp_float.c", |
| "libavcodec/aacsbr.c", |
| "libavcodec/aactab.c", |
| "libavcodec/adts_header.c", |
| "libavcodec/autorename_libavcodec_sbrdsp.c", |
| "libavcodec/cbrt_data.c", |
| "libavcodec/kbdwin.c", |
| "libavcodec/sinewin.c", |
| "libavformat/apetag.c", |
| "libavformat/autorename_libavformat_aacdec.c", |
| "libavformat/img2.c", |
| ] |
| } |
| |
| if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || |
| (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || |
| (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome")) { |
| ffmpeg_asm_sources += [ |
| "libavcodec/x86/aacpsdsp.asm", |
| "libavcodec/x86/autorename_libavcodec_x86_videodsp.asm", |
| "libavcodec/x86/fpel.asm", |
| "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_intrapred.asm", |
| "libavcodec/x86/h264_intrapred_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", |
| "libavcodec/x86/sbrdsp.asm", |
| ] |
| } |
| |
| if ((current_cpu == "arm64" || current_cpu == "arm64e") && |
| ffmpeg_branding == "Chrome") { |
| ffmpeg_c_sources += [ |
| "libavcodec/aarch64/aacpsdsp_init_aarch64.c", |
| "libavcodec/aarch64/autorename_libavcodec_aarch64_videodsp_init.c", |
| "libavcodec/aarch64/h264chroma_init_aarch64.c", |
| "libavcodec/aarch64/h264dsp_init_aarch64.c", |
| "libavcodec/aarch64/h264pred_init.c", |
| "libavcodec/aarch64/h264qpel_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_h264cmc_neon.S", |
| "libavcodec/aarch64/autorename_libavcodec_aarch64_h264dsp_neon.S", |
| "libavcodec/aarch64/autorename_libavcodec_aarch64_h264idct_neon.S", |
| "libavcodec/aarch64/autorename_libavcodec_aarch64_h264pred_neon.S", |
| "libavcodec/aarch64/autorename_libavcodec_aarch64_h264qpel_neon.S", |
| "libavcodec/aarch64/autorename_libavcodec_aarch64_hpeldsp_neon.S", |
| "libavcodec/aarch64/autorename_libavcodec_aarch64_sbrdsp_neon.S", |
| "libavcodec/aarch64/videodsp.S", |
| ] |
| } |
| |
| if (current_cpu == "x64" || (is_win && current_cpu == "x86") || |
| (use_linux_config && current_cpu == "x86")) { |
| ffmpeg_c_sources += |
| [ "libavutil/x86/autorename_libavutil_x86_tx_float_init.c" ] |
| ffmpeg_asm_sources += [ |
| "libavcodec/x86/dct32.asm", |
| "libavcodec/x86/flacdsp.asm", |
| "libavcodec/x86/imdct36.asm", |
| "libavcodec/x86/vorbisdsp.asm", |
| "libavutil/x86/aes.asm", |
| "libavutil/x86/cpuid.asm", |
| "libavutil/x86/fixed_dsp.asm", |
| "libavutil/x86/float_dsp.asm", |
| "libavutil/x86/imgutils.asm", |
| "libavutil/x86/lls.asm", |
| "libavutil/x86/tx_float.asm", |
| ] |
| } |
| |
| if (current_cpu == "x64" || (is_android && current_cpu == "x86") || |
| (is_win && current_cpu == "x86") || |
| (use_linux_config && current_cpu == "x86")) { |
| ffmpeg_c_sources += [ |
| "libavcodec/x86/autorename_libavcodec_x86_vorbisdsp_init.c", |
| "libavcodec/x86/constants.c", |
| "libavcodec/x86/flacdsp_init.c", |
| "libavcodec/x86/mpegaudiodsp.c", |
| "libavutil/x86/aes_init.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 (current_cpu == "arm64" || current_cpu == "arm64e") { |
| ffmpeg_c_sources += [ |
| "libavcodec/aarch64/mpegaudiodsp_init.c", |
| "libavcodec/aarch64/vorbisdsp_init.c", |
| "libavutil/aarch64/autorename_libavutil_aarch64_cpu.c", |
| "libavutil/aarch64/float_dsp_init.c", |
| "libavutil/aarch64/tx_float_init.c", |
| ] |
| ffmpeg_gas_sources += [ |
| "libavcodec/aarch64/autorename_libavcodec_aarch64_vorbisdsp_neon.S", |
| "libavcodec/aarch64/mpegaudiodsp_neon.S", |
| "libavutil/aarch64/autorename_libavutil_aarch64_float_dsp_neon.S", |
| "libavutil/aarch64/cpu_sve.S", |
| "libavutil/aarch64/tx_float_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/flacdsp_init_arm.c", |
| "libavcodec/arm/mpegaudiodsp_init_arm.c", |
| "libavcodec/arm/vorbisdsp_init_arm.c", |
| "libavutil/arm/cpu.c", |
| "libavutil/arm/float_dsp_init_arm.c", |
| "libavutil/arm/float_dsp_init_vfp.c", |
| ] |
| ffmpeg_gas_sources += [ |
| "libavcodec/arm/flacdsp_arm.S", |
| "libavcodec/arm/mpegaudiodsp_fixed_armv6.S", |
| "libavutil/arm/float_dsp_vfp.S", |
| ] |
| } |
| |
| if ((use_linux_config && current_cpu == "arm" && arm_use_neon && |
| ffmpeg_branding == "Chrome") || |
| (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "Chrome")) { |
| ffmpeg_c_sources += [ |
| "libavcodec/arm/h264chroma_init_arm.c", |
| "libavcodec/arm/h264dsp_init_arm.c", |
| "libavcodec/arm/h264pred_init_arm.c", |
| "libavcodec/arm/h264qpel_init_arm.c", |
| "libavcodec/arm/videodsp_init_arm.c", |
| "libavcodec/arm/videodsp_init_armv5te.c", |
| ] |
| ffmpeg_gas_sources += [ |
| "libavcodec/arm/startcode_armv6.S", |
| "libavcodec/arm/videodsp_armv5te.S", |
| ] |
| } |
| |
| 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 == "x86" && ffmpeg_branding == "Chrome")) { |
| ffmpeg_c_sources += [ |
| "libavcodec/x86/aacpsdsp_init.c", |
| "libavcodec/x86/h264_intrapred_init.c", |
| "libavcodec/x86/h264_qpel.c", |
| "libavcodec/x86/h264chroma_init.c", |
| "libavcodec/x86/h264dsp_init.c", |
| "libavcodec/x86/sbrdsp_init.c", |
| "libavcodec/x86/videodsp_init.c", |
| ] |
| } |
| |
| if (use_linux_config && current_cpu == "arm" && arm_use_neon && |
| ffmpeg_branding == "Chrome") { |
| ffmpeg_gas_sources += [ |
| "libavcodec/arm/h264cmc_neon.S", |
| "libavcodec/arm/h264dsp_neon.S", |
| "libavcodec/arm/h264idct_neon.S", |
| "libavcodec/arm/h264pred_neon.S", |
| "libavcodec/arm/h264qpel_neon.S", |
| "libavcodec/arm/hpeldsp_neon.S", |
| ] |
| } |
| |
| 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/vorbisdsp_neon.S", |
| "libavutil/arm/float_dsp_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" && ffmpeg_branding == "Chrome")) { |
| ffmpeg_c_sources += [ |
| "libavcodec/arm/aacpsdsp_init_arm.c", |
| "libavcodec/arm/sbrdsp_init_arm.c", |
| ] |
| } |
| |
| if ((is_android && current_cpu == "arm" && arm_use_neon && |
| ffmpeg_branding == "Chrome") || |
| (use_linux_config && current_cpu == "arm" && arm_use_neon && |
| ffmpeg_branding == "Chrome")) { |
| ffmpeg_gas_sources += [ |
| "libavcodec/arm/aacpsdsp_neon.S", |
| "libavcodec/arm/sbrdsp_neon.S", |
| ] |
| } |
| |
| if ((is_android && (current_cpu == "arm64" || current_cpu == "arm64e")) || |
| (is_android && current_cpu == "arm" && arm_use_neon) || |
| (is_android && current_cpu == "x64") || |
| (is_android && current_cpu == "x86")) { |
| ffmpeg_c_sources += [ "compat/strtod.c" ] |
| } |