| package { |
| default_applicable_licenses: ["external_libmpeg2_license"], |
| } |
| |
| // Added automatically by a large-scale-change |
| // See: http://go/android-license-faq |
| license { |
| name: "external_libmpeg2_license", |
| visibility: [":__subpackages__"], |
| license_kinds: [ |
| "SPDX-license-identifier-Apache-2.0", |
| ], |
| license_text: [ |
| "NOTICE", |
| ], |
| } |
| |
| cc_library_static { |
| name: "libmpeg2dec", |
| vendor_available: true, |
| host_supported:true, |
| shared_libs: ["liblog", "libcutils"], |
| |
| cflags: [ |
| "-D_LIB", |
| "-DMULTICORE", |
| "-fPIC", |
| |
| "-O3", |
| "-DANDROID", |
| "-Werror", |
| // #KEEP_THREAD_ACTIVE is experimental |
| "-UKEEP_THREADS_ACTIVE", |
| ], |
| |
| 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", |
| ], |
| }, |
| |
| riscv64: { |
| local_include_dirs: [ |
| "common/riscv", |
| ], |
| |
| srcs: [ |
| "decoder/riscv/impeg2d_function_selector.c", |
| "common/riscv/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, |
| blocklist: "libmpeg2dec_blocklist.txt", |
| }, |
| apex_available: [ |
| "//apex_available:platform", |
| "com.android.media.swcodec", |
| ], |
| min_sdk_version: "29", |
| } |
| |
| subdirs = ["test"] |