1package {
2    default_applicable_licenses: [
3        "frameworks_av_media_codecs_amrwb_enc_license",
4    ],
5}
6
7// Added automatically by a large-scale-change
8// See: http://go/android-license-faq
9license {
10    name: "frameworks_av_media_codecs_amrwb_enc_license",
11    visibility: [":__subpackages__"],
12    license_kinds: [
13        "SPDX-license-identifier-Apache-2.0",
14    ],
15    license_text: [
16        "NOTICE",
17    ],
18}
19
20cc_library_static {
21    name: "libstagefright_amrwbenc",
22    vendor_available: true,
23    min_sdk_version: "29",
24
25    srcs: [
26        "src/autocorr.c",
27        "src/az_isp.c",
28        "src/bits.c",
29        "src/c2t64fx.c",
30        "src/c4t64fx.c",
31        "src/convolve.c",
32        "src/cor_h_x.c",
33        "src/decim54.c",
34        "src/deemph.c",
35        "src/dtx.c",
36        "src/g_pitch.c",
37        "src/gpclip.c",
38        "src/homing.c",
39        "src/hp400.c",
40        "src/hp50.c",
41        "src/hp6k.c",
42        "src/hp_wsp.c",
43        "src/int_lpc.c",
44        "src/isp_az.c",
45        "src/isp_isf.c",
46        "src/lag_wind.c",
47        "src/levinson.c",
48        "src/log2.c",
49        "src/lp_dec2.c",
50        "src/math_op.c",
51        "src/oper_32b.c",
52        "src/p_med_ol.c",
53        "src/pit_shrp.c",
54        "src/pitch_f4.c",
55        "src/pred_lt4.c",
56        "src/preemph.c",
57        "src/q_gain2.c",
58        "src/q_pulse.c",
59        "src/qisf_ns.c",
60        "src/qpisf_2s.c",
61        "src/random.c",
62        "src/residu.c",
63        "src/scale.c",
64        "src/stream.c",
65        "src/syn_filt.c",
66        "src/updt_tar.c",
67        "src/util.c",
68        "src/voAMRWBEnc.c",
69        "src/voicefac.c",
70        "src/wb_vad.c",
71        "src/weight_a.c",
72        "src/mem_align.c",
73    ],
74
75    arch: {
76        arm: {
77            srcs: [
78                "src/asm/ARMV5E/convolve_opt.s",
79                "src/asm/ARMV5E/cor_h_vec_opt.s",
80                "src/asm/ARMV5E/Deemph_32_opt.s",
81                "src/asm/ARMV5E/Dot_p_opt.s",
82                "src/asm/ARMV5E/Filt_6k_7k_opt.s",
83                "src/asm/ARMV5E/Norm_Corr_opt.s",
84                "src/asm/ARMV5E/pred_lt4_1_opt.s",
85                "src/asm/ARMV5E/residu_asm_opt.s",
86                "src/asm/ARMV5E/scale_sig_opt.s",
87                "src/asm/ARMV5E/Syn_filt_32_opt.s",
88                "src/asm/ARMV5E/syn_filt_opt.s",
89            ],
90
91            cflags: [
92                "-DARM",
93                "-DASM_OPT",
94            ],
95            local_include_dirs: ["src/asm/ARMV5E"],
96
97            instruction_set: "arm",
98
99            neon: {
100                exclude_srcs: [
101                    "src/asm/ARMV5E/convolve_opt.s",
102                    "src/asm/ARMV5E/cor_h_vec_opt.s",
103                    "src/asm/ARMV5E/Deemph_32_opt.s",
104                    "src/asm/ARMV5E/Dot_p_opt.s",
105                    "src/asm/ARMV5E/Filt_6k_7k_opt.s",
106                    "src/asm/ARMV5E/Norm_Corr_opt.s",
107                    "src/asm/ARMV5E/pred_lt4_1_opt.s",
108                    "src/asm/ARMV5E/residu_asm_opt.s",
109                    "src/asm/ARMV5E/scale_sig_opt.s",
110                    "src/asm/ARMV5E/Syn_filt_32_opt.s",
111                    "src/asm/ARMV5E/syn_filt_opt.s",
112                ],
113
114                srcs: [
115                    "src/asm/ARMV7/convolve_neon.s",
116                    "src/asm/ARMV7/cor_h_vec_neon.s",
117                    "src/asm/ARMV7/Deemph_32_neon.s",
118                    "src/asm/ARMV7/Dot_p_neon.s",
119                    "src/asm/ARMV7/Filt_6k_7k_neon.s",
120                    "src/asm/ARMV7/Norm_Corr_neon.s",
121                    "src/asm/ARMV7/pred_lt4_1_neon.s",
122                    "src/asm/ARMV7/residu_asm_neon.s",
123                    "src/asm/ARMV7/scale_sig_neon.s",
124                    "src/asm/ARMV7/Syn_filt_32_neon.s",
125                    "src/asm/ARMV7/syn_filt_neon.s",
126                ],
127
128                // don't actually generate neon instructions, see bug 26932980
129                cflags: [
130                    "-DARMV7",
131                    "-mfpu=vfpv3",
132                ],
133                local_include_dirs: [
134                    "src/asm/ARMV5E",
135                    "src/asm/ARMV7",
136                ],
137            },
138
139        },
140    },
141
142    include_dirs: [
143        "frameworks/av/include",
144        "frameworks/av/media/libstagefright/include",
145    ],
146
147    local_include_dirs: ["src"],
148    export_include_dirs: ["inc"],
149
150    shared_libs: [
151        "libstagefright_enc_common",
152        "liblog",
153    ],
154
155    cflags: ["-Werror"],
156    sanitize: {
157        cfi: true,
158    },
159
160    host_supported: true,
161    target: {
162        darwin: {
163            enabled: false,
164        },
165    },
166}
167