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