xref: /aosp_15_r20/external/libhevc/Android.bp (revision c83a76b084498d55f252f48b2e3786804cdf24b7)
1*c83a76b0SSuyog Pawarpackage {
2*c83a76b0SSuyog Pawar    default_applicable_licenses: ["external_libhevc_license"],
3*c83a76b0SSuyog Pawar}
4*c83a76b0SSuyog Pawar
5*c83a76b0SSuyog Pawar// Added automatically by a large-scale-change
6*c83a76b0SSuyog Pawar// See: http://go/android-license-faq
7*c83a76b0SSuyog Pawarlicense {
8*c83a76b0SSuyog Pawar    name: "external_libhevc_license",
9*c83a76b0SSuyog Pawar    visibility: [":__subpackages__"],
10*c83a76b0SSuyog Pawar    license_kinds: [
11*c83a76b0SSuyog Pawar        "SPDX-license-identifier-Apache-2.0",
12*c83a76b0SSuyog Pawar    ],
13*c83a76b0SSuyog Pawar    license_text: [
14*c83a76b0SSuyog Pawar        "NOTICE",
15*c83a76b0SSuyog Pawar    ],
16*c83a76b0SSuyog Pawar}
17*c83a76b0SSuyog Pawar
18*c83a76b0SSuyog Pawarcc_library_headers {
19*c83a76b0SSuyog Pawar    name: "libhevcdec_headers",
20*c83a76b0SSuyog Pawar    export_include_dirs: [
21*c83a76b0SSuyog Pawar        "common",
22*c83a76b0SSuyog Pawar        "decoder",
23*c83a76b0SSuyog Pawar    ],
24*c83a76b0SSuyog Pawar    min_sdk_version: "29",
25*c83a76b0SSuyog Pawar}
26*c83a76b0SSuyog Pawar
27*c83a76b0SSuyog Pawarcc_library_headers {
28*c83a76b0SSuyog Pawar    name: "libhevcenc_headers",
29*c83a76b0SSuyog Pawar    export_include_dirs: [
30*c83a76b0SSuyog Pawar        "common",
31*c83a76b0SSuyog Pawar        "encoder",
32*c83a76b0SSuyog Pawar    ],
33*c83a76b0SSuyog Pawar    min_sdk_version: "29",
34*c83a76b0SSuyog Pawar}
35*c83a76b0SSuyog Pawar
36*c83a76b0SSuyog Pawarcc_library_static {
37*c83a76b0SSuyog Pawar    name: "libhevcdec",
38*c83a76b0SSuyog Pawar    vendor_available: true,
39*c83a76b0SSuyog Pawar    host_supported: true,
40*c83a76b0SSuyog Pawar
41*c83a76b0SSuyog Pawar    cflags: [
42*c83a76b0SSuyog Pawar        "-D_LIB",
43*c83a76b0SSuyog Pawar        "-fPIC",
44*c83a76b0SSuyog Pawar
45*c83a76b0SSuyog Pawar        "-O3",
46*c83a76b0SSuyog Pawar        "-DANDROID",
47*c83a76b0SSuyog Pawar        "-DDISABLE_SEI",
48*c83a76b0SSuyog Pawar        "-Wall",
49*c83a76b0SSuyog Pawar        "-Werror",
50*c83a76b0SSuyog Pawar        // common/x86/ihevc_sao_ssse3_intr.c: implicit conversion from
51*c83a76b0SSuyog Pawar        // 'int' to 'char' changes value from 128 to -128
52*c83a76b0SSuyog Pawar        "-Wno-error=constant-conversion",
53*c83a76b0SSuyog Pawar        // #KEEP_THREAD_ACTIVE is experimental
54*c83a76b0SSuyog Pawar        "-UKEEP_THREADS_ACTIVE",
55*c83a76b0SSuyog Pawar    ],
56*c83a76b0SSuyog Pawar
57*c83a76b0SSuyog Pawar    export_include_dirs: [
58*c83a76b0SSuyog Pawar        "common",
59*c83a76b0SSuyog Pawar        "decoder",
60*c83a76b0SSuyog Pawar    ],
61*c83a76b0SSuyog Pawar
62*c83a76b0SSuyog Pawar    srcs: [
63*c83a76b0SSuyog Pawar        "common/ihevc_buf_mgr.c",
64*c83a76b0SSuyog Pawar        "common/ihevc_cabac_tables.c",
65*c83a76b0SSuyog Pawar        "common/ihevc_chroma_intra_pred_filters.c",
66*c83a76b0SSuyog Pawar        "common/ihevc_chroma_iquant_itrans_recon.c",
67*c83a76b0SSuyog Pawar        "common/ihevc_chroma_iquant_recon.c",
68*c83a76b0SSuyog Pawar        "common/ihevc_chroma_itrans_recon.c",
69*c83a76b0SSuyog Pawar        "common/ihevc_chroma_itrans_recon_16x16.c",
70*c83a76b0SSuyog Pawar        "common/ihevc_chroma_itrans_recon_8x8.c",
71*c83a76b0SSuyog Pawar        "common/ihevc_chroma_recon.c",
72*c83a76b0SSuyog Pawar        "common/ihevc_common_tables.c",
73*c83a76b0SSuyog Pawar        "common/ihevc_deblk_edge_filter.c",
74*c83a76b0SSuyog Pawar        "common/ihevc_deblk_tables.c",
75*c83a76b0SSuyog Pawar        "common/ihevc_disp_mgr.c",
76*c83a76b0SSuyog Pawar        "common/ihevc_dpb_mgr.c",
77*c83a76b0SSuyog Pawar        "common/ihevc_inter_pred_filters.c",
78*c83a76b0SSuyog Pawar        "common/ihevc_intra_pred_filters.c",
79*c83a76b0SSuyog Pawar        "common/ihevc_iquant_itrans_recon.c",
80*c83a76b0SSuyog Pawar        "common/ihevc_iquant_recon.c",
81*c83a76b0SSuyog Pawar        "common/ihevc_itrans.c",
82*c83a76b0SSuyog Pawar        "common/ihevc_itrans_recon.c",
83*c83a76b0SSuyog Pawar        "common/ihevc_itrans_recon_16x16.c",
84*c83a76b0SSuyog Pawar        "common/ihevc_itrans_recon_32x32.c",
85*c83a76b0SSuyog Pawar        "common/ihevc_itrans_recon_8x8.c",
86*c83a76b0SSuyog Pawar        "common/ihevc_mem_fns.c",
87*c83a76b0SSuyog Pawar        "common/ihevc_padding.c",
88*c83a76b0SSuyog Pawar        "common/ihevc_quant_tables.c",
89*c83a76b0SSuyog Pawar        "common/ihevc_recon.c",
90*c83a76b0SSuyog Pawar        "common/ihevc_sao.c",
91*c83a76b0SSuyog Pawar        "common/ihevc_trans_tables.c",
92*c83a76b0SSuyog Pawar        "common/ihevc_weighted_pred.c",
93*c83a76b0SSuyog Pawar        "common/ithread.c",
94*c83a76b0SSuyog Pawar        "decoder/ihevcd_api.c",
95*c83a76b0SSuyog Pawar        "decoder/ihevcd_bitstream.c",
96*c83a76b0SSuyog Pawar        "decoder/ihevcd_boundary_strength.c",
97*c83a76b0SSuyog Pawar        "decoder/ihevcd_cabac.c",
98*c83a76b0SSuyog Pawar        "decoder/ihevcd_common_tables.c",
99*c83a76b0SSuyog Pawar        "decoder/ihevcd_deblk.c",
100*c83a76b0SSuyog Pawar        "decoder/ihevcd_decode.c",
101*c83a76b0SSuyog Pawar        "decoder/ihevcd_fmt_conv.c",
102*c83a76b0SSuyog Pawar        "decoder/ihevcd_get_mv.c",
103*c83a76b0SSuyog Pawar        "decoder/ihevcd_ilf_padding.c",
104*c83a76b0SSuyog Pawar        "decoder/ihevcd_inter_pred.c",
105*c83a76b0SSuyog Pawar        "decoder/ihevcd_intra_pred_mode_prediction.c",
106*c83a76b0SSuyog Pawar        "decoder/ihevcd_iquant_itrans_recon_ctb.c",
107*c83a76b0SSuyog Pawar        "decoder/ihevcd_itrans_recon_dc.c",
108*c83a76b0SSuyog Pawar        "decoder/ihevcd_job_queue.c",
109*c83a76b0SSuyog Pawar        "decoder/ihevcd_mv_merge.c",
110*c83a76b0SSuyog Pawar        "decoder/ihevcd_mv_pred.c",
111*c83a76b0SSuyog Pawar        "decoder/ihevcd_nal.c",
112*c83a76b0SSuyog Pawar        "decoder/ihevcd_parse_headers.c",
113*c83a76b0SSuyog Pawar        "decoder/ihevcd_parse_residual.c",
114*c83a76b0SSuyog Pawar        "decoder/ihevcd_parse_slice.c",
115*c83a76b0SSuyog Pawar        "decoder/ihevcd_parse_slice_header.c",
116*c83a76b0SSuyog Pawar        "decoder/ihevcd_process_slice.c",
117*c83a76b0SSuyog Pawar        "decoder/ihevcd_ref_list.c",
118*c83a76b0SSuyog Pawar        "decoder/ihevcd_sao.c",
119*c83a76b0SSuyog Pawar        "decoder/ihevcd_utils.c",
120*c83a76b0SSuyog Pawar        "decoder/ihevcd_version.c",
121*c83a76b0SSuyog Pawar    ],
122*c83a76b0SSuyog Pawar
123*c83a76b0SSuyog Pawar    arch: {
124*c83a76b0SSuyog Pawar        arm64: {
125*c83a76b0SSuyog Pawar            cflags: [
126*c83a76b0SSuyog Pawar                "-DARMV8",
127*c83a76b0SSuyog Pawar                "-DDISABLE_NEONINTR",
128*c83a76b0SSuyog Pawar                "-DARM",
129*c83a76b0SSuyog Pawar                "-DARMGCC",
130*c83a76b0SSuyog Pawar
131*c83a76b0SSuyog Pawar                "-DDEFAULT_ARCH=D_ARCH_ARMV8_GENERIC",
132*c83a76b0SSuyog Pawar            ],
133*c83a76b0SSuyog Pawar            local_include_dirs: [
134*c83a76b0SSuyog Pawar                "common/arm",
135*c83a76b0SSuyog Pawar                "common/arm64",
136*c83a76b0SSuyog Pawar                "decoder/arm",
137*c83a76b0SSuyog Pawar                "decoder/arm64",
138*c83a76b0SSuyog Pawar            ],
139*c83a76b0SSuyog Pawar
140*c83a76b0SSuyog Pawar            srcs: [
141*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_filters_neon_intr.c",
142*c83a76b0SSuyog Pawar                "common/arm/ihevc_weighted_pred_neon_intr.c",
143*c83a76b0SSuyog Pawar                "common/arm64/ihevc_deblk_chroma_horz.s",
144*c83a76b0SSuyog Pawar                "common/arm64/ihevc_deblk_chroma_vert.s",
145*c83a76b0SSuyog Pawar                "common/arm64/ihevc_deblk_luma_horz.s",
146*c83a76b0SSuyog Pawar                "common/arm64/ihevc_deblk_luma_vert.s",
147*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_chroma_copy.s",
148*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_chroma_copy_w16out.s",
149*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_chroma_horz.s",
150*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_chroma_horz_w16out.s",
151*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_chroma_vert.s",
152*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_chroma_vert_w16inp.s",
153*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_chroma_vert_w16inp_w16out.s",
154*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_chroma_vert_w16out.s",
155*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_filters_luma_horz.s",
156*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_filters_luma_vert.s",
157*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_filters_luma_vert_w16inp.s",
158*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_filters_luma_vert_w16out.s",
159*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_luma_copy.s",
160*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_luma_copy_w16out.s",
161*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_luma_horz_w16out.s",
162*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_luma_vert_w16inp_w16out.s",
163*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_chroma_dc.s",
164*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_chroma_horz.s",
165*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_chroma_mode2.s",
166*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_chroma_mode_18_34.s",
167*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_chroma_mode_27_to_33.s",
168*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_chroma_mode_3_to_9.s",
169*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_chroma_planar.s",
170*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_chroma_ver.s",
171*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_filters_chroma_mode_11_to_17.s",
172*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_filters_chroma_mode_19_to_25.s",
173*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_filters_luma_mode_11_to_17.s",
174*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_filters_luma_mode_19_to_25.s",
175*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_luma_dc.s",
176*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_luma_horz.s",
177*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_luma_mode2.s",
178*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_luma_mode_18_34.s",
179*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_luma_mode_27_to_33.s",
180*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_luma_mode_3_to_9.s",
181*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_luma_planar.s",
182*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_luma_vert.s",
183*c83a76b0SSuyog Pawar                "common/arm64/ihevc_itrans_recon_16x16.s",
184*c83a76b0SSuyog Pawar                "common/arm64/ihevc_itrans_recon_32x32.s",
185*c83a76b0SSuyog Pawar                "common/arm64/ihevc_itrans_recon_4x4.s",
186*c83a76b0SSuyog Pawar                "common/arm64/ihevc_itrans_recon_4x4_ttype1.s",
187*c83a76b0SSuyog Pawar                "common/arm64/ihevc_itrans_recon_8x8.s",
188*c83a76b0SSuyog Pawar                "common/arm64/ihevc_mem_fns.s",
189*c83a76b0SSuyog Pawar                "common/arm64/ihevc_padding.s",
190*c83a76b0SSuyog Pawar                "common/arm64/ihevc_sao_band_offset_chroma.s",
191*c83a76b0SSuyog Pawar                "common/arm64/ihevc_sao_band_offset_luma.s",
192*c83a76b0SSuyog Pawar                "common/arm64/ihevc_sao_edge_offset_class0.s",
193*c83a76b0SSuyog Pawar                "common/arm64/ihevc_sao_edge_offset_class0_chroma.s",
194*c83a76b0SSuyog Pawar                "common/arm64/ihevc_sao_edge_offset_class1.s",
195*c83a76b0SSuyog Pawar                "common/arm64/ihevc_sao_edge_offset_class1_chroma.s",
196*c83a76b0SSuyog Pawar                "common/arm64/ihevc_sao_edge_offset_class2.s",
197*c83a76b0SSuyog Pawar                "common/arm64/ihevc_sao_edge_offset_class2_chroma.s",
198*c83a76b0SSuyog Pawar                "common/arm64/ihevc_sao_edge_offset_class3.s",
199*c83a76b0SSuyog Pawar                "common/arm64/ihevc_sao_edge_offset_class3_chroma.s",
200*c83a76b0SSuyog Pawar                "common/arm64/ihevc_weighted_pred_bi.s",
201*c83a76b0SSuyog Pawar                "common/arm64/ihevc_weighted_pred_bi_default.s",
202*c83a76b0SSuyog Pawar                "common/arm64/ihevc_weighted_pred_uni.s",
203*c83a76b0SSuyog Pawar                "decoder/arm/ihevcd_function_selector.c",
204*c83a76b0SSuyog Pawar                "decoder/arm/ihevcd_function_selector_noneon.c",
205*c83a76b0SSuyog Pawar                "decoder/arm64/ihevcd_fmt_conv_420sp_to_420p.s",
206*c83a76b0SSuyog Pawar                "decoder/arm64/ihevcd_fmt_conv_420sp_to_420sp.s",
207*c83a76b0SSuyog Pawar                "decoder/arm64/ihevcd_fmt_conv_420sp_to_rgba8888.s",
208*c83a76b0SSuyog Pawar                "decoder/arm64/ihevcd_function_selector_av8.c",
209*c83a76b0SSuyog Pawar                "decoder/arm64/ihevcd_itrans_recon_dc_chroma.s",
210*c83a76b0SSuyog Pawar                "decoder/arm64/ihevcd_itrans_recon_dc_luma.s",
211*c83a76b0SSuyog Pawar            ],
212*c83a76b0SSuyog Pawar        },
213*c83a76b0SSuyog Pawar
214*c83a76b0SSuyog Pawar        arm: {
215*c83a76b0SSuyog Pawar            local_include_dirs: [
216*c83a76b0SSuyog Pawar                "common/arm",
217*c83a76b0SSuyog Pawar                "decoder/arm",
218*c83a76b0SSuyog Pawar            ],
219*c83a76b0SSuyog Pawar
220*c83a76b0SSuyog Pawar            srcs: [
221*c83a76b0SSuyog Pawar                "decoder/arm/ihevcd_function_selector.c",
222*c83a76b0SSuyog Pawar                "decoder/arm/ihevcd_function_selector_noneon.c",
223*c83a76b0SSuyog Pawar                "common/arm/ihevc_deblk_chroma_horz.s",
224*c83a76b0SSuyog Pawar                "common/arm/ihevc_deblk_chroma_vert.s",
225*c83a76b0SSuyog Pawar                "common/arm/ihevc_deblk_luma_horz.s",
226*c83a76b0SSuyog Pawar                "common/arm/ihevc_deblk_luma_vert.s",
227*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_chroma_copy.s",
228*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_chroma_copy_w16out.s",
229*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_chroma_horz.s",
230*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_chroma_horz_w16out.s",
231*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_chroma_vert.s",
232*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_chroma_vert_w16inp.s",
233*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_chroma_vert_w16inp_w16out.s",
234*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_chroma_vert_w16out.s",
235*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_filters_luma_horz.s",
236*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_filters_luma_vert.s",
237*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_filters_luma_vert_w16inp.s",
238*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_luma_copy.s",
239*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_luma_copy_w16out.s",
240*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_luma_horz_w16out.s",
241*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_luma_vert_w16inp_w16out.s",
242*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_chroma_dc.s",
243*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_chroma_horz.s",
244*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_chroma_mode2.s",
245*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_chroma_mode_18_34.s",
246*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_chroma_mode_27_to_33.s",
247*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_chroma_mode_3_to_9.s",
248*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_chroma_planar.s",
249*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_chroma_ver.s",
250*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_filters_chroma_mode_11_to_17.s",
251*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_filters_chroma_mode_19_to_25.s",
252*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_filters_luma_mode_11_to_17.s",
253*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_filters_luma_mode_19_to_25.s",
254*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_filters_neon_intr.c",
255*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_luma_dc.s",
256*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_luma_horz.s",
257*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_luma_mode2.s",
258*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_luma_mode_18_34.s",
259*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_luma_mode_27_to_33.s",
260*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_luma_mode_3_to_9.s",
261*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_luma_planar.s",
262*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_luma_vert.s",
263*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_ref_substitution_a9q.c",
264*c83a76b0SSuyog Pawar                "common/arm/ihevc_itrans_recon_16x16.s",
265*c83a76b0SSuyog Pawar                "common/arm/ihevc_itrans_recon_32x32.s",
266*c83a76b0SSuyog Pawar                "common/arm/ihevc_itrans_recon_4x4.s",
267*c83a76b0SSuyog Pawar                "common/arm/ihevc_itrans_recon_4x4_ttype1.s",
268*c83a76b0SSuyog Pawar                "common/arm/ihevc_itrans_recon_8x8.s",
269*c83a76b0SSuyog Pawar                "common/arm/ihevc_mem_fns.s",
270*c83a76b0SSuyog Pawar                "common/arm/ihevc_padding.s",
271*c83a76b0SSuyog Pawar                "common/arm/ihevc_sao_band_offset_chroma.s",
272*c83a76b0SSuyog Pawar                "common/arm/ihevc_sao_band_offset_luma.s",
273*c83a76b0SSuyog Pawar                "common/arm/ihevc_sao_edge_offset_class0.s",
274*c83a76b0SSuyog Pawar                "common/arm/ihevc_sao_edge_offset_class0_chroma.s",
275*c83a76b0SSuyog Pawar                "common/arm/ihevc_sao_edge_offset_class1.s",
276*c83a76b0SSuyog Pawar                "common/arm/ihevc_sao_edge_offset_class1_chroma.s",
277*c83a76b0SSuyog Pawar                "common/arm/ihevc_sao_edge_offset_class2.s",
278*c83a76b0SSuyog Pawar                "common/arm/ihevc_sao_edge_offset_class2_chroma.s",
279*c83a76b0SSuyog Pawar                "common/arm/ihevc_sao_edge_offset_class3.s",
280*c83a76b0SSuyog Pawar                "common/arm/ihevc_sao_edge_offset_class3_chroma.s",
281*c83a76b0SSuyog Pawar                "common/arm/ihevc_weighted_pred_bi.s",
282*c83a76b0SSuyog Pawar                "common/arm/ihevc_weighted_pred_bi_default.s",
283*c83a76b0SSuyog Pawar                "common/arm/ihevc_weighted_pred_neon_intr.c",
284*c83a76b0SSuyog Pawar                "common/arm/ihevc_weighted_pred_uni.s",
285*c83a76b0SSuyog Pawar                "decoder/arm/ihevcd_fmt_conv_420sp_to_420p.s",
286*c83a76b0SSuyog Pawar                "decoder/arm/ihevcd_fmt_conv_420sp_to_420sp.s",
287*c83a76b0SSuyog Pawar                "decoder/arm/ihevcd_fmt_conv_420sp_to_rgba8888.s",
288*c83a76b0SSuyog Pawar                "decoder/arm/ihevcd_function_selector_a9q.c",
289*c83a76b0SSuyog Pawar                "decoder/arm/ihevcd_itrans_recon_dc_chroma.s",
290*c83a76b0SSuyog Pawar                "decoder/arm/ihevcd_itrans_recon_dc_luma.s",
291*c83a76b0SSuyog Pawar            ],
292*c83a76b0SSuyog Pawar
293*c83a76b0SSuyog Pawar            cflags: [
294*c83a76b0SSuyog Pawar                // Modules coded with neon intrinsics are not not included in Android Build.
295*c83a76b0SSuyog Pawar                "-DDISABLE_NEONINTR",
296*c83a76b0SSuyog Pawar                "-DARM",
297*c83a76b0SSuyog Pawar                "-DARMGCC",
298*c83a76b0SSuyog Pawar                "-fno-tree-vectorize",
299*c83a76b0SSuyog Pawar                "-DDEFAULT_ARCH=D_ARCH_ARM_A9Q",
300*c83a76b0SSuyog Pawar            ],
301*c83a76b0SSuyog Pawar
302*c83a76b0SSuyog Pawar            instruction_set: "arm",
303*c83a76b0SSuyog Pawar        },
304*c83a76b0SSuyog Pawar
305*c83a76b0SSuyog Pawar        x86_64: {
306*c83a76b0SSuyog Pawar            cflags: [
307*c83a76b0SSuyog Pawar                "-DX86",
308*c83a76b0SSuyog Pawar                "-DDISABLE_AVX2",
309*c83a76b0SSuyog Pawar                "-msse4.2",
310*c83a76b0SSuyog Pawar                "-mno-avx",
311*c83a76b0SSuyog Pawar                "-DDEFAULT_ARCH=D_ARCH_X86_SSE42",
312*c83a76b0SSuyog Pawar            ],
313*c83a76b0SSuyog Pawar
314*c83a76b0SSuyog Pawar            local_include_dirs: [
315*c83a76b0SSuyog Pawar                "common/x86",
316*c83a76b0SSuyog Pawar                "decoder/x86",
317*c83a76b0SSuyog Pawar            ],
318*c83a76b0SSuyog Pawar
319*c83a76b0SSuyog Pawar            srcs: [
320*c83a76b0SSuyog Pawar                "common/x86/ihevc_16x16_itrans_recon_sse42_intr.c",
321*c83a76b0SSuyog Pawar                "common/x86/ihevc_32x32_itrans_recon_sse42_intr.c",
322*c83a76b0SSuyog Pawar                "common/x86/ihevc_chroma_intra_pred_filters_sse42_intr.c",
323*c83a76b0SSuyog Pawar                "common/x86/ihevc_chroma_intra_pred_filters_ssse3_intr.c",
324*c83a76b0SSuyog Pawar                "common/x86/ihevc_deblk_ssse3_intr.c",
325*c83a76b0SSuyog Pawar                "common/x86/ihevc_inter_pred_filters_sse42_intr.c",
326*c83a76b0SSuyog Pawar                "common/x86/ihevc_inter_pred_filters_ssse3_intr.c",
327*c83a76b0SSuyog Pawar                "common/x86/ihevc_intra_pred_filters_sse42_intr.c",
328*c83a76b0SSuyog Pawar                "common/x86/ihevc_intra_pred_filters_ssse3_intr.c",
329*c83a76b0SSuyog Pawar                "common/x86/ihevc_itrans_recon_16x16_ssse3_intr.c",
330*c83a76b0SSuyog Pawar                "common/x86/ihevc_itrans_recon_32x32_ssse3_intr.c",
331*c83a76b0SSuyog Pawar                "common/x86/ihevc_itrans_recon_sse42_intr.c",
332*c83a76b0SSuyog Pawar                "common/x86/ihevc_itrans_recon_ssse3_intr.c",
333*c83a76b0SSuyog Pawar                "common/x86/ihevc_mem_fns_ssse3_intr.c",
334*c83a76b0SSuyog Pawar                "common/x86/ihevc_padding_ssse3_intr.c",
335*c83a76b0SSuyog Pawar                "common/x86/ihevc_sao_ssse3_intr.c",
336*c83a76b0SSuyog Pawar                "common/x86/ihevc_tables_x86_intr.c",
337*c83a76b0SSuyog Pawar                "common/x86/ihevc_weighted_pred_sse42_intr.c",
338*c83a76b0SSuyog Pawar                "common/x86/ihevc_weighted_pred_ssse3_intr.c",
339*c83a76b0SSuyog Pawar                "decoder/x86/ihevcd_fmt_conv_ssse3_intr.c",
340*c83a76b0SSuyog Pawar                "decoder/x86/ihevcd_function_selector.c",
341*c83a76b0SSuyog Pawar                "decoder/x86/ihevcd_function_selector_generic.c",
342*c83a76b0SSuyog Pawar                "decoder/x86/ihevcd_function_selector_sse42.c",
343*c83a76b0SSuyog Pawar                "decoder/x86/ihevcd_function_selector_ssse3.c",
344*c83a76b0SSuyog Pawar                "decoder/x86/ihevcd_it_rec_dc_sse42_intr.c",
345*c83a76b0SSuyog Pawar                "decoder/x86/ihevcd_it_rec_dc_ssse3_intr.c",
346*c83a76b0SSuyog Pawar            ],
347*c83a76b0SSuyog Pawar        },
348*c83a76b0SSuyog Pawar
349*c83a76b0SSuyog Pawar        x86: {
350*c83a76b0SSuyog Pawar            cflags: [
351*c83a76b0SSuyog Pawar                "-DX86",
352*c83a76b0SSuyog Pawar                "-DDISABLE_AVX2",
353*c83a76b0SSuyog Pawar                "-msse4.2",
354*c83a76b0SSuyog Pawar                "-mno-avx",
355*c83a76b0SSuyog Pawar                "-DDEFAULT_ARCH=D_ARCH_X86_SSE42",
356*c83a76b0SSuyog Pawar            ],
357*c83a76b0SSuyog Pawar
358*c83a76b0SSuyog Pawar            local_include_dirs: [
359*c83a76b0SSuyog Pawar                "common/x86",
360*c83a76b0SSuyog Pawar                "decoder/x86",
361*c83a76b0SSuyog Pawar            ],
362*c83a76b0SSuyog Pawar
363*c83a76b0SSuyog Pawar            srcs: [
364*c83a76b0SSuyog Pawar                "common/x86/ihevc_16x16_itrans_recon_sse42_intr.c",
365*c83a76b0SSuyog Pawar                "common/x86/ihevc_32x32_itrans_recon_sse42_intr.c",
366*c83a76b0SSuyog Pawar                "common/x86/ihevc_chroma_intra_pred_filters_sse42_intr.c",
367*c83a76b0SSuyog Pawar                "common/x86/ihevc_chroma_intra_pred_filters_ssse3_intr.c",
368*c83a76b0SSuyog Pawar                "common/x86/ihevc_deblk_ssse3_intr.c",
369*c83a76b0SSuyog Pawar                "common/x86/ihevc_inter_pred_filters_sse42_intr.c",
370*c83a76b0SSuyog Pawar                "common/x86/ihevc_inter_pred_filters_ssse3_intr.c",
371*c83a76b0SSuyog Pawar                "common/x86/ihevc_intra_pred_filters_sse42_intr.c",
372*c83a76b0SSuyog Pawar                "common/x86/ihevc_intra_pred_filters_ssse3_intr.c",
373*c83a76b0SSuyog Pawar                "common/x86/ihevc_itrans_recon_16x16_ssse3_intr.c",
374*c83a76b0SSuyog Pawar                "common/x86/ihevc_itrans_recon_32x32_ssse3_intr.c",
375*c83a76b0SSuyog Pawar                "common/x86/ihevc_itrans_recon_sse42_intr.c",
376*c83a76b0SSuyog Pawar                "common/x86/ihevc_itrans_recon_ssse3_intr.c",
377*c83a76b0SSuyog Pawar                "common/x86/ihevc_mem_fns_ssse3_intr.c",
378*c83a76b0SSuyog Pawar                "common/x86/ihevc_padding_ssse3_intr.c",
379*c83a76b0SSuyog Pawar                "common/x86/ihevc_sao_ssse3_intr.c",
380*c83a76b0SSuyog Pawar                "common/x86/ihevc_tables_x86_intr.c",
381*c83a76b0SSuyog Pawar                "common/x86/ihevc_weighted_pred_sse42_intr.c",
382*c83a76b0SSuyog Pawar                "common/x86/ihevc_weighted_pred_ssse3_intr.c",
383*c83a76b0SSuyog Pawar                "decoder/x86/ihevcd_fmt_conv_ssse3_intr.c",
384*c83a76b0SSuyog Pawar                "decoder/x86/ihevcd_function_selector.c",
385*c83a76b0SSuyog Pawar                "decoder/x86/ihevcd_function_selector_generic.c",
386*c83a76b0SSuyog Pawar                "decoder/x86/ihevcd_function_selector_sse42.c",
387*c83a76b0SSuyog Pawar                "decoder/x86/ihevcd_function_selector_ssse3.c",
388*c83a76b0SSuyog Pawar                "decoder/x86/ihevcd_it_rec_dc_sse42_intr.c",
389*c83a76b0SSuyog Pawar                "decoder/x86/ihevcd_it_rec_dc_ssse3_intr.c",
390*c83a76b0SSuyog Pawar            ],
391*c83a76b0SSuyog Pawar        },
392*c83a76b0SSuyog Pawar        riscv64: {
393*c83a76b0SSuyog Pawar            local_include_dirs: [
394*c83a76b0SSuyog Pawar                "common/riscv64",
395*c83a76b0SSuyog Pawar            ],
396*c83a76b0SSuyog Pawar
397*c83a76b0SSuyog Pawar            srcs: [
398*c83a76b0SSuyog Pawar                "decoder/riscv64/ihevcd_function_selector.c",
399*c83a76b0SSuyog Pawar                "decoder/riscv64/ihevcd_function_selector_generic.c",
400*c83a76b0SSuyog Pawar            ],
401*c83a76b0SSuyog Pawar        },
402*c83a76b0SSuyog Pawar    },
403*c83a76b0SSuyog Pawar
404*c83a76b0SSuyog Pawar    sanitize: {
405*c83a76b0SSuyog Pawar        integer_overflow: true,
406*c83a76b0SSuyog Pawar        misc_undefined: ["bounds"],
407*c83a76b0SSuyog Pawar        // Enable CFI if this becomes a shared library.
408*c83a76b0SSuyog Pawar        cfi: true,
409*c83a76b0SSuyog Pawar        config: {
410*c83a76b0SSuyog Pawar            cfi_assembly_support: true,
411*c83a76b0SSuyog Pawar        },
412*c83a76b0SSuyog Pawar        blocklist: "libhevc_blocklist.txt",
413*c83a76b0SSuyog Pawar    },
414*c83a76b0SSuyog Pawar
415*c83a76b0SSuyog Pawar    apex_available: [
416*c83a76b0SSuyog Pawar        "//apex_available:platform",
417*c83a76b0SSuyog Pawar        "com.android.media.swcodec",
418*c83a76b0SSuyog Pawar    ],
419*c83a76b0SSuyog Pawar    min_sdk_version: "29",
420*c83a76b0SSuyog Pawar}
421*c83a76b0SSuyog Pawar
422*c83a76b0SSuyog Pawarcc_test {
423*c83a76b0SSuyog Pawar    name: "hevcdec",
424*c83a76b0SSuyog Pawar    host_supported: true,
425*c83a76b0SSuyog Pawar    cflags: [
426*c83a76b0SSuyog Pawar        "-DPROFILE_ENABLE",
427*c83a76b0SSuyog Pawar        "-DARM",
428*c83a76b0SSuyog Pawar        "-fPIC",
429*c83a76b0SSuyog Pawar        "-DMD5_DISABLE",
430*c83a76b0SSuyog Pawar        "-Wall",
431*c83a76b0SSuyog Pawar        "-Werror",
432*c83a76b0SSuyog Pawar    ],
433*c83a76b0SSuyog Pawar    gtest: false,
434*c83a76b0SSuyog Pawar    srcs: ["test/decoder/main.c"],
435*c83a76b0SSuyog Pawar    static_libs: ["libhevcdec"],
436*c83a76b0SSuyog Pawar    target: {
437*c83a76b0SSuyog Pawar        darwin: {
438*c83a76b0SSuyog Pawar            enabled: false,
439*c83a76b0SSuyog Pawar        },
440*c83a76b0SSuyog Pawar    },
441*c83a76b0SSuyog Pawar}
442*c83a76b0SSuyog Pawar
443*c83a76b0SSuyog Pawarcc_library_static {
444*c83a76b0SSuyog Pawar    name: "libhevcenc",
445*c83a76b0SSuyog Pawar    vendor_available: true,
446*c83a76b0SSuyog Pawar    host_supported: true,
447*c83a76b0SSuyog Pawar    cflags: [
448*c83a76b0SSuyog Pawar        "-DENABLE_MAIN_REXT_PROFILE",
449*c83a76b0SSuyog Pawar        "-DDISABLE_SEI",
450*c83a76b0SSuyog Pawar        "-fPIC",
451*c83a76b0SSuyog Pawar        "-O3",
452*c83a76b0SSuyog Pawar        "-Wall",
453*c83a76b0SSuyog Pawar        "-Wno-unused-variable",
454*c83a76b0SSuyog Pawar        "-Wno-unused-parameter",
455*c83a76b0SSuyog Pawar    ],
456*c83a76b0SSuyog Pawar
457*c83a76b0SSuyog Pawar    export_include_dirs: [
458*c83a76b0SSuyog Pawar        "common",
459*c83a76b0SSuyog Pawar        "encoder",
460*c83a76b0SSuyog Pawar    ],
461*c83a76b0SSuyog Pawar
462*c83a76b0SSuyog Pawar    srcs: [
463*c83a76b0SSuyog Pawar        "common/ihevc_cabac_tables.c",
464*c83a76b0SSuyog Pawar        "common/ihevc_chroma_intra_pred_filters.c",
465*c83a76b0SSuyog Pawar        "common/ihevc_chroma_itrans_recon.c",
466*c83a76b0SSuyog Pawar        "common/ihevc_chroma_itrans_recon_16x16.c",
467*c83a76b0SSuyog Pawar        "common/ihevc_chroma_itrans_recon_8x8.c",
468*c83a76b0SSuyog Pawar        "common/ihevc_common_tables.c",
469*c83a76b0SSuyog Pawar        "common/ihevc_deblk_edge_filter.c",
470*c83a76b0SSuyog Pawar        "common/ihevc_deblk_tables.c",
471*c83a76b0SSuyog Pawar        "common/ihevc_hbd_deblk_edge_filter.c",
472*c83a76b0SSuyog Pawar        "common/ihevc_inter_pred_filters.c",
473*c83a76b0SSuyog Pawar        "common/ihevc_intra_pred_filters.c",
474*c83a76b0SSuyog Pawar        "common/ihevc_iquant_recon.c",
475*c83a76b0SSuyog Pawar        "common/ihevc_itrans_recon.c",
476*c83a76b0SSuyog Pawar        "common/ihevc_itrans_recon_16x16.c",
477*c83a76b0SSuyog Pawar        "common/ihevc_itrans_recon_32x32.c",
478*c83a76b0SSuyog Pawar        "common/ihevc_itrans_recon_8x8.c",
479*c83a76b0SSuyog Pawar        "common/ihevc_mem_fns.c",
480*c83a76b0SSuyog Pawar        "common/ihevc_padding.c",
481*c83a76b0SSuyog Pawar        "common/ihevc_quant_iquant_ssd.c",
482*c83a76b0SSuyog Pawar        "common/ihevc_quant_tables.c",
483*c83a76b0SSuyog Pawar        "common/ihevc_resi_trans.c",
484*c83a76b0SSuyog Pawar        "common/ihevc_sao.c",
485*c83a76b0SSuyog Pawar        "common/ihevc_trans_tables.c",
486*c83a76b0SSuyog Pawar        "common/ihevc_weighted_pred.c",
487*c83a76b0SSuyog Pawar        "encoder/bit_allocation.c",
488*c83a76b0SSuyog Pawar        "encoder/cbr_buffer_control.c",
489*c83a76b0SSuyog Pawar        "encoder/common_rom.c",
490*c83a76b0SSuyog Pawar        "encoder/convert_float_to_fix.c",
491*c83a76b0SSuyog Pawar        "encoder/est_sad.c",
492*c83a76b0SSuyog Pawar        "encoder/fixed_point_error_bits.c",
493*c83a76b0SSuyog Pawar        "encoder/frame_info_collector.c",
494*c83a76b0SSuyog Pawar        "encoder/hme_coarse.c",
495*c83a76b0SSuyog Pawar        "encoder/hme_common_utils.c",
496*c83a76b0SSuyog Pawar        "encoder/hme_err_compute.c",
497*c83a76b0SSuyog Pawar        "encoder/hme_fullpel.c",
498*c83a76b0SSuyog Pawar        "encoder/hme_function_selector.c",
499*c83a76b0SSuyog Pawar        "encoder/hme_globals.c",
500*c83a76b0SSuyog Pawar        "encoder/hme_interface.c",
501*c83a76b0SSuyog Pawar        "encoder/hme_refine.c",
502*c83a76b0SSuyog Pawar        "encoder/hme_search_algo.c",
503*c83a76b0SSuyog Pawar        "encoder/hme_subpel.c",
504*c83a76b0SSuyog Pawar        "encoder/hme_utils.c",
505*c83a76b0SSuyog Pawar        "encoder/ihevce_bitstream.c",
506*c83a76b0SSuyog Pawar        "encoder/ihevce_bs_compute_ctb.c",
507*c83a76b0SSuyog Pawar        "encoder/ihevce_buffer_que.c",
508*c83a76b0SSuyog Pawar        "encoder/ihevce_cabac.c",
509*c83a76b0SSuyog Pawar        "encoder/ihevce_cabac_cu_pu.c",
510*c83a76b0SSuyog Pawar        "encoder/ihevce_cabac_rdo.c",
511*c83a76b0SSuyog Pawar        "encoder/ihevce_cabac_tu.c",
512*c83a76b0SSuyog Pawar        "encoder/ihevce_chroma_had_satd.c",
513*c83a76b0SSuyog Pawar        "encoder/ihevce_cmn_utils_instr_set_router.c",
514*c83a76b0SSuyog Pawar        "encoder/ihevce_coarse_me_pass.c",
515*c83a76b0SSuyog Pawar        "encoder/ihevce_common_utils.c",
516*c83a76b0SSuyog Pawar        "encoder/ihevce_deblk.c",
517*c83a76b0SSuyog Pawar        "encoder/ihevce_decomp_pre_intra_pass.c",
518*c83a76b0SSuyog Pawar        "encoder/ihevce_dep_mngr.c",
519*c83a76b0SSuyog Pawar        "encoder/ihevce_enc_cu_recursion.c",
520*c83a76b0SSuyog Pawar        "encoder/ihevce_enc_loop_inter_mode_sifter.c",
521*c83a76b0SSuyog Pawar        "encoder/ihevce_enc_loop_pass.c",
522*c83a76b0SSuyog Pawar        "encoder/ihevce_enc_loop_utils.c",
523*c83a76b0SSuyog Pawar        "encoder/ihevce_enc_sbh_funcs.c",
524*c83a76b0SSuyog Pawar        "encoder/ihevce_enc_subpel_gen.c",
525*c83a76b0SSuyog Pawar        "encoder/ihevce_encode_header.c",
526*c83a76b0SSuyog Pawar        "encoder/ihevce_encode_header_sei_vui.c",
527*c83a76b0SSuyog Pawar        "encoder/ihevce_entropy_cod.c",
528*c83a76b0SSuyog Pawar        "encoder/ihevce_entropy_interface.c",
529*c83a76b0SSuyog Pawar        "encoder/ihevce_error_check.c",
530*c83a76b0SSuyog Pawar        "encoder/ihevce_frame_process.c",
531*c83a76b0SSuyog Pawar        "encoder/ihevce_frame_process_utils.c",
532*c83a76b0SSuyog Pawar        "encoder/ihevce_function_selector.c",
533*c83a76b0SSuyog Pawar        "encoder/ihevce_global_tables.c",
534*c83a76b0SSuyog Pawar        "encoder/ihevce_had_satd.c",
535*c83a76b0SSuyog Pawar        "encoder/ihevce_hle_interface.c",
536*c83a76b0SSuyog Pawar        "encoder/ihevce_hle_q_func.c",
537*c83a76b0SSuyog Pawar        "encoder/ihevce_inter_pred.c",
538*c83a76b0SSuyog Pawar        "encoder/ihevce_ipe_instr_set_router.c",
539*c83a76b0SSuyog Pawar        "encoder/ihevce_ipe_pass.c",
540*c83a76b0SSuyog Pawar        "encoder/ihevce_lap_interface.c",
541*c83a76b0SSuyog Pawar        "encoder/ihevce_me_instr_set_router.c",
542*c83a76b0SSuyog Pawar        "encoder/ihevce_me_pass.c",
543*c83a76b0SSuyog Pawar        "encoder/ihevce_memory_init.c",
544*c83a76b0SSuyog Pawar        "encoder/ihevce_multi_thrd_funcs.c",
545*c83a76b0SSuyog Pawar        "encoder/ihevce_mv_pred.c",
546*c83a76b0SSuyog Pawar        "encoder/ihevce_mv_pred_merge.c",
547*c83a76b0SSuyog Pawar        "encoder/ihevce_nbr_avail.c",
548*c83a76b0SSuyog Pawar        "encoder/ihevce_plugin.c",
549*c83a76b0SSuyog Pawar        "encoder/ihevce_profile.c",
550*c83a76b0SSuyog Pawar        "encoder/ihevce_rc_interface.c",
551*c83a76b0SSuyog Pawar        "encoder/ihevce_recur_bracketing.c",
552*c83a76b0SSuyog Pawar        "encoder/ihevce_sao.c",
553*c83a76b0SSuyog Pawar        "encoder/ihevce_stasino_helpers.c",
554*c83a76b0SSuyog Pawar        "encoder/ihevce_sub_pic_rc.c",
555*c83a76b0SSuyog Pawar        "encoder/ihevce_sys_api.c",
556*c83a76b0SSuyog Pawar        "encoder/ihevce_tile_interface.c",
557*c83a76b0SSuyog Pawar        "encoder/ihevce_trace.c",
558*c83a76b0SSuyog Pawar        "encoder/ihevce_tu_tree_selector.c",
559*c83a76b0SSuyog Pawar        "encoder/init_qp.c",
560*c83a76b0SSuyog Pawar        "encoder/mb_model_based.c",
561*c83a76b0SSuyog Pawar        "encoder/osal.c",
562*c83a76b0SSuyog Pawar        "encoder/osal_cond_var.c",
563*c83a76b0SSuyog Pawar        "encoder/osal_error.c",
564*c83a76b0SSuyog Pawar        "encoder/osal_mutex.c",
565*c83a76b0SSuyog Pawar        "encoder/osal_semaphore.c",
566*c83a76b0SSuyog Pawar        "encoder/osal_thread.c",
567*c83a76b0SSuyog Pawar        "encoder/picture_type.c",
568*c83a76b0SSuyog Pawar        "encoder/rate_control_api.c",
569*c83a76b0SSuyog Pawar        "encoder/rc_rd_model.c",
570*c83a76b0SSuyog Pawar        "encoder/rc_rd_model_fix.c",
571*c83a76b0SSuyog Pawar        "encoder/rc_sad_acc.c",
572*c83a76b0SSuyog Pawar        "encoder/sqrt_interp.c",
573*c83a76b0SSuyog Pawar        "encoder/var_q_operator.c",
574*c83a76b0SSuyog Pawar        "encoder/vbr_storage_vbv.c",
575*c83a76b0SSuyog Pawar        "encoder/vbr_str_prms.c",
576*c83a76b0SSuyog Pawar    ],
577*c83a76b0SSuyog Pawar
578*c83a76b0SSuyog Pawar    arch: {
579*c83a76b0SSuyog Pawar        arm64: {
580*c83a76b0SSuyog Pawar
581*c83a76b0SSuyog Pawar            local_include_dirs: [
582*c83a76b0SSuyog Pawar                "common/arm",
583*c83a76b0SSuyog Pawar                "common/arm64",
584*c83a76b0SSuyog Pawar                "encoder/arm",
585*c83a76b0SSuyog Pawar            ],
586*c83a76b0SSuyog Pawar
587*c83a76b0SSuyog Pawar            srcs: [
588*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_filters_neon_intr.c",
589*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_ref_substitution_a9q.c",
590*c83a76b0SSuyog Pawar                "common/arm/ihevc_quant_iquant_ssd_neon_intr.c",
591*c83a76b0SSuyog Pawar                "common/arm/ihevc_resi_trans_neon.c",
592*c83a76b0SSuyog Pawar                "common/arm/ihevc_resi_trans_neon_32x32.c",
593*c83a76b0SSuyog Pawar                "common/arm/ihevc_weighted_pred_neon_intr.c",
594*c83a76b0SSuyog Pawar                "common/arm64/ihevc_deblk_chroma_horz.s",
595*c83a76b0SSuyog Pawar                "common/arm64/ihevc_deblk_chroma_vert.s",
596*c83a76b0SSuyog Pawar                "common/arm64/ihevc_deblk_luma_horz.s",
597*c83a76b0SSuyog Pawar                "common/arm64/ihevc_deblk_luma_vert.s",
598*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_chroma_copy.s",
599*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_chroma_copy_w16out.s",
600*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_chroma_horz.s",
601*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_chroma_horz_w16out.s",
602*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_chroma_vert.s",
603*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_chroma_vert_w16inp.s",
604*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_chroma_vert_w16inp_w16out.s",
605*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_chroma_vert_w16out.s",
606*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_filters_luma_horz.s",
607*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_filters_luma_vert.s",
608*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_filters_luma_vert_w16inp.s",
609*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_filters_luma_vert_w16out.s",
610*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_luma_copy.s",
611*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_luma_copy_w16out.s",
612*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_luma_horz_w16out.s",
613*c83a76b0SSuyog Pawar                "common/arm64/ihevc_inter_pred_luma_vert_w16inp_w16out.s",
614*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_chroma_dc.s",
615*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_chroma_horz.s",
616*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_chroma_mode2.s",
617*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_chroma_mode_18_34.s",
618*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_chroma_mode_27_to_33.s",
619*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_chroma_mode_3_to_9.s",
620*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_chroma_planar.s",
621*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_chroma_ver.s",
622*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_filters_chroma_mode_11_to_17.s",
623*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_filters_chroma_mode_19_to_25.s",
624*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_filters_luma_mode_11_to_17.s",
625*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_filters_luma_mode_19_to_25.s",
626*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_luma_dc.s",
627*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_luma_horz.s",
628*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_luma_mode2.s",
629*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_luma_mode_18_34.s",
630*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_luma_mode_27_to_33.s",
631*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_luma_mode_3_to_9.s",
632*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_luma_planar.s",
633*c83a76b0SSuyog Pawar                "common/arm64/ihevc_intra_pred_luma_vert.s",
634*c83a76b0SSuyog Pawar                "common/arm64/ihevc_itrans_recon_16x16.s",
635*c83a76b0SSuyog Pawar                "common/arm64/ihevc_itrans_recon_32x32.s",
636*c83a76b0SSuyog Pawar                "common/arm64/ihevc_itrans_recon_4x4.s",
637*c83a76b0SSuyog Pawar                "common/arm64/ihevc_itrans_recon_4x4_ttype1.s",
638*c83a76b0SSuyog Pawar                "common/arm64/ihevc_itrans_recon_8x8.s",
639*c83a76b0SSuyog Pawar                "common/arm64/ihevc_mem_fns.s",
640*c83a76b0SSuyog Pawar                "common/arm64/ihevc_padding.s",
641*c83a76b0SSuyog Pawar                "common/arm64/ihevc_sao_band_offset_chroma.s",
642*c83a76b0SSuyog Pawar                "common/arm64/ihevc_sao_band_offset_luma.s",
643*c83a76b0SSuyog Pawar                "common/arm64/ihevc_sao_edge_offset_class0.s",
644*c83a76b0SSuyog Pawar                "common/arm64/ihevc_sao_edge_offset_class0_chroma.s",
645*c83a76b0SSuyog Pawar                "common/arm64/ihevc_sao_edge_offset_class1.s",
646*c83a76b0SSuyog Pawar                "common/arm64/ihevc_sao_edge_offset_class1_chroma.s",
647*c83a76b0SSuyog Pawar                "common/arm64/ihevc_sao_edge_offset_class2.s",
648*c83a76b0SSuyog Pawar                "common/arm64/ihevc_sao_edge_offset_class2_chroma.s",
649*c83a76b0SSuyog Pawar                "common/arm64/ihevc_sao_edge_offset_class3.s",
650*c83a76b0SSuyog Pawar                "common/arm64/ihevc_sao_edge_offset_class3_chroma.s",
651*c83a76b0SSuyog Pawar                "common/arm64/ihevc_weighted_pred_bi.s",
652*c83a76b0SSuyog Pawar                "common/arm64/ihevc_weighted_pred_bi_default.s",
653*c83a76b0SSuyog Pawar                "common/arm64/ihevc_weighted_pred_uni.s",
654*c83a76b0SSuyog Pawar                "encoder/arm/ihevce_coarse_layer_sad_neon.c",
655*c83a76b0SSuyog Pawar                "encoder/arm/ihevce_common_utils_neon.c",
656*c83a76b0SSuyog Pawar                "encoder/arm/ihevce_copy_neon.c",
657*c83a76b0SSuyog Pawar                "encoder/arm/ihevce_had_compute_neon.c",
658*c83a76b0SSuyog Pawar                "encoder/arm/ihevce_hme_utils_neon.c",
659*c83a76b0SSuyog Pawar                "encoder/arm/ihevce_itrans_recon_neon.c",
660*c83a76b0SSuyog Pawar                "encoder/arm/ihevce_me_neon.c",
661*c83a76b0SSuyog Pawar                "encoder/arm/ihevce_sad_compute_neon.c",
662*c83a76b0SSuyog Pawar                "encoder/arm/ihevce_scale_by_2_neon.c",
663*c83a76b0SSuyog Pawar                "encoder/arm/ihevce_scan_coeffs_neon.c",
664*c83a76b0SSuyog Pawar                "encoder/arm/ihevce_ssd_and_sad_calculator_neon.c",
665*c83a76b0SSuyog Pawar                "encoder/arm/ihevce_ssd_calculator_neon.c",
666*c83a76b0SSuyog Pawar                "encoder/arm/ihevce_subpel_neon.c",
667*c83a76b0SSuyog Pawar            ],
668*c83a76b0SSuyog Pawar
669*c83a76b0SSuyog Pawar            cflags: [
670*c83a76b0SSuyog Pawar                "-DENABLE_NEON",
671*c83a76b0SSuyog Pawar                "-DARMV8",
672*c83a76b0SSuyog Pawar                "-DARM",
673*c83a76b0SSuyog Pawar            ],
674*c83a76b0SSuyog Pawar        },
675*c83a76b0SSuyog Pawar
676*c83a76b0SSuyog Pawar        arm: {
677*c83a76b0SSuyog Pawar            local_include_dirs: [
678*c83a76b0SSuyog Pawar                "common/arm",
679*c83a76b0SSuyog Pawar                "encoder/arm",
680*c83a76b0SSuyog Pawar            ],
681*c83a76b0SSuyog Pawar
682*c83a76b0SSuyog Pawar            srcs: [
683*c83a76b0SSuyog Pawar                "common/arm/ihevc_deblk_chroma_horz.s",
684*c83a76b0SSuyog Pawar                "common/arm/ihevc_deblk_chroma_vert.s",
685*c83a76b0SSuyog Pawar                "common/arm/ihevc_deblk_luma_horz.s",
686*c83a76b0SSuyog Pawar                "common/arm/ihevc_deblk_luma_vert.s",
687*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_chroma_copy.s",
688*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_chroma_copy_w16out.s",
689*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_chroma_horz.s",
690*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_chroma_horz_w16out.s",
691*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_chroma_vert.s",
692*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_chroma_vert_w16inp.s",
693*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_chroma_vert_w16inp_w16out.s",
694*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_chroma_vert_w16out.s",
695*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_filters_luma_horz.s",
696*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_filters_luma_vert.s",
697*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_filters_luma_vert_w16inp.s",
698*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_luma_copy.s",
699*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_luma_copy_w16out.s",
700*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_luma_horz_w16out.s",
701*c83a76b0SSuyog Pawar                "common/arm/ihevc_inter_pred_luma_vert_w16inp_w16out.s",
702*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_chroma_dc.s",
703*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_chroma_horz.s",
704*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_chroma_mode2.s",
705*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_chroma_mode_18_34.s",
706*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_chroma_mode_27_to_33.s",
707*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_chroma_mode_3_to_9.s",
708*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_chroma_planar.s",
709*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_chroma_ver.s",
710*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_filters_chroma_mode_11_to_17.s",
711*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_filters_chroma_mode_19_to_25.s",
712*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_filters_luma_mode_11_to_17.s",
713*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_filters_luma_mode_19_to_25.s",
714*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_filters_neon_intr.c",
715*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_luma_dc.s",
716*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_luma_horz.s",
717*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_luma_mode2.s",
718*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_luma_mode_18_34.s",
719*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_luma_mode_27_to_33.s",
720*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_luma_mode_3_to_9.s",
721*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_luma_planar.s",
722*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_pred_luma_vert.s",
723*c83a76b0SSuyog Pawar                "common/arm/ihevc_intra_ref_substitution_a9q.c",
724*c83a76b0SSuyog Pawar                "common/arm/ihevc_itrans_recon_16x16.s",
725*c83a76b0SSuyog Pawar                "common/arm/ihevc_itrans_recon_32x32.s",
726*c83a76b0SSuyog Pawar                "common/arm/ihevc_itrans_recon_4x4.s",
727*c83a76b0SSuyog Pawar                "common/arm/ihevc_itrans_recon_4x4_ttype1.s",
728*c83a76b0SSuyog Pawar                "common/arm/ihevc_itrans_recon_8x8.s",
729*c83a76b0SSuyog Pawar                "common/arm/ihevc_mem_fns.s",
730*c83a76b0SSuyog Pawar                "common/arm/ihevc_padding.s",
731*c83a76b0SSuyog Pawar                "common/arm/ihevc_quant_iquant_ssd_neon_intr.c",
732*c83a76b0SSuyog Pawar                "common/arm/ihevc_resi_trans.s",
733*c83a76b0SSuyog Pawar                "common/arm/ihevc_resi_trans_32x32_a9q.s",
734*c83a76b0SSuyog Pawar                "common/arm/ihevc_resi_trans_neon.c",
735*c83a76b0SSuyog Pawar                "common/arm/ihevc_resi_trans_neon_32x32.c",
736*c83a76b0SSuyog Pawar                "common/arm/ihevc_sao_band_offset_chroma.s",
737*c83a76b0SSuyog Pawar                "common/arm/ihevc_sao_band_offset_luma.s",
738*c83a76b0SSuyog Pawar                "common/arm/ihevc_sao_edge_offset_class0.s",
739*c83a76b0SSuyog Pawar                "common/arm/ihevc_sao_edge_offset_class0_chroma.s",
740*c83a76b0SSuyog Pawar                "common/arm/ihevc_sao_edge_offset_class1.s",
741*c83a76b0SSuyog Pawar                "common/arm/ihevc_sao_edge_offset_class1_chroma.s",
742*c83a76b0SSuyog Pawar                "common/arm/ihevc_sao_edge_offset_class2.s",
743*c83a76b0SSuyog Pawar                "common/arm/ihevc_sao_edge_offset_class2_chroma.s",
744*c83a76b0SSuyog Pawar                "common/arm/ihevc_sao_edge_offset_class3.s",
745*c83a76b0SSuyog Pawar                "common/arm/ihevc_sao_edge_offset_class3_chroma.s",
746*c83a76b0SSuyog Pawar                "common/arm/ihevc_weighted_pred_bi.s",
747*c83a76b0SSuyog Pawar                "common/arm/ihevc_weighted_pred_bi_default.s",
748*c83a76b0SSuyog Pawar                "common/arm/ihevc_weighted_pred_neon_intr.c",
749*c83a76b0SSuyog Pawar                "common/arm/ihevc_weighted_pred_uni.s",
750*c83a76b0SSuyog Pawar                "encoder/arm/ihevce_coarse_layer_sad_neon.c",
751*c83a76b0SSuyog Pawar                "encoder/arm/ihevce_common_utils_neon.c",
752*c83a76b0SSuyog Pawar                "encoder/arm/ihevce_copy_neon.c",
753*c83a76b0SSuyog Pawar                "encoder/arm/ihevce_had_compute_neon.c",
754*c83a76b0SSuyog Pawar                "encoder/arm/ihevce_hme_utils_neon.c",
755*c83a76b0SSuyog Pawar                "encoder/arm/ihevce_itrans_recon_neon.c",
756*c83a76b0SSuyog Pawar                "encoder/arm/ihevce_me_neon.c",
757*c83a76b0SSuyog Pawar                "encoder/arm/ihevce_sad_compute_neon.c",
758*c83a76b0SSuyog Pawar                "encoder/arm/ihevce_scale_by_2_neon.c",
759*c83a76b0SSuyog Pawar                "encoder/arm/ihevce_scan_coeffs_neon.c",
760*c83a76b0SSuyog Pawar                "encoder/arm/ihevce_ssd_and_sad_calculator_neon.c",
761*c83a76b0SSuyog Pawar                "encoder/arm/ihevce_ssd_calculator_neon.c",
762*c83a76b0SSuyog Pawar                "encoder/arm/ihevce_subpel_neon.c",
763*c83a76b0SSuyog Pawar            ],
764*c83a76b0SSuyog Pawar
765*c83a76b0SSuyog Pawar            cflags: [
766*c83a76b0SSuyog Pawar                "-DENABLE_NEON",
767*c83a76b0SSuyog Pawar                "-DARM",
768*c83a76b0SSuyog Pawar            ],
769*c83a76b0SSuyog Pawar            instruction_set: "arm",
770*c83a76b0SSuyog Pawar        },
771*c83a76b0SSuyog Pawar
772*c83a76b0SSuyog Pawar        x86_64: {
773*c83a76b0SSuyog Pawar            local_include_dirs: [
774*c83a76b0SSuyog Pawar                "common/x86",
775*c83a76b0SSuyog Pawar            ],
776*c83a76b0SSuyog Pawar        },
777*c83a76b0SSuyog Pawar
778*c83a76b0SSuyog Pawar        x86: {
779*c83a76b0SSuyog Pawar            local_include_dirs: [
780*c83a76b0SSuyog Pawar                "common/x86",
781*c83a76b0SSuyog Pawar            ],
782*c83a76b0SSuyog Pawar        },
783*c83a76b0SSuyog Pawar
784*c83a76b0SSuyog Pawar        riscv64: {
785*c83a76b0SSuyog Pawar            local_include_dirs: [
786*c83a76b0SSuyog Pawar                "common/riscv64",
787*c83a76b0SSuyog Pawar            ],
788*c83a76b0SSuyog Pawar        },
789*c83a76b0SSuyog Pawar    },
790*c83a76b0SSuyog Pawar    sanitize: {
791*c83a76b0SSuyog Pawar        integer_overflow: true,
792*c83a76b0SSuyog Pawar        misc_undefined: ["bounds"],
793*c83a76b0SSuyog Pawar        // Enable CFI if this becomes a shared library.
794*c83a76b0SSuyog Pawar        cfi: true,
795*c83a76b0SSuyog Pawar        config: {
796*c83a76b0SSuyog Pawar            cfi_assembly_support: true,
797*c83a76b0SSuyog Pawar        },
798*c83a76b0SSuyog Pawar        blocklist: "libhevc_blocklist.txt",
799*c83a76b0SSuyog Pawar    },
800*c83a76b0SSuyog Pawar
801*c83a76b0SSuyog Pawar    apex_available: [
802*c83a76b0SSuyog Pawar        "//apex_available:platform",
803*c83a76b0SSuyog Pawar        "com.android.media.swcodec",
804*c83a76b0SSuyog Pawar    ],
805*c83a76b0SSuyog Pawar    min_sdk_version: "29",
806*c83a76b0SSuyog Pawar}
807*c83a76b0SSuyog Pawar
808*c83a76b0SSuyog Pawarcc_test {
809*c83a76b0SSuyog Pawar    name: "hevcenc",
810*c83a76b0SSuyog Pawar    host_supported: true,
811*c83a76b0SSuyog Pawar    cflags: [
812*c83a76b0SSuyog Pawar        "-DARM",
813*c83a76b0SSuyog Pawar        "-fPIC",
814*c83a76b0SSuyog Pawar        "-Wall",
815*c83a76b0SSuyog Pawar        "-Werror",
816*c83a76b0SSuyog Pawar    ],
817*c83a76b0SSuyog Pawar    gtest: false,
818*c83a76b0SSuyog Pawar    srcs: ["test/encoder/main.c"],
819*c83a76b0SSuyog Pawar    static_libs: ["libhevcenc"],
820*c83a76b0SSuyog Pawar    sanitize: {
821*c83a76b0SSuyog Pawar        integer_overflow: true,
822*c83a76b0SSuyog Pawar        misc_undefined: ["bounds"],
823*c83a76b0SSuyog Pawar    },
824*c83a76b0SSuyog Pawar}
825