You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
388 lines
12 KiB
388 lines
12 KiB
package {
|
|
default_applicable_licenses: ["external_libopus_license"],
|
|
}
|
|
|
|
// Added automatically by a large-scale-change that took the approach of
|
|
// 'apply every license found to every target'. While this makes sure we respect
|
|
// every license restriction, it may not be entirely correct.
|
|
//
|
|
// e.g. GPL in an MIT project might only apply to the contrib/ directory.
|
|
//
|
|
// Please consider splitting the single license below into multiple licenses,
|
|
// taking care not to lose any license_kind information, and overriding the
|
|
// default license using the 'licenses: [...]' property on targets as needed.
|
|
//
|
|
// For unused files, consider creating a 'filegroup' with "//visibility:private"
|
|
// to attach the license to, and including a comment whether the files may be
|
|
// used in the current project.
|
|
//
|
|
// large-scale-change included anything that looked like it might be a license
|
|
// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
|
|
//
|
|
// Please consider removing redundant or irrelevant files from 'license_text:'.
|
|
// http://go/android-license-faq
|
|
license {
|
|
name: "external_libopus_license",
|
|
visibility: [":__subpackages__"],
|
|
license_kinds: [
|
|
"SPDX-license-identifier-Apache-2.0",
|
|
"SPDX-license-identifier-BSD",
|
|
],
|
|
license_text: [
|
|
"COPYING",
|
|
"NOTICE",
|
|
],
|
|
}
|
|
|
|
cc_library {
|
|
name: "libopus",
|
|
vendor_available: true,
|
|
host_supported: true,
|
|
|
|
export_include_dirs: ["include"],
|
|
|
|
local_include_dirs: [
|
|
"src",
|
|
"silk",
|
|
"celt",
|
|
"silk/fixed",
|
|
],
|
|
|
|
sanitize: {
|
|
integer_overflow: true,
|
|
misc_undefined: ["bounds"],
|
|
blocklist: "libopus_blocklist.txt",
|
|
},
|
|
|
|
srcs: [
|
|
// CELT_SOURCES
|
|
"celt/bands.c",
|
|
"celt/celt.c",
|
|
"celt/celt_encoder.c",
|
|
"celt/celt_decoder.c",
|
|
"celt/cwrs.c",
|
|
"celt/entcode.c",
|
|
"celt/entdec.c",
|
|
"celt/entenc.c",
|
|
"celt/kiss_fft.c",
|
|
"celt/laplace.c",
|
|
"celt/mathops.c",
|
|
"celt/mdct.c",
|
|
"celt/modes.c",
|
|
"celt/pitch.c",
|
|
"celt/celt_lpc.c",
|
|
"celt/quant_bands.c",
|
|
"celt/rate.c",
|
|
"celt/vq.c",
|
|
|
|
// SILK_SOURCES
|
|
"silk/CNG.c",
|
|
"silk/code_signs.c",
|
|
"silk/init_decoder.c",
|
|
"silk/decode_core.c",
|
|
"silk/decode_frame.c",
|
|
"silk/decode_parameters.c",
|
|
"silk/decode_indices.c",
|
|
"silk/decode_pulses.c",
|
|
"silk/decoder_set_fs.c",
|
|
"silk/dec_API.c",
|
|
"silk/enc_API.c",
|
|
"silk/encode_indices.c",
|
|
"silk/encode_pulses.c",
|
|
"silk/gain_quant.c",
|
|
"silk/interpolate.c",
|
|
"silk/LP_variable_cutoff.c",
|
|
"silk/NLSF_decode.c",
|
|
"silk/NSQ.c",
|
|
"silk/NSQ_del_dec.c",
|
|
"silk/PLC.c",
|
|
"silk/shell_coder.c",
|
|
"silk/tables_gain.c",
|
|
"silk/tables_LTP.c",
|
|
"silk/tables_NLSF_CB_NB_MB.c",
|
|
"silk/tables_NLSF_CB_WB.c",
|
|
"silk/tables_other.c",
|
|
"silk/tables_pitch_lag.c",
|
|
"silk/tables_pulses_per_block.c",
|
|
"silk/VAD.c",
|
|
"silk/control_audio_bandwidth.c",
|
|
"silk/quant_LTP_gains.c",
|
|
"silk/VQ_WMat_EC.c",
|
|
"silk/HP_variable_cutoff.c",
|
|
"silk/NLSF_encode.c",
|
|
"silk/NLSF_VQ.c",
|
|
"silk/NLSF_unpack.c",
|
|
"silk/NLSF_del_dec_quant.c",
|
|
"silk/process_NLSFs.c",
|
|
"silk/stereo_LR_to_MS.c",
|
|
"silk/stereo_MS_to_LR.c",
|
|
"silk/check_control_input.c",
|
|
"silk/control_SNR.c",
|
|
"silk/init_encoder.c",
|
|
"silk/control_codec.c",
|
|
"silk/A2NLSF.c",
|
|
"silk/ana_filt_bank_1.c",
|
|
"silk/biquad_alt.c",
|
|
"silk/bwexpander_32.c",
|
|
"silk/bwexpander.c",
|
|
"silk/debug.c",
|
|
"silk/decode_pitch.c",
|
|
"silk/inner_prod_aligned.c",
|
|
"silk/lin2log.c",
|
|
"silk/log2lin.c",
|
|
"silk/LPC_analysis_filter.c",
|
|
"silk/LPC_fit.c",
|
|
"silk/LPC_inv_pred_gain.c",
|
|
"silk/table_LSF_cos.c",
|
|
"silk/NLSF2A.c",
|
|
"silk/NLSF_stabilize.c",
|
|
"silk/NLSF_VQ_weights_laroia.c",
|
|
"silk/pitch_est_tables.c",
|
|
"silk/resampler.c",
|
|
"silk/resampler_down2_3.c",
|
|
"silk/resampler_down2.c",
|
|
"silk/resampler_private_AR2.c",
|
|
"silk/resampler_private_down_FIR.c",
|
|
"silk/resampler_private_IIR_FIR.c",
|
|
"silk/resampler_private_up2_HQ.c",
|
|
"silk/resampler_rom.c",
|
|
"silk/sigm_Q15.c",
|
|
"silk/sort.c",
|
|
"silk/sum_sqr_shift.c",
|
|
"silk/stereo_decode_pred.c",
|
|
"silk/stereo_encode_pred.c",
|
|
"silk/stereo_find_predictor.c",
|
|
"silk/stereo_quant_pred.c",
|
|
|
|
// SILK_SOURCES_FIXED
|
|
"silk/fixed/LTP_analysis_filter_FIX.c",
|
|
"silk/fixed/LTP_scale_ctrl_FIX.c",
|
|
"silk/fixed/corrMatrix_FIX.c",
|
|
"silk/fixed/encode_frame_FIX.c",
|
|
"silk/fixed/find_LPC_FIX.c",
|
|
"silk/fixed/find_LTP_FIX.c",
|
|
"silk/fixed/find_pitch_lags_FIX.c",
|
|
"silk/fixed/find_pred_coefs_FIX.c",
|
|
"silk/fixed/noise_shape_analysis_FIX.c",
|
|
"silk/fixed/process_gains_FIX.c",
|
|
"silk/fixed/regularize_correlations_FIX.c",
|
|
"silk/fixed/residual_energy16_FIX.c",
|
|
"silk/fixed/residual_energy_FIX.c",
|
|
"silk/fixed/warped_autocorrelation_FIX.c",
|
|
"silk/fixed/apply_sine_window_FIX.c",
|
|
"silk/fixed/autocorr_FIX.c",
|
|
"silk/fixed/burg_modified_FIX.c",
|
|
"silk/fixed/k2a_FIX.c",
|
|
"silk/fixed/k2a_Q16_FIX.c",
|
|
"silk/fixed/pitch_analysis_core_FIX.c",
|
|
"silk/fixed/vector_ops_FIX.c",
|
|
"silk/fixed/schur64_FIX.c",
|
|
"silk/fixed/schur_FIX.c",
|
|
|
|
// OPUS_SOURCES
|
|
"src/mapping_matrix.c",
|
|
"src/opus.c",
|
|
"src/opus_decoder.c",
|
|
"src/opus_encoder.c",
|
|
"src/opus_multistream.c",
|
|
"src/opus_multistream_encoder.c",
|
|
"src/opus_multistream_decoder.c",
|
|
"src/opus_projection_encoder.c",
|
|
"src/opus_projection_decoder.c",
|
|
"src/repacketizer.c",
|
|
|
|
// OPUS_SOURCES_FLOAT
|
|
"src/analysis.c",
|
|
"src/mlp.c",
|
|
"src/mlp_data.c",
|
|
],
|
|
|
|
cflags: [
|
|
"-DNULL=0",
|
|
"-DSOCKLEN_T=socklen_t",
|
|
"-DLOCALE_NOT_USED",
|
|
"-D_LARGEFILE_SOURCE=1",
|
|
"-D_FILE_OFFSET_BITS=64",
|
|
"-Drestrict=",
|
|
"-D__EMX__",
|
|
"-DOPUS_BUILD",
|
|
"-DFIXED_POINT",
|
|
"-DUSE_ALLOCA",
|
|
"-DHAVE_LRINT",
|
|
"-DHAVE_LRINTF",
|
|
"-DENABLE_HARDENING",
|
|
"-O2",
|
|
"-fno-math-errno",
|
|
"-Wall",
|
|
"-Werror",
|
|
],
|
|
cppflags: [
|
|
"-DBSD=1",
|
|
"-ffast-math",
|
|
"-O2",
|
|
"-funroll-loops",
|
|
],
|
|
|
|
arch: {
|
|
arm: {
|
|
srcs: [
|
|
// CELT_SOURCES_ARM
|
|
"celt/arm/armcpu.c",
|
|
"celt/arm/arm_celt_map.c",
|
|
|
|
// DSP, MEDIA and NEON instructions are in the same assembler
|
|
// file - thus we need to include it even if NEON is not
|
|
// supported on target platform.
|
|
// CELT_SOURCES_ARM_ASM
|
|
"celt/arm/celt_pitch_xcorr_arm_gnu.s",
|
|
|
|
// CELT_AM_SOURCES_ARM_ASM
|
|
"celt/arm/armopts_gnu.s",
|
|
],
|
|
|
|
cflags: [
|
|
"-DOPUS_ARM_ASM",
|
|
"-DOPUS_ARM_INLINE_ASM",
|
|
"-DOPUS_ARM_MAY_HAVE_EDSP",
|
|
"-DOPUS_ARM_INLINE_EDSP",
|
|
"-DOPUS_ARM_MAY_HAVE_MEDIA",
|
|
"-DOPUS_ARM_INLINE_MEDIA",
|
|
"-DOPUS_ARM_MAY_HAVE_NEON",
|
|
"-DOPUS_HAVE_RTCD",
|
|
],
|
|
|
|
// Note: OPUS enhanced DSP/NEON implementation is not yet
|
|
// compatible with arm64. Only add the appropriate defines for
|
|
// 32-bit arm architecture.
|
|
neon: {
|
|
srcs: [
|
|
// CELT_SOURCES_ARM_NEON_INTR
|
|
"celt/arm/celt_neon_intr.c",
|
|
"celt/arm/pitch_neon_intr.c",
|
|
|
|
// SILK_SOURCES_ARM_NEON_INTR,
|
|
"silk/arm/arm_silk_map.c",
|
|
"silk/arm/biquad_alt_neon_intr.c",
|
|
"silk/arm/LPC_inv_pred_gain_neon_intr.c",
|
|
"silk/arm/NSQ_del_dec_neon_intr.c",
|
|
"silk/arm/NSQ_neon.c",
|
|
|
|
// SILK_SOURCES_FIXED_ARM_NEON_INTR,
|
|
"silk/fixed/arm/warped_autocorrelation_FIX_neon_intr.c",
|
|
],
|
|
|
|
cflags: [
|
|
"-DOPUS_ARM_MAY_HAVE_NEON",
|
|
"-DOPUS_ARM_MAY_HAVE_NEON_INTR",
|
|
"-DOPUS_ARM_PRESUME_NEON",
|
|
"-DOPUS_ARM_INLINE_NEON",
|
|
],
|
|
},
|
|
|
|
},
|
|
|
|
x86: {
|
|
ssse3: {
|
|
srcs: [
|
|
// CELT_SOURCES_SSE
|
|
"celt/x86/x86cpu.c",
|
|
"celt/x86/x86_celt_map.c",
|
|
"celt/x86/pitch_sse.c",
|
|
|
|
// CELT_SOURCES_SSE2
|
|
"celt/x86/pitch_sse2.c",
|
|
"celt/x86/vq_sse2.c",
|
|
],
|
|
|
|
cflags: [
|
|
"-DOPUS_X86_MAY_HAVE_SSE",
|
|
"-DOPUS_X86_PRESUME_SSE",
|
|
"-DOPUS_X86_MAY_HAVE_SSE2",
|
|
"-DOPUS_X86_PRESUME_SSE2",
|
|
],
|
|
},
|
|
|
|
sse4_1: {
|
|
srcs: [
|
|
// CELT_SOURCES_SSE4_1
|
|
"celt/x86/celt_lpc_sse4_1.c",
|
|
"celt/x86/pitch_sse4_1.c",
|
|
|
|
// SILK_SOURCES_SSE4_1
|
|
"silk/x86/NSQ_sse4_1.c",
|
|
"silk/x86/NSQ_del_dec_sse4_1.c",
|
|
"silk/x86/x86_silk_map.c",
|
|
"silk/x86/VAD_sse4_1.c",
|
|
"silk/x86/VQ_WMat_EC_sse4_1.c",
|
|
|
|
// SILK_SOURCES_FIXED_SSE4_1
|
|
"silk/fixed/x86/vector_ops_FIX_sse4_1.c",
|
|
"silk/fixed/x86/burg_modified_FIX_sse4_1.c",
|
|
],
|
|
|
|
cflags: [
|
|
"-DOPUS_X86_MAY_HAVE_SSE4_1",
|
|
"-DOPUS_X86_PRESUME_SSE4_1",
|
|
],
|
|
},
|
|
},
|
|
|
|
x86_64: {
|
|
ssse3: {
|
|
srcs: [
|
|
// CELT_SOURCES_SSE
|
|
"celt/x86/x86cpu.c",
|
|
"celt/x86/x86_celt_map.c",
|
|
"celt/x86/pitch_sse.c",
|
|
|
|
// CELT_SOURCES_SSE2
|
|
"celt/x86/pitch_sse2.c",
|
|
"celt/x86/vq_sse2.c",
|
|
],
|
|
|
|
cflags: [
|
|
"-DOPUS_X86_MAY_HAVE_SSE",
|
|
"-DOPUS_X86_PRESUME_SSE",
|
|
"-DOPUS_X86_MAY_HAVE_SSE2",
|
|
"-DOPUS_X86_PRESUME_SSE2",
|
|
],
|
|
},
|
|
|
|
sse4_1: {
|
|
srcs: [
|
|
// CELT_SOURCES_SSE4_1
|
|
"celt/x86/celt_lpc_sse4_1.c",
|
|
"celt/x86/pitch_sse4_1.c",
|
|
|
|
// SILK_SOURCES_SSE4_1
|
|
"silk/x86/NSQ_sse4_1.c",
|
|
"silk/x86/NSQ_del_dec_sse4_1.c",
|
|
"silk/x86/x86_silk_map.c",
|
|
"silk/x86/VAD_sse4_1.c",
|
|
"silk/x86/VQ_WMat_EC_sse4_1.c",
|
|
|
|
// SILK_SOURCES_FIXED_SSE4_1
|
|
"silk/fixed/x86/vector_ops_FIX_sse4_1.c",
|
|
"silk/fixed/x86/burg_modified_FIX_sse4_1.c",
|
|
],
|
|
|
|
cflags: [
|
|
"-DOPUS_X86_MAY_HAVE_SSE4_1",
|
|
"-DOPUS_X86_PRESUME_SSE4_1",
|
|
],
|
|
},
|
|
},
|
|
},
|
|
|
|
target: {
|
|
darwin: {
|
|
enabled: false,
|
|
},
|
|
},
|
|
apex_available: [
|
|
"//apex_available:platform", // used by libstagefright_soft_opusdec
|
|
"com.android.media.swcodec",
|
|
],
|
|
min_sdk_version: "29",
|
|
}
|