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