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