1*a58d3d2aSXin Lipackage { 2*a58d3d2aSXin Li default_applicable_licenses: ["external_libopus_license"], 3*a58d3d2aSXin Li} 4*a58d3d2aSXin Li 5*a58d3d2aSXin Li// Added automatically by a large-scale-change that took the approach of 6*a58d3d2aSXin Li// 'apply every license found to every target'. While this makes sure we respect 7*a58d3d2aSXin Li// every license restriction, it may not be entirely correct. 8*a58d3d2aSXin Li// 9*a58d3d2aSXin Li// e.g. GPL in an MIT project might only apply to the contrib/ directory. 10*a58d3d2aSXin Li// 11*a58d3d2aSXin Li// Please consider splitting the single license below into multiple licenses, 12*a58d3d2aSXin Li// taking care not to lose any license_kind information, and overriding the 13*a58d3d2aSXin Li// default license using the 'licenses: [...]' property on targets as needed. 14*a58d3d2aSXin Li// 15*a58d3d2aSXin Li// For unused files, consider creating a 'filegroup' with "//visibility:private" 16*a58d3d2aSXin Li// to attach the license to, and including a comment whether the files may be 17*a58d3d2aSXin Li// used in the current project. 18*a58d3d2aSXin Li// 19*a58d3d2aSXin Li// large-scale-change included anything that looked like it might be a license 20*a58d3d2aSXin Li// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc. 21*a58d3d2aSXin Li// 22*a58d3d2aSXin Li// Please consider removing redundant or irrelevant files from 'license_text:'. 23*a58d3d2aSXin Li// http://go/android-license-faq 24*a58d3d2aSXin Lilicense { 25*a58d3d2aSXin Li name: "external_libopus_license", 26*a58d3d2aSXin Li visibility: [":__subpackages__"], 27*a58d3d2aSXin Li license_kinds: [ 28*a58d3d2aSXin Li "SPDX-license-identifier-Apache-2.0", 29*a58d3d2aSXin Li "SPDX-license-identifier-BSD", 30*a58d3d2aSXin Li ], 31*a58d3d2aSXin Li license_text: [ 32*a58d3d2aSXin Li "COPYING", 33*a58d3d2aSXin Li "NOTICE", 34*a58d3d2aSXin Li ], 35*a58d3d2aSXin Li} 36*a58d3d2aSXin Li 37*a58d3d2aSXin Licc_library { 38*a58d3d2aSXin Li name: "libopus", 39*a58d3d2aSXin Li vendor_available: true, 40*a58d3d2aSXin Li host_supported: true, 41*a58d3d2aSXin Li 42*a58d3d2aSXin Li export_include_dirs: ["include"], 43*a58d3d2aSXin Li 44*a58d3d2aSXin Li local_include_dirs: [ 45*a58d3d2aSXin Li "src", 46*a58d3d2aSXin Li "silk", 47*a58d3d2aSXin Li "celt", 48*a58d3d2aSXin Li "silk/fixed", 49*a58d3d2aSXin Li ], 50*a58d3d2aSXin Li 51*a58d3d2aSXin Li sanitize: { 52*a58d3d2aSXin Li integer_overflow: true, 53*a58d3d2aSXin Li misc_undefined: ["bounds"], 54*a58d3d2aSXin Li blocklist: "libopus_blocklist.txt", 55*a58d3d2aSXin Li }, 56*a58d3d2aSXin Li 57*a58d3d2aSXin Li srcs: [ 58*a58d3d2aSXin Li // CELT_SOURCES 59*a58d3d2aSXin Li "celt/bands.c", 60*a58d3d2aSXin Li "celt/celt.c", 61*a58d3d2aSXin Li "celt/celt_encoder.c", 62*a58d3d2aSXin Li "celt/celt_decoder.c", 63*a58d3d2aSXin Li "celt/cwrs.c", 64*a58d3d2aSXin Li "celt/entcode.c", 65*a58d3d2aSXin Li "celt/entdec.c", 66*a58d3d2aSXin Li "celt/entenc.c", 67*a58d3d2aSXin Li "celt/kiss_fft.c", 68*a58d3d2aSXin Li "celt/laplace.c", 69*a58d3d2aSXin Li "celt/mathops.c", 70*a58d3d2aSXin Li "celt/mdct.c", 71*a58d3d2aSXin Li "celt/modes.c", 72*a58d3d2aSXin Li "celt/pitch.c", 73*a58d3d2aSXin Li "celt/celt_lpc.c", 74*a58d3d2aSXin Li "celt/quant_bands.c", 75*a58d3d2aSXin Li "celt/rate.c", 76*a58d3d2aSXin Li "celt/vq.c", 77*a58d3d2aSXin Li 78*a58d3d2aSXin Li // SILK_SOURCES 79*a58d3d2aSXin Li "silk/CNG.c", 80*a58d3d2aSXin Li "silk/code_signs.c", 81*a58d3d2aSXin Li "silk/init_decoder.c", 82*a58d3d2aSXin Li "silk/decode_core.c", 83*a58d3d2aSXin Li "silk/decode_frame.c", 84*a58d3d2aSXin Li "silk/decode_parameters.c", 85*a58d3d2aSXin Li "silk/decode_indices.c", 86*a58d3d2aSXin Li "silk/decode_pulses.c", 87*a58d3d2aSXin Li "silk/decoder_set_fs.c", 88*a58d3d2aSXin Li "silk/dec_API.c", 89*a58d3d2aSXin Li "silk/enc_API.c", 90*a58d3d2aSXin Li "silk/encode_indices.c", 91*a58d3d2aSXin Li "silk/encode_pulses.c", 92*a58d3d2aSXin Li "silk/gain_quant.c", 93*a58d3d2aSXin Li "silk/interpolate.c", 94*a58d3d2aSXin Li "silk/LP_variable_cutoff.c", 95*a58d3d2aSXin Li "silk/NLSF_decode.c", 96*a58d3d2aSXin Li "silk/NSQ.c", 97*a58d3d2aSXin Li "silk/NSQ_del_dec.c", 98*a58d3d2aSXin Li "silk/PLC.c", 99*a58d3d2aSXin Li "silk/shell_coder.c", 100*a58d3d2aSXin Li "silk/tables_gain.c", 101*a58d3d2aSXin Li "silk/tables_LTP.c", 102*a58d3d2aSXin Li "silk/tables_NLSF_CB_NB_MB.c", 103*a58d3d2aSXin Li "silk/tables_NLSF_CB_WB.c", 104*a58d3d2aSXin Li "silk/tables_other.c", 105*a58d3d2aSXin Li "silk/tables_pitch_lag.c", 106*a58d3d2aSXin Li "silk/tables_pulses_per_block.c", 107*a58d3d2aSXin Li "silk/VAD.c", 108*a58d3d2aSXin Li "silk/control_audio_bandwidth.c", 109*a58d3d2aSXin Li "silk/quant_LTP_gains.c", 110*a58d3d2aSXin Li "silk/VQ_WMat_EC.c", 111*a58d3d2aSXin Li "silk/HP_variable_cutoff.c", 112*a58d3d2aSXin Li "silk/NLSF_encode.c", 113*a58d3d2aSXin Li "silk/NLSF_VQ.c", 114*a58d3d2aSXin Li "silk/NLSF_unpack.c", 115*a58d3d2aSXin Li "silk/NLSF_del_dec_quant.c", 116*a58d3d2aSXin Li "silk/process_NLSFs.c", 117*a58d3d2aSXin Li "silk/stereo_LR_to_MS.c", 118*a58d3d2aSXin Li "silk/stereo_MS_to_LR.c", 119*a58d3d2aSXin Li "silk/check_control_input.c", 120*a58d3d2aSXin Li "silk/control_SNR.c", 121*a58d3d2aSXin Li "silk/init_encoder.c", 122*a58d3d2aSXin Li "silk/control_codec.c", 123*a58d3d2aSXin Li "silk/A2NLSF.c", 124*a58d3d2aSXin Li "silk/ana_filt_bank_1.c", 125*a58d3d2aSXin Li "silk/biquad_alt.c", 126*a58d3d2aSXin Li "silk/bwexpander_32.c", 127*a58d3d2aSXin Li "silk/bwexpander.c", 128*a58d3d2aSXin Li "silk/debug.c", 129*a58d3d2aSXin Li "silk/decode_pitch.c", 130*a58d3d2aSXin Li "silk/inner_prod_aligned.c", 131*a58d3d2aSXin Li "silk/lin2log.c", 132*a58d3d2aSXin Li "silk/log2lin.c", 133*a58d3d2aSXin Li "silk/LPC_analysis_filter.c", 134*a58d3d2aSXin Li "silk/LPC_fit.c", 135*a58d3d2aSXin Li "silk/LPC_inv_pred_gain.c", 136*a58d3d2aSXin Li "silk/table_LSF_cos.c", 137*a58d3d2aSXin Li "silk/NLSF2A.c", 138*a58d3d2aSXin Li "silk/NLSF_stabilize.c", 139*a58d3d2aSXin Li "silk/NLSF_VQ_weights_laroia.c", 140*a58d3d2aSXin Li "silk/pitch_est_tables.c", 141*a58d3d2aSXin Li "silk/resampler.c", 142*a58d3d2aSXin Li "silk/resampler_down2_3.c", 143*a58d3d2aSXin Li "silk/resampler_down2.c", 144*a58d3d2aSXin Li "silk/resampler_private_AR2.c", 145*a58d3d2aSXin Li "silk/resampler_private_down_FIR.c", 146*a58d3d2aSXin Li "silk/resampler_private_IIR_FIR.c", 147*a58d3d2aSXin Li "silk/resampler_private_up2_HQ.c", 148*a58d3d2aSXin Li "silk/resampler_rom.c", 149*a58d3d2aSXin Li "silk/sigm_Q15.c", 150*a58d3d2aSXin Li "silk/sort.c", 151*a58d3d2aSXin Li "silk/sum_sqr_shift.c", 152*a58d3d2aSXin Li "silk/stereo_decode_pred.c", 153*a58d3d2aSXin Li "silk/stereo_encode_pred.c", 154*a58d3d2aSXin Li "silk/stereo_find_predictor.c", 155*a58d3d2aSXin Li "silk/stereo_quant_pred.c", 156*a58d3d2aSXin Li 157*a58d3d2aSXin Li // SILK_SOURCES_FIXED 158*a58d3d2aSXin Li "silk/fixed/LTP_analysis_filter_FIX.c", 159*a58d3d2aSXin Li "silk/fixed/LTP_scale_ctrl_FIX.c", 160*a58d3d2aSXin Li "silk/fixed/corrMatrix_FIX.c", 161*a58d3d2aSXin Li "silk/fixed/encode_frame_FIX.c", 162*a58d3d2aSXin Li "silk/fixed/find_LPC_FIX.c", 163*a58d3d2aSXin Li "silk/fixed/find_LTP_FIX.c", 164*a58d3d2aSXin Li "silk/fixed/find_pitch_lags_FIX.c", 165*a58d3d2aSXin Li "silk/fixed/find_pred_coefs_FIX.c", 166*a58d3d2aSXin Li "silk/fixed/noise_shape_analysis_FIX.c", 167*a58d3d2aSXin Li "silk/fixed/process_gains_FIX.c", 168*a58d3d2aSXin Li "silk/fixed/regularize_correlations_FIX.c", 169*a58d3d2aSXin Li "silk/fixed/residual_energy16_FIX.c", 170*a58d3d2aSXin Li "silk/fixed/residual_energy_FIX.c", 171*a58d3d2aSXin Li "silk/fixed/warped_autocorrelation_FIX.c", 172*a58d3d2aSXin Li "silk/fixed/apply_sine_window_FIX.c", 173*a58d3d2aSXin Li "silk/fixed/autocorr_FIX.c", 174*a58d3d2aSXin Li "silk/fixed/burg_modified_FIX.c", 175*a58d3d2aSXin Li "silk/fixed/k2a_FIX.c", 176*a58d3d2aSXin Li "silk/fixed/k2a_Q16_FIX.c", 177*a58d3d2aSXin Li "silk/fixed/pitch_analysis_core_FIX.c", 178*a58d3d2aSXin Li "silk/fixed/vector_ops_FIX.c", 179*a58d3d2aSXin Li "silk/fixed/schur64_FIX.c", 180*a58d3d2aSXin Li "silk/fixed/schur_FIX.c", 181*a58d3d2aSXin Li 182*a58d3d2aSXin Li // OPUS_SOURCES 183*a58d3d2aSXin Li "src/mapping_matrix.c", 184*a58d3d2aSXin Li "src/opus.c", 185*a58d3d2aSXin Li "src/opus_decoder.c", 186*a58d3d2aSXin Li "src/opus_encoder.c", 187*a58d3d2aSXin Li "src/opus_multistream.c", 188*a58d3d2aSXin Li "src/opus_multistream_encoder.c", 189*a58d3d2aSXin Li "src/opus_multistream_decoder.c", 190*a58d3d2aSXin Li "src/opus_projection_encoder.c", 191*a58d3d2aSXin Li "src/opus_projection_decoder.c", 192*a58d3d2aSXin Li "src/repacketizer.c", 193*a58d3d2aSXin Li "src/extensions.c", 194*a58d3d2aSXin Li // OPUS_SOURCES_FLOAT 195*a58d3d2aSXin Li "src/analysis.c", 196*a58d3d2aSXin Li "src/mlp.c", 197*a58d3d2aSXin Li "src/mlp_data.c", 198*a58d3d2aSXin Li ], 199*a58d3d2aSXin Li 200*a58d3d2aSXin Li cflags: [ 201*a58d3d2aSXin Li "-DNULL=0", 202*a58d3d2aSXin Li "-DSOCKLEN_T=socklen_t", 203*a58d3d2aSXin Li "-DLOCALE_NOT_USED", 204*a58d3d2aSXin Li "-D_LARGEFILE_SOURCE=1", 205*a58d3d2aSXin Li "-D_FILE_OFFSET_BITS=64", 206*a58d3d2aSXin Li "-Drestrict=", 207*a58d3d2aSXin Li "-D__EMX__", 208*a58d3d2aSXin Li "-DOPUS_BUILD", 209*a58d3d2aSXin Li "-DFIXED_POINT", 210*a58d3d2aSXin Li "-DUSE_ALLOCA", 211*a58d3d2aSXin Li "-DSIMD_EXTRA_ALLOC_BYTES=16", 212*a58d3d2aSXin Li "-DHAVE_LRINT", 213*a58d3d2aSXin Li "-DHAVE_LRINTF", 214*a58d3d2aSXin Li "-DENABLE_HARDENING", 215*a58d3d2aSXin Li "-O2", 216*a58d3d2aSXin Li "-fno-math-errno", 217*a58d3d2aSXin Li "-Wall", 218*a58d3d2aSXin Li "-Werror", 219*a58d3d2aSXin Li ], 220*a58d3d2aSXin Li cppflags: [ 221*a58d3d2aSXin Li "-DBSD=1", 222*a58d3d2aSXin Li "-ffast-math", 223*a58d3d2aSXin Li "-O2", 224*a58d3d2aSXin Li "-funroll-loops", 225*a58d3d2aSXin Li ], 226*a58d3d2aSXin Li 227*a58d3d2aSXin Li arch: { 228*a58d3d2aSXin Li arm: { 229*a58d3d2aSXin Li srcs: [ 230*a58d3d2aSXin Li // CELT_SOURCES_ARM 231*a58d3d2aSXin Li "celt/arm/armcpu.c", 232*a58d3d2aSXin Li "celt/arm/arm_celt_map.c", 233*a58d3d2aSXin Li 234*a58d3d2aSXin Li // CELT_SOURCES_ARM_ASM 235*a58d3d2aSXin Li "celt/arm/celt_pitch_xcorr_arm_gnu.s", 236*a58d3d2aSXin Li 237*a58d3d2aSXin Li // CELT_AM_SOURCES_ARM_ASM 238*a58d3d2aSXin Li "celt/arm/armopts_gnu.s", 239*a58d3d2aSXin Li 240*a58d3d2aSXin Li // CELT_SOURCES_ARM_NEON_INTR 241*a58d3d2aSXin Li "celt/arm/celt_neon_intr.c", 242*a58d3d2aSXin Li "celt/arm/pitch_neon_intr.c", 243*a58d3d2aSXin Li 244*a58d3d2aSXin Li // SILK_SOURCES_ARM_NEON_INTR, 245*a58d3d2aSXin Li "silk/arm/arm_silk_map.c", 246*a58d3d2aSXin Li "silk/arm/biquad_alt_neon_intr.c", 247*a58d3d2aSXin Li "silk/arm/LPC_inv_pred_gain_neon_intr.c", 248*a58d3d2aSXin Li "silk/arm/NSQ_del_dec_neon_intr.c", 249*a58d3d2aSXin Li "silk/arm/NSQ_neon.c", 250*a58d3d2aSXin Li 251*a58d3d2aSXin Li // SILK_SOURCES_FIXED_ARM_NEON_INTR, 252*a58d3d2aSXin Li "silk/fixed/arm/warped_autocorrelation_FIX_neon_intr.c", 253*a58d3d2aSXin Li ], 254*a58d3d2aSXin Li 255*a58d3d2aSXin Li cflags: [ 256*a58d3d2aSXin Li "-DOPUS_ARM_ASM", 257*a58d3d2aSXin Li "-DOPUS_ARM_INLINE_ASM", 258*a58d3d2aSXin Li "-DOPUS_ARM_MAY_HAVE_EDSP", 259*a58d3d2aSXin Li "-DOPUS_ARM_INLINE_EDSP", 260*a58d3d2aSXin Li "-DOPUS_ARM_MAY_HAVE_MEDIA", 261*a58d3d2aSXin Li "-DOPUS_ARM_INLINE_MEDIA", 262*a58d3d2aSXin Li "-DOPUS_ARM_MAY_HAVE_NEON", 263*a58d3d2aSXin Li "-DOPUS_ARM_MAY_HAVE_NEON_INTR", 264*a58d3d2aSXin Li "-DOPUS_ARM_PRESUME_NEON", 265*a58d3d2aSXin Li "-DOPUS_ARM_INLINE_NEON", 266*a58d3d2aSXin Li "-DOPUS_HAVE_RTCD", 267*a58d3d2aSXin Li ], 268*a58d3d2aSXin Li }, 269*a58d3d2aSXin Li 270*a58d3d2aSXin Li arm64: { 271*a58d3d2aSXin Li // TODO: opus 1.5 has support for arm64 (AARCH64) too. 272*a58d3d2aSXin Li }, 273*a58d3d2aSXin Li 274*a58d3d2aSXin Li x86: { 275*a58d3d2aSXin Li ssse3: { 276*a58d3d2aSXin Li srcs: [ 277*a58d3d2aSXin Li // CELT_SOURCES_SSE 278*a58d3d2aSXin Li "celt/x86/x86cpu.c", 279*a58d3d2aSXin Li "celt/x86/x86_celt_map.c", 280*a58d3d2aSXin Li "celt/x86/pitch_sse.c", 281*a58d3d2aSXin Li 282*a58d3d2aSXin Li // CELT_SOURCES_SSE2 283*a58d3d2aSXin Li "celt/x86/pitch_sse2.c", 284*a58d3d2aSXin Li "celt/x86/vq_sse2.c", 285*a58d3d2aSXin Li ], 286*a58d3d2aSXin Li 287*a58d3d2aSXin Li cflags: [ 288*a58d3d2aSXin Li "-DOPUS_X86_MAY_HAVE_SSE", 289*a58d3d2aSXin Li "-DOPUS_X86_PRESUME_SSE", 290*a58d3d2aSXin Li "-DOPUS_X86_MAY_HAVE_SSE2", 291*a58d3d2aSXin Li "-DOPUS_X86_PRESUME_SSE2", 292*a58d3d2aSXin Li ], 293*a58d3d2aSXin Li }, 294*a58d3d2aSXin Li 295*a58d3d2aSXin Li sse4_1: { 296*a58d3d2aSXin Li srcs: [ 297*a58d3d2aSXin Li // CELT_SOURCES_SSE4_1 298*a58d3d2aSXin Li "celt/x86/celt_lpc_sse4_1.c", 299*a58d3d2aSXin Li "celt/x86/pitch_sse4_1.c", 300*a58d3d2aSXin Li 301*a58d3d2aSXin Li // SILK_SOURCES_SSE4_1 302*a58d3d2aSXin Li "silk/x86/NSQ_sse4_1.c", 303*a58d3d2aSXin Li "silk/x86/NSQ_del_dec_sse4_1.c", 304*a58d3d2aSXin Li "silk/x86/x86_silk_map.c", 305*a58d3d2aSXin Li "silk/x86/VAD_sse4_1.c", 306*a58d3d2aSXin Li "silk/x86/VQ_WMat_EC_sse4_1.c", 307*a58d3d2aSXin Li 308*a58d3d2aSXin Li // SILK_SOURCES_FIXED_SSE4_1 309*a58d3d2aSXin Li "silk/fixed/x86/vector_ops_FIX_sse4_1.c", 310*a58d3d2aSXin Li "silk/fixed/x86/burg_modified_FIX_sse4_1.c", 311*a58d3d2aSXin Li ], 312*a58d3d2aSXin Li 313*a58d3d2aSXin Li cflags: [ 314*a58d3d2aSXin Li "-DOPUS_X86_MAY_HAVE_SSE4_1", 315*a58d3d2aSXin Li "-DOPUS_X86_PRESUME_SSE4_1", 316*a58d3d2aSXin Li ], 317*a58d3d2aSXin Li }, 318*a58d3d2aSXin Li }, 319*a58d3d2aSXin Li 320*a58d3d2aSXin Li x86_64: { 321*a58d3d2aSXin Li ssse3: { 322*a58d3d2aSXin Li srcs: [ 323*a58d3d2aSXin Li // CELT_SOURCES_SSE 324*a58d3d2aSXin Li "celt/x86/x86cpu.c", 325*a58d3d2aSXin Li "celt/x86/x86_celt_map.c", 326*a58d3d2aSXin Li "celt/x86/pitch_sse.c", 327*a58d3d2aSXin Li 328*a58d3d2aSXin Li // CELT_SOURCES_SSE2 329*a58d3d2aSXin Li "celt/x86/pitch_sse2.c", 330*a58d3d2aSXin Li "celt/x86/vq_sse2.c", 331*a58d3d2aSXin Li ], 332*a58d3d2aSXin Li 333*a58d3d2aSXin Li cflags: [ 334*a58d3d2aSXin Li "-DOPUS_X86_MAY_HAVE_SSE", 335*a58d3d2aSXin Li "-DOPUS_X86_PRESUME_SSE", 336*a58d3d2aSXin Li "-DOPUS_X86_MAY_HAVE_SSE2", 337*a58d3d2aSXin Li "-DOPUS_X86_PRESUME_SSE2", 338*a58d3d2aSXin Li ], 339*a58d3d2aSXin Li }, 340*a58d3d2aSXin Li 341*a58d3d2aSXin Li sse4_1: { 342*a58d3d2aSXin Li srcs: [ 343*a58d3d2aSXin Li // CELT_SOURCES_SSE4_1 344*a58d3d2aSXin Li "celt/x86/celt_lpc_sse4_1.c", 345*a58d3d2aSXin Li "celt/x86/pitch_sse4_1.c", 346*a58d3d2aSXin Li 347*a58d3d2aSXin Li // SILK_SOURCES_SSE4_1 348*a58d3d2aSXin Li "silk/x86/NSQ_sse4_1.c", 349*a58d3d2aSXin Li "silk/x86/NSQ_del_dec_sse4_1.c", 350*a58d3d2aSXin Li "silk/x86/x86_silk_map.c", 351*a58d3d2aSXin Li "silk/x86/VAD_sse4_1.c", 352*a58d3d2aSXin Li "silk/x86/VQ_WMat_EC_sse4_1.c", 353*a58d3d2aSXin Li 354*a58d3d2aSXin Li // SILK_SOURCES_FIXED_SSE4_1 355*a58d3d2aSXin Li "silk/fixed/x86/vector_ops_FIX_sse4_1.c", 356*a58d3d2aSXin Li "silk/fixed/x86/burg_modified_FIX_sse4_1.c", 357*a58d3d2aSXin Li ], 358*a58d3d2aSXin Li 359*a58d3d2aSXin Li cflags: [ 360*a58d3d2aSXin Li "-DOPUS_X86_MAY_HAVE_SSE4_1", 361*a58d3d2aSXin Li "-DOPUS_X86_PRESUME_SSE4_1", 362*a58d3d2aSXin Li ], 363*a58d3d2aSXin Li }, 364*a58d3d2aSXin Li }, 365*a58d3d2aSXin Li }, 366*a58d3d2aSXin Li 367*a58d3d2aSXin Li target: { 368*a58d3d2aSXin Li darwin: { 369*a58d3d2aSXin Li enabled: false, 370*a58d3d2aSXin Li }, 371*a58d3d2aSXin Li }, 372*a58d3d2aSXin Li apex_available: [ 373*a58d3d2aSXin Li "//apex_available:platform", // used by libstagefright_soft_opusdec 374*a58d3d2aSXin Li "com.android.media.swcodec", 375*a58d3d2aSXin Li "com.android.btservices", 376*a58d3d2aSXin Li ], 377*a58d3d2aSXin Li min_sdk_version: "29", 378*a58d3d2aSXin Li} 379