xref: /aosp_15_r20/external/libmpeg2/Android.bp (revision a97c2a1f0a796dc32bed80d3353c69c5fc07c750)
1*a97c2a1fSXin Lipackage {
2*a97c2a1fSXin Li    default_applicable_licenses: ["external_libmpeg2_license"],
3*a97c2a1fSXin Li}
4*a97c2a1fSXin Li
5*a97c2a1fSXin Li// Added automatically by a large-scale-change
6*a97c2a1fSXin Li// See: http://go/android-license-faq
7*a97c2a1fSXin Lilicense {
8*a97c2a1fSXin Li    name: "external_libmpeg2_license",
9*a97c2a1fSXin Li    visibility: [":__subpackages__"],
10*a97c2a1fSXin Li    license_kinds: [
11*a97c2a1fSXin Li        "SPDX-license-identifier-Apache-2.0",
12*a97c2a1fSXin Li    ],
13*a97c2a1fSXin Li    license_text: [
14*a97c2a1fSXin Li        "NOTICE",
15*a97c2a1fSXin Li    ],
16*a97c2a1fSXin Li}
17*a97c2a1fSXin Li
18*a97c2a1fSXin Licc_library_static {
19*a97c2a1fSXin Li    name: "libmpeg2dec",
20*a97c2a1fSXin Li    vendor_available: true,
21*a97c2a1fSXin Li    host_supported: true,
22*a97c2a1fSXin Li    shared_libs: [
23*a97c2a1fSXin Li        "liblog",
24*a97c2a1fSXin Li        "libcutils",
25*a97c2a1fSXin Li    ],
26*a97c2a1fSXin Li
27*a97c2a1fSXin Li    cflags: [
28*a97c2a1fSXin Li        "-D_LIB",
29*a97c2a1fSXin Li        "-DMULTICORE",
30*a97c2a1fSXin Li        "-fPIC",
31*a97c2a1fSXin Li
32*a97c2a1fSXin Li        "-O3",
33*a97c2a1fSXin Li        "-DANDROID",
34*a97c2a1fSXin Li        "-Werror",
35*a97c2a1fSXin Li        // #KEEP_THREAD_ACTIVE is experimental
36*a97c2a1fSXin Li        "-UKEEP_THREADS_ACTIVE",
37*a97c2a1fSXin Li    ],
38*a97c2a1fSXin Li
39*a97c2a1fSXin Li    export_include_dirs: [
40*a97c2a1fSXin Li        "common",
41*a97c2a1fSXin Li        "decoder",
42*a97c2a1fSXin Li    ],
43*a97c2a1fSXin Li
44*a97c2a1fSXin Li    srcs: [
45*a97c2a1fSXin Li        "common/icv_sad.c",
46*a97c2a1fSXin Li        "common/icv_variance.c",
47*a97c2a1fSXin Li        "common/ideint.c",
48*a97c2a1fSXin Li        "common/ideint_cac.c",
49*a97c2a1fSXin Li        "common/ideint_debug.c",
50*a97c2a1fSXin Li        "common/ideint_function_selector_generic.c",
51*a97c2a1fSXin Li        "common/ideint_utils.c",
52*a97c2a1fSXin Li        "common/impeg2_buf_mgr.c",
53*a97c2a1fSXin Li        "common/impeg2_disp_mgr.c",
54*a97c2a1fSXin Li        "common/impeg2_format_conv.c",
55*a97c2a1fSXin Li        "common/impeg2_globals.c",
56*a97c2a1fSXin Li        "common/impeg2_idct.c",
57*a97c2a1fSXin Li        "common/impeg2_inter_pred.c",
58*a97c2a1fSXin Li        "common/impeg2_job_queue.c",
59*a97c2a1fSXin Li        "common/impeg2_mem_func.c",
60*a97c2a1fSXin Li        "common/ithread.c",
61*a97c2a1fSXin Li        "decoder/impeg2d_api_main.c",
62*a97c2a1fSXin Li        "decoder/impeg2d_bitstream.c",
63*a97c2a1fSXin Li        "decoder/impeg2d_d_pic.c",
64*a97c2a1fSXin Li        "decoder/impeg2d_debug.c",
65*a97c2a1fSXin Li        "decoder/impeg2d_dec_hdr.c",
66*a97c2a1fSXin Li        "decoder/impeg2d_decoder.c",
67*a97c2a1fSXin Li        "decoder/impeg2d_deinterlace.c",
68*a97c2a1fSXin Li        "decoder/impeg2d_function_selector_generic.c",
69*a97c2a1fSXin Li        "decoder/impeg2d_globals.c",
70*a97c2a1fSXin Li        "decoder/impeg2d_i_pic.c",
71*a97c2a1fSXin Li        "decoder/impeg2d_mc.c",
72*a97c2a1fSXin Li        "decoder/impeg2d_mv_dec.c",
73*a97c2a1fSXin Li        "decoder/impeg2d_pic_proc.c",
74*a97c2a1fSXin Li        "decoder/impeg2d_pnb_pic.c",
75*a97c2a1fSXin Li        "decoder/impeg2d_vld.c",
76*a97c2a1fSXin Li        "decoder/impeg2d_vld_tables.c",
77*a97c2a1fSXin Li    ],
78*a97c2a1fSXin Li
79*a97c2a1fSXin Li    arch: {
80*a97c2a1fSXin Li        arm: {
81*a97c2a1fSXin Li            local_include_dirs: [
82*a97c2a1fSXin Li                "common/arm",
83*a97c2a1fSXin Li                "decoder/arm",
84*a97c2a1fSXin Li            ],
85*a97c2a1fSXin Li
86*a97c2a1fSXin Li            srcs: [
87*a97c2a1fSXin Li                "common/arm/ideint_function_selector.c",
88*a97c2a1fSXin Li                "decoder/arm/impeg2d_function_selector.c",
89*a97c2a1fSXin Li                "common/arm/icv_sad_a9.s",
90*a97c2a1fSXin Li                "common/arm/icv_variance_a9.s",
91*a97c2a1fSXin Li                "common/arm/ideint_cac_a9.s",
92*a97c2a1fSXin Li                "common/arm/ideint_function_selector_a9.c",
93*a97c2a1fSXin Li                "common/arm/ideint_spatial_filter_a9.s",
94*a97c2a1fSXin Li                "common/arm/impeg2_format_conv.s",
95*a97c2a1fSXin Li                "common/arm/impeg2_idct.s",
96*a97c2a1fSXin Li                "common/arm/impeg2_inter_pred.s",
97*a97c2a1fSXin Li                "common/arm/impeg2_mem_func.s",
98*a97c2a1fSXin Li                "decoder/arm/impeg2d_function_selector_a9q.c",
99*a97c2a1fSXin Li            ],
100*a97c2a1fSXin Li
101*a97c2a1fSXin Li            cflags: [
102*a97c2a1fSXin Li                "-DARM",
103*a97c2a1fSXin Li                "-DDEFAULT_ARCH=D_ARCH_ARM_A9Q",
104*a97c2a1fSXin Li            ],
105*a97c2a1fSXin Li            instruction_set: "arm",
106*a97c2a1fSXin Li        },
107*a97c2a1fSXin Li
108*a97c2a1fSXin Li        arm64: {
109*a97c2a1fSXin Li            cflags: [
110*a97c2a1fSXin Li                "-DARMV8",
111*a97c2a1fSXin Li                "-DARM",
112*a97c2a1fSXin Li                "-DDEFAULT_ARCH=D_ARCH_ARMV8_GENERIC",
113*a97c2a1fSXin Li            ],
114*a97c2a1fSXin Li            local_include_dirs: [
115*a97c2a1fSXin Li                "common/armv8",
116*a97c2a1fSXin Li                "decoder/arm",
117*a97c2a1fSXin Li            ],
118*a97c2a1fSXin Li
119*a97c2a1fSXin Li            srcs: [
120*a97c2a1fSXin Li                "common/arm/ideint_function_selector.c",
121*a97c2a1fSXin Li                "common/arm/ideint_function_selector_av8.c",
122*a97c2a1fSXin Li                "common/armv8/icv_sad_av8.s",
123*a97c2a1fSXin Li                "common/armv8/icv_variance_av8.s",
124*a97c2a1fSXin Li                "common/armv8/ideint_cac_av8.s",
125*a97c2a1fSXin Li                "common/armv8/ideint_spatial_filter_av8.s",
126*a97c2a1fSXin Li                "common/armv8/impeg2_format_conv.s",
127*a97c2a1fSXin Li                "common/armv8/impeg2_idct.s",
128*a97c2a1fSXin Li                "common/armv8/impeg2_inter_pred.s",
129*a97c2a1fSXin Li                "common/armv8/impeg2_mem_func.s",
130*a97c2a1fSXin Li                "common/armv8/impeg2_neon_macros.s",
131*a97c2a1fSXin Li                "decoder/arm/impeg2d_function_selector.c",
132*a97c2a1fSXin Li                "decoder/arm/impeg2d_function_selector_av8.c",
133*a97c2a1fSXin Li            ],
134*a97c2a1fSXin Li        },
135*a97c2a1fSXin Li
136*a97c2a1fSXin Li        riscv64: {
137*a97c2a1fSXin Li            local_include_dirs: [
138*a97c2a1fSXin Li                "common/riscv",
139*a97c2a1fSXin Li            ],
140*a97c2a1fSXin Li
141*a97c2a1fSXin Li            srcs: [
142*a97c2a1fSXin Li                "common/riscv/ideint_function_selector.c",
143*a97c2a1fSXin Li                "decoder/riscv/impeg2d_function_selector.c",
144*a97c2a1fSXin Li            ],
145*a97c2a1fSXin Li        },
146*a97c2a1fSXin Li
147*a97c2a1fSXin Li        x86: {
148*a97c2a1fSXin Li            cflags: [
149*a97c2a1fSXin Li                "-DX86",
150*a97c2a1fSXin Li                "-DDISABLE_AVX2",
151*a97c2a1fSXin Li                "-msse4.2",
152*a97c2a1fSXin Li                "-mno-avx",
153*a97c2a1fSXin Li                "-DDEFAULT_ARCH=D_ARCH_X86_SSE42",
154*a97c2a1fSXin Li            ],
155*a97c2a1fSXin Li
156*a97c2a1fSXin Li            local_include_dirs: [
157*a97c2a1fSXin Li                "common/x86",
158*a97c2a1fSXin Li                "decoder/x86",
159*a97c2a1fSXin Li            ],
160*a97c2a1fSXin Li
161*a97c2a1fSXin Li            srcs: [
162*a97c2a1fSXin Li                "common/x86/icv_sad_ssse3.c",
163*a97c2a1fSXin Li                "common/x86/icv_variance_ssse3.c",
164*a97c2a1fSXin Li                "common/x86/ideint_cac_ssse3.c",
165*a97c2a1fSXin Li                "common/x86/ideint_function_selector.c",
166*a97c2a1fSXin Li                "common/x86/ideint_function_selector_sse42.c",
167*a97c2a1fSXin Li                "common/x86/ideint_function_selector_ssse3.c",
168*a97c2a1fSXin Li                "common/x86/ideint_spatial_filter_ssse3.c",
169*a97c2a1fSXin Li                "common/x86/impeg2_idct_recon_sse42_intr.c",
170*a97c2a1fSXin Li                "common/x86/impeg2_inter_pred_sse42_intr.c",
171*a97c2a1fSXin Li                "common/x86/impeg2_mem_func_sse42_intr.c",
172*a97c2a1fSXin Li                "decoder/x86/impeg2d_function_selector.c",
173*a97c2a1fSXin Li                "decoder/x86/impeg2d_function_selector_avx2.c",
174*a97c2a1fSXin Li                "decoder/x86/impeg2d_function_selector_sse42.c",
175*a97c2a1fSXin Li                "decoder/x86/impeg2d_function_selector_ssse3.c",
176*a97c2a1fSXin Li            ],
177*a97c2a1fSXin Li        },
178*a97c2a1fSXin Li
179*a97c2a1fSXin Li        x86_64: {
180*a97c2a1fSXin Li            cflags: [
181*a97c2a1fSXin Li                "-DX86",
182*a97c2a1fSXin Li                "-DDISABLE_AVX2",
183*a97c2a1fSXin Li                "-msse4.2",
184*a97c2a1fSXin Li                "-mno-avx",
185*a97c2a1fSXin Li                "-DDEFAULT_ARCH=D_ARCH_X86_SSE42",
186*a97c2a1fSXin Li            ],
187*a97c2a1fSXin Li
188*a97c2a1fSXin Li            local_include_dirs: [
189*a97c2a1fSXin Li                "common/x86",
190*a97c2a1fSXin Li                "decoder/x86",
191*a97c2a1fSXin Li            ],
192*a97c2a1fSXin Li
193*a97c2a1fSXin Li            srcs: [
194*a97c2a1fSXin Li                "common/x86/icv_sad_ssse3.c",
195*a97c2a1fSXin Li                "common/x86/icv_variance_ssse3.c",
196*a97c2a1fSXin Li                "common/x86/ideint_cac_ssse3.c",
197*a97c2a1fSXin Li                "common/x86/ideint_function_selector.c",
198*a97c2a1fSXin Li                "common/x86/ideint_function_selector_sse42.c",
199*a97c2a1fSXin Li                "common/x86/ideint_function_selector_ssse3.c",
200*a97c2a1fSXin Li                "common/x86/ideint_spatial_filter_ssse3.c",
201*a97c2a1fSXin Li                "common/x86/impeg2_idct_recon_sse42_intr.c",
202*a97c2a1fSXin Li                "common/x86/impeg2_inter_pred_sse42_intr.c",
203*a97c2a1fSXin Li                "common/x86/impeg2_mem_func_sse42_intr.c",
204*a97c2a1fSXin Li                "decoder/x86/impeg2d_function_selector.c",
205*a97c2a1fSXin Li                "decoder/x86/impeg2d_function_selector_avx2.c",
206*a97c2a1fSXin Li                "decoder/x86/impeg2d_function_selector_sse42.c",
207*a97c2a1fSXin Li                "decoder/x86/impeg2d_function_selector_ssse3.c",
208*a97c2a1fSXin Li            ],
209*a97c2a1fSXin Li        },
210*a97c2a1fSXin Li    },
211*a97c2a1fSXin Li    sanitize: {
212*a97c2a1fSXin Li        integer_overflow: true,
213*a97c2a1fSXin Li        misc_undefined: ["bounds"],
214*a97c2a1fSXin Li        // Enable CFI if this becomes a shared library.
215*a97c2a1fSXin Li        // cfi: true,
216*a97c2a1fSXin Li        blocklist: "libmpeg2dec_blocklist.txt",
217*a97c2a1fSXin Li    },
218*a97c2a1fSXin Li    apex_available: [
219*a97c2a1fSXin Li        "//apex_available:platform",
220*a97c2a1fSXin Li        "com.android.media.swcodec",
221*a97c2a1fSXin Li    ],
222*a97c2a1fSXin Li    min_sdk_version: "29",
223*a97c2a1fSXin Li}
224*a97c2a1fSXin Li
225*a97c2a1fSXin Lisubdirs = ["test"]
226