blob: 025c828f96abbd828b7c6aa9eb7e5a59f238a7ce [file] [log] [blame]
cc_library_static {
name: "libmpeg2dec",
vendor_available: true,
shared_libs: ["liblog", "libcutils"],
cflags: [
"-D_LIB",
"-DMULTICORE",
"-fPIC",
"-O3",
"-DANDROID",
"-Werror",
],
export_include_dirs: [
"decoder",
"common",
],
srcs: [
"common/impeg2_buf_mgr.c",
"common/impeg2_disp_mgr.c",
"common/impeg2_format_conv.c",
"common/impeg2_globals.c",
"common/impeg2_idct.c",
"common/impeg2_inter_pred.c",
"common/impeg2_job_queue.c",
"common/impeg2_mem_func.c",
"common/ithread.c",
"decoder/impeg2d_api_main.c",
"decoder/impeg2d_bitstream.c",
"decoder/impeg2d_debug.c",
"decoder/impeg2d_dec_hdr.c",
"decoder/impeg2d_decoder.c",
"decoder/impeg2d_d_pic.c",
"decoder/impeg2d_function_selector_generic.c",
"decoder/impeg2d_globals.c",
"decoder/impeg2d_i_pic.c",
"decoder/impeg2d_mc.c",
"decoder/impeg2d_mv_dec.c",
"decoder/impeg2d_pic_proc.c",
"decoder/impeg2d_pnb_pic.c",
"decoder/impeg2d_vld.c",
"decoder/impeg2d_vld_tables.c",
"decoder/impeg2d_deinterlace.c",
"common/icv_sad.c",
"common/icv_variance.c",
"common/ideint.c",
"common/ideint_cac.c",
"common/ideint_debug.c",
"common/ideint_function_selector_generic.c",
"common/ideint_utils.c",
],
arch: {
arm: {
local_include_dirs: [
"decoder/arm",
"common/arm",
],
srcs: [
"decoder/arm/impeg2d_function_selector.c",
"common/arm/ideint_function_selector.c",
],
neon: {
srcs: [
"decoder/arm/impeg2d_function_selector_a9q.c",
"common/arm/ideint_function_selector_a9.c",
"common/arm/icv_sad_a9.s",
"common/arm/icv_variance_a9.s",
"common/arm/ideint_spatial_filter_a9.s",
"common/arm/ideint_cac_a9.s",
"common/arm/impeg2_format_conv.s",
"common/arm/impeg2_idct.s",
"common/arm/impeg2_inter_pred.s",
"common/arm/impeg2_mem_func.s",
],
cflags: [
"-UDISABLE_NEON",
"-UDEFAULT_ARCH",
"-DDEFAULT_ARCH=D_ARCH_ARM_A9Q",
],
},
cflags: [
"-DDISABLE_NEONINTR",
"-DARM",
"-DARMGCC",
// These are overriden by armv7_a_neon
"-DDISABLE_NEON",
"-DDEFAULT_ARCH=D_ARCH_ARM_NONEON",
],
instruction_set: "arm",
},
arm64: {
cflags: [
"-DARMV8",
"-DDISABLE_NEONINTR",
"-DARM",
"-DARMGCC",
"-DDEFAULT_ARCH=D_ARCH_ARMV8_GENERIC",
],
local_include_dirs: [
"decoder/arm",
"common/armv8",
],
srcs: [
"decoder/arm/impeg2d_function_selector.c",
"decoder/arm/impeg2d_function_selector_av8.c",
"common/arm/ideint_function_selector.c",
"common/arm/ideint_function_selector_av8.c",
"common/armv8/icv_sad_av8.s",
"common/armv8/icv_variance_av8.s",
"common/armv8/ideint_spatial_filter_av8.s",
"common/armv8/ideint_cac_av8.s",
"common/armv8/impeg2_neon_macros.s",
"common/armv8/impeg2_format_conv.s",
"common/armv8/impeg2_idct.s",
"common/armv8/impeg2_inter_pred.s",
"common/armv8/impeg2_mem_func.s",
],
},
mips: {
local_include_dirs: ["common/mips"],
srcs: [
"decoder/mips/impeg2d_function_selector.c",
"common/mips/ideint_function_selector.c",
],
},
mips64: {
local_include_dirs: ["common/mips"],
srcs: [
"decoder/mips/impeg2d_function_selector.c",
"common/mips/ideint_function_selector.c",
],
},
x86: {
cflags: [
"-DX86",
"-DDISABLE_AVX2",
"-msse4.2",
"-mno-avx",
"-DDEFAULT_ARCH=D_ARCH_X86_SSE42",
],
local_include_dirs: [
"decoder/x86",
"common/x86",
],
srcs: [
"decoder/x86/impeg2d_function_selector.c",
"decoder/x86/impeg2d_function_selector_avx2.c",
"decoder/x86/impeg2d_function_selector_ssse3.c",
"decoder/x86/impeg2d_function_selector_sse42.c",
"common/x86/ideint_function_selector.c",
"common/x86/ideint_function_selector_ssse3.c",
"common/x86/ideint_function_selector_sse42.c",
"common/x86/icv_variance_ssse3.c",
"common/x86/icv_sad_ssse3.c",
"common/x86/ideint_cac_ssse3.c",
"common/x86/ideint_spatial_filter_ssse3.c",
"common/x86/impeg2_idct_recon_sse42_intr.c",
"common/x86/impeg2_inter_pred_sse42_intr.c",
"common/x86/impeg2_mem_func_sse42_intr.c",
],
},
x86_64: {
cflags: [
"-DX86",
"-DDISABLE_AVX2",
"-msse4.2",
"-mno-avx",
"-DDEFAULT_ARCH=D_ARCH_X86_SSE42",
],
local_include_dirs: [
"decoder/x86",
"common/x86",
],
srcs: [
"decoder/x86/impeg2d_function_selector.c",
"decoder/x86/impeg2d_function_selector_avx2.c",
"decoder/x86/impeg2d_function_selector_ssse3.c",
"decoder/x86/impeg2d_function_selector_sse42.c",
"common/x86/ideint_function_selector.c",
"common/x86/ideint_function_selector_ssse3.c",
"common/x86/ideint_function_selector_sse42.c",
"common/x86/icv_variance_ssse3.c",
"common/x86/icv_sad_ssse3.c",
"common/x86/ideint_cac_ssse3.c",
"common/x86/ideint_spatial_filter_ssse3.c",
"common/x86/impeg2_idct_recon_sse42_intr.c",
"common/x86/impeg2_inter_pred_sse42_intr.c",
"common/x86/impeg2_mem_func_sse42_intr.c",
],
},
},
sanitize: {
integer_overflow: true,
misc_undefined: ["bounds"],
// Enable CFI if this becomes a shared library.
// cfi: true,
blacklist: "libmpeg2dec_blacklist.txt",
},
}
subdirs = ["test"]