gecko/media/libvpx/moz.build

332 lines
12 KiB
Plaintext
Raw Normal View History

# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
EXPORTS.vpx += [
'vpx/vp8.h',
'vpx/vp8cx.h',
'vpx/vp8dx.h',
'vpx/vpx_codec.h',
'vpx/vpx_codec_impl_bottom.h',
'vpx/vpx_codec_impl_top.h',
'vpx/vpx_decoder.h',
'vpx/vpx_encoder.h',
'vpx/vpx_image.h',
'vpx/vpx_integer.h',
'vpx_mem/include/vpx_mem_intrnl.h',
'vpx_mem/vpx_mem.h',
'vpx_ports/arm.h',
'vpx_ports/mem.h',
'vpx_ports/vpx_timer.h',
'vpx_ports/x86.h',
'vpx_scale/scale_mode.h',
'vpx_scale/vpxscale.h',
'vpx_scale/yv12config.h',
]
if CONFIG['VPX_NEED_OBJ_INT_EXTRACT']:
HOST_SOURCES += [
'build/make/obj_int_extract.c',
]
HOST_PROGRAM = 'host_obj_int_extract'
SOURCES += [
'vp8/common/alloccommon.c',
'vp8/common/blockd.c',
'vp8/common/debugmodes.c',
'vp8/common/dequantize.c',
'vp8/common/entropy.c',
'vp8/common/entropymode.c',
'vp8/common/entropymv.c',
'vp8/common/extend.c',
'vp8/common/filter.c',
'vp8/common/findnearmv.c',
'vp8/common/generic/systemdependent.c',
'vp8/common/idct_blk.c',
'vp8/common/idctllm.c',
'vp8/common/loopfilter.c',
'vp8/common/loopfilter_filters.c',
'vp8/common/mbpitch.c',
'vp8/common/modecont.c',
'vp8/common/quant_common.c',
'vp8/common/reconinter.c',
'vp8/common/reconintra.c',
'vp8/common/reconintra4x4.c',
'vp8/common/rtcd.c',
'vp8/common/sad_c.c',
'vp8/common/setupintrarecon.c',
'vp8/common/swapyv12buffer.c',
'vp8/common/treecoder.c',
'vp8/common/variance_c.c',
'vp8/decoder/asm_dec_offsets.c',
'vp8/decoder/dboolhuff.c',
'vp8/decoder/decodemv.c',
'vp8/decoder/decodframe.c',
'vp8/decoder/detokenize.c',
'vp8/decoder/onyxd_if.c',
'vp8/decoder/threading.c',
'vp8/vp8_dx_iface.c',
'vpx/src/vpx_codec.c',
'vpx/src/vpx_decoder.c',
'vpx/src/vpx_encoder.c',
'vpx/src/vpx_image.c',
'vpx_mem/vpx_mem.c',
'vpx_scale/generic/gen_scalers.c',
'vpx_scale/generic/vpxscale.c',
'vpx_scale/generic/yv12config.c',
'vpx_scale/generic/yv12extend.c',
]
if CONFIG['MOZ_VP8_ERROR_CONCEALMENT']:
SOURCES += [
'vp8/decoder/error_concealment.c'
]
if CONFIG['MOZ_VP8_ENCODER']:
SOURCES += [
'vp8/encoder/bitstream.c',
'vp8/encoder/dct.c',
'vp8/encoder/encodeframe.c',
'vp8/encoder/encodeintra.c',
'vp8/encoder/encodemb.c',
'vp8/encoder/encodemv.c',
'vp8/encoder/ethreading.c',
'vp8/encoder/firstpass.c',
'vp8/encoder/lookahead.c',
'vp8/encoder/mcomp.c',
'vp8/encoder/modecosts.c',
'vp8/encoder/mr_dissim.c',
'vp8/encoder/onyx_if.c',
'vp8/encoder/pickinter.c',
'vp8/encoder/picklpf.c',
'vp8/encoder/psnr.c',
'vp8/encoder/quantize.c',
'vp8/encoder/ratectrl.c',
'vp8/encoder/rdopt.c',
'vp8/encoder/segmentation.c',
'vp8/encoder/tokenize.c',
'vp8/encoder/treewriter.c',
'vp8/vp8_cx_iface.c',
]
#postproc is only enabled on x86 with asm
if CONFIG['VPX_X86_ASM']:
SOURCES += [
'vp8/common/mfqe.c',
'vp8/common/postproc.c',
'vp8/encoder/temporal_filter.c',
]
if CONFIG['VPX_X86_ASM'] and CONFIG['OS_TARGET'] == 'WINNT':
SOURCES += [
'vp8/common/asm_com_offsets.c',
]
if CONFIG['MOZ_VP8_ENCODER']:
SOURCES += [
'vp8/encoder/asm_enc_offsets.c',
]
if CONFIG['VPX_X86_ASM']:
SOURCES += [
'vp8/common/x86/filter_x86.c',
'vp8/common/x86/idct_blk_mmx.c',
'vp8/common/x86/idct_blk_sse2.c',
'vp8/common/x86/loopfilter_x86.c',
'vp8/common/x86/postproc_x86.c',
'vp8/common/x86/recon_wrapper_sse2.c',
'vp8/common/x86/variance_mmx.c',
'vp8/common/x86/variance_sse2.c',
'vp8/common/x86/variance_ssse3.c',
'vp8/common/x86/vp8_asm_stubs.c',
'vpx_ports/x86_cpuid.c',
]
SOURCES += [
'vp8/common/x86/dequantize_mmx.asm',
'vp8/common/x86/idctllm_mmx.asm',
'vp8/common/x86/idctllm_sse2.asm',
'vp8/common/x86/iwalsh_mmx.asm',
'vp8/common/x86/iwalsh_sse2.asm',
'vp8/common/x86/loopfilter_mmx.asm',
'vp8/common/x86/loopfilter_sse2.asm',
'vp8/common/x86/mfqe_sse2.asm',
'vp8/common/x86/postproc_mmx.asm',
'vp8/common/x86/postproc_sse2.asm',
'vp8/common/x86/recon_mmx.asm',
'vp8/common/x86/recon_sse2.asm',
'vp8/common/x86/sad_mmx.asm',
'vp8/common/x86/sad_sse2.asm',
'vp8/common/x86/sad_sse3.asm',
'vp8/common/x86/sad_sse4.asm',
'vp8/common/x86/sad_ssse3.asm',
'vp8/common/x86/subpixel_mmx.asm',
'vp8/common/x86/subpixel_sse2.asm',
'vp8/common/x86/subpixel_ssse3.asm',
'vp8/common/x86/variance_impl_mmx.asm',
'vp8/common/x86/variance_impl_sse2.asm',
'vp8/common/x86/variance_impl_ssse3.asm',
'vpx_ports/emms.asm',
]
if '64' in CONFIG['OS_TEST']:
SOURCES += [
'vp8/common/x86/loopfilter_block_sse2.asm',
]
if CONFIG['VPX_X86_ASM'] and CONFIG['MOZ_VP8_ENCODER']:
SOURCES += [
'vp8/encoder/x86/vp8_enc_stubs_mmx.c',
'vp8/encoder/x86/vp8_enc_stubs_sse2.c',
]
SOURCES += [
'vp8/encoder/x86/dct_mmx.asm',
'vp8/encoder/x86/dct_sse2.asm',
'vp8/encoder/x86/encodeopt.asm',
'vp8/encoder/x86/fwalsh_sse2.asm',
'vp8/encoder/x86/quantize_mmx.asm',
'vp8/encoder/x86/quantize_sse2.asm',
'vp8/encoder/x86/quantize_sse4.asm',
'vp8/encoder/x86/quantize_ssse3.asm',
'vp8/encoder/x86/subtract_mmx.asm',
'vp8/encoder/x86/subtract_sse2.asm',
'vp8/encoder/x86/temporal_filter_apply_sse2.asm',
]
if CONFIG['MOZ_VP8_ENCODER']:
SOURCES += [
'vp8/encoder/denoising.c',
]
if CONFIG['VPX_X86_ASM']:
SOURCES += [
'vp8/encoder/x86/denoising_sse2.c',
]
arm_asm_files = []
if CONFIG['VPX_ARM_ASM']:
SOURCES += [
'vp8/common/arm/armv6/idct_blk_v6.c',
'vp8/common/arm/bilinearfilter_arm.c',
'vp8/common/arm/dequantize_arm.c',
'vp8/common/arm/filter_arm.c',
'vp8/common/arm/loopfilter_arm.c',
'vp8/common/arm/neon/idct_blk_neon.c',
'vp8/common/arm/reconintra_arm.c',
'vp8/common/arm/variance_arm.c',
'vpx_ports/arm_cpudetect.c',
'vpx_scale/arm/neon/yv12extend_arm.c',
]
arm_asm_files += [
'vp8/common/arm/armv6/bilinearfilter_v6.asm',
'vp8/common/arm/armv6/copymem16x16_v6.asm',
'vp8/common/arm/armv6/copymem8x4_v6.asm',
'vp8/common/arm/armv6/copymem8x8_v6.asm',
'vp8/common/arm/armv6/dc_only_idct_add_v6.asm',
'vp8/common/arm/armv6/dequant_idct_v6.asm',
'vp8/common/arm/armv6/dequantize_v6.asm',
'vp8/common/arm/armv6/filter_v6.asm',
'vp8/common/arm/armv6/idct_v6.asm',
'vp8/common/arm/armv6/intra4x4_predict_v6.asm',
'vp8/common/arm/armv6/iwalsh_v6.asm',
'vp8/common/arm/armv6/loopfilter_v6.asm',
'vp8/common/arm/armv6/simpleloopfilter_v6.asm',
'vp8/common/arm/armv6/sixtappredict8x4_v6.asm',
'vp8/common/arm/armv6/vp8_sad16x16_armv6.asm',
'vp8/common/arm/armv6/vp8_variance16x16_armv6.asm',
'vp8/common/arm/armv6/vp8_variance8x8_armv6.asm',
'vp8/common/arm/armv6/vp8_variance_halfpixvar16x16_h_armv6.asm',
'vp8/common/arm/armv6/vp8_variance_halfpixvar16x16_hv_armv6.asm',
'vp8/common/arm/armv6/vp8_variance_halfpixvar16x16_v_armv6.asm',
'vp8/common/arm/neon/bilinearpredict16x16_neon.asm',
'vp8/common/arm/neon/bilinearpredict4x4_neon.asm',
'vp8/common/arm/neon/bilinearpredict8x4_neon.asm',
'vp8/common/arm/neon/bilinearpredict8x8_neon.asm',
'vp8/common/arm/neon/buildintrapredictorsmby_neon.asm',
'vp8/common/arm/neon/copymem16x16_neon.asm',
'vp8/common/arm/neon/copymem8x4_neon.asm',
'vp8/common/arm/neon/copymem8x8_neon.asm',
'vp8/common/arm/neon/dc_only_idct_add_neon.asm',
'vp8/common/arm/neon/dequant_idct_neon.asm',
'vp8/common/arm/neon/dequantizeb_neon.asm',
'vp8/common/arm/neon/idct_dequant_0_2x_neon.asm',
'vp8/common/arm/neon/idct_dequant_full_2x_neon.asm',
'vp8/common/arm/neon/iwalsh_neon.asm',
'vp8/common/arm/neon/loopfilter_neon.asm',
'vp8/common/arm/neon/loopfiltersimplehorizontaledge_neon.asm',
'vp8/common/arm/neon/loopfiltersimpleverticaledge_neon.asm',
'vp8/common/arm/neon/mbloopfilter_neon.asm',
'vp8/common/arm/neon/sad16_neon.asm',
'vp8/common/arm/neon/sad8_neon.asm',
'vp8/common/arm/neon/save_reg_neon.asm',
'vp8/common/arm/neon/shortidct4x4llm_neon.asm',
'vp8/common/arm/neon/sixtappredict16x16_neon.asm',
'vp8/common/arm/neon/sixtappredict4x4_neon.asm',
'vp8/common/arm/neon/sixtappredict8x4_neon.asm',
'vp8/common/arm/neon/sixtappredict8x8_neon.asm',
'vp8/common/arm/neon/variance_neon.asm',
'vp8/common/arm/neon/vp8_subpixelvariance16x16_neon.asm',
'vp8/common/arm/neon/vp8_subpixelvariance16x16s_neon.asm',
'vp8/common/arm/neon/vp8_subpixelvariance8x8_neon.asm',
'vp8/encoder/arm/armv6/vp8_mse16x16_armv6.asm',
'vp8/encoder/arm/neon/vp8_mse16x16_neon.asm',
'vpx_scale/arm/neon/vp8_vpxyv12_copy_y_neon.asm',
'vpx_scale/arm/neon/vp8_vpxyv12_copyframe_func_neon.asm',
'vpx_scale/arm/neon/vp8_vpxyv12_copysrcframe_func_neon.asm',
'vpx_scale/arm/neon/vp8_vpxyv12_extendframeborders_neon.asm',
]
if CONFIG['VPX_ARM_ASM'] and CONFIG['MOZ_VP8_ENCODER']:
SOURCES += [
'vp8/encoder/arm/boolhuff_arm.c',
'vp8/encoder/arm/dct_arm.c',
'vp8/encoder/arm/neon/picklpf_arm.c',
'vp8/encoder/arm/quantize_arm.c',
]
arm_asm_files += [
'vp8/encoder/arm/armv5te/boolhuff_armv5te.asm',
'vp8/encoder/arm/armv5te/vp8_packtokens_armv5.asm',
'vp8/encoder/arm/armv5te/vp8_packtokens_mbrow_armv5.asm',
'vp8/encoder/arm/armv5te/vp8_packtokens_partitions_armv5.asm',
'vp8/encoder/arm/armv6/vp8_fast_quantize_b_armv6.asm',
'vp8/encoder/arm/armv6/vp8_short_fdct4x4_armv6.asm',
'vp8/encoder/arm/armv6/vp8_subtract_armv6.asm',
'vp8/encoder/arm/armv6/walsh_v6.asm',
'vp8/encoder/arm/neon/fastquantizeb_neon.asm',
'vp8/encoder/arm/neon/shortfdct_neon.asm',
'vp8/encoder/arm/neon/subtract_neon.asm',
'vp8/encoder/arm/neon/vp8_memcpy_neon.asm',
'vp8/encoder/arm/neon/vp8_shortwalsh4x4_neon.asm',
]
if arm_asm_files:
if CONFIG['VPX_AS_CONVERSION']:
GENERATED_SOURCES += [ "%s.%s" % (f, CONFIG['VPX_ASM_SUFFIX'])
for f in sorted(arm_asm_files)]
else:
SOURCES += sorted(arm_asm_files)
# boolhuff_armv5te.asm defines the same functions as boolhuff.c instead of
# using RTCD, so we have to make sure we only add one of the two.
if CONFIG['MOZ_VP8_ENCODER'] \
and 'vp8/encoder/arm/armv5te/boolhuff_armv5te.asm' not in arm_asm_files:
SOURCES += [
'vp8/encoder/boolhuff.c',
]
MSVC_ENABLE_PGO = True
if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
NO_VISIBILITY_FLAGS = True
FINAL_LIBRARY = 'gkmedias'
DEFINES['HAVE_CONFIG_H'] = 'vpx_config.h'
if CONFIG['OS_TARGET'] == 'Android':
# Older versions of the Android NDK don't pre-define anything to indicate
# the OS they're on, so do it for them.
DEFINES['__linux__'] = True