зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1328744 - Replace libvpx update scripts. r=rillian, r=jesup
Move all libvpx code down a level into media/libvpx/libvpx and replace it with a full checkout. This is from the same base as the previous checkin, e67d45d4ce92468ba193288b59093fef0a502662 Simplify update.py. This no longer does any configuration. It just makes a copy of the libvpx repository and applies the patches. Add generate_sources_mozbuild.sh, based on generate_gni.sh from chromium. This creates the config directories and the file lists in sources.mozbuild. This will simplify updating to newer versions of libvpx. --HG-- rename : media/libvpx/vp8_rtcd_generic-gnu.h => media/libvpx/config/generic/vp8_rtcd.h rename : media/libvpx/vp9_rtcd_generic-gnu.h => media/libvpx/config/generic/vp9_rtcd.h rename : media/libvpx/vpx_dsp_rtcd_generic-gnu.h => media/libvpx/config/generic/vpx_dsp_rtcd.h rename : media/libvpx/vpx_scale_rtcd_generic-gnu.h => media/libvpx/config/generic/vpx_scale_rtcd.h rename : media/libvpx/vp8_rtcd_armv7-android-gcc.h => media/libvpx/config/linux/arm/vp8_rtcd.h rename : media/libvpx/vp9_rtcd_armv7-android-gcc.h => media/libvpx/config/linux/arm/vp9_rtcd.h rename : media/libvpx/vpx_dsp_rtcd_armv7-android-gcc.h => media/libvpx/config/linux/arm/vpx_dsp_rtcd.h rename : media/libvpx/vpx_scale_rtcd_armv7-android-gcc.h => media/libvpx/config/linux/arm/vpx_scale_rtcd.h rename : media/libvpx/vp8_rtcd_x86-darwin9-gcc.h => media/libvpx/config/linux/ia32/vp8_rtcd.h rename : media/libvpx/vpx_dsp_rtcd_x86-linux-gcc.h => media/libvpx/config/linux/ia32/vpx_dsp_rtcd.h rename : media/libvpx/vpx_scale_rtcd_x86-darwin9-gcc.h => media/libvpx/config/linux/ia32/vpx_scale_rtcd.h rename : media/libvpx/vp8_rtcd_x86_64-darwin9-gcc.h => media/libvpx/config/linux/x64/vp8_rtcd.h rename : media/libvpx/vpx_dsp_rtcd_x86_64-darwin9-gcc.h => media/libvpx/config/linux/x64/vpx_dsp_rtcd.h rename : media/libvpx/vpx_scale_rtcd_x86-linux-gcc.h => media/libvpx/config/linux/x64/vpx_scale_rtcd.h rename : media/libvpx/vp8_rtcd_x86-linux-gcc.h => media/libvpx/config/mac/ia32/vp8_rtcd.h rename : media/libvpx/vpx_scale_rtcd_x86-win32-gcc.h => media/libvpx/config/mac/ia32/vpx_scale_rtcd.h rename : media/libvpx/vp8_rtcd_x86_64-linux-gcc.h => media/libvpx/config/mac/x64/vp8_rtcd.h rename : media/libvpx/vpx_dsp_rtcd_x86_64-linux-gcc.h => media/libvpx/config/mac/x64/vpx_dsp_rtcd.h rename : media/libvpx/vpx_scale_rtcd_x86-win32-vs12.h => media/libvpx/config/mac/x64/vpx_scale_rtcd.h rename : media/libvpx/vp8_rtcd_x86-win32-gcc.h => media/libvpx/config/win/ia32/vp8_rtcd.h rename : media/libvpx/vpx_scale_rtcd_x86_64-darwin9-gcc.h => media/libvpx/config/win/ia32/vpx_scale_rtcd.h rename : media/libvpx/vp8_rtcd_x86_64-win64-gcc.h => media/libvpx/config/win/x64/vp8_rtcd.h rename : media/libvpx/vpx_dsp_rtcd_x86_64-win64-gcc.h => media/libvpx/config/win/x64/vpx_dsp_rtcd.h rename : media/libvpx/vpx_scale_rtcd_x86_64-linux-gcc.h => media/libvpx/config/win/x64/vpx_scale_rtcd.h rename : media/libvpx/LICENSE => media/libvpx/libvpx/LICENSE rename : media/libvpx/PATENTS => media/libvpx/libvpx/PATENTS rename : media/libvpx/build/make/ads2gas.pl => media/libvpx/libvpx/build/make/ads2gas.pl rename : media/libvpx/build/make/thumb.pm => media/libvpx/libvpx/build/make/thumb.pm rename : media/libvpx/third_party/x86inc/x86inc.asm => media/libvpx/libvpx/third_party/x86inc/x86inc.asm rename : media/libvpx/vp8/common/alloccommon.c => media/libvpx/libvpx/vp8/common/alloccommon.c rename : media/libvpx/vp8/common/alloccommon.h => media/libvpx/libvpx/vp8/common/alloccommon.h rename : media/libvpx/vp8/common/arm/armv6/bilinearfilter_v6.asm => media/libvpx/libvpx/vp8/common/arm/armv6/bilinearfilter_v6.asm rename : media/libvpx/vp8/common/arm/armv6/copymem16x16_v6.asm => media/libvpx/libvpx/vp8/common/arm/armv6/copymem16x16_v6.asm rename : media/libvpx/vp8/common/arm/armv6/copymem8x4_v6.asm => media/libvpx/libvpx/vp8/common/arm/armv6/copymem8x4_v6.asm rename : media/libvpx/vp8/common/arm/armv6/copymem8x8_v6.asm => media/libvpx/libvpx/vp8/common/arm/armv6/copymem8x8_v6.asm rename : media/libvpx/vp8/common/arm/armv6/dc_only_idct_add_v6.asm => media/libvpx/libvpx/vp8/common/arm/armv6/dc_only_idct_add_v6.asm rename : media/libvpx/vp8/common/arm/armv6/dequant_idct_v6.asm => media/libvpx/libvpx/vp8/common/arm/armv6/dequant_idct_v6.asm rename : media/libvpx/vp8/common/arm/armv6/dequantize_v6.asm => media/libvpx/libvpx/vp8/common/arm/armv6/dequantize_v6.asm rename : media/libvpx/vp8/common/arm/armv6/filter_v6.asm => media/libvpx/libvpx/vp8/common/arm/armv6/filter_v6.asm rename : media/libvpx/vp8/common/arm/armv6/idct_blk_v6.c => media/libvpx/libvpx/vp8/common/arm/armv6/idct_blk_v6.c rename : media/libvpx/vp8/common/arm/armv6/idct_v6.asm => media/libvpx/libvpx/vp8/common/arm/armv6/idct_v6.asm rename : media/libvpx/vp8/common/arm/armv6/intra4x4_predict_v6.asm => media/libvpx/libvpx/vp8/common/arm/armv6/intra4x4_predict_v6.asm rename : media/libvpx/vp8/common/arm/armv6/iwalsh_v6.asm => media/libvpx/libvpx/vp8/common/arm/armv6/iwalsh_v6.asm rename : media/libvpx/vp8/common/arm/armv6/loopfilter_v6.asm => media/libvpx/libvpx/vp8/common/arm/armv6/loopfilter_v6.asm rename : media/libvpx/vp8/common/arm/armv6/simpleloopfilter_v6.asm => media/libvpx/libvpx/vp8/common/arm/armv6/simpleloopfilter_v6.asm rename : media/libvpx/vp8/common/arm/armv6/sixtappredict8x4_v6.asm => media/libvpx/libvpx/vp8/common/arm/armv6/sixtappredict8x4_v6.asm rename : media/libvpx/vp8/common/arm/armv6/vp8_variance_halfpixvar16x16_h_armv6.asm => media/libvpx/libvpx/vp8/common/arm/armv6/vp8_variance_halfpixvar16x16_h_armv6.asm rename : media/libvpx/vp8/common/arm/armv6/vp8_variance_halfpixvar16x16_hv_armv6.asm => media/libvpx/libvpx/vp8/common/arm/armv6/vp8_variance_halfpixvar16x16_hv_armv6.asm rename : media/libvpx/vp8/common/arm/armv6/vp8_variance_halfpixvar16x16_v_armv6.asm => media/libvpx/libvpx/vp8/common/arm/armv6/vp8_variance_halfpixvar16x16_v_armv6.asm rename : media/libvpx/vp8/common/arm/bilinearfilter_arm.c => media/libvpx/libvpx/vp8/common/arm/bilinearfilter_arm.c rename : media/libvpx/vp8/common/arm/bilinearfilter_arm.h => media/libvpx/libvpx/vp8/common/arm/bilinearfilter_arm.h rename : media/libvpx/vp8/common/arm/dequantize_arm.c => media/libvpx/libvpx/vp8/common/arm/dequantize_arm.c rename : media/libvpx/vp8/common/arm/filter_arm.c => media/libvpx/libvpx/vp8/common/arm/filter_arm.c rename : media/libvpx/vp8/common/arm/loopfilter_arm.c => media/libvpx/libvpx/vp8/common/arm/loopfilter_arm.c rename : media/libvpx/vp8/common/arm/neon/bilinearpredict_neon.c => media/libvpx/libvpx/vp8/common/arm/neon/bilinearpredict_neon.c rename : media/libvpx/vp8/common/arm/neon/copymem_neon.c => media/libvpx/libvpx/vp8/common/arm/neon/copymem_neon.c rename : media/libvpx/vp8/common/arm/neon/dc_only_idct_add_neon.c => media/libvpx/libvpx/vp8/common/arm/neon/dc_only_idct_add_neon.c rename : media/libvpx/vp8/common/arm/neon/dequant_idct_neon.c => media/libvpx/libvpx/vp8/common/arm/neon/dequant_idct_neon.c rename : media/libvpx/vp8/common/arm/neon/dequantizeb_neon.c => media/libvpx/libvpx/vp8/common/arm/neon/dequantizeb_neon.c rename : media/libvpx/vp8/common/arm/neon/idct_blk_neon.c => media/libvpx/libvpx/vp8/common/arm/neon/idct_blk_neon.c rename : media/libvpx/vp8/common/arm/neon/idct_dequant_0_2x_neon.c => media/libvpx/libvpx/vp8/common/arm/neon/idct_dequant_0_2x_neon.c rename : media/libvpx/vp8/common/arm/neon/idct_dequant_full_2x_neon.c => media/libvpx/libvpx/vp8/common/arm/neon/idct_dequant_full_2x_neon.c rename : media/libvpx/vp8/common/arm/neon/iwalsh_neon.c => media/libvpx/libvpx/vp8/common/arm/neon/iwalsh_neon.c rename : media/libvpx/vp8/common/arm/neon/loopfilter_neon.c => media/libvpx/libvpx/vp8/common/arm/neon/loopfilter_neon.c rename : media/libvpx/vp8/common/arm/neon/loopfiltersimplehorizontaledge_neon.c => media/libvpx/libvpx/vp8/common/arm/neon/loopfiltersimplehorizontaledge_neon.c rename : media/libvpx/vp8/common/arm/neon/loopfiltersimpleverticaledge_neon.c => media/libvpx/libvpx/vp8/common/arm/neon/loopfiltersimpleverticaledge_neon.c rename : media/libvpx/vp8/common/arm/neon/mbloopfilter_neon.c => media/libvpx/libvpx/vp8/common/arm/neon/mbloopfilter_neon.c rename : media/libvpx/vp8/common/arm/neon/reconintra_neon.c => media/libvpx/libvpx/vp8/common/arm/neon/reconintra_neon.c rename : media/libvpx/vp8/common/arm/neon/shortidct4x4llm_neon.c => media/libvpx/libvpx/vp8/common/arm/neon/shortidct4x4llm_neon.c rename : media/libvpx/vp8/common/arm/neon/sixtappredict_neon.c => media/libvpx/libvpx/vp8/common/arm/neon/sixtappredict_neon.c rename : media/libvpx/vp8/common/arm/neon/vp8_subpixelvariance_neon.c => media/libvpx/libvpx/vp8/common/arm/neon/vp8_subpixelvariance_neon.c rename : media/libvpx/vp8/common/arm/variance_arm.c => media/libvpx/libvpx/vp8/common/arm/variance_arm.c rename : media/libvpx/vp8/common/blockd.c => media/libvpx/libvpx/vp8/common/blockd.c rename : media/libvpx/vp8/common/blockd.h => media/libvpx/libvpx/vp8/common/blockd.h rename : media/libvpx/vp8/common/coefupdateprobs.h => media/libvpx/libvpx/vp8/common/coefupdateprobs.h rename : media/libvpx/vp8/common/common.h => media/libvpx/libvpx/vp8/common/common.h rename : media/libvpx/vp8/common/copy_c.c => media/libvpx/libvpx/vp8/common/copy_c.c rename : media/libvpx/vp8/common/debugmodes.c => media/libvpx/libvpx/vp8/common/debugmodes.c rename : media/libvpx/vp8/common/default_coef_probs.h => media/libvpx/libvpx/vp8/common/default_coef_probs.h rename : media/libvpx/vp8/common/dequantize.c => media/libvpx/libvpx/vp8/common/dequantize.c rename : media/libvpx/vp8/common/entropy.c => media/libvpx/libvpx/vp8/common/entropy.c rename : media/libvpx/vp8/common/entropy.h => media/libvpx/libvpx/vp8/common/entropy.h rename : media/libvpx/vp8/common/entropymode.c => media/libvpx/libvpx/vp8/common/entropymode.c rename : media/libvpx/vp8/common/entropymode.h => media/libvpx/libvpx/vp8/common/entropymode.h rename : media/libvpx/vp8/common/entropymv.c => media/libvpx/libvpx/vp8/common/entropymv.c rename : media/libvpx/vp8/common/entropymv.h => media/libvpx/libvpx/vp8/common/entropymv.h rename : media/libvpx/vp8/common/extend.c => media/libvpx/libvpx/vp8/common/extend.c rename : media/libvpx/vp8/common/extend.h => media/libvpx/libvpx/vp8/common/extend.h rename : media/libvpx/vp8/common/filter.c => media/libvpx/libvpx/vp8/common/filter.c rename : media/libvpx/vp8/common/filter.h => media/libvpx/libvpx/vp8/common/filter.h rename : media/libvpx/vp8/common/findnearmv.c => media/libvpx/libvpx/vp8/common/findnearmv.c rename : media/libvpx/vp8/common/findnearmv.h => media/libvpx/libvpx/vp8/common/findnearmv.h rename : media/libvpx/vp8/common/generic/systemdependent.c => media/libvpx/libvpx/vp8/common/generic/systemdependent.c rename : media/libvpx/vp8/common/header.h => media/libvpx/libvpx/vp8/common/header.h rename : media/libvpx/vp8/common/idct_blk.c => media/libvpx/libvpx/vp8/common/idct_blk.c rename : media/libvpx/vp8/common/idctllm.c => media/libvpx/libvpx/vp8/common/idctllm.c rename : media/libvpx/vp8/common/invtrans.h => media/libvpx/libvpx/vp8/common/invtrans.h rename : media/libvpx/vp8/common/loopfilter.c => media/libvpx/libvpx/vp8/common/loopfilter.c rename : media/libvpx/vp8/common/loopfilter.h => media/libvpx/libvpx/vp8/common/loopfilter.h rename : media/libvpx/vp8/common/loopfilter_filters.c => media/libvpx/libvpx/vp8/common/loopfilter_filters.c rename : media/libvpx/vp8/common/mbpitch.c => media/libvpx/libvpx/vp8/common/mbpitch.c rename : media/libvpx/vp8/common/mfqe.c => media/libvpx/libvpx/vp8/common/mfqe.c rename : media/libvpx/vp8/common/modecont.c => media/libvpx/libvpx/vp8/common/modecont.c rename : media/libvpx/vp8/common/modecont.h => media/libvpx/libvpx/vp8/common/modecont.h rename : media/libvpx/vp8/common/mv.h => media/libvpx/libvpx/vp8/common/mv.h rename : media/libvpx/vp8/common/onyx.h => media/libvpx/libvpx/vp8/common/onyx.h rename : media/libvpx/vp8/common/onyxc_int.h => media/libvpx/libvpx/vp8/common/onyxc_int.h rename : media/libvpx/vp8/common/onyxd.h => media/libvpx/libvpx/vp8/common/onyxd.h rename : media/libvpx/vp8/common/postproc.c => media/libvpx/libvpx/vp8/common/postproc.c rename : media/libvpx/vp8/common/postproc.h => media/libvpx/libvpx/vp8/common/postproc.h rename : media/libvpx/vp8/common/ppflags.h => media/libvpx/libvpx/vp8/common/ppflags.h rename : media/libvpx/vp8/common/quant_common.c => media/libvpx/libvpx/vp8/common/quant_common.c rename : media/libvpx/vp8/common/quant_common.h => media/libvpx/libvpx/vp8/common/quant_common.h rename : media/libvpx/vp8/common/reconinter.c => media/libvpx/libvpx/vp8/common/reconinter.c rename : media/libvpx/vp8/common/reconinter.h => media/libvpx/libvpx/vp8/common/reconinter.h rename : media/libvpx/vp8/common/reconintra.c => media/libvpx/libvpx/vp8/common/reconintra.c rename : media/libvpx/vp8/common/reconintra4x4.c => media/libvpx/libvpx/vp8/common/reconintra4x4.c rename : media/libvpx/vp8/common/reconintra4x4.h => media/libvpx/libvpx/vp8/common/reconintra4x4.h rename : media/libvpx/vp8/common/rtcd.c => media/libvpx/libvpx/vp8/common/rtcd.c rename : media/libvpx/vp8/common/setupintrarecon.c => media/libvpx/libvpx/vp8/common/setupintrarecon.c rename : media/libvpx/vp8/common/setupintrarecon.h => media/libvpx/libvpx/vp8/common/setupintrarecon.h rename : media/libvpx/vp8/common/swapyv12buffer.c => media/libvpx/libvpx/vp8/common/swapyv12buffer.c rename : media/libvpx/vp8/common/swapyv12buffer.h => media/libvpx/libvpx/vp8/common/swapyv12buffer.h rename : media/libvpx/vp8/common/systemdependent.h => media/libvpx/libvpx/vp8/common/systemdependent.h rename : media/libvpx/vp8/common/threading.h => media/libvpx/libvpx/vp8/common/threading.h rename : media/libvpx/vp8/common/treecoder.c => media/libvpx/libvpx/vp8/common/treecoder.c rename : media/libvpx/vp8/common/treecoder.h => media/libvpx/libvpx/vp8/common/treecoder.h rename : media/libvpx/vp8/common/variance.h => media/libvpx/libvpx/vp8/common/variance.h rename : media/libvpx/vp8/common/variance_c.c => media/libvpx/libvpx/vp8/common/variance_c.c rename : media/libvpx/vp8/common/vp8_entropymodedata.h => media/libvpx/libvpx/vp8/common/vp8_entropymodedata.h rename : media/libvpx/vp8/common/x86/copy_sse2.asm => media/libvpx/libvpx/vp8/common/x86/copy_sse2.asm rename : media/libvpx/vp8/common/x86/copy_sse3.asm => media/libvpx/libvpx/vp8/common/x86/copy_sse3.asm rename : media/libvpx/vp8/common/x86/dequantize_mmx.asm => media/libvpx/libvpx/vp8/common/x86/dequantize_mmx.asm rename : media/libvpx/vp8/common/x86/filter_x86.c => media/libvpx/libvpx/vp8/common/x86/filter_x86.c rename : media/libvpx/vp8/common/x86/filter_x86.h => media/libvpx/libvpx/vp8/common/x86/filter_x86.h rename : media/libvpx/vp8/common/x86/idct_blk_mmx.c => media/libvpx/libvpx/vp8/common/x86/idct_blk_mmx.c rename : media/libvpx/vp8/common/x86/idct_blk_sse2.c => media/libvpx/libvpx/vp8/common/x86/idct_blk_sse2.c rename : media/libvpx/vp8/common/x86/idctllm_mmx.asm => media/libvpx/libvpx/vp8/common/x86/idctllm_mmx.asm rename : media/libvpx/vp8/common/x86/idctllm_sse2.asm => media/libvpx/libvpx/vp8/common/x86/idctllm_sse2.asm rename : media/libvpx/vp8/common/x86/iwalsh_mmx.asm => media/libvpx/libvpx/vp8/common/x86/iwalsh_mmx.asm rename : media/libvpx/vp8/common/x86/iwalsh_sse2.asm => media/libvpx/libvpx/vp8/common/x86/iwalsh_sse2.asm rename : media/libvpx/vp8/common/x86/loopfilter_block_sse2_x86_64.asm => media/libvpx/libvpx/vp8/common/x86/loopfilter_block_sse2_x86_64.asm rename : media/libvpx/vp8/common/x86/loopfilter_mmx.asm => media/libvpx/libvpx/vp8/common/x86/loopfilter_mmx.asm rename : media/libvpx/vp8/common/x86/loopfilter_sse2.asm => media/libvpx/libvpx/vp8/common/x86/loopfilter_sse2.asm rename : media/libvpx/vp8/common/x86/loopfilter_x86.c => media/libvpx/libvpx/vp8/common/x86/loopfilter_x86.c rename : media/libvpx/vp8/common/x86/mfqe_sse2.asm => media/libvpx/libvpx/vp8/common/x86/mfqe_sse2.asm rename : media/libvpx/vp8/common/x86/postproc_mmx.asm => media/libvpx/libvpx/vp8/common/x86/postproc_mmx.asm rename : media/libvpx/vp8/common/x86/postproc_sse2.asm => media/libvpx/libvpx/vp8/common/x86/postproc_sse2.asm rename : media/libvpx/vp8/common/x86/recon_mmx.asm => media/libvpx/libvpx/vp8/common/x86/recon_mmx.asm rename : media/libvpx/vp8/common/x86/recon_sse2.asm => media/libvpx/libvpx/vp8/common/x86/recon_sse2.asm rename : media/libvpx/vp8/common/x86/recon_wrapper_sse2.c => media/libvpx/libvpx/vp8/common/x86/recon_wrapper_sse2.c rename : media/libvpx/vp8/common/x86/subpixel_mmx.asm => media/libvpx/libvpx/vp8/common/x86/subpixel_mmx.asm rename : media/libvpx/vp8/common/x86/subpixel_sse2.asm => media/libvpx/libvpx/vp8/common/x86/subpixel_sse2.asm rename : media/libvpx/vp8/common/x86/subpixel_ssse3.asm => media/libvpx/libvpx/vp8/common/x86/subpixel_ssse3.asm rename : media/libvpx/vp8/common/x86/variance_impl_sse2.asm => media/libvpx/libvpx/vp8/common/x86/variance_impl_sse2.asm rename : media/libvpx/vp8/common/x86/variance_impl_ssse3.asm => media/libvpx/libvpx/vp8/common/x86/variance_impl_ssse3.asm rename : media/libvpx/vp8/common/x86/variance_ssse3.c => media/libvpx/libvpx/vp8/common/x86/variance_ssse3.c rename : media/libvpx/vp8/common/x86/vp8_asm_stubs.c => media/libvpx/libvpx/vp8/common/x86/vp8_asm_stubs.c rename : media/libvpx/vp8/common/x86/vp8_variance_impl_mmx.asm => media/libvpx/libvpx/vp8/common/x86/vp8_variance_impl_mmx.asm rename : media/libvpx/vp8/common/x86/vp8_variance_mmx.c => media/libvpx/libvpx/vp8/common/x86/vp8_variance_mmx.c rename : media/libvpx/vp8/common/x86/vp8_variance_sse2.c => media/libvpx/libvpx/vp8/common/x86/vp8_variance_sse2.c rename : media/libvpx/vp8/decoder/dboolhuff.c => media/libvpx/libvpx/vp8/decoder/dboolhuff.c rename : media/libvpx/vp8/decoder/dboolhuff.h => media/libvpx/libvpx/vp8/decoder/dboolhuff.h rename : media/libvpx/vp8/decoder/decodeframe.c => media/libvpx/libvpx/vp8/decoder/decodeframe.c rename : media/libvpx/vp8/decoder/decodemv.c => media/libvpx/libvpx/vp8/decoder/decodemv.c rename : media/libvpx/vp8/decoder/decodemv.h => media/libvpx/libvpx/vp8/decoder/decodemv.h rename : media/libvpx/vp8/decoder/decoderthreading.h => media/libvpx/libvpx/vp8/decoder/decoderthreading.h rename : media/libvpx/vp8/decoder/detokenize.c => media/libvpx/libvpx/vp8/decoder/detokenize.c rename : media/libvpx/vp8/decoder/detokenize.h => media/libvpx/libvpx/vp8/decoder/detokenize.h rename : media/libvpx/vp8/decoder/ec_types.h => media/libvpx/libvpx/vp8/decoder/ec_types.h rename : media/libvpx/vp8/decoder/error_concealment.c => media/libvpx/libvpx/vp8/decoder/error_concealment.c rename : media/libvpx/vp8/decoder/error_concealment.h => media/libvpx/libvpx/vp8/decoder/error_concealment.h rename : media/libvpx/vp8/decoder/onyxd_if.c => media/libvpx/libvpx/vp8/decoder/onyxd_if.c rename : media/libvpx/vp8/decoder/onyxd_int.h => media/libvpx/libvpx/vp8/decoder/onyxd_int.h rename : media/libvpx/vp8/decoder/threading.c => media/libvpx/libvpx/vp8/decoder/threading.c rename : media/libvpx/vp8/decoder/treereader.h => media/libvpx/libvpx/vp8/decoder/treereader.h rename : media/libvpx/vp8/encoder/arm/armv6/vp8_short_fdct4x4_armv6.asm => media/libvpx/libvpx/vp8/encoder/arm/armv6/vp8_short_fdct4x4_armv6.asm rename : media/libvpx/vp8/encoder/arm/armv6/walsh_v6.asm => media/libvpx/libvpx/vp8/encoder/arm/armv6/walsh_v6.asm rename : media/libvpx/vp8/encoder/arm/dct_arm.c => media/libvpx/libvpx/vp8/encoder/arm/dct_arm.c rename : media/libvpx/vp8/encoder/arm/neon/denoising_neon.c => media/libvpx/libvpx/vp8/encoder/arm/neon/denoising_neon.c rename : media/libvpx/vp8/encoder/arm/neon/fastquantizeb_neon.c => media/libvpx/libvpx/vp8/encoder/arm/neon/fastquantizeb_neon.c rename : media/libvpx/vp8/encoder/arm/neon/shortfdct_neon.c => media/libvpx/libvpx/vp8/encoder/arm/neon/shortfdct_neon.c rename : media/libvpx/vp8/encoder/arm/neon/subtract_neon.c => media/libvpx/libvpx/vp8/encoder/arm/neon/subtract_neon.c rename : media/libvpx/vp8/encoder/arm/neon/vp8_shortwalsh4x4_neon.c => media/libvpx/libvpx/vp8/encoder/arm/neon/vp8_shortwalsh4x4_neon.c rename : media/libvpx/vp8/encoder/bitstream.c => media/libvpx/libvpx/vp8/encoder/bitstream.c rename : media/libvpx/vp8/encoder/bitstream.h => media/libvpx/libvpx/vp8/encoder/bitstream.h rename : media/libvpx/vp8/encoder/block.h => media/libvpx/libvpx/vp8/encoder/block.h rename : media/libvpx/vp8/encoder/boolhuff.c => media/libvpx/libvpx/vp8/encoder/boolhuff.c rename : media/libvpx/vp8/encoder/boolhuff.h => media/libvpx/libvpx/vp8/encoder/boolhuff.h rename : media/libvpx/vp8/encoder/dct.c => media/libvpx/libvpx/vp8/encoder/dct.c rename : media/libvpx/vp8/encoder/dct_value_cost.h => media/libvpx/libvpx/vp8/encoder/dct_value_cost.h rename : media/libvpx/vp8/encoder/dct_value_tokens.h => media/libvpx/libvpx/vp8/encoder/dct_value_tokens.h rename : media/libvpx/vp8/encoder/defaultcoefcounts.h => media/libvpx/libvpx/vp8/encoder/defaultcoefcounts.h rename : media/libvpx/vp8/encoder/denoising.c => media/libvpx/libvpx/vp8/encoder/denoising.c rename : media/libvpx/vp8/encoder/denoising.h => media/libvpx/libvpx/vp8/encoder/denoising.h rename : media/libvpx/vp8/encoder/encodeframe.c => media/libvpx/libvpx/vp8/encoder/encodeframe.c rename : media/libvpx/vp8/encoder/encodeframe.h => media/libvpx/libvpx/vp8/encoder/encodeframe.h rename : media/libvpx/vp8/encoder/encodeintra.c => media/libvpx/libvpx/vp8/encoder/encodeintra.c rename : media/libvpx/vp8/encoder/encodeintra.h => media/libvpx/libvpx/vp8/encoder/encodeintra.h rename : media/libvpx/vp8/encoder/encodemb.c => media/libvpx/libvpx/vp8/encoder/encodemb.c rename : media/libvpx/vp8/encoder/encodemb.h => media/libvpx/libvpx/vp8/encoder/encodemb.h rename : media/libvpx/vp8/encoder/encodemv.c => media/libvpx/libvpx/vp8/encoder/encodemv.c rename : media/libvpx/vp8/encoder/encodemv.h => media/libvpx/libvpx/vp8/encoder/encodemv.h rename : media/libvpx/vp8/encoder/ethreading.c => media/libvpx/libvpx/vp8/encoder/ethreading.c rename : media/libvpx/vp8/encoder/firstpass.c => media/libvpx/libvpx/vp8/encoder/firstpass.c rename : media/libvpx/vp8/encoder/firstpass.h => media/libvpx/libvpx/vp8/encoder/firstpass.h rename : media/libvpx/vp8/encoder/lookahead.c => media/libvpx/libvpx/vp8/encoder/lookahead.c rename : media/libvpx/vp8/encoder/lookahead.h => media/libvpx/libvpx/vp8/encoder/lookahead.h rename : media/libvpx/vp8/encoder/mcomp.c => media/libvpx/libvpx/vp8/encoder/mcomp.c rename : media/libvpx/vp8/encoder/mcomp.h => media/libvpx/libvpx/vp8/encoder/mcomp.h rename : media/libvpx/vp8/encoder/modecosts.c => media/libvpx/libvpx/vp8/encoder/modecosts.c rename : media/libvpx/vp8/encoder/modecosts.h => media/libvpx/libvpx/vp8/encoder/modecosts.h rename : media/libvpx/vp8/encoder/mr_dissim.c => media/libvpx/libvpx/vp8/encoder/mr_dissim.c rename : media/libvpx/vp8/encoder/mr_dissim.h => media/libvpx/libvpx/vp8/encoder/mr_dissim.h rename : media/libvpx/vp8/encoder/onyx_if.c => media/libvpx/libvpx/vp8/encoder/onyx_if.c rename : media/libvpx/vp8/encoder/onyx_int.h => media/libvpx/libvpx/vp8/encoder/onyx_int.h rename : media/libvpx/vp8/encoder/pickinter.c => media/libvpx/libvpx/vp8/encoder/pickinter.c rename : media/libvpx/vp8/encoder/pickinter.h => media/libvpx/libvpx/vp8/encoder/pickinter.h rename : media/libvpx/vp8/encoder/picklpf.c => media/libvpx/libvpx/vp8/encoder/picklpf.c rename : media/libvpx/vp8/encoder/quantize.c => media/libvpx/libvpx/vp8/encoder/quantize.c rename : media/libvpx/vp8/encoder/quantize.h => media/libvpx/libvpx/vp8/encoder/quantize.h rename : media/libvpx/vp8/encoder/ratectrl.c => media/libvpx/libvpx/vp8/encoder/ratectrl.c rename : media/libvpx/vp8/encoder/ratectrl.h => media/libvpx/libvpx/vp8/encoder/ratectrl.h rename : media/libvpx/vp8/encoder/rdopt.c => media/libvpx/libvpx/vp8/encoder/rdopt.c rename : media/libvpx/vp8/encoder/rdopt.h => media/libvpx/libvpx/vp8/encoder/rdopt.h rename : media/libvpx/vp8/encoder/segmentation.c => media/libvpx/libvpx/vp8/encoder/segmentation.c rename : media/libvpx/vp8/encoder/segmentation.h => media/libvpx/libvpx/vp8/encoder/segmentation.h rename : media/libvpx/vp8/encoder/temporal_filter.c => media/libvpx/libvpx/vp8/encoder/temporal_filter.c rename : media/libvpx/vp8/encoder/tokenize.c => media/libvpx/libvpx/vp8/encoder/tokenize.c rename : media/libvpx/vp8/encoder/tokenize.h => media/libvpx/libvpx/vp8/encoder/tokenize.h rename : media/libvpx/vp8/encoder/treewriter.c => media/libvpx/libvpx/vp8/encoder/treewriter.c rename : media/libvpx/vp8/encoder/treewriter.h => media/libvpx/libvpx/vp8/encoder/treewriter.h rename : media/libvpx/vp8/encoder/x86/dct_mmx.asm => media/libvpx/libvpx/vp8/encoder/x86/dct_mmx.asm rename : media/libvpx/vp8/encoder/x86/dct_sse2.asm => media/libvpx/libvpx/vp8/encoder/x86/dct_sse2.asm rename : media/libvpx/vp8/encoder/x86/denoising_sse2.c => media/libvpx/libvpx/vp8/encoder/x86/denoising_sse2.c rename : media/libvpx/vp8/encoder/x86/encodeopt.asm => media/libvpx/libvpx/vp8/encoder/x86/encodeopt.asm rename : media/libvpx/vp8/encoder/x86/fwalsh_sse2.asm => media/libvpx/libvpx/vp8/encoder/x86/fwalsh_sse2.asm rename : media/libvpx/vp8/encoder/x86/quantize_mmx.asm => media/libvpx/libvpx/vp8/encoder/x86/quantize_mmx.asm rename : media/libvpx/vp8/encoder/x86/quantize_sse2.c => media/libvpx/libvpx/vp8/encoder/x86/quantize_sse2.c rename : media/libvpx/vp8/encoder/x86/quantize_sse4.c => media/libvpx/libvpx/vp8/encoder/x86/quantize_sse4.c rename : media/libvpx/vp8/encoder/x86/quantize_ssse3.c => media/libvpx/libvpx/vp8/encoder/x86/quantize_ssse3.c rename : media/libvpx/vp8/encoder/x86/ssim_opt_x86_64.asm => media/libvpx/libvpx/vp8/encoder/x86/ssim_opt_x86_64.asm rename : media/libvpx/vp8/encoder/x86/subtract_mmx.asm => media/libvpx/libvpx/vp8/encoder/x86/subtract_mmx.asm rename : media/libvpx/vp8/encoder/x86/subtract_sse2.asm => media/libvpx/libvpx/vp8/encoder/x86/subtract_sse2.asm rename : media/libvpx/vp8/encoder/x86/temporal_filter_apply_sse2.asm => media/libvpx/libvpx/vp8/encoder/x86/temporal_filter_apply_sse2.asm rename : media/libvpx/vp8/encoder/x86/vp8_enc_stubs_mmx.c => media/libvpx/libvpx/vp8/encoder/x86/vp8_enc_stubs_mmx.c rename : media/libvpx/vp8/encoder/x86/vp8_enc_stubs_sse2.c => media/libvpx/libvpx/vp8/encoder/x86/vp8_enc_stubs_sse2.c rename : media/libvpx/vp8/vp8_dx_iface.c => media/libvpx/libvpx/vp8/vp8_dx_iface.c rename : media/libvpx/vp9/common/arm/neon/vp9_convolve8_avg_neon.c => media/libvpx/libvpx/vp9/common/arm/neon/vp9_convolve8_avg_neon.c rename : media/libvpx/vp9/common/arm/neon/vp9_convolve8_avg_neon_asm.asm => media/libvpx/libvpx/vp9/common/arm/neon/vp9_convolve8_avg_neon_asm.asm rename : media/libvpx/vp9/common/arm/neon/vp9_convolve8_neon.c => media/libvpx/libvpx/vp9/common/arm/neon/vp9_convolve8_neon.c rename : media/libvpx/vp9/common/arm/neon/vp9_convolve8_neon_asm.asm => media/libvpx/libvpx/vp9/common/arm/neon/vp9_convolve8_neon_asm.asm rename : media/libvpx/vp9/common/arm/neon/vp9_convolve_avg_neon.c => media/libvpx/libvpx/vp9/common/arm/neon/vp9_convolve_avg_neon.c rename : media/libvpx/vp9/common/arm/neon/vp9_convolve_avg_neon_asm.asm => media/libvpx/libvpx/vp9/common/arm/neon/vp9_convolve_avg_neon_asm.asm rename : media/libvpx/vp9/common/arm/neon/vp9_convolve_neon.c => media/libvpx/libvpx/vp9/common/arm/neon/vp9_convolve_neon.c rename : media/libvpx/vp9/common/arm/neon/vp9_copy_neon.c => media/libvpx/libvpx/vp9/common/arm/neon/vp9_copy_neon.c rename : media/libvpx/vp9/common/arm/neon/vp9_copy_neon_asm.asm => media/libvpx/libvpx/vp9/common/arm/neon/vp9_copy_neon_asm.asm rename : media/libvpx/vp9/common/arm/neon/vp9_idct16x16_1_add_neon.c => media/libvpx/libvpx/vp9/common/arm/neon/vp9_idct16x16_1_add_neon.c rename : media/libvpx/vp9/common/arm/neon/vp9_idct16x16_1_add_neon_asm.asm => media/libvpx/libvpx/vp9/common/arm/neon/vp9_idct16x16_1_add_neon_asm.asm rename : media/libvpx/vp9/common/arm/neon/vp9_idct16x16_add_neon.c => media/libvpx/libvpx/vp9/common/arm/neon/vp9_idct16x16_add_neon.c rename : media/libvpx/vp9/common/arm/neon/vp9_idct16x16_add_neon_asm.asm => media/libvpx/libvpx/vp9/common/arm/neon/vp9_idct16x16_add_neon_asm.asm rename : media/libvpx/vp9/common/arm/neon/vp9_idct16x16_neon.c => media/libvpx/libvpx/vp9/common/arm/neon/vp9_idct16x16_neon.c rename : media/libvpx/vp9/common/arm/neon/vp9_idct32x32_1_add_neon.c => media/libvpx/libvpx/vp9/common/arm/neon/vp9_idct32x32_1_add_neon.c rename : media/libvpx/vp9/common/arm/neon/vp9_idct32x32_1_add_neon_asm.asm => media/libvpx/libvpx/vp9/common/arm/neon/vp9_idct32x32_1_add_neon_asm.asm rename : media/libvpx/vp9/common/arm/neon/vp9_idct32x32_add_neon.c => media/libvpx/libvpx/vp9/common/arm/neon/vp9_idct32x32_add_neon.c rename : media/libvpx/vp9/common/arm/neon/vp9_idct32x32_add_neon_asm.asm => media/libvpx/libvpx/vp9/common/arm/neon/vp9_idct32x32_add_neon_asm.asm rename : media/libvpx/vp9/common/arm/neon/vp9_idct4x4_1_add_neon.c => media/libvpx/libvpx/vp9/common/arm/neon/vp9_idct4x4_1_add_neon.c rename : media/libvpx/vp9/common/arm/neon/vp9_idct4x4_1_add_neon_asm.asm => media/libvpx/libvpx/vp9/common/arm/neon/vp9_idct4x4_1_add_neon_asm.asm rename : media/libvpx/vp9/common/arm/neon/vp9_idct4x4_add_neon.c => media/libvpx/libvpx/vp9/common/arm/neon/vp9_idct4x4_add_neon.c rename : media/libvpx/vp9/common/arm/neon/vp9_idct4x4_add_neon_asm.asm => media/libvpx/libvpx/vp9/common/arm/neon/vp9_idct4x4_add_neon_asm.asm rename : media/libvpx/vp9/common/arm/neon/vp9_idct8x8_1_add_neon.c => media/libvpx/libvpx/vp9/common/arm/neon/vp9_idct8x8_1_add_neon.c rename : media/libvpx/vp9/common/arm/neon/vp9_idct8x8_1_add_neon_asm.asm => media/libvpx/libvpx/vp9/common/arm/neon/vp9_idct8x8_1_add_neon_asm.asm rename : media/libvpx/vp9/common/arm/neon/vp9_idct8x8_add_neon.c => media/libvpx/libvpx/vp9/common/arm/neon/vp9_idct8x8_add_neon.c rename : media/libvpx/vp9/common/arm/neon/vp9_idct8x8_add_neon_asm.asm => media/libvpx/libvpx/vp9/common/arm/neon/vp9_idct8x8_add_neon_asm.asm rename : media/libvpx/vp9/common/arm/neon/vp9_iht4x4_add_neon.c => media/libvpx/libvpx/vp9/common/arm/neon/vp9_iht4x4_add_neon.c rename : media/libvpx/vp9/common/arm/neon/vp9_iht8x8_add_neon.c => media/libvpx/libvpx/vp9/common/arm/neon/vp9_iht8x8_add_neon.c rename : media/libvpx/vp9/common/arm/neon/vp9_loopfilter_16_neon.c => media/libvpx/libvpx/vp9/common/arm/neon/vp9_loopfilter_16_neon.c rename : media/libvpx/vp9/common/arm/neon/vp9_loopfilter_16_neon_asm.asm => media/libvpx/libvpx/vp9/common/arm/neon/vp9_loopfilter_16_neon_asm.asm rename : media/libvpx/vp9/common/arm/neon/vp9_loopfilter_4_neon.c => media/libvpx/libvpx/vp9/common/arm/neon/vp9_loopfilter_4_neon.c rename : media/libvpx/vp9/common/arm/neon/vp9_loopfilter_4_neon_asm.asm => media/libvpx/libvpx/vp9/common/arm/neon/vp9_loopfilter_4_neon_asm.asm rename : media/libvpx/vp9/common/arm/neon/vp9_loopfilter_8_neon.c => media/libvpx/libvpx/vp9/common/arm/neon/vp9_loopfilter_8_neon.c rename : media/libvpx/vp9/common/arm/neon/vp9_loopfilter_8_neon_asm.asm => media/libvpx/libvpx/vp9/common/arm/neon/vp9_loopfilter_8_neon_asm.asm rename : media/libvpx/vp9/common/arm/neon/vp9_loopfilter_neon.c => media/libvpx/libvpx/vp9/common/arm/neon/vp9_loopfilter_neon.c rename : media/libvpx/vp9/common/arm/neon/vp9_mb_lpf_neon.asm => media/libvpx/libvpx/vp9/common/arm/neon/vp9_mb_lpf_neon.asm rename : media/libvpx/vp9/common/arm/neon/vp9_reconintra_neon.c => media/libvpx/libvpx/vp9/common/arm/neon/vp9_reconintra_neon.c rename : media/libvpx/vp9/common/arm/neon/vp9_reconintra_neon_asm.asm => media/libvpx/libvpx/vp9/common/arm/neon/vp9_reconintra_neon_asm.asm rename : media/libvpx/vp9/common/arm/neon/vp9_save_reg_neon.asm => media/libvpx/libvpx/vp9/common/arm/neon/vp9_save_reg_neon.asm rename : media/libvpx/vp9/common/vp9_alloccommon.c => media/libvpx/libvpx/vp9/common/vp9_alloccommon.c rename : media/libvpx/vp9/common/vp9_alloccommon.h => media/libvpx/libvpx/vp9/common/vp9_alloccommon.h rename : media/libvpx/vp9/common/vp9_blockd.c => media/libvpx/libvpx/vp9/common/vp9_blockd.c rename : media/libvpx/vp9/common/vp9_blockd.h => media/libvpx/libvpx/vp9/common/vp9_blockd.h rename : media/libvpx/vp9/common/vp9_common.h => media/libvpx/libvpx/vp9/common/vp9_common.h rename : media/libvpx/vp9/common/vp9_common_data.c => media/libvpx/libvpx/vp9/common/vp9_common_data.c rename : media/libvpx/vp9/common/vp9_common_data.h => media/libvpx/libvpx/vp9/common/vp9_common_data.h rename : media/libvpx/vp9/common/vp9_convolve.c => media/libvpx/libvpx/vp9/common/vp9_convolve.c rename : media/libvpx/vp9/common/vp9_convolve.h => media/libvpx/libvpx/vp9/common/vp9_convolve.h rename : media/libvpx/vp9/common/vp9_debugmodes.c => media/libvpx/libvpx/vp9/common/vp9_debugmodes.c rename : media/libvpx/vp9/common/vp9_entropy.c => media/libvpx/libvpx/vp9/common/vp9_entropy.c rename : media/libvpx/vp9/common/vp9_entropy.h => media/libvpx/libvpx/vp9/common/vp9_entropy.h rename : media/libvpx/vp9/common/vp9_entropymode.c => media/libvpx/libvpx/vp9/common/vp9_entropymode.c rename : media/libvpx/vp9/common/vp9_entropymode.h => media/libvpx/libvpx/vp9/common/vp9_entropymode.h rename : media/libvpx/vp9/common/vp9_entropymv.c => media/libvpx/libvpx/vp9/common/vp9_entropymv.c rename : media/libvpx/vp9/common/vp9_entropymv.h => media/libvpx/libvpx/vp9/common/vp9_entropymv.h rename : media/libvpx/vp9/common/vp9_enums.h => media/libvpx/libvpx/vp9/common/vp9_enums.h rename : media/libvpx/vp9/common/vp9_filter.c => media/libvpx/libvpx/vp9/common/vp9_filter.c rename : media/libvpx/vp9/common/vp9_filter.h => media/libvpx/libvpx/vp9/common/vp9_filter.h rename : media/libvpx/vp9/common/vp9_frame_buffers.c => media/libvpx/libvpx/vp9/common/vp9_frame_buffers.c rename : media/libvpx/vp9/common/vp9_frame_buffers.h => media/libvpx/libvpx/vp9/common/vp9_frame_buffers.h rename : media/libvpx/vp9/common/vp9_idct.c => media/libvpx/libvpx/vp9/common/vp9_idct.c rename : media/libvpx/vp9/common/vp9_idct.h => media/libvpx/libvpx/vp9/common/vp9_idct.h rename : media/libvpx/vp9/common/vp9_loopfilter.c => media/libvpx/libvpx/vp9/common/vp9_loopfilter.c rename : media/libvpx/vp9/common/vp9_loopfilter.h => media/libvpx/libvpx/vp9/common/vp9_loopfilter.h rename : media/libvpx/vp9/common/vp9_loopfilter_filters.c => media/libvpx/libvpx/vp9/common/vp9_loopfilter_filters.c rename : media/libvpx/vp9/common/vp9_mfqe.c => media/libvpx/libvpx/vp9/common/vp9_mfqe.c rename : media/libvpx/vp9/common/vp9_mfqe.h => media/libvpx/libvpx/vp9/common/vp9_mfqe.h rename : media/libvpx/vp9/common/vp9_mv.h => media/libvpx/libvpx/vp9/common/vp9_mv.h rename : media/libvpx/vp9/common/vp9_mvref_common.c => media/libvpx/libvpx/vp9/common/vp9_mvref_common.c rename : media/libvpx/vp9/common/vp9_mvref_common.h => media/libvpx/libvpx/vp9/common/vp9_mvref_common.h rename : media/libvpx/vp9/common/vp9_onyxc_int.h => media/libvpx/libvpx/vp9/common/vp9_onyxc_int.h rename : media/libvpx/vp9/common/vp9_postproc.c => media/libvpx/libvpx/vp9/common/vp9_postproc.c rename : media/libvpx/vp9/common/vp9_postproc.h => media/libvpx/libvpx/vp9/common/vp9_postproc.h rename : media/libvpx/vp9/common/vp9_ppflags.h => media/libvpx/libvpx/vp9/common/vp9_ppflags.h rename : media/libvpx/vp9/common/vp9_pred_common.c => media/libvpx/libvpx/vp9/common/vp9_pred_common.c rename : media/libvpx/vp9/common/vp9_pred_common.h => media/libvpx/libvpx/vp9/common/vp9_pred_common.h rename : media/libvpx/vp9/common/vp9_prob.c => media/libvpx/libvpx/vp9/common/vp9_prob.c rename : media/libvpx/vp9/common/vp9_prob.h => media/libvpx/libvpx/vp9/common/vp9_prob.h rename : media/libvpx/vp9/common/vp9_quant_common.c => media/libvpx/libvpx/vp9/common/vp9_quant_common.c rename : media/libvpx/vp9/common/vp9_quant_common.h => media/libvpx/libvpx/vp9/common/vp9_quant_common.h rename : media/libvpx/vp9/common/vp9_reconinter.c => media/libvpx/libvpx/vp9/common/vp9_reconinter.c rename : media/libvpx/vp9/common/vp9_reconinter.h => media/libvpx/libvpx/vp9/common/vp9_reconinter.h rename : media/libvpx/vp9/common/vp9_reconintra.c => media/libvpx/libvpx/vp9/common/vp9_reconintra.c rename : media/libvpx/vp9/common/vp9_reconintra.h => media/libvpx/libvpx/vp9/common/vp9_reconintra.h rename : media/libvpx/vp9/common/vp9_rtcd.c => media/libvpx/libvpx/vp9/common/vp9_rtcd.c rename : media/libvpx/vp9/common/vp9_scale.c => media/libvpx/libvpx/vp9/common/vp9_scale.c rename : media/libvpx/vp9/common/vp9_scale.h => media/libvpx/libvpx/vp9/common/vp9_scale.h rename : media/libvpx/vp9/common/vp9_scan.c => media/libvpx/libvpx/vp9/common/vp9_scan.c rename : media/libvpx/vp9/common/vp9_scan.h => media/libvpx/libvpx/vp9/common/vp9_scan.h rename : media/libvpx/vp9/common/vp9_seg_common.c => media/libvpx/libvpx/vp9/common/vp9_seg_common.c rename : media/libvpx/vp9/common/vp9_seg_common.h => media/libvpx/libvpx/vp9/common/vp9_seg_common.h rename : media/libvpx/vp9/common/vp9_systemdependent.h => media/libvpx/libvpx/vp9/common/vp9_systemdependent.h rename : media/libvpx/vp9/common/vp9_thread.c => media/libvpx/libvpx/vp9/common/vp9_thread.c rename : media/libvpx/vp9/common/vp9_thread.h => media/libvpx/libvpx/vp9/common/vp9_thread.h rename : media/libvpx/vp9/common/vp9_thread_common.c => media/libvpx/libvpx/vp9/common/vp9_thread_common.c rename : media/libvpx/vp9/common/vp9_thread_common.h => media/libvpx/libvpx/vp9/common/vp9_thread_common.h rename : media/libvpx/vp9/common/vp9_tile_common.c => media/libvpx/libvpx/vp9/common/vp9_tile_common.c rename : media/libvpx/vp9/common/vp9_tile_common.h => media/libvpx/libvpx/vp9/common/vp9_tile_common.h rename : media/libvpx/vp9/common/x86/convolve.h => media/libvpx/libvpx/vp9/common/x86/convolve.h rename : media/libvpx/vp9/common/x86/vp9_asm_stubs.c => media/libvpx/libvpx/vp9/common/x86/vp9_asm_stubs.c rename : media/libvpx/vp9/common/x86/vp9_copy_sse2.asm => media/libvpx/libvpx/vp9/common/x86/vp9_copy_sse2.asm rename : media/libvpx/vp9/common/x86/vp9_high_intrapred_sse2.asm => media/libvpx/libvpx/vp9/common/x86/vp9_high_intrapred_sse2.asm rename : media/libvpx/vp9/common/x86/vp9_high_loopfilter_intrin_sse2.c => media/libvpx/libvpx/vp9/common/x86/vp9_high_loopfilter_intrin_sse2.c rename : media/libvpx/vp9/common/x86/vp9_high_subpixel_8t_sse2.asm => media/libvpx/libvpx/vp9/common/x86/vp9_high_subpixel_8t_sse2.asm rename : media/libvpx/vp9/common/x86/vp9_high_subpixel_bilinear_sse2.asm => media/libvpx/libvpx/vp9/common/x86/vp9_high_subpixel_bilinear_sse2.asm rename : media/libvpx/vp9/common/x86/vp9_idct_intrin_sse2.c => media/libvpx/libvpx/vp9/common/x86/vp9_idct_intrin_sse2.c rename : media/libvpx/vp9/common/x86/vp9_idct_intrin_sse2.h => media/libvpx/libvpx/vp9/common/x86/vp9_idct_intrin_sse2.h rename : media/libvpx/vp9/common/x86/vp9_idct_ssse3_x86_64.asm => media/libvpx/libvpx/vp9/common/x86/vp9_idct_ssse3_x86_64.asm rename : media/libvpx/vp9/common/x86/vp9_intrapred_sse2.asm => media/libvpx/libvpx/vp9/common/x86/vp9_intrapred_sse2.asm rename : media/libvpx/vp9/common/x86/vp9_intrapred_ssse3.asm => media/libvpx/libvpx/vp9/common/x86/vp9_intrapred_ssse3.asm rename : media/libvpx/vp9/common/x86/vp9_loopfilter_intrin_avx2.c => media/libvpx/libvpx/vp9/common/x86/vp9_loopfilter_intrin_avx2.c rename : media/libvpx/vp9/common/x86/vp9_loopfilter_intrin_sse2.c => media/libvpx/libvpx/vp9/common/x86/vp9_loopfilter_intrin_sse2.c rename : media/libvpx/vp9/common/x86/vp9_loopfilter_mmx.asm => media/libvpx/libvpx/vp9/common/x86/vp9_loopfilter_mmx.asm rename : media/libvpx/vp9/common/x86/vp9_mfqe_sse2.asm => media/libvpx/libvpx/vp9/common/x86/vp9_mfqe_sse2.asm rename : media/libvpx/vp9/common/x86/vp9_postproc_sse2.asm => media/libvpx/libvpx/vp9/common/x86/vp9_postproc_sse2.asm rename : media/libvpx/vp9/common/x86/vp9_subpixel_8t_intrin_avx2.c => media/libvpx/libvpx/vp9/common/x86/vp9_subpixel_8t_intrin_avx2.c rename : media/libvpx/vp9/common/x86/vp9_subpixel_8t_intrin_ssse3.c => media/libvpx/libvpx/vp9/common/x86/vp9_subpixel_8t_intrin_ssse3.c rename : media/libvpx/vp9/common/x86/vp9_subpixel_8t_sse2.asm => media/libvpx/libvpx/vp9/common/x86/vp9_subpixel_8t_sse2.asm rename : media/libvpx/vp9/common/x86/vp9_subpixel_8t_ssse3.asm => media/libvpx/libvpx/vp9/common/x86/vp9_subpixel_8t_ssse3.asm rename : media/libvpx/vp9/common/x86/vp9_subpixel_bilinear_sse2.asm => media/libvpx/libvpx/vp9/common/x86/vp9_subpixel_bilinear_sse2.asm rename : media/libvpx/vp9/common/x86/vp9_subpixel_bilinear_ssse3.asm => media/libvpx/libvpx/vp9/common/x86/vp9_subpixel_bilinear_ssse3.asm rename : media/libvpx/vp9/decoder/vp9_decodeframe.c => media/libvpx/libvpx/vp9/decoder/vp9_decodeframe.c rename : media/libvpx/vp9/decoder/vp9_decodeframe.h => media/libvpx/libvpx/vp9/decoder/vp9_decodeframe.h rename : media/libvpx/vp9/decoder/vp9_decodemv.c => media/libvpx/libvpx/vp9/decoder/vp9_decodemv.c rename : media/libvpx/vp9/decoder/vp9_decodemv.h => media/libvpx/libvpx/vp9/decoder/vp9_decodemv.h rename : media/libvpx/vp9/decoder/vp9_decoder.c => media/libvpx/libvpx/vp9/decoder/vp9_decoder.c rename : media/libvpx/vp9/decoder/vp9_decoder.h => media/libvpx/libvpx/vp9/decoder/vp9_decoder.h rename : media/libvpx/vp9/decoder/vp9_detokenize.c => media/libvpx/libvpx/vp9/decoder/vp9_detokenize.c rename : media/libvpx/vp9/decoder/vp9_detokenize.h => media/libvpx/libvpx/vp9/decoder/vp9_detokenize.h rename : media/libvpx/vp9/decoder/vp9_dsubexp.c => media/libvpx/libvpx/vp9/decoder/vp9_dsubexp.c rename : media/libvpx/vp9/decoder/vp9_dsubexp.h => media/libvpx/libvpx/vp9/decoder/vp9_dsubexp.h rename : media/libvpx/vp9/decoder/vp9_dthread.c => media/libvpx/libvpx/vp9/decoder/vp9_dthread.c rename : media/libvpx/vp9/decoder/vp9_dthread.h => media/libvpx/libvpx/vp9/decoder/vp9_dthread.h rename : media/libvpx/vp9/decoder/vp9_read_bit_buffer.c => media/libvpx/libvpx/vp9/decoder/vp9_read_bit_buffer.c rename : media/libvpx/vp9/decoder/vp9_read_bit_buffer.h => media/libvpx/libvpx/vp9/decoder/vp9_read_bit_buffer.h rename : media/libvpx/vp9/decoder/vp9_reader.c => media/libvpx/libvpx/vp9/decoder/vp9_reader.c rename : media/libvpx/vp9/decoder/vp9_reader.h => media/libvpx/libvpx/vp9/decoder/vp9_reader.h rename : media/libvpx/vp9/encoder/arm/neon/vp9_dct_neon.c => media/libvpx/libvpx/vp9/encoder/arm/neon/vp9_dct_neon.c rename : media/libvpx/vp9/encoder/arm/neon/vp9_quantize_neon.c => media/libvpx/libvpx/vp9/encoder/arm/neon/vp9_quantize_neon.c rename : media/libvpx/vp9/encoder/arm/neon/vp9_subtract_neon.c => media/libvpx/libvpx/vp9/encoder/arm/neon/vp9_subtract_neon.c rename : media/libvpx/vp9/encoder/arm/neon/vp9_variance_neon.c => media/libvpx/libvpx/vp9/encoder/arm/neon/vp9_variance_neon.c rename : media/libvpx/vp9/encoder/arm/neon/vp9enc_avg_neon.c => media/libvpx/libvpx/vp9/encoder/arm/neon/vp9enc_avg_neon.c rename : media/libvpx/vp9/encoder/vp9_aq_complexity.c => media/libvpx/libvpx/vp9/encoder/vp9_aq_complexity.c rename : media/libvpx/vp9/encoder/vp9_aq_complexity.h => media/libvpx/libvpx/vp9/encoder/vp9_aq_complexity.h rename : media/libvpx/vp9/encoder/vp9_aq_cyclicrefresh.c => media/libvpx/libvpx/vp9/encoder/vp9_aq_cyclicrefresh.c rename : media/libvpx/vp9/encoder/vp9_aq_cyclicrefresh.h => media/libvpx/libvpx/vp9/encoder/vp9_aq_cyclicrefresh.h rename : media/libvpx/vp9/encoder/vp9_aq_variance.c => media/libvpx/libvpx/vp9/encoder/vp9_aq_variance.c rename : media/libvpx/vp9/encoder/vp9_aq_variance.h => media/libvpx/libvpx/vp9/encoder/vp9_aq_variance.h rename : media/libvpx/vp9/encoder/vp9_avg.c => media/libvpx/libvpx/vp9/encoder/vp9_avg.c rename : media/libvpx/vp9/encoder/vp9_bitstream.c => media/libvpx/libvpx/vp9/encoder/vp9_bitstream.c rename : media/libvpx/vp9/encoder/vp9_bitstream.h => media/libvpx/libvpx/vp9/encoder/vp9_bitstream.h rename : media/libvpx/vp9/encoder/vp9_block.h => media/libvpx/libvpx/vp9/encoder/vp9_block.h rename : media/libvpx/vp9/encoder/vp9_blockiness.c => media/libvpx/libvpx/vp9/encoder/vp9_blockiness.c rename : media/libvpx/vp9/encoder/vp9_context_tree.c => media/libvpx/libvpx/vp9/encoder/vp9_context_tree.c rename : media/libvpx/vp9/encoder/vp9_context_tree.h => media/libvpx/libvpx/vp9/encoder/vp9_context_tree.h rename : media/libvpx/vp9/encoder/vp9_cost.c => media/libvpx/libvpx/vp9/encoder/vp9_cost.c rename : media/libvpx/vp9/encoder/vp9_cost.h => media/libvpx/libvpx/vp9/encoder/vp9_cost.h rename : media/libvpx/vp9/encoder/vp9_dct.c => media/libvpx/libvpx/vp9/encoder/vp9_dct.c rename : media/libvpx/vp9/encoder/vp9_dct.h => media/libvpx/libvpx/vp9/encoder/vp9_dct.h rename : media/libvpx/vp9/encoder/vp9_denoiser.c => media/libvpx/libvpx/vp9/encoder/vp9_denoiser.c rename : media/libvpx/vp9/encoder/vp9_denoiser.h => media/libvpx/libvpx/vp9/encoder/vp9_denoiser.h rename : media/libvpx/vp9/encoder/vp9_encodeframe.c => media/libvpx/libvpx/vp9/encoder/vp9_encodeframe.c rename : media/libvpx/vp9/encoder/vp9_encodeframe.h => media/libvpx/libvpx/vp9/encoder/vp9_encodeframe.h rename : media/libvpx/vp9/encoder/vp9_encodemb.c => media/libvpx/libvpx/vp9/encoder/vp9_encodemb.c rename : media/libvpx/vp9/encoder/vp9_encodemb.h => media/libvpx/libvpx/vp9/encoder/vp9_encodemb.h rename : media/libvpx/vp9/encoder/vp9_encodemv.c => media/libvpx/libvpx/vp9/encoder/vp9_encodemv.c rename : media/libvpx/vp9/encoder/vp9_encodemv.h => media/libvpx/libvpx/vp9/encoder/vp9_encodemv.h rename : media/libvpx/vp9/encoder/vp9_encoder.c => media/libvpx/libvpx/vp9/encoder/vp9_encoder.c rename : media/libvpx/vp9/encoder/vp9_encoder.h => media/libvpx/libvpx/vp9/encoder/vp9_encoder.h rename : media/libvpx/vp9/encoder/vp9_ethread.c => media/libvpx/libvpx/vp9/encoder/vp9_ethread.c rename : media/libvpx/vp9/encoder/vp9_ethread.h => media/libvpx/libvpx/vp9/encoder/vp9_ethread.h rename : media/libvpx/vp9/encoder/vp9_extend.c => media/libvpx/libvpx/vp9/encoder/vp9_extend.c rename : media/libvpx/vp9/encoder/vp9_extend.h => media/libvpx/libvpx/vp9/encoder/vp9_extend.h rename : media/libvpx/vp9/encoder/vp9_fastssim.c => media/libvpx/libvpx/vp9/encoder/vp9_fastssim.c rename : media/libvpx/vp9/encoder/vp9_firstpass.c => media/libvpx/libvpx/vp9/encoder/vp9_firstpass.c rename : media/libvpx/vp9/encoder/vp9_firstpass.h => media/libvpx/libvpx/vp9/encoder/vp9_firstpass.h rename : media/libvpx/vp9/encoder/vp9_lookahead.c => media/libvpx/libvpx/vp9/encoder/vp9_lookahead.c rename : media/libvpx/vp9/encoder/vp9_lookahead.h => media/libvpx/libvpx/vp9/encoder/vp9_lookahead.h rename : media/libvpx/vp9/encoder/vp9_mbgraph.c => media/libvpx/libvpx/vp9/encoder/vp9_mbgraph.c rename : media/libvpx/vp9/encoder/vp9_mbgraph.h => media/libvpx/libvpx/vp9/encoder/vp9_mbgraph.h rename : media/libvpx/vp9/encoder/vp9_mcomp.c => media/libvpx/libvpx/vp9/encoder/vp9_mcomp.c rename : media/libvpx/vp9/encoder/vp9_mcomp.h => media/libvpx/libvpx/vp9/encoder/vp9_mcomp.h rename : media/libvpx/vp9/encoder/vp9_picklpf.c => media/libvpx/libvpx/vp9/encoder/vp9_picklpf.c rename : media/libvpx/vp9/encoder/vp9_picklpf.h => media/libvpx/libvpx/vp9/encoder/vp9_picklpf.h rename : media/libvpx/vp9/encoder/vp9_pickmode.c => media/libvpx/libvpx/vp9/encoder/vp9_pickmode.c rename : media/libvpx/vp9/encoder/vp9_pickmode.h => media/libvpx/libvpx/vp9/encoder/vp9_pickmode.h rename : media/libvpx/vp9/encoder/vp9_psnrhvs.c => media/libvpx/libvpx/vp9/encoder/vp9_psnrhvs.c rename : media/libvpx/vp9/encoder/vp9_quantize.c => media/libvpx/libvpx/vp9/encoder/vp9_quantize.c rename : media/libvpx/vp9/encoder/vp9_quantize.h => media/libvpx/libvpx/vp9/encoder/vp9_quantize.h rename : media/libvpx/vp9/encoder/vp9_ratectrl.c => media/libvpx/libvpx/vp9/encoder/vp9_ratectrl.c rename : media/libvpx/vp9/encoder/vp9_ratectrl.h => media/libvpx/libvpx/vp9/encoder/vp9_ratectrl.h rename : media/libvpx/vp9/encoder/vp9_rd.c => media/libvpx/libvpx/vp9/encoder/vp9_rd.c rename : media/libvpx/vp9/encoder/vp9_rd.h => media/libvpx/libvpx/vp9/encoder/vp9_rd.h rename : media/libvpx/vp9/encoder/vp9_rdopt.c => media/libvpx/libvpx/vp9/encoder/vp9_rdopt.c rename : media/libvpx/vp9/encoder/vp9_rdopt.h => media/libvpx/libvpx/vp9/encoder/vp9_rdopt.h rename : media/libvpx/vp9/encoder/vp9_resize.c => media/libvpx/libvpx/vp9/encoder/vp9_resize.c rename : media/libvpx/vp9/encoder/vp9_resize.h => media/libvpx/libvpx/vp9/encoder/vp9_resize.h rename : media/libvpx/vp9/encoder/vp9_segmentation.c => media/libvpx/libvpx/vp9/encoder/vp9_segmentation.c rename : media/libvpx/vp9/encoder/vp9_segmentation.h => media/libvpx/libvpx/vp9/encoder/vp9_segmentation.h rename : media/libvpx/vp9/encoder/vp9_skin_detection.c => media/libvpx/libvpx/vp9/encoder/vp9_skin_detection.c rename : media/libvpx/vp9/encoder/vp9_skin_detection.h => media/libvpx/libvpx/vp9/encoder/vp9_skin_detection.h rename : media/libvpx/vp9/encoder/vp9_speed_features.c => media/libvpx/libvpx/vp9/encoder/vp9_speed_features.c rename : media/libvpx/vp9/encoder/vp9_speed_features.h => media/libvpx/libvpx/vp9/encoder/vp9_speed_features.h rename : media/libvpx/vp9/encoder/vp9_ssim.h => media/libvpx/libvpx/vp9/encoder/vp9_ssim.h rename : media/libvpx/vp9/encoder/vp9_subexp.c => media/libvpx/libvpx/vp9/encoder/vp9_subexp.c rename : media/libvpx/vp9/encoder/vp9_subexp.h => media/libvpx/libvpx/vp9/encoder/vp9_subexp.h rename : media/libvpx/vp9/encoder/vp9_svc_layercontext.c => media/libvpx/libvpx/vp9/encoder/vp9_svc_layercontext.c rename : media/libvpx/vp9/encoder/vp9_svc_layercontext.h => media/libvpx/libvpx/vp9/encoder/vp9_svc_layercontext.h rename : media/libvpx/vp9/encoder/vp9_temporal_filter.c => media/libvpx/libvpx/vp9/encoder/vp9_temporal_filter.c rename : media/libvpx/vp9/encoder/vp9_temporal_filter.h => media/libvpx/libvpx/vp9/encoder/vp9_temporal_filter.h rename : media/libvpx/vp9/encoder/vp9_tokenize.c => media/libvpx/libvpx/vp9/encoder/vp9_tokenize.c rename : media/libvpx/vp9/encoder/vp9_tokenize.h => media/libvpx/libvpx/vp9/encoder/vp9_tokenize.h rename : media/libvpx/vp9/encoder/vp9_treewriter.c => media/libvpx/libvpx/vp9/encoder/vp9_treewriter.c rename : media/libvpx/vp9/encoder/vp9_treewriter.h => media/libvpx/libvpx/vp9/encoder/vp9_treewriter.h rename : media/libvpx/vp9/encoder/vp9_variance.c => media/libvpx/libvpx/vp9/encoder/vp9_variance.c rename : media/libvpx/vp9/encoder/vp9_variance.h => media/libvpx/libvpx/vp9/encoder/vp9_variance.h rename : media/libvpx/vp9/encoder/vp9_write_bit_buffer.c => media/libvpx/libvpx/vp9/encoder/vp9_write_bit_buffer.c rename : media/libvpx/vp9/encoder/vp9_write_bit_buffer.h => media/libvpx/libvpx/vp9/encoder/vp9_write_bit_buffer.h rename : media/libvpx/vp9/encoder/vp9_writer.c => media/libvpx/libvpx/vp9/encoder/vp9_writer.c rename : media/libvpx/vp9/encoder/vp9_writer.h => media/libvpx/libvpx/vp9/encoder/vp9_writer.h rename : media/libvpx/vp9/encoder/x86/vp9_avg_intrin_sse2.c => media/libvpx/libvpx/vp9/encoder/x86/vp9_avg_intrin_sse2.c rename : media/libvpx/vp9/encoder/x86/vp9_dct32x32_avx2_impl.h => media/libvpx/libvpx/vp9/encoder/x86/vp9_dct32x32_avx2_impl.h rename : media/libvpx/vp9/encoder/x86/vp9_dct32x32_sse2_impl.h => media/libvpx/libvpx/vp9/encoder/x86/vp9_dct32x32_sse2_impl.h rename : media/libvpx/vp9/encoder/x86/vp9_dct_avx2.c => media/libvpx/libvpx/vp9/encoder/x86/vp9_dct_avx2.c rename : media/libvpx/vp9/encoder/x86/vp9_dct_mmx.asm => media/libvpx/libvpx/vp9/encoder/x86/vp9_dct_mmx.asm rename : media/libvpx/vp9/encoder/x86/vp9_dct_sse2.c => media/libvpx/libvpx/vp9/encoder/x86/vp9_dct_sse2.c rename : media/libvpx/vp9/encoder/x86/vp9_dct_sse2.h => media/libvpx/libvpx/vp9/encoder/x86/vp9_dct_sse2.h rename : media/libvpx/vp9/encoder/x86/vp9_dct_sse2_impl.h => media/libvpx/libvpx/vp9/encoder/x86/vp9_dct_sse2_impl.h rename : media/libvpx/vp9/encoder/x86/vp9_dct_ssse3.c => media/libvpx/libvpx/vp9/encoder/x86/vp9_dct_ssse3.c rename : media/libvpx/vp9/encoder/x86/vp9_dct_ssse3_x86_64.asm => media/libvpx/libvpx/vp9/encoder/x86/vp9_dct_ssse3_x86_64.asm rename : media/libvpx/vp9/encoder/x86/vp9_denoiser_sse2.c => media/libvpx/libvpx/vp9/encoder/x86/vp9_denoiser_sse2.c rename : media/libvpx/vp9/encoder/x86/vp9_error_intrin_avx2.c => media/libvpx/libvpx/vp9/encoder/x86/vp9_error_intrin_avx2.c rename : media/libvpx/vp9/encoder/x86/vp9_error_sse2.asm => media/libvpx/libvpx/vp9/encoder/x86/vp9_error_sse2.asm rename : media/libvpx/vp9/encoder/x86/vp9_highbd_block_error_intrin_sse2.c => media/libvpx/libvpx/vp9/encoder/x86/vp9_highbd_block_error_intrin_sse2.c rename : media/libvpx/vp9/encoder/x86/vp9_highbd_quantize_intrin_sse2.c => media/libvpx/libvpx/vp9/encoder/x86/vp9_highbd_quantize_intrin_sse2.c rename : media/libvpx/vp9/encoder/x86/vp9_highbd_subpel_variance.asm => media/libvpx/libvpx/vp9/encoder/x86/vp9_highbd_subpel_variance.asm rename : media/libvpx/vp9/encoder/x86/vp9_highbd_variance_sse2.c => media/libvpx/libvpx/vp9/encoder/x86/vp9_highbd_variance_sse2.c rename : media/libvpx/vp9/encoder/x86/vp9_quantize_sse2.c => media/libvpx/libvpx/vp9/encoder/x86/vp9_quantize_sse2.c rename : media/libvpx/vp9/encoder/x86/vp9_quantize_ssse3_x86_64.asm => media/libvpx/libvpx/vp9/encoder/x86/vp9_quantize_ssse3_x86_64.asm rename : media/libvpx/vp9/encoder/x86/vp9_ssim_opt_x86_64.asm => media/libvpx/libvpx/vp9/encoder/x86/vp9_ssim_opt_x86_64.asm rename : media/libvpx/vp9/encoder/x86/vp9_subpel_variance.asm => media/libvpx/libvpx/vp9/encoder/x86/vp9_subpel_variance.asm rename : media/libvpx/vp9/encoder/x86/vp9_subpel_variance_impl_intrin_avx2.c => media/libvpx/libvpx/vp9/encoder/x86/vp9_subpel_variance_impl_intrin_avx2.c rename : media/libvpx/vp9/encoder/x86/vp9_subtract_sse2.asm => media/libvpx/libvpx/vp9/encoder/x86/vp9_subtract_sse2.asm rename : media/libvpx/vp9/encoder/x86/vp9_temporal_filter_apply_sse2.asm => media/libvpx/libvpx/vp9/encoder/x86/vp9_temporal_filter_apply_sse2.asm rename : media/libvpx/vp9/encoder/x86/vp9_variance_avx2.c => media/libvpx/libvpx/vp9/encoder/x86/vp9_variance_avx2.c rename : media/libvpx/vp9/encoder/x86/vp9_variance_sse2.c => media/libvpx/libvpx/vp9/encoder/x86/vp9_variance_sse2.c rename : media/libvpx/vp9/vp9_cx_iface.c => media/libvpx/libvpx/vp9/vp9_cx_iface.c rename : media/libvpx/vp9/vp9_dx_iface.c => media/libvpx/libvpx/vp9/vp9_dx_iface.c rename : media/libvpx/vp9/vp9_iface_common.h => media/libvpx/libvpx/vp9/vp9_iface_common.h rename : media/libvpx/vpx/internal/vpx_codec_internal.h => media/libvpx/libvpx/vpx/internal/vpx_codec_internal.h rename : media/libvpx/vpx/internal/vpx_psnr.h => media/libvpx/libvpx/vpx/internal/vpx_psnr.h rename : media/libvpx/vpx/src/svc_encodeframe.c => media/libvpx/libvpx/vpx/src/svc_encodeframe.c rename : media/libvpx/vpx/src/vpx_codec.c => media/libvpx/libvpx/vpx/src/vpx_codec.c rename : media/libvpx/vpx/src/vpx_decoder.c => media/libvpx/libvpx/vpx/src/vpx_decoder.c rename : media/libvpx/vpx/src/vpx_encoder.c => media/libvpx/libvpx/vpx/src/vpx_encoder.c rename : media/libvpx/vpx/src/vpx_image.c => media/libvpx/libvpx/vpx/src/vpx_image.c rename : media/libvpx/vpx/src/vpx_psnr.c => media/libvpx/libvpx/vpx/src/vpx_psnr.c rename : media/libvpx/vpx/svc_context.h => media/libvpx/libvpx/vpx/svc_context.h rename : media/libvpx/vpx/vp8.h => media/libvpx/libvpx/vpx/vp8.h rename : media/libvpx/vpx/vp8cx.h => media/libvpx/libvpx/vpx/vp8cx.h rename : media/libvpx/vpx/vp8dx.h => media/libvpx/libvpx/vpx/vp8dx.h rename : media/libvpx/vpx/vpx_codec.h => media/libvpx/libvpx/vpx/vpx_codec.h rename : media/libvpx/vpx/vpx_decoder.h => media/libvpx/libvpx/vpx/vpx_decoder.h rename : media/libvpx/vpx/vpx_encoder.h => media/libvpx/libvpx/vpx/vpx_encoder.h rename : media/libvpx/vpx/vpx_frame_buffer.h => media/libvpx/libvpx/vpx/vpx_frame_buffer.h rename : media/libvpx/vpx/vpx_image.h => media/libvpx/libvpx/vpx/vpx_image.h rename : media/libvpx/vpx/vpx_integer.h => media/libvpx/libvpx/vpx/vpx_integer.h rename : media/libvpx/vpx_dsp/arm/sad4d_neon.c => media/libvpx/libvpx/vpx_dsp/arm/sad4d_neon.c rename : media/libvpx/vpx_dsp/arm/sad_media.asm => media/libvpx/libvpx/vpx_dsp/arm/sad_media.asm rename : media/libvpx/vpx_dsp/arm/sad_neon.c => media/libvpx/libvpx/vpx_dsp/arm/sad_neon.c rename : media/libvpx/vpx_dsp/arm/variance_media.asm => media/libvpx/libvpx/vpx_dsp/arm/variance_media.asm rename : media/libvpx/vpx_dsp/arm/variance_neon.c => media/libvpx/libvpx/vpx_dsp/arm/variance_neon.c rename : media/libvpx/vpx_dsp/sad.c => media/libvpx/libvpx/vpx_dsp/sad.c rename : media/libvpx/vpx_dsp/variance.c => media/libvpx/libvpx/vpx_dsp/variance.c rename : media/libvpx/vpx_dsp/vpx_dsp_rtcd.c => media/libvpx/libvpx/vpx_dsp/vpx_dsp_rtcd.c rename : media/libvpx/vpx_dsp/x86/highbd_sad4d_sse2.asm => media/libvpx/libvpx/vpx_dsp/x86/highbd_sad4d_sse2.asm rename : media/libvpx/vpx_dsp/x86/highbd_sad_sse2.asm => media/libvpx/libvpx/vpx_dsp/x86/highbd_sad_sse2.asm rename : media/libvpx/vpx_dsp/x86/highbd_variance_impl_sse2.asm => media/libvpx/libvpx/vpx_dsp/x86/highbd_variance_impl_sse2.asm rename : media/libvpx/vpx_dsp/x86/highbd_variance_sse2.c => media/libvpx/libvpx/vpx_dsp/x86/highbd_variance_sse2.c rename : media/libvpx/vpx_dsp/x86/sad4d_avx2.c => media/libvpx/libvpx/vpx_dsp/x86/sad4d_avx2.c rename : media/libvpx/vpx_dsp/x86/sad4d_sse2.asm => media/libvpx/libvpx/vpx_dsp/x86/sad4d_sse2.asm rename : media/libvpx/vpx_dsp/x86/sad_avx2.c => media/libvpx/libvpx/vpx_dsp/x86/sad_avx2.c rename : media/libvpx/vpx_dsp/x86/sad_mmx.asm => media/libvpx/libvpx/vpx_dsp/x86/sad_mmx.asm rename : media/libvpx/vpx_dsp/x86/sad_sse2.asm => media/libvpx/libvpx/vpx_dsp/x86/sad_sse2.asm rename : media/libvpx/vpx_dsp/x86/sad_sse3.asm => media/libvpx/libvpx/vpx_dsp/x86/sad_sse3.asm rename : media/libvpx/vpx_dsp/x86/sad_sse4.asm => media/libvpx/libvpx/vpx_dsp/x86/sad_sse4.asm rename : media/libvpx/vpx_dsp/x86/sad_ssse3.asm => media/libvpx/libvpx/vpx_dsp/x86/sad_ssse3.asm rename : media/libvpx/vpx_dsp/x86/variance_avx2.c => media/libvpx/libvpx/vpx_dsp/x86/variance_avx2.c rename : media/libvpx/vpx_dsp/x86/variance_impl_avx2.c => media/libvpx/libvpx/vpx_dsp/x86/variance_impl_avx2.c rename : media/libvpx/vpx_dsp/x86/variance_impl_mmx.asm => media/libvpx/libvpx/vpx_dsp/x86/variance_impl_mmx.asm rename : media/libvpx/vpx_dsp/x86/variance_mmx.c => media/libvpx/libvpx/vpx_dsp/x86/variance_mmx.c rename : media/libvpx/vpx_dsp/x86/variance_sse2.c => media/libvpx/libvpx/vpx_dsp/x86/variance_sse2.c rename : media/libvpx/vpx_mem/include/vpx_mem_intrnl.h => media/libvpx/libvpx/vpx_mem/include/vpx_mem_intrnl.h rename : media/libvpx/vpx_mem/vpx_mem.c => media/libvpx/libvpx/vpx_mem/vpx_mem.c rename : media/libvpx/vpx_mem/vpx_mem.h => media/libvpx/libvpx/vpx_mem/vpx_mem.h rename : media/libvpx/vpx_ports/arm.h => media/libvpx/libvpx/vpx_ports/arm.h rename : media/libvpx/vpx_ports/arm_cpudetect.c => media/libvpx/libvpx/vpx_ports/arm_cpudetect.c rename : media/libvpx/vpx_ports/config.h => media/libvpx/libvpx/vpx_ports/config.h rename : media/libvpx/vpx_ports/emmintrin_compat.h => media/libvpx/libvpx/vpx_ports/emmintrin_compat.h rename : media/libvpx/vpx_ports/emms.asm => media/libvpx/libvpx/vpx_ports/emms.asm rename : media/libvpx/vpx_ports/mem.h => media/libvpx/libvpx/vpx_ports/mem.h rename : media/libvpx/vpx_ports/mem_ops.h => media/libvpx/libvpx/vpx_ports/mem_ops.h rename : media/libvpx/vpx_ports/mem_ops_aligned.h => media/libvpx/libvpx/vpx_ports/mem_ops_aligned.h rename : media/libvpx/vpx_ports/msvc.h => media/libvpx/libvpx/vpx_ports/msvc.h rename : media/libvpx/vpx_ports/vpx_once.h => media/libvpx/libvpx/vpx_ports/vpx_once.h rename : media/libvpx/vpx_ports/vpx_timer.h => media/libvpx/libvpx/vpx_ports/vpx_timer.h rename : media/libvpx/vpx_ports/x86.h => media/libvpx/libvpx/vpx_ports/x86.h rename : media/libvpx/vpx_ports/x86_abi_support.asm => media/libvpx/libvpx/vpx_ports/x86_abi_support.asm rename : media/libvpx/vpx_scale/generic/gen_scalers.c => media/libvpx/libvpx/vpx_scale/generic/gen_scalers.c rename : media/libvpx/vpx_scale/generic/vpx_scale.c => media/libvpx/libvpx/vpx_scale/generic/vpx_scale.c rename : media/libvpx/vpx_scale/generic/yv12config.c => media/libvpx/libvpx/vpx_scale/generic/yv12config.c rename : media/libvpx/vpx_scale/generic/yv12extend.c => media/libvpx/libvpx/vpx_scale/generic/yv12extend.c rename : media/libvpx/vpx_scale/vpx_scale.h => media/libvpx/libvpx/vpx_scale/vpx_scale.h rename : media/libvpx/vpx_scale/vpx_scale_rtcd.c => media/libvpx/libvpx/vpx_scale/vpx_scale_rtcd.c rename : media/libvpx/vpx_scale/yv12config.h => media/libvpx/libvpx/vpx_scale/yv12config.h extra : rebase_source : 4dd49b6b3473ef9e91dbcbaa91dbef66b86949f9
This commit is contained in:
Родитель
37fa596233
Коммит
13b9e31e33
2
CLOBBER
2
CLOBBER
|
@ -22,4 +22,4 @@
|
|||
# changes to stick? As of bug 928195, this shouldn't be necessary! Please
|
||||
# don't change CLOBBER for WebIDL changes any more.
|
||||
|
||||
Bug 1250356 Setting CLOBBER out caution landing a huge patchset with gyp changes
|
||||
Bug 1328744 libvpx sources moved directories
|
||||
|
|
|
@ -5,9 +5,9 @@ Bug 1237848 - Check lookahead ctx - r=rillian
|
|||
|
||||
Copied from https://chromium-review.googlesource.com/324510
|
||||
|
||||
diff --git a/media/libvpx/vp8/encoder/lookahead.c b/media/libvpx/vp8/encoder/lookahead.c
|
||||
--- a/media/libvpx/vp8/encoder/lookahead.c
|
||||
+++ b/media/libvpx/vp8/encoder/lookahead.c
|
||||
diff --git a/media/libvpx/libvpx/vp8/encoder/lookahead.c b/media/libvpx/libvpx/vp8/encoder/lookahead.c
|
||||
--- a/media/libvpx/libvpx/vp8/encoder/lookahead.c
|
||||
+++ b/media/libvpx/libvpx/vp8/encoder/lookahead.c
|
||||
@@ -176,16 +176,17 @@ vp8_lookahead_push(struct lookahead_ctx
|
||||
|
||||
|
||||
|
@ -26,9 +26,9 @@ diff --git a/media/libvpx/vp8/encoder/lookahead.c b/media/libvpx/vp8/encoder/loo
|
|||
return buf;
|
||||
}
|
||||
|
||||
diff --git a/media/libvpx/vp9/encoder/vp9_lookahead.c b/media/libvpx/vp9/encoder/vp9_lookahead.c
|
||||
--- a/media/libvpx/vp9/encoder/vp9_lookahead.c
|
||||
+++ b/media/libvpx/vp9/encoder/vp9_lookahead.c
|
||||
diff --git a/media/libvpx/libvpx/vp9/encoder/vp9_lookahead.c b/media/libvpx/libvpx/vp9/encoder/vp9_lookahead.c
|
||||
--- a/media/libvpx/libvpx/vp9/encoder/vp9_lookahead.c
|
||||
+++ b/media/libvpx/libvpx/vp9/encoder/vp9_lookahead.c
|
||||
@@ -202,17 +202,17 @@ int vp9_lookahead_push(struct lookahead_
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/libvpx/vp9/common/vp9_rtcd_defs.pl b/libvpx/vp9/common/vp9_rtcd_defs.pl
|
||||
index bbe200d0d632..4131b79de375 100644
|
||||
--- a/libvpx/vp9/common/vp9_rtcd_defs.pl
|
||||
+++ b/libvpx/vp9/common/vp9_rtcd_defs.pl
|
||||
@@ -951,7 +951,7 @@ if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") {
|
||||
specialize qw/vp9_block_error avx2/, "$sse2_x86inc";
|
||||
|
||||
add_proto qw/int64_t vp9_block_error_fp/, "const int16_t *coeff, const int16_t *dqcoeff, int block_size";
|
||||
- specialize qw/vp9_block_error_fp sse2/;
|
||||
+ specialize qw/vp9_block_error_fp/, "$sse2_x86inc";
|
||||
|
||||
add_proto qw/void vp9_quantize_fp/, "const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan";
|
||||
specialize qw/vp9_quantize_fp neon sse2/, "$ssse3_x86_64";
|
|
@ -1,6 +1,6 @@
|
|||
diff --git a/media/libvpx/vp8/encoder/block.h b/media/libvpx/vp8/encoder/block.h
|
||||
--- a/media/libvpx/vp8/encoder/block.h
|
||||
+++ b/media/libvpx/vp8/encoder/block.h
|
||||
diff --git a/media/libvpx/libvpx/vp8/encoder/block.h b/media/libvpx/libvpx/vp8/encoder/block.h
|
||||
--- a/media/libvpx/libvpx/vp8/encoder/block.h
|
||||
+++ b/media/libvpx/libvpx/vp8/encoder/block.h
|
||||
@@ -93,17 +93,18 @@ typedef struct macroblock
|
||||
int rddiv;
|
||||
int rdmult;
|
||||
|
|
|
@ -5,9 +5,9 @@ Bug 1224371 - Cast uint8_t to uint32_t before shift - r=jya
|
|||
|
||||
Note: C-style cast because it is C code.
|
||||
|
||||
diff --git a/media/libvpx/vp9/decoder/vp9_decoder.c b/media/libvpx/vp9/decoder/vp9_decoder.c
|
||||
--- a/media/libvpx/vp9/decoder/vp9_decoder.c
|
||||
+++ b/media/libvpx/vp9/decoder/vp9_decoder.c
|
||||
diff --git a/media/libvpx/libvpx/vp9/decoder/vp9_decoder.c b/media/libvpx/libvpx/vp9/decoder/vp9_decoder.c
|
||||
--- a/media/libvpx/libvpx/vp9/decoder/vp9_decoder.c
|
||||
+++ b/media/libvpx/libvpx/vp9/decoder/vp9_decoder.c
|
||||
@@ -494,16 +494,16 @@ vpx_codec_err_t vp9_parse_superframe_ind
|
||||
decrypt_cb(decrypt_state, x, clear_buffer, frames * mag);
|
||||
x = clear_buffer;
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
# Parent a2eeff55028dc78e98a16e1d8840d77378f37408
|
||||
Bug 1224361 - Clamp QIndex also in abs-value mode - r=rillian
|
||||
|
||||
diff --git a/media/libvpx/vp8/decoder/decodeframe.c b/media/libvpx/vp8/decoder/decodeframe.c
|
||||
--- a/media/libvpx/vp8/decoder/decodeframe.c
|
||||
+++ b/media/libvpx/vp8/decoder/decodeframe.c
|
||||
diff --git a/media/libvpx/libvpx/vp8/decoder/decodeframe.c b/media/libvpx/libvpx/vp8/decoder/decodeframe.c
|
||||
--- a/media/libvpx/libvpx/vp8/decoder/decodeframe.c
|
||||
+++ b/media/libvpx/libvpx/vp8/decoder/decodeframe.c
|
||||
@@ -66,20 +66,19 @@ void vp8_mb_init_dequantizer(VP8D_COMP *
|
||||
if (xd->segmentation_enabled)
|
||||
{
|
||||
|
|
|
@ -13,9 +13,9 @@ mode data) to absolute mode data, before it is blindly 'memset' in
|
|||
lfi->lvl[seg][0], which was where the out-of-bound filter_value was read in
|
||||
subsequent vp8_loop_filter_row_simple.
|
||||
|
||||
diff --git a/media/libvpx/vp8/common/loopfilter.c b/media/libvpx/vp8/common/loopfilter.c
|
||||
--- a/media/libvpx/vp8/common/loopfilter.c
|
||||
+++ b/media/libvpx/vp8/common/loopfilter.c
|
||||
diff --git a/media/libvpx/libvpx/vp8/common/loopfilter.c b/media/libvpx/libvpx/vp8/common/loopfilter.c
|
||||
--- a/media/libvpx/libvpx/vp8/common/loopfilter.c
|
||||
+++ b/media/libvpx/libvpx/vp8/common/loopfilter.c
|
||||
@@ -136,18 +136,18 @@ void vp8_loop_filter_frame_init(VP8_COMM
|
||||
/* Abs value */
|
||||
if (mbd->mb_segement_abs_delta == SEGMENT_ABSDATA)
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
Bug 1233983 - Make libvpx build with clang-cl
|
||||
|
||||
diff --git a/media/libvpx/vp8/common/generic/systemdependent.c b/media/libvpx/vp8/common/generic/systemdependent.c
|
||||
diff --git a/media/libvpx/libvpx/vp8/common/generic/systemdependent.c b/media/libvpx/libvpx/vp8/common/generic/systemdependent.c
|
||||
index 4393ced..8ee7e02 100644
|
||||
--- a/media/libvpx/vp8/common/generic/systemdependent.c
|
||||
+++ b/media/libvpx/vp8/common/generic/systemdependent.c
|
||||
--- a/media/libvpx/libvpx/vp8/common/generic/systemdependent.c
|
||||
+++ b/media/libvpx/libvpx/vp8/common/generic/systemdependent.c
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <unistd.h>
|
||||
#elif defined(_WIN32)
|
||||
|
@ -12,10 +12,10 @@ index 4393ced..8ee7e02 100644
|
|||
typedef void (WINAPI *PGNSI)(LPSYSTEM_INFO);
|
||||
#elif defined(__OS2__)
|
||||
#define INCL_DOS
|
||||
diff --git a/media/libvpx/vp8/common/rtcd.c b/media/libvpx/vp8/common/rtcd.c
|
||||
diff --git a/media/libvpx/libvpx/vp8/common/rtcd.c b/media/libvpx/libvpx/vp8/common/rtcd.c
|
||||
index ab0e9b4..98c2ecd 100644
|
||||
--- a/media/libvpx/vp8/common/rtcd.c
|
||||
+++ b/media/libvpx/vp8/common/rtcd.c
|
||||
--- a/media/libvpx/libvpx/vp8/common/rtcd.c
|
||||
+++ b/media/libvpx/libvpx/vp8/common/rtcd.c
|
||||
@@ -11,6 +11,9 @@
|
||||
#define RTCD_C
|
||||
#include "./vp8_rtcd.h"
|
||||
|
@ -26,10 +26,10 @@ index ab0e9b4..98c2ecd 100644
|
|||
|
||||
|
||||
void vp8_rtcd()
|
||||
diff --git a/media/libvpx/vp8/decoder/threading.c b/media/libvpx/vp8/decoder/threading.c
|
||||
diff --git a/media/libvpx/libvpx/vp8/decoder/threading.c b/media/libvpx/libvpx/vp8/decoder/threading.c
|
||||
index 6801532..a76672f 100644
|
||||
--- a/media/libvpx/vp8/decoder/threading.c
|
||||
+++ b/media/libvpx/vp8/decoder/threading.c
|
||||
--- a/media/libvpx/libvpx/vp8/decoder/threading.c
|
||||
+++ b/media/libvpx/libvpx/vp8/decoder/threading.c
|
||||
@@ -28,6 +28,9 @@
|
||||
#if CONFIG_ERROR_CONCEALMENT
|
||||
#include "error_concealment.h"
|
||||
|
@ -40,10 +40,10 @@ index 6801532..a76672f 100644
|
|||
|
||||
#define CALLOC_ARRAY(p, n) CHECK_MEM_ERROR((p), vpx_calloc(sizeof(*(p)), (n)))
|
||||
#define CALLOC_ARRAY_ALIGNED(p, n, algn) do { \
|
||||
diff --git a/media/libvpx/vp8/encoder/encodeframe.c b/media/libvpx/vp8/encoder/encodeframe.c
|
||||
diff --git a/media/libvpx/libvpx/vp8/encoder/encodeframe.c b/media/libvpx/libvpx/vp8/encoder/encodeframe.c
|
||||
index d381d8d..5e84fb4 100644
|
||||
--- a/media/libvpx/vp8/encoder/encodeframe.c
|
||||
+++ b/media/libvpx/vp8/encoder/encodeframe.c
|
||||
--- a/media/libvpx/libvpx/vp8/encoder/encodeframe.c
|
||||
+++ b/media/libvpx/libvpx/vp8/encoder/encodeframe.c
|
||||
@@ -34,6 +34,9 @@
|
||||
#include "bitstream.h"
|
||||
#endif
|
||||
|
@ -54,10 +54,10 @@ index d381d8d..5e84fb4 100644
|
|||
|
||||
extern void vp8_stuff_mb(VP8_COMP *cpi, MACROBLOCK *x, TOKENEXTRA **t) ;
|
||||
extern void vp8_calc_ref_frame_costs(int *ref_frame_cost,
|
||||
diff --git a/media/libvpx/vp8/encoder/ethreading.c b/media/libvpx/vp8/encoder/ethreading.c
|
||||
diff --git a/media/libvpx/libvpx/vp8/encoder/ethreading.c b/media/libvpx/libvpx/vp8/encoder/ethreading.c
|
||||
index 4e234cc..519ae73b 100644
|
||||
--- a/media/libvpx/vp8/encoder/ethreading.c
|
||||
+++ b/media/libvpx/vp8/encoder/ethreading.c
|
||||
--- a/media/libvpx/libvpx/vp8/encoder/ethreading.c
|
||||
+++ b/media/libvpx/libvpx/vp8/encoder/ethreading.c
|
||||
@@ -14,6 +14,9 @@
|
||||
#include "vp8/common/extend.h"
|
||||
#include "bitstream.h"
|
||||
|
@ -68,10 +68,10 @@ index 4e234cc..519ae73b 100644
|
|||
|
||||
#if CONFIG_MULTITHREAD
|
||||
|
||||
diff --git a/media/libvpx/vpx_dsp/vpx_dsp_rtcd.c b/media/libvpx/vpx_dsp/vpx_dsp_rtcd.c
|
||||
diff --git a/media/libvpx/libvpx/vpx_dsp/vpx_dsp_rtcd.c b/media/libvpx/libvpx/vpx_dsp/vpx_dsp_rtcd.c
|
||||
index 5fe27b6..d247603 100644
|
||||
--- a/media/libvpx/vpx_dsp/vpx_dsp_rtcd.c
|
||||
+++ b/media/libvpx/vpx_dsp/vpx_dsp_rtcd.c
|
||||
--- a/media/libvpx/libvpx/vpx_dsp/vpx_dsp_rtcd.c
|
||||
+++ b/media/libvpx/libvpx/vpx_dsp/vpx_dsp_rtcd.c
|
||||
@@ -11,6 +11,9 @@
|
||||
#define RTCD_C
|
||||
#include "./vpx_dsp_rtcd.h"
|
||||
|
@ -82,10 +82,10 @@ index 5fe27b6..d247603 100644
|
|||
|
||||
void vpx_dsp_rtcd() {
|
||||
once(setup_rtcd_internal);
|
||||
diff --git a/media/libvpx/vpx_scale/vpx_scale_rtcd.c b/media/libvpx/vpx_scale/vpx_scale_rtcd.c
|
||||
diff --git a/media/libvpx/libvpx/vpx_scale/vpx_scale_rtcd.c b/media/libvpx/libvpx/vpx_scale/vpx_scale_rtcd.c
|
||||
index bea603f..65532ba 100644
|
||||
--- a/media/libvpx/vpx_scale/vpx_scale_rtcd.c
|
||||
+++ b/media/libvpx/vpx_scale/vpx_scale_rtcd.c
|
||||
--- a/media/libvpx/libvpx/vpx_scale/vpx_scale_rtcd.c
|
||||
+++ b/media/libvpx/libvpx/vpx_scale/vpx_scale_rtcd.c
|
||||
@@ -11,6 +11,9 @@
|
||||
#define RTCD_C
|
||||
#include "./vpx_scale_rtcd.h"
|
||||
|
|
|
@ -25,9 +25,8 @@
|
|||
.equ HAVE_STDINT_H , 1
|
||||
.equ HAVE_PTHREAD_H , 1
|
||||
.equ HAVE_SYS_MMAN_H , 1
|
||||
.equ HAVE_UNISTD_H , 1
|
||||
.equ CONFIG_DEPENDENCY_TRACKING , 1
|
||||
.equ CONFIG_EXTERNAL_BUILD , 0
|
||||
.equ CONFIG_EXTERNAL_BUILD , 1
|
||||
.equ CONFIG_INSTALL_DOCS , 0
|
||||
.equ CONFIG_INSTALL_BINS , 1
|
||||
.equ CONFIG_INSTALL_LIBS , 1
|
||||
|
@ -39,7 +38,7 @@
|
|||
.equ CONFIG_RVCT , 0
|
||||
.equ CONFIG_GCC , 1
|
||||
.equ CONFIG_MSVS , 0
|
||||
.equ CONFIG_PIC , 0
|
||||
.equ CONFIG_PIC , 1
|
||||
.equ CONFIG_BIG_ENDIAN , 0
|
||||
.equ CONFIG_CODEC_SRCS , 0
|
||||
.equ CONFIG_DEBUG_LIBS , 0
|
||||
|
@ -62,13 +61,13 @@
|
|||
.equ CONFIG_SPATIAL_RESAMPLING , 1
|
||||
.equ CONFIG_REALTIME_ONLY , 0
|
||||
.equ CONFIG_ONTHEFLY_BITPACKING , 0
|
||||
.equ CONFIG_ERROR_CONCEALMENT , 0
|
||||
.equ CONFIG_ERROR_CONCEALMENT , 1
|
||||
.equ CONFIG_SHARED , 0
|
||||
.equ CONFIG_STATIC , 1
|
||||
.equ CONFIG_SMALL , 0
|
||||
.equ CONFIG_POSTPROC_VISUALIZER , 0
|
||||
.equ CONFIG_OS_SUPPORT , 1
|
||||
.equ CONFIG_UNIT_TESTS , 1
|
||||
.equ CONFIG_UNIT_TESTS , 0
|
||||
.equ CONFIG_WEBM_IO , 1
|
||||
.equ CONFIG_LIBYUV , 1
|
||||
.equ CONFIG_DECODE_PERF_TESTS , 0
|
||||
|
@ -84,7 +83,3 @@
|
|||
.equ CONFIG_FP_MB_STATS , 0
|
||||
.equ CONFIG_EMULATE_HARDWARE , 0
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
@ This file was created from a .asm file
|
||||
@ using the ads2gas.pl script.
|
||||
.equ DO1STROUNDING, 0
|
||||
.section .note.GNU-stack,"",%progbits
|
|
@ -0,0 +1,10 @@
|
|||
/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */
|
||||
/* */
|
||||
/* Use of this source code is governed by a BSD-style license */
|
||||
/* that can be found in the LICENSE file in the root of the source */
|
||||
/* tree. An additional intellectual property rights grant can be found */
|
||||
/* in the file PATENTS. All contributing project authors may */
|
||||
/* be found in the AUTHORS file in the root of the source tree. */
|
||||
#include "vpx/vpx_codec.h"
|
||||
static const char* const cfg = "--target=generic-gnu --enable-external-build --disable-examples --disable-install-docs --disable-unit-tests --enable-multi-res-encoding --size-limit=8192x4608 --enable-pic --enable-error-concealment";
|
||||
const char *vpx_codec_build_config(void) {return cfg;}
|
|
@ -34,9 +34,8 @@
|
|||
#define HAVE_STDINT_H 1
|
||||
#define HAVE_PTHREAD_H 1
|
||||
#define HAVE_SYS_MMAN_H 1
|
||||
#define HAVE_UNISTD_H 1
|
||||
#define CONFIG_DEPENDENCY_TRACKING 1
|
||||
#define CONFIG_EXTERNAL_BUILD 0
|
||||
#define CONFIG_EXTERNAL_BUILD 1
|
||||
#define CONFIG_INSTALL_DOCS 0
|
||||
#define CONFIG_INSTALL_BINS 1
|
||||
#define CONFIG_INSTALL_LIBS 1
|
||||
|
@ -48,7 +47,7 @@
|
|||
#define CONFIG_RVCT 0
|
||||
#define CONFIG_GCC 1
|
||||
#define CONFIG_MSVS 0
|
||||
#define CONFIG_PIC 0
|
||||
#define CONFIG_PIC 1
|
||||
#define CONFIG_BIG_ENDIAN 0
|
||||
#define CONFIG_CODEC_SRCS 0
|
||||
#define CONFIG_DEBUG_LIBS 0
|
||||
|
@ -71,13 +70,13 @@
|
|||
#define CONFIG_SPATIAL_RESAMPLING 1
|
||||
#define CONFIG_REALTIME_ONLY 0
|
||||
#define CONFIG_ONTHEFLY_BITPACKING 0
|
||||
#define CONFIG_ERROR_CONCEALMENT 0
|
||||
#define CONFIG_ERROR_CONCEALMENT 1
|
||||
#define CONFIG_SHARED 0
|
||||
#define CONFIG_STATIC 1
|
||||
#define CONFIG_SMALL 0
|
||||
#define CONFIG_POSTPROC_VISUALIZER 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
#define CONFIG_UNIT_TESTS 1
|
||||
#define CONFIG_UNIT_TESTS 0
|
||||
#define CONFIG_WEBM_IO 1
|
||||
#define CONFIG_LIBYUV 1
|
||||
#define CONFIG_DECODE_PERF_TESTS 0
|
|
@ -25,9 +25,8 @@
|
|||
.equ HAVE_STDINT_H , 1
|
||||
.equ HAVE_PTHREAD_H , 1
|
||||
.equ HAVE_SYS_MMAN_H , 1
|
||||
.equ HAVE_UNISTD_H , 1
|
||||
.equ CONFIG_DEPENDENCY_TRACKING , 1
|
||||
.equ CONFIG_EXTERNAL_BUILD , 0
|
||||
.equ CONFIG_EXTERNAL_BUILD , 1
|
||||
.equ CONFIG_INSTALL_DOCS , 0
|
||||
.equ CONFIG_INSTALL_BINS , 1
|
||||
.equ CONFIG_INSTALL_LIBS , 1
|
||||
|
@ -62,7 +61,7 @@
|
|||
.equ CONFIG_SPATIAL_RESAMPLING , 1
|
||||
.equ CONFIG_REALTIME_ONLY , 1
|
||||
.equ CONFIG_ONTHEFLY_BITPACKING , 0
|
||||
.equ CONFIG_ERROR_CONCEALMENT , 0
|
||||
.equ CONFIG_ERROR_CONCEALMENT , 1
|
||||
.equ CONFIG_SHARED , 0
|
||||
.equ CONFIG_STATIC , 1
|
||||
.equ CONFIG_SMALL , 0
|
||||
|
@ -84,7 +83,3 @@
|
|||
.equ CONFIG_FP_MB_STATS , 0
|
||||
.equ CONFIG_EMULATE_HARDWARE , 0
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
@ This file was created from a .asm file
|
||||
@ using the ads2gas.pl script.
|
||||
.equ DO1STROUNDING, 0
|
||||
.section .note.GNU-stack,"",%progbits
|
|
@ -0,0 +1,10 @@
|
|||
/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */
|
||||
/* */
|
||||
/* Use of this source code is governed by a BSD-style license */
|
||||
/* that can be found in the LICENSE file in the root of the source */
|
||||
/* tree. An additional intellectual property rights grant can be found */
|
||||
/* in the file PATENTS. All contributing project authors may */
|
||||
/* be found in the AUTHORS file in the root of the source tree. */
|
||||
#include "vpx/vpx_codec.h"
|
||||
static const char* const cfg = "--target=armv7-linux-gcc --enable-external-build --disable-examples --disable-install-docs --disable-unit-tests --enable-multi-res-encoding --size-limit=8192x4608 --enable-pic --enable-error-concealment --enable-runtime-cpu-detect --enable-realtime-only";
|
||||
const char *vpx_codec_build_config(void) {return cfg;}
|
|
@ -34,9 +34,8 @@
|
|||
#define HAVE_STDINT_H 1
|
||||
#define HAVE_PTHREAD_H 1
|
||||
#define HAVE_SYS_MMAN_H 1
|
||||
#define HAVE_UNISTD_H 1
|
||||
#define CONFIG_DEPENDENCY_TRACKING 1
|
||||
#define CONFIG_EXTERNAL_BUILD 0
|
||||
#define CONFIG_EXTERNAL_BUILD 1
|
||||
#define CONFIG_INSTALL_DOCS 0
|
||||
#define CONFIG_INSTALL_BINS 1
|
||||
#define CONFIG_INSTALL_LIBS 1
|
||||
|
@ -71,7 +70,7 @@
|
|||
#define CONFIG_SPATIAL_RESAMPLING 1
|
||||
#define CONFIG_REALTIME_ONLY 1
|
||||
#define CONFIG_ONTHEFLY_BITPACKING 0
|
||||
#define CONFIG_ERROR_CONCEALMENT 0
|
||||
#define CONFIG_ERROR_CONCEALMENT 1
|
||||
#define CONFIG_SHARED 0
|
||||
#define CONFIG_STATIC 1
|
||||
#define CONFIG_SMALL 0
|
|
@ -42,8 +42,7 @@ int64_t vp9_block_error_avx2(const tran_low_t *coeff, const tran_low_t *dqcoeff,
|
|||
RTCD_EXTERN int64_t (*vp9_block_error)(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
|
||||
int64_t vp9_block_error_fp_c(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
|
||||
int64_t vp9_block_error_fp_sse2(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
|
||||
RTCD_EXTERN int64_t (*vp9_block_error_fp)(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
|
||||
#define vp9_block_error_fp vp9_block_error_fp_c
|
||||
|
||||
void vp9_convolve8_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
void vp9_convolve8_sse2(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
|
@ -262,6 +261,14 @@ void vp9_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_t
|
|||
void vp9_fht8x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*vp9_fht8x8)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
|
||||
void vp9_filter_by_weight16x16_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
void vp9_filter_by_weight16x16_sse2(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
RTCD_EXTERN void (*vp9_filter_by_weight16x16)(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
|
||||
void vp9_filter_by_weight8x8_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
void vp9_filter_by_weight8x8_sse2(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
RTCD_EXTERN void (*vp9_filter_by_weight8x8)(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
|
||||
int vp9_full_range_search_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
#define vp9_full_range_search vp9_full_range_search_c
|
||||
|
||||
|
@ -408,10 +415,26 @@ void vp9_lpf_vertical_8_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, co
|
|||
void vp9_lpf_vertical_8_dual_sse2(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
|
||||
RTCD_EXTERN void (*vp9_lpf_vertical_8_dual)(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
|
||||
|
||||
void vp9_mbpost_proc_across_ip_c(uint8_t *src, int pitch, int rows, int cols, int flimit);
|
||||
void vp9_mbpost_proc_across_ip_xmm(uint8_t *src, int pitch, int rows, int cols, int flimit);
|
||||
RTCD_EXTERN void (*vp9_mbpost_proc_across_ip)(uint8_t *src, int pitch, int rows, int cols, int flimit);
|
||||
|
||||
void vp9_mbpost_proc_down_c(uint8_t *dst, int pitch, int rows, int cols, int flimit);
|
||||
void vp9_mbpost_proc_down_xmm(uint8_t *dst, int pitch, int rows, int cols, int flimit);
|
||||
RTCD_EXTERN void (*vp9_mbpost_proc_down)(uint8_t *dst, int pitch, int rows, int cols, int flimit);
|
||||
|
||||
void vp9_minmax_8x8_c(const uint8_t *s, int p, const uint8_t *d, int dp, int *min, int *max);
|
||||
void vp9_minmax_8x8_sse2(const uint8_t *s, int p, const uint8_t *d, int dp, int *min, int *max);
|
||||
RTCD_EXTERN void (*vp9_minmax_8x8)(const uint8_t *s, int p, const uint8_t *d, int dp, int *min, int *max);
|
||||
|
||||
void vp9_plane_add_noise_c(uint8_t *Start, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int Width, unsigned int Height, int Pitch);
|
||||
void vp9_plane_add_noise_wmt(uint8_t *Start, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int Width, unsigned int Height, int Pitch);
|
||||
RTCD_EXTERN void (*vp9_plane_add_noise)(uint8_t *Start, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int Width, unsigned int Height, int Pitch);
|
||||
|
||||
void vp9_post_proc_down_and_across_c(const uint8_t *src_ptr, uint8_t *dst_ptr, int src_pixels_per_line, int dst_pixels_per_line, int rows, int cols, int flimit);
|
||||
void vp9_post_proc_down_and_across_xmm(const uint8_t *src_ptr, uint8_t *dst_ptr, int src_pixels_per_line, int dst_pixels_per_line, int rows, int cols, int flimit);
|
||||
RTCD_EXTERN void (*vp9_post_proc_down_and_across)(const uint8_t *src_ptr, uint8_t *dst_ptr, int src_pixels_per_line, int dst_pixels_per_line, int rows, int cols, int flimit);
|
||||
|
||||
void vp9_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_quantize_b_sse2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*vp9_quantize_b)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
@ -563,8 +586,6 @@ static void setup_rtcd_internal(void)
|
|||
if (flags & HAS_SSE2) vp9_avg_8x8 = vp9_avg_8x8_sse2;
|
||||
vp9_block_error = vp9_block_error_c;
|
||||
if (flags & HAS_AVX2) vp9_block_error = vp9_block_error_avx2;
|
||||
vp9_block_error_fp = vp9_block_error_fp_c;
|
||||
if (flags & HAS_SSE2) vp9_block_error_fp = vp9_block_error_fp_sse2;
|
||||
vp9_convolve8 = vp9_convolve8_c;
|
||||
if (flags & HAS_SSE2) vp9_convolve8 = vp9_convolve8_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_convolve8 = vp9_convolve8_ssse3;
|
||||
|
@ -615,6 +636,10 @@ static void setup_rtcd_internal(void)
|
|||
if (flags & HAS_SSE2) vp9_fht4x4 = vp9_fht4x4_sse2;
|
||||
vp9_fht8x8 = vp9_fht8x8_c;
|
||||
if (flags & HAS_SSE2) vp9_fht8x8 = vp9_fht8x8_sse2;
|
||||
vp9_filter_by_weight16x16 = vp9_filter_by_weight16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_filter_by_weight16x16 = vp9_filter_by_weight16x16_sse2;
|
||||
vp9_filter_by_weight8x8 = vp9_filter_by_weight8x8_c;
|
||||
if (flags & HAS_SSE2) vp9_filter_by_weight8x8 = vp9_filter_by_weight8x8_sse2;
|
||||
vp9_full_search_sad = vp9_full_search_sad_c;
|
||||
if (flags & HAS_SSE3) vp9_full_search_sad = vp9_full_search_sadx3;
|
||||
if (flags & HAS_SSE4_1) vp9_full_search_sad = vp9_full_search_sadx8;
|
||||
|
@ -677,8 +702,16 @@ static void setup_rtcd_internal(void)
|
|||
if (flags & HAS_SSE2) vp9_lpf_vertical_8 = vp9_lpf_vertical_8_sse2;
|
||||
vp9_lpf_vertical_8_dual = vp9_lpf_vertical_8_dual_c;
|
||||
if (flags & HAS_SSE2) vp9_lpf_vertical_8_dual = vp9_lpf_vertical_8_dual_sse2;
|
||||
vp9_mbpost_proc_across_ip = vp9_mbpost_proc_across_ip_c;
|
||||
if (flags & HAS_SSE2) vp9_mbpost_proc_across_ip = vp9_mbpost_proc_across_ip_xmm;
|
||||
vp9_mbpost_proc_down = vp9_mbpost_proc_down_c;
|
||||
if (flags & HAS_SSE2) vp9_mbpost_proc_down = vp9_mbpost_proc_down_xmm;
|
||||
vp9_minmax_8x8 = vp9_minmax_8x8_c;
|
||||
if (flags & HAS_SSE2) vp9_minmax_8x8 = vp9_minmax_8x8_sse2;
|
||||
vp9_plane_add_noise = vp9_plane_add_noise_c;
|
||||
if (flags & HAS_SSE2) vp9_plane_add_noise = vp9_plane_add_noise_wmt;
|
||||
vp9_post_proc_down_and_across = vp9_post_proc_down_and_across_c;
|
||||
if (flags & HAS_SSE2) vp9_post_proc_down_and_across = vp9_post_proc_down_and_across_xmm;
|
||||
vp9_quantize_b = vp9_quantize_b_c;
|
||||
if (flags & HAS_SSE2) vp9_quantize_b = vp9_quantize_b_sse2;
|
||||
vp9_quantize_fp = vp9_quantize_fp_c;
|
|
@ -0,0 +1,81 @@
|
|||
%define ARCH_ARM 0
|
||||
%define ARCH_MIPS 0
|
||||
%define ARCH_X86 1
|
||||
%define ARCH_X86_64 0
|
||||
%define HAVE_EDSP 0
|
||||
%define HAVE_MEDIA 0
|
||||
%define HAVE_NEON 0
|
||||
%define HAVE_NEON_ASM 0
|
||||
%define HAVE_MIPS32 0
|
||||
%define HAVE_DSPR2 0
|
||||
%define HAVE_MSA 0
|
||||
%define HAVE_MIPS64 0
|
||||
%define HAVE_MMX 1
|
||||
%define HAVE_SSE 1
|
||||
%define HAVE_SSE2 1
|
||||
%define HAVE_SSE3 1
|
||||
%define HAVE_SSSE3 1
|
||||
%define HAVE_SSE4_1 1
|
||||
%define HAVE_AVX 1
|
||||
%define HAVE_AVX2 1
|
||||
%define HAVE_VPX_PORTS 1
|
||||
%define HAVE_STDINT_H 1
|
||||
%define HAVE_PTHREAD_H 1
|
||||
%define HAVE_SYS_MMAN_H 1
|
||||
%define CONFIG_DEPENDENCY_TRACKING 1
|
||||
%define CONFIG_EXTERNAL_BUILD 1
|
||||
%define CONFIG_INSTALL_DOCS 0
|
||||
%define CONFIG_INSTALL_BINS 1
|
||||
%define CONFIG_INSTALL_LIBS 1
|
||||
%define CONFIG_INSTALL_SRCS 0
|
||||
%define CONFIG_USE_X86INC 0
|
||||
%define CONFIG_DEBUG 0
|
||||
%define CONFIG_GPROF 0
|
||||
%define CONFIG_GCOV 0
|
||||
%define CONFIG_RVCT 0
|
||||
%define CONFIG_GCC 1
|
||||
%define CONFIG_MSVS 0
|
||||
%define CONFIG_PIC 1
|
||||
%define CONFIG_BIG_ENDIAN 0
|
||||
%define CONFIG_CODEC_SRCS 0
|
||||
%define CONFIG_DEBUG_LIBS 0
|
||||
%define CONFIG_DEQUANT_TOKENS 0
|
||||
%define CONFIG_DC_RECON 0
|
||||
%define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
%define CONFIG_POSTPROC 1
|
||||
%define CONFIG_VP9_POSTPROC 1
|
||||
%define CONFIG_MULTITHREAD 1
|
||||
%define CONFIG_INTERNAL_STATS 0
|
||||
%define CONFIG_VP8_ENCODER 1
|
||||
%define CONFIG_VP8_DECODER 1
|
||||
%define CONFIG_VP9_ENCODER 1
|
||||
%define CONFIG_VP9_DECODER 1
|
||||
%define CONFIG_VP8 1
|
||||
%define CONFIG_VP9 1
|
||||
%define CONFIG_ENCODERS 1
|
||||
%define CONFIG_DECODERS 1
|
||||
%define CONFIG_STATIC_MSVCRT 0
|
||||
%define CONFIG_SPATIAL_RESAMPLING 1
|
||||
%define CONFIG_REALTIME_ONLY 0
|
||||
%define CONFIG_ONTHEFLY_BITPACKING 0
|
||||
%define CONFIG_ERROR_CONCEALMENT 1
|
||||
%define CONFIG_SHARED 0
|
||||
%define CONFIG_STATIC 1
|
||||
%define CONFIG_SMALL 0
|
||||
%define CONFIG_POSTPROC_VISUALIZER 0
|
||||
%define CONFIG_OS_SUPPORT 1
|
||||
%define CONFIG_UNIT_TESTS 0
|
||||
%define CONFIG_WEBM_IO 1
|
||||
%define CONFIG_LIBYUV 1
|
||||
%define CONFIG_DECODE_PERF_TESTS 0
|
||||
%define CONFIG_ENCODE_PERF_TESTS 0
|
||||
%define CONFIG_MULTI_RES_ENCODING 1
|
||||
%define CONFIG_TEMPORAL_DENOISING 1
|
||||
%define CONFIG_VP9_TEMPORAL_DENOISING 0
|
||||
%define CONFIG_COEFFICIENT_RANGE_CHECKING 0
|
||||
%define CONFIG_VP9_HIGHBITDEPTH 0
|
||||
%define CONFIG_EXPERIMENTAL 0
|
||||
%define CONFIG_SIZE_LIMIT 1
|
||||
%define CONFIG_SPATIAL_SVC 0
|
||||
%define CONFIG_FP_MB_STATS 0
|
||||
%define CONFIG_EMULATE_HARDWARE 0
|
|
@ -0,0 +1,10 @@
|
|||
/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */
|
||||
/* */
|
||||
/* Use of this source code is governed by a BSD-style license */
|
||||
/* that can be found in the LICENSE file in the root of the source */
|
||||
/* tree. An additional intellectual property rights grant can be found */
|
||||
/* in the file PATENTS. All contributing project authors may */
|
||||
/* be found in the AUTHORS file in the root of the source tree. */
|
||||
#include "vpx/vpx_codec.h"
|
||||
static const char* const cfg = "--target=x86-linux-gcc --disable-use-x86inc --enable-external-build --disable-examples --disable-install-docs --disable-unit-tests --enable-multi-res-encoding --size-limit=8192x4608 --enable-pic --enable-error-concealment --enable-postproc --enable-vp9-postproc --as=yasm";
|
||||
const char *vpx_codec_build_config(void) {return cfg;}
|
|
@ -34,9 +34,8 @@
|
|||
#define HAVE_STDINT_H 1
|
||||
#define HAVE_PTHREAD_H 1
|
||||
#define HAVE_SYS_MMAN_H 1
|
||||
#define HAVE_UNISTD_H 1
|
||||
#define CONFIG_DEPENDENCY_TRACKING 1
|
||||
#define CONFIG_EXTERNAL_BUILD 0
|
||||
#define CONFIG_EXTERNAL_BUILD 1
|
||||
#define CONFIG_INSTALL_DOCS 0
|
||||
#define CONFIG_INSTALL_BINS 1
|
||||
#define CONFIG_INSTALL_LIBS 1
|
||||
|
@ -56,7 +55,7 @@
|
|||
#define CONFIG_DC_RECON 0
|
||||
#define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
#define CONFIG_POSTPROC 1
|
||||
#define CONFIG_VP9_POSTPROC 0
|
||||
#define CONFIG_VP9_POSTPROC 1
|
||||
#define CONFIG_MULTITHREAD 1
|
||||
#define CONFIG_INTERNAL_STATS 0
|
||||
#define CONFIG_VP8_ENCODER 1
|
||||
|
@ -71,13 +70,13 @@
|
|||
#define CONFIG_SPATIAL_RESAMPLING 1
|
||||
#define CONFIG_REALTIME_ONLY 0
|
||||
#define CONFIG_ONTHEFLY_BITPACKING 0
|
||||
#define CONFIG_ERROR_CONCEALMENT 0
|
||||
#define CONFIG_ERROR_CONCEALMENT 1
|
||||
#define CONFIG_SHARED 0
|
||||
#define CONFIG_STATIC 1
|
||||
#define CONFIG_SMALL 0
|
||||
#define CONFIG_POSTPROC_VISUALIZER 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
#define CONFIG_UNIT_TESTS 1
|
||||
#define CONFIG_UNIT_TESTS 0
|
||||
#define CONFIG_WEBM_IO 1
|
||||
#define CONFIG_LIBYUV 1
|
||||
#define CONFIG_DECODE_PERF_TESTS 0
|
|
@ -297,6 +297,14 @@ void vp9_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_t
|
|||
void vp9_fht8x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define vp9_fht8x8 vp9_fht8x8_sse2
|
||||
|
||||
void vp9_filter_by_weight16x16_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
void vp9_filter_by_weight16x16_sse2(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
#define vp9_filter_by_weight16x16 vp9_filter_by_weight16x16_sse2
|
||||
|
||||
void vp9_filter_by_weight8x8_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
void vp9_filter_by_weight8x8_sse2(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
#define vp9_filter_by_weight8x8 vp9_filter_by_weight8x8_sse2
|
||||
|
||||
int vp9_full_range_search_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
#define vp9_full_range_search vp9_full_range_search_c
|
||||
|
||||
|
@ -451,10 +459,26 @@ void vp9_lpf_vertical_8_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, co
|
|||
void vp9_lpf_vertical_8_dual_sse2(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
|
||||
#define vp9_lpf_vertical_8_dual vp9_lpf_vertical_8_dual_sse2
|
||||
|
||||
void vp9_mbpost_proc_across_ip_c(uint8_t *src, int pitch, int rows, int cols, int flimit);
|
||||
void vp9_mbpost_proc_across_ip_xmm(uint8_t *src, int pitch, int rows, int cols, int flimit);
|
||||
#define vp9_mbpost_proc_across_ip vp9_mbpost_proc_across_ip_xmm
|
||||
|
||||
void vp9_mbpost_proc_down_c(uint8_t *dst, int pitch, int rows, int cols, int flimit);
|
||||
void vp9_mbpost_proc_down_xmm(uint8_t *dst, int pitch, int rows, int cols, int flimit);
|
||||
#define vp9_mbpost_proc_down vp9_mbpost_proc_down_xmm
|
||||
|
||||
void vp9_minmax_8x8_c(const uint8_t *s, int p, const uint8_t *d, int dp, int *min, int *max);
|
||||
void vp9_minmax_8x8_sse2(const uint8_t *s, int p, const uint8_t *d, int dp, int *min, int *max);
|
||||
#define vp9_minmax_8x8 vp9_minmax_8x8_sse2
|
||||
|
||||
void vp9_plane_add_noise_c(uint8_t *Start, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int Width, unsigned int Height, int Pitch);
|
||||
void vp9_plane_add_noise_wmt(uint8_t *Start, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int Width, unsigned int Height, int Pitch);
|
||||
#define vp9_plane_add_noise vp9_plane_add_noise_wmt
|
||||
|
||||
void vp9_post_proc_down_and_across_c(const uint8_t *src_ptr, uint8_t *dst_ptr, int src_pixels_per_line, int dst_pixels_per_line, int rows, int cols, int flimit);
|
||||
void vp9_post_proc_down_and_across_xmm(const uint8_t *src_ptr, uint8_t *dst_ptr, int src_pixels_per_line, int dst_pixels_per_line, int rows, int cols, int flimit);
|
||||
#define vp9_post_proc_down_and_across vp9_post_proc_down_and_across_xmm
|
||||
|
||||
void vp9_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_quantize_b_sse2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_quantize_b_ssse3(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
|
@ -0,0 +1,81 @@
|
|||
%define ARCH_ARM 0
|
||||
%define ARCH_MIPS 0
|
||||
%define ARCH_X86 0
|
||||
%define ARCH_X86_64 1
|
||||
%define HAVE_EDSP 0
|
||||
%define HAVE_MEDIA 0
|
||||
%define HAVE_NEON 0
|
||||
%define HAVE_NEON_ASM 0
|
||||
%define HAVE_MIPS32 0
|
||||
%define HAVE_DSPR2 0
|
||||
%define HAVE_MSA 0
|
||||
%define HAVE_MIPS64 0
|
||||
%define HAVE_MMX 1
|
||||
%define HAVE_SSE 1
|
||||
%define HAVE_SSE2 1
|
||||
%define HAVE_SSE3 1
|
||||
%define HAVE_SSSE3 1
|
||||
%define HAVE_SSE4_1 1
|
||||
%define HAVE_AVX 1
|
||||
%define HAVE_AVX2 1
|
||||
%define HAVE_VPX_PORTS 1
|
||||
%define HAVE_STDINT_H 1
|
||||
%define HAVE_PTHREAD_H 1
|
||||
%define HAVE_SYS_MMAN_H 1
|
||||
%define CONFIG_DEPENDENCY_TRACKING 1
|
||||
%define CONFIG_EXTERNAL_BUILD 1
|
||||
%define CONFIG_INSTALL_DOCS 0
|
||||
%define CONFIG_INSTALL_BINS 1
|
||||
%define CONFIG_INSTALL_LIBS 1
|
||||
%define CONFIG_INSTALL_SRCS 0
|
||||
%define CONFIG_USE_X86INC 1
|
||||
%define CONFIG_DEBUG 0
|
||||
%define CONFIG_GPROF 0
|
||||
%define CONFIG_GCOV 0
|
||||
%define CONFIG_RVCT 0
|
||||
%define CONFIG_GCC 1
|
||||
%define CONFIG_MSVS 0
|
||||
%define CONFIG_PIC 1
|
||||
%define CONFIG_BIG_ENDIAN 0
|
||||
%define CONFIG_CODEC_SRCS 0
|
||||
%define CONFIG_DEBUG_LIBS 0
|
||||
%define CONFIG_DEQUANT_TOKENS 0
|
||||
%define CONFIG_DC_RECON 0
|
||||
%define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
%define CONFIG_POSTPROC 1
|
||||
%define CONFIG_VP9_POSTPROC 1
|
||||
%define CONFIG_MULTITHREAD 1
|
||||
%define CONFIG_INTERNAL_STATS 0
|
||||
%define CONFIG_VP8_ENCODER 1
|
||||
%define CONFIG_VP8_DECODER 1
|
||||
%define CONFIG_VP9_ENCODER 1
|
||||
%define CONFIG_VP9_DECODER 1
|
||||
%define CONFIG_VP8 1
|
||||
%define CONFIG_VP9 1
|
||||
%define CONFIG_ENCODERS 1
|
||||
%define CONFIG_DECODERS 1
|
||||
%define CONFIG_STATIC_MSVCRT 0
|
||||
%define CONFIG_SPATIAL_RESAMPLING 1
|
||||
%define CONFIG_REALTIME_ONLY 0
|
||||
%define CONFIG_ONTHEFLY_BITPACKING 0
|
||||
%define CONFIG_ERROR_CONCEALMENT 1
|
||||
%define CONFIG_SHARED 0
|
||||
%define CONFIG_STATIC 1
|
||||
%define CONFIG_SMALL 0
|
||||
%define CONFIG_POSTPROC_VISUALIZER 0
|
||||
%define CONFIG_OS_SUPPORT 1
|
||||
%define CONFIG_UNIT_TESTS 0
|
||||
%define CONFIG_WEBM_IO 1
|
||||
%define CONFIG_LIBYUV 1
|
||||
%define CONFIG_DECODE_PERF_TESTS 0
|
||||
%define CONFIG_ENCODE_PERF_TESTS 0
|
||||
%define CONFIG_MULTI_RES_ENCODING 1
|
||||
%define CONFIG_TEMPORAL_DENOISING 1
|
||||
%define CONFIG_VP9_TEMPORAL_DENOISING 0
|
||||
%define CONFIG_COEFFICIENT_RANGE_CHECKING 0
|
||||
%define CONFIG_VP9_HIGHBITDEPTH 0
|
||||
%define CONFIG_EXPERIMENTAL 0
|
||||
%define CONFIG_SIZE_LIMIT 1
|
||||
%define CONFIG_SPATIAL_SVC 0
|
||||
%define CONFIG_FP_MB_STATS 0
|
||||
%define CONFIG_EMULATE_HARDWARE 0
|
|
@ -0,0 +1,10 @@
|
|||
/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */
|
||||
/* */
|
||||
/* Use of this source code is governed by a BSD-style license */
|
||||
/* that can be found in the LICENSE file in the root of the source */
|
||||
/* tree. An additional intellectual property rights grant can be found */
|
||||
/* in the file PATENTS. All contributing project authors may */
|
||||
/* be found in the AUTHORS file in the root of the source tree. */
|
||||
#include "vpx/vpx_codec.h"
|
||||
static const char* const cfg = "--target=x86_64-linux-gcc --enable-external-build --disable-examples --disable-install-docs --disable-unit-tests --enable-multi-res-encoding --size-limit=8192x4608 --enable-pic --enable-error-concealment --enable-postproc --enable-vp9-postproc --as=yasm";
|
||||
const char *vpx_codec_build_config(void) {return cfg;}
|
|
@ -34,9 +34,8 @@
|
|||
#define HAVE_STDINT_H 1
|
||||
#define HAVE_PTHREAD_H 1
|
||||
#define HAVE_SYS_MMAN_H 1
|
||||
#define HAVE_UNISTD_H 1
|
||||
#define CONFIG_DEPENDENCY_TRACKING 1
|
||||
#define CONFIG_EXTERNAL_BUILD 0
|
||||
#define CONFIG_EXTERNAL_BUILD 1
|
||||
#define CONFIG_INSTALL_DOCS 0
|
||||
#define CONFIG_INSTALL_BINS 1
|
||||
#define CONFIG_INSTALL_LIBS 1
|
||||
|
@ -56,7 +55,7 @@
|
|||
#define CONFIG_DC_RECON 0
|
||||
#define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
#define CONFIG_POSTPROC 1
|
||||
#define CONFIG_VP9_POSTPROC 0
|
||||
#define CONFIG_VP9_POSTPROC 1
|
||||
#define CONFIG_MULTITHREAD 1
|
||||
#define CONFIG_INTERNAL_STATS 0
|
||||
#define CONFIG_VP8_ENCODER 1
|
||||
|
@ -71,13 +70,13 @@
|
|||
#define CONFIG_SPATIAL_RESAMPLING 1
|
||||
#define CONFIG_REALTIME_ONLY 0
|
||||
#define CONFIG_ONTHEFLY_BITPACKING 0
|
||||
#define CONFIG_ERROR_CONCEALMENT 0
|
||||
#define CONFIG_ERROR_CONCEALMENT 1
|
||||
#define CONFIG_SHARED 0
|
||||
#define CONFIG_STATIC 1
|
||||
#define CONFIG_SMALL 0
|
||||
#define CONFIG_POSTPROC_VISUALIZER 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
#define CONFIG_UNIT_TESTS 1
|
||||
#define CONFIG_UNIT_TESTS 0
|
||||
#define CONFIG_WEBM_IO 1
|
||||
#define CONFIG_LIBYUV 1
|
||||
#define CONFIG_DECODE_PERF_TESTS 0
|
|
@ -38,13 +38,11 @@ unsigned int vp9_avg_8x8_sse2(const uint8_t *, int p);
|
|||
RTCD_EXTERN unsigned int (*vp9_avg_8x8)(const uint8_t *, int p);
|
||||
|
||||
int64_t vp9_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
int64_t vp9_block_error_sse2(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
int64_t vp9_block_error_avx2(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
RTCD_EXTERN int64_t (*vp9_block_error)(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
|
||||
int64_t vp9_block_error_fp_c(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
|
||||
int64_t vp9_block_error_fp_sse2(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
|
||||
RTCD_EXTERN int64_t (*vp9_block_error_fp)(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
|
||||
#define vp9_block_error_fp vp9_block_error_fp_c
|
||||
|
||||
void vp9_convolve8_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
void vp9_convolve8_sse2(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
|
@ -80,12 +78,10 @@ void vp9_convolve8_vert_avx2(const uint8_t *src, ptrdiff_t src_stride, uint8_t *
|
|||
RTCD_EXTERN void (*vp9_convolve8_vert)(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
|
||||
void vp9_convolve_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
void vp9_convolve_avg_sse2(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
RTCD_EXTERN void (*vp9_convolve_avg)(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
#define vp9_convolve_avg vp9_convolve_avg_c
|
||||
|
||||
void vp9_convolve_copy_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
void vp9_convolve_copy_sse2(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
RTCD_EXTERN void (*vp9_convolve_copy)(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
#define vp9_convolve_copy vp9_convolve_copy_c
|
||||
|
||||
void vp9_d117_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d117_predictor_16x16 vp9_d117_predictor_16x16_c
|
||||
|
@ -112,131 +108,100 @@ void vp9_d135_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *a
|
|||
#define vp9_d135_predictor_8x8 vp9_d135_predictor_8x8_c
|
||||
|
||||
void vp9_d153_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d153_predictor_16x16_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d153_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d153_predictor_16x16 vp9_d153_predictor_16x16_c
|
||||
|
||||
void vp9_d153_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d153_predictor_32x32 vp9_d153_predictor_32x32_c
|
||||
|
||||
void vp9_d153_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d153_predictor_4x4_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d153_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d153_predictor_4x4 vp9_d153_predictor_4x4_c
|
||||
|
||||
void vp9_d153_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d153_predictor_8x8_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d153_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d153_predictor_8x8 vp9_d153_predictor_8x8_c
|
||||
|
||||
void vp9_d207_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d207_predictor_16x16_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d207_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d207_predictor_16x16 vp9_d207_predictor_16x16_c
|
||||
|
||||
void vp9_d207_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d207_predictor_32x32_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d207_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d207_predictor_32x32 vp9_d207_predictor_32x32_c
|
||||
|
||||
void vp9_d207_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d207_predictor_4x4_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d207_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d207_predictor_4x4 vp9_d207_predictor_4x4_c
|
||||
|
||||
void vp9_d207_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d207_predictor_8x8_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d207_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d207_predictor_8x8 vp9_d207_predictor_8x8_c
|
||||
|
||||
void vp9_d45_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d45_predictor_16x16_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d45_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d45_predictor_16x16 vp9_d45_predictor_16x16_c
|
||||
|
||||
void vp9_d45_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d45_predictor_32x32_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d45_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d45_predictor_32x32 vp9_d45_predictor_32x32_c
|
||||
|
||||
void vp9_d45_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d45_predictor_4x4_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d45_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d45_predictor_4x4 vp9_d45_predictor_4x4_c
|
||||
|
||||
void vp9_d45_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d45_predictor_8x8_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d45_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d45_predictor_8x8 vp9_d45_predictor_8x8_c
|
||||
|
||||
void vp9_d63_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d63_predictor_16x16_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d63_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d63_predictor_16x16 vp9_d63_predictor_16x16_c
|
||||
|
||||
void vp9_d63_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d63_predictor_32x32_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d63_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d63_predictor_32x32 vp9_d63_predictor_32x32_c
|
||||
|
||||
void vp9_d63_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d63_predictor_4x4_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d63_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d63_predictor_4x4 vp9_d63_predictor_4x4_c
|
||||
|
||||
void vp9_d63_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d63_predictor_8x8_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d63_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d63_predictor_8x8 vp9_d63_predictor_8x8_c
|
||||
|
||||
void vp9_dc_128_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_128_predictor_16x16_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_128_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_128_predictor_16x16 vp9_dc_128_predictor_16x16_c
|
||||
|
||||
void vp9_dc_128_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_128_predictor_32x32_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_128_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_128_predictor_32x32 vp9_dc_128_predictor_32x32_c
|
||||
|
||||
void vp9_dc_128_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_128_predictor_4x4_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_128_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_128_predictor_4x4 vp9_dc_128_predictor_4x4_c
|
||||
|
||||
void vp9_dc_128_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_128_predictor_8x8_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_128_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_128_predictor_8x8 vp9_dc_128_predictor_8x8_c
|
||||
|
||||
void vp9_dc_left_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_left_predictor_16x16_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_left_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_left_predictor_16x16 vp9_dc_left_predictor_16x16_c
|
||||
|
||||
void vp9_dc_left_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_left_predictor_32x32_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_left_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_left_predictor_32x32 vp9_dc_left_predictor_32x32_c
|
||||
|
||||
void vp9_dc_left_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_left_predictor_4x4_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_left_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_left_predictor_4x4 vp9_dc_left_predictor_4x4_c
|
||||
|
||||
void vp9_dc_left_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_left_predictor_8x8_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_left_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_left_predictor_8x8 vp9_dc_left_predictor_8x8_c
|
||||
|
||||
void vp9_dc_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_predictor_16x16_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_predictor_16x16 vp9_dc_predictor_16x16_c
|
||||
|
||||
void vp9_dc_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_predictor_32x32_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_predictor_32x32 vp9_dc_predictor_32x32_c
|
||||
|
||||
void vp9_dc_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_predictor_4x4_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_predictor_4x4 vp9_dc_predictor_4x4_c
|
||||
|
||||
void vp9_dc_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_predictor_8x8_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_predictor_8x8 vp9_dc_predictor_8x8_c
|
||||
|
||||
void vp9_dc_top_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_top_predictor_16x16_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_top_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_top_predictor_16x16 vp9_dc_top_predictor_16x16_c
|
||||
|
||||
void vp9_dc_top_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_top_predictor_32x32_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_top_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_top_predictor_32x32 vp9_dc_top_predictor_32x32_c
|
||||
|
||||
void vp9_dc_top_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_top_predictor_4x4_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_top_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_top_predictor_4x4 vp9_dc_top_predictor_4x4_c
|
||||
|
||||
void vp9_dc_top_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_top_predictor_8x8_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_top_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_top_predictor_8x8 vp9_dc_top_predictor_8x8_c
|
||||
|
||||
int vp9_diamond_search_sad_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
#define vp9_diamond_search_sad vp9_diamond_search_sad_c
|
||||
|
@ -296,6 +261,14 @@ void vp9_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_t
|
|||
void vp9_fht8x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*vp9_fht8x8)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
|
||||
void vp9_filter_by_weight16x16_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
void vp9_filter_by_weight16x16_sse2(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
RTCD_EXTERN void (*vp9_filter_by_weight16x16)(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
|
||||
void vp9_filter_by_weight8x8_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
void vp9_filter_by_weight8x8_sse2(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
RTCD_EXTERN void (*vp9_filter_by_weight8x8)(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
|
||||
int vp9_full_range_search_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
#define vp9_full_range_search vp9_full_range_search_c
|
||||
|
||||
|
@ -305,24 +278,19 @@ int vp9_full_search_sadx8(const struct macroblock *x, const struct mv *ref_mv, i
|
|||
RTCD_EXTERN int (*vp9_full_search_sad)(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
|
||||
void vp9_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride);
|
||||
void vp9_fwht4x4_mmx(const int16_t *input, tran_low_t *output, int stride);
|
||||
RTCD_EXTERN void (*vp9_fwht4x4)(const int16_t *input, tran_low_t *output, int stride);
|
||||
#define vp9_fwht4x4 vp9_fwht4x4_c
|
||||
|
||||
void vp9_h_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_h_predictor_16x16_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_h_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_h_predictor_16x16 vp9_h_predictor_16x16_c
|
||||
|
||||
void vp9_h_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_h_predictor_32x32_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_h_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_h_predictor_32x32 vp9_h_predictor_32x32_c
|
||||
|
||||
void vp9_h_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_h_predictor_4x4_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_h_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_h_predictor_4x4 vp9_h_predictor_4x4_c
|
||||
|
||||
void vp9_h_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_h_predictor_8x8_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_h_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_h_predictor_8x8 vp9_h_predictor_8x8_c
|
||||
|
||||
void vp9_hadamard_16x16_c(int16_t const *src_diff, int src_stride, int16_t *coeff);
|
||||
void vp9_hadamard_16x16_sse2(int16_t const *src_diff, int src_stride, int16_t *coeff);
|
||||
|
@ -447,10 +415,26 @@ void vp9_lpf_vertical_8_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, co
|
|||
void vp9_lpf_vertical_8_dual_sse2(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
|
||||
RTCD_EXTERN void (*vp9_lpf_vertical_8_dual)(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
|
||||
|
||||
void vp9_mbpost_proc_across_ip_c(uint8_t *src, int pitch, int rows, int cols, int flimit);
|
||||
void vp9_mbpost_proc_across_ip_xmm(uint8_t *src, int pitch, int rows, int cols, int flimit);
|
||||
RTCD_EXTERN void (*vp9_mbpost_proc_across_ip)(uint8_t *src, int pitch, int rows, int cols, int flimit);
|
||||
|
||||
void vp9_mbpost_proc_down_c(uint8_t *dst, int pitch, int rows, int cols, int flimit);
|
||||
void vp9_mbpost_proc_down_xmm(uint8_t *dst, int pitch, int rows, int cols, int flimit);
|
||||
RTCD_EXTERN void (*vp9_mbpost_proc_down)(uint8_t *dst, int pitch, int rows, int cols, int flimit);
|
||||
|
||||
void vp9_minmax_8x8_c(const uint8_t *s, int p, const uint8_t *d, int dp, int *min, int *max);
|
||||
void vp9_minmax_8x8_sse2(const uint8_t *s, int p, const uint8_t *d, int dp, int *min, int *max);
|
||||
RTCD_EXTERN void (*vp9_minmax_8x8)(const uint8_t *s, int p, const uint8_t *d, int dp, int *min, int *max);
|
||||
|
||||
void vp9_plane_add_noise_c(uint8_t *Start, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int Width, unsigned int Height, int Pitch);
|
||||
void vp9_plane_add_noise_wmt(uint8_t *Start, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int Width, unsigned int Height, int Pitch);
|
||||
RTCD_EXTERN void (*vp9_plane_add_noise)(uint8_t *Start, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int Width, unsigned int Height, int Pitch);
|
||||
|
||||
void vp9_post_proc_down_and_across_c(const uint8_t *src_ptr, uint8_t *dst_ptr, int src_pixels_per_line, int dst_pixels_per_line, int rows, int cols, int flimit);
|
||||
void vp9_post_proc_down_and_across_xmm(const uint8_t *src_ptr, uint8_t *dst_ptr, int src_pixels_per_line, int dst_pixels_per_line, int rows, int cols, int flimit);
|
||||
RTCD_EXTERN void (*vp9_post_proc_down_and_across)(const uint8_t *src_ptr, uint8_t *dst_ptr, int src_pixels_per_line, int dst_pixels_per_line, int rows, int cols, int flimit);
|
||||
|
||||
void vp9_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_quantize_b_sse2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*vp9_quantize_b)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
@ -470,177 +454,117 @@ int16_t vp9_satd_sse2(const int16_t *coeff, int length);
|
|||
RTCD_EXTERN int16_t (*vp9_satd)(const int16_t *coeff, int length);
|
||||
|
||||
unsigned int vp9_sub_pixel_avg_variance16x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance16x16_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance16x16_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance16x16)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
#define vp9_sub_pixel_avg_variance16x16 vp9_sub_pixel_avg_variance16x16_c
|
||||
|
||||
unsigned int vp9_sub_pixel_avg_variance16x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance16x32_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance16x32_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance16x32)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
#define vp9_sub_pixel_avg_variance16x32 vp9_sub_pixel_avg_variance16x32_c
|
||||
|
||||
unsigned int vp9_sub_pixel_avg_variance16x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance16x8_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance16x8_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance16x8)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
#define vp9_sub_pixel_avg_variance16x8 vp9_sub_pixel_avg_variance16x8_c
|
||||
|
||||
unsigned int vp9_sub_pixel_avg_variance32x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance32x16_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance32x16_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance32x16)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
#define vp9_sub_pixel_avg_variance32x16 vp9_sub_pixel_avg_variance32x16_c
|
||||
|
||||
unsigned int vp9_sub_pixel_avg_variance32x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance32x32_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance32x32_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance32x32_avx2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance32x32)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
|
||||
unsigned int vp9_sub_pixel_avg_variance32x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance32x64_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance32x64_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance32x64)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
#define vp9_sub_pixel_avg_variance32x64 vp9_sub_pixel_avg_variance32x64_c
|
||||
|
||||
unsigned int vp9_sub_pixel_avg_variance4x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance4x4_sse(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance4x4_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance4x4)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
#define vp9_sub_pixel_avg_variance4x4 vp9_sub_pixel_avg_variance4x4_c
|
||||
|
||||
unsigned int vp9_sub_pixel_avg_variance4x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance4x8_sse(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance4x8_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance4x8)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
#define vp9_sub_pixel_avg_variance4x8 vp9_sub_pixel_avg_variance4x8_c
|
||||
|
||||
unsigned int vp9_sub_pixel_avg_variance64x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance64x32_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance64x32_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance64x32)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
#define vp9_sub_pixel_avg_variance64x32 vp9_sub_pixel_avg_variance64x32_c
|
||||
|
||||
unsigned int vp9_sub_pixel_avg_variance64x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance64x64_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance64x64_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance64x64_avx2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance64x64)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
|
||||
unsigned int vp9_sub_pixel_avg_variance8x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance8x16_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance8x16_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance8x16)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
#define vp9_sub_pixel_avg_variance8x16 vp9_sub_pixel_avg_variance8x16_c
|
||||
|
||||
unsigned int vp9_sub_pixel_avg_variance8x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance8x4_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance8x4_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance8x4)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
#define vp9_sub_pixel_avg_variance8x4 vp9_sub_pixel_avg_variance8x4_c
|
||||
|
||||
unsigned int vp9_sub_pixel_avg_variance8x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance8x8_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance8x8_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance8x8)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
#define vp9_sub_pixel_avg_variance8x8 vp9_sub_pixel_avg_variance8x8_c
|
||||
|
||||
unsigned int vp9_sub_pixel_variance16x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance16x16_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance16x16_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance16x16)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vp9_sub_pixel_variance16x16 vp9_sub_pixel_variance16x16_c
|
||||
|
||||
unsigned int vp9_sub_pixel_variance16x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance16x32_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance16x32_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance16x32)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vp9_sub_pixel_variance16x32 vp9_sub_pixel_variance16x32_c
|
||||
|
||||
unsigned int vp9_sub_pixel_variance16x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance16x8_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance16x8_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance16x8)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vp9_sub_pixel_variance16x8 vp9_sub_pixel_variance16x8_c
|
||||
|
||||
unsigned int vp9_sub_pixel_variance32x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance32x16_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance32x16_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance32x16)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vp9_sub_pixel_variance32x16 vp9_sub_pixel_variance32x16_c
|
||||
|
||||
unsigned int vp9_sub_pixel_variance32x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance32x32_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance32x32_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance32x32_avx2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance32x32)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
|
||||
unsigned int vp9_sub_pixel_variance32x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance32x64_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance32x64_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance32x64)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vp9_sub_pixel_variance32x64 vp9_sub_pixel_variance32x64_c
|
||||
|
||||
unsigned int vp9_sub_pixel_variance4x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance4x4_sse(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance4x4_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance4x4)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vp9_sub_pixel_variance4x4 vp9_sub_pixel_variance4x4_c
|
||||
|
||||
unsigned int vp9_sub_pixel_variance4x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance4x8_sse(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance4x8_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance4x8)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vp9_sub_pixel_variance4x8 vp9_sub_pixel_variance4x8_c
|
||||
|
||||
unsigned int vp9_sub_pixel_variance64x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance64x32_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance64x32_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance64x32)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vp9_sub_pixel_variance64x32 vp9_sub_pixel_variance64x32_c
|
||||
|
||||
unsigned int vp9_sub_pixel_variance64x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance64x64_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance64x64_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance64x64_avx2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance64x64)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
|
||||
unsigned int vp9_sub_pixel_variance8x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance8x16_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance8x16_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance8x16)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vp9_sub_pixel_variance8x16 vp9_sub_pixel_variance8x16_c
|
||||
|
||||
unsigned int vp9_sub_pixel_variance8x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance8x4_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance8x4_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance8x4)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vp9_sub_pixel_variance8x4 vp9_sub_pixel_variance8x4_c
|
||||
|
||||
unsigned int vp9_sub_pixel_variance8x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance8x8_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance8x8_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance8x8)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vp9_sub_pixel_variance8x8 vp9_sub_pixel_variance8x8_c
|
||||
|
||||
void vp9_subtract_block_c(int rows, int cols, int16_t *diff_ptr, ptrdiff_t diff_stride, const uint8_t *src_ptr, ptrdiff_t src_stride, const uint8_t *pred_ptr, ptrdiff_t pred_stride);
|
||||
void vp9_subtract_block_sse2(int rows, int cols, int16_t *diff_ptr, ptrdiff_t diff_stride, const uint8_t *src_ptr, ptrdiff_t src_stride, const uint8_t *pred_ptr, ptrdiff_t pred_stride);
|
||||
RTCD_EXTERN void (*vp9_subtract_block)(int rows, int cols, int16_t *diff_ptr, ptrdiff_t diff_stride, const uint8_t *src_ptr, ptrdiff_t src_stride, const uint8_t *pred_ptr, ptrdiff_t pred_stride);
|
||||
#define vp9_subtract_block vp9_subtract_block_c
|
||||
|
||||
void vp9_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
void vp9_temporal_filter_apply_sse2(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
RTCD_EXTERN void (*vp9_temporal_filter_apply)(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
|
||||
void vp9_tm_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_tm_predictor_16x16_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_tm_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_tm_predictor_16x16 vp9_tm_predictor_16x16_c
|
||||
|
||||
void vp9_tm_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_tm_predictor_32x32 vp9_tm_predictor_32x32_c
|
||||
|
||||
void vp9_tm_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_tm_predictor_4x4_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_tm_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_tm_predictor_4x4 vp9_tm_predictor_4x4_c
|
||||
|
||||
void vp9_tm_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_tm_predictor_8x8_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_tm_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_tm_predictor_8x8 vp9_tm_predictor_8x8_c
|
||||
|
||||
void vp9_v_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_v_predictor_16x16_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_v_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_v_predictor_16x16 vp9_v_predictor_16x16_c
|
||||
|
||||
void vp9_v_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_v_predictor_32x32_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_v_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_v_predictor_32x32 vp9_v_predictor_32x32_c
|
||||
|
||||
void vp9_v_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_v_predictor_4x4_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_v_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_v_predictor_4x4 vp9_v_predictor_4x4_c
|
||||
|
||||
void vp9_v_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_v_predictor_8x8_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_v_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_v_predictor_8x8 vp9_v_predictor_8x8_c
|
||||
|
||||
int vp9_vector_var_c(int16_t const *ref, int16_t const *src, const int bwl);
|
||||
int vp9_vector_var_sse2(int16_t const *ref, int16_t const *src, const int bwl);
|
||||
|
@ -661,10 +585,7 @@ static void setup_rtcd_internal(void)
|
|||
vp9_avg_8x8 = vp9_avg_8x8_c;
|
||||
if (flags & HAS_SSE2) vp9_avg_8x8 = vp9_avg_8x8_sse2;
|
||||
vp9_block_error = vp9_block_error_c;
|
||||
if (flags & HAS_SSE2) vp9_block_error = vp9_block_error_sse2;
|
||||
if (flags & HAS_AVX2) vp9_block_error = vp9_block_error_avx2;
|
||||
vp9_block_error_fp = vp9_block_error_fp_c;
|
||||
if (flags & HAS_SSE2) vp9_block_error_fp = vp9_block_error_fp_sse2;
|
||||
vp9_convolve8 = vp9_convolve8_c;
|
||||
if (flags & HAS_SSE2) vp9_convolve8 = vp9_convolve8_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_convolve8 = vp9_convolve8_ssse3;
|
||||
|
@ -686,72 +607,6 @@ static void setup_rtcd_internal(void)
|
|||
if (flags & HAS_SSE2) vp9_convolve8_vert = vp9_convolve8_vert_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_convolve8_vert = vp9_convolve8_vert_ssse3;
|
||||
if (flags & HAS_AVX2) vp9_convolve8_vert = vp9_convolve8_vert_avx2;
|
||||
vp9_convolve_avg = vp9_convolve_avg_c;
|
||||
if (flags & HAS_SSE2) vp9_convolve_avg = vp9_convolve_avg_sse2;
|
||||
vp9_convolve_copy = vp9_convolve_copy_c;
|
||||
if (flags & HAS_SSE2) vp9_convolve_copy = vp9_convolve_copy_sse2;
|
||||
vp9_d153_predictor_16x16 = vp9_d153_predictor_16x16_c;
|
||||
if (flags & HAS_SSSE3) vp9_d153_predictor_16x16 = vp9_d153_predictor_16x16_ssse3;
|
||||
vp9_d153_predictor_4x4 = vp9_d153_predictor_4x4_c;
|
||||
if (flags & HAS_SSSE3) vp9_d153_predictor_4x4 = vp9_d153_predictor_4x4_ssse3;
|
||||
vp9_d153_predictor_8x8 = vp9_d153_predictor_8x8_c;
|
||||
if (flags & HAS_SSSE3) vp9_d153_predictor_8x8 = vp9_d153_predictor_8x8_ssse3;
|
||||
vp9_d207_predictor_16x16 = vp9_d207_predictor_16x16_c;
|
||||
if (flags & HAS_SSSE3) vp9_d207_predictor_16x16 = vp9_d207_predictor_16x16_ssse3;
|
||||
vp9_d207_predictor_32x32 = vp9_d207_predictor_32x32_c;
|
||||
if (flags & HAS_SSSE3) vp9_d207_predictor_32x32 = vp9_d207_predictor_32x32_ssse3;
|
||||
vp9_d207_predictor_4x4 = vp9_d207_predictor_4x4_c;
|
||||
if (flags & HAS_SSSE3) vp9_d207_predictor_4x4 = vp9_d207_predictor_4x4_ssse3;
|
||||
vp9_d207_predictor_8x8 = vp9_d207_predictor_8x8_c;
|
||||
if (flags & HAS_SSSE3) vp9_d207_predictor_8x8 = vp9_d207_predictor_8x8_ssse3;
|
||||
vp9_d45_predictor_16x16 = vp9_d45_predictor_16x16_c;
|
||||
if (flags & HAS_SSSE3) vp9_d45_predictor_16x16 = vp9_d45_predictor_16x16_ssse3;
|
||||
vp9_d45_predictor_32x32 = vp9_d45_predictor_32x32_c;
|
||||
if (flags & HAS_SSSE3) vp9_d45_predictor_32x32 = vp9_d45_predictor_32x32_ssse3;
|
||||
vp9_d45_predictor_4x4 = vp9_d45_predictor_4x4_c;
|
||||
if (flags & HAS_SSSE3) vp9_d45_predictor_4x4 = vp9_d45_predictor_4x4_ssse3;
|
||||
vp9_d45_predictor_8x8 = vp9_d45_predictor_8x8_c;
|
||||
if (flags & HAS_SSSE3) vp9_d45_predictor_8x8 = vp9_d45_predictor_8x8_ssse3;
|
||||
vp9_d63_predictor_16x16 = vp9_d63_predictor_16x16_c;
|
||||
if (flags & HAS_SSSE3) vp9_d63_predictor_16x16 = vp9_d63_predictor_16x16_ssse3;
|
||||
vp9_d63_predictor_32x32 = vp9_d63_predictor_32x32_c;
|
||||
if (flags & HAS_SSSE3) vp9_d63_predictor_32x32 = vp9_d63_predictor_32x32_ssse3;
|
||||
vp9_d63_predictor_4x4 = vp9_d63_predictor_4x4_c;
|
||||
if (flags & HAS_SSSE3) vp9_d63_predictor_4x4 = vp9_d63_predictor_4x4_ssse3;
|
||||
vp9_d63_predictor_8x8 = vp9_d63_predictor_8x8_c;
|
||||
if (flags & HAS_SSSE3) vp9_d63_predictor_8x8 = vp9_d63_predictor_8x8_ssse3;
|
||||
vp9_dc_128_predictor_16x16 = vp9_dc_128_predictor_16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_dc_128_predictor_16x16 = vp9_dc_128_predictor_16x16_sse2;
|
||||
vp9_dc_128_predictor_32x32 = vp9_dc_128_predictor_32x32_c;
|
||||
if (flags & HAS_SSE2) vp9_dc_128_predictor_32x32 = vp9_dc_128_predictor_32x32_sse2;
|
||||
vp9_dc_128_predictor_4x4 = vp9_dc_128_predictor_4x4_c;
|
||||
if (flags & HAS_SSE) vp9_dc_128_predictor_4x4 = vp9_dc_128_predictor_4x4_sse;
|
||||
vp9_dc_128_predictor_8x8 = vp9_dc_128_predictor_8x8_c;
|
||||
if (flags & HAS_SSE) vp9_dc_128_predictor_8x8 = vp9_dc_128_predictor_8x8_sse;
|
||||
vp9_dc_left_predictor_16x16 = vp9_dc_left_predictor_16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_dc_left_predictor_16x16 = vp9_dc_left_predictor_16x16_sse2;
|
||||
vp9_dc_left_predictor_32x32 = vp9_dc_left_predictor_32x32_c;
|
||||
if (flags & HAS_SSE2) vp9_dc_left_predictor_32x32 = vp9_dc_left_predictor_32x32_sse2;
|
||||
vp9_dc_left_predictor_4x4 = vp9_dc_left_predictor_4x4_c;
|
||||
if (flags & HAS_SSE) vp9_dc_left_predictor_4x4 = vp9_dc_left_predictor_4x4_sse;
|
||||
vp9_dc_left_predictor_8x8 = vp9_dc_left_predictor_8x8_c;
|
||||
if (flags & HAS_SSE) vp9_dc_left_predictor_8x8 = vp9_dc_left_predictor_8x8_sse;
|
||||
vp9_dc_predictor_16x16 = vp9_dc_predictor_16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_dc_predictor_16x16 = vp9_dc_predictor_16x16_sse2;
|
||||
vp9_dc_predictor_32x32 = vp9_dc_predictor_32x32_c;
|
||||
if (flags & HAS_SSE2) vp9_dc_predictor_32x32 = vp9_dc_predictor_32x32_sse2;
|
||||
vp9_dc_predictor_4x4 = vp9_dc_predictor_4x4_c;
|
||||
if (flags & HAS_SSE) vp9_dc_predictor_4x4 = vp9_dc_predictor_4x4_sse;
|
||||
vp9_dc_predictor_8x8 = vp9_dc_predictor_8x8_c;
|
||||
if (flags & HAS_SSE) vp9_dc_predictor_8x8 = vp9_dc_predictor_8x8_sse;
|
||||
vp9_dc_top_predictor_16x16 = vp9_dc_top_predictor_16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_dc_top_predictor_16x16 = vp9_dc_top_predictor_16x16_sse2;
|
||||
vp9_dc_top_predictor_32x32 = vp9_dc_top_predictor_32x32_c;
|
||||
if (flags & HAS_SSE2) vp9_dc_top_predictor_32x32 = vp9_dc_top_predictor_32x32_sse2;
|
||||
vp9_dc_top_predictor_4x4 = vp9_dc_top_predictor_4x4_c;
|
||||
if (flags & HAS_SSE) vp9_dc_top_predictor_4x4 = vp9_dc_top_predictor_4x4_sse;
|
||||
vp9_dc_top_predictor_8x8 = vp9_dc_top_predictor_8x8_c;
|
||||
if (flags & HAS_SSE) vp9_dc_top_predictor_8x8 = vp9_dc_top_predictor_8x8_sse;
|
||||
vp9_fdct16x16 = vp9_fdct16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_fdct16x16 = vp9_fdct16x16_sse2;
|
||||
vp9_fdct16x16_1 = vp9_fdct16x16_1_c;
|
||||
|
@ -781,19 +636,13 @@ static void setup_rtcd_internal(void)
|
|||
if (flags & HAS_SSE2) vp9_fht4x4 = vp9_fht4x4_sse2;
|
||||
vp9_fht8x8 = vp9_fht8x8_c;
|
||||
if (flags & HAS_SSE2) vp9_fht8x8 = vp9_fht8x8_sse2;
|
||||
vp9_filter_by_weight16x16 = vp9_filter_by_weight16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_filter_by_weight16x16 = vp9_filter_by_weight16x16_sse2;
|
||||
vp9_filter_by_weight8x8 = vp9_filter_by_weight8x8_c;
|
||||
if (flags & HAS_SSE2) vp9_filter_by_weight8x8 = vp9_filter_by_weight8x8_sse2;
|
||||
vp9_full_search_sad = vp9_full_search_sad_c;
|
||||
if (flags & HAS_SSE3) vp9_full_search_sad = vp9_full_search_sadx3;
|
||||
if (flags & HAS_SSE4_1) vp9_full_search_sad = vp9_full_search_sadx8;
|
||||
vp9_fwht4x4 = vp9_fwht4x4_c;
|
||||
if (flags & HAS_MMX) vp9_fwht4x4 = vp9_fwht4x4_mmx;
|
||||
vp9_h_predictor_16x16 = vp9_h_predictor_16x16_c;
|
||||
if (flags & HAS_SSSE3) vp9_h_predictor_16x16 = vp9_h_predictor_16x16_ssse3;
|
||||
vp9_h_predictor_32x32 = vp9_h_predictor_32x32_c;
|
||||
if (flags & HAS_SSSE3) vp9_h_predictor_32x32 = vp9_h_predictor_32x32_ssse3;
|
||||
vp9_h_predictor_4x4 = vp9_h_predictor_4x4_c;
|
||||
if (flags & HAS_SSSE3) vp9_h_predictor_4x4 = vp9_h_predictor_4x4_ssse3;
|
||||
vp9_h_predictor_8x8 = vp9_h_predictor_8x8_c;
|
||||
if (flags & HAS_SSSE3) vp9_h_predictor_8x8 = vp9_h_predictor_8x8_ssse3;
|
||||
vp9_hadamard_16x16 = vp9_hadamard_16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_hadamard_16x16 = vp9_hadamard_16x16_sse2;
|
||||
vp9_hadamard_8x8 = vp9_hadamard_8x8_c;
|
||||
|
@ -853,114 +702,32 @@ static void setup_rtcd_internal(void)
|
|||
if (flags & HAS_SSE2) vp9_lpf_vertical_8 = vp9_lpf_vertical_8_sse2;
|
||||
vp9_lpf_vertical_8_dual = vp9_lpf_vertical_8_dual_c;
|
||||
if (flags & HAS_SSE2) vp9_lpf_vertical_8_dual = vp9_lpf_vertical_8_dual_sse2;
|
||||
vp9_mbpost_proc_across_ip = vp9_mbpost_proc_across_ip_c;
|
||||
if (flags & HAS_SSE2) vp9_mbpost_proc_across_ip = vp9_mbpost_proc_across_ip_xmm;
|
||||
vp9_mbpost_proc_down = vp9_mbpost_proc_down_c;
|
||||
if (flags & HAS_SSE2) vp9_mbpost_proc_down = vp9_mbpost_proc_down_xmm;
|
||||
vp9_minmax_8x8 = vp9_minmax_8x8_c;
|
||||
if (flags & HAS_SSE2) vp9_minmax_8x8 = vp9_minmax_8x8_sse2;
|
||||
vp9_plane_add_noise = vp9_plane_add_noise_c;
|
||||
if (flags & HAS_SSE2) vp9_plane_add_noise = vp9_plane_add_noise_wmt;
|
||||
vp9_post_proc_down_and_across = vp9_post_proc_down_and_across_c;
|
||||
if (flags & HAS_SSE2) vp9_post_proc_down_and_across = vp9_post_proc_down_and_across_xmm;
|
||||
vp9_quantize_b = vp9_quantize_b_c;
|
||||
if (flags & HAS_SSE2) vp9_quantize_b = vp9_quantize_b_sse2;
|
||||
vp9_quantize_fp = vp9_quantize_fp_c;
|
||||
if (flags & HAS_SSE2) vp9_quantize_fp = vp9_quantize_fp_sse2;
|
||||
vp9_satd = vp9_satd_c;
|
||||
if (flags & HAS_SSE2) vp9_satd = vp9_satd_sse2;
|
||||
vp9_sub_pixel_avg_variance16x16 = vp9_sub_pixel_avg_variance16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_avg_variance16x16 = vp9_sub_pixel_avg_variance16x16_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance16x16 = vp9_sub_pixel_avg_variance16x16_ssse3;
|
||||
vp9_sub_pixel_avg_variance16x32 = vp9_sub_pixel_avg_variance16x32_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_avg_variance16x32 = vp9_sub_pixel_avg_variance16x32_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance16x32 = vp9_sub_pixel_avg_variance16x32_ssse3;
|
||||
vp9_sub_pixel_avg_variance16x8 = vp9_sub_pixel_avg_variance16x8_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_avg_variance16x8 = vp9_sub_pixel_avg_variance16x8_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance16x8 = vp9_sub_pixel_avg_variance16x8_ssse3;
|
||||
vp9_sub_pixel_avg_variance32x16 = vp9_sub_pixel_avg_variance32x16_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_avg_variance32x16 = vp9_sub_pixel_avg_variance32x16_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance32x16 = vp9_sub_pixel_avg_variance32x16_ssse3;
|
||||
vp9_sub_pixel_avg_variance32x32 = vp9_sub_pixel_avg_variance32x32_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_avg_variance32x32 = vp9_sub_pixel_avg_variance32x32_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance32x32 = vp9_sub_pixel_avg_variance32x32_ssse3;
|
||||
if (flags & HAS_AVX2) vp9_sub_pixel_avg_variance32x32 = vp9_sub_pixel_avg_variance32x32_avx2;
|
||||
vp9_sub_pixel_avg_variance32x64 = vp9_sub_pixel_avg_variance32x64_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_avg_variance32x64 = vp9_sub_pixel_avg_variance32x64_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance32x64 = vp9_sub_pixel_avg_variance32x64_ssse3;
|
||||
vp9_sub_pixel_avg_variance4x4 = vp9_sub_pixel_avg_variance4x4_c;
|
||||
if (flags & HAS_SSE) vp9_sub_pixel_avg_variance4x4 = vp9_sub_pixel_avg_variance4x4_sse;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance4x4 = vp9_sub_pixel_avg_variance4x4_ssse3;
|
||||
vp9_sub_pixel_avg_variance4x8 = vp9_sub_pixel_avg_variance4x8_c;
|
||||
if (flags & HAS_SSE) vp9_sub_pixel_avg_variance4x8 = vp9_sub_pixel_avg_variance4x8_sse;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance4x8 = vp9_sub_pixel_avg_variance4x8_ssse3;
|
||||
vp9_sub_pixel_avg_variance64x32 = vp9_sub_pixel_avg_variance64x32_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_avg_variance64x32 = vp9_sub_pixel_avg_variance64x32_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance64x32 = vp9_sub_pixel_avg_variance64x32_ssse3;
|
||||
vp9_sub_pixel_avg_variance64x64 = vp9_sub_pixel_avg_variance64x64_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_avg_variance64x64 = vp9_sub_pixel_avg_variance64x64_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance64x64 = vp9_sub_pixel_avg_variance64x64_ssse3;
|
||||
if (flags & HAS_AVX2) vp9_sub_pixel_avg_variance64x64 = vp9_sub_pixel_avg_variance64x64_avx2;
|
||||
vp9_sub_pixel_avg_variance8x16 = vp9_sub_pixel_avg_variance8x16_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_avg_variance8x16 = vp9_sub_pixel_avg_variance8x16_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance8x16 = vp9_sub_pixel_avg_variance8x16_ssse3;
|
||||
vp9_sub_pixel_avg_variance8x4 = vp9_sub_pixel_avg_variance8x4_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_avg_variance8x4 = vp9_sub_pixel_avg_variance8x4_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance8x4 = vp9_sub_pixel_avg_variance8x4_ssse3;
|
||||
vp9_sub_pixel_avg_variance8x8 = vp9_sub_pixel_avg_variance8x8_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_avg_variance8x8 = vp9_sub_pixel_avg_variance8x8_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance8x8 = vp9_sub_pixel_avg_variance8x8_ssse3;
|
||||
vp9_sub_pixel_variance16x16 = vp9_sub_pixel_variance16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_variance16x16 = vp9_sub_pixel_variance16x16_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_variance16x16 = vp9_sub_pixel_variance16x16_ssse3;
|
||||
vp9_sub_pixel_variance16x32 = vp9_sub_pixel_variance16x32_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_variance16x32 = vp9_sub_pixel_variance16x32_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_variance16x32 = vp9_sub_pixel_variance16x32_ssse3;
|
||||
vp9_sub_pixel_variance16x8 = vp9_sub_pixel_variance16x8_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_variance16x8 = vp9_sub_pixel_variance16x8_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_variance16x8 = vp9_sub_pixel_variance16x8_ssse3;
|
||||
vp9_sub_pixel_variance32x16 = vp9_sub_pixel_variance32x16_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_variance32x16 = vp9_sub_pixel_variance32x16_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_variance32x16 = vp9_sub_pixel_variance32x16_ssse3;
|
||||
vp9_sub_pixel_variance32x32 = vp9_sub_pixel_variance32x32_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_variance32x32 = vp9_sub_pixel_variance32x32_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_variance32x32 = vp9_sub_pixel_variance32x32_ssse3;
|
||||
if (flags & HAS_AVX2) vp9_sub_pixel_variance32x32 = vp9_sub_pixel_variance32x32_avx2;
|
||||
vp9_sub_pixel_variance32x64 = vp9_sub_pixel_variance32x64_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_variance32x64 = vp9_sub_pixel_variance32x64_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_variance32x64 = vp9_sub_pixel_variance32x64_ssse3;
|
||||
vp9_sub_pixel_variance4x4 = vp9_sub_pixel_variance4x4_c;
|
||||
if (flags & HAS_SSE) vp9_sub_pixel_variance4x4 = vp9_sub_pixel_variance4x4_sse;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_variance4x4 = vp9_sub_pixel_variance4x4_ssse3;
|
||||
vp9_sub_pixel_variance4x8 = vp9_sub_pixel_variance4x8_c;
|
||||
if (flags & HAS_SSE) vp9_sub_pixel_variance4x8 = vp9_sub_pixel_variance4x8_sse;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_variance4x8 = vp9_sub_pixel_variance4x8_ssse3;
|
||||
vp9_sub_pixel_variance64x32 = vp9_sub_pixel_variance64x32_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_variance64x32 = vp9_sub_pixel_variance64x32_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_variance64x32 = vp9_sub_pixel_variance64x32_ssse3;
|
||||
vp9_sub_pixel_variance64x64 = vp9_sub_pixel_variance64x64_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_variance64x64 = vp9_sub_pixel_variance64x64_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_variance64x64 = vp9_sub_pixel_variance64x64_ssse3;
|
||||
if (flags & HAS_AVX2) vp9_sub_pixel_variance64x64 = vp9_sub_pixel_variance64x64_avx2;
|
||||
vp9_sub_pixel_variance8x16 = vp9_sub_pixel_variance8x16_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_variance8x16 = vp9_sub_pixel_variance8x16_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_variance8x16 = vp9_sub_pixel_variance8x16_ssse3;
|
||||
vp9_sub_pixel_variance8x4 = vp9_sub_pixel_variance8x4_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_variance8x4 = vp9_sub_pixel_variance8x4_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_variance8x4 = vp9_sub_pixel_variance8x4_ssse3;
|
||||
vp9_sub_pixel_variance8x8 = vp9_sub_pixel_variance8x8_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_variance8x8 = vp9_sub_pixel_variance8x8_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_variance8x8 = vp9_sub_pixel_variance8x8_ssse3;
|
||||
vp9_subtract_block = vp9_subtract_block_c;
|
||||
if (flags & HAS_SSE2) vp9_subtract_block = vp9_subtract_block_sse2;
|
||||
vp9_temporal_filter_apply = vp9_temporal_filter_apply_c;
|
||||
if (flags & HAS_SSE2) vp9_temporal_filter_apply = vp9_temporal_filter_apply_sse2;
|
||||
vp9_tm_predictor_16x16 = vp9_tm_predictor_16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_tm_predictor_16x16 = vp9_tm_predictor_16x16_sse2;
|
||||
vp9_tm_predictor_4x4 = vp9_tm_predictor_4x4_c;
|
||||
if (flags & HAS_SSE) vp9_tm_predictor_4x4 = vp9_tm_predictor_4x4_sse;
|
||||
vp9_tm_predictor_8x8 = vp9_tm_predictor_8x8_c;
|
||||
if (flags & HAS_SSE2) vp9_tm_predictor_8x8 = vp9_tm_predictor_8x8_sse2;
|
||||
vp9_v_predictor_16x16 = vp9_v_predictor_16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_v_predictor_16x16 = vp9_v_predictor_16x16_sse2;
|
||||
vp9_v_predictor_32x32 = vp9_v_predictor_32x32_c;
|
||||
if (flags & HAS_SSE2) vp9_v_predictor_32x32 = vp9_v_predictor_32x32_sse2;
|
||||
vp9_v_predictor_4x4 = vp9_v_predictor_4x4_c;
|
||||
if (flags & HAS_SSE) vp9_v_predictor_4x4 = vp9_v_predictor_4x4_sse;
|
||||
vp9_v_predictor_8x8 = vp9_v_predictor_8x8_c;
|
||||
if (flags & HAS_SSE) vp9_v_predictor_8x8 = vp9_v_predictor_8x8_sse;
|
||||
vp9_vector_var = vp9_vector_var_c;
|
||||
if (flags & HAS_SSE2) vp9_vector_var = vp9_vector_var_sse2;
|
||||
}
|
|
@ -0,0 +1,81 @@
|
|||
%define ARCH_ARM 0
|
||||
%define ARCH_MIPS 0
|
||||
%define ARCH_X86 1
|
||||
%define ARCH_X86_64 0
|
||||
%define HAVE_EDSP 0
|
||||
%define HAVE_MEDIA 0
|
||||
%define HAVE_NEON 0
|
||||
%define HAVE_NEON_ASM 0
|
||||
%define HAVE_MIPS32 0
|
||||
%define HAVE_DSPR2 0
|
||||
%define HAVE_MSA 0
|
||||
%define HAVE_MIPS64 0
|
||||
%define HAVE_MMX 1
|
||||
%define HAVE_SSE 1
|
||||
%define HAVE_SSE2 1
|
||||
%define HAVE_SSE3 1
|
||||
%define HAVE_SSSE3 1
|
||||
%define HAVE_SSE4_1 1
|
||||
%define HAVE_AVX 1
|
||||
%define HAVE_AVX2 1
|
||||
%define HAVE_VPX_PORTS 1
|
||||
%define HAVE_STDINT_H 1
|
||||
%define HAVE_PTHREAD_H 1
|
||||
%define HAVE_SYS_MMAN_H 1
|
||||
%define CONFIG_DEPENDENCY_TRACKING 1
|
||||
%define CONFIG_EXTERNAL_BUILD 1
|
||||
%define CONFIG_INSTALL_DOCS 0
|
||||
%define CONFIG_INSTALL_BINS 1
|
||||
%define CONFIG_INSTALL_LIBS 1
|
||||
%define CONFIG_INSTALL_SRCS 0
|
||||
%define CONFIG_USE_X86INC 0
|
||||
%define CONFIG_DEBUG 0
|
||||
%define CONFIG_GPROF 0
|
||||
%define CONFIG_GCOV 0
|
||||
%define CONFIG_RVCT 0
|
||||
%define CONFIG_GCC 1
|
||||
%define CONFIG_MSVS 0
|
||||
%define CONFIG_PIC 1
|
||||
%define CONFIG_BIG_ENDIAN 0
|
||||
%define CONFIG_CODEC_SRCS 0
|
||||
%define CONFIG_DEBUG_LIBS 0
|
||||
%define CONFIG_DEQUANT_TOKENS 0
|
||||
%define CONFIG_DC_RECON 0
|
||||
%define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
%define CONFIG_POSTPROC 1
|
||||
%define CONFIG_VP9_POSTPROC 1
|
||||
%define CONFIG_MULTITHREAD 1
|
||||
%define CONFIG_INTERNAL_STATS 0
|
||||
%define CONFIG_VP8_ENCODER 1
|
||||
%define CONFIG_VP8_DECODER 1
|
||||
%define CONFIG_VP9_ENCODER 1
|
||||
%define CONFIG_VP9_DECODER 1
|
||||
%define CONFIG_VP8 1
|
||||
%define CONFIG_VP9 1
|
||||
%define CONFIG_ENCODERS 1
|
||||
%define CONFIG_DECODERS 1
|
||||
%define CONFIG_STATIC_MSVCRT 0
|
||||
%define CONFIG_SPATIAL_RESAMPLING 1
|
||||
%define CONFIG_REALTIME_ONLY 0
|
||||
%define CONFIG_ONTHEFLY_BITPACKING 0
|
||||
%define CONFIG_ERROR_CONCEALMENT 1
|
||||
%define CONFIG_SHARED 0
|
||||
%define CONFIG_STATIC 1
|
||||
%define CONFIG_SMALL 0
|
||||
%define CONFIG_POSTPROC_VISUALIZER 0
|
||||
%define CONFIG_OS_SUPPORT 1
|
||||
%define CONFIG_UNIT_TESTS 0
|
||||
%define CONFIG_WEBM_IO 1
|
||||
%define CONFIG_LIBYUV 1
|
||||
%define CONFIG_DECODE_PERF_TESTS 0
|
||||
%define CONFIG_ENCODE_PERF_TESTS 0
|
||||
%define CONFIG_MULTI_RES_ENCODING 1
|
||||
%define CONFIG_TEMPORAL_DENOISING 1
|
||||
%define CONFIG_VP9_TEMPORAL_DENOISING 0
|
||||
%define CONFIG_COEFFICIENT_RANGE_CHECKING 0
|
||||
%define CONFIG_VP9_HIGHBITDEPTH 0
|
||||
%define CONFIG_EXPERIMENTAL 0
|
||||
%define CONFIG_SIZE_LIMIT 1
|
||||
%define CONFIG_SPATIAL_SVC 0
|
||||
%define CONFIG_FP_MB_STATS 0
|
||||
%define CONFIG_EMULATE_HARDWARE 0
|
|
@ -0,0 +1,10 @@
|
|||
/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */
|
||||
/* */
|
||||
/* Use of this source code is governed by a BSD-style license */
|
||||
/* that can be found in the LICENSE file in the root of the source */
|
||||
/* tree. An additional intellectual property rights grant can be found */
|
||||
/* in the file PATENTS. All contributing project authors may */
|
||||
/* be found in the AUTHORS file in the root of the source tree. */
|
||||
#include "vpx/vpx_codec.h"
|
||||
static const char* const cfg = "--target=x86-darwin9-gcc --disable-use-x86inc --enable-external-build --disable-examples --disable-install-docs --disable-unit-tests --enable-multi-res-encoding --size-limit=8192x4608 --enable-pic --enable-error-concealment --enable-postproc --enable-vp9-postproc --as=yasm";
|
||||
const char *vpx_codec_build_config(void) {return cfg;}
|
|
@ -34,14 +34,13 @@
|
|||
#define HAVE_STDINT_H 1
|
||||
#define HAVE_PTHREAD_H 1
|
||||
#define HAVE_SYS_MMAN_H 1
|
||||
#define HAVE_UNISTD_H 1
|
||||
#define CONFIG_DEPENDENCY_TRACKING 1
|
||||
#define CONFIG_EXTERNAL_BUILD 0
|
||||
#define CONFIG_EXTERNAL_BUILD 1
|
||||
#define CONFIG_INSTALL_DOCS 0
|
||||
#define CONFIG_INSTALL_BINS 1
|
||||
#define CONFIG_INSTALL_LIBS 1
|
||||
#define CONFIG_INSTALL_SRCS 0
|
||||
#define CONFIG_USE_X86INC 1
|
||||
#define CONFIG_USE_X86INC 0
|
||||
#define CONFIG_DEBUG 0
|
||||
#define CONFIG_GPROF 0
|
||||
#define CONFIG_GCOV 0
|
||||
|
@ -56,7 +55,7 @@
|
|||
#define CONFIG_DC_RECON 0
|
||||
#define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
#define CONFIG_POSTPROC 1
|
||||
#define CONFIG_VP9_POSTPROC 0
|
||||
#define CONFIG_VP9_POSTPROC 1
|
||||
#define CONFIG_MULTITHREAD 1
|
||||
#define CONFIG_INTERNAL_STATS 0
|
||||
#define CONFIG_VP8_ENCODER 1
|
||||
|
@ -71,13 +70,13 @@
|
|||
#define CONFIG_SPATIAL_RESAMPLING 1
|
||||
#define CONFIG_REALTIME_ONLY 0
|
||||
#define CONFIG_ONTHEFLY_BITPACKING 0
|
||||
#define CONFIG_ERROR_CONCEALMENT 0
|
||||
#define CONFIG_ERROR_CONCEALMENT 1
|
||||
#define CONFIG_SHARED 0
|
||||
#define CONFIG_STATIC 1
|
||||
#define CONFIG_SMALL 0
|
||||
#define CONFIG_POSTPROC_VISUALIZER 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
#define CONFIG_UNIT_TESTS 1
|
||||
#define CONFIG_UNIT_TESTS 0
|
||||
#define CONFIG_WEBM_IO 1
|
||||
#define CONFIG_LIBYUV 1
|
||||
#define CONFIG_DECODE_PERF_TESTS 0
|
|
@ -32,12 +32,12 @@ unsigned int vpx_get4x4sse_cs_c(const unsigned char *src_ptr, int source_stride,
|
|||
void vpx_get8x8var_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum);
|
||||
void vpx_get8x8var_mmx(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum);
|
||||
void vpx_get8x8var_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum);
|
||||
#define vpx_get8x8var vpx_get8x8var_sse2
|
||||
RTCD_EXTERN void (*vpx_get8x8var)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum);
|
||||
|
||||
unsigned int vpx_get_mb_ss_c(const int16_t *);
|
||||
unsigned int vpx_get_mb_ss_mmx(const int16_t *);
|
||||
unsigned int vpx_get_mb_ss_sse2(const int16_t *);
|
||||
#define vpx_get_mb_ss vpx_get_mb_ss_sse2
|
||||
RTCD_EXTERN unsigned int (*vpx_get_mb_ss)(const int16_t *);
|
||||
|
||||
unsigned int vpx_mse16x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse);
|
||||
unsigned int vpx_mse16x16_mmx(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse);
|
||||
|
@ -47,24 +47,22 @@ RTCD_EXTERN unsigned int (*vpx_mse16x16)(const uint8_t *src_ptr, int source_str
|
|||
|
||||
unsigned int vpx_mse16x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse);
|
||||
unsigned int vpx_mse16x8_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse);
|
||||
#define vpx_mse16x8 vpx_mse16x8_sse2
|
||||
RTCD_EXTERN unsigned int (*vpx_mse16x8)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse);
|
||||
|
||||
unsigned int vpx_mse8x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse);
|
||||
unsigned int vpx_mse8x16_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse);
|
||||
#define vpx_mse8x16 vpx_mse8x16_sse2
|
||||
RTCD_EXTERN unsigned int (*vpx_mse8x16)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse);
|
||||
|
||||
unsigned int vpx_mse8x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse);
|
||||
unsigned int vpx_mse8x8_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse);
|
||||
#define vpx_mse8x8 vpx_mse8x8_sse2
|
||||
RTCD_EXTERN unsigned int (*vpx_mse8x8)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse);
|
||||
|
||||
unsigned int vpx_sad16x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad16x16_mmx(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad16x16_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
#define vpx_sad16x16 vpx_sad16x16_sse2
|
||||
RTCD_EXTERN unsigned int (*vpx_sad16x16)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
|
||||
unsigned int vpx_sad16x16_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad16x16_avg_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad16x16_avg vpx_sad16x16_avg_sse2
|
||||
#define vpx_sad16x16_avg vpx_sad16x16_avg_c
|
||||
|
||||
void vpx_sad16x16x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad16x16x3_sse3(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
|
@ -72,33 +70,27 @@ void vpx_sad16x16x3_ssse3(const uint8_t *src_ptr, int src_stride, const uint8_t
|
|||
RTCD_EXTERN void (*vpx_sad16x16x3)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
|
||||
void vpx_sad16x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad16x16x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad16x16x4d vpx_sad16x16x4d_sse2
|
||||
#define vpx_sad16x16x4d vpx_sad16x16x4d_c
|
||||
|
||||
void vpx_sad16x16x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad16x16x8_sse4_1(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad16x16x8)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
|
||||
unsigned int vpx_sad16x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad16x32_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
#define vpx_sad16x32 vpx_sad16x32_sse2
|
||||
#define vpx_sad16x32 vpx_sad16x32_c
|
||||
|
||||
unsigned int vpx_sad16x32_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad16x32_avg_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad16x32_avg vpx_sad16x32_avg_sse2
|
||||
#define vpx_sad16x32_avg vpx_sad16x32_avg_c
|
||||
|
||||
void vpx_sad16x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad16x32x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad16x32x4d vpx_sad16x32x4d_sse2
|
||||
#define vpx_sad16x32x4d vpx_sad16x32x4d_c
|
||||
|
||||
unsigned int vpx_sad16x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad16x8_mmx(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad16x8_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
#define vpx_sad16x8 vpx_sad16x8_sse2
|
||||
RTCD_EXTERN unsigned int (*vpx_sad16x8)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
|
||||
unsigned int vpx_sad16x8_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad16x8_avg_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad16x8_avg vpx_sad16x8_avg_sse2
|
||||
#define vpx_sad16x8_avg vpx_sad16x8_avg_c
|
||||
|
||||
void vpx_sad16x8x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad16x8x3_sse3(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
|
@ -106,34 +98,28 @@ void vpx_sad16x8x3_ssse3(const uint8_t *src_ptr, int src_stride, const uint8_t *
|
|||
RTCD_EXTERN void (*vpx_sad16x8x3)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
|
||||
void vpx_sad16x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad16x8x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad16x8x4d vpx_sad16x8x4d_sse2
|
||||
#define vpx_sad16x8x4d vpx_sad16x8x4d_c
|
||||
|
||||
void vpx_sad16x8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad16x8x8_sse4_1(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad16x8x8)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
|
||||
unsigned int vpx_sad32x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad32x16_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad32x16_avx2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad32x16)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
|
||||
unsigned int vpx_sad32x16_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad32x16_avg_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad32x16_avg_avx2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad32x16_avg)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
|
||||
void vpx_sad32x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad32x16x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad32x16x4d vpx_sad32x16x4d_sse2
|
||||
#define vpx_sad32x16x4d vpx_sad32x16x4d_c
|
||||
|
||||
unsigned int vpx_sad32x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad32x32_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad32x32_avx2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad32x32)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
|
||||
unsigned int vpx_sad32x32_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad32x32_avg_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad32x32_avg_avx2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad32x32_avg)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
|
||||
|
@ -141,7 +127,6 @@ void vpx_sad32x32x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref
|
|||
#define vpx_sad32x32x3 vpx_sad32x32x3_c
|
||||
|
||||
void vpx_sad32x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad32x32x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad32x32x4d_avx2(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad32x32x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
|
||||
|
@ -149,76 +134,62 @@ void vpx_sad32x32x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref
|
|||
#define vpx_sad32x32x8 vpx_sad32x32x8_c
|
||||
|
||||
unsigned int vpx_sad32x64_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad32x64_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad32x64_avx2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad32x64)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
|
||||
unsigned int vpx_sad32x64_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad32x64_avg_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad32x64_avg_avx2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad32x64_avg)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
|
||||
void vpx_sad32x64x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad32x64x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad32x64x4d vpx_sad32x64x4d_sse2
|
||||
#define vpx_sad32x64x4d vpx_sad32x64x4d_c
|
||||
|
||||
unsigned int vpx_sad4x4_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad4x4_mmx(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad4x4_sse(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
#define vpx_sad4x4 vpx_sad4x4_sse
|
||||
RTCD_EXTERN unsigned int (*vpx_sad4x4)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
|
||||
unsigned int vpx_sad4x4_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad4x4_avg_sse(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad4x4_avg vpx_sad4x4_avg_sse
|
||||
#define vpx_sad4x4_avg vpx_sad4x4_avg_c
|
||||
|
||||
void vpx_sad4x4x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad4x4x3_sse3(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad4x4x3)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
|
||||
void vpx_sad4x4x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad4x4x4d_sse(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad4x4x4d vpx_sad4x4x4d_sse
|
||||
#define vpx_sad4x4x4d vpx_sad4x4x4d_c
|
||||
|
||||
void vpx_sad4x4x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad4x4x8_sse4_1(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad4x4x8)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
|
||||
unsigned int vpx_sad4x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad4x8_sse(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
#define vpx_sad4x8 vpx_sad4x8_sse
|
||||
#define vpx_sad4x8 vpx_sad4x8_c
|
||||
|
||||
unsigned int vpx_sad4x8_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad4x8_avg_sse(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad4x8_avg vpx_sad4x8_avg_sse
|
||||
#define vpx_sad4x8_avg vpx_sad4x8_avg_c
|
||||
|
||||
void vpx_sad4x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad4x8x4d_sse(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad4x8x4d vpx_sad4x8x4d_sse
|
||||
#define vpx_sad4x8x4d vpx_sad4x8x4d_c
|
||||
|
||||
void vpx_sad4x8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad4x8x8 vpx_sad4x8x8_c
|
||||
|
||||
unsigned int vpx_sad64x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad64x32_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad64x32_avx2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad64x32)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
|
||||
unsigned int vpx_sad64x32_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad64x32_avg_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad64x32_avg_avx2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad64x32_avg)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
|
||||
void vpx_sad64x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad64x32x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad64x32x4d vpx_sad64x32x4d_sse2
|
||||
#define vpx_sad64x32x4d vpx_sad64x32x4d_c
|
||||
|
||||
unsigned int vpx_sad64x64_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad64x64_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad64x64_avx2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad64x64)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
|
||||
unsigned int vpx_sad64x64_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad64x64_avg_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad64x64_avg_avx2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad64x64_avg)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
|
||||
|
@ -226,7 +197,6 @@ void vpx_sad64x64x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref
|
|||
#define vpx_sad64x64x3 vpx_sad64x64x3_c
|
||||
|
||||
void vpx_sad64x64x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad64x64x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad64x64x4d_avx2(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad64x64x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
|
||||
|
@ -235,56 +205,47 @@ void vpx_sad64x64x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref
|
|||
|
||||
unsigned int vpx_sad8x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad8x16_mmx(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad8x16_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
#define vpx_sad8x16 vpx_sad8x16_sse2
|
||||
RTCD_EXTERN unsigned int (*vpx_sad8x16)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
|
||||
unsigned int vpx_sad8x16_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad8x16_avg_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad8x16_avg vpx_sad8x16_avg_sse2
|
||||
#define vpx_sad8x16_avg vpx_sad8x16_avg_c
|
||||
|
||||
void vpx_sad8x16x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad8x16x3_sse3(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad8x16x3)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
|
||||
void vpx_sad8x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad8x16x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad8x16x4d vpx_sad8x16x4d_sse2
|
||||
#define vpx_sad8x16x4d vpx_sad8x16x4d_c
|
||||
|
||||
void vpx_sad8x16x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad8x16x8_sse4_1(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad8x16x8)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
|
||||
unsigned int vpx_sad8x4_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad8x4_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
#define vpx_sad8x4 vpx_sad8x4_sse2
|
||||
#define vpx_sad8x4 vpx_sad8x4_c
|
||||
|
||||
unsigned int vpx_sad8x4_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad8x4_avg_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad8x4_avg vpx_sad8x4_avg_sse2
|
||||
#define vpx_sad8x4_avg vpx_sad8x4_avg_c
|
||||
|
||||
void vpx_sad8x4x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad8x4x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad8x4x4d vpx_sad8x4x4d_sse2
|
||||
#define vpx_sad8x4x4d vpx_sad8x4x4d_c
|
||||
|
||||
void vpx_sad8x4x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad8x4x8 vpx_sad8x4x8_c
|
||||
|
||||
unsigned int vpx_sad8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad8x8_mmx(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad8x8_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
#define vpx_sad8x8 vpx_sad8x8_sse2
|
||||
RTCD_EXTERN unsigned int (*vpx_sad8x8)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
|
||||
unsigned int vpx_sad8x8_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad8x8_avg_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad8x8_avg vpx_sad8x8_avg_sse2
|
||||
#define vpx_sad8x8_avg vpx_sad8x8_avg_c
|
||||
|
||||
void vpx_sad8x8x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad8x8x3_sse3(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad8x8x3)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
|
||||
void vpx_sad8x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad8x8x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad8x8x4d vpx_sad8x8x4d_sse2
|
||||
#define vpx_sad8x8x4d vpx_sad8x8x4d_c
|
||||
|
||||
void vpx_sad8x8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad8x8x8_sse4_1(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
|
@ -298,12 +259,12 @@ RTCD_EXTERN unsigned int (*vpx_variance16x16)(const uint8_t *src_ptr, int source
|
|||
|
||||
unsigned int vpx_variance16x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vpx_variance16x32_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vpx_variance16x32 vpx_variance16x32_sse2
|
||||
RTCD_EXTERN unsigned int (*vpx_variance16x32)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
|
||||
unsigned int vpx_variance16x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vpx_variance16x8_mmx(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vpx_variance16x8_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vpx_variance16x8 vpx_variance16x8_sse2
|
||||
RTCD_EXTERN unsigned int (*vpx_variance16x8)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
|
||||
unsigned int vpx_variance32x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vpx_variance32x16_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
|
@ -317,16 +278,16 @@ RTCD_EXTERN unsigned int (*vpx_variance32x32)(const uint8_t *src_ptr, int source
|
|||
|
||||
unsigned int vpx_variance32x64_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vpx_variance32x64_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vpx_variance32x64 vpx_variance32x64_sse2
|
||||
RTCD_EXTERN unsigned int (*vpx_variance32x64)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
|
||||
unsigned int vpx_variance4x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vpx_variance4x4_mmx(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vpx_variance4x4_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vpx_variance4x4 vpx_variance4x4_sse2
|
||||
RTCD_EXTERN unsigned int (*vpx_variance4x4)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
|
||||
unsigned int vpx_variance4x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vpx_variance4x8_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vpx_variance4x8 vpx_variance4x8_sse2
|
||||
RTCD_EXTERN unsigned int (*vpx_variance4x8)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
|
||||
unsigned int vpx_variance64x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vpx_variance64x32_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
|
@ -341,16 +302,16 @@ RTCD_EXTERN unsigned int (*vpx_variance64x64)(const uint8_t *src_ptr, int source
|
|||
unsigned int vpx_variance8x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vpx_variance8x16_mmx(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vpx_variance8x16_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vpx_variance8x16 vpx_variance8x16_sse2
|
||||
RTCD_EXTERN unsigned int (*vpx_variance8x16)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
|
||||
unsigned int vpx_variance8x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vpx_variance8x4_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vpx_variance8x4 vpx_variance8x4_sse2
|
||||
RTCD_EXTERN unsigned int (*vpx_variance8x4)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
|
||||
unsigned int vpx_variance8x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vpx_variance8x8_mmx(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vpx_variance8x8_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vpx_variance8x8 vpx_variance8x8_sse2
|
||||
RTCD_EXTERN unsigned int (*vpx_variance8x8)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
|
||||
void vpx_dsp_rtcd(void);
|
||||
|
||||
|
@ -362,66 +323,117 @@ static void setup_rtcd_internal(void)
|
|||
|
||||
(void)flags;
|
||||
|
||||
vpx_get16x16var = vpx_get16x16var_sse2;
|
||||
vpx_get16x16var = vpx_get16x16var_c;
|
||||
if (flags & HAS_SSE2) vpx_get16x16var = vpx_get16x16var_sse2;
|
||||
if (flags & HAS_AVX2) vpx_get16x16var = vpx_get16x16var_avx2;
|
||||
vpx_mse16x16 = vpx_mse16x16_sse2;
|
||||
vpx_get8x8var = vpx_get8x8var_c;
|
||||
if (flags & HAS_MMX) vpx_get8x8var = vpx_get8x8var_mmx;
|
||||
if (flags & HAS_SSE2) vpx_get8x8var = vpx_get8x8var_sse2;
|
||||
vpx_get_mb_ss = vpx_get_mb_ss_c;
|
||||
if (flags & HAS_MMX) vpx_get_mb_ss = vpx_get_mb_ss_mmx;
|
||||
if (flags & HAS_SSE2) vpx_get_mb_ss = vpx_get_mb_ss_sse2;
|
||||
vpx_mse16x16 = vpx_mse16x16_c;
|
||||
if (flags & HAS_MMX) vpx_mse16x16 = vpx_mse16x16_mmx;
|
||||
if (flags & HAS_SSE2) vpx_mse16x16 = vpx_mse16x16_sse2;
|
||||
if (flags & HAS_AVX2) vpx_mse16x16 = vpx_mse16x16_avx2;
|
||||
vpx_mse16x8 = vpx_mse16x8_c;
|
||||
if (flags & HAS_SSE2) vpx_mse16x8 = vpx_mse16x8_sse2;
|
||||
vpx_mse8x16 = vpx_mse8x16_c;
|
||||
if (flags & HAS_SSE2) vpx_mse8x16 = vpx_mse8x16_sse2;
|
||||
vpx_mse8x8 = vpx_mse8x8_c;
|
||||
if (flags & HAS_SSE2) vpx_mse8x8 = vpx_mse8x8_sse2;
|
||||
vpx_sad16x16 = vpx_sad16x16_c;
|
||||
if (flags & HAS_MMX) vpx_sad16x16 = vpx_sad16x16_mmx;
|
||||
vpx_sad16x16x3 = vpx_sad16x16x3_c;
|
||||
if (flags & HAS_SSE3) vpx_sad16x16x3 = vpx_sad16x16x3_sse3;
|
||||
if (flags & HAS_SSSE3) vpx_sad16x16x3 = vpx_sad16x16x3_ssse3;
|
||||
vpx_sad16x16x8 = vpx_sad16x16x8_c;
|
||||
if (flags & HAS_SSE4_1) vpx_sad16x16x8 = vpx_sad16x16x8_sse4_1;
|
||||
vpx_sad16x8 = vpx_sad16x8_c;
|
||||
if (flags & HAS_MMX) vpx_sad16x8 = vpx_sad16x8_mmx;
|
||||
vpx_sad16x8x3 = vpx_sad16x8x3_c;
|
||||
if (flags & HAS_SSE3) vpx_sad16x8x3 = vpx_sad16x8x3_sse3;
|
||||
if (flags & HAS_SSSE3) vpx_sad16x8x3 = vpx_sad16x8x3_ssse3;
|
||||
vpx_sad16x8x8 = vpx_sad16x8x8_c;
|
||||
if (flags & HAS_SSE4_1) vpx_sad16x8x8 = vpx_sad16x8x8_sse4_1;
|
||||
vpx_sad32x16 = vpx_sad32x16_sse2;
|
||||
vpx_sad32x16 = vpx_sad32x16_c;
|
||||
if (flags & HAS_AVX2) vpx_sad32x16 = vpx_sad32x16_avx2;
|
||||
vpx_sad32x16_avg = vpx_sad32x16_avg_sse2;
|
||||
vpx_sad32x16_avg = vpx_sad32x16_avg_c;
|
||||
if (flags & HAS_AVX2) vpx_sad32x16_avg = vpx_sad32x16_avg_avx2;
|
||||
vpx_sad32x32 = vpx_sad32x32_sse2;
|
||||
vpx_sad32x32 = vpx_sad32x32_c;
|
||||
if (flags & HAS_AVX2) vpx_sad32x32 = vpx_sad32x32_avx2;
|
||||
vpx_sad32x32_avg = vpx_sad32x32_avg_sse2;
|
||||
vpx_sad32x32_avg = vpx_sad32x32_avg_c;
|
||||
if (flags & HAS_AVX2) vpx_sad32x32_avg = vpx_sad32x32_avg_avx2;
|
||||
vpx_sad32x32x4d = vpx_sad32x32x4d_sse2;
|
||||
vpx_sad32x32x4d = vpx_sad32x32x4d_c;
|
||||
if (flags & HAS_AVX2) vpx_sad32x32x4d = vpx_sad32x32x4d_avx2;
|
||||
vpx_sad32x64 = vpx_sad32x64_sse2;
|
||||
vpx_sad32x64 = vpx_sad32x64_c;
|
||||
if (flags & HAS_AVX2) vpx_sad32x64 = vpx_sad32x64_avx2;
|
||||
vpx_sad32x64_avg = vpx_sad32x64_avg_sse2;
|
||||
vpx_sad32x64_avg = vpx_sad32x64_avg_c;
|
||||
if (flags & HAS_AVX2) vpx_sad32x64_avg = vpx_sad32x64_avg_avx2;
|
||||
vpx_sad4x4 = vpx_sad4x4_c;
|
||||
if (flags & HAS_MMX) vpx_sad4x4 = vpx_sad4x4_mmx;
|
||||
vpx_sad4x4x3 = vpx_sad4x4x3_c;
|
||||
if (flags & HAS_SSE3) vpx_sad4x4x3 = vpx_sad4x4x3_sse3;
|
||||
vpx_sad4x4x8 = vpx_sad4x4x8_c;
|
||||
if (flags & HAS_SSE4_1) vpx_sad4x4x8 = vpx_sad4x4x8_sse4_1;
|
||||
vpx_sad64x32 = vpx_sad64x32_sse2;
|
||||
vpx_sad64x32 = vpx_sad64x32_c;
|
||||
if (flags & HAS_AVX2) vpx_sad64x32 = vpx_sad64x32_avx2;
|
||||
vpx_sad64x32_avg = vpx_sad64x32_avg_sse2;
|
||||
vpx_sad64x32_avg = vpx_sad64x32_avg_c;
|
||||
if (flags & HAS_AVX2) vpx_sad64x32_avg = vpx_sad64x32_avg_avx2;
|
||||
vpx_sad64x64 = vpx_sad64x64_sse2;
|
||||
vpx_sad64x64 = vpx_sad64x64_c;
|
||||
if (flags & HAS_AVX2) vpx_sad64x64 = vpx_sad64x64_avx2;
|
||||
vpx_sad64x64_avg = vpx_sad64x64_avg_sse2;
|
||||
vpx_sad64x64_avg = vpx_sad64x64_avg_c;
|
||||
if (flags & HAS_AVX2) vpx_sad64x64_avg = vpx_sad64x64_avg_avx2;
|
||||
vpx_sad64x64x4d = vpx_sad64x64x4d_sse2;
|
||||
vpx_sad64x64x4d = vpx_sad64x64x4d_c;
|
||||
if (flags & HAS_AVX2) vpx_sad64x64x4d = vpx_sad64x64x4d_avx2;
|
||||
vpx_sad8x16 = vpx_sad8x16_c;
|
||||
if (flags & HAS_MMX) vpx_sad8x16 = vpx_sad8x16_mmx;
|
||||
vpx_sad8x16x3 = vpx_sad8x16x3_c;
|
||||
if (flags & HAS_SSE3) vpx_sad8x16x3 = vpx_sad8x16x3_sse3;
|
||||
vpx_sad8x16x8 = vpx_sad8x16x8_c;
|
||||
if (flags & HAS_SSE4_1) vpx_sad8x16x8 = vpx_sad8x16x8_sse4_1;
|
||||
vpx_sad8x8 = vpx_sad8x8_c;
|
||||
if (flags & HAS_MMX) vpx_sad8x8 = vpx_sad8x8_mmx;
|
||||
vpx_sad8x8x3 = vpx_sad8x8x3_c;
|
||||
if (flags & HAS_SSE3) vpx_sad8x8x3 = vpx_sad8x8x3_sse3;
|
||||
vpx_sad8x8x8 = vpx_sad8x8x8_c;
|
||||
if (flags & HAS_SSE4_1) vpx_sad8x8x8 = vpx_sad8x8x8_sse4_1;
|
||||
vpx_variance16x16 = vpx_variance16x16_sse2;
|
||||
vpx_variance16x16 = vpx_variance16x16_c;
|
||||
if (flags & HAS_MMX) vpx_variance16x16 = vpx_variance16x16_mmx;
|
||||
if (flags & HAS_SSE2) vpx_variance16x16 = vpx_variance16x16_sse2;
|
||||
if (flags & HAS_AVX2) vpx_variance16x16 = vpx_variance16x16_avx2;
|
||||
vpx_variance32x16 = vpx_variance32x16_sse2;
|
||||
vpx_variance16x32 = vpx_variance16x32_c;
|
||||
if (flags & HAS_SSE2) vpx_variance16x32 = vpx_variance16x32_sse2;
|
||||
vpx_variance16x8 = vpx_variance16x8_c;
|
||||
if (flags & HAS_MMX) vpx_variance16x8 = vpx_variance16x8_mmx;
|
||||
if (flags & HAS_SSE2) vpx_variance16x8 = vpx_variance16x8_sse2;
|
||||
vpx_variance32x16 = vpx_variance32x16_c;
|
||||
if (flags & HAS_SSE2) vpx_variance32x16 = vpx_variance32x16_sse2;
|
||||
if (flags & HAS_AVX2) vpx_variance32x16 = vpx_variance32x16_avx2;
|
||||
vpx_variance32x32 = vpx_variance32x32_sse2;
|
||||
vpx_variance32x32 = vpx_variance32x32_c;
|
||||
if (flags & HAS_SSE2) vpx_variance32x32 = vpx_variance32x32_sse2;
|
||||
if (flags & HAS_AVX2) vpx_variance32x32 = vpx_variance32x32_avx2;
|
||||
vpx_variance64x32 = vpx_variance64x32_sse2;
|
||||
vpx_variance32x64 = vpx_variance32x64_c;
|
||||
if (flags & HAS_SSE2) vpx_variance32x64 = vpx_variance32x64_sse2;
|
||||
vpx_variance4x4 = vpx_variance4x4_c;
|
||||
if (flags & HAS_MMX) vpx_variance4x4 = vpx_variance4x4_mmx;
|
||||
if (flags & HAS_SSE2) vpx_variance4x4 = vpx_variance4x4_sse2;
|
||||
vpx_variance4x8 = vpx_variance4x8_c;
|
||||
if (flags & HAS_SSE2) vpx_variance4x8 = vpx_variance4x8_sse2;
|
||||
vpx_variance64x32 = vpx_variance64x32_c;
|
||||
if (flags & HAS_SSE2) vpx_variance64x32 = vpx_variance64x32_sse2;
|
||||
if (flags & HAS_AVX2) vpx_variance64x32 = vpx_variance64x32_avx2;
|
||||
vpx_variance64x64 = vpx_variance64x64_sse2;
|
||||
vpx_variance64x64 = vpx_variance64x64_c;
|
||||
if (flags & HAS_SSE2) vpx_variance64x64 = vpx_variance64x64_sse2;
|
||||
if (flags & HAS_AVX2) vpx_variance64x64 = vpx_variance64x64_avx2;
|
||||
vpx_variance8x16 = vpx_variance8x16_c;
|
||||
if (flags & HAS_MMX) vpx_variance8x16 = vpx_variance8x16_mmx;
|
||||
if (flags & HAS_SSE2) vpx_variance8x16 = vpx_variance8x16_sse2;
|
||||
vpx_variance8x4 = vpx_variance8x4_c;
|
||||
if (flags & HAS_SSE2) vpx_variance8x4 = vpx_variance8x4_sse2;
|
||||
vpx_variance8x8 = vpx_variance8x8_c;
|
||||
if (flags & HAS_MMX) vpx_variance8x8 = vpx_variance8x8_mmx;
|
||||
if (flags & HAS_SSE2) vpx_variance8x8 = vpx_variance8x8_sse2;
|
||||
}
|
||||
#endif
|
||||
|
|
@ -297,6 +297,14 @@ void vp9_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_t
|
|||
void vp9_fht8x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define vp9_fht8x8 vp9_fht8x8_sse2
|
||||
|
||||
void vp9_filter_by_weight16x16_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
void vp9_filter_by_weight16x16_sse2(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
#define vp9_filter_by_weight16x16 vp9_filter_by_weight16x16_sse2
|
||||
|
||||
void vp9_filter_by_weight8x8_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
void vp9_filter_by_weight8x8_sse2(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
#define vp9_filter_by_weight8x8 vp9_filter_by_weight8x8_sse2
|
||||
|
||||
int vp9_full_range_search_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
#define vp9_full_range_search vp9_full_range_search_c
|
||||
|
||||
|
@ -451,10 +459,26 @@ void vp9_lpf_vertical_8_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, co
|
|||
void vp9_lpf_vertical_8_dual_sse2(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
|
||||
#define vp9_lpf_vertical_8_dual vp9_lpf_vertical_8_dual_sse2
|
||||
|
||||
void vp9_mbpost_proc_across_ip_c(uint8_t *src, int pitch, int rows, int cols, int flimit);
|
||||
void vp9_mbpost_proc_across_ip_xmm(uint8_t *src, int pitch, int rows, int cols, int flimit);
|
||||
#define vp9_mbpost_proc_across_ip vp9_mbpost_proc_across_ip_xmm
|
||||
|
||||
void vp9_mbpost_proc_down_c(uint8_t *dst, int pitch, int rows, int cols, int flimit);
|
||||
void vp9_mbpost_proc_down_xmm(uint8_t *dst, int pitch, int rows, int cols, int flimit);
|
||||
#define vp9_mbpost_proc_down vp9_mbpost_proc_down_xmm
|
||||
|
||||
void vp9_minmax_8x8_c(const uint8_t *s, int p, const uint8_t *d, int dp, int *min, int *max);
|
||||
void vp9_minmax_8x8_sse2(const uint8_t *s, int p, const uint8_t *d, int dp, int *min, int *max);
|
||||
#define vp9_minmax_8x8 vp9_minmax_8x8_sse2
|
||||
|
||||
void vp9_plane_add_noise_c(uint8_t *Start, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int Width, unsigned int Height, int Pitch);
|
||||
void vp9_plane_add_noise_wmt(uint8_t *Start, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int Width, unsigned int Height, int Pitch);
|
||||
#define vp9_plane_add_noise vp9_plane_add_noise_wmt
|
||||
|
||||
void vp9_post_proc_down_and_across_c(const uint8_t *src_ptr, uint8_t *dst_ptr, int src_pixels_per_line, int dst_pixels_per_line, int rows, int cols, int flimit);
|
||||
void vp9_post_proc_down_and_across_xmm(const uint8_t *src_ptr, uint8_t *dst_ptr, int src_pixels_per_line, int dst_pixels_per_line, int rows, int cols, int flimit);
|
||||
#define vp9_post_proc_down_and_across vp9_post_proc_down_and_across_xmm
|
||||
|
||||
void vp9_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_quantize_b_sse2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_quantize_b_ssse3(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
|
@ -0,0 +1,81 @@
|
|||
%define ARCH_ARM 0
|
||||
%define ARCH_MIPS 0
|
||||
%define ARCH_X86 0
|
||||
%define ARCH_X86_64 1
|
||||
%define HAVE_EDSP 0
|
||||
%define HAVE_MEDIA 0
|
||||
%define HAVE_NEON 0
|
||||
%define HAVE_NEON_ASM 0
|
||||
%define HAVE_MIPS32 0
|
||||
%define HAVE_DSPR2 0
|
||||
%define HAVE_MSA 0
|
||||
%define HAVE_MIPS64 0
|
||||
%define HAVE_MMX 1
|
||||
%define HAVE_SSE 1
|
||||
%define HAVE_SSE2 1
|
||||
%define HAVE_SSE3 1
|
||||
%define HAVE_SSSE3 1
|
||||
%define HAVE_SSE4_1 1
|
||||
%define HAVE_AVX 1
|
||||
%define HAVE_AVX2 1
|
||||
%define HAVE_VPX_PORTS 1
|
||||
%define HAVE_STDINT_H 1
|
||||
%define HAVE_PTHREAD_H 1
|
||||
%define HAVE_SYS_MMAN_H 1
|
||||
%define CONFIG_DEPENDENCY_TRACKING 1
|
||||
%define CONFIG_EXTERNAL_BUILD 1
|
||||
%define CONFIG_INSTALL_DOCS 0
|
||||
%define CONFIG_INSTALL_BINS 1
|
||||
%define CONFIG_INSTALL_LIBS 1
|
||||
%define CONFIG_INSTALL_SRCS 0
|
||||
%define CONFIG_USE_X86INC 1
|
||||
%define CONFIG_DEBUG 0
|
||||
%define CONFIG_GPROF 0
|
||||
%define CONFIG_GCOV 0
|
||||
%define CONFIG_RVCT 0
|
||||
%define CONFIG_GCC 1
|
||||
%define CONFIG_MSVS 0
|
||||
%define CONFIG_PIC 1
|
||||
%define CONFIG_BIG_ENDIAN 0
|
||||
%define CONFIG_CODEC_SRCS 0
|
||||
%define CONFIG_DEBUG_LIBS 0
|
||||
%define CONFIG_DEQUANT_TOKENS 0
|
||||
%define CONFIG_DC_RECON 0
|
||||
%define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
%define CONFIG_POSTPROC 1
|
||||
%define CONFIG_VP9_POSTPROC 1
|
||||
%define CONFIG_MULTITHREAD 1
|
||||
%define CONFIG_INTERNAL_STATS 0
|
||||
%define CONFIG_VP8_ENCODER 1
|
||||
%define CONFIG_VP8_DECODER 1
|
||||
%define CONFIG_VP9_ENCODER 1
|
||||
%define CONFIG_VP9_DECODER 1
|
||||
%define CONFIG_VP8 1
|
||||
%define CONFIG_VP9 1
|
||||
%define CONFIG_ENCODERS 1
|
||||
%define CONFIG_DECODERS 1
|
||||
%define CONFIG_STATIC_MSVCRT 0
|
||||
%define CONFIG_SPATIAL_RESAMPLING 1
|
||||
%define CONFIG_REALTIME_ONLY 0
|
||||
%define CONFIG_ONTHEFLY_BITPACKING 0
|
||||
%define CONFIG_ERROR_CONCEALMENT 1
|
||||
%define CONFIG_SHARED 0
|
||||
%define CONFIG_STATIC 1
|
||||
%define CONFIG_SMALL 0
|
||||
%define CONFIG_POSTPROC_VISUALIZER 0
|
||||
%define CONFIG_OS_SUPPORT 1
|
||||
%define CONFIG_UNIT_TESTS 0
|
||||
%define CONFIG_WEBM_IO 1
|
||||
%define CONFIG_LIBYUV 1
|
||||
%define CONFIG_DECODE_PERF_TESTS 0
|
||||
%define CONFIG_ENCODE_PERF_TESTS 0
|
||||
%define CONFIG_MULTI_RES_ENCODING 1
|
||||
%define CONFIG_TEMPORAL_DENOISING 1
|
||||
%define CONFIG_VP9_TEMPORAL_DENOISING 0
|
||||
%define CONFIG_COEFFICIENT_RANGE_CHECKING 0
|
||||
%define CONFIG_VP9_HIGHBITDEPTH 0
|
||||
%define CONFIG_EXPERIMENTAL 0
|
||||
%define CONFIG_SIZE_LIMIT 1
|
||||
%define CONFIG_SPATIAL_SVC 0
|
||||
%define CONFIG_FP_MB_STATS 0
|
||||
%define CONFIG_EMULATE_HARDWARE 0
|
|
@ -0,0 +1,10 @@
|
|||
/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */
|
||||
/* */
|
||||
/* Use of this source code is governed by a BSD-style license */
|
||||
/* that can be found in the LICENSE file in the root of the source */
|
||||
/* tree. An additional intellectual property rights grant can be found */
|
||||
/* in the file PATENTS. All contributing project authors may */
|
||||
/* be found in the AUTHORS file in the root of the source tree. */
|
||||
#include "vpx/vpx_codec.h"
|
||||
static const char* const cfg = "--target=x86_64-darwin9-gcc --enable-external-build --disable-examples --disable-install-docs --disable-unit-tests --enable-multi-res-encoding --size-limit=8192x4608 --enable-pic --enable-error-concealment --enable-postproc --enable-vp9-postproc --as=yasm";
|
||||
const char *vpx_codec_build_config(void) {return cfg;}
|
|
@ -34,9 +34,8 @@
|
|||
#define HAVE_STDINT_H 1
|
||||
#define HAVE_PTHREAD_H 1
|
||||
#define HAVE_SYS_MMAN_H 1
|
||||
#define HAVE_UNISTD_H 1
|
||||
#define CONFIG_DEPENDENCY_TRACKING 1
|
||||
#define CONFIG_EXTERNAL_BUILD 0
|
||||
#define CONFIG_EXTERNAL_BUILD 1
|
||||
#define CONFIG_INSTALL_DOCS 0
|
||||
#define CONFIG_INSTALL_BINS 1
|
||||
#define CONFIG_INSTALL_LIBS 1
|
||||
|
@ -56,7 +55,7 @@
|
|||
#define CONFIG_DC_RECON 0
|
||||
#define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
#define CONFIG_POSTPROC 1
|
||||
#define CONFIG_VP9_POSTPROC 0
|
||||
#define CONFIG_VP9_POSTPROC 1
|
||||
#define CONFIG_MULTITHREAD 1
|
||||
#define CONFIG_INTERNAL_STATS 0
|
||||
#define CONFIG_VP8_ENCODER 1
|
||||
|
@ -71,13 +70,13 @@
|
|||
#define CONFIG_SPATIAL_RESAMPLING 1
|
||||
#define CONFIG_REALTIME_ONLY 0
|
||||
#define CONFIG_ONTHEFLY_BITPACKING 0
|
||||
#define CONFIG_ERROR_CONCEALMENT 0
|
||||
#define CONFIG_ERROR_CONCEALMENT 1
|
||||
#define CONFIG_SHARED 0
|
||||
#define CONFIG_STATIC 1
|
||||
#define CONFIG_SMALL 0
|
||||
#define CONFIG_POSTPROC_VISUALIZER 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
#define CONFIG_UNIT_TESTS 1
|
||||
#define CONFIG_UNIT_TESTS 0
|
||||
#define CONFIG_WEBM_IO 1
|
||||
#define CONFIG_LIBYUV 1
|
||||
#define CONFIG_DECODE_PERF_TESTS 0
|
|
@ -1,7 +1,7 @@
|
|||
#define VERSION_MAJOR 1
|
||||
#define VERSION_MINOR 4
|
||||
#define VERSION_PATCH 0
|
||||
#define VERSION_EXTRA "488-ge67d45d"
|
||||
#define VERSION_EXTRA ""
|
||||
#define VERSION_PACKED ((VERSION_MAJOR<<16)|(VERSION_MINOR<<8)|(VERSION_PATCH))
|
||||
#define VERSION_STRING_NOSP "v1.4.0-488-ge67d45d"
|
||||
#define VERSION_STRING " v1.4.0-488-ge67d45d"
|
||||
#define VERSION_STRING_NOSP "v1.4.0"
|
||||
#define VERSION_STRING " v1.4.0"
|
|
@ -38,13 +38,11 @@ unsigned int vp9_avg_8x8_sse2(const uint8_t *, int p);
|
|||
RTCD_EXTERN unsigned int (*vp9_avg_8x8)(const uint8_t *, int p);
|
||||
|
||||
int64_t vp9_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
int64_t vp9_block_error_sse2(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
int64_t vp9_block_error_avx2(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
RTCD_EXTERN int64_t (*vp9_block_error)(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
|
||||
int64_t vp9_block_error_fp_c(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
|
||||
int64_t vp9_block_error_fp_sse2(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
|
||||
RTCD_EXTERN int64_t (*vp9_block_error_fp)(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
|
||||
#define vp9_block_error_fp vp9_block_error_fp_c
|
||||
|
||||
void vp9_convolve8_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
void vp9_convolve8_sse2(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
|
@ -80,12 +78,10 @@ void vp9_convolve8_vert_avx2(const uint8_t *src, ptrdiff_t src_stride, uint8_t *
|
|||
RTCD_EXTERN void (*vp9_convolve8_vert)(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
|
||||
void vp9_convolve_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
void vp9_convolve_avg_sse2(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
RTCD_EXTERN void (*vp9_convolve_avg)(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
#define vp9_convolve_avg vp9_convolve_avg_c
|
||||
|
||||
void vp9_convolve_copy_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
void vp9_convolve_copy_sse2(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
RTCD_EXTERN void (*vp9_convolve_copy)(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
#define vp9_convolve_copy vp9_convolve_copy_c
|
||||
|
||||
void vp9_d117_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d117_predictor_16x16 vp9_d117_predictor_16x16_c
|
||||
|
@ -112,131 +108,100 @@ void vp9_d135_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *a
|
|||
#define vp9_d135_predictor_8x8 vp9_d135_predictor_8x8_c
|
||||
|
||||
void vp9_d153_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d153_predictor_16x16_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d153_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d153_predictor_16x16 vp9_d153_predictor_16x16_c
|
||||
|
||||
void vp9_d153_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d153_predictor_32x32 vp9_d153_predictor_32x32_c
|
||||
|
||||
void vp9_d153_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d153_predictor_4x4_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d153_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d153_predictor_4x4 vp9_d153_predictor_4x4_c
|
||||
|
||||
void vp9_d153_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d153_predictor_8x8_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d153_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d153_predictor_8x8 vp9_d153_predictor_8x8_c
|
||||
|
||||
void vp9_d207_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d207_predictor_16x16_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d207_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d207_predictor_16x16 vp9_d207_predictor_16x16_c
|
||||
|
||||
void vp9_d207_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d207_predictor_32x32_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d207_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d207_predictor_32x32 vp9_d207_predictor_32x32_c
|
||||
|
||||
void vp9_d207_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d207_predictor_4x4_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d207_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d207_predictor_4x4 vp9_d207_predictor_4x4_c
|
||||
|
||||
void vp9_d207_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d207_predictor_8x8_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d207_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d207_predictor_8x8 vp9_d207_predictor_8x8_c
|
||||
|
||||
void vp9_d45_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d45_predictor_16x16_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d45_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d45_predictor_16x16 vp9_d45_predictor_16x16_c
|
||||
|
||||
void vp9_d45_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d45_predictor_32x32_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d45_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d45_predictor_32x32 vp9_d45_predictor_32x32_c
|
||||
|
||||
void vp9_d45_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d45_predictor_4x4_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d45_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d45_predictor_4x4 vp9_d45_predictor_4x4_c
|
||||
|
||||
void vp9_d45_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d45_predictor_8x8_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d45_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d45_predictor_8x8 vp9_d45_predictor_8x8_c
|
||||
|
||||
void vp9_d63_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d63_predictor_16x16_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d63_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d63_predictor_16x16 vp9_d63_predictor_16x16_c
|
||||
|
||||
void vp9_d63_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d63_predictor_32x32_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d63_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d63_predictor_32x32 vp9_d63_predictor_32x32_c
|
||||
|
||||
void vp9_d63_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d63_predictor_4x4_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d63_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d63_predictor_4x4 vp9_d63_predictor_4x4_c
|
||||
|
||||
void vp9_d63_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_d63_predictor_8x8_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_d63_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_d63_predictor_8x8 vp9_d63_predictor_8x8_c
|
||||
|
||||
void vp9_dc_128_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_128_predictor_16x16_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_128_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_128_predictor_16x16 vp9_dc_128_predictor_16x16_c
|
||||
|
||||
void vp9_dc_128_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_128_predictor_32x32_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_128_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_128_predictor_32x32 vp9_dc_128_predictor_32x32_c
|
||||
|
||||
void vp9_dc_128_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_128_predictor_4x4_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_128_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_128_predictor_4x4 vp9_dc_128_predictor_4x4_c
|
||||
|
||||
void vp9_dc_128_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_128_predictor_8x8_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_128_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_128_predictor_8x8 vp9_dc_128_predictor_8x8_c
|
||||
|
||||
void vp9_dc_left_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_left_predictor_16x16_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_left_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_left_predictor_16x16 vp9_dc_left_predictor_16x16_c
|
||||
|
||||
void vp9_dc_left_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_left_predictor_32x32_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_left_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_left_predictor_32x32 vp9_dc_left_predictor_32x32_c
|
||||
|
||||
void vp9_dc_left_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_left_predictor_4x4_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_left_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_left_predictor_4x4 vp9_dc_left_predictor_4x4_c
|
||||
|
||||
void vp9_dc_left_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_left_predictor_8x8_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_left_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_left_predictor_8x8 vp9_dc_left_predictor_8x8_c
|
||||
|
||||
void vp9_dc_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_predictor_16x16_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_predictor_16x16 vp9_dc_predictor_16x16_c
|
||||
|
||||
void vp9_dc_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_predictor_32x32_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_predictor_32x32 vp9_dc_predictor_32x32_c
|
||||
|
||||
void vp9_dc_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_predictor_4x4_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_predictor_4x4 vp9_dc_predictor_4x4_c
|
||||
|
||||
void vp9_dc_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_predictor_8x8_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_predictor_8x8 vp9_dc_predictor_8x8_c
|
||||
|
||||
void vp9_dc_top_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_top_predictor_16x16_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_top_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_top_predictor_16x16 vp9_dc_top_predictor_16x16_c
|
||||
|
||||
void vp9_dc_top_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_top_predictor_32x32_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_top_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_top_predictor_32x32 vp9_dc_top_predictor_32x32_c
|
||||
|
||||
void vp9_dc_top_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_top_predictor_4x4_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_top_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_top_predictor_4x4 vp9_dc_top_predictor_4x4_c
|
||||
|
||||
void vp9_dc_top_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_dc_top_predictor_8x8_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_dc_top_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_dc_top_predictor_8x8 vp9_dc_top_predictor_8x8_c
|
||||
|
||||
int vp9_diamond_search_sad_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
#define vp9_diamond_search_sad vp9_diamond_search_sad_c
|
||||
|
@ -296,6 +261,14 @@ void vp9_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_t
|
|||
void vp9_fht8x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*vp9_fht8x8)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
|
||||
void vp9_filter_by_weight16x16_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
void vp9_filter_by_weight16x16_sse2(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
RTCD_EXTERN void (*vp9_filter_by_weight16x16)(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
|
||||
void vp9_filter_by_weight8x8_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
void vp9_filter_by_weight8x8_sse2(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
RTCD_EXTERN void (*vp9_filter_by_weight8x8)(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
|
||||
int vp9_full_range_search_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
#define vp9_full_range_search vp9_full_range_search_c
|
||||
|
||||
|
@ -305,24 +278,19 @@ int vp9_full_search_sadx8(const struct macroblock *x, const struct mv *ref_mv, i
|
|||
RTCD_EXTERN int (*vp9_full_search_sad)(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
|
||||
void vp9_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride);
|
||||
void vp9_fwht4x4_mmx(const int16_t *input, tran_low_t *output, int stride);
|
||||
RTCD_EXTERN void (*vp9_fwht4x4)(const int16_t *input, tran_low_t *output, int stride);
|
||||
#define vp9_fwht4x4 vp9_fwht4x4_c
|
||||
|
||||
void vp9_h_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_h_predictor_16x16_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_h_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_h_predictor_16x16 vp9_h_predictor_16x16_c
|
||||
|
||||
void vp9_h_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_h_predictor_32x32_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_h_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_h_predictor_32x32 vp9_h_predictor_32x32_c
|
||||
|
||||
void vp9_h_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_h_predictor_4x4_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_h_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_h_predictor_4x4 vp9_h_predictor_4x4_c
|
||||
|
||||
void vp9_h_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_h_predictor_8x8_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_h_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_h_predictor_8x8 vp9_h_predictor_8x8_c
|
||||
|
||||
void vp9_hadamard_16x16_c(int16_t const *src_diff, int src_stride, int16_t *coeff);
|
||||
void vp9_hadamard_16x16_sse2(int16_t const *src_diff, int src_stride, int16_t *coeff);
|
||||
|
@ -447,10 +415,26 @@ void vp9_lpf_vertical_8_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, co
|
|||
void vp9_lpf_vertical_8_dual_sse2(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
|
||||
RTCD_EXTERN void (*vp9_lpf_vertical_8_dual)(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
|
||||
|
||||
void vp9_mbpost_proc_across_ip_c(uint8_t *src, int pitch, int rows, int cols, int flimit);
|
||||
void vp9_mbpost_proc_across_ip_xmm(uint8_t *src, int pitch, int rows, int cols, int flimit);
|
||||
RTCD_EXTERN void (*vp9_mbpost_proc_across_ip)(uint8_t *src, int pitch, int rows, int cols, int flimit);
|
||||
|
||||
void vp9_mbpost_proc_down_c(uint8_t *dst, int pitch, int rows, int cols, int flimit);
|
||||
void vp9_mbpost_proc_down_xmm(uint8_t *dst, int pitch, int rows, int cols, int flimit);
|
||||
RTCD_EXTERN void (*vp9_mbpost_proc_down)(uint8_t *dst, int pitch, int rows, int cols, int flimit);
|
||||
|
||||
void vp9_minmax_8x8_c(const uint8_t *s, int p, const uint8_t *d, int dp, int *min, int *max);
|
||||
void vp9_minmax_8x8_sse2(const uint8_t *s, int p, const uint8_t *d, int dp, int *min, int *max);
|
||||
RTCD_EXTERN void (*vp9_minmax_8x8)(const uint8_t *s, int p, const uint8_t *d, int dp, int *min, int *max);
|
||||
|
||||
void vp9_plane_add_noise_c(uint8_t *Start, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int Width, unsigned int Height, int Pitch);
|
||||
void vp9_plane_add_noise_wmt(uint8_t *Start, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int Width, unsigned int Height, int Pitch);
|
||||
RTCD_EXTERN void (*vp9_plane_add_noise)(uint8_t *Start, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int Width, unsigned int Height, int Pitch);
|
||||
|
||||
void vp9_post_proc_down_and_across_c(const uint8_t *src_ptr, uint8_t *dst_ptr, int src_pixels_per_line, int dst_pixels_per_line, int rows, int cols, int flimit);
|
||||
void vp9_post_proc_down_and_across_xmm(const uint8_t *src_ptr, uint8_t *dst_ptr, int src_pixels_per_line, int dst_pixels_per_line, int rows, int cols, int flimit);
|
||||
RTCD_EXTERN void (*vp9_post_proc_down_and_across)(const uint8_t *src_ptr, uint8_t *dst_ptr, int src_pixels_per_line, int dst_pixels_per_line, int rows, int cols, int flimit);
|
||||
|
||||
void vp9_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_quantize_b_sse2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*vp9_quantize_b)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
@ -470,177 +454,117 @@ int16_t vp9_satd_sse2(const int16_t *coeff, int length);
|
|||
RTCD_EXTERN int16_t (*vp9_satd)(const int16_t *coeff, int length);
|
||||
|
||||
unsigned int vp9_sub_pixel_avg_variance16x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance16x16_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance16x16_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance16x16)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
#define vp9_sub_pixel_avg_variance16x16 vp9_sub_pixel_avg_variance16x16_c
|
||||
|
||||
unsigned int vp9_sub_pixel_avg_variance16x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance16x32_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance16x32_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance16x32)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
#define vp9_sub_pixel_avg_variance16x32 vp9_sub_pixel_avg_variance16x32_c
|
||||
|
||||
unsigned int vp9_sub_pixel_avg_variance16x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance16x8_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance16x8_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance16x8)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
#define vp9_sub_pixel_avg_variance16x8 vp9_sub_pixel_avg_variance16x8_c
|
||||
|
||||
unsigned int vp9_sub_pixel_avg_variance32x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance32x16_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance32x16_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance32x16)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
#define vp9_sub_pixel_avg_variance32x16 vp9_sub_pixel_avg_variance32x16_c
|
||||
|
||||
unsigned int vp9_sub_pixel_avg_variance32x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance32x32_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance32x32_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance32x32_avx2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance32x32)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
|
||||
unsigned int vp9_sub_pixel_avg_variance32x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance32x64_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance32x64_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance32x64)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
#define vp9_sub_pixel_avg_variance32x64 vp9_sub_pixel_avg_variance32x64_c
|
||||
|
||||
unsigned int vp9_sub_pixel_avg_variance4x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance4x4_sse(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance4x4_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance4x4)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
#define vp9_sub_pixel_avg_variance4x4 vp9_sub_pixel_avg_variance4x4_c
|
||||
|
||||
unsigned int vp9_sub_pixel_avg_variance4x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance4x8_sse(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance4x8_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance4x8)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
#define vp9_sub_pixel_avg_variance4x8 vp9_sub_pixel_avg_variance4x8_c
|
||||
|
||||
unsigned int vp9_sub_pixel_avg_variance64x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance64x32_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance64x32_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance64x32)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
#define vp9_sub_pixel_avg_variance64x32 vp9_sub_pixel_avg_variance64x32_c
|
||||
|
||||
unsigned int vp9_sub_pixel_avg_variance64x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance64x64_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance64x64_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance64x64_avx2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance64x64)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
|
||||
unsigned int vp9_sub_pixel_avg_variance8x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance8x16_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance8x16_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance8x16)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
#define vp9_sub_pixel_avg_variance8x16 vp9_sub_pixel_avg_variance8x16_c
|
||||
|
||||
unsigned int vp9_sub_pixel_avg_variance8x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance8x4_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance8x4_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance8x4)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
#define vp9_sub_pixel_avg_variance8x4 vp9_sub_pixel_avg_variance8x4_c
|
||||
|
||||
unsigned int vp9_sub_pixel_avg_variance8x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance8x8_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
unsigned int vp9_sub_pixel_avg_variance8x8_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance8x8)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
|
||||
#define vp9_sub_pixel_avg_variance8x8 vp9_sub_pixel_avg_variance8x8_c
|
||||
|
||||
unsigned int vp9_sub_pixel_variance16x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance16x16_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance16x16_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance16x16)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vp9_sub_pixel_variance16x16 vp9_sub_pixel_variance16x16_c
|
||||
|
||||
unsigned int vp9_sub_pixel_variance16x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance16x32_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance16x32_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance16x32)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vp9_sub_pixel_variance16x32 vp9_sub_pixel_variance16x32_c
|
||||
|
||||
unsigned int vp9_sub_pixel_variance16x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance16x8_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance16x8_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance16x8)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vp9_sub_pixel_variance16x8 vp9_sub_pixel_variance16x8_c
|
||||
|
||||
unsigned int vp9_sub_pixel_variance32x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance32x16_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance32x16_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance32x16)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vp9_sub_pixel_variance32x16 vp9_sub_pixel_variance32x16_c
|
||||
|
||||
unsigned int vp9_sub_pixel_variance32x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance32x32_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance32x32_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance32x32_avx2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance32x32)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
|
||||
unsigned int vp9_sub_pixel_variance32x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance32x64_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance32x64_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance32x64)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vp9_sub_pixel_variance32x64 vp9_sub_pixel_variance32x64_c
|
||||
|
||||
unsigned int vp9_sub_pixel_variance4x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance4x4_sse(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance4x4_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance4x4)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vp9_sub_pixel_variance4x4 vp9_sub_pixel_variance4x4_c
|
||||
|
||||
unsigned int vp9_sub_pixel_variance4x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance4x8_sse(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance4x8_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance4x8)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vp9_sub_pixel_variance4x8 vp9_sub_pixel_variance4x8_c
|
||||
|
||||
unsigned int vp9_sub_pixel_variance64x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance64x32_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance64x32_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance64x32)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vp9_sub_pixel_variance64x32 vp9_sub_pixel_variance64x32_c
|
||||
|
||||
unsigned int vp9_sub_pixel_variance64x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance64x64_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance64x64_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance64x64_avx2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance64x64)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
|
||||
unsigned int vp9_sub_pixel_variance8x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance8x16_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance8x16_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance8x16)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vp9_sub_pixel_variance8x16 vp9_sub_pixel_variance8x16_c
|
||||
|
||||
unsigned int vp9_sub_pixel_variance8x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance8x4_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance8x4_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance8x4)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vp9_sub_pixel_variance8x4 vp9_sub_pixel_variance8x4_c
|
||||
|
||||
unsigned int vp9_sub_pixel_variance8x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance8x8_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
unsigned int vp9_sub_pixel_variance8x8_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance8x8)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vp9_sub_pixel_variance8x8 vp9_sub_pixel_variance8x8_c
|
||||
|
||||
void vp9_subtract_block_c(int rows, int cols, int16_t *diff_ptr, ptrdiff_t diff_stride, const uint8_t *src_ptr, ptrdiff_t src_stride, const uint8_t *pred_ptr, ptrdiff_t pred_stride);
|
||||
void vp9_subtract_block_sse2(int rows, int cols, int16_t *diff_ptr, ptrdiff_t diff_stride, const uint8_t *src_ptr, ptrdiff_t src_stride, const uint8_t *pred_ptr, ptrdiff_t pred_stride);
|
||||
RTCD_EXTERN void (*vp9_subtract_block)(int rows, int cols, int16_t *diff_ptr, ptrdiff_t diff_stride, const uint8_t *src_ptr, ptrdiff_t src_stride, const uint8_t *pred_ptr, ptrdiff_t pred_stride);
|
||||
#define vp9_subtract_block vp9_subtract_block_c
|
||||
|
||||
void vp9_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
void vp9_temporal_filter_apply_sse2(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
RTCD_EXTERN void (*vp9_temporal_filter_apply)(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
|
||||
void vp9_tm_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_tm_predictor_16x16_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_tm_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_tm_predictor_16x16 vp9_tm_predictor_16x16_c
|
||||
|
||||
void vp9_tm_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_tm_predictor_32x32 vp9_tm_predictor_32x32_c
|
||||
|
||||
void vp9_tm_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_tm_predictor_4x4_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_tm_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_tm_predictor_4x4 vp9_tm_predictor_4x4_c
|
||||
|
||||
void vp9_tm_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_tm_predictor_8x8_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_tm_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_tm_predictor_8x8 vp9_tm_predictor_8x8_c
|
||||
|
||||
void vp9_v_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_v_predictor_16x16_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_v_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_v_predictor_16x16 vp9_v_predictor_16x16_c
|
||||
|
||||
void vp9_v_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_v_predictor_32x32_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_v_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_v_predictor_32x32 vp9_v_predictor_32x32_c
|
||||
|
||||
void vp9_v_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_v_predictor_4x4_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_v_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_v_predictor_4x4 vp9_v_predictor_4x4_c
|
||||
|
||||
void vp9_v_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
void vp9_v_predictor_8x8_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
RTCD_EXTERN void (*vp9_v_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vp9_v_predictor_8x8 vp9_v_predictor_8x8_c
|
||||
|
||||
int vp9_vector_var_c(int16_t const *ref, int16_t const *src, const int bwl);
|
||||
int vp9_vector_var_sse2(int16_t const *ref, int16_t const *src, const int bwl);
|
||||
|
@ -661,10 +585,7 @@ static void setup_rtcd_internal(void)
|
|||
vp9_avg_8x8 = vp9_avg_8x8_c;
|
||||
if (flags & HAS_SSE2) vp9_avg_8x8 = vp9_avg_8x8_sse2;
|
||||
vp9_block_error = vp9_block_error_c;
|
||||
if (flags & HAS_SSE2) vp9_block_error = vp9_block_error_sse2;
|
||||
if (flags & HAS_AVX2) vp9_block_error = vp9_block_error_avx2;
|
||||
vp9_block_error_fp = vp9_block_error_fp_c;
|
||||
if (flags & HAS_SSE2) vp9_block_error_fp = vp9_block_error_fp_sse2;
|
||||
vp9_convolve8 = vp9_convolve8_c;
|
||||
if (flags & HAS_SSE2) vp9_convolve8 = vp9_convolve8_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_convolve8 = vp9_convolve8_ssse3;
|
||||
|
@ -686,72 +607,6 @@ static void setup_rtcd_internal(void)
|
|||
if (flags & HAS_SSE2) vp9_convolve8_vert = vp9_convolve8_vert_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_convolve8_vert = vp9_convolve8_vert_ssse3;
|
||||
if (flags & HAS_AVX2) vp9_convolve8_vert = vp9_convolve8_vert_avx2;
|
||||
vp9_convolve_avg = vp9_convolve_avg_c;
|
||||
if (flags & HAS_SSE2) vp9_convolve_avg = vp9_convolve_avg_sse2;
|
||||
vp9_convolve_copy = vp9_convolve_copy_c;
|
||||
if (flags & HAS_SSE2) vp9_convolve_copy = vp9_convolve_copy_sse2;
|
||||
vp9_d153_predictor_16x16 = vp9_d153_predictor_16x16_c;
|
||||
if (flags & HAS_SSSE3) vp9_d153_predictor_16x16 = vp9_d153_predictor_16x16_ssse3;
|
||||
vp9_d153_predictor_4x4 = vp9_d153_predictor_4x4_c;
|
||||
if (flags & HAS_SSSE3) vp9_d153_predictor_4x4 = vp9_d153_predictor_4x4_ssse3;
|
||||
vp9_d153_predictor_8x8 = vp9_d153_predictor_8x8_c;
|
||||
if (flags & HAS_SSSE3) vp9_d153_predictor_8x8 = vp9_d153_predictor_8x8_ssse3;
|
||||
vp9_d207_predictor_16x16 = vp9_d207_predictor_16x16_c;
|
||||
if (flags & HAS_SSSE3) vp9_d207_predictor_16x16 = vp9_d207_predictor_16x16_ssse3;
|
||||
vp9_d207_predictor_32x32 = vp9_d207_predictor_32x32_c;
|
||||
if (flags & HAS_SSSE3) vp9_d207_predictor_32x32 = vp9_d207_predictor_32x32_ssse3;
|
||||
vp9_d207_predictor_4x4 = vp9_d207_predictor_4x4_c;
|
||||
if (flags & HAS_SSSE3) vp9_d207_predictor_4x4 = vp9_d207_predictor_4x4_ssse3;
|
||||
vp9_d207_predictor_8x8 = vp9_d207_predictor_8x8_c;
|
||||
if (flags & HAS_SSSE3) vp9_d207_predictor_8x8 = vp9_d207_predictor_8x8_ssse3;
|
||||
vp9_d45_predictor_16x16 = vp9_d45_predictor_16x16_c;
|
||||
if (flags & HAS_SSSE3) vp9_d45_predictor_16x16 = vp9_d45_predictor_16x16_ssse3;
|
||||
vp9_d45_predictor_32x32 = vp9_d45_predictor_32x32_c;
|
||||
if (flags & HAS_SSSE3) vp9_d45_predictor_32x32 = vp9_d45_predictor_32x32_ssse3;
|
||||
vp9_d45_predictor_4x4 = vp9_d45_predictor_4x4_c;
|
||||
if (flags & HAS_SSSE3) vp9_d45_predictor_4x4 = vp9_d45_predictor_4x4_ssse3;
|
||||
vp9_d45_predictor_8x8 = vp9_d45_predictor_8x8_c;
|
||||
if (flags & HAS_SSSE3) vp9_d45_predictor_8x8 = vp9_d45_predictor_8x8_ssse3;
|
||||
vp9_d63_predictor_16x16 = vp9_d63_predictor_16x16_c;
|
||||
if (flags & HAS_SSSE3) vp9_d63_predictor_16x16 = vp9_d63_predictor_16x16_ssse3;
|
||||
vp9_d63_predictor_32x32 = vp9_d63_predictor_32x32_c;
|
||||
if (flags & HAS_SSSE3) vp9_d63_predictor_32x32 = vp9_d63_predictor_32x32_ssse3;
|
||||
vp9_d63_predictor_4x4 = vp9_d63_predictor_4x4_c;
|
||||
if (flags & HAS_SSSE3) vp9_d63_predictor_4x4 = vp9_d63_predictor_4x4_ssse3;
|
||||
vp9_d63_predictor_8x8 = vp9_d63_predictor_8x8_c;
|
||||
if (flags & HAS_SSSE3) vp9_d63_predictor_8x8 = vp9_d63_predictor_8x8_ssse3;
|
||||
vp9_dc_128_predictor_16x16 = vp9_dc_128_predictor_16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_dc_128_predictor_16x16 = vp9_dc_128_predictor_16x16_sse2;
|
||||
vp9_dc_128_predictor_32x32 = vp9_dc_128_predictor_32x32_c;
|
||||
if (flags & HAS_SSE2) vp9_dc_128_predictor_32x32 = vp9_dc_128_predictor_32x32_sse2;
|
||||
vp9_dc_128_predictor_4x4 = vp9_dc_128_predictor_4x4_c;
|
||||
if (flags & HAS_SSE) vp9_dc_128_predictor_4x4 = vp9_dc_128_predictor_4x4_sse;
|
||||
vp9_dc_128_predictor_8x8 = vp9_dc_128_predictor_8x8_c;
|
||||
if (flags & HAS_SSE) vp9_dc_128_predictor_8x8 = vp9_dc_128_predictor_8x8_sse;
|
||||
vp9_dc_left_predictor_16x16 = vp9_dc_left_predictor_16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_dc_left_predictor_16x16 = vp9_dc_left_predictor_16x16_sse2;
|
||||
vp9_dc_left_predictor_32x32 = vp9_dc_left_predictor_32x32_c;
|
||||
if (flags & HAS_SSE2) vp9_dc_left_predictor_32x32 = vp9_dc_left_predictor_32x32_sse2;
|
||||
vp9_dc_left_predictor_4x4 = vp9_dc_left_predictor_4x4_c;
|
||||
if (flags & HAS_SSE) vp9_dc_left_predictor_4x4 = vp9_dc_left_predictor_4x4_sse;
|
||||
vp9_dc_left_predictor_8x8 = vp9_dc_left_predictor_8x8_c;
|
||||
if (flags & HAS_SSE) vp9_dc_left_predictor_8x8 = vp9_dc_left_predictor_8x8_sse;
|
||||
vp9_dc_predictor_16x16 = vp9_dc_predictor_16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_dc_predictor_16x16 = vp9_dc_predictor_16x16_sse2;
|
||||
vp9_dc_predictor_32x32 = vp9_dc_predictor_32x32_c;
|
||||
if (flags & HAS_SSE2) vp9_dc_predictor_32x32 = vp9_dc_predictor_32x32_sse2;
|
||||
vp9_dc_predictor_4x4 = vp9_dc_predictor_4x4_c;
|
||||
if (flags & HAS_SSE) vp9_dc_predictor_4x4 = vp9_dc_predictor_4x4_sse;
|
||||
vp9_dc_predictor_8x8 = vp9_dc_predictor_8x8_c;
|
||||
if (flags & HAS_SSE) vp9_dc_predictor_8x8 = vp9_dc_predictor_8x8_sse;
|
||||
vp9_dc_top_predictor_16x16 = vp9_dc_top_predictor_16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_dc_top_predictor_16x16 = vp9_dc_top_predictor_16x16_sse2;
|
||||
vp9_dc_top_predictor_32x32 = vp9_dc_top_predictor_32x32_c;
|
||||
if (flags & HAS_SSE2) vp9_dc_top_predictor_32x32 = vp9_dc_top_predictor_32x32_sse2;
|
||||
vp9_dc_top_predictor_4x4 = vp9_dc_top_predictor_4x4_c;
|
||||
if (flags & HAS_SSE) vp9_dc_top_predictor_4x4 = vp9_dc_top_predictor_4x4_sse;
|
||||
vp9_dc_top_predictor_8x8 = vp9_dc_top_predictor_8x8_c;
|
||||
if (flags & HAS_SSE) vp9_dc_top_predictor_8x8 = vp9_dc_top_predictor_8x8_sse;
|
||||
vp9_fdct16x16 = vp9_fdct16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_fdct16x16 = vp9_fdct16x16_sse2;
|
||||
vp9_fdct16x16_1 = vp9_fdct16x16_1_c;
|
||||
|
@ -781,19 +636,13 @@ static void setup_rtcd_internal(void)
|
|||
if (flags & HAS_SSE2) vp9_fht4x4 = vp9_fht4x4_sse2;
|
||||
vp9_fht8x8 = vp9_fht8x8_c;
|
||||
if (flags & HAS_SSE2) vp9_fht8x8 = vp9_fht8x8_sse2;
|
||||
vp9_filter_by_weight16x16 = vp9_filter_by_weight16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_filter_by_weight16x16 = vp9_filter_by_weight16x16_sse2;
|
||||
vp9_filter_by_weight8x8 = vp9_filter_by_weight8x8_c;
|
||||
if (flags & HAS_SSE2) vp9_filter_by_weight8x8 = vp9_filter_by_weight8x8_sse2;
|
||||
vp9_full_search_sad = vp9_full_search_sad_c;
|
||||
if (flags & HAS_SSE3) vp9_full_search_sad = vp9_full_search_sadx3;
|
||||
if (flags & HAS_SSE4_1) vp9_full_search_sad = vp9_full_search_sadx8;
|
||||
vp9_fwht4x4 = vp9_fwht4x4_c;
|
||||
if (flags & HAS_MMX) vp9_fwht4x4 = vp9_fwht4x4_mmx;
|
||||
vp9_h_predictor_16x16 = vp9_h_predictor_16x16_c;
|
||||
if (flags & HAS_SSSE3) vp9_h_predictor_16x16 = vp9_h_predictor_16x16_ssse3;
|
||||
vp9_h_predictor_32x32 = vp9_h_predictor_32x32_c;
|
||||
if (flags & HAS_SSSE3) vp9_h_predictor_32x32 = vp9_h_predictor_32x32_ssse3;
|
||||
vp9_h_predictor_4x4 = vp9_h_predictor_4x4_c;
|
||||
if (flags & HAS_SSSE3) vp9_h_predictor_4x4 = vp9_h_predictor_4x4_ssse3;
|
||||
vp9_h_predictor_8x8 = vp9_h_predictor_8x8_c;
|
||||
if (flags & HAS_SSSE3) vp9_h_predictor_8x8 = vp9_h_predictor_8x8_ssse3;
|
||||
vp9_hadamard_16x16 = vp9_hadamard_16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_hadamard_16x16 = vp9_hadamard_16x16_sse2;
|
||||
vp9_hadamard_8x8 = vp9_hadamard_8x8_c;
|
||||
|
@ -853,114 +702,32 @@ static void setup_rtcd_internal(void)
|
|||
if (flags & HAS_SSE2) vp9_lpf_vertical_8 = vp9_lpf_vertical_8_sse2;
|
||||
vp9_lpf_vertical_8_dual = vp9_lpf_vertical_8_dual_c;
|
||||
if (flags & HAS_SSE2) vp9_lpf_vertical_8_dual = vp9_lpf_vertical_8_dual_sse2;
|
||||
vp9_mbpost_proc_across_ip = vp9_mbpost_proc_across_ip_c;
|
||||
if (flags & HAS_SSE2) vp9_mbpost_proc_across_ip = vp9_mbpost_proc_across_ip_xmm;
|
||||
vp9_mbpost_proc_down = vp9_mbpost_proc_down_c;
|
||||
if (flags & HAS_SSE2) vp9_mbpost_proc_down = vp9_mbpost_proc_down_xmm;
|
||||
vp9_minmax_8x8 = vp9_minmax_8x8_c;
|
||||
if (flags & HAS_SSE2) vp9_minmax_8x8 = vp9_minmax_8x8_sse2;
|
||||
vp9_plane_add_noise = vp9_plane_add_noise_c;
|
||||
if (flags & HAS_SSE2) vp9_plane_add_noise = vp9_plane_add_noise_wmt;
|
||||
vp9_post_proc_down_and_across = vp9_post_proc_down_and_across_c;
|
||||
if (flags & HAS_SSE2) vp9_post_proc_down_and_across = vp9_post_proc_down_and_across_xmm;
|
||||
vp9_quantize_b = vp9_quantize_b_c;
|
||||
if (flags & HAS_SSE2) vp9_quantize_b = vp9_quantize_b_sse2;
|
||||
vp9_quantize_fp = vp9_quantize_fp_c;
|
||||
if (flags & HAS_SSE2) vp9_quantize_fp = vp9_quantize_fp_sse2;
|
||||
vp9_satd = vp9_satd_c;
|
||||
if (flags & HAS_SSE2) vp9_satd = vp9_satd_sse2;
|
||||
vp9_sub_pixel_avg_variance16x16 = vp9_sub_pixel_avg_variance16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_avg_variance16x16 = vp9_sub_pixel_avg_variance16x16_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance16x16 = vp9_sub_pixel_avg_variance16x16_ssse3;
|
||||
vp9_sub_pixel_avg_variance16x32 = vp9_sub_pixel_avg_variance16x32_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_avg_variance16x32 = vp9_sub_pixel_avg_variance16x32_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance16x32 = vp9_sub_pixel_avg_variance16x32_ssse3;
|
||||
vp9_sub_pixel_avg_variance16x8 = vp9_sub_pixel_avg_variance16x8_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_avg_variance16x8 = vp9_sub_pixel_avg_variance16x8_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance16x8 = vp9_sub_pixel_avg_variance16x8_ssse3;
|
||||
vp9_sub_pixel_avg_variance32x16 = vp9_sub_pixel_avg_variance32x16_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_avg_variance32x16 = vp9_sub_pixel_avg_variance32x16_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance32x16 = vp9_sub_pixel_avg_variance32x16_ssse3;
|
||||
vp9_sub_pixel_avg_variance32x32 = vp9_sub_pixel_avg_variance32x32_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_avg_variance32x32 = vp9_sub_pixel_avg_variance32x32_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance32x32 = vp9_sub_pixel_avg_variance32x32_ssse3;
|
||||
if (flags & HAS_AVX2) vp9_sub_pixel_avg_variance32x32 = vp9_sub_pixel_avg_variance32x32_avx2;
|
||||
vp9_sub_pixel_avg_variance32x64 = vp9_sub_pixel_avg_variance32x64_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_avg_variance32x64 = vp9_sub_pixel_avg_variance32x64_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance32x64 = vp9_sub_pixel_avg_variance32x64_ssse3;
|
||||
vp9_sub_pixel_avg_variance4x4 = vp9_sub_pixel_avg_variance4x4_c;
|
||||
if (flags & HAS_SSE) vp9_sub_pixel_avg_variance4x4 = vp9_sub_pixel_avg_variance4x4_sse;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance4x4 = vp9_sub_pixel_avg_variance4x4_ssse3;
|
||||
vp9_sub_pixel_avg_variance4x8 = vp9_sub_pixel_avg_variance4x8_c;
|
||||
if (flags & HAS_SSE) vp9_sub_pixel_avg_variance4x8 = vp9_sub_pixel_avg_variance4x8_sse;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance4x8 = vp9_sub_pixel_avg_variance4x8_ssse3;
|
||||
vp9_sub_pixel_avg_variance64x32 = vp9_sub_pixel_avg_variance64x32_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_avg_variance64x32 = vp9_sub_pixel_avg_variance64x32_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance64x32 = vp9_sub_pixel_avg_variance64x32_ssse3;
|
||||
vp9_sub_pixel_avg_variance64x64 = vp9_sub_pixel_avg_variance64x64_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_avg_variance64x64 = vp9_sub_pixel_avg_variance64x64_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance64x64 = vp9_sub_pixel_avg_variance64x64_ssse3;
|
||||
if (flags & HAS_AVX2) vp9_sub_pixel_avg_variance64x64 = vp9_sub_pixel_avg_variance64x64_avx2;
|
||||
vp9_sub_pixel_avg_variance8x16 = vp9_sub_pixel_avg_variance8x16_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_avg_variance8x16 = vp9_sub_pixel_avg_variance8x16_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance8x16 = vp9_sub_pixel_avg_variance8x16_ssse3;
|
||||
vp9_sub_pixel_avg_variance8x4 = vp9_sub_pixel_avg_variance8x4_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_avg_variance8x4 = vp9_sub_pixel_avg_variance8x4_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance8x4 = vp9_sub_pixel_avg_variance8x4_ssse3;
|
||||
vp9_sub_pixel_avg_variance8x8 = vp9_sub_pixel_avg_variance8x8_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_avg_variance8x8 = vp9_sub_pixel_avg_variance8x8_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance8x8 = vp9_sub_pixel_avg_variance8x8_ssse3;
|
||||
vp9_sub_pixel_variance16x16 = vp9_sub_pixel_variance16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_variance16x16 = vp9_sub_pixel_variance16x16_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_variance16x16 = vp9_sub_pixel_variance16x16_ssse3;
|
||||
vp9_sub_pixel_variance16x32 = vp9_sub_pixel_variance16x32_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_variance16x32 = vp9_sub_pixel_variance16x32_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_variance16x32 = vp9_sub_pixel_variance16x32_ssse3;
|
||||
vp9_sub_pixel_variance16x8 = vp9_sub_pixel_variance16x8_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_variance16x8 = vp9_sub_pixel_variance16x8_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_variance16x8 = vp9_sub_pixel_variance16x8_ssse3;
|
||||
vp9_sub_pixel_variance32x16 = vp9_sub_pixel_variance32x16_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_variance32x16 = vp9_sub_pixel_variance32x16_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_variance32x16 = vp9_sub_pixel_variance32x16_ssse3;
|
||||
vp9_sub_pixel_variance32x32 = vp9_sub_pixel_variance32x32_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_variance32x32 = vp9_sub_pixel_variance32x32_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_variance32x32 = vp9_sub_pixel_variance32x32_ssse3;
|
||||
if (flags & HAS_AVX2) vp9_sub_pixel_variance32x32 = vp9_sub_pixel_variance32x32_avx2;
|
||||
vp9_sub_pixel_variance32x64 = vp9_sub_pixel_variance32x64_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_variance32x64 = vp9_sub_pixel_variance32x64_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_variance32x64 = vp9_sub_pixel_variance32x64_ssse3;
|
||||
vp9_sub_pixel_variance4x4 = vp9_sub_pixel_variance4x4_c;
|
||||
if (flags & HAS_SSE) vp9_sub_pixel_variance4x4 = vp9_sub_pixel_variance4x4_sse;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_variance4x4 = vp9_sub_pixel_variance4x4_ssse3;
|
||||
vp9_sub_pixel_variance4x8 = vp9_sub_pixel_variance4x8_c;
|
||||
if (flags & HAS_SSE) vp9_sub_pixel_variance4x8 = vp9_sub_pixel_variance4x8_sse;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_variance4x8 = vp9_sub_pixel_variance4x8_ssse3;
|
||||
vp9_sub_pixel_variance64x32 = vp9_sub_pixel_variance64x32_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_variance64x32 = vp9_sub_pixel_variance64x32_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_variance64x32 = vp9_sub_pixel_variance64x32_ssse3;
|
||||
vp9_sub_pixel_variance64x64 = vp9_sub_pixel_variance64x64_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_variance64x64 = vp9_sub_pixel_variance64x64_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_variance64x64 = vp9_sub_pixel_variance64x64_ssse3;
|
||||
if (flags & HAS_AVX2) vp9_sub_pixel_variance64x64 = vp9_sub_pixel_variance64x64_avx2;
|
||||
vp9_sub_pixel_variance8x16 = vp9_sub_pixel_variance8x16_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_variance8x16 = vp9_sub_pixel_variance8x16_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_variance8x16 = vp9_sub_pixel_variance8x16_ssse3;
|
||||
vp9_sub_pixel_variance8x4 = vp9_sub_pixel_variance8x4_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_variance8x4 = vp9_sub_pixel_variance8x4_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_variance8x4 = vp9_sub_pixel_variance8x4_ssse3;
|
||||
vp9_sub_pixel_variance8x8 = vp9_sub_pixel_variance8x8_c;
|
||||
if (flags & HAS_SSE2) vp9_sub_pixel_variance8x8 = vp9_sub_pixel_variance8x8_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_sub_pixel_variance8x8 = vp9_sub_pixel_variance8x8_ssse3;
|
||||
vp9_subtract_block = vp9_subtract_block_c;
|
||||
if (flags & HAS_SSE2) vp9_subtract_block = vp9_subtract_block_sse2;
|
||||
vp9_temporal_filter_apply = vp9_temporal_filter_apply_c;
|
||||
if (flags & HAS_SSE2) vp9_temporal_filter_apply = vp9_temporal_filter_apply_sse2;
|
||||
vp9_tm_predictor_16x16 = vp9_tm_predictor_16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_tm_predictor_16x16 = vp9_tm_predictor_16x16_sse2;
|
||||
vp9_tm_predictor_4x4 = vp9_tm_predictor_4x4_c;
|
||||
if (flags & HAS_SSE) vp9_tm_predictor_4x4 = vp9_tm_predictor_4x4_sse;
|
||||
vp9_tm_predictor_8x8 = vp9_tm_predictor_8x8_c;
|
||||
if (flags & HAS_SSE2) vp9_tm_predictor_8x8 = vp9_tm_predictor_8x8_sse2;
|
||||
vp9_v_predictor_16x16 = vp9_v_predictor_16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_v_predictor_16x16 = vp9_v_predictor_16x16_sse2;
|
||||
vp9_v_predictor_32x32 = vp9_v_predictor_32x32_c;
|
||||
if (flags & HAS_SSE2) vp9_v_predictor_32x32 = vp9_v_predictor_32x32_sse2;
|
||||
vp9_v_predictor_4x4 = vp9_v_predictor_4x4_c;
|
||||
if (flags & HAS_SSE) vp9_v_predictor_4x4 = vp9_v_predictor_4x4_sse;
|
||||
vp9_v_predictor_8x8 = vp9_v_predictor_8x8_c;
|
||||
if (flags & HAS_SSE) vp9_v_predictor_8x8 = vp9_v_predictor_8x8_sse;
|
||||
vp9_vector_var = vp9_vector_var_c;
|
||||
if (flags & HAS_SSE2) vp9_vector_var = vp9_vector_var_sse2;
|
||||
}
|
|
@ -0,0 +1,81 @@
|
|||
%define ARCH_ARM 0
|
||||
%define ARCH_MIPS 0
|
||||
%define ARCH_X86 1
|
||||
%define ARCH_X86_64 0
|
||||
%define HAVE_EDSP 0
|
||||
%define HAVE_MEDIA 0
|
||||
%define HAVE_NEON 0
|
||||
%define HAVE_NEON_ASM 0
|
||||
%define HAVE_MIPS32 0
|
||||
%define HAVE_DSPR2 0
|
||||
%define HAVE_MSA 0
|
||||
%define HAVE_MIPS64 0
|
||||
%define HAVE_MMX 1
|
||||
%define HAVE_SSE 1
|
||||
%define HAVE_SSE2 1
|
||||
%define HAVE_SSE3 1
|
||||
%define HAVE_SSSE3 1
|
||||
%define HAVE_SSE4_1 1
|
||||
%define HAVE_AVX 1
|
||||
%define HAVE_AVX2 1
|
||||
%define HAVE_VPX_PORTS 1
|
||||
%define HAVE_STDINT_H 1
|
||||
%define HAVE_PTHREAD_H 0
|
||||
%define HAVE_SYS_MMAN_H 0
|
||||
%define CONFIG_DEPENDENCY_TRACKING 1
|
||||
%define CONFIG_EXTERNAL_BUILD 1
|
||||
%define CONFIG_INSTALL_DOCS 0
|
||||
%define CONFIG_INSTALL_BINS 1
|
||||
%define CONFIG_INSTALL_LIBS 1
|
||||
%define CONFIG_INSTALL_SRCS 0
|
||||
%define CONFIG_USE_X86INC 0
|
||||
%define CONFIG_DEBUG 0
|
||||
%define CONFIG_GPROF 0
|
||||
%define CONFIG_GCOV 0
|
||||
%define CONFIG_RVCT 0
|
||||
%define CONFIG_GCC 1
|
||||
%define CONFIG_MSVS 0
|
||||
%define CONFIG_PIC 1
|
||||
%define CONFIG_BIG_ENDIAN 0
|
||||
%define CONFIG_CODEC_SRCS 0
|
||||
%define CONFIG_DEBUG_LIBS 0
|
||||
%define CONFIG_DEQUANT_TOKENS 0
|
||||
%define CONFIG_DC_RECON 0
|
||||
%define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
%define CONFIG_POSTPROC 1
|
||||
%define CONFIG_VP9_POSTPROC 1
|
||||
%define CONFIG_MULTITHREAD 1
|
||||
%define CONFIG_INTERNAL_STATS 0
|
||||
%define CONFIG_VP8_ENCODER 1
|
||||
%define CONFIG_VP8_DECODER 1
|
||||
%define CONFIG_VP9_ENCODER 1
|
||||
%define CONFIG_VP9_DECODER 1
|
||||
%define CONFIG_VP8 1
|
||||
%define CONFIG_VP9 1
|
||||
%define CONFIG_ENCODERS 1
|
||||
%define CONFIG_DECODERS 1
|
||||
%define CONFIG_STATIC_MSVCRT 0
|
||||
%define CONFIG_SPATIAL_RESAMPLING 1
|
||||
%define CONFIG_REALTIME_ONLY 0
|
||||
%define CONFIG_ONTHEFLY_BITPACKING 0
|
||||
%define CONFIG_ERROR_CONCEALMENT 1
|
||||
%define CONFIG_SHARED 0
|
||||
%define CONFIG_STATIC 1
|
||||
%define CONFIG_SMALL 0
|
||||
%define CONFIG_POSTPROC_VISUALIZER 0
|
||||
%define CONFIG_OS_SUPPORT 1
|
||||
%define CONFIG_UNIT_TESTS 0
|
||||
%define CONFIG_WEBM_IO 1
|
||||
%define CONFIG_LIBYUV 1
|
||||
%define CONFIG_DECODE_PERF_TESTS 0
|
||||
%define CONFIG_ENCODE_PERF_TESTS 0
|
||||
%define CONFIG_MULTI_RES_ENCODING 1
|
||||
%define CONFIG_TEMPORAL_DENOISING 1
|
||||
%define CONFIG_VP9_TEMPORAL_DENOISING 0
|
||||
%define CONFIG_COEFFICIENT_RANGE_CHECKING 0
|
||||
%define CONFIG_VP9_HIGHBITDEPTH 0
|
||||
%define CONFIG_EXPERIMENTAL 0
|
||||
%define CONFIG_SIZE_LIMIT 1
|
||||
%define CONFIG_SPATIAL_SVC 0
|
||||
%define CONFIG_FP_MB_STATS 0
|
||||
%define CONFIG_EMULATE_HARDWARE 0
|
|
@ -0,0 +1,10 @@
|
|||
/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */
|
||||
/* */
|
||||
/* Use of this source code is governed by a BSD-style license */
|
||||
/* that can be found in the LICENSE file in the root of the source */
|
||||
/* tree. An additional intellectual property rights grant can be found */
|
||||
/* in the file PATENTS. All contributing project authors may */
|
||||
/* be found in the AUTHORS file in the root of the source tree. */
|
||||
#include "vpx/vpx_codec.h"
|
||||
static const char* const cfg = "--target=x86-win32-gcc --disable-use-x86inc --enable-external-build --disable-examples --disable-install-docs --disable-unit-tests --enable-multi-res-encoding --size-limit=8192x4608 --enable-pic --enable-error-concealment --enable-postproc --enable-vp9-postproc --as=yasm";
|
||||
const char *vpx_codec_build_config(void) {return cfg;}
|
|
@ -32,24 +32,22 @@
|
|||
#define HAVE_AVX2 1
|
||||
#define HAVE_VPX_PORTS 1
|
||||
#define HAVE_STDINT_H 1
|
||||
#undef HAVE_PTHREAD_H
|
||||
#define HAVE_PTHREAD_H 0
|
||||
#define HAVE_SYS_MMAN_H 1
|
||||
#define HAVE_UNISTD_H 1
|
||||
#define HAVE_SYS_MMAN_H 0
|
||||
#define CONFIG_DEPENDENCY_TRACKING 1
|
||||
#define CONFIG_EXTERNAL_BUILD 0
|
||||
#define CONFIG_EXTERNAL_BUILD 1
|
||||
#define CONFIG_INSTALL_DOCS 0
|
||||
#define CONFIG_INSTALL_BINS 1
|
||||
#define CONFIG_INSTALL_LIBS 1
|
||||
#define CONFIG_INSTALL_SRCS 0
|
||||
#define CONFIG_USE_X86INC 1
|
||||
#define CONFIG_USE_X86INC 0
|
||||
#define CONFIG_DEBUG 0
|
||||
#define CONFIG_GPROF 0
|
||||
#define CONFIG_GCOV 0
|
||||
#define CONFIG_RVCT 0
|
||||
#define CONFIG_GCC 1
|
||||
#define CONFIG_MSVS 0
|
||||
#define CONFIG_PIC 0
|
||||
#define CONFIG_PIC 1
|
||||
#define CONFIG_BIG_ENDIAN 0
|
||||
#define CONFIG_CODEC_SRCS 0
|
||||
#define CONFIG_DEBUG_LIBS 0
|
||||
|
@ -57,7 +55,7 @@
|
|||
#define CONFIG_DC_RECON 0
|
||||
#define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
#define CONFIG_POSTPROC 1
|
||||
#define CONFIG_VP9_POSTPROC 0
|
||||
#define CONFIG_VP9_POSTPROC 1
|
||||
#define CONFIG_MULTITHREAD 1
|
||||
#define CONFIG_INTERNAL_STATS 0
|
||||
#define CONFIG_VP8_ENCODER 1
|
||||
|
@ -72,13 +70,13 @@
|
|||
#define CONFIG_SPATIAL_RESAMPLING 1
|
||||
#define CONFIG_REALTIME_ONLY 0
|
||||
#define CONFIG_ONTHEFLY_BITPACKING 0
|
||||
#define CONFIG_ERROR_CONCEALMENT 0
|
||||
#define CONFIG_ERROR_CONCEALMENT 1
|
||||
#define CONFIG_SHARED 0
|
||||
#define CONFIG_STATIC 1
|
||||
#define CONFIG_SMALL 0
|
||||
#define CONFIG_POSTPROC_VISUALIZER 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
#define CONFIG_UNIT_TESTS 1
|
||||
#define CONFIG_UNIT_TESTS 0
|
||||
#define CONFIG_WEBM_IO 1
|
||||
#define CONFIG_LIBYUV 1
|
||||
#define CONFIG_DECODE_PERF_TESTS 0
|
|
@ -59,12 +59,10 @@ RTCD_EXTERN unsigned int (*vpx_mse8x8)(const uint8_t *src_ptr, int source_strid
|
|||
|
||||
unsigned int vpx_sad16x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad16x16_mmx(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad16x16_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad16x16)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
|
||||
unsigned int vpx_sad16x16_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad16x16_avg_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad16x16_avg)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad16x16_avg vpx_sad16x16_avg_c
|
||||
|
||||
void vpx_sad16x16x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad16x16x3_sse3(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
|
@ -72,33 +70,27 @@ void vpx_sad16x16x3_ssse3(const uint8_t *src_ptr, int src_stride, const uint8_t
|
|||
RTCD_EXTERN void (*vpx_sad16x16x3)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
|
||||
void vpx_sad16x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad16x16x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad16x16x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad16x16x4d vpx_sad16x16x4d_c
|
||||
|
||||
void vpx_sad16x16x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad16x16x8_sse4_1(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad16x16x8)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
|
||||
unsigned int vpx_sad16x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad16x32_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad16x32)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
#define vpx_sad16x32 vpx_sad16x32_c
|
||||
|
||||
unsigned int vpx_sad16x32_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad16x32_avg_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad16x32_avg)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad16x32_avg vpx_sad16x32_avg_c
|
||||
|
||||
void vpx_sad16x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad16x32x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad16x32x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad16x32x4d vpx_sad16x32x4d_c
|
||||
|
||||
unsigned int vpx_sad16x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad16x8_mmx(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad16x8_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad16x8)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
|
||||
unsigned int vpx_sad16x8_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad16x8_avg_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad16x8_avg)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad16x8_avg vpx_sad16x8_avg_c
|
||||
|
||||
void vpx_sad16x8x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad16x8x3_sse3(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
|
@ -106,34 +98,28 @@ void vpx_sad16x8x3_ssse3(const uint8_t *src_ptr, int src_stride, const uint8_t *
|
|||
RTCD_EXTERN void (*vpx_sad16x8x3)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
|
||||
void vpx_sad16x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad16x8x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad16x8x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad16x8x4d vpx_sad16x8x4d_c
|
||||
|
||||
void vpx_sad16x8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad16x8x8_sse4_1(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad16x8x8)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
|
||||
unsigned int vpx_sad32x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad32x16_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad32x16_avx2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad32x16)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
|
||||
unsigned int vpx_sad32x16_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad32x16_avg_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad32x16_avg_avx2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad32x16_avg)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
|
||||
void vpx_sad32x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad32x16x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad32x16x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad32x16x4d vpx_sad32x16x4d_c
|
||||
|
||||
unsigned int vpx_sad32x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad32x32_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad32x32_avx2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad32x32)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
|
||||
unsigned int vpx_sad32x32_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad32x32_avg_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad32x32_avg_avx2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad32x32_avg)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
|
||||
|
@ -141,7 +127,6 @@ void vpx_sad32x32x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref
|
|||
#define vpx_sad32x32x3 vpx_sad32x32x3_c
|
||||
|
||||
void vpx_sad32x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad32x32x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad32x32x4d_avx2(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad32x32x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
|
||||
|
@ -149,76 +134,62 @@ void vpx_sad32x32x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref
|
|||
#define vpx_sad32x32x8 vpx_sad32x32x8_c
|
||||
|
||||
unsigned int vpx_sad32x64_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad32x64_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad32x64_avx2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad32x64)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
|
||||
unsigned int vpx_sad32x64_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad32x64_avg_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad32x64_avg_avx2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad32x64_avg)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
|
||||
void vpx_sad32x64x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad32x64x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad32x64x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad32x64x4d vpx_sad32x64x4d_c
|
||||
|
||||
unsigned int vpx_sad4x4_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad4x4_mmx(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad4x4_sse(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad4x4)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
|
||||
unsigned int vpx_sad4x4_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad4x4_avg_sse(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad4x4_avg)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad4x4_avg vpx_sad4x4_avg_c
|
||||
|
||||
void vpx_sad4x4x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad4x4x3_sse3(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad4x4x3)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
|
||||
void vpx_sad4x4x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad4x4x4d_sse(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad4x4x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad4x4x4d vpx_sad4x4x4d_c
|
||||
|
||||
void vpx_sad4x4x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad4x4x8_sse4_1(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad4x4x8)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
|
||||
unsigned int vpx_sad4x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad4x8_sse(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad4x8)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
#define vpx_sad4x8 vpx_sad4x8_c
|
||||
|
||||
unsigned int vpx_sad4x8_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad4x8_avg_sse(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad4x8_avg)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad4x8_avg vpx_sad4x8_avg_c
|
||||
|
||||
void vpx_sad4x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad4x8x4d_sse(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad4x8x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad4x8x4d vpx_sad4x8x4d_c
|
||||
|
||||
void vpx_sad4x8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad4x8x8 vpx_sad4x8x8_c
|
||||
|
||||
unsigned int vpx_sad64x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad64x32_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad64x32_avx2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad64x32)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
|
||||
unsigned int vpx_sad64x32_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad64x32_avg_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad64x32_avg_avx2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad64x32_avg)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
|
||||
void vpx_sad64x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad64x32x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad64x32x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad64x32x4d vpx_sad64x32x4d_c
|
||||
|
||||
unsigned int vpx_sad64x64_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad64x64_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad64x64_avx2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad64x64)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
|
||||
unsigned int vpx_sad64x64_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad64x64_avg_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad64x64_avg_avx2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad64x64_avg)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
|
||||
|
@ -226,7 +197,6 @@ void vpx_sad64x64x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref
|
|||
#define vpx_sad64x64x3 vpx_sad64x64x3_c
|
||||
|
||||
void vpx_sad64x64x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad64x64x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad64x64x4d_avx2(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad64x64x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
|
||||
|
@ -235,56 +205,47 @@ void vpx_sad64x64x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref
|
|||
|
||||
unsigned int vpx_sad8x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad8x16_mmx(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad8x16_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad8x16)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
|
||||
unsigned int vpx_sad8x16_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad8x16_avg_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad8x16_avg)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad8x16_avg vpx_sad8x16_avg_c
|
||||
|
||||
void vpx_sad8x16x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad8x16x3_sse3(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad8x16x3)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
|
||||
void vpx_sad8x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad8x16x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad8x16x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad8x16x4d vpx_sad8x16x4d_c
|
||||
|
||||
void vpx_sad8x16x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad8x16x8_sse4_1(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad8x16x8)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
|
||||
unsigned int vpx_sad8x4_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad8x4_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad8x4)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
#define vpx_sad8x4 vpx_sad8x4_c
|
||||
|
||||
unsigned int vpx_sad8x4_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad8x4_avg_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad8x4_avg)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad8x4_avg vpx_sad8x4_avg_c
|
||||
|
||||
void vpx_sad8x4x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad8x4x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad8x4x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad8x4x4d vpx_sad8x4x4d_c
|
||||
|
||||
void vpx_sad8x4x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad8x4x8 vpx_sad8x4x8_c
|
||||
|
||||
unsigned int vpx_sad8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad8x8_mmx(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
unsigned int vpx_sad8x8_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad8x8)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
|
||||
unsigned int vpx_sad8x8_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
unsigned int vpx_sad8x8_avg_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
RTCD_EXTERN unsigned int (*vpx_sad8x8_avg)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad8x8_avg vpx_sad8x8_avg_c
|
||||
|
||||
void vpx_sad8x8x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad8x8x3_sse3(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad8x8x3)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
|
||||
void vpx_sad8x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad8x8x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
RTCD_EXTERN void (*vpx_sad8x8x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad8x8x4d vpx_sad8x8x4d_c
|
||||
|
||||
void vpx_sad8x8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
void vpx_sad8x8x8_sse4_1(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
|
@ -383,119 +344,58 @@ static void setup_rtcd_internal(void)
|
|||
if (flags & HAS_SSE2) vpx_mse8x8 = vpx_mse8x8_sse2;
|
||||
vpx_sad16x16 = vpx_sad16x16_c;
|
||||
if (flags & HAS_MMX) vpx_sad16x16 = vpx_sad16x16_mmx;
|
||||
if (flags & HAS_SSE2) vpx_sad16x16 = vpx_sad16x16_sse2;
|
||||
vpx_sad16x16_avg = vpx_sad16x16_avg_c;
|
||||
if (flags & HAS_SSE2) vpx_sad16x16_avg = vpx_sad16x16_avg_sse2;
|
||||
vpx_sad16x16x3 = vpx_sad16x16x3_c;
|
||||
if (flags & HAS_SSE3) vpx_sad16x16x3 = vpx_sad16x16x3_sse3;
|
||||
if (flags & HAS_SSSE3) vpx_sad16x16x3 = vpx_sad16x16x3_ssse3;
|
||||
vpx_sad16x16x4d = vpx_sad16x16x4d_c;
|
||||
if (flags & HAS_SSE2) vpx_sad16x16x4d = vpx_sad16x16x4d_sse2;
|
||||
vpx_sad16x16x8 = vpx_sad16x16x8_c;
|
||||
if (flags & HAS_SSE4_1) vpx_sad16x16x8 = vpx_sad16x16x8_sse4_1;
|
||||
vpx_sad16x32 = vpx_sad16x32_c;
|
||||
if (flags & HAS_SSE2) vpx_sad16x32 = vpx_sad16x32_sse2;
|
||||
vpx_sad16x32_avg = vpx_sad16x32_avg_c;
|
||||
if (flags & HAS_SSE2) vpx_sad16x32_avg = vpx_sad16x32_avg_sse2;
|
||||
vpx_sad16x32x4d = vpx_sad16x32x4d_c;
|
||||
if (flags & HAS_SSE2) vpx_sad16x32x4d = vpx_sad16x32x4d_sse2;
|
||||
vpx_sad16x8 = vpx_sad16x8_c;
|
||||
if (flags & HAS_MMX) vpx_sad16x8 = vpx_sad16x8_mmx;
|
||||
if (flags & HAS_SSE2) vpx_sad16x8 = vpx_sad16x8_sse2;
|
||||
vpx_sad16x8_avg = vpx_sad16x8_avg_c;
|
||||
if (flags & HAS_SSE2) vpx_sad16x8_avg = vpx_sad16x8_avg_sse2;
|
||||
vpx_sad16x8x3 = vpx_sad16x8x3_c;
|
||||
if (flags & HAS_SSE3) vpx_sad16x8x3 = vpx_sad16x8x3_sse3;
|
||||
if (flags & HAS_SSSE3) vpx_sad16x8x3 = vpx_sad16x8x3_ssse3;
|
||||
vpx_sad16x8x4d = vpx_sad16x8x4d_c;
|
||||
if (flags & HAS_SSE2) vpx_sad16x8x4d = vpx_sad16x8x4d_sse2;
|
||||
vpx_sad16x8x8 = vpx_sad16x8x8_c;
|
||||
if (flags & HAS_SSE4_1) vpx_sad16x8x8 = vpx_sad16x8x8_sse4_1;
|
||||
vpx_sad32x16 = vpx_sad32x16_c;
|
||||
if (flags & HAS_SSE2) vpx_sad32x16 = vpx_sad32x16_sse2;
|
||||
if (flags & HAS_AVX2) vpx_sad32x16 = vpx_sad32x16_avx2;
|
||||
vpx_sad32x16_avg = vpx_sad32x16_avg_c;
|
||||
if (flags & HAS_SSE2) vpx_sad32x16_avg = vpx_sad32x16_avg_sse2;
|
||||
if (flags & HAS_AVX2) vpx_sad32x16_avg = vpx_sad32x16_avg_avx2;
|
||||
vpx_sad32x16x4d = vpx_sad32x16x4d_c;
|
||||
if (flags & HAS_SSE2) vpx_sad32x16x4d = vpx_sad32x16x4d_sse2;
|
||||
vpx_sad32x32 = vpx_sad32x32_c;
|
||||
if (flags & HAS_SSE2) vpx_sad32x32 = vpx_sad32x32_sse2;
|
||||
if (flags & HAS_AVX2) vpx_sad32x32 = vpx_sad32x32_avx2;
|
||||
vpx_sad32x32_avg = vpx_sad32x32_avg_c;
|
||||
if (flags & HAS_SSE2) vpx_sad32x32_avg = vpx_sad32x32_avg_sse2;
|
||||
if (flags & HAS_AVX2) vpx_sad32x32_avg = vpx_sad32x32_avg_avx2;
|
||||
vpx_sad32x32x4d = vpx_sad32x32x4d_c;
|
||||
if (flags & HAS_SSE2) vpx_sad32x32x4d = vpx_sad32x32x4d_sse2;
|
||||
if (flags & HAS_AVX2) vpx_sad32x32x4d = vpx_sad32x32x4d_avx2;
|
||||
vpx_sad32x64 = vpx_sad32x64_c;
|
||||
if (flags & HAS_SSE2) vpx_sad32x64 = vpx_sad32x64_sse2;
|
||||
if (flags & HAS_AVX2) vpx_sad32x64 = vpx_sad32x64_avx2;
|
||||
vpx_sad32x64_avg = vpx_sad32x64_avg_c;
|
||||
if (flags & HAS_SSE2) vpx_sad32x64_avg = vpx_sad32x64_avg_sse2;
|
||||
if (flags & HAS_AVX2) vpx_sad32x64_avg = vpx_sad32x64_avg_avx2;
|
||||
vpx_sad32x64x4d = vpx_sad32x64x4d_c;
|
||||
if (flags & HAS_SSE2) vpx_sad32x64x4d = vpx_sad32x64x4d_sse2;
|
||||
vpx_sad4x4 = vpx_sad4x4_c;
|
||||
if (flags & HAS_MMX) vpx_sad4x4 = vpx_sad4x4_mmx;
|
||||
if (flags & HAS_SSE) vpx_sad4x4 = vpx_sad4x4_sse;
|
||||
vpx_sad4x4_avg = vpx_sad4x4_avg_c;
|
||||
if (flags & HAS_SSE) vpx_sad4x4_avg = vpx_sad4x4_avg_sse;
|
||||
vpx_sad4x4x3 = vpx_sad4x4x3_c;
|
||||
if (flags & HAS_SSE3) vpx_sad4x4x3 = vpx_sad4x4x3_sse3;
|
||||
vpx_sad4x4x4d = vpx_sad4x4x4d_c;
|
||||
if (flags & HAS_SSE) vpx_sad4x4x4d = vpx_sad4x4x4d_sse;
|
||||
vpx_sad4x4x8 = vpx_sad4x4x8_c;
|
||||
if (flags & HAS_SSE4_1) vpx_sad4x4x8 = vpx_sad4x4x8_sse4_1;
|
||||
vpx_sad4x8 = vpx_sad4x8_c;
|
||||
if (flags & HAS_SSE) vpx_sad4x8 = vpx_sad4x8_sse;
|
||||
vpx_sad4x8_avg = vpx_sad4x8_avg_c;
|
||||
if (flags & HAS_SSE) vpx_sad4x8_avg = vpx_sad4x8_avg_sse;
|
||||
vpx_sad4x8x4d = vpx_sad4x8x4d_c;
|
||||
if (flags & HAS_SSE) vpx_sad4x8x4d = vpx_sad4x8x4d_sse;
|
||||
vpx_sad64x32 = vpx_sad64x32_c;
|
||||
if (flags & HAS_SSE2) vpx_sad64x32 = vpx_sad64x32_sse2;
|
||||
if (flags & HAS_AVX2) vpx_sad64x32 = vpx_sad64x32_avx2;
|
||||
vpx_sad64x32_avg = vpx_sad64x32_avg_c;
|
||||
if (flags & HAS_SSE2) vpx_sad64x32_avg = vpx_sad64x32_avg_sse2;
|
||||
if (flags & HAS_AVX2) vpx_sad64x32_avg = vpx_sad64x32_avg_avx2;
|
||||
vpx_sad64x32x4d = vpx_sad64x32x4d_c;
|
||||
if (flags & HAS_SSE2) vpx_sad64x32x4d = vpx_sad64x32x4d_sse2;
|
||||
vpx_sad64x64 = vpx_sad64x64_c;
|
||||
if (flags & HAS_SSE2) vpx_sad64x64 = vpx_sad64x64_sse2;
|
||||
if (flags & HAS_AVX2) vpx_sad64x64 = vpx_sad64x64_avx2;
|
||||
vpx_sad64x64_avg = vpx_sad64x64_avg_c;
|
||||
if (flags & HAS_SSE2) vpx_sad64x64_avg = vpx_sad64x64_avg_sse2;
|
||||
if (flags & HAS_AVX2) vpx_sad64x64_avg = vpx_sad64x64_avg_avx2;
|
||||
vpx_sad64x64x4d = vpx_sad64x64x4d_c;
|
||||
if (flags & HAS_SSE2) vpx_sad64x64x4d = vpx_sad64x64x4d_sse2;
|
||||
if (flags & HAS_AVX2) vpx_sad64x64x4d = vpx_sad64x64x4d_avx2;
|
||||
vpx_sad8x16 = vpx_sad8x16_c;
|
||||
if (flags & HAS_MMX) vpx_sad8x16 = vpx_sad8x16_mmx;
|
||||
if (flags & HAS_SSE2) vpx_sad8x16 = vpx_sad8x16_sse2;
|
||||
vpx_sad8x16_avg = vpx_sad8x16_avg_c;
|
||||
if (flags & HAS_SSE2) vpx_sad8x16_avg = vpx_sad8x16_avg_sse2;
|
||||
vpx_sad8x16x3 = vpx_sad8x16x3_c;
|
||||
if (flags & HAS_SSE3) vpx_sad8x16x3 = vpx_sad8x16x3_sse3;
|
||||
vpx_sad8x16x4d = vpx_sad8x16x4d_c;
|
||||
if (flags & HAS_SSE2) vpx_sad8x16x4d = vpx_sad8x16x4d_sse2;
|
||||
vpx_sad8x16x8 = vpx_sad8x16x8_c;
|
||||
if (flags & HAS_SSE4_1) vpx_sad8x16x8 = vpx_sad8x16x8_sse4_1;
|
||||
vpx_sad8x4 = vpx_sad8x4_c;
|
||||
if (flags & HAS_SSE2) vpx_sad8x4 = vpx_sad8x4_sse2;
|
||||
vpx_sad8x4_avg = vpx_sad8x4_avg_c;
|
||||
if (flags & HAS_SSE2) vpx_sad8x4_avg = vpx_sad8x4_avg_sse2;
|
||||
vpx_sad8x4x4d = vpx_sad8x4x4d_c;
|
||||
if (flags & HAS_SSE2) vpx_sad8x4x4d = vpx_sad8x4x4d_sse2;
|
||||
vpx_sad8x8 = vpx_sad8x8_c;
|
||||
if (flags & HAS_MMX) vpx_sad8x8 = vpx_sad8x8_mmx;
|
||||
if (flags & HAS_SSE2) vpx_sad8x8 = vpx_sad8x8_sse2;
|
||||
vpx_sad8x8_avg = vpx_sad8x8_avg_c;
|
||||
if (flags & HAS_SSE2) vpx_sad8x8_avg = vpx_sad8x8_avg_sse2;
|
||||
vpx_sad8x8x3 = vpx_sad8x8x3_c;
|
||||
if (flags & HAS_SSE3) vpx_sad8x8x3 = vpx_sad8x8x3_sse3;
|
||||
vpx_sad8x8x4d = vpx_sad8x8x4d_c;
|
||||
if (flags & HAS_SSE2) vpx_sad8x8x4d = vpx_sad8x8x4d_sse2;
|
||||
vpx_sad8x8x8 = vpx_sad8x8x8_c;
|
||||
if (flags & HAS_SSE4_1) vpx_sad8x8x8 = vpx_sad8x8x8_sse4_1;
|
||||
vpx_variance16x16 = vpx_variance16x16_c;
|
|
@ -297,6 +297,14 @@ void vp9_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_t
|
|||
void vp9_fht8x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define vp9_fht8x8 vp9_fht8x8_sse2
|
||||
|
||||
void vp9_filter_by_weight16x16_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
void vp9_filter_by_weight16x16_sse2(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
#define vp9_filter_by_weight16x16 vp9_filter_by_weight16x16_sse2
|
||||
|
||||
void vp9_filter_by_weight8x8_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
void vp9_filter_by_weight8x8_sse2(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
#define vp9_filter_by_weight8x8 vp9_filter_by_weight8x8_sse2
|
||||
|
||||
int vp9_full_range_search_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
#define vp9_full_range_search vp9_full_range_search_c
|
||||
|
||||
|
@ -451,10 +459,26 @@ void vp9_lpf_vertical_8_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, co
|
|||
void vp9_lpf_vertical_8_dual_sse2(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
|
||||
#define vp9_lpf_vertical_8_dual vp9_lpf_vertical_8_dual_sse2
|
||||
|
||||
void vp9_mbpost_proc_across_ip_c(uint8_t *src, int pitch, int rows, int cols, int flimit);
|
||||
void vp9_mbpost_proc_across_ip_xmm(uint8_t *src, int pitch, int rows, int cols, int flimit);
|
||||
#define vp9_mbpost_proc_across_ip vp9_mbpost_proc_across_ip_xmm
|
||||
|
||||
void vp9_mbpost_proc_down_c(uint8_t *dst, int pitch, int rows, int cols, int flimit);
|
||||
void vp9_mbpost_proc_down_xmm(uint8_t *dst, int pitch, int rows, int cols, int flimit);
|
||||
#define vp9_mbpost_proc_down vp9_mbpost_proc_down_xmm
|
||||
|
||||
void vp9_minmax_8x8_c(const uint8_t *s, int p, const uint8_t *d, int dp, int *min, int *max);
|
||||
void vp9_minmax_8x8_sse2(const uint8_t *s, int p, const uint8_t *d, int dp, int *min, int *max);
|
||||
#define vp9_minmax_8x8 vp9_minmax_8x8_sse2
|
||||
|
||||
void vp9_plane_add_noise_c(uint8_t *Start, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int Width, unsigned int Height, int Pitch);
|
||||
void vp9_plane_add_noise_wmt(uint8_t *Start, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int Width, unsigned int Height, int Pitch);
|
||||
#define vp9_plane_add_noise vp9_plane_add_noise_wmt
|
||||
|
||||
void vp9_post_proc_down_and_across_c(const uint8_t *src_ptr, uint8_t *dst_ptr, int src_pixels_per_line, int dst_pixels_per_line, int rows, int cols, int flimit);
|
||||
void vp9_post_proc_down_and_across_xmm(const uint8_t *src_ptr, uint8_t *dst_ptr, int src_pixels_per_line, int dst_pixels_per_line, int rows, int cols, int flimit);
|
||||
#define vp9_post_proc_down_and_across vp9_post_proc_down_and_across_xmm
|
||||
|
||||
void vp9_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_quantize_b_sse2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_quantize_b_ssse3(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
|
@ -0,0 +1,81 @@
|
|||
%define ARCH_ARM 0
|
||||
%define ARCH_MIPS 0
|
||||
%define ARCH_X86 0
|
||||
%define ARCH_X86_64 1
|
||||
%define HAVE_EDSP 0
|
||||
%define HAVE_MEDIA 0
|
||||
%define HAVE_NEON 0
|
||||
%define HAVE_NEON_ASM 0
|
||||
%define HAVE_MIPS32 0
|
||||
%define HAVE_DSPR2 0
|
||||
%define HAVE_MSA 0
|
||||
%define HAVE_MIPS64 0
|
||||
%define HAVE_MMX 1
|
||||
%define HAVE_SSE 1
|
||||
%define HAVE_SSE2 1
|
||||
%define HAVE_SSE3 1
|
||||
%define HAVE_SSSE3 1
|
||||
%define HAVE_SSE4_1 1
|
||||
%define HAVE_AVX 1
|
||||
%define HAVE_AVX2 1
|
||||
%define HAVE_VPX_PORTS 1
|
||||
%define HAVE_STDINT_H 0
|
||||
%define HAVE_PTHREAD_H 0
|
||||
%define HAVE_SYS_MMAN_H 0
|
||||
%define CONFIG_DEPENDENCY_TRACKING 1
|
||||
%define CONFIG_EXTERNAL_BUILD 1
|
||||
%define CONFIG_INSTALL_DOCS 0
|
||||
%define CONFIG_INSTALL_BINS 1
|
||||
%define CONFIG_INSTALL_LIBS 1
|
||||
%define CONFIG_INSTALL_SRCS 0
|
||||
%define CONFIG_USE_X86INC 1
|
||||
%define CONFIG_DEBUG 0
|
||||
%define CONFIG_GPROF 0
|
||||
%define CONFIG_GCOV 0
|
||||
%define CONFIG_RVCT 0
|
||||
%define CONFIG_GCC 0
|
||||
%define CONFIG_MSVS 1
|
||||
%define CONFIG_PIC 1
|
||||
%define CONFIG_BIG_ENDIAN 0
|
||||
%define CONFIG_CODEC_SRCS 0
|
||||
%define CONFIG_DEBUG_LIBS 0
|
||||
%define CONFIG_DEQUANT_TOKENS 0
|
||||
%define CONFIG_DC_RECON 0
|
||||
%define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
%define CONFIG_POSTPROC 1
|
||||
%define CONFIG_VP9_POSTPROC 1
|
||||
%define CONFIG_MULTITHREAD 1
|
||||
%define CONFIG_INTERNAL_STATS 0
|
||||
%define CONFIG_VP8_ENCODER 1
|
||||
%define CONFIG_VP8_DECODER 1
|
||||
%define CONFIG_VP9_ENCODER 1
|
||||
%define CONFIG_VP9_DECODER 1
|
||||
%define CONFIG_VP8 1
|
||||
%define CONFIG_VP9 1
|
||||
%define CONFIG_ENCODERS 1
|
||||
%define CONFIG_DECODERS 1
|
||||
%define CONFIG_STATIC_MSVCRT 0
|
||||
%define CONFIG_SPATIAL_RESAMPLING 1
|
||||
%define CONFIG_REALTIME_ONLY 0
|
||||
%define CONFIG_ONTHEFLY_BITPACKING 0
|
||||
%define CONFIG_ERROR_CONCEALMENT 1
|
||||
%define CONFIG_SHARED 0
|
||||
%define CONFIG_STATIC 1
|
||||
%define CONFIG_SMALL 0
|
||||
%define CONFIG_POSTPROC_VISUALIZER 0
|
||||
%define CONFIG_OS_SUPPORT 1
|
||||
%define CONFIG_UNIT_TESTS 0
|
||||
%define CONFIG_WEBM_IO 1
|
||||
%define CONFIG_LIBYUV 1
|
||||
%define CONFIG_DECODE_PERF_TESTS 0
|
||||
%define CONFIG_ENCODE_PERF_TESTS 0
|
||||
%define CONFIG_MULTI_RES_ENCODING 1
|
||||
%define CONFIG_TEMPORAL_DENOISING 1
|
||||
%define CONFIG_VP9_TEMPORAL_DENOISING 0
|
||||
%define CONFIG_COEFFICIENT_RANGE_CHECKING 0
|
||||
%define CONFIG_VP9_HIGHBITDEPTH 0
|
||||
%define CONFIG_EXPERIMENTAL 0
|
||||
%define CONFIG_SIZE_LIMIT 1
|
||||
%define CONFIG_SPATIAL_SVC 0
|
||||
%define CONFIG_FP_MB_STATS 0
|
||||
%define CONFIG_EMULATE_HARDWARE 0
|
|
@ -0,0 +1,10 @@
|
|||
/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */
|
||||
/* */
|
||||
/* Use of this source code is governed by a BSD-style license */
|
||||
/* that can be found in the LICENSE file in the root of the source */
|
||||
/* tree. An additional intellectual property rights grant can be found */
|
||||
/* in the file PATENTS. All contributing project authors may */
|
||||
/* be found in the AUTHORS file in the root of the source tree. */
|
||||
#include "vpx/vpx_codec.h"
|
||||
static const char* const cfg = "--target=x86_64-win64-vs12 --enable-external-build --disable-examples --disable-install-docs --disable-unit-tests --enable-multi-res-encoding --size-limit=8192x4608 --enable-pic --enable-error-concealment --enable-postproc --enable-vp9-postproc --as=yasm";
|
||||
const char *vpx_codec_build_config(void) {return cfg;}
|
|
@ -34,7 +34,6 @@
|
|||
#define HAVE_STDINT_H 0
|
||||
#define HAVE_PTHREAD_H 0
|
||||
#define HAVE_SYS_MMAN_H 0
|
||||
#define HAVE_UNISTD_H 0
|
||||
#define CONFIG_DEPENDENCY_TRACKING 1
|
||||
#define CONFIG_EXTERNAL_BUILD 1
|
||||
#define CONFIG_INSTALL_DOCS 0
|
||||
|
@ -48,7 +47,7 @@
|
|||
#define CONFIG_RVCT 0
|
||||
#define CONFIG_GCC 0
|
||||
#define CONFIG_MSVS 1
|
||||
#define CONFIG_PIC 0
|
||||
#define CONFIG_PIC 1
|
||||
#define CONFIG_BIG_ENDIAN 0
|
||||
#define CONFIG_CODEC_SRCS 0
|
||||
#define CONFIG_DEBUG_LIBS 0
|
||||
|
@ -56,7 +55,7 @@
|
|||
#define CONFIG_DC_RECON 0
|
||||
#define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
#define CONFIG_POSTPROC 1
|
||||
#define CONFIG_VP9_POSTPROC 0
|
||||
#define CONFIG_VP9_POSTPROC 1
|
||||
#define CONFIG_MULTITHREAD 1
|
||||
#define CONFIG_INTERNAL_STATS 0
|
||||
#define CONFIG_VP8_ENCODER 1
|
||||
|
@ -71,13 +70,13 @@
|
|||
#define CONFIG_SPATIAL_RESAMPLING 1
|
||||
#define CONFIG_REALTIME_ONLY 0
|
||||
#define CONFIG_ONTHEFLY_BITPACKING 0
|
||||
#define CONFIG_ERROR_CONCEALMENT 0
|
||||
#define CONFIG_ERROR_CONCEALMENT 1
|
||||
#define CONFIG_SHARED 0
|
||||
#define CONFIG_STATIC 1
|
||||
#define CONFIG_SMALL 0
|
||||
#define CONFIG_POSTPROC_VISUALIZER 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
#define CONFIG_UNIT_TESTS 1
|
||||
#define CONFIG_UNIT_TESTS 0
|
||||
#define CONFIG_WEBM_IO 1
|
||||
#define CONFIG_LIBYUV 1
|
||||
#define CONFIG_DECODE_PERF_TESTS 0
|
|
@ -1,32 +0,0 @@
|
|||
From: Jacek Caban <jacek@codeweavers.com>
|
||||
Don't use pthread for libvpx in mingw builds.
|
||||
|
||||
|
||||
diff --git a/media/libvpx/vpx_config_x86-win32-gcc.h b/media/libvpx/vpx_config_x86-win32-gcc.h
|
||||
index 5bc3efb..e60f84d 100644
|
||||
--- a/media/libvpx/vpx_config_x86-win32-gcc.h
|
||||
+++ b/media/libvpx/vpx_config_x86-win32-gcc.h
|
||||
@@ -32,7 +32,8 @@
|
||||
#define HAVE_AVX2 1
|
||||
#define HAVE_VPX_PORTS 1
|
||||
#define HAVE_STDINT_H 1
|
||||
-#define HAVE_PTHREAD_H 1
|
||||
+#undef HAVE_PTHREAD_H
|
||||
+#define HAVE_PTHREAD_H 0
|
||||
#define HAVE_SYS_MMAN_H 1
|
||||
#define HAVE_UNISTD_H 1
|
||||
#define CONFIG_DEPENDENCY_TRACKING 1
|
||||
diff --git a/media/libvpx/vpx_config_x86_64-win64-gcc.h b/media/libvpx/vpx_config_x86_64-win64-gcc.h
|
||||
index 4ff4339..b056a0e 100644
|
||||
--- a/media/libvpx/vpx_config_x86_64-win64-gcc.h
|
||||
+++ b/media/libvpx/vpx_config_x86_64-win64-gcc.h
|
||||
@@ -32,7 +32,8 @@
|
||||
#define HAVE_AVX2 1
|
||||
#define HAVE_VPX_PORTS 1
|
||||
#define HAVE_STDINT_H 1
|
||||
-#define HAVE_PTHREAD_H 1
|
||||
+#undef HAVE_PTHREAD_H
|
||||
+#define HAVE_PTHREAD_H 0
|
||||
#define HAVE_SYS_MMAN_H 1
|
||||
#define HAVE_UNISTD_H 1
|
||||
#define CONFIG_DEPENDENCY_TRACKING 1
|
|
@ -0,0 +1,275 @@
|
|||
#!/bin/bash -e
|
||||
#
|
||||
# Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
# Modified from chromium/src/third_party/libvpx/generate_gni.sh
|
||||
|
||||
# This script is used to generate sources.mozbuild and files in the
|
||||
# config/platform directories needed to build libvpx.
|
||||
# Every time libvpx source code is updated just run this script.
|
||||
#
|
||||
# Usage:
|
||||
# $ ./generate_sources_mozbuild.sh
|
||||
|
||||
export LC_ALL=C
|
||||
BASE_DIR=$(pwd)
|
||||
LIBVPX_SRC_DIR="libvpx"
|
||||
LIBVPX_CONFIG_DIR="config"
|
||||
|
||||
# Print license header.
|
||||
# $1 - Output base name
|
||||
function write_license {
|
||||
echo "# This file is generated. Do not edit." >> $1
|
||||
echo "" >> $1
|
||||
}
|
||||
|
||||
# Search for source files with the same basename in vp8, vp9, and vpx_dsp. The
|
||||
# build does not support duplicate file names.
|
||||
function find_duplicates {
|
||||
local readonly duplicate_file_names=$(find \
|
||||
$BASE_DIR/$LIBVPX_SRC_DIR/vp8 \
|
||||
$BASE_DIR/$LIBVPX_SRC_DIR/vp9 \
|
||||
$BASE_DIR/$LIBVPX_SRC_DIR/vpx_dsp \
|
||||
-type f -name \*.c | xargs -I {} basename {} | sort | uniq -d \
|
||||
)
|
||||
|
||||
if [ -n "${duplicate_file_names}" ]; then
|
||||
echo "ERROR: DUPLICATE FILES FOUND"
|
||||
for file in ${duplicate_file_names}; do
|
||||
find \
|
||||
$BASE_DIR/$LIBVPX_SRC_DIR/vp8 \
|
||||
$BASE_DIR/$LIBVPX_SRC_DIR/vp9 \
|
||||
$BASE_DIR/$LIBVPX_SRC_DIR/vpx_dsp \
|
||||
-name $file
|
||||
done
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Generate sources.mozbuild with a list of source files.
|
||||
# $1 - Array name for file list. This is processed with 'declare' below to
|
||||
# regenerate the array locally.
|
||||
# $2 - Variable name.
|
||||
# $3 - Output file.
|
||||
function write_sources {
|
||||
# Convert the first argument back in to an array.
|
||||
declare -a file_list=("${!1}")
|
||||
|
||||
echo " '$2': [" >> "$3"
|
||||
for f in $file_list
|
||||
do
|
||||
echo " 'libvpx/$f'," >> "$3"
|
||||
done
|
||||
echo "]," >> "$3"
|
||||
}
|
||||
|
||||
# Convert a list of source files into sources.mozbuild.
|
||||
# $1 - Input file.
|
||||
# $2 - Output prefix.
|
||||
function convert_srcs_to_project_files {
|
||||
# Do the following here:
|
||||
# 1. Filter .c, .h, .s, .S and .asm files.
|
||||
# 3. Convert .asm.s to .asm because moz.build will do the conversion.
|
||||
|
||||
local source_list=$(grep -E '(\.c|\.h|\.S|\.s|\.asm)$' $1)
|
||||
|
||||
# Remove vpx_config.c.
|
||||
source_list=$(echo "$source_list" | grep -v 'vpx_config\.c')
|
||||
|
||||
# The actual ARM files end in .asm. We have rules to translate them to .S
|
||||
source_list=$(echo "$source_list" | sed s/\.asm\.s$/.asm/)
|
||||
|
||||
# Exports - everything in vpx, vpx_mem, vpx_ports, vpx_scale
|
||||
local exports_list=$(echo "$source_list" | \
|
||||
egrep '^(vpx|vpx_mem|vpx_ports|vpx_scale)/.*h$')
|
||||
# but not anything in one level down, like 'internal'
|
||||
exports_list=$(echo "$exports_list" | egrep -v '/(internal|src)/')
|
||||
# or any of the other internal-ish header files.
|
||||
exports_list=$(echo "$exports_list" | egrep -v '/(emmintrin_compat.h|mem_.*|msvc.h|vpx_once.h)$')
|
||||
|
||||
# Remove these files from the main list.
|
||||
source_list=$(comm -23 <(echo "$source_list") <(echo "$exports_list"))
|
||||
|
||||
# Write a single file that includes all source files for all archs.
|
||||
local c_sources=$(echo "$source_list" | egrep '.(asm|c)$')
|
||||
local exports_sources=$(echo "$exports_list" | egrep '.h$')
|
||||
|
||||
write_sources exports_sources ${2}_EXPORTS "$BASE_DIR/sources.mozbuild"
|
||||
write_sources c_sources ${2}_SOURCES "$BASE_DIR/sources.mozbuild"
|
||||
}
|
||||
|
||||
# Clean files from previous make.
|
||||
function make_clean {
|
||||
make clean > /dev/null
|
||||
rm -f libvpx_srcs.txt
|
||||
}
|
||||
|
||||
# Print the configuration.
|
||||
# $1 - Header file directory.
|
||||
function print_config {
|
||||
$BASE_DIR/lint_config.sh -p \
|
||||
-h $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vpx_config.h \
|
||||
-a $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vpx_config.asm
|
||||
}
|
||||
|
||||
# Generate *_rtcd.h files.
|
||||
# $1 - Header file directory.
|
||||
# $2 - Architecture.
|
||||
# $3 - Optional - any additional arguments to pass through.
|
||||
function gen_rtcd_header {
|
||||
echo "Generate $LIBVPX_CONFIG_DIR/$1/*_rtcd.h files."
|
||||
|
||||
rm -rf $BASE_DIR/$TEMP_DIR/libvpx.config
|
||||
$BASE_DIR/lint_config.sh -p \
|
||||
-h $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vpx_config.h \
|
||||
-a $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vpx_config.asm \
|
||||
-o $BASE_DIR/$TEMP_DIR/libvpx.config
|
||||
|
||||
$BASE_DIR/$LIBVPX_SRC_DIR/build/make/rtcd.pl \
|
||||
--arch=$2 \
|
||||
--sym=vp8_rtcd $DISABLE_AVX $3 \
|
||||
--config=$BASE_DIR/$TEMP_DIR/libvpx.config \
|
||||
$BASE_DIR/$LIBVPX_SRC_DIR/vp8/common/rtcd_defs.pl \
|
||||
> $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vp8_rtcd.h
|
||||
|
||||
$BASE_DIR/$LIBVPX_SRC_DIR/build/make/rtcd.pl \
|
||||
--arch=$2 \
|
||||
--sym=vp9_rtcd $DISABLE_AVX $3 \
|
||||
--config=$BASE_DIR/$TEMP_DIR/libvpx.config \
|
||||
$BASE_DIR/$LIBVPX_SRC_DIR/vp9/common/vp9_rtcd_defs.pl \
|
||||
> $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vp9_rtcd.h
|
||||
|
||||
$BASE_DIR/$LIBVPX_SRC_DIR/build/make/rtcd.pl \
|
||||
--arch=$2 \
|
||||
--sym=vpx_scale_rtcd $DISABLE_AVX $3 \
|
||||
--config=$BASE_DIR/$TEMP_DIR/libvpx.config \
|
||||
$BASE_DIR/$LIBVPX_SRC_DIR/vpx_scale/vpx_scale_rtcd.pl \
|
||||
> $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vpx_scale_rtcd.h
|
||||
|
||||
$BASE_DIR/$LIBVPX_SRC_DIR/build/make/rtcd.pl \
|
||||
--arch=$2 \
|
||||
--sym=vpx_dsp_rtcd $DISABLE_AVX $3 \
|
||||
--config=$BASE_DIR/$TEMP_DIR/libvpx.config \
|
||||
$BASE_DIR/$LIBVPX_SRC_DIR/vpx_dsp/vpx_dsp_rtcd_defs.pl \
|
||||
> $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vpx_dsp_rtcd.h
|
||||
|
||||
rm -rf $BASE_DIR/$TEMP_DIR/libvpx.config
|
||||
}
|
||||
|
||||
# Generate Config files. "--enable-external-build" must be set to skip
|
||||
# detection of capabilities on specific targets.
|
||||
# $1 - Header file directory.
|
||||
# $2 - Config command line.
|
||||
function gen_config_files {
|
||||
./configure $2 > /dev/null
|
||||
|
||||
# Disable HAVE_UNISTD_H.
|
||||
( echo '/HAVE_UNISTD_H'; echo 'd' ; echo 'w' ; echo 'q' ) | ed -s vpx_config.h
|
||||
|
||||
local ASM_CONV=ads2gas.pl
|
||||
|
||||
# Generate vpx_config.asm.
|
||||
if [[ "$1" == *x64* ]] || [[ "$1" == *ia32* ]]; then
|
||||
egrep "#define [A-Z0-9_]+ [01]" vpx_config.h | awk '{print "%define " $2 " " $3}' > vpx_config.asm
|
||||
else
|
||||
egrep "#define [A-Z0-9_]+ [01]" vpx_config.h | awk '{print $2 " EQU " $3}' | perl $BASE_DIR/$LIBVPX_SRC_DIR/build/make/$ASM_CONV > vpx_config.asm
|
||||
fi
|
||||
|
||||
cp vpx_config.* $BASE_DIR/$LIBVPX_CONFIG_DIR/$1
|
||||
make_clean
|
||||
rm -rf vpx_config.*
|
||||
}
|
||||
|
||||
find_duplicates
|
||||
|
||||
echo "Create temporary directory."
|
||||
TEMP_DIR="$LIBVPX_SRC_DIR.temp"
|
||||
rm -rf $TEMP_DIR
|
||||
cp -R $LIBVPX_SRC_DIR $TEMP_DIR
|
||||
cd $TEMP_DIR
|
||||
|
||||
echo "Generate config files."
|
||||
all_platforms="--enable-external-build --disable-examples --disable-install-docs --disable-unit-tests"
|
||||
all_platforms="${all_platforms} --enable-multi-res-encoding --size-limit=8192x4608 --enable-pic"
|
||||
all_platforms="${all_platforms} --enable-error-concealment"
|
||||
x86_platforms="--enable-postproc --enable-vp9-postproc --as=yasm"
|
||||
arm_platforms="--enable-runtime-cpu-detect --enable-realtime-only"
|
||||
gen_config_files linux/x64 "--target=x86_64-linux-gcc ${all_platforms} ${x86_platforms}"
|
||||
gen_config_files linux/ia32 "--target=x86-linux-gcc --disable-use-x86inc ${all_platforms} ${x86_platforms}"
|
||||
gen_config_files mac/x64 "--target=x86_64-darwin9-gcc ${all_platforms} ${x86_platforms}"
|
||||
gen_config_files mac/ia32 "--target=x86-darwin9-gcc --disable-use-x86inc ${all_platforms} ${x86_platforms}"
|
||||
gen_config_files win/x64 "--target=x86_64-win64-vs12 ${all_platforms} ${x86_platforms}"
|
||||
gen_config_files win/ia32 "--target=x86-win32-gcc --disable-use-x86inc ${all_platforms} ${x86_platforms}"
|
||||
|
||||
gen_config_files linux/arm "--target=armv7-linux-gcc ${all_platforms} ${arm_platforms}"
|
||||
|
||||
gen_config_files generic "--target=generic-gnu ${all_platforms}"
|
||||
|
||||
echo "Remove temporary directory."
|
||||
cd $BASE_DIR
|
||||
rm -rf $TEMP_DIR
|
||||
|
||||
echo "Create temporary directory."
|
||||
TEMP_DIR="$LIBVPX_SRC_DIR.temp"
|
||||
rm -rf $TEMP_DIR
|
||||
cp -R $LIBVPX_SRC_DIR $TEMP_DIR
|
||||
cd $TEMP_DIR
|
||||
|
||||
gen_rtcd_header linux/x64 x86_64
|
||||
gen_rtcd_header linux/ia32 x86
|
||||
gen_rtcd_header mac/x64 x86_64
|
||||
gen_rtcd_header mac/ia32 x86
|
||||
gen_rtcd_header win/x64 x86_64
|
||||
gen_rtcd_header win/ia32 x86
|
||||
|
||||
gen_rtcd_header linux/arm armv7
|
||||
|
||||
gen_rtcd_header generic generic
|
||||
|
||||
echo "Prepare Makefile."
|
||||
./configure --target=generic-gnu > /dev/null
|
||||
make_clean
|
||||
|
||||
# Remove existing source files.
|
||||
rm -rf $BASE_DIR/sources.mozbuild
|
||||
write_license $BASE_DIR/sources.mozbuild
|
||||
echo "files = {" >> $BASE_DIR/sources.mozbuild
|
||||
|
||||
echo "Generate X86_64 source list."
|
||||
config=$(print_config linux/x64)
|
||||
make_clean
|
||||
make libvpx_srcs.txt target=libs $config > /dev/null
|
||||
convert_srcs_to_project_files libvpx_srcs.txt X64
|
||||
|
||||
# Copy vpx_version.h once. The file is the same for all platforms.
|
||||
cp vpx_version.h $BASE_DIR/$LIBVPX_CONFIG_DIR
|
||||
|
||||
echo "Generate IA32 source list."
|
||||
config=$(print_config linux/ia32)
|
||||
make_clean
|
||||
make libvpx_srcs.txt target=libs $config > /dev/null
|
||||
convert_srcs_to_project_files libvpx_srcs.txt IA32
|
||||
|
||||
echo "Generate ARM source list."
|
||||
config=$(print_config linux/arm)
|
||||
make_clean
|
||||
make libvpx_srcs.txt target=libs $config > /dev/null
|
||||
convert_srcs_to_project_files libvpx_srcs.txt ARM
|
||||
|
||||
echo "Generate generic source list."
|
||||
config=$(print_config generic)
|
||||
make_clean
|
||||
make libvpx_srcs.txt target=libs $config > /dev/null
|
||||
convert_srcs_to_project_files libvpx_srcs.txt GENERIC
|
||||
|
||||
echo "}" >> $BASE_DIR/sources.mozbuild
|
||||
|
||||
echo "Remove temporary directory."
|
||||
cd $BASE_DIR
|
||||
rm -rf $TEMP_DIR
|
||||
|
||||
cd $BASE_DIR/$LIBVPX_SRC_DIR
|
||||
|
||||
cd $BASE_DIR
|
|
@ -5,9 +5,9 @@ Bug 1263384: validate input frames against configured resolution in vp8 r=rillia
|
|||
|
||||
MozReview-Commit-ID: BxDCnJe0mzs
|
||||
|
||||
diff --git a/media/libvpx/vp8/vp8_cx_iface.c b/media/libvpx/vp8/vp8_cx_iface.c
|
||||
--- a/media/libvpx/vp8/vp8_cx_iface.c
|
||||
+++ b/media/libvpx/vp8/vp8_cx_iface.c
|
||||
diff --git a/media/libvpx/libvpx/vp8/vp8_cx_iface.c b/media/libvpx/libvpx/vp8/vp8_cx_iface.c
|
||||
--- a/media/libvpx/libvpx/vp8/vp8_cx_iface.c
|
||||
+++ b/media/libvpx/libvpx/vp8/vp8_cx_iface.c
|
||||
@@ -916,21 +916,30 @@ static vpx_codec_err_t vp8e_encode(vpx_c
|
||||
/* vp8 use 10,000,000 ticks/second as time stamp */
|
||||
dst_time_stamp = pts * 10000000 * ctx->cfg.g_timebase.num / ctx->cfg.g_timebase.den;
|
||||
|
|
|
@ -3,10 +3,10 @@
|
|||
# Parent 87841f3bfc9d99a37e31cd43b2e2d03c325af84f
|
||||
Bug 1315288: Add input checks for VP9 r=rillian
|
||||
|
||||
diff --git a/media/libvpx/vp8/vp8_cx_iface.c b/media/libvpx/vp8/vp8_cx_iface.c
|
||||
--- a/media/libvpx/vp8/vp8_cx_iface.c
|
||||
+++ b/media/libvpx/vp8/vp8_cx_iface.c
|
||||
@@ -917,17 +917,17 @@ static vpx_codec_err_t vp8e_encode(vpx_c
|
||||
diff --git a/media/libvpx/libvpx/vp8/vp8_cx_iface.c b/media/libvpx/libvpx/vp8/vp8_cx_iface.c
|
||||
--- a/media/libvpx/libvpx/vp8/vp8_cx_iface.c
|
||||
+++ b/media/libvpx/libvpx/vp8/vp8_cx_iface.c
|
||||
@@ -917,17 +917,17 @@ static vpx_codec_err_t vp8e_encode(vpx_codec_alg_priv_t *ctx,
|
||||
dst_time_stamp = pts * 10000000 * ctx->cfg.g_timebase.num / ctx->cfg.g_timebase.den;
|
||||
dst_end_time_stamp = (pts + duration) * 10000000 * ctx->cfg.g_timebase.num / ctx->cfg.g_timebase.den;
|
||||
|
||||
|
@ -22,12 +22,12 @@ diff --git a/media/libvpx/vp8/vp8_cx_iface.c b/media/libvpx/vp8/vp8_cx_iface.c
|
|||
ctx->base.err_detail = "Invalid input frame resolution";
|
||||
res = VPX_CODEC_INVALID_PARAM;
|
||||
} else {
|
||||
|
||||
if (vp8_receive_raw_frame(ctx->cpi, ctx->next_frame_flag | lib_flags,
|
||||
&sd, dst_time_stamp, dst_end_time_stamp))
|
||||
{
|
||||
diff --git a/media/libvpx/vp9/vp9_cx_iface.c b/media/libvpx/vp9/vp9_cx_iface.c
|
||||
--- a/media/libvpx/vp9/vp9_cx_iface.c
|
||||
+++ b/media/libvpx/vp9/vp9_cx_iface.c
|
||||
diff --git a/media/libvpx/libvpx/vp9/vp9_cx_iface.c b/media/libvpx/libvpx/vp9/vp9_cx_iface.c
|
||||
--- a/media/libvpx/libvpx/vp9/vp9_cx_iface.c
|
||||
+++ b/media/libvpx/libvpx/vp9/vp9_cx_iface.c
|
||||
@@ -989,21 +989,29 @@ static vpx_codec_err_t encoder_encode(vp
|
||||
|
||||
// Set up internal flags
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
Adrian Grange <agrange@google.com>
|
||||
Alex Converse <aconverse@google.com> <alex.converse@gmail.com>
|
||||
Alexis Ballier <aballier@gentoo.org> <alexis.ballier@gmail.com>
|
||||
Alpha Lam <hclam@google.com> <hclam@chromium.org>
|
||||
Deb Mukherjee <debargha@google.com>
|
||||
Erik Niemeyer <erik.a.niemeyer@intel.com> <erik.a.niemeyer@gmail.com>
|
||||
Guillaume Martres <gmartres@google.com> <smarter3@gmail.com>
|
||||
Hangyu Kuang <hkuang@google.com>
|
||||
Jim Bankoski <jimbankoski@google.com>
|
||||
Johann Koenig <johannkoenig@google.com>
|
||||
Johann Koenig <johannkoenig@google.com> <johann.koenig@duck.com>
|
||||
John Koleszar <jkoleszar@google.com>
|
||||
Joshua Litt <joshualitt@google.com> <joshualitt@chromium.org>
|
||||
Marco Paniconi <marpan@google.com>
|
||||
Marco Paniconi <marpan@google.com> <marpan@chromium.org>
|
||||
Pascal Massimino <pascal.massimino@gmail.com>
|
||||
Paul Wilkins <paulwilkins@google.com>
|
||||
Ralph Giles <giles@xiph.org> <giles@entropywave.com>
|
||||
Ralph Giles <giles@xiph.org> <giles@mozilla.com>
|
||||
Sami Pietilä <samipietila@google.com>
|
||||
Tamar Levy <tamar.levy@intel.com>
|
||||
Tamar Levy <tamar.levy@intel.com> <levytamar82@gmail.com>
|
||||
Tero Rintaluoma <teror@google.com> <tero.rintaluoma@on2.com>
|
||||
Timothy B. Terriberry <tterribe@xiph.org> Tim Terriberry <tterriberry@mozilla.com>
|
||||
Tom Finegan <tomfinegan@google.com>
|
||||
Yaowu Xu <yaowu@google.com> <yaowu@xuyaowu.com>
|
|
@ -0,0 +1,125 @@
|
|||
# This file is automatically generated from the git commit history
|
||||
# by tools/gen_authors.sh.
|
||||
|
||||
Aaron Watry <awatry@gmail.com>
|
||||
Abo Talib Mahfoodh <ab.mahfoodh@gmail.com>
|
||||
Adam Xu <adam@xuyaowu.com>
|
||||
Adrian Grange <agrange@google.com>
|
||||
Ahmad Sharif <asharif@google.com>
|
||||
Alexander Voronov <avoronov@graphics.cs.msu.ru>
|
||||
Alex Converse <aconverse@google.com>
|
||||
Alexis Ballier <aballier@gentoo.org>
|
||||
Alok Ahuja <waveletcoeff@gmail.com>
|
||||
Alpha Lam <hclam@google.com>
|
||||
A.Mahfoodh <ab.mahfoodh@gmail.com>
|
||||
Ami Fischman <fischman@chromium.org>
|
||||
Andoni Morales Alastruey <ylatuya@gmail.com>
|
||||
Andres Mejia <mcitadel@gmail.com>
|
||||
Andrew Russell <anrussell@google.com>
|
||||
Aron Rosenberg <arosenberg@logitech.com>
|
||||
Attila Nagy <attilanagy@google.com>
|
||||
changjun.yang <changjun.yang@intel.com>
|
||||
Charles 'Buck' Krasic <ckrasic@google.com>
|
||||
chm <chm@rock-chips.com>
|
||||
Christian Duvivier <cduvivier@google.com>
|
||||
Daniel Kang <ddkang@google.com>
|
||||
Deb Mukherjee <debargha@google.com>
|
||||
Dim Temp <dimtemp0@gmail.com>
|
||||
Dmitry Kovalev <dkovalev@google.com>
|
||||
Dragan Mrdjan <dmrdjan@mips.com>
|
||||
Ehsan Akhgari <ehsan.akhgari@gmail.com>
|
||||
Erik Niemeyer <erik.a.niemeyer@intel.com>
|
||||
Fabio Pedretti <fabio.ped@libero.it>
|
||||
Frank Galligan <fgalligan@google.com>
|
||||
Fredrik Söderquist <fs@opera.com>
|
||||
Fritz Koenig <frkoenig@google.com>
|
||||
Gaute Strokkenes <gaute.strokkenes@broadcom.com>
|
||||
Giuseppe Scrivano <gscrivano@gnu.org>
|
||||
Gordana Cmiljanovic <gordana.cmiljanovic@imgtec.com>
|
||||
Guillaume Martres <gmartres@google.com>
|
||||
Guillermo Ballester Valor <gbvalor@gmail.com>
|
||||
Hangyu Kuang <hkuang@google.com>
|
||||
Hanno Böck <hanno@hboeck.de>
|
||||
Henrik Lundin <hlundin@google.com>
|
||||
Hui Su <huisu@google.com>
|
||||
Ivan Maltz <ivanmaltz@google.com>
|
||||
Jacek Caban <cjacek@gmail.com>
|
||||
JackyChen <jackychen@google.com>
|
||||
James Berry <jamesberry@google.com>
|
||||
James Yu <james.yu@linaro.org>
|
||||
James Zern <jzern@google.com>
|
||||
Jan Gerber <j@mailb.org>
|
||||
Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
Janne Salonen <jsalonen@google.com>
|
||||
Jeff Faust <jfaust@google.com>
|
||||
Jeff Muizelaar <jmuizelaar@mozilla.com>
|
||||
Jeff Petkau <jpet@chromium.org>
|
||||
Jia Jia <jia.jia@linaro.org>
|
||||
Jim Bankoski <jimbankoski@google.com>
|
||||
Jingning Han <jingning@google.com>
|
||||
Joey Parrish <joeyparrish@google.com>
|
||||
Johann Koenig <johannkoenig@google.com>
|
||||
John Koleszar <jkoleszar@google.com>
|
||||
John Stark <jhnstrk@gmail.com>
|
||||
Joshua Bleecher Snyder <josh@treelinelabs.com>
|
||||
Joshua Litt <joshualitt@google.com>
|
||||
Justin Clift <justin@salasaga.org>
|
||||
Justin Lebar <justin.lebar@gmail.com>
|
||||
KO Myung-Hun <komh@chollian.net>
|
||||
Lawrence Velázquez <larryv@macports.org>
|
||||
Lou Quillio <louquillio@google.com>
|
||||
Luca Barbato <lu_zero@gentoo.org>
|
||||
Makoto Kato <makoto.kt@gmail.com>
|
||||
Mans Rullgard <mans@mansr.com>
|
||||
Marco Paniconi <marpan@google.com>
|
||||
Mark Mentovai <mark@chromium.org>
|
||||
Martin Ettl <ettl.martin78@googlemail.com>
|
||||
Martin Storsjo <martin@martin.st>
|
||||
Matthew Heaney <matthewjheaney@chromium.org>
|
||||
Michael Kohler <michaelkohler@live.com>
|
||||
Mike Frysinger <vapier@chromium.org>
|
||||
Mike Hommey <mhommey@mozilla.com>
|
||||
Mikhal Shemer <mikhal@google.com>
|
||||
Minghai Shang <minghai@google.com>
|
||||
Morton Jonuschat <yabawock@gmail.com>
|
||||
Parag Salasakar <img.mips1@gmail.com>
|
||||
Pascal Massimino <pascal.massimino@gmail.com>
|
||||
Patrik Westin <patrik.westin@gmail.com>
|
||||
Paul Wilkins <paulwilkins@google.com>
|
||||
Pavol Rusnak <stick@gk2.sk>
|
||||
Paweł Hajdan <phajdan@google.com>
|
||||
Pengchong Jin <pengchong@google.com>
|
||||
Peter de Rivaz <peter.derivaz@gmail.com>
|
||||
Philip Jägenstedt <philipj@opera.com>
|
||||
Priit Laes <plaes@plaes.org>
|
||||
Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
|
||||
Rafaël Carré <funman@videolan.org>
|
||||
Ralph Giles <giles@xiph.org>
|
||||
Rob Bradford <rob@linux.intel.com>
|
||||
Ronald S. Bultje <rbultje@google.com>
|
||||
Rui Ueyama <ruiu@google.com>
|
||||
Sami Pietilä <samipietila@google.com>
|
||||
Scott Graham <scottmg@chromium.org>
|
||||
Scott LaVarnway <slavarnway@google.com>
|
||||
Sean McGovern <gseanmcg@gmail.com>
|
||||
Sergey Ulanov <sergeyu@chromium.org>
|
||||
Shimon Doodkin <helpmepro1@gmail.com>
|
||||
Stefan Holmer <holmer@google.com>
|
||||
Suman Sunkara <sunkaras@google.com>
|
||||
Taekhyun Kim <takim@nvidia.com>
|
||||
Takanori MATSUURA <t.matsuu@gmail.com>
|
||||
Tamar Levy <tamar.levy@intel.com>
|
||||
Tao Bai <michaelbai@chromium.org>
|
||||
Tero Rintaluoma <teror@google.com>
|
||||
Thijs Vermeir <thijsvermeir@gmail.com>
|
||||
Tim Kopp <tkopp@google.com>
|
||||
Timothy B. Terriberry <tterribe@xiph.org>
|
||||
Tom Finegan <tomfinegan@google.com>
|
||||
Vignesh Venkatasubramanian <vigneshv@google.com>
|
||||
Yaowu Xu <yaowu@google.com>
|
||||
Yongzhe Wang <yongzhe@google.com>
|
||||
Yunqing Wang <yunqingwang@google.com>
|
||||
Zoe Liu <zoeliu@google.com>
|
||||
Google Inc.
|
||||
The Mozilla Foundation
|
||||
The Xiph.Org Foundation
|
|
@ -0,0 +1,612 @@
|
|||
xxxx-yy-zz v1.4.0 "Changes for next release"
|
||||
vpxenc is changed to use VP9 by default.
|
||||
Encoder controls added for 1 pass SVC.
|
||||
Decoder control to toggle on/off loopfilter.
|
||||
|
||||
2015-04-03 v1.4.0 "Indian Runner Duck"
|
||||
This release includes significant improvements to the VP9 codec.
|
||||
|
||||
- Upgrading:
|
||||
This release is ABI incompatible with 1.3.0. It drops the compatibility
|
||||
layer, requiring VPX_IMG_FMT_* instead of IMG_FMT_*, and adds several codec
|
||||
controls for VP9.
|
||||
|
||||
- Enhancements:
|
||||
Faster VP9 encoding and decoding
|
||||
Multithreaded VP9 decoding (tile and frame-based)
|
||||
Multithreaded VP9 encoding - on by default
|
||||
YUV 4:2:2 and 4:4:4 support in VP9
|
||||
10 and 12bit support in VP9
|
||||
64bit ARM support by replacing ARM assembly with intrinsics
|
||||
|
||||
- Bug Fixes:
|
||||
Fixes a VP9 bitstream issue in Profile 1. This only affected non-YUV 4:2:0
|
||||
files.
|
||||
|
||||
- Known Issues:
|
||||
Frame Parallel decoding fails for segmented and non-420 files.
|
||||
|
||||
2013-11-15 v1.3.0 "Forest"
|
||||
This release introduces the VP9 codec in a backward-compatible way.
|
||||
All existing users of VP8 can continue to use the library without
|
||||
modification. However, some VP8 options do not map to VP9 in the same manner.
|
||||
|
||||
The VP9 encoder in this release is not feature complete. Users interested in
|
||||
the encoder are advised to use the git master branch and discuss issues on
|
||||
libvpx mailing lists.
|
||||
|
||||
- Upgrading:
|
||||
This release is ABI and API compatible with Duclair (v1.0.0). Users
|
||||
of older releases should refer to the Upgrading notes in this document
|
||||
for that release.
|
||||
|
||||
- Enhancements:
|
||||
Get rid of bashisms in the main build scripts
|
||||
Added usage info on command line options
|
||||
Add lossless compression mode
|
||||
Dll build of libvpx
|
||||
Add additional Mac OS X targets: 10.7, 10.8 and 10.9 (darwin11-13)
|
||||
Add option to disable documentation
|
||||
configure: add --enable-external-build support
|
||||
make: support V=1 as short form of verbose=yes
|
||||
configure: support mingw-w64
|
||||
configure: support hardfloat armv7 CHOSTS
|
||||
configure: add support for android x86
|
||||
Add estimated completion time to vpxenc
|
||||
Don't exit on decode errors in vpxenc
|
||||
vpxenc: support scaling prior to encoding
|
||||
vpxdec: support scaling output
|
||||
vpxenc: improve progress indicators with --skip
|
||||
msvs: Don't link to winmm.lib
|
||||
Add a new script for producing vcxproj files
|
||||
Produce Visual Studio 10 and 11 project files
|
||||
Produce Windows Phone project files
|
||||
msvs-build: use msbuild for vs >= 2005
|
||||
configure: default configure log to config.log
|
||||
Add encoding option --static-thresh
|
||||
|
||||
- Speed:
|
||||
Miscellaneous speed optimizations for VP8 and VP9.
|
||||
|
||||
- Quality:
|
||||
In general, quality is consistent with the Eider release.
|
||||
|
||||
- Bug Fixes:
|
||||
This release represents approximately a year of engineering effort,
|
||||
and contains multiple bug fixes. Please refer to git history for details.
|
||||
|
||||
|
||||
2012-12-21 v1.2.0
|
||||
This release acts as a checkpoint for a large amount of internal refactoring
|
||||
and testing. It also contains a number of small bugfixes, so all users are
|
||||
encouraged to upgrade.
|
||||
|
||||
- Upgrading:
|
||||
This release is ABI and API compatible with Duclair (v1.0.0). Users
|
||||
of older releases should refer to the Upgrading notes in this
|
||||
document for that release.
|
||||
|
||||
- Enhancements:
|
||||
VP8 optimizations for MIPS dspr2
|
||||
vpxenc: add -quiet option
|
||||
|
||||
- Speed:
|
||||
Encoder and decoder speed is consistent with the Eider release.
|
||||
|
||||
- Quality:
|
||||
In general, quality is consistent with the Eider release.
|
||||
|
||||
Minor tweaks to ARNR filtering
|
||||
Minor improvements to real time encoding with multiple temporal layers
|
||||
|
||||
- Bug Fixes:
|
||||
Fixes multithreaded encoder race condition in loopfilter
|
||||
Fixes multi-resolution threaded encoding
|
||||
Fix potential encoder dead-lock after picture resize
|
||||
|
||||
|
||||
2012-05-09 v1.1.0 "Eider"
|
||||
This introduces a number of enhancements, mostly focused on real-time
|
||||
encoding. In addition, it fixes a decoder bug (first introduced in
|
||||
Duclair) so all users of that release are encouraged to upgrade.
|
||||
|
||||
- Upgrading:
|
||||
This release is ABI and API compatible with Duclair (v1.0.0). Users
|
||||
of older releases should refer to the Upgrading notes in this
|
||||
document for that release.
|
||||
|
||||
This release introduces a new temporal denoiser, controlled by the
|
||||
VP8E_SET_NOISE_SENSITIVITY control. The temporal denoiser does not
|
||||
currently take a strength parameter, so the control is effectively
|
||||
a boolean - zero (off) or non-zero (on). For compatibility with
|
||||
existing applications, the values accepted are the same as those
|
||||
for the spatial denoiser (0-6). The temporal denoiser is enabled
|
||||
by default, and the older spatial denoiser may be restored by
|
||||
configuring with --disable-temporal-denoising. The temporal denoiser
|
||||
is more computationally intensive than the spatial one.
|
||||
|
||||
This release removes support for a legacy, decode only API that was
|
||||
supported, but deprecated, at the initial release of libvpx
|
||||
(v0.9.0). This is not expected to have any impact. If you are
|
||||
impacted, you can apply a reversion to commit 2bf8fb58 locally.
|
||||
Please update to the latest libvpx API if you are affected.
|
||||
|
||||
- Enhancements:
|
||||
Adds a motion compensated temporal denoiser to the encoder, which
|
||||
gives higher quality than the older spatial denoiser. (See above
|
||||
for notes on upgrading).
|
||||
|
||||
In addition, support for new compilers and platforms were added,
|
||||
including:
|
||||
improved support for XCode
|
||||
Android x86 NDK build
|
||||
OS/2 support
|
||||
SunCC support
|
||||
|
||||
Changing resolution with vpx_codec_enc_config_set() is now
|
||||
supported. Previously, reinitializing the codec was required to
|
||||
change the input resolution.
|
||||
|
||||
The vpxenc application has initial support for producing multiple
|
||||
encodes from the same input in one call. Resizing is not yet
|
||||
supported, but varying other codec parameters is. Use -- to
|
||||
delineate output streams. Options persist from one stream to the
|
||||
next.
|
||||
|
||||
Also, the vpxenc application will now use a keyframe interval of
|
||||
5 seconds by default. Use the --kf-max-dist option to override.
|
||||
|
||||
- Speed:
|
||||
Decoder performance improved 2.5% versus Duclair. Encoder speed is
|
||||
consistent with Duclair for most material. Two pass encoding of
|
||||
slideshow-like material will see significant improvements.
|
||||
|
||||
Large realtime encoding speed gains at a small quality expense are
|
||||
possible by configuring the on-the-fly bitpacking experiment with
|
||||
--enable-onthefly-bitpacking. Realtime encoder can be up to 13%
|
||||
faster (ARM) depending on the number of threads and bitrate
|
||||
settings. This technique sees constant gain over the 5-16 speed
|
||||
range. For VC style input the loss seen is up to 0.2dB. See commit
|
||||
52cf4dca for further details.
|
||||
|
||||
- Quality:
|
||||
On the whole, quality is consistent with the Duclair release. Some
|
||||
tweaks:
|
||||
|
||||
Reduced blockiness in easy sections by applying a penalty to
|
||||
intra modes.
|
||||
|
||||
Improved quality of static sections (like slideshows) with
|
||||
two pass encoding.
|
||||
|
||||
Improved keyframe sizing with multiple temporal layers
|
||||
|
||||
- Bug Fixes:
|
||||
Corrected alt-ref contribution to frame rate for visible updates
|
||||
to the alt-ref buffer. This affected applications making manual
|
||||
usage of the frame reference flags, or temporal layers.
|
||||
|
||||
Additional constraints were added to disable multi-frame quality
|
||||
enhancement (MFQE) in sections of the frame where there is motion.
|
||||
(#392)
|
||||
|
||||
Fixed corruption issues when vpx_codec_enc_config_set() was called
|
||||
with spatial resampling enabled.
|
||||
|
||||
Fixed a decoder error introduced in Duclair where the segmentation
|
||||
map was not being reinitialized on keyframes (#378)
|
||||
|
||||
|
||||
2012-01-27 v1.0.0 "Duclair"
|
||||
Our fourth named release, focused on performance and features related to
|
||||
real-time encoding. It also fixes a decoder crash bug introduced in
|
||||
v0.9.7, so all users of that release are encouraged to upgrade.
|
||||
|
||||
- Upgrading:
|
||||
This release is ABI incompatible with prior releases of libvpx, so the
|
||||
"major" version number has been bumped to 1. You must recompile your
|
||||
applications against the latest version of the libvpx headers. The
|
||||
API remains compatible, and this should not require code changes in most
|
||||
applications.
|
||||
|
||||
- Enhancements:
|
||||
This release introduces several substantial new features to the encoder,
|
||||
of particular interest to real time streaming applications.
|
||||
|
||||
Temporal scalability allows the encoder to produce a stream that can
|
||||
be decimated to different frame rates, with independent rate targetting
|
||||
for each substream.
|
||||
|
||||
Multiframe quality enhancement postprocessing can make visual quality
|
||||
more consistent in the presence of frames that are substantially
|
||||
different quality than the surrounding frames, as in the temporal
|
||||
scalability case and in some forced keyframe scenarios.
|
||||
|
||||
Multiple-resolution encoding support allows the encoding of the
|
||||
same content at different resolutions faster than encoding them
|
||||
separately.
|
||||
|
||||
- Speed:
|
||||
Optimization targets for this release included the decoder and the real-
|
||||
time modes of the encoder. Decoder speed on x86 has improved 10.5% with
|
||||
this release. Encoder improvements followed a curve where speeds 1-3
|
||||
improved 4.0%-1.5%, speeds 4-8 improved <1%, and speeds 9-16 improved
|
||||
1.5% to 10.5%, respectively. "Best" mode speed is consistent with the
|
||||
Cayuga release.
|
||||
|
||||
- Quality:
|
||||
Encoder quality in the single stream case is consistent with the Cayuga
|
||||
release.
|
||||
|
||||
- Bug Fixes:
|
||||
This release fixes an OOB read decoder crash bug present in v0.9.7
|
||||
related to the clamping of motion vectors in SPLITMV blocks. This
|
||||
behavior could be triggered by corrupt input or by starting
|
||||
decoding from a P-frame.
|
||||
|
||||
|
||||
2011-08-15 v0.9.7-p1 "Cayuga" patch 1
|
||||
This is an incremental bugfix release against Cayuga. All users of that
|
||||
release are strongly encouraged to upgrade.
|
||||
|
||||
- Fix potential OOB reads (cdae03a)
|
||||
|
||||
An unbounded out of bounds read was discovered when the
|
||||
decoder was requested to perform error concealment (new in
|
||||
Cayuga) given a frame with corrupt partition sizes.
|
||||
|
||||
A bounded out of bounds read was discovered affecting all
|
||||
versions of libvpx. Given an multipartition input frame that
|
||||
is truncated between the mode/mv partition and the first
|
||||
residiual paritition (in the block of partition offsets), up
|
||||
to 3 extra bytes could have been read from the source buffer.
|
||||
The code will not take any action regardless of the contents
|
||||
of these undefined bytes, as the truncated buffer is detected
|
||||
immediately following the read based on the calculated
|
||||
starting position of the coefficient partition.
|
||||
|
||||
- Fix potential error concealment crash when the very first frame
|
||||
is missing or corrupt (a609be5)
|
||||
|
||||
- Fix significant artifacts in error concealment (a4c2211, 99d870a)
|
||||
|
||||
- Revert 1-pass CBR rate control changes (e961317)
|
||||
Further testing showed this change produced undesirable visual
|
||||
artifacts, rolling back for now.
|
||||
|
||||
|
||||
2011-08-02 v0.9.7 "Cayuga"
|
||||
Our third named release, focused on a faster, higher quality, encoder.
|
||||
|
||||
- Upgrading:
|
||||
This release is backwards compatible with Aylesbury (v0.9.5) and
|
||||
Bali (v0.9.6). Users of older releases should refer to the Upgrading
|
||||
notes in this document for that release.
|
||||
|
||||
- Enhancements:
|
||||
Stereo 3D format support for vpxenc
|
||||
Runtime detection of available processor cores.
|
||||
Allow specifying --end-usage by enum name
|
||||
vpxdec: test for frame corruption
|
||||
vpxenc: add quantizer histogram display
|
||||
vpxenc: add rate histogram display
|
||||
Set VPX_FRAME_IS_DROPPABLE
|
||||
update configure for ios sdk 4.3
|
||||
Avoid text relocations in ARM vp8 decoder
|
||||
Generate a vpx.pc file for pkg-config.
|
||||
New ways of passing encoded data between encoder and decoder.
|
||||
|
||||
- Speed:
|
||||
This release includes across-the-board speed improvements to the
|
||||
encoder. On x86, these measure at approximately 11.5% in Best mode,
|
||||
21.5% in Good mode (speed 0), and 22.5% in Realtime mode (speed 6).
|
||||
On ARM Cortex A9 with Neon extensions, real-time encoding of video
|
||||
telephony content is 35% faster than Bali on single core and 48%
|
||||
faster on multi-core. On the NVidia Tegra2 platform, real time
|
||||
encoding is 40% faster than Bali.
|
||||
|
||||
Decoder speed was not a priority for this release, but improved
|
||||
approximately 8.4% on x86.
|
||||
|
||||
Reduce motion vector search on alt-ref frame.
|
||||
Encoder loopfilter running in its own thread
|
||||
Reworked loopfilter to precalculate more parameters
|
||||
SSE2/SSSE3 optimizations for build_predictors_mbuv{,_s}().
|
||||
Make hor UV predict ~2x faster (73 vs 132 cycles) using SSSE3.
|
||||
Removed redundant checks
|
||||
Reduced structure sizes
|
||||
utilize preload in ARMv6 MC/LPF/Copy routines
|
||||
ARM optimized quantization, dfct, variance, subtract
|
||||
Increase chrow row alignment to 16 bytes.
|
||||
disable trellis optimization for first pass
|
||||
Write SSSE3 sub-pixel filter function
|
||||
Improve SSE2 half-pixel filter funtions
|
||||
Add vp8_sub_pixel_variance16x8_ssse3 function
|
||||
Reduce unnecessary distortion computation
|
||||
Use diamond search to replace full search
|
||||
Preload reference area in sub-pixel motion search (real-time mode)
|
||||
|
||||
- Quality:
|
||||
This release focused primarily on one-pass use cases, including
|
||||
video conferencing. Low latency data rate control was significantly
|
||||
improved, improving streamability over bandwidth constrained links.
|
||||
Added support for error concealment, allowing frames to maintain
|
||||
visual quality in the presence of substantial packet loss.
|
||||
|
||||
Add rc_max_intra_bitrate_pct control
|
||||
Limit size of initial keyframe in one-pass.
|
||||
Improve framerate adaptation
|
||||
Improved 1-pass CBR rate control
|
||||
Improved KF insertion after fades to still.
|
||||
Improved key frame detection.
|
||||
Improved activity masking (lower PSNR impact for same SSIM boost)
|
||||
Improved interaction between GF and ARFs
|
||||
Adding error-concealment to the decoder.
|
||||
Adding support for independent partitions
|
||||
Adjusted rate-distortion constants
|
||||
|
||||
|
||||
- Bug Fixes:
|
||||
Removed firstpass motion map
|
||||
Fix parallel make install
|
||||
Fix multithreaded encoding for 1 MB wide frame
|
||||
Fixed iwalsh_neon build problems with RVDS4.1
|
||||
Fix semaphore emulation, spin-wait intrinsics on Windows
|
||||
Fix build with xcode4 and simplify GLOBAL.
|
||||
Mark ARM asm objects as allowing a non-executable stack.
|
||||
Fix vpxenc encoding incorrect webm file header on big endian
|
||||
|
||||
|
||||
2011-03-07 v0.9.6 "Bali"
|
||||
Our second named release, focused on a faster, higher quality, encoder.
|
||||
|
||||
- Upgrading:
|
||||
This release is backwards compatible with Aylesbury (v0.9.5). Users
|
||||
of older releases should refer to the Upgrading notes in this
|
||||
document for that release.
|
||||
|
||||
- Enhancements:
|
||||
vpxenc --psnr shows a summary when encode completes
|
||||
--tune=ssim option to enable activity masking
|
||||
improved postproc visualizations for development
|
||||
updated support for Apple iOS to SDK 4.2
|
||||
query decoder to determine which reference frames were updated
|
||||
implemented error tracking in the decoder
|
||||
fix pipe support on windows
|
||||
|
||||
- Speed:
|
||||
Primary focus was on good quality mode, speed 0. Average improvement
|
||||
on x86 about 40%, up to 100% on user-generated content at that speed.
|
||||
Best quality mode speed improved 35%, and realtime speed 10-20%. This
|
||||
release also saw significant improvement in realtime encoding speed
|
||||
on ARM platforms.
|
||||
|
||||
Improved encoder threading
|
||||
Dont pick encoder filter level when loopfilter is disabled.
|
||||
Avoid double copying of key frames into alt and golden buffer
|
||||
FDCT optimizations.
|
||||
x86 sse2 temporal filter
|
||||
SSSE3 version of fast quantizer
|
||||
vp8_rd_pick_best_mbsegmentation code restructure
|
||||
Adjusted breakout RD for SPLITMV
|
||||
Changed segmentation check order
|
||||
Improved rd_pick_intra4x4block
|
||||
Adds armv6 optimized variance calculation
|
||||
ARMv6 optimized sad16x16
|
||||
ARMv6 optimized half pixel variance calculations
|
||||
Full search SAD function optimization in SSE4.1
|
||||
Improve MV prediction accuracy to achieve performance gain
|
||||
Improve MV prediction in vp8_pick_inter_mode() for speed>3
|
||||
|
||||
- Quality:
|
||||
Best quality mode improved PSNR 6.3%, and SSIM 6.1%. This release
|
||||
also includes support for "activity masking," which greatly improves
|
||||
SSIM at the expense of PSNR. For now, this feature is available with
|
||||
the --tune=ssim option. Further experimentation in this area
|
||||
is ongoing. This release also introduces a new rate control mode
|
||||
called "CQ," which changes the allocation of bits within a clip to
|
||||
the sections where they will have the most visual impact.
|
||||
|
||||
Tuning for the more exact quantizer.
|
||||
Relax rate control for last few frames
|
||||
CQ Mode
|
||||
Limit key frame quantizer for forced key frames.
|
||||
KF/GF Pulsing
|
||||
Add simple version of activity masking.
|
||||
make rdmult adaptive for intra in quantizer RDO
|
||||
cap the best quantizer for 2nd order DC
|
||||
change the threshold of DC check for encode breakout
|
||||
|
||||
- Bug Fixes:
|
||||
Fix crash on Sparc Solaris.
|
||||
Fix counter of fixed keyframe distance
|
||||
ARNR filter pointer update bug fix
|
||||
Fixed use of motion percentage in KF/GF group calc
|
||||
Changed condition for using RD in Intra Mode
|
||||
Fix encoder real-time only configuration.
|
||||
Fix ARM encoder crash with multiple token partitions
|
||||
Fixed bug first cluster timecode of webm file is wrong.
|
||||
Fixed various encoder bugs with odd-sized images
|
||||
vp8e_get_preview fixed when spatial resampling enabled
|
||||
quantizer: fix assertion in fast quantizer path
|
||||
Allocate source buffers to be multiples of 16
|
||||
Fix for manual Golden frame frequency
|
||||
Fix drastic undershoot in long form content
|
||||
|
||||
|
||||
2010-10-28 v0.9.5 "Aylesbury"
|
||||
Our first named release, focused on a faster decoder, and a better encoder.
|
||||
|
||||
- Upgrading:
|
||||
This release incorporates backwards-incompatible changes to the
|
||||
ivfenc and ivfdec tools. These tools are now called vpxenc and vpxdec.
|
||||
|
||||
vpxdec
|
||||
* the -q (quiet) option has been removed, and replaced with
|
||||
-v (verbose). the output is quiet by default. Use -v to see
|
||||
the version number of the binary.
|
||||
|
||||
* The default behavior is now to write output to a single file
|
||||
instead of individual frames. The -y option has been removed.
|
||||
Y4M output is the default.
|
||||
|
||||
* For raw I420/YV12 output instead of Y4M, the --i420 or --yv12
|
||||
options must be specified.
|
||||
|
||||
$ ivfdec -o OUTPUT INPUT
|
||||
$ vpxdec --i420 -o OUTPUT INPUT
|
||||
|
||||
* If an output file is not specified, the default is to write
|
||||
Y4M to stdout. This makes piping more natural.
|
||||
|
||||
$ ivfdec -y -o - INPUT | ...
|
||||
$ vpxdec INPUT | ...
|
||||
|
||||
* The output file has additional flexibility for formatting the
|
||||
filename. It supports escape characters for constructing a
|
||||
filename from the width, height, and sequence number. This
|
||||
replaces the -p option. To get the equivalent:
|
||||
|
||||
$ ivfdec -p frame INPUT
|
||||
$ vpxdec --i420 -o frame-%wx%h-%4.i420 INPUT
|
||||
|
||||
vpxenc
|
||||
* The output file must be specified with -o, rather than as the
|
||||
last argument.
|
||||
|
||||
$ ivfenc <options> INPUT OUTPUT
|
||||
$ vpxenc <options> -o OUTPUT INPUT
|
||||
|
||||
* The output defaults to webm. To get IVF output, use the --ivf
|
||||
option.
|
||||
|
||||
$ ivfenc <options> INPUT OUTPUT.ivf
|
||||
$ vpxenc <options> -o OUTPUT.ivf --ivf INPUT
|
||||
|
||||
|
||||
- Enhancements:
|
||||
ivfenc and ivfdec have been renamed to vpxenc, vpxdec.
|
||||
vpxdec supports .webm input
|
||||
vpxdec writes .y4m by default
|
||||
vpxenc writes .webm output by default
|
||||
vpxenc --psnr now shows the average/overall PSNR at the end
|
||||
ARM platforms now support runtime cpu detection
|
||||
vpxdec visualizations added for motion vectors, block modes, references
|
||||
vpxdec now silent by default
|
||||
vpxdec --progress shows frame-by-frame timing information
|
||||
vpxenc supports the distinction between --fps and --timebase
|
||||
NASM is now a supported assembler
|
||||
configure: enable PIC for shared libs by default
|
||||
configure: add --enable-small
|
||||
configure: support for ppc32-linux-gcc
|
||||
configure: support for sparc-solaris-gcc
|
||||
|
||||
- Bugs:
|
||||
Improve handling of invalid frames
|
||||
Fix valgrind errors in the NEON loop filters.
|
||||
Fix loopfilter delta zero transitions
|
||||
Fix valgrind errors in vp8_sixtap_predict8x4_armv6().
|
||||
Build fixes for darwin-icc
|
||||
|
||||
- Speed:
|
||||
20-40% (average 28%) improvement in libvpx decoder speed,
|
||||
including:
|
||||
Rewrite vp8_short_walsh4x4_sse2()
|
||||
Optimizations on the loopfilters.
|
||||
Miscellaneous improvements for Atom
|
||||
Add 4-tap version of 2nd-pass ARMv6 MC filter.
|
||||
Improved multithread utilization
|
||||
Better instruction choices on x86
|
||||
reorder data to use wider instructions
|
||||
Update NEON wide idcts
|
||||
Make block access to frame buffer sequential
|
||||
Improved subset block search
|
||||
Bilinear subpixel optimizations for ssse3.
|
||||
Decrease memory footprint
|
||||
|
||||
Encoder speed improvements (percentage gain not measured):
|
||||
Skip unnecessary search of identical frames
|
||||
Add SSE2 subtract functions
|
||||
Improve bounds checking in vp8_diamond_search_sadx4()
|
||||
Added vp8_fast_quantize_b_sse2
|
||||
|
||||
- Quality:
|
||||
Over 7% overall PSNR improvement (6.3% SSIM) in "best" quality
|
||||
encoding mode, and up to 60% improvement on very noisy, still
|
||||
or slow moving source video
|
||||
|
||||
Motion compensated temporal filter for Alt-Ref Noise Reduction
|
||||
Improved use of trellis quantization on 2nd order Y blocks
|
||||
Tune effect of motion on KF/GF boost in two pass
|
||||
Allow coefficient optimization for good quality speed 0.
|
||||
Improved control of active min quantizer for two pass.
|
||||
Enable ARFs for non-lagged compress
|
||||
|
||||
2010-09-02 v0.9.2
|
||||
- Enhancements:
|
||||
Disable frame dropping by default
|
||||
Improved multithreaded performance
|
||||
Improved Force Key Frame Behaviour
|
||||
Increased rate control buffer level precision
|
||||
Fix bug in 1st pass motion compensation
|
||||
ivfenc: correct fixed kf interval, --disable-kf
|
||||
- Speed:
|
||||
Changed above and left context data layout
|
||||
Rework idct calling structure.
|
||||
Removed unnecessary MB_MODE_INFO copies
|
||||
x86: SSSE3 sixtap prediction
|
||||
Reworked IDCT to include reconstruction (add) step
|
||||
Swap alt/gold/new/last frame buffer ptrs instead of copying.
|
||||
Improve SSE2 loopfilter functions
|
||||
Change bitreader to use a larger window.
|
||||
Avoid loopfilter reinitialization when possible
|
||||
- Quality:
|
||||
Normalize quantizer's zero bin and rounding factors
|
||||
Add trellis quantization.
|
||||
Make the quantizer exact.
|
||||
Updates to ARNR filtering algorithm
|
||||
Fix breakout thresh computation for golden & AltRef frames
|
||||
Redo the forward 4x4 dct
|
||||
Improve the accuracy of forward walsh-hadamard transform
|
||||
Further adjustment of RD behaviour with Q and Zbin.
|
||||
- Build System:
|
||||
Allow linking of libs built with MinGW to MSVC
|
||||
Fix target auto-detection on mingw32
|
||||
Allow --cpu= to work for x86.
|
||||
configure: pass original arguments through to make dist
|
||||
Fix builds without runtime CPU detection
|
||||
msvs: fix install of codec sources
|
||||
msvs: Change devenv.com command line for better msys support
|
||||
msvs: Add vs9 targets.
|
||||
Add x86_64-linux-icc target
|
||||
- Bugs:
|
||||
Potential crashes on older MinGW builds
|
||||
Fix two-pass framrate for Y4M input.
|
||||
Fixed simple loop filter, other crashes on ARM v6
|
||||
arm: fix missing dependency with --enable-shared
|
||||
configure: support directories containing .o
|
||||
Replace pinsrw (SSE) with MMX instructions
|
||||
apple: include proper mach primatives
|
||||
Fixed rate control bug with long key frame interval.
|
||||
Fix DSO link errors on x86-64 when not using a version script
|
||||
Fixed buffer selection for UV in AltRef filtering
|
||||
|
||||
|
||||
2010-06-17 v0.9.1
|
||||
- Enhancements:
|
||||
* ivfenc/ivfdec now support YUV4MPEG2 input and pipe I/O
|
||||
* Speed optimizations
|
||||
- Bugfixes:
|
||||
* Rate control
|
||||
* Prevent out-of-bounds accesses on invalid data
|
||||
- Build system updates:
|
||||
* Detect toolchain to be used automatically for native builds
|
||||
* Support building shared libraries
|
||||
* Better autotools emulation (--prefix, --libdir, DESTDIR)
|
||||
- Updated LICENSE
|
||||
* http://webmproject.blogspot.com/2010/06/changes-to-webm-open-source-license.html
|
||||
|
||||
|
||||
2010-05-18 v0.9.0
|
||||
- Initial open source release. Welcome to WebM and VP8!
|
||||
|
|
@ -0,0 +1,135 @@
|
|||
README - 23 March 2015
|
||||
|
||||
Welcome to the WebM VP8/VP9 Codec SDK!
|
||||
|
||||
COMPILING THE APPLICATIONS/LIBRARIES:
|
||||
The build system used is similar to autotools. Building generally consists of
|
||||
"configuring" with your desired build options, then using GNU make to build
|
||||
the application.
|
||||
|
||||
1. Prerequisites
|
||||
|
||||
* All x86 targets require the Yasm[1] assembler be installed.
|
||||
* All Windows builds require that Cygwin[2] be installed.
|
||||
* Building the documentation requires Doxygen[3]. If you do not
|
||||
have this package, the install-docs option will be disabled.
|
||||
* Downloading the data for the unit tests requires curl[4] and sha1sum.
|
||||
sha1sum is provided via the GNU coreutils, installed by default on
|
||||
many *nix platforms, as well as MinGW and Cygwin. If coreutils is not
|
||||
available, a compatible version of sha1sum can be built from
|
||||
source[5]. These requirements are optional if not running the unit
|
||||
tests.
|
||||
|
||||
[1]: http://www.tortall.net/projects/yasm
|
||||
[2]: http://www.cygwin.com
|
||||
[3]: http://www.doxygen.org
|
||||
[4]: http://curl.haxx.se
|
||||
[5]: http://www.microbrew.org/tools/md5sha1sum/
|
||||
|
||||
2. Out-of-tree builds
|
||||
Out of tree builds are a supported method of building the application. For
|
||||
an out of tree build, the source tree is kept separate from the object
|
||||
files produced during compilation. For instance:
|
||||
|
||||
$ mkdir build
|
||||
$ cd build
|
||||
$ ../libvpx/configure <options>
|
||||
$ make
|
||||
|
||||
3. Configuration options
|
||||
The 'configure' script supports a number of options. The --help option can be
|
||||
used to get a list of supported options:
|
||||
$ ../libvpx/configure --help
|
||||
|
||||
4. Cross development
|
||||
For cross development, the most notable option is the --target option. The
|
||||
most up-to-date list of supported targets can be found at the bottom of the
|
||||
--help output of the configure script. As of this writing, the list of
|
||||
available targets is:
|
||||
|
||||
armv6-darwin-gcc
|
||||
armv6-linux-rvct
|
||||
armv6-linux-gcc
|
||||
armv6-none-rvct
|
||||
arm64-darwin-gcc
|
||||
armv7-android-gcc
|
||||
armv7-darwin-gcc
|
||||
armv7-linux-rvct
|
||||
armv7-linux-gcc
|
||||
armv7-none-rvct
|
||||
armv7-win32-vs11
|
||||
armv7-win32-vs12
|
||||
armv7s-darwin-gcc
|
||||
mips32-linux-gcc
|
||||
mips64-linux-gcc
|
||||
sparc-solaris-gcc
|
||||
x86-android-gcc
|
||||
x86-darwin8-gcc
|
||||
x86-darwin8-icc
|
||||
x86-darwin9-gcc
|
||||
x86-darwin9-icc
|
||||
x86-darwin10-gcc
|
||||
x86-darwin11-gcc
|
||||
x86-darwin12-gcc
|
||||
x86-darwin13-gcc
|
||||
x86-darwin14-gcc
|
||||
x86-iphonesimulator-gcc
|
||||
x86-linux-gcc
|
||||
x86-linux-icc
|
||||
x86-os2-gcc
|
||||
x86-solaris-gcc
|
||||
x86-win32-gcc
|
||||
x86-win32-vs7
|
||||
x86-win32-vs8
|
||||
x86-win32-vs9
|
||||
x86-win32-vs10
|
||||
x86-win32-vs11
|
||||
x86-win32-vs12
|
||||
x86_64-darwin9-gcc
|
||||
x86_64-darwin10-gcc
|
||||
x86_64-darwin11-gcc
|
||||
x86_64-darwin12-gcc
|
||||
x86_64-darwin13-gcc
|
||||
x86_64-darwin14-gcc
|
||||
x86_64-iphonesimulator-gcc
|
||||
x86_64-linux-gcc
|
||||
x86_64-linux-icc
|
||||
x86_64-solaris-gcc
|
||||
x86_64-win64-gcc
|
||||
x86_64-win64-vs8
|
||||
x86_64-win64-vs9
|
||||
x86_64-win64-vs10
|
||||
x86_64-win64-vs11
|
||||
x86_64-win64-vs12
|
||||
generic-gnu
|
||||
|
||||
The generic-gnu target, in conjunction with the CROSS environment variable,
|
||||
can be used to cross compile architectures that aren't explicitly listed, if
|
||||
the toolchain is a cross GNU (gcc/binutils) toolchain. Other POSIX toolchains
|
||||
will likely work as well. For instance, to build using the mipsel-linux-uclibc
|
||||
toolchain, the following command could be used (note, POSIX SH syntax, adapt
|
||||
to your shell as necessary):
|
||||
|
||||
$ CROSS=mipsel-linux-uclibc- ../libvpx/configure
|
||||
|
||||
In addition, the executables to be invoked can be overridden by specifying the
|
||||
environment variables: CC, AR, LD, AS, STRIP, NM. Additional flags can be
|
||||
passed to these executables with CFLAGS, LDFLAGS, and ASFLAGS.
|
||||
|
||||
5. Configuration errors
|
||||
If the configuration step fails, the first step is to look in the error log.
|
||||
This defaults to config.log. This should give a good indication of what went
|
||||
wrong. If not, contact us for support.
|
||||
|
||||
VP8/VP9 TEST VECTORS:
|
||||
The test vectors can be downloaded and verified using the build system after
|
||||
running configure. To specify an alternate directory the
|
||||
LIBVPX_TEST_DATA_PATH environment variable can be used.
|
||||
|
||||
$ ./configure --enable-unit-tests
|
||||
$ LIBVPX_TEST_DATA_PATH=../libvpx-test-data make testdata
|
||||
|
||||
SUPPORT
|
||||
This library is an open source project supported by its community. Please
|
||||
please email webm-discuss@webmproject.org for help.
|
||||
|
|
@ -0,0 +1,236 @@
|
|||
/*
|
||||
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <limits.h>
|
||||
#include "args.h"
|
||||
|
||||
#include "vpx_ports/msvc.h"
|
||||
|
||||
#if defined(__GNUC__) && __GNUC__
|
||||
extern void die(const char *fmt, ...) __attribute__((noreturn));
|
||||
#else
|
||||
extern void die(const char *fmt, ...);
|
||||
#endif
|
||||
|
||||
|
||||
struct arg arg_init(char **argv) {
|
||||
struct arg a;
|
||||
|
||||
a.argv = argv;
|
||||
a.argv_step = 1;
|
||||
a.name = NULL;
|
||||
a.val = NULL;
|
||||
a.def = NULL;
|
||||
return a;
|
||||
}
|
||||
|
||||
int arg_match(struct arg *arg_, const struct arg_def *def, char **argv) {
|
||||
struct arg arg;
|
||||
|
||||
if (!argv[0] || argv[0][0] != '-')
|
||||
return 0;
|
||||
|
||||
arg = arg_init(argv);
|
||||
|
||||
if (def->short_name
|
||||
&& strlen(arg.argv[0]) == strlen(def->short_name) + 1
|
||||
&& !strcmp(arg.argv[0] + 1, def->short_name)) {
|
||||
|
||||
arg.name = arg.argv[0] + 1;
|
||||
arg.val = def->has_val ? arg.argv[1] : NULL;
|
||||
arg.argv_step = def->has_val ? 2 : 1;
|
||||
} else if (def->long_name) {
|
||||
const size_t name_len = strlen(def->long_name);
|
||||
|
||||
if (strlen(arg.argv[0]) >= name_len + 2
|
||||
&& arg.argv[0][1] == '-'
|
||||
&& !strncmp(arg.argv[0] + 2, def->long_name, name_len)
|
||||
&& (arg.argv[0][name_len + 2] == '='
|
||||
|| arg.argv[0][name_len + 2] == '\0')) {
|
||||
|
||||
arg.name = arg.argv[0] + 2;
|
||||
arg.val = arg.name[name_len] == '=' ? arg.name + name_len + 1 : NULL;
|
||||
arg.argv_step = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (arg.name && !arg.val && def->has_val)
|
||||
die("Error: option %s requires argument.\n", arg.name);
|
||||
|
||||
if (arg.name && arg.val && !def->has_val)
|
||||
die("Error: option %s requires no argument.\n", arg.name);
|
||||
|
||||
if (arg.name
|
||||
&& (arg.val || !def->has_val)) {
|
||||
arg.def = def;
|
||||
*arg_ = arg;
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
const char *arg_next(struct arg *arg) {
|
||||
if (arg->argv[0])
|
||||
arg->argv += arg->argv_step;
|
||||
|
||||
return *arg->argv;
|
||||
}
|
||||
|
||||
|
||||
char **argv_dup(int argc, const char **argv) {
|
||||
char **new_argv = malloc((argc + 1) * sizeof(*argv));
|
||||
|
||||
memcpy(new_argv, argv, argc * sizeof(*argv));
|
||||
new_argv[argc] = NULL;
|
||||
return new_argv;
|
||||
}
|
||||
|
||||
|
||||
void arg_show_usage(FILE *fp, const struct arg_def *const *defs) {
|
||||
char option_text[40] = {0};
|
||||
|
||||
for (; *defs; defs++) {
|
||||
const struct arg_def *def = *defs;
|
||||
char *short_val = def->has_val ? " <arg>" : "";
|
||||
char *long_val = def->has_val ? "=<arg>" : "";
|
||||
|
||||
if (def->short_name && def->long_name) {
|
||||
char *comma = def->has_val ? "," : ", ";
|
||||
|
||||
snprintf(option_text, 37, "-%s%s%s --%s%6s",
|
||||
def->short_name, short_val, comma,
|
||||
def->long_name, long_val);
|
||||
} else if (def->short_name)
|
||||
snprintf(option_text, 37, "-%s%s",
|
||||
def->short_name, short_val);
|
||||
else if (def->long_name)
|
||||
snprintf(option_text, 37, " --%s%s",
|
||||
def->long_name, long_val);
|
||||
|
||||
fprintf(fp, " %-37s\t%s\n", option_text, def->desc);
|
||||
|
||||
if (def->enums) {
|
||||
const struct arg_enum_list *listptr;
|
||||
|
||||
fprintf(fp, " %-37s\t ", "");
|
||||
|
||||
for (listptr = def->enums; listptr->name; listptr++)
|
||||
fprintf(fp, "%s%s", listptr->name,
|
||||
listptr[1].name ? ", " : "\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
unsigned int arg_parse_uint(const struct arg *arg) {
|
||||
long int rawval;
|
||||
char *endptr;
|
||||
|
||||
rawval = strtol(arg->val, &endptr, 10);
|
||||
|
||||
if (arg->val[0] != '\0' && endptr[0] == '\0') {
|
||||
if (rawval >= 0 && rawval <= UINT_MAX)
|
||||
return rawval;
|
||||
|
||||
die("Option %s: Value %ld out of range for unsigned int\n",
|
||||
arg->name, rawval);
|
||||
}
|
||||
|
||||
die("Option %s: Invalid character '%c'\n", arg->name, *endptr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int arg_parse_int(const struct arg *arg) {
|
||||
long int rawval;
|
||||
char *endptr;
|
||||
|
||||
rawval = strtol(arg->val, &endptr, 10);
|
||||
|
||||
if (arg->val[0] != '\0' && endptr[0] == '\0') {
|
||||
if (rawval >= INT_MIN && rawval <= INT_MAX)
|
||||
return rawval;
|
||||
|
||||
die("Option %s: Value %ld out of range for signed int\n",
|
||||
arg->name, rawval);
|
||||
}
|
||||
|
||||
die("Option %s: Invalid character '%c'\n", arg->name, *endptr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
struct vpx_rational {
|
||||
int num; /**< fraction numerator */
|
||||
int den; /**< fraction denominator */
|
||||
};
|
||||
struct vpx_rational arg_parse_rational(const struct arg *arg) {
|
||||
long int rawval;
|
||||
char *endptr;
|
||||
struct vpx_rational rat;
|
||||
|
||||
/* parse numerator */
|
||||
rawval = strtol(arg->val, &endptr, 10);
|
||||
|
||||
if (arg->val[0] != '\0' && endptr[0] == '/') {
|
||||
if (rawval >= INT_MIN && rawval <= INT_MAX)
|
||||
rat.num = rawval;
|
||||
else die("Option %s: Value %ld out of range for signed int\n",
|
||||
arg->name, rawval);
|
||||
} else die("Option %s: Expected / at '%c'\n", arg->name, *endptr);
|
||||
|
||||
/* parse denominator */
|
||||
rawval = strtol(endptr + 1, &endptr, 10);
|
||||
|
||||
if (arg->val[0] != '\0' && endptr[0] == '\0') {
|
||||
if (rawval >= INT_MIN && rawval <= INT_MAX)
|
||||
rat.den = rawval;
|
||||
else die("Option %s: Value %ld out of range for signed int\n",
|
||||
arg->name, rawval);
|
||||
} else die("Option %s: Invalid character '%c'\n", arg->name, *endptr);
|
||||
|
||||
return rat;
|
||||
}
|
||||
|
||||
|
||||
int arg_parse_enum(const struct arg *arg) {
|
||||
const struct arg_enum_list *listptr;
|
||||
long int rawval;
|
||||
char *endptr;
|
||||
|
||||
/* First see if the value can be parsed as a raw value */
|
||||
rawval = strtol(arg->val, &endptr, 10);
|
||||
if (arg->val[0] != '\0' && endptr[0] == '\0') {
|
||||
/* Got a raw value, make sure it's valid */
|
||||
for (listptr = arg->def->enums; listptr->name; listptr++)
|
||||
if (listptr->val == rawval)
|
||||
return rawval;
|
||||
}
|
||||
|
||||
/* Next see if it can be parsed as a string */
|
||||
for (listptr = arg->def->enums; listptr->name; listptr++)
|
||||
if (!strcmp(arg->val, listptr->name))
|
||||
return listptr->val;
|
||||
|
||||
die("Option %s: Invalid value '%s'\n", arg->name, arg->val);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int arg_parse_enum_or_int(const struct arg *arg) {
|
||||
if (arg->def->enums)
|
||||
return arg_parse_enum(arg);
|
||||
return arg_parse_int(arg);
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
/*
|
||||
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef ARGS_H_
|
||||
#define ARGS_H_
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct arg {
|
||||
char **argv;
|
||||
const char *name;
|
||||
const char *val;
|
||||
unsigned int argv_step;
|
||||
const struct arg_def *def;
|
||||
};
|
||||
|
||||
struct arg_enum_list {
|
||||
const char *name;
|
||||
int val;
|
||||
};
|
||||
#define ARG_ENUM_LIST_END {0}
|
||||
|
||||
typedef struct arg_def {
|
||||
const char *short_name;
|
||||
const char *long_name;
|
||||
int has_val;
|
||||
const char *desc;
|
||||
const struct arg_enum_list *enums;
|
||||
} arg_def_t;
|
||||
#define ARG_DEF(s,l,v,d) {s,l,v,d, NULL}
|
||||
#define ARG_DEF_ENUM(s,l,v,d,e) {s,l,v,d,e}
|
||||
#define ARG_DEF_LIST_END {0}
|
||||
|
||||
struct arg arg_init(char **argv);
|
||||
int arg_match(struct arg *arg_, const struct arg_def *def, char **argv);
|
||||
const char *arg_next(struct arg *arg);
|
||||
void arg_show_usage(FILE *fp, const struct arg_def *const *defs);
|
||||
char **argv_dup(int argc, const char **argv);
|
||||
|
||||
unsigned int arg_parse_uint(const struct arg *arg);
|
||||
int arg_parse_int(const struct arg *arg);
|
||||
struct vpx_rational arg_parse_rational(const struct arg *arg);
|
||||
int arg_parse_enum(const struct arg *arg);
|
||||
int arg_parse_enum_or_int(const struct arg *arg);
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif // ARGS_H_
|
|
@ -0,0 +1,194 @@
|
|||
##
|
||||
## Copyright (c) 2012 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## tree. An additional intellectual property rights grant can be found
|
||||
## in the file PATENTS. All contributing project authors may
|
||||
## be found in the AUTHORS file in the root of the source tree.
|
||||
##
|
||||
|
||||
#
|
||||
# This file is to be used for compiling libvpx for Android using the NDK.
|
||||
# In an Android project place a libvpx checkout in the jni directory.
|
||||
# Run the configure script from the jni directory. Base libvpx
|
||||
# encoder/decoder configuration will look similar to:
|
||||
# ./libvpx/configure --target=armv7-android-gcc --disable-examples \
|
||||
# --sdk-path=/opt/android-ndk-r6b/
|
||||
#
|
||||
# When targeting Android, realtime-only is enabled by default. This can
|
||||
# be overridden by adding the command line flag:
|
||||
# --disable-realtime-only
|
||||
#
|
||||
# This will create .mk files that contain variables that contain the
|
||||
# source files to compile.
|
||||
#
|
||||
# Place an Android.mk file in the jni directory that references the
|
||||
# Android.mk file in the libvpx directory:
|
||||
# LOCAL_PATH := $(call my-dir)
|
||||
# include $(CLEAR_VARS)
|
||||
# include jni/libvpx/build/make/Android.mk
|
||||
#
|
||||
# There are currently two TARGET_ARCH_ABI targets for ARM.
|
||||
# armeabi and armeabi-v7a. armeabi-v7a is selected by creating an
|
||||
# Application.mk in the jni directory that contains:
|
||||
# APP_ABI := armeabi-v7a
|
||||
#
|
||||
# By default libvpx will detect at runtime the existance of NEON extension.
|
||||
# For this we import the 'cpufeatures' module from the NDK sources.
|
||||
# libvpx can also be configured without this runtime detection method.
|
||||
# Configuring with --disable-runtime-cpu-detect will assume presence of NEON.
|
||||
# Configuring with --disable-runtime-cpu-detect --disable-neon \
|
||||
# --disable-neon-asm
|
||||
# will remove any NEON dependency.
|
||||
|
||||
# To change to building armeabi, run ./libvpx/configure again, but with
|
||||
# --target=armv6-android-gcc and modify the Application.mk file to
|
||||
# set APP_ABI := armeabi
|
||||
#
|
||||
# Running ndk-build will build libvpx and include it in your project.
|
||||
#
|
||||
|
||||
CONFIG_DIR := $(LOCAL_PATH)/
|
||||
LIBVPX_PATH := $(LOCAL_PATH)/libvpx
|
||||
ASM_CNV_PATH_LOCAL := $(TARGET_ARCH_ABI)/ads2gas
|
||||
ASM_CNV_PATH := $(LOCAL_PATH)/$(ASM_CNV_PATH_LOCAL)
|
||||
|
||||
# Use the makefiles generated by upstream configure to determine which files to
|
||||
# build. Also set any architecture-specific flags.
|
||||
ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
|
||||
include $(CONFIG_DIR)libs-armv7-android-gcc.mk
|
||||
LOCAL_ARM_MODE := arm
|
||||
else ifeq ($(TARGET_ARCH_ABI),armeabi)
|
||||
include $(CONFIG_DIR)libs-armv6-android-gcc.mk
|
||||
LOCAL_ARM_MODE := arm
|
||||
else ifeq ($(TARGET_ARCH_ABI),arm64-v8a)
|
||||
include $(CONFIG_DIR)libs-armv8-android-gcc.mk
|
||||
LOCAL_ARM_MODE := arm
|
||||
else ifeq ($(TARGET_ARCH_ABI),x86)
|
||||
include $(CONFIG_DIR)libs-x86-android-gcc.mk
|
||||
else ifeq ($(TARGET_ARCH_ABI),mips)
|
||||
include $(CONFIG_DIR)libs-mips-android-gcc.mk
|
||||
else
|
||||
$(error Not a supported TARGET_ARCH_ABI: $(TARGET_ARCH_ABI))
|
||||
endif
|
||||
|
||||
# Rule that is normally in Makefile created by libvpx
|
||||
# configure. Used to filter out source files based on configuration.
|
||||
enabled=$(filter-out $($(1)-no),$($(1)-yes))
|
||||
|
||||
# Override the relative path that is defined by the libvpx
|
||||
# configure process
|
||||
SRC_PATH_BARE := $(LIBVPX_PATH)
|
||||
|
||||
# Include the list of files to be built
|
||||
include $(LIBVPX_PATH)/libs.mk
|
||||
|
||||
# Optimise the code. May want to revisit this setting in the future.
|
||||
LOCAL_CFLAGS := -O3
|
||||
|
||||
# For x86, include the source code in the search path so it will find files
|
||||
# like x86inc.asm and x86_abi_support.asm
|
||||
LOCAL_ASMFLAGS := -I$(LIBVPX_PATH)
|
||||
|
||||
.PRECIOUS: %.asm.s
|
||||
$(ASM_CNV_PATH)/libvpx/%.asm.s: $(LIBVPX_PATH)/%.asm
|
||||
@mkdir -p $(dir $@)
|
||||
@$(CONFIG_DIR)$(ASM_CONVERSION) <$< > $@
|
||||
|
||||
# For building *_rtcd.h, which have rules in libs.mk
|
||||
TGT_ISA:=$(word 1, $(subst -, ,$(TOOLCHAIN)))
|
||||
target := libs
|
||||
|
||||
LOCAL_SRC_FILES += vpx_config.c
|
||||
|
||||
# Remove duplicate entries
|
||||
CODEC_SRCS_UNIQUE = $(sort $(CODEC_SRCS))
|
||||
|
||||
# Pull out C files. vpx_config.c is in the immediate directory and
|
||||
# so it does not need libvpx/ prefixed like the rest of the source files.
|
||||
# The neon files with intrinsics need to have .neon appended so the proper
|
||||
# flags are applied.
|
||||
CODEC_SRCS_C = $(filter %.c, $(CODEC_SRCS_UNIQUE))
|
||||
LOCAL_NEON_SRCS_C = $(filter %_neon.c, $(CODEC_SRCS_C))
|
||||
LOCAL_CODEC_SRCS_C = $(filter-out vpx_config.c %_neon.c, $(CODEC_SRCS_C))
|
||||
|
||||
LOCAL_SRC_FILES += $(foreach file, $(LOCAL_CODEC_SRCS_C), libvpx/$(file))
|
||||
ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
|
||||
LOCAL_SRC_FILES += $(foreach file, $(LOCAL_NEON_SRCS_C), libvpx/$(file).neon)
|
||||
else # If there are neon sources then we are building for arm64 and do not need to specify .neon
|
||||
LOCAL_SRC_FILES += $(foreach file, $(LOCAL_NEON_SRCS_C), libvpx/$(file))
|
||||
endif
|
||||
|
||||
# Pull out assembly files, splitting NEON from the rest. This is
|
||||
# done to specify that the NEON assembly files use NEON assembler flags.
|
||||
# x86 assembly matches %.asm, arm matches %.asm.s
|
||||
|
||||
# x86:
|
||||
|
||||
CODEC_SRCS_ASM_X86 = $(filter %.asm, $(CODEC_SRCS_UNIQUE))
|
||||
LOCAL_SRC_FILES += $(foreach file, $(CODEC_SRCS_ASM_X86), libvpx/$(file))
|
||||
|
||||
# arm:
|
||||
CODEC_SRCS_ASM_ARM_ALL = $(filter %.asm.s, $(CODEC_SRCS_UNIQUE))
|
||||
CODEC_SRCS_ASM_ARM = $(foreach v, \
|
||||
$(CODEC_SRCS_ASM_ARM_ALL), \
|
||||
$(if $(findstring neon,$(v)),,$(v)))
|
||||
CODEC_SRCS_ASM_ADS2GAS = $(patsubst %.s, \
|
||||
$(ASM_CNV_PATH_LOCAL)/libvpx/%.s, \
|
||||
$(CODEC_SRCS_ASM_ARM))
|
||||
LOCAL_SRC_FILES += $(CODEC_SRCS_ASM_ADS2GAS)
|
||||
|
||||
ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
|
||||
CODEC_SRCS_ASM_NEON = $(foreach v, \
|
||||
$(CODEC_SRCS_ASM_ARM_ALL),\
|
||||
$(if $(findstring neon,$(v)),$(v),))
|
||||
CODEC_SRCS_ASM_NEON_ADS2GAS = $(patsubst %.s, \
|
||||
$(ASM_CNV_PATH_LOCAL)/libvpx/%.s, \
|
||||
$(CODEC_SRCS_ASM_NEON))
|
||||
LOCAL_SRC_FILES += $(patsubst %.s, \
|
||||
%.s.neon, \
|
||||
$(CODEC_SRCS_ASM_NEON_ADS2GAS))
|
||||
endif
|
||||
|
||||
LOCAL_CFLAGS += \
|
||||
-DHAVE_CONFIG_H=vpx_config.h \
|
||||
-I$(LIBVPX_PATH) \
|
||||
-I$(ASM_CNV_PATH)
|
||||
|
||||
LOCAL_MODULE := libvpx
|
||||
|
||||
ifeq ($(CONFIG_RUNTIME_CPU_DETECT),yes)
|
||||
LOCAL_STATIC_LIBRARIES := cpufeatures
|
||||
endif
|
||||
|
||||
# Add a dependency to force generation of the RTCD files.
|
||||
ifeq ($(CONFIG_VP8), yes)
|
||||
$(foreach file, $(LOCAL_SRC_FILES), $(LOCAL_PATH)/$(file)): vp8_rtcd.h
|
||||
endif
|
||||
ifeq ($(CONFIG_VP9), yes)
|
||||
$(foreach file, $(LOCAL_SRC_FILES), $(LOCAL_PATH)/$(file)): vp9_rtcd.h
|
||||
endif
|
||||
$(foreach file, $(LOCAL_SRC_FILES), $(LOCAL_PATH)/$(file)): vpx_scale_rtcd.h
|
||||
$(foreach file, $(LOCAL_SRC_FILES), $(LOCAL_PATH)/$(file)): vpx_dsp_rtcd.h
|
||||
|
||||
ifeq ($(TARGET_ARCH_ABI),x86)
|
||||
$(foreach file, $(LOCAL_SRC_FILES), $(LOCAL_PATH)/$(file)): vpx_config.asm
|
||||
endif
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
@echo "Clean: ads2gas files [$(TARGET_ARCH_ABI)]"
|
||||
@$(RM) $(CODEC_SRCS_ASM_ADS2GAS) $(CODEC_SRCS_ASM_NEON_ADS2GAS)
|
||||
@$(RM) -r $(ASM_CNV_PATH)
|
||||
@$(RM) $(CLEAN-OBJS)
|
||||
|
||||
ifeq ($(ENABLE_SHARED),1)
|
||||
include $(BUILD_SHARED_LIBRARY)
|
||||
else
|
||||
include $(BUILD_STATIC_LIBRARY)
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_RUNTIME_CPU_DETECT),yes)
|
||||
$(call import-module,cpufeatures)
|
||||
endif
|
|
@ -0,0 +1,448 @@
|
|||
##
|
||||
## Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## tree. An additional intellectual property rights grant can be found
|
||||
## in the file PATENTS. All contributing project authors may
|
||||
## be found in the AUTHORS file in the root of the source tree.
|
||||
##
|
||||
|
||||
|
||||
include config.mk
|
||||
quiet?=true
|
||||
ifeq ($(target),)
|
||||
# If a target wasn't specified, invoke for all enabled targets.
|
||||
.DEFAULT:
|
||||
@for t in $(ALL_TARGETS); do \
|
||||
$(MAKE) --no-print-directory target=$$t $(MAKECMDGOALS) || exit $$?;\
|
||||
done
|
||||
all: .DEFAULT
|
||||
clean:: .DEFAULT
|
||||
exampletest: .DEFAULT
|
||||
install:: .DEFAULT
|
||||
test:: .DEFAULT
|
||||
testdata:: .DEFAULT
|
||||
utiltest: .DEFAULT
|
||||
|
||||
|
||||
# Note: md5sum is not installed on OS X, but openssl is. Openssl may not be
|
||||
# installed on cygwin, so we need to autodetect here.
|
||||
md5sum := $(firstword $(wildcard \
|
||||
$(foreach e,md5sum openssl,\
|
||||
$(foreach p,$(subst :, ,$(PATH)),$(p)/$(e)*))\
|
||||
))
|
||||
md5sum := $(if $(filter %openssl,$(md5sum)),$(md5sum) dgst -md5,$(md5sum))
|
||||
|
||||
TGT_CC:=$(word 3, $(subst -, ,$(TOOLCHAIN)))
|
||||
dist:
|
||||
@for t in $(ALL_TARGETS); do \
|
||||
$(MAKE) --no-print-directory target=$$t $(MAKECMDGOALS) || exit $$?;\
|
||||
done
|
||||
# Run configure for the user with the current toolchain.
|
||||
@if [ -d "$(DIST_DIR)/src" ]; then \
|
||||
mkdir -p "$(DIST_DIR)/build"; \
|
||||
cd "$(DIST_DIR)/build"; \
|
||||
echo "Rerunning configure $(CONFIGURE_ARGS)"; \
|
||||
../src/configure $(CONFIGURE_ARGS); \
|
||||
$(if $(filter vs%,$(TGT_CC)),make NO_LAUNCH_DEVENV=1;) \
|
||||
fi
|
||||
@if [ -d "$(DIST_DIR)" ]; then \
|
||||
echo " [MD5SUM] $(DIST_DIR)"; \
|
||||
cd $(DIST_DIR) && \
|
||||
$(md5sum) `find . -name md5sums.txt -prune -o -type f -print` \
|
||||
| sed -e 's/MD5(\(.*\))= \([0-9a-f]\{32\}\)/\2 \1/' \
|
||||
> md5sums.txt;\
|
||||
fi
|
||||
endif
|
||||
|
||||
# Since we invoke make recursively for multiple targets we need to include the
|
||||
# .mk file for the correct target, but only when $(target) is non-empty.
|
||||
ifneq ($(target),)
|
||||
include $(target)-$(TOOLCHAIN).mk
|
||||
endif
|
||||
BUILD_ROOT?=.
|
||||
VPATH=$(SRC_PATH_BARE)
|
||||
CFLAGS+=-I$(BUILD_PFX)$(BUILD_ROOT) -I$(SRC_PATH)
|
||||
CXXFLAGS+=-I$(BUILD_PFX)$(BUILD_ROOT) -I$(SRC_PATH)
|
||||
ASFLAGS+=-I$(BUILD_PFX)$(BUILD_ROOT)/ -I$(SRC_PATH)/
|
||||
DIST_DIR?=dist
|
||||
HOSTCC?=gcc
|
||||
TGT_ISA:=$(word 1, $(subst -, ,$(TOOLCHAIN)))
|
||||
TGT_OS:=$(word 2, $(subst -, ,$(TOOLCHAIN)))
|
||||
TGT_CC:=$(word 3, $(subst -, ,$(TOOLCHAIN)))
|
||||
quiet:=$(if $(or $(verbose), $(V)),, yes)
|
||||
qexec=$(if $(quiet),@)
|
||||
|
||||
# Cancel built-in implicit rules
|
||||
%: %.o
|
||||
%.asm:
|
||||
%.a:
|
||||
%: %.cc
|
||||
|
||||
#
|
||||
# Common rules"
|
||||
#
|
||||
.PHONY: all
|
||||
all:
|
||||
|
||||
.PHONY: clean
|
||||
clean::
|
||||
rm -f $(OBJS-yes) $(OBJS-yes:.o=.d) $(OBJS-yes:.asm.s.o=.asm.s)
|
||||
rm -f $(CLEAN-OBJS)
|
||||
|
||||
.PHONY: clean
|
||||
distclean: clean
|
||||
if [ -z "$(target)" ]; then \
|
||||
rm -f Makefile; \
|
||||
rm -f config.log config.mk; \
|
||||
rm -f vpx_config.[hc] vpx_config.asm; \
|
||||
else \
|
||||
rm -f $(target)-$(TOOLCHAIN).mk; \
|
||||
fi
|
||||
|
||||
.PHONY: dist
|
||||
dist:
|
||||
.PHONY: exampletest
|
||||
exampletest:
|
||||
.PHONY: install
|
||||
install::
|
||||
.PHONY: test
|
||||
test::
|
||||
.PHONY: testdata
|
||||
testdata::
|
||||
.PHONY: utiltest
|
||||
utiltest:
|
||||
|
||||
# Add compiler flags for intrinsic files
|
||||
ifeq ($(TOOLCHAIN), x86-os2-gcc)
|
||||
STACKREALIGN=-mstackrealign
|
||||
else
|
||||
STACKREALIGN=
|
||||
endif
|
||||
|
||||
$(BUILD_PFX)%_mmx.c.d: CFLAGS += -mmmx
|
||||
$(BUILD_PFX)%_mmx.c.o: CFLAGS += -mmmx
|
||||
$(BUILD_PFX)%_sse2.c.d: CFLAGS += -msse2 $(STACKREALIGN)
|
||||
$(BUILD_PFX)%_sse2.c.o: CFLAGS += -msse2 $(STACKREALIGN)
|
||||
$(BUILD_PFX)%_sse3.c.d: CFLAGS += -msse3 $(STACKREALIGN)
|
||||
$(BUILD_PFX)%_sse3.c.o: CFLAGS += -msse3 $(STACKREALIGN)
|
||||
$(BUILD_PFX)%_ssse3.c.d: CFLAGS += -mssse3 $(STACKREALIGN)
|
||||
$(BUILD_PFX)%_ssse3.c.o: CFLAGS += -mssse3 $(STACKREALIGN)
|
||||
$(BUILD_PFX)%_sse4.c.d: CFLAGS += -msse4.1 $(STACKREALIGN)
|
||||
$(BUILD_PFX)%_sse4.c.o: CFLAGS += -msse4.1 $(STACKREALIGN)
|
||||
$(BUILD_PFX)%_avx.c.d: CFLAGS += -mavx $(STACKREALIGN)
|
||||
$(BUILD_PFX)%_avx.c.o: CFLAGS += -mavx $(STACKREALIGN)
|
||||
$(BUILD_PFX)%_avx2.c.d: CFLAGS += -mavx2 $(STACKREALIGN)
|
||||
$(BUILD_PFX)%_avx2.c.o: CFLAGS += -mavx2 $(STACKREALIGN)
|
||||
|
||||
$(BUILD_PFX)%.c.d: %.c
|
||||
$(if $(quiet),@echo " [DEP] $@")
|
||||
$(qexec)mkdir -p $(dir $@)
|
||||
$(qexec)$(CC) $(INTERNAL_CFLAGS) $(CFLAGS) -M $< | $(fmt_deps) > $@
|
||||
|
||||
$(BUILD_PFX)%.c.o: %.c
|
||||
$(if $(quiet),@echo " [CC] $@")
|
||||
$(qexec)$(if $(CONFIG_DEPENDENCY_TRACKING),,mkdir -p $(dir $@))
|
||||
$(qexec)$(CC) $(INTERNAL_CFLAGS) $(CFLAGS) -c -o $@ $<
|
||||
|
||||
$(BUILD_PFX)%.cc.d: %.cc
|
||||
$(if $(quiet),@echo " [DEP] $@")
|
||||
$(qexec)mkdir -p $(dir $@)
|
||||
$(qexec)$(CXX) $(INTERNAL_CFLAGS) $(CXXFLAGS) -M $< | $(fmt_deps) > $@
|
||||
|
||||
$(BUILD_PFX)%.cc.o: %.cc
|
||||
$(if $(quiet),@echo " [CXX] $@")
|
||||
$(qexec)$(if $(CONFIG_DEPENDENCY_TRACKING),,mkdir -p $(dir $@))
|
||||
$(qexec)$(CXX) $(INTERNAL_CFLAGS) $(CXXFLAGS) -c -o $@ $<
|
||||
|
||||
$(BUILD_PFX)%.cpp.d: %.cpp
|
||||
$(if $(quiet),@echo " [DEP] $@")
|
||||
$(qexec)mkdir -p $(dir $@)
|
||||
$(qexec)$(CXX) $(INTERNAL_CFLAGS) $(CXXFLAGS) -M $< | $(fmt_deps) > $@
|
||||
|
||||
$(BUILD_PFX)%.cpp.o: %.cpp
|
||||
$(if $(quiet),@echo " [CXX] $@")
|
||||
$(qexec)$(if $(CONFIG_DEPENDENCY_TRACKING),,mkdir -p $(dir $@))
|
||||
$(qexec)$(CXX) $(INTERNAL_CFLAGS) $(CXXFLAGS) -c -o $@ $<
|
||||
|
||||
$(BUILD_PFX)%.asm.d: %.asm
|
||||
$(if $(quiet),@echo " [DEP] $@")
|
||||
$(qexec)mkdir -p $(dir $@)
|
||||
$(qexec)$(SRC_PATH_BARE)/build/make/gen_asm_deps.sh \
|
||||
--build-pfx=$(BUILD_PFX) --depfile=$@ $(ASFLAGS) $< > $@
|
||||
|
||||
$(BUILD_PFX)%.asm.o: %.asm
|
||||
$(if $(quiet),@echo " [AS] $@")
|
||||
$(qexec)$(if $(CONFIG_DEPENDENCY_TRACKING),,mkdir -p $(dir $@))
|
||||
$(qexec)$(AS) $(ASFLAGS) -o $@ $<
|
||||
|
||||
$(BUILD_PFX)%.s.d: %.s
|
||||
$(if $(quiet),@echo " [DEP] $@")
|
||||
$(qexec)mkdir -p $(dir $@)
|
||||
$(qexec)$(SRC_PATH_BARE)/build/make/gen_asm_deps.sh \
|
||||
--build-pfx=$(BUILD_PFX) --depfile=$@ $(ASFLAGS) $< > $@
|
||||
|
||||
$(BUILD_PFX)%.s.o: %.s
|
||||
$(if $(quiet),@echo " [AS] $@")
|
||||
$(qexec)$(if $(CONFIG_DEPENDENCY_TRACKING),,mkdir -p $(dir $@))
|
||||
$(qexec)$(AS) $(ASFLAGS) -o $@ $<
|
||||
|
||||
.PRECIOUS: %.c.S
|
||||
%.c.S: CFLAGS += -DINLINE_ASM
|
||||
$(BUILD_PFX)%.c.S: %.c
|
||||
$(if $(quiet),@echo " [GEN] $@")
|
||||
$(qexec)$(if $(CONFIG_DEPENDENCY_TRACKING),,mkdir -p $(dir $@))
|
||||
$(qexec)$(CC) -S $(CFLAGS) -o $@ $<
|
||||
|
||||
.PRECIOUS: %.asm.s
|
||||
$(BUILD_PFX)%.asm.s: %.asm
|
||||
$(if $(quiet),@echo " [ASM CONVERSION] $@")
|
||||
$(qexec)mkdir -p $(dir $@)
|
||||
$(qexec)$(ASM_CONVERSION) <$< >$@
|
||||
|
||||
# If we're in debug mode, pretend we don't have GNU strip, to fall back to
|
||||
# the copy implementation
|
||||
HAVE_GNU_STRIP := $(if $(CONFIG_DEBUG),,$(HAVE_GNU_STRIP))
|
||||
ifeq ($(HAVE_GNU_STRIP),yes)
|
||||
# Older binutils strip global symbols not needed for relocation processing
|
||||
# when given --strip-unneeded. Using nm and awk to identify globals and
|
||||
# keep them caused command line length issues under mingw and segfaults in
|
||||
# test_libvpx were observed under OS/2: simply use --strip-debug.
|
||||
%.a: %_g.a
|
||||
$(if $(quiet),@echo " [STRIP] $@ < $<")
|
||||
$(qexec)$(STRIP) --strip-debug \
|
||||
-o $@ $<
|
||||
else
|
||||
%.a: %_g.a
|
||||
$(if $(quiet),@echo " [CP] $@ < $<")
|
||||
$(qexec)cp $< $@
|
||||
endif
|
||||
|
||||
#
|
||||
# Utility functions
|
||||
#
|
||||
pairmap=$(if $(strip $(2)),\
|
||||
$(call $(1),$(word 1,$(2)),$(word 2,$(2)))\
|
||||
$(call pairmap,$(1),$(wordlist 3,$(words $(2)),$(2)))\
|
||||
)
|
||||
|
||||
enabled=$(filter-out $($(1)-no),$($(1)-yes))
|
||||
cond_enabled=$(if $(filter yes,$($(1))), $(call enabled,$(2)))
|
||||
|
||||
find_file1=$(word 1,$(wildcard $(subst //,/,$(addsuffix /$(1),$(2)))))
|
||||
find_file=$(foreach f,$(1),$(call find_file1,$(strip $(f)),$(strip $(2))) )
|
||||
obj_pats=.c=.c.o $(AS_SFX)=$(AS_SFX).o .cc=.cc.o .cpp=.cpp.o
|
||||
objs=$(addprefix $(BUILD_PFX),$(foreach p,$(obj_pats),$(filter %.o,$(1:$(p))) ))
|
||||
|
||||
install_map_templates=$(eval $(call install_map_template,$(1),$(2)))
|
||||
|
||||
not=$(subst yes,no,$(1))
|
||||
|
||||
ifeq ($(CONFIG_MSVS),yes)
|
||||
lib_file_name=$(1).lib
|
||||
else
|
||||
lib_file_name=lib$(1).a
|
||||
endif
|
||||
#
|
||||
# Rule Templates
|
||||
#
|
||||
define linker_template
|
||||
$(1): $(filter-out -%,$(2))
|
||||
$(1):
|
||||
$(if $(quiet),@echo " [LD] $$@")
|
||||
$(qexec)$$(LD) $$(strip $$(INTERNAL_LDFLAGS) $$(LDFLAGS) -o $$@ $(2) $(3) $$(extralibs))
|
||||
endef
|
||||
define linkerxx_template
|
||||
$(1): $(filter-out -%,$(2))
|
||||
$(1):
|
||||
$(if $(quiet),@echo " [LD] $$@")
|
||||
$(qexec)$$(CXX) $$(strip $$(INTERNAL_LDFLAGS) $$(LDFLAGS) -o $$@ $(2) $(3) $$(extralibs))
|
||||
endef
|
||||
# make-3.80 has a bug with expanding large input strings to the eval function,
|
||||
# which was triggered in some cases by the following component of
|
||||
# linker_template:
|
||||
# $(1): $$(call find_file, $(patsubst -l%,lib%.a,$(filter -l%,$(2))),\
|
||||
# $$(patsubst -L%,%,$$(filter -L%,$$(LDFLAGS) $(2))))
|
||||
# This may be useful to revisit in the future (it tries to locate libraries
|
||||
# in a search path and add them as prerequisites
|
||||
|
||||
define install_map_template
|
||||
$(DIST_DIR)/$(1): $(2)
|
||||
$(if $(quiet),@echo " [INSTALL] $$@")
|
||||
$(qexec)mkdir -p $$(dir $$@)
|
||||
$(qexec)cp -p $$< $$@
|
||||
endef
|
||||
|
||||
define archive_template
|
||||
# Not using a pattern rule here because we don't want to generate empty
|
||||
# archives when they are listed as a dependency in files not responsible
|
||||
# for creating them.
|
||||
$(1):
|
||||
$(if $(quiet),@echo " [AR] $$@")
|
||||
$(qexec)$$(AR) $$(ARFLAGS) $$@ $$?
|
||||
endef
|
||||
|
||||
define so_template
|
||||
# Not using a pattern rule here because we don't want to generate empty
|
||||
# archives when they are listed as a dependency in files not responsible
|
||||
# for creating them.
|
||||
#
|
||||
# This needs further abstraction for dealing with non-GNU linkers.
|
||||
$(1):
|
||||
$(if $(quiet),@echo " [LD] $$@")
|
||||
$(qexec)$$(LD) -shared $$(LDFLAGS) \
|
||||
-Wl,--no-undefined -Wl,-soname,$$(SONAME) \
|
||||
-Wl,--version-script,$$(EXPORTS_FILE) -o $$@ \
|
||||
$$(filter %.o,$$^) $$(extralibs)
|
||||
endef
|
||||
|
||||
define dl_template
|
||||
# Not using a pattern rule here because we don't want to generate empty
|
||||
# archives when they are listed as a dependency in files not responsible
|
||||
# for creating them.
|
||||
$(1):
|
||||
$(if $(quiet),@echo " [LD] $$@")
|
||||
$(qexec)$$(LD) -dynamiclib $$(LDFLAGS) \
|
||||
-exported_symbols_list $$(EXPORTS_FILE) \
|
||||
-Wl,-headerpad_max_install_names,-compatibility_version,1.0,-current_version,$$(VERSION_MAJOR) \
|
||||
-o $$@ \
|
||||
$$(filter %.o,$$^) $$(extralibs)
|
||||
endef
|
||||
|
||||
define dll_template
|
||||
# Not using a pattern rule here because we don't want to generate empty
|
||||
# archives when they are listed as a dependency in files not responsible
|
||||
# for creating them.
|
||||
$(1):
|
||||
$(if $(quiet),@echo " [LD] $$@")
|
||||
$(qexec)$$(LD) -Zdll $$(LDFLAGS) \
|
||||
-o $$@ \
|
||||
$$(filter %.o,$$^) $$(extralibs) $$(EXPORTS_FILE)
|
||||
endef
|
||||
|
||||
|
||||
#
|
||||
# Get current configuration
|
||||
#
|
||||
ifneq ($(target),)
|
||||
include $(SRC_PATH_BARE)/$(target:-$(TOOLCHAIN)=).mk
|
||||
endif
|
||||
|
||||
skip_deps := $(filter %clean,$(MAKECMDGOALS))
|
||||
skip_deps += $(findstring testdata,$(MAKECMDGOALS))
|
||||
ifeq ($(strip $(skip_deps)),)
|
||||
ifeq ($(CONFIG_DEPENDENCY_TRACKING),yes)
|
||||
# Older versions of make don't like -include directives with no arguments
|
||||
ifneq ($(filter %.d,$(OBJS-yes:.o=.d)),)
|
||||
-include $(filter %.d,$(OBJS-yes:.o=.d))
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# Configuration dependent rules
|
||||
#
|
||||
$(call pairmap,install_map_templates,$(INSTALL_MAPS))
|
||||
|
||||
DOCS=$(call cond_enabled,CONFIG_INSTALL_DOCS,DOCS)
|
||||
.docs: $(DOCS)
|
||||
@touch $@
|
||||
|
||||
INSTALL-DOCS=$(call cond_enabled,CONFIG_INSTALL_DOCS,INSTALL-DOCS)
|
||||
ifeq ($(MAKECMDGOALS),dist)
|
||||
INSTALL-DOCS+=$(call cond_enabled,CONFIG_INSTALL_DOCS,DIST-DOCS)
|
||||
endif
|
||||
.install-docs: .docs $(addprefix $(DIST_DIR)/,$(INSTALL-DOCS))
|
||||
@touch $@
|
||||
|
||||
clean::
|
||||
rm -f .docs .install-docs $(DOCS)
|
||||
|
||||
BINS=$(call enabled,BINS)
|
||||
.bins: $(BINS)
|
||||
@touch $@
|
||||
|
||||
INSTALL-BINS=$(call cond_enabled,CONFIG_INSTALL_BINS,INSTALL-BINS)
|
||||
ifeq ($(MAKECMDGOALS),dist)
|
||||
INSTALL-BINS+=$(call cond_enabled,CONFIG_INSTALL_BINS,DIST-BINS)
|
||||
endif
|
||||
.install-bins: .bins $(addprefix $(DIST_DIR)/,$(INSTALL-BINS))
|
||||
@touch $@
|
||||
|
||||
clean::
|
||||
rm -f .bins .install-bins $(BINS)
|
||||
|
||||
LIBS=$(call enabled,LIBS)
|
||||
.libs: $(LIBS)
|
||||
@touch $@
|
||||
$(foreach lib,$(filter %_g.a,$(LIBS)),$(eval $(call archive_template,$(lib))))
|
||||
$(foreach lib,$(filter %so.$(SO_VERSION_MAJOR).$(SO_VERSION_MINOR).$(SO_VERSION_PATCH),$(LIBS)),$(eval $(call so_template,$(lib))))
|
||||
$(foreach lib,$(filter %$(SO_VERSION_MAJOR).dylib,$(LIBS)),$(eval $(call dl_template,$(lib))))
|
||||
$(foreach lib,$(filter %$(SO_VERSION_MAJOR).dll,$(LIBS)),$(eval $(call dll_template,$(lib))))
|
||||
|
||||
INSTALL-LIBS=$(call cond_enabled,CONFIG_INSTALL_LIBS,INSTALL-LIBS)
|
||||
ifeq ($(MAKECMDGOALS),dist)
|
||||
INSTALL-LIBS+=$(call cond_enabled,CONFIG_INSTALL_LIBS,DIST-LIBS)
|
||||
endif
|
||||
.install-libs: .libs $(addprefix $(DIST_DIR)/,$(INSTALL-LIBS))
|
||||
@touch $@
|
||||
|
||||
clean::
|
||||
rm -f .libs .install-libs $(LIBS)
|
||||
|
||||
ifeq ($(CONFIG_EXTERNAL_BUILD),yes)
|
||||
PROJECTS=$(call enabled,PROJECTS)
|
||||
.projects: $(PROJECTS)
|
||||
@touch $@
|
||||
|
||||
INSTALL-PROJECTS=$(call cond_enabled,CONFIG_INSTALL_PROJECTS,INSTALL-PROJECTS)
|
||||
ifeq ($(MAKECMDGOALS),dist)
|
||||
INSTALL-PROJECTS+=$(call cond_enabled,CONFIG_INSTALL_PROJECTS,DIST-PROJECTS)
|
||||
endif
|
||||
.install-projects: .projects $(addprefix $(DIST_DIR)/,$(INSTALL-PROJECTS))
|
||||
@touch $@
|
||||
|
||||
clean::
|
||||
rm -f .projects .install-projects $(PROJECTS)
|
||||
endif
|
||||
|
||||
# If there are any source files to be distributed, then include the build
|
||||
# system too.
|
||||
ifneq ($(call enabled,DIST-SRCS),)
|
||||
DIST-SRCS-yes += configure
|
||||
DIST-SRCS-yes += build/make/configure.sh
|
||||
DIST-SRCS-yes += build/make/gen_asm_deps.sh
|
||||
DIST-SRCS-yes += build/make/Makefile
|
||||
DIST-SRCS-$(CONFIG_MSVS) += build/make/gen_msvs_def.sh
|
||||
DIST-SRCS-$(CONFIG_MSVS) += build/make/gen_msvs_proj.sh
|
||||
DIST-SRCS-$(CONFIG_MSVS) += build/make/gen_msvs_sln.sh
|
||||
DIST-SRCS-$(CONFIG_MSVS) += build/make/gen_msvs_vcxproj.sh
|
||||
DIST-SRCS-$(CONFIG_MSVS) += build/make/msvs_common.sh
|
||||
DIST-SRCS-$(CONFIG_RVCT) += build/make/armlink_adapter.sh
|
||||
DIST-SRCS-$(ARCH_ARM) += build/make/ads2gas.pl
|
||||
DIST-SRCS-$(ARCH_ARM) += build/make/ads2gas_apple.pl
|
||||
DIST-SRCS-$(ARCH_ARM) += build/make/ads2armasm_ms.pl
|
||||
DIST-SRCS-$(ARCH_ARM) += build/make/thumb.pm
|
||||
DIST-SRCS-yes += $(target:-$(TOOLCHAIN)=).mk
|
||||
endif
|
||||
INSTALL-SRCS := $(call cond_enabled,CONFIG_INSTALL_SRCS,INSTALL-SRCS)
|
||||
ifeq ($(MAKECMDGOALS),dist)
|
||||
INSTALL-SRCS += $(call cond_enabled,CONFIG_INSTALL_SRCS,DIST-SRCS)
|
||||
endif
|
||||
.install-srcs: $(addprefix $(DIST_DIR)/src/,$(INSTALL-SRCS))
|
||||
@touch $@
|
||||
|
||||
clean::
|
||||
rm -f .install-srcs
|
||||
|
||||
ifeq ($(CONFIG_EXTERNAL_BUILD),yes)
|
||||
BUILD_TARGETS += .projects
|
||||
INSTALL_TARGETS += .install-projects
|
||||
endif
|
||||
BUILD_TARGETS += .docs .libs .bins
|
||||
INSTALL_TARGETS += .install-docs .install-srcs .install-libs .install-bins
|
||||
all: $(BUILD_TARGETS)
|
||||
install:: $(INSTALL_TARGETS)
|
||||
dist: $(INSTALL_TARGETS)
|
||||
test::
|
|
@ -0,0 +1,39 @@
|
|||
#!/usr/bin/env perl
|
||||
##
|
||||
## Copyright (c) 2013 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## tree. An additional intellectual property rights grant can be found
|
||||
## in the file PATENTS. All contributing project authors may
|
||||
## be found in the AUTHORS file in the root of the source tree.
|
||||
##
|
||||
|
||||
use FindBin;
|
||||
use lib $FindBin::Bin;
|
||||
use thumb;
|
||||
|
||||
print "; This file was created from a .asm file\n";
|
||||
print "; using the ads2armasm_ms.pl script.\n";
|
||||
|
||||
while (<STDIN>)
|
||||
{
|
||||
undef $comment;
|
||||
undef $line;
|
||||
|
||||
s/REQUIRE8//;
|
||||
s/PRESERVE8//;
|
||||
s/^\s*ARM\s*$//;
|
||||
s/AREA\s+\|\|(.*)\|\|/AREA |$1|/;
|
||||
s/qsubaddx/qsax/i;
|
||||
s/qaddsubx/qasx/i;
|
||||
|
||||
thumb::FixThumbInstructions($_, 1);
|
||||
|
||||
s/ldrneb/ldrbne/i;
|
||||
s/ldrneh/ldrhne/i;
|
||||
s/^(\s*)ENDP.*/$&\n$1ALIGN 4/;
|
||||
|
||||
print;
|
||||
}
|
||||
|
|
@ -0,0 +1,235 @@
|
|||
#!/usr/bin/env perl
|
||||
##
|
||||
## Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## tree. An additional intellectual property rights grant can be found
|
||||
## in the file PATENTS. All contributing project authors may
|
||||
## be found in the AUTHORS file in the root of the source tree.
|
||||
##
|
||||
|
||||
|
||||
# ads2gas_apple.pl
|
||||
# Author: Eric Fung (efung (at) acm.org)
|
||||
#
|
||||
# Convert ARM Developer Suite 1.0.1 syntax assembly source to GNU as format
|
||||
#
|
||||
# Usage: cat inputfile | perl ads2gas_apple.pl > outputfile
|
||||
#
|
||||
|
||||
my $chromium = 0;
|
||||
|
||||
foreach my $arg (@ARGV) {
|
||||
$chromium = 1 if ($arg eq "-chromium");
|
||||
}
|
||||
|
||||
print "@ This file was created from a .asm file\n";
|
||||
print "@ using the ads2gas_apple.pl script.\n\n";
|
||||
print "\t.set WIDE_REFERENCE, 0\n";
|
||||
print "\t.set ARCHITECTURE, 5\n";
|
||||
print "\t.set DO1STROUNDING, 0\n";
|
||||
|
||||
my %register_aliases;
|
||||
my %macro_aliases;
|
||||
|
||||
my @mapping_list = ("\$0", "\$1", "\$2", "\$3", "\$4", "\$5", "\$6", "\$7", "\$8", "\$9");
|
||||
|
||||
my @incoming_array;
|
||||
|
||||
my @imported_functions;
|
||||
|
||||
# Perl trim function to remove whitespace from the start and end of the string
|
||||
sub trim($)
|
||||
{
|
||||
my $string = shift;
|
||||
$string =~ s/^\s+//;
|
||||
$string =~ s/\s+$//;
|
||||
return $string;
|
||||
}
|
||||
|
||||
while (<STDIN>)
|
||||
{
|
||||
# Load and store alignment
|
||||
s/@/,:/g;
|
||||
|
||||
# Comment character
|
||||
s/;/ @/g;
|
||||
|
||||
# Hexadecimal constants prefaced by 0x
|
||||
s/#&/#0x/g;
|
||||
|
||||
# Convert :OR: to |
|
||||
s/:OR:/ | /g;
|
||||
|
||||
# Convert :AND: to &
|
||||
s/:AND:/ & /g;
|
||||
|
||||
# Convert :NOT: to ~
|
||||
s/:NOT:/ ~ /g;
|
||||
|
||||
# Convert :SHL: to <<
|
||||
s/:SHL:/ << /g;
|
||||
|
||||
# Convert :SHR: to >>
|
||||
s/:SHR:/ >> /g;
|
||||
|
||||
# Convert ELSE to .else
|
||||
s/\bELSE\b/.else/g;
|
||||
|
||||
# Convert ENDIF to .endif
|
||||
s/\bENDIF\b/.endif/g;
|
||||
|
||||
# Convert ELSEIF to .elseif
|
||||
s/\bELSEIF\b/.elseif/g;
|
||||
|
||||
# Convert LTORG to .ltorg
|
||||
s/\bLTORG\b/.ltorg/g;
|
||||
|
||||
# Convert IF :DEF:to .if
|
||||
# gcc doesn't have the ability to do a conditional
|
||||
# if defined variable that is set by IF :DEF: on
|
||||
# armasm, so convert it to a normal .if and then
|
||||
# make sure to define a value elesewhere
|
||||
if (s/\bIF :DEF:\b/.if /g)
|
||||
{
|
||||
s/=/==/g;
|
||||
}
|
||||
|
||||
# Convert IF to .if
|
||||
if (s/\bIF\b/.if/g)
|
||||
{
|
||||
s/=/==/g;
|
||||
}
|
||||
|
||||
# Convert INCLUDE to .INCLUDE "file"
|
||||
s/INCLUDE(\s*)(.*)$/.include $1\"$2\"/;
|
||||
|
||||
# Code directive (ARM vs Thumb)
|
||||
s/CODE([0-9][0-9])/.code $1/;
|
||||
|
||||
# No AREA required
|
||||
# But ALIGNs in AREA must be obeyed
|
||||
s/^\s*AREA.*ALIGN=([0-9])$/.text\n.p2align $1/;
|
||||
# If no ALIGN, strip the AREA and align to 4 bytes
|
||||
s/^\s*AREA.*$/.text\n.p2align 2/;
|
||||
|
||||
# DCD to .word
|
||||
# This one is for incoming symbols
|
||||
s/DCD\s+\|(\w*)\|/.long $1/;
|
||||
|
||||
# DCW to .short
|
||||
s/DCW\s+\|(\w*)\|/.short $1/;
|
||||
s/DCW(.*)/.short $1/;
|
||||
|
||||
# Constants defined in scope
|
||||
s/DCD(.*)/.long $1/;
|
||||
s/DCB(.*)/.byte $1/;
|
||||
|
||||
# Build a hash of all the register - alias pairs.
|
||||
if (s/(.*)RN(.*)/$1 .req $2/g)
|
||||
{
|
||||
$register_aliases{trim($1)} = trim($2);
|
||||
next;
|
||||
}
|
||||
|
||||
while (($key, $value) = each(%register_aliases))
|
||||
{
|
||||
s/\b$key\b/$value/g;
|
||||
}
|
||||
|
||||
# Make function visible to linker, and make additional symbol with
|
||||
# prepended underscore
|
||||
s/EXPORT\s+\|([\$\w]*)\|/.globl _$1\n\t.globl $1/;
|
||||
|
||||
# Prepend imported functions with _
|
||||
if (s/IMPORT\s+\|([\$\w]*)\|/.globl $1/)
|
||||
{
|
||||
$function = trim($1);
|
||||
push(@imported_functions, $function);
|
||||
}
|
||||
|
||||
foreach $function (@imported_functions)
|
||||
{
|
||||
s/$function/_$function/;
|
||||
}
|
||||
|
||||
# No vertical bars required; make additional symbol with prepended
|
||||
# underscore
|
||||
s/^\|(\$?\w+)\|/_$1\n\t$1:/g;
|
||||
|
||||
# Labels need trailing colon
|
||||
# s/^(\w+)/$1:/ if !/EQU/;
|
||||
# put the colon at the end of the line in the macro
|
||||
s/^([a-zA-Z_0-9\$]+)/$1:/ if !/EQU/;
|
||||
|
||||
# ALIGN directive
|
||||
s/\bALIGN\b/.balign/g;
|
||||
|
||||
# Strip ARM
|
||||
s/\sARM/@ ARM/g;
|
||||
|
||||
# Strip REQUIRE8
|
||||
#s/\sREQUIRE8/@ REQUIRE8/g;
|
||||
s/\sREQUIRE8/@ /g;
|
||||
|
||||
# Strip PRESERVE8
|
||||
s/\sPRESERVE8/@ PRESERVE8/g;
|
||||
|
||||
# Strip PROC and ENDPROC
|
||||
s/\bPROC\b/@/g;
|
||||
s/\bENDP\b/@/g;
|
||||
|
||||
# EQU directive
|
||||
s/(.*)EQU(.*)/.set $1, $2/;
|
||||
|
||||
# Begin macro definition
|
||||
if (/\bMACRO\b/)
|
||||
{
|
||||
# Process next line down, which will be the macro definition
|
||||
$_ = <STDIN>;
|
||||
|
||||
$trimmed = trim($_);
|
||||
|
||||
# remove commas that are separating list
|
||||
$trimmed =~ s/,//g;
|
||||
|
||||
# string to array
|
||||
@incoming_array = split(/\s+/, $trimmed);
|
||||
|
||||
print ".macro @incoming_array[0]\n";
|
||||
|
||||
# remove the first element, as that is the name of the macro
|
||||
shift (@incoming_array);
|
||||
|
||||
@macro_aliases{@incoming_array} = @mapping_list;
|
||||
|
||||
next;
|
||||
}
|
||||
|
||||
while (($key, $value) = each(%macro_aliases))
|
||||
{
|
||||
$key =~ s/\$/\\\$/;
|
||||
s/$key\b/$value/g;
|
||||
}
|
||||
|
||||
# For macros, use \ to reference formal params
|
||||
# s/\$/\\/g; # End macro definition
|
||||
s/\bMEND\b/.endm/; # No need to tell it where to stop assembling
|
||||
next if /^\s*END\s*$/;
|
||||
|
||||
# Clang used by Chromium differs slightly from clang in XCode in what it
|
||||
# will accept in the assembly.
|
||||
if ($chromium) {
|
||||
s/qsubaddx/qsax/i;
|
||||
s/qaddsubx/qasx/i;
|
||||
s/ldrneb/ldrbne/i;
|
||||
s/ldrneh/ldrhne/i;
|
||||
s/(vqshrun\.s16 .*, \#)0$/${1}8/i;
|
||||
|
||||
# http://llvm.org/bugs/show_bug.cgi?id=16022
|
||||
s/\.include/#include/;
|
||||
}
|
||||
|
||||
print;
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
#!/bin/sh
|
||||
##
|
||||
## Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## tree. An additional intellectual property rights grant can be found
|
||||
## in the file PATENTS. All contributing project authors may
|
||||
## be found in the AUTHORS file in the root of the source tree.
|
||||
##
|
||||
|
||||
|
||||
verbose=0
|
||||
set -- $*
|
||||
for i; do
|
||||
if [ "$i" = "-o" ]; then
|
||||
on_of=1
|
||||
elif [ "$i" = "-v" ]; then
|
||||
verbose=1
|
||||
elif [ "$i" = "-g" ]; then
|
||||
args="${args} --debug"
|
||||
elif [ "$on_of" = "1" ]; then
|
||||
outfile=$i
|
||||
on_of=0
|
||||
elif [ -f "$i" ]; then
|
||||
infiles="$infiles $i"
|
||||
elif [ "${i#-l}" != "$i" ]; then
|
||||
libs="$libs ${i#-l}"
|
||||
elif [ "${i#-L}" != "$i" ]; then
|
||||
libpaths="${libpaths} ${i#-L}"
|
||||
else
|
||||
args="${args} ${i}"
|
||||
fi
|
||||
shift
|
||||
done
|
||||
|
||||
# Absolutize library file names
|
||||
for f in $libs; do
|
||||
found=0
|
||||
for d in $libpaths; do
|
||||
[ -f "$d/$f" ] && infiles="$infiles $d/$f" && found=1 && break
|
||||
[ -f "$d/lib${f}.so" ] && infiles="$infiles $d/lib${f}.so" && found=1 && break
|
||||
[ -f "$d/lib${f}.a" ] && infiles="$infiles $d/lib${f}.a" && found=1 && break
|
||||
done
|
||||
[ $found -eq 0 ] && infiles="$infiles $f"
|
||||
done
|
||||
for d in $libpaths; do
|
||||
[ -n "$libsearchpath" ] && libsearchpath="${libsearchpath},"
|
||||
libsearchpath="${libsearchpath}$d"
|
||||
done
|
||||
|
||||
cmd="armlink $args --userlibpath=$libsearchpath --output=$outfile $infiles"
|
||||
[ $verbose -eq 1 ] && echo $cmd
|
||||
$cmd
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,64 @@
|
|||
#!/bin/sh
|
||||
##
|
||||
## Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## tree. An additional intellectual property rights grant can be found
|
||||
## in the file PATENTS. All contributing project authors may
|
||||
## be found in the AUTHORS file in the root of the source tree.
|
||||
##
|
||||
|
||||
|
||||
self=$0
|
||||
show_help() {
|
||||
echo "usage: $self [options] <srcfile>"
|
||||
echo
|
||||
echo "Generate Makefile dependency information from assembly code source"
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
die_unknown(){
|
||||
echo "Unknown option \"$1\"."
|
||||
echo "See $0 --help for available options."
|
||||
exit 1
|
||||
}
|
||||
for opt do
|
||||
optval="${opt#*=}"
|
||||
case "$opt" in
|
||||
--build-pfx=*) pfx="${optval}"
|
||||
;;
|
||||
--depfile=*) out="${optval}"
|
||||
;;
|
||||
-I*) raw_inc_paths="${raw_inc_paths} ${opt}"
|
||||
inc_path="${inc_path} ${opt#-I}"
|
||||
;;
|
||||
-h|--help) show_help
|
||||
;;
|
||||
*) [ -f "$opt" ] && srcfile="$opt"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
[ -n "$srcfile" ] || show_help
|
||||
sfx=${sfx:-asm}
|
||||
includes=$(LC_ALL=C egrep -i "include +\"?[a-z0-9_/]+\.${sfx}" $srcfile |
|
||||
perl -p -e "s;.*?([a-z0-9_/]+.${sfx}).*;\1;")
|
||||
#" restore editor state
|
||||
for inc in ${includes}; do
|
||||
found_inc_path=
|
||||
for idir in ${inc_path}; do
|
||||
[ -f "${idir}/${inc}" ] && found_inc_path="${idir}" && break
|
||||
done
|
||||
if [ -f `dirname $srcfile`/$inc ]; then
|
||||
# Handle include files in the same directory as the source
|
||||
$self --build-pfx=$pfx --depfile=$out ${raw_inc_paths} `dirname $srcfile`/$inc
|
||||
elif [ -n "${found_inc_path}" ]; then
|
||||
# Handle include files on the include path
|
||||
$self --build-pfx=$pfx --depfile=$out ${raw_inc_paths} "${found_inc_path}/$inc"
|
||||
else
|
||||
# Handle generated includes in the build root (which may not exist yet)
|
||||
echo ${out} ${out%d}o: "${pfx}${inc}"
|
||||
fi
|
||||
done
|
||||
echo ${out} ${out%d}o: $srcfile
|
|
@ -0,0 +1,83 @@
|
|||
#!/bin/bash
|
||||
##
|
||||
## Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## tree. An additional intellectual property rights grant can be found
|
||||
## in the file PATENTS. All contributing project authors may
|
||||
## be found in the AUTHORS file in the root of the source tree.
|
||||
##
|
||||
|
||||
|
||||
self=$0
|
||||
self_basename=${self##*/}
|
||||
EOL=$'\n'
|
||||
|
||||
show_help() {
|
||||
cat <<EOF
|
||||
Usage: ${self_basename} [options] file1 [file2 ...]
|
||||
|
||||
This script generates a MSVC module definition file containing a list of symbols
|
||||
to export from a DLL. Source files are technically bash scripts (and thus may
|
||||
use #comment syntax) but in general, take the form of a list of symbols:
|
||||
|
||||
<kind> symbol1 [symbol2, symbol3, ...]
|
||||
|
||||
where <kind> is either 'text' or 'data'
|
||||
|
||||
|
||||
Options:
|
||||
--help Print this message
|
||||
--out=filename Write output to a file [stdout]
|
||||
--name=project_name Name of the library (required)
|
||||
EOF
|
||||
exit 1
|
||||
}
|
||||
|
||||
die() {
|
||||
echo "${self_basename}: $@"
|
||||
exit 1
|
||||
}
|
||||
|
||||
die_unknown(){
|
||||
echo "Unknown option \"$1\"."
|
||||
echo "See ${self_basename} --help for available options."
|
||||
exit 1
|
||||
}
|
||||
|
||||
text() {
|
||||
for sym in "$@"; do
|
||||
echo " $sym" >> ${outfile}
|
||||
done
|
||||
}
|
||||
|
||||
data() {
|
||||
for sym in "$@"; do
|
||||
printf " %-40s DATA\n" "$sym" >> ${outfile}
|
||||
done
|
||||
}
|
||||
|
||||
# Process command line
|
||||
for opt in "$@"; do
|
||||
optval="${opt#*=}"
|
||||
case "$opt" in
|
||||
--help|-h) show_help
|
||||
;;
|
||||
--out=*) outfile="$optval"
|
||||
;;
|
||||
--name=*) name="${optval}"
|
||||
;;
|
||||
-*) die_unknown $opt
|
||||
;;
|
||||
*) file_list[${#file_list[@]}]="$opt"
|
||||
esac
|
||||
done
|
||||
outfile=${outfile:-/dev/stdout}
|
||||
[ -n "$name" ] || die "Library name (--name) must be specified!"
|
||||
|
||||
echo "LIBRARY ${name}" > ${outfile}
|
||||
echo "EXPORTS" >> ${outfile}
|
||||
for f in "${file_list[@]}"; do
|
||||
. $f
|
||||
done
|
|
@ -0,0 +1,486 @@
|
|||
#!/bin/bash
|
||||
##
|
||||
## Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## tree. An additional intellectual property rights grant can be found
|
||||
## in the file PATENTS. All contributing project authors may
|
||||
## be found in the AUTHORS file in the root of the source tree.
|
||||
##
|
||||
|
||||
self=$0
|
||||
self_basename=${self##*/}
|
||||
self_dirname=$(dirname "$0")
|
||||
|
||||
. "$self_dirname/msvs_common.sh"|| exit 127
|
||||
|
||||
show_help() {
|
||||
cat <<EOF
|
||||
Usage: ${self_basename} --name=projname [options] file1 [file2 ...]
|
||||
|
||||
This script generates a Visual Studio project file from a list of source
|
||||
code files.
|
||||
|
||||
Options:
|
||||
--help Print this message
|
||||
--exe Generate a project for building an Application
|
||||
--lib Generate a project for creating a static library
|
||||
--dll Generate a project for creating a dll
|
||||
--static-crt Use the static C runtime (/MT)
|
||||
--target=isa-os-cc Target specifier (required)
|
||||
--out=filename Write output to a file [stdout]
|
||||
--name=project_name Name of the project (required)
|
||||
--proj-guid=GUID GUID to use for the project
|
||||
--module-def=filename File containing export definitions (for DLLs)
|
||||
--ver=version Version (7,8,9) of visual studio to generate for
|
||||
--src-path-bare=dir Path to root of source tree
|
||||
-Ipath/to/include Additional include directories
|
||||
-DFLAG[=value] Preprocessor macros to define
|
||||
-Lpath/to/lib Additional library search paths
|
||||
-llibname Library to link against
|
||||
EOF
|
||||
exit 1
|
||||
}
|
||||
|
||||
generate_filter() {
|
||||
local var=$1
|
||||
local name=$2
|
||||
local pats=$3
|
||||
local file_list_sz
|
||||
local i
|
||||
local f
|
||||
local saveIFS="$IFS"
|
||||
local pack
|
||||
echo "generating filter '$name' from ${#file_list[@]} files" >&2
|
||||
IFS=*
|
||||
|
||||
open_tag Filter \
|
||||
Name=$name \
|
||||
Filter=$pats \
|
||||
UniqueIdentifier=`generate_uuid` \
|
||||
|
||||
file_list_sz=${#file_list[@]}
|
||||
for i in ${!file_list[@]}; do
|
||||
f=${file_list[i]}
|
||||
for pat in ${pats//;/$IFS}; do
|
||||
if [ "${f##*.}" == "$pat" ]; then
|
||||
unset file_list[i]
|
||||
|
||||
objf=$(echo ${f%.*}.obj \
|
||||
| sed -e "s,$src_path_bare,," \
|
||||
-e 's/^[\./]\+//g' -e 's,[:/ ],_,g')
|
||||
open_tag File RelativePath="$f"
|
||||
|
||||
if [ "$pat" == "asm" ] && $asm_use_custom_step; then
|
||||
for plat in "${platforms[@]}"; do
|
||||
for cfg in Debug Release; do
|
||||
open_tag FileConfiguration \
|
||||
Name="${cfg}|${plat}" \
|
||||
|
||||
tag Tool \
|
||||
Name="VCCustomBuildTool" \
|
||||
Description="Assembling \$(InputFileName)" \
|
||||
CommandLine="$(eval echo \$asm_${cfg}_cmdline) -o \$(IntDir)\\$objf" \
|
||||
Outputs="\$(IntDir)\\$objf" \
|
||||
|
||||
close_tag FileConfiguration
|
||||
done
|
||||
done
|
||||
fi
|
||||
if [ "$pat" == "c" ] || \
|
||||
[ "$pat" == "cc" ] || [ "$pat" == "cpp" ]; then
|
||||
for plat in "${platforms[@]}"; do
|
||||
for cfg in Debug Release; do
|
||||
open_tag FileConfiguration \
|
||||
Name="${cfg}|${plat}" \
|
||||
|
||||
tag Tool \
|
||||
Name="VCCLCompilerTool" \
|
||||
ObjectFile="\$(IntDir)\\$objf" \
|
||||
|
||||
close_tag FileConfiguration
|
||||
done
|
||||
done
|
||||
fi
|
||||
close_tag File
|
||||
|
||||
break
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
close_tag Filter
|
||||
IFS="$saveIFS"
|
||||
}
|
||||
|
||||
# Process command line
|
||||
unset target
|
||||
for opt in "$@"; do
|
||||
optval="${opt#*=}"
|
||||
case "$opt" in
|
||||
--help|-h) show_help
|
||||
;;
|
||||
--target=*) target="${optval}"
|
||||
;;
|
||||
--out=*) outfile="$optval"
|
||||
;;
|
||||
--name=*) name="${optval}"
|
||||
;;
|
||||
--proj-guid=*) guid="${optval}"
|
||||
;;
|
||||
--module-def=*) link_opts="${link_opts} ModuleDefinitionFile=${optval}"
|
||||
;;
|
||||
--exe) proj_kind="exe"
|
||||
;;
|
||||
--dll) proj_kind="dll"
|
||||
;;
|
||||
--lib) proj_kind="lib"
|
||||
;;
|
||||
--src-path-bare=*)
|
||||
src_path_bare=$(fix_path "$optval")
|
||||
src_path_bare=${src_path_bare%/}
|
||||
;;
|
||||
--static-crt) use_static_runtime=true
|
||||
;;
|
||||
--ver=*)
|
||||
vs_ver="$optval"
|
||||
case "$optval" in
|
||||
[789])
|
||||
;;
|
||||
*) die Unrecognized Visual Studio Version in $opt
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
-I*)
|
||||
opt=${opt##-I}
|
||||
opt=$(fix_path "$opt")
|
||||
opt="${opt%/}"
|
||||
incs="${incs}${incs:+;}"${opt}""
|
||||
yasmincs="${yasmincs} -I"${opt}""
|
||||
;;
|
||||
-D*) defines="${defines}${defines:+;}${opt##-D}"
|
||||
;;
|
||||
-L*) # fudge . to $(OutDir)
|
||||
if [ "${opt##-L}" == "." ]; then
|
||||
libdirs="${libdirs}${libdirs:+;}"\$(OutDir)""
|
||||
else
|
||||
# Also try directories for this platform/configuration
|
||||
opt=${opt##-L}
|
||||
opt=$(fix_path "$opt")
|
||||
libdirs="${libdirs}${libdirs:+;}"${opt}""
|
||||
libdirs="${libdirs}${libdirs:+;}"${opt}/\$(PlatformName)/\$(ConfigurationName)""
|
||||
libdirs="${libdirs}${libdirs:+;}"${opt}/\$(PlatformName)""
|
||||
fi
|
||||
;;
|
||||
-l*) libs="${libs}${libs:+ }${opt##-l}.lib"
|
||||
;;
|
||||
-*) die_unknown $opt
|
||||
;;
|
||||
*)
|
||||
# The paths in file_list are fixed outside of the loop.
|
||||
file_list[${#file_list[@]}]="$opt"
|
||||
case "$opt" in
|
||||
*.asm) uses_asm=true
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Make one call to fix_path for file_list to improve performance.
|
||||
fix_file_list
|
||||
|
||||
outfile=${outfile:-/dev/stdout}
|
||||
guid=${guid:-`generate_uuid`}
|
||||
asm_use_custom_step=false
|
||||
uses_asm=${uses_asm:-false}
|
||||
case "${vs_ver:-8}" in
|
||||
7) vs_ver_id="7.10"
|
||||
asm_use_custom_step=$uses_asm
|
||||
warn_64bit='Detect64BitPortabilityProblems=true'
|
||||
;;
|
||||
8) vs_ver_id="8.00"
|
||||
asm_use_custom_step=$uses_asm
|
||||
warn_64bit='Detect64BitPortabilityProblems=true'
|
||||
;;
|
||||
9) vs_ver_id="9.00"
|
||||
asm_use_custom_step=$uses_asm
|
||||
warn_64bit='Detect64BitPortabilityProblems=false'
|
||||
;;
|
||||
esac
|
||||
|
||||
[ -n "$name" ] || die "Project name (--name) must be specified!"
|
||||
[ -n "$target" ] || die "Target (--target) must be specified!"
|
||||
|
||||
if ${use_static_runtime:-false}; then
|
||||
release_runtime=0
|
||||
debug_runtime=1
|
||||
lib_sfx=mt
|
||||
else
|
||||
release_runtime=2
|
||||
debug_runtime=3
|
||||
lib_sfx=md
|
||||
fi
|
||||
|
||||
# Calculate debug lib names: If a lib ends in ${lib_sfx}.lib, then rename
|
||||
# it to ${lib_sfx}d.lib. This precludes linking to release libs from a
|
||||
# debug exe, so this may need to be refactored later.
|
||||
for lib in ${libs}; do
|
||||
if [ "$lib" != "${lib%${lib_sfx}.lib}" ]; then
|
||||
lib=${lib%.lib}d.lib
|
||||
fi
|
||||
debug_libs="${debug_libs}${debug_libs:+ }${lib}"
|
||||
done
|
||||
|
||||
|
||||
# List Keyword for this target
|
||||
case "$target" in
|
||||
x86*) keyword="ManagedCProj"
|
||||
;;
|
||||
*) die "Unsupported target $target!"
|
||||
esac
|
||||
|
||||
# List of all platforms supported for this target
|
||||
case "$target" in
|
||||
x86_64*)
|
||||
platforms[0]="x64"
|
||||
asm_Debug_cmdline="yasm -Xvc -g cv8 -f win64 ${yasmincs} "\$(InputPath)""
|
||||
asm_Release_cmdline="yasm -Xvc -f win64 ${yasmincs} "\$(InputPath)""
|
||||
;;
|
||||
x86*)
|
||||
platforms[0]="Win32"
|
||||
asm_Debug_cmdline="yasm -Xvc -g cv8 -f win32 ${yasmincs} "\$(InputPath)""
|
||||
asm_Release_cmdline="yasm -Xvc -f win32 ${yasmincs} "\$(InputPath)""
|
||||
;;
|
||||
*) die "Unsupported target $target!"
|
||||
;;
|
||||
esac
|
||||
|
||||
generate_vcproj() {
|
||||
case "$proj_kind" in
|
||||
exe) vs_ConfigurationType=1
|
||||
;;
|
||||
dll) vs_ConfigurationType=2
|
||||
;;
|
||||
*) vs_ConfigurationType=4
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "<?xml version=\"1.0\" encoding=\"Windows-1252\"?>"
|
||||
open_tag VisualStudioProject \
|
||||
ProjectType="Visual C++" \
|
||||
Version="${vs_ver_id}" \
|
||||
Name="${name}" \
|
||||
ProjectGUID="{${guid}}" \
|
||||
RootNamespace="${name}" \
|
||||
Keyword="${keyword}" \
|
||||
|
||||
open_tag Platforms
|
||||
for plat in "${platforms[@]}"; do
|
||||
tag Platform Name="$plat"
|
||||
done
|
||||
close_tag Platforms
|
||||
|
||||
open_tag Configurations
|
||||
for plat in "${platforms[@]}"; do
|
||||
plat_no_ws=`echo $plat | sed 's/[^A-Za-z0-9_]/_/g'`
|
||||
open_tag Configuration \
|
||||
Name="Debug|$plat" \
|
||||
OutputDirectory="\$(SolutionDir)$plat_no_ws/\$(ConfigurationName)" \
|
||||
IntermediateDirectory="$plat_no_ws/\$(ConfigurationName)/${name}" \
|
||||
ConfigurationType="$vs_ConfigurationType" \
|
||||
CharacterSet="1" \
|
||||
|
||||
case "$target" in
|
||||
x86*)
|
||||
case "$name" in
|
||||
vpx)
|
||||
tag Tool \
|
||||
Name="VCCLCompilerTool" \
|
||||
Optimization="0" \
|
||||
AdditionalIncludeDirectories="$incs" \
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;$defines" \
|
||||
RuntimeLibrary="$debug_runtime" \
|
||||
UsePrecompiledHeader="0" \
|
||||
WarningLevel="3" \
|
||||
DebugInformationFormat="2" \
|
||||
$warn_64bit \
|
||||
|
||||
$uses_asm && tag Tool Name="YASM" IncludePaths="$incs" Debug="true"
|
||||
;;
|
||||
*)
|
||||
tag Tool \
|
||||
Name="VCCLCompilerTool" \
|
||||
Optimization="0" \
|
||||
AdditionalIncludeDirectories="$incs" \
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;$defines" \
|
||||
RuntimeLibrary="$debug_runtime" \
|
||||
UsePrecompiledHeader="0" \
|
||||
WarningLevel="3" \
|
||||
DebugInformationFormat="2" \
|
||||
$warn_64bit \
|
||||
|
||||
$uses_asm && tag Tool Name="YASM" IncludePaths="$incs" Debug="true"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$proj_kind" in
|
||||
exe)
|
||||
case "$target" in
|
||||
x86*)
|
||||
case "$name" in
|
||||
*)
|
||||
tag Tool \
|
||||
Name="VCLinkerTool" \
|
||||
AdditionalDependencies="$debug_libs \$(NoInherit)" \
|
||||
AdditionalLibraryDirectories="$libdirs" \
|
||||
GenerateDebugInformation="true" \
|
||||
ProgramDatabaseFile="\$(OutDir)/${name}.pdb" \
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
lib)
|
||||
case "$target" in
|
||||
x86*)
|
||||
tag Tool \
|
||||
Name="VCLibrarianTool" \
|
||||
OutputFile="\$(OutDir)/${name}${lib_sfx}d.lib" \
|
||||
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
dll)
|
||||
tag Tool \
|
||||
Name="VCLinkerTool" \
|
||||
AdditionalDependencies="\$(NoInherit)" \
|
||||
LinkIncremental="2" \
|
||||
GenerateDebugInformation="true" \
|
||||
AssemblyDebug="1" \
|
||||
TargetMachine="1" \
|
||||
$link_opts \
|
||||
|
||||
;;
|
||||
esac
|
||||
|
||||
close_tag Configuration
|
||||
|
||||
open_tag Configuration \
|
||||
Name="Release|$plat" \
|
||||
OutputDirectory="\$(SolutionDir)$plat_no_ws/\$(ConfigurationName)" \
|
||||
IntermediateDirectory="$plat_no_ws/\$(ConfigurationName)/${name}" \
|
||||
ConfigurationType="$vs_ConfigurationType" \
|
||||
CharacterSet="1" \
|
||||
WholeProgramOptimization="0" \
|
||||
|
||||
case "$target" in
|
||||
x86*)
|
||||
case "$name" in
|
||||
vpx)
|
||||
tag Tool \
|
||||
Name="VCCLCompilerTool" \
|
||||
Optimization="2" \
|
||||
FavorSizeorSpeed="1" \
|
||||
AdditionalIncludeDirectories="$incs" \
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;$defines" \
|
||||
RuntimeLibrary="$release_runtime" \
|
||||
UsePrecompiledHeader="0" \
|
||||
WarningLevel="3" \
|
||||
DebugInformationFormat="0" \
|
||||
$warn_64bit \
|
||||
|
||||
$uses_asm && tag Tool Name="YASM" IncludePaths="$incs"
|
||||
;;
|
||||
*)
|
||||
tag Tool \
|
||||
Name="VCCLCompilerTool" \
|
||||
AdditionalIncludeDirectories="$incs" \
|
||||
Optimization="2" \
|
||||
FavorSizeorSpeed="1" \
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;$defines" \
|
||||
RuntimeLibrary="$release_runtime" \
|
||||
UsePrecompiledHeader="0" \
|
||||
WarningLevel="3" \
|
||||
DebugInformationFormat="0" \
|
||||
$warn_64bit \
|
||||
|
||||
$uses_asm && tag Tool Name="YASM" IncludePaths="$incs"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$proj_kind" in
|
||||
exe)
|
||||
case "$target" in
|
||||
x86*)
|
||||
case "$name" in
|
||||
*)
|
||||
tag Tool \
|
||||
Name="VCLinkerTool" \
|
||||
AdditionalDependencies="$libs \$(NoInherit)" \
|
||||
AdditionalLibraryDirectories="$libdirs" \
|
||||
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
lib)
|
||||
case "$target" in
|
||||
x86*)
|
||||
tag Tool \
|
||||
Name="VCLibrarianTool" \
|
||||
OutputFile="\$(OutDir)/${name}${lib_sfx}.lib" \
|
||||
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
dll) # note differences to debug version: LinkIncremental, AssemblyDebug
|
||||
tag Tool \
|
||||
Name="VCLinkerTool" \
|
||||
AdditionalDependencies="\$(NoInherit)" \
|
||||
LinkIncremental="1" \
|
||||
GenerateDebugInformation="true" \
|
||||
TargetMachine="1" \
|
||||
$link_opts \
|
||||
|
||||
;;
|
||||
esac
|
||||
|
||||
close_tag Configuration
|
||||
done
|
||||
close_tag Configurations
|
||||
|
||||
open_tag Files
|
||||
generate_filter srcs "Source Files" "c;cc;cpp;def;odl;idl;hpj;bat;asm;asmx"
|
||||
generate_filter hdrs "Header Files" "h;hm;inl;inc;xsd"
|
||||
generate_filter resrcs "Resource Files" "rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
|
||||
generate_filter resrcs "Build Files" "mk"
|
||||
close_tag Files
|
||||
|
||||
tag Globals
|
||||
close_tag VisualStudioProject
|
||||
|
||||
# This must be done from within the {} subshell
|
||||
echo "Ignored files list (${#file_list[@]} items) is:" >&2
|
||||
for f in "${file_list[@]}"; do
|
||||
echo " $f" >&2
|
||||
done
|
||||
}
|
||||
|
||||
generate_vcproj |
|
||||
sed -e '/"/s;\([^ "]\)/;\1\\;g' > ${outfile}
|
||||
|
||||
exit
|
||||
<!--
|
||||
TODO: Add any files not captured by filters.
|
||||
<File
|
||||
RelativePath=".\ReadMe.txt"
|
||||
>
|
||||
</File>
|
||||
-->
|
|
@ -0,0 +1,324 @@
|
|||
#!/bin/bash
|
||||
##
|
||||
## Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## tree. An additional intellectual property rights grant can be found
|
||||
## in the file PATENTS. All contributing project authors may
|
||||
## be found in the AUTHORS file in the root of the source tree.
|
||||
##
|
||||
|
||||
|
||||
self=$0
|
||||
self_basename=${self##*/}
|
||||
EOL=$'\n'
|
||||
EOLDOS=$'\r'
|
||||
|
||||
show_help() {
|
||||
cat <<EOF
|
||||
Usage: ${self_basename} [options] file1 [file2 ...]
|
||||
|
||||
This script generates a Visual Studio 2005 solution file from a list of project
|
||||
files.
|
||||
|
||||
Options:
|
||||
--help Print this message
|
||||
--out=outfile Redirect output to a file
|
||||
--ver=version Version (7,8,9,10,11) of visual studio to generate for
|
||||
--target=isa-os-cc Target specifier
|
||||
EOF
|
||||
exit 1
|
||||
}
|
||||
|
||||
die() {
|
||||
echo "${self_basename}: $@" >&2
|
||||
[ -f "${outfile}" ] && rm -f ${outfile}{,.mk}
|
||||
exit 1
|
||||
}
|
||||
|
||||
die_unknown(){
|
||||
echo "Unknown option \"$1\"." >&2
|
||||
echo "See ${self_basename} --help for available options." >&2
|
||||
[ -f "${outfile}" ] && rm -f ${outfile}{,.mk}
|
||||
exit 1
|
||||
}
|
||||
|
||||
indent1=$'\t'
|
||||
indent=""
|
||||
indent_push() {
|
||||
indent="${indent}${indent1}"
|
||||
}
|
||||
indent_pop() {
|
||||
indent="${indent%${indent1}}"
|
||||
}
|
||||
|
||||
parse_project() {
|
||||
local file=$1
|
||||
if [ "$sfx" = "vcproj" ]; then
|
||||
local name=`grep Name "$file" | awk 'BEGIN {FS="\""}{if (NR==1) print $2}'`
|
||||
local guid=`grep ProjectGUID "$file" | awk 'BEGIN {FS="\""}{if (NR==1) print $2}'`
|
||||
else
|
||||
local name=`grep RootNamespace "$file" | sed 's,.*<.*>\(.*\)</.*>.*,\1,'`
|
||||
local guid=`grep ProjectGuid "$file" | sed 's,.*<.*>\(.*\)</.*>.*,\1,'`
|
||||
fi
|
||||
|
||||
# save the project GUID to a varaible, normalizing to the basename of the
|
||||
# vcproj file without the extension
|
||||
local var
|
||||
var=${file##*/}
|
||||
var=${var%%.${sfx}}
|
||||
eval "${var}_file=\"$1\""
|
||||
eval "${var}_name=$name"
|
||||
eval "${var}_guid=$guid"
|
||||
|
||||
if [ "$sfx" = "vcproj" ]; then
|
||||
cur_config_list=`grep -A1 '<Configuration' $file |
|
||||
grep Name | cut -d\" -f2`
|
||||
else
|
||||
cur_config_list=`grep -B1 'Label="Configuration"' $file |
|
||||
grep Condition | cut -d\' -f4`
|
||||
fi
|
||||
new_config_list=$(for i in $config_list $cur_config_list; do
|
||||
echo $i
|
||||
done | sort | uniq)
|
||||
if [ "$config_list" != "" ] && [ "$config_list" != "$new_config_list" ]; then
|
||||
mixed_platforms=1
|
||||
fi
|
||||
config_list="$new_config_list"
|
||||
eval "${var}_config_list=\"$cur_config_list\""
|
||||
proj_list="${proj_list} ${var}"
|
||||
}
|
||||
|
||||
process_project() {
|
||||
eval "local file=\${$1_file}"
|
||||
eval "local name=\${$1_name}"
|
||||
eval "local guid=\${$1_guid}"
|
||||
|
||||
# save the project GUID to a varaible, normalizing to the basename of the
|
||||
# vcproj file without the extension
|
||||
local var
|
||||
var=${file##*/}
|
||||
var=${var%%.${sfx}}
|
||||
eval "${var}_guid=$guid"
|
||||
|
||||
echo "Project(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"$name\", \"$file\", \"$guid\""
|
||||
indent_push
|
||||
|
||||
eval "local deps=\"\${${var}_deps}\""
|
||||
if [ -n "$deps" ] && [ "$sfx" = "vcproj" ]; then
|
||||
echo "${indent}ProjectSection(ProjectDependencies) = postProject"
|
||||
indent_push
|
||||
|
||||
for dep in $deps; do
|
||||
eval "local dep_guid=\${${dep}_guid}"
|
||||
[ -z "${dep_guid}" ] && die "Unknown GUID for $dep (dependency of $var)"
|
||||
echo "${indent}$dep_guid = $dep_guid"
|
||||
done
|
||||
|
||||
indent_pop
|
||||
echo "${indent}EndProjectSection"
|
||||
|
||||
fi
|
||||
|
||||
indent_pop
|
||||
echo "EndProject"
|
||||
}
|
||||
|
||||
process_global() {
|
||||
echo "Global"
|
||||
indent_push
|
||||
|
||||
#
|
||||
# Solution Configuration Platforms
|
||||
#
|
||||
echo "${indent}GlobalSection(SolutionConfigurationPlatforms) = preSolution"
|
||||
indent_push
|
||||
IFS_bak=${IFS}
|
||||
IFS=$'\r'$'\n'
|
||||
if [ "$mixed_platforms" != "" ]; then
|
||||
config_list="
|
||||
Release|Mixed Platforms
|
||||
Debug|Mixed Platforms"
|
||||
fi
|
||||
for config in ${config_list}; do
|
||||
echo "${indent}$config = $config"
|
||||
done
|
||||
IFS=${IFS_bak}
|
||||
indent_pop
|
||||
echo "${indent}EndGlobalSection"
|
||||
|
||||
#
|
||||
# Project Configuration Platforms
|
||||
#
|
||||
echo "${indent}GlobalSection(ProjectConfigurationPlatforms) = postSolution"
|
||||
indent_push
|
||||
for proj in ${proj_list}; do
|
||||
eval "local proj_guid=\${${proj}_guid}"
|
||||
eval "local proj_config_list=\${${proj}_config_list}"
|
||||
IFS=$'\r'$'\n'
|
||||
for config in ${proj_config_list}; do
|
||||
if [ "$mixed_platforms" != "" ]; then
|
||||
local c=${config%%|*}
|
||||
echo "${indent}${proj_guid}.${c}|Mixed Platforms.ActiveCfg = ${config}"
|
||||
echo "${indent}${proj_guid}.${c}|Mixed Platforms.Build.0 = ${config}"
|
||||
else
|
||||
echo "${indent}${proj_guid}.${config}.ActiveCfg = ${config}"
|
||||
echo "${indent}${proj_guid}.${config}.Build.0 = ${config}"
|
||||
fi
|
||||
|
||||
done
|
||||
IFS=${IFS_bak}
|
||||
done
|
||||
indent_pop
|
||||
echo "${indent}EndGlobalSection"
|
||||
|
||||
#
|
||||
# Solution Properties
|
||||
#
|
||||
echo "${indent}GlobalSection(SolutionProperties) = preSolution"
|
||||
indent_push
|
||||
echo "${indent}HideSolutionNode = FALSE"
|
||||
indent_pop
|
||||
echo "${indent}EndGlobalSection"
|
||||
|
||||
indent_pop
|
||||
echo "EndGlobal"
|
||||
}
|
||||
|
||||
process_makefile() {
|
||||
IFS_bak=${IFS}
|
||||
IFS=$'\r'$'\n'
|
||||
local TAB=$'\t'
|
||||
cat <<EOF
|
||||
ifeq (\$(CONFIG_VS_VERSION),7)
|
||||
MSBUILD_TOOL := devenv.com
|
||||
else
|
||||
MSBUILD_TOOL := msbuild.exe
|
||||
endif
|
||||
found_devenv := \$(shell which \$(MSBUILD_TOOL) >/dev/null 2>&1 && echo yes)
|
||||
.nodevenv.once:
|
||||
${TAB}@echo " * \$(MSBUILD_TOOL) not found in path."
|
||||
${TAB}@echo " * "
|
||||
${TAB}@echo " * You will have to build all configurations manually using the"
|
||||
${TAB}@echo " * Visual Studio IDE. To allow make to build them automatically,"
|
||||
${TAB}@echo " * add the Common7/IDE directory of your Visual Studio"
|
||||
${TAB}@echo " * installation to your path, eg:"
|
||||
${TAB}@echo " * C:\Program Files\Microsoft Visual Studio 8\Common7\IDE"
|
||||
${TAB}@echo " * "
|
||||
${TAB}@touch \$@
|
||||
CLEAN-OBJS += \$(if \$(found_devenv),,.nodevenv.once)
|
||||
|
||||
EOF
|
||||
|
||||
for sln_config in ${config_list}; do
|
||||
local config=${sln_config%%|*}
|
||||
local platform=${sln_config##*|}
|
||||
local nows_sln_config=`echo $sln_config | sed -e 's/[^a-zA-Z0-9]/_/g'`
|
||||
cat <<EOF
|
||||
BUILD_TARGETS += \$(if \$(NO_LAUNCH_DEVENV),,$nows_sln_config)
|
||||
clean::
|
||||
${TAB}rm -rf "$platform"/"$config"
|
||||
.PHONY: $nows_sln_config
|
||||
ifneq (\$(found_devenv),)
|
||||
ifeq (\$(CONFIG_VS_VERSION),7)
|
||||
$nows_sln_config: $outfile
|
||||
${TAB}\$(MSBUILD_TOOL) $outfile -build "$config"
|
||||
|
||||
else
|
||||
$nows_sln_config: $outfile
|
||||
${TAB}\$(MSBUILD_TOOL) $outfile -m -t:Build \\
|
||||
${TAB}${TAB}-p:Configuration="$config" -p:Platform="$platform"
|
||||
|
||||
endif
|
||||
else
|
||||
$nows_sln_config: $outfile .nodevenv.once
|
||||
${TAB}@echo " * Skipping build of $sln_config (\$(MSBUILD_TOOL) not in path)."
|
||||
${TAB}@echo " * "
|
||||
endif
|
||||
|
||||
EOF
|
||||
done
|
||||
IFS=${IFS_bak}
|
||||
}
|
||||
|
||||
# Process command line
|
||||
outfile=/dev/stdout
|
||||
for opt in "$@"; do
|
||||
optval="${opt#*=}"
|
||||
case "$opt" in
|
||||
--help|-h) show_help
|
||||
;;
|
||||
--out=*) outfile="${optval}"; mkoutfile="${optval}".mk
|
||||
;;
|
||||
--dep=*) eval "${optval%%:*}_deps=\"\${${optval%%:*}_deps} ${optval##*:}\""
|
||||
;;
|
||||
--ver=*) vs_ver="$optval"
|
||||
case $optval in
|
||||
[789]|10|11|12)
|
||||
;;
|
||||
*) die Unrecognized Visual Studio Version in $opt
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
--ver=*) vs_ver="$optval"
|
||||
case $optval in
|
||||
7) sln_vers="8.00"
|
||||
sln_vers_str="Visual Studio .NET 2003"
|
||||
;;
|
||||
[89])
|
||||
;;
|
||||
*) die "Unrecognized Visual Studio Version '$optval' in $opt"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
--target=*) target="${optval}"
|
||||
;;
|
||||
-*) die_unknown $opt
|
||||
;;
|
||||
*) file_list[${#file_list[@]}]="$opt"
|
||||
esac
|
||||
done
|
||||
outfile=${outfile:-/dev/stdout}
|
||||
mkoutfile=${mkoutfile:-/dev/stdout}
|
||||
case "${vs_ver:-8}" in
|
||||
7) sln_vers="8.00"
|
||||
sln_vers_str="Visual Studio .NET 2003"
|
||||
;;
|
||||
8) sln_vers="9.00"
|
||||
sln_vers_str="Visual Studio 2005"
|
||||
;;
|
||||
9) sln_vers="10.00"
|
||||
sln_vers_str="Visual Studio 2008"
|
||||
;;
|
||||
10) sln_vers="11.00"
|
||||
sln_vers_str="Visual Studio 2010"
|
||||
;;
|
||||
11) sln_vers="12.00"
|
||||
sln_vers_str="Visual Studio 2012"
|
||||
;;
|
||||
12) sln_vers="12.00"
|
||||
sln_vers_str="Visual Studio 2013"
|
||||
;;
|
||||
esac
|
||||
case "${vs_ver:-8}" in
|
||||
[789])
|
||||
sfx=vcproj
|
||||
;;
|
||||
10|11|12)
|
||||
sfx=vcxproj
|
||||
;;
|
||||
esac
|
||||
|
||||
for f in "${file_list[@]}"; do
|
||||
parse_project $f
|
||||
done
|
||||
cat >${outfile} <<EOF
|
||||
Microsoft Visual Studio Solution File, Format Version $sln_vers${EOLDOS}
|
||||
# $sln_vers_str${EOLDOS}
|
||||
EOF
|
||||
for proj in ${proj_list}; do
|
||||
process_project $proj >>${outfile}
|
||||
done
|
||||
process_global >>${outfile}
|
||||
process_makefile >${mkoutfile}
|
|
@ -0,0 +1,487 @@
|
|||
#!/bin/bash
|
||||
##
|
||||
## Copyright (c) 2013 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## tree. An additional intellectual property rights grant can be found
|
||||
## in the file PATENTS. All contributing project authors may
|
||||
## be found in the AUTHORS file in the root of the source tree.
|
||||
##
|
||||
|
||||
self=$0
|
||||
self_basename=${self##*/}
|
||||
self_dirname=$(dirname "$0")
|
||||
|
||||
. "$self_dirname/msvs_common.sh"|| exit 127
|
||||
|
||||
show_help() {
|
||||
cat <<EOF
|
||||
Usage: ${self_basename} --name=projname [options] file1 [file2 ...]
|
||||
|
||||
This script generates a Visual Studio project file from a list of source
|
||||
code files.
|
||||
|
||||
Options:
|
||||
--help Print this message
|
||||
--exe Generate a project for building an Application
|
||||
--lib Generate a project for creating a static library
|
||||
--dll Generate a project for creating a dll
|
||||
--static-crt Use the static C runtime (/MT)
|
||||
--enable-werror Treat warnings as errors (/WX)
|
||||
--target=isa-os-cc Target specifier (required)
|
||||
--out=filename Write output to a file [stdout]
|
||||
--name=project_name Name of the project (required)
|
||||
--proj-guid=GUID GUID to use for the project
|
||||
--module-def=filename File containing export definitions (for DLLs)
|
||||
--ver=version Version (10,11,12) of visual studio to generate for
|
||||
--src-path-bare=dir Path to root of source tree
|
||||
-Ipath/to/include Additional include directories
|
||||
-DFLAG[=value] Preprocessor macros to define
|
||||
-Lpath/to/lib Additional library search paths
|
||||
-llibname Library to link against
|
||||
EOF
|
||||
exit 1
|
||||
}
|
||||
|
||||
tag_content() {
|
||||
local tag=$1
|
||||
local content=$2
|
||||
shift
|
||||
shift
|
||||
if [ $# -ne 0 ]; then
|
||||
echo "${indent}<${tag}"
|
||||
indent_push
|
||||
tag_attributes "$@"
|
||||
echo "${indent}>${content}</${tag}>"
|
||||
indent_pop
|
||||
else
|
||||
echo "${indent}<${tag}>${content}</${tag}>"
|
||||
fi
|
||||
}
|
||||
|
||||
generate_filter() {
|
||||
local name=$1
|
||||
local pats=$2
|
||||
local file_list_sz
|
||||
local i
|
||||
local f
|
||||
local saveIFS="$IFS"
|
||||
local pack
|
||||
echo "generating filter '$name' from ${#file_list[@]} files" >&2
|
||||
IFS=*
|
||||
|
||||
file_list_sz=${#file_list[@]}
|
||||
for i in ${!file_list[@]}; do
|
||||
f=${file_list[i]}
|
||||
for pat in ${pats//;/$IFS}; do
|
||||
if [ "${f##*.}" == "$pat" ]; then
|
||||
unset file_list[i]
|
||||
|
||||
objf=$(echo ${f%.*}.obj \
|
||||
| sed -e "s,$src_path_bare,," \
|
||||
-e 's/^[\./]\+//g' -e 's,[:/ ],_,g')
|
||||
|
||||
if ([ "$pat" == "asm" ] || [ "$pat" == "s" ]) && $asm_use_custom_step; then
|
||||
# Avoid object file name collisions, i.e. vpx_config.c and
|
||||
# vpx_config.asm produce the same object file without
|
||||
# this additional suffix.
|
||||
objf=${objf%.obj}_asm.obj
|
||||
open_tag CustomBuild \
|
||||
Include="$f"
|
||||
for plat in "${platforms[@]}"; do
|
||||
for cfg in Debug Release; do
|
||||
tag_content Message "Assembling %(Filename)%(Extension)" \
|
||||
Condition="'\$(Configuration)|\$(Platform)'=='$cfg|$plat'"
|
||||
tag_content Command "$(eval echo \$asm_${cfg}_cmdline) -o \$(IntDir)$objf" \
|
||||
Condition="'\$(Configuration)|\$(Platform)'=='$cfg|$plat'"
|
||||
tag_content Outputs "\$(IntDir)$objf" \
|
||||
Condition="'\$(Configuration)|\$(Platform)'=='$cfg|$plat'"
|
||||
done
|
||||
done
|
||||
close_tag CustomBuild
|
||||
elif [ "$pat" == "c" ] || \
|
||||
[ "$pat" == "cc" ] || [ "$pat" == "cpp" ]; then
|
||||
open_tag ClCompile \
|
||||
Include="$f"
|
||||
# Separate file names with Condition?
|
||||
tag_content ObjectFileName "\$(IntDir)$objf"
|
||||
# Check for AVX and turn it on to avoid warnings.
|
||||
if [[ $f =~ avx.?\.c$ ]]; then
|
||||
tag_content AdditionalOptions "/arch:AVX"
|
||||
fi
|
||||
close_tag ClCompile
|
||||
elif [ "$pat" == "h" ] ; then
|
||||
tag ClInclude \
|
||||
Include="$f"
|
||||
elif [ "$pat" == "vcxproj" ] ; then
|
||||
open_tag ProjectReference \
|
||||
Include="$f"
|
||||
depguid=`grep ProjectGuid "$f" | sed 's,.*<.*>\(.*\)</.*>.*,\1,'`
|
||||
tag_content Project "$depguid"
|
||||
tag_content ReferenceOutputAssembly false
|
||||
close_tag ProjectReference
|
||||
else
|
||||
tag None \
|
||||
Include="$f"
|
||||
fi
|
||||
|
||||
break
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
IFS="$saveIFS"
|
||||
}
|
||||
|
||||
# Process command line
|
||||
unset target
|
||||
for opt in "$@"; do
|
||||
optval="${opt#*=}"
|
||||
case "$opt" in
|
||||
--help|-h) show_help
|
||||
;;
|
||||
--target=*) target="${optval}"
|
||||
;;
|
||||
--out=*) outfile="$optval"
|
||||
;;
|
||||
--name=*) name="${optval}"
|
||||
;;
|
||||
--proj-guid=*) guid="${optval}"
|
||||
;;
|
||||
--module-def=*) module_def="${optval}"
|
||||
;;
|
||||
--exe) proj_kind="exe"
|
||||
;;
|
||||
--dll) proj_kind="dll"
|
||||
;;
|
||||
--lib) proj_kind="lib"
|
||||
;;
|
||||
--src-path-bare=*)
|
||||
src_path_bare=$(fix_path "$optval")
|
||||
src_path_bare=${src_path_bare%/}
|
||||
;;
|
||||
--static-crt) use_static_runtime=true
|
||||
;;
|
||||
--enable-werror) werror=true
|
||||
;;
|
||||
--ver=*)
|
||||
vs_ver="$optval"
|
||||
case "$optval" in
|
||||
10|11|12)
|
||||
;;
|
||||
*) die Unrecognized Visual Studio Version in $opt
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
-I*)
|
||||
opt=${opt##-I}
|
||||
opt=$(fix_path "$opt")
|
||||
opt="${opt%/}"
|
||||
incs="${incs}${incs:+;}"${opt}""
|
||||
yasmincs="${yasmincs} -I"${opt}""
|
||||
;;
|
||||
-D*) defines="${defines}${defines:+;}${opt##-D}"
|
||||
;;
|
||||
-L*) # fudge . to $(OutDir)
|
||||
if [ "${opt##-L}" == "." ]; then
|
||||
libdirs="${libdirs}${libdirs:+;}"\$(OutDir)""
|
||||
else
|
||||
# Also try directories for this platform/configuration
|
||||
opt=${opt##-L}
|
||||
opt=$(fix_path "$opt")
|
||||
libdirs="${libdirs}${libdirs:+;}"${opt}""
|
||||
libdirs="${libdirs}${libdirs:+;}"${opt}/\$(PlatformName)/\$(Configuration)""
|
||||
libdirs="${libdirs}${libdirs:+;}"${opt}/\$(PlatformName)""
|
||||
fi
|
||||
;;
|
||||
-l*) libs="${libs}${libs:+ }${opt##-l}.lib"
|
||||
;;
|
||||
-*) die_unknown $opt
|
||||
;;
|
||||
*)
|
||||
# The paths in file_list are fixed outside of the loop.
|
||||
file_list[${#file_list[@]}]="$opt"
|
||||
case "$opt" in
|
||||
*.asm|*.s) uses_asm=true
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Make one call to fix_path for file_list to improve performance.
|
||||
fix_file_list
|
||||
|
||||
outfile=${outfile:-/dev/stdout}
|
||||
guid=${guid:-`generate_uuid`}
|
||||
asm_use_custom_step=false
|
||||
uses_asm=${uses_asm:-false}
|
||||
case "${vs_ver:-11}" in
|
||||
10|11|12)
|
||||
asm_use_custom_step=$uses_asm
|
||||
;;
|
||||
esac
|
||||
|
||||
[ -n "$name" ] || die "Project name (--name) must be specified!"
|
||||
[ -n "$target" ] || die "Target (--target) must be specified!"
|
||||
|
||||
if ${use_static_runtime:-false}; then
|
||||
release_runtime=MultiThreaded
|
||||
debug_runtime=MultiThreadedDebug
|
||||
lib_sfx=mt
|
||||
else
|
||||
release_runtime=MultiThreadedDLL
|
||||
debug_runtime=MultiThreadedDebugDLL
|
||||
lib_sfx=md
|
||||
fi
|
||||
|
||||
# Calculate debug lib names: If a lib ends in ${lib_sfx}.lib, then rename
|
||||
# it to ${lib_sfx}d.lib. This precludes linking to release libs from a
|
||||
# debug exe, so this may need to be refactored later.
|
||||
for lib in ${libs}; do
|
||||
if [ "$lib" != "${lib%${lib_sfx}.lib}" ]; then
|
||||
lib=${lib%.lib}d.lib
|
||||
fi
|
||||
debug_libs="${debug_libs}${debug_libs:+ }${lib}"
|
||||
done
|
||||
debug_libs=${debug_libs// /;}
|
||||
libs=${libs// /;}
|
||||
|
||||
|
||||
# List of all platforms supported for this target
|
||||
case "$target" in
|
||||
x86_64*)
|
||||
platforms[0]="x64"
|
||||
asm_Debug_cmdline="yasm -Xvc -g cv8 -f win64 ${yasmincs} "%(FullPath)""
|
||||
asm_Release_cmdline="yasm -Xvc -f win64 ${yasmincs} "%(FullPath)""
|
||||
;;
|
||||
x86*)
|
||||
platforms[0]="Win32"
|
||||
asm_Debug_cmdline="yasm -Xvc -g cv8 -f win32 ${yasmincs} "%(FullPath)""
|
||||
asm_Release_cmdline="yasm -Xvc -f win32 ${yasmincs} "%(FullPath)""
|
||||
;;
|
||||
arm*)
|
||||
platforms[0]="ARM"
|
||||
asm_Debug_cmdline="armasm -nologo -oldit "%(FullPath)""
|
||||
asm_Release_cmdline="armasm -nologo -oldit "%(FullPath)""
|
||||
;;
|
||||
*) die "Unsupported target $target!"
|
||||
;;
|
||||
esac
|
||||
|
||||
generate_vcxproj() {
|
||||
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
|
||||
open_tag Project \
|
||||
DefaultTargets="Build" \
|
||||
ToolsVersion="4.0" \
|
||||
xmlns="http://schemas.microsoft.com/developer/msbuild/2003" \
|
||||
|
||||
open_tag ItemGroup \
|
||||
Label="ProjectConfigurations"
|
||||
for plat in "${platforms[@]}"; do
|
||||
for config in Debug Release; do
|
||||
open_tag ProjectConfiguration \
|
||||
Include="$config|$plat"
|
||||
tag_content Configuration $config
|
||||
tag_content Platform $plat
|
||||
close_tag ProjectConfiguration
|
||||
done
|
||||
done
|
||||
close_tag ItemGroup
|
||||
|
||||
open_tag PropertyGroup \
|
||||
Label="Globals"
|
||||
tag_content ProjectGuid "{${guid}}"
|
||||
tag_content RootNamespace ${name}
|
||||
tag_content Keyword ManagedCProj
|
||||
if [ $vs_ver -ge 12 ] && [ "${platforms[0]}" = "ARM" ]; then
|
||||
tag_content AppContainerApplication true
|
||||
# The application type can be one of "Windows Store",
|
||||
# "Windows Phone" or "Windows Phone Silverlight". The
|
||||
# actual value doesn't matter from the libvpx point of view,
|
||||
# since a static library built for one works on the others.
|
||||
# The PlatformToolset field needs to be set in sync with this;
|
||||
# for Windows Store and Windows Phone Silverlight it should be
|
||||
# v120 while it should be v120_wp81 if the type is Windows Phone.
|
||||
tag_content ApplicationType "Windows Store"
|
||||
tag_content ApplicationTypeRevision 8.1
|
||||
fi
|
||||
close_tag PropertyGroup
|
||||
|
||||
tag Import \
|
||||
Project="\$(VCTargetsPath)\\Microsoft.Cpp.Default.props"
|
||||
|
||||
for plat in "${platforms[@]}"; do
|
||||
for config in Release Debug; do
|
||||
open_tag PropertyGroup \
|
||||
Condition="'\$(Configuration)|\$(Platform)'=='$config|$plat'" \
|
||||
Label="Configuration"
|
||||
if [ "$proj_kind" = "exe" ]; then
|
||||
tag_content ConfigurationType Application
|
||||
elif [ "$proj_kind" = "dll" ]; then
|
||||
tag_content ConfigurationType DynamicLibrary
|
||||
else
|
||||
tag_content ConfigurationType StaticLibrary
|
||||
fi
|
||||
if [ "$vs_ver" = "11" ]; then
|
||||
if [ "$plat" = "ARM" ]; then
|
||||
# Setting the wp80 toolchain automatically sets the
|
||||
# WINAPI_FAMILY define, which is required for building
|
||||
# code for arm with the windows headers. Alternatively,
|
||||
# one could add AppContainerApplication=true in the Globals
|
||||
# section and add PrecompiledHeader=NotUsing and
|
||||
# CompileAsWinRT=false in ClCompile and SubSystem=Console
|
||||
# in Link.
|
||||
tag_content PlatformToolset v110_wp80
|
||||
else
|
||||
tag_content PlatformToolset v110
|
||||
fi
|
||||
fi
|
||||
if [ "$vs_ver" = "12" ]; then
|
||||
# Setting a PlatformToolset indicating windows phone isn't
|
||||
# enough to build code for arm with MSVC 2013, one strictly
|
||||
# has to enable AppContainerApplication as well.
|
||||
tag_content PlatformToolset v120
|
||||
fi
|
||||
tag_content CharacterSet Unicode
|
||||
if [ "$config" = "Release" ]; then
|
||||
tag_content WholeProgramOptimization true
|
||||
fi
|
||||
close_tag PropertyGroup
|
||||
done
|
||||
done
|
||||
|
||||
tag Import \
|
||||
Project="\$(VCTargetsPath)\\Microsoft.Cpp.props"
|
||||
|
||||
open_tag ImportGroup \
|
||||
Label="PropertySheets"
|
||||
tag Import \
|
||||
Project="\$(UserRootDir)\\Microsoft.Cpp.\$(Platform).user.props" \
|
||||
Condition="exists('\$(UserRootDir)\\Microsoft.Cpp.\$(Platform).user.props')" \
|
||||
Label="LocalAppDataPlatform"
|
||||
close_tag ImportGroup
|
||||
|
||||
tag PropertyGroup \
|
||||
Label="UserMacros"
|
||||
|
||||
for plat in "${platforms[@]}"; do
|
||||
plat_no_ws=`echo $plat | sed 's/[^A-Za-z0-9_]/_/g'`
|
||||
for config in Debug Release; do
|
||||
open_tag PropertyGroup \
|
||||
Condition="'\$(Configuration)|\$(Platform)'=='$config|$plat'"
|
||||
tag_content OutDir "\$(SolutionDir)$plat_no_ws\\\$(Configuration)\\"
|
||||
tag_content IntDir "$plat_no_ws\\\$(Configuration)\\${name}\\"
|
||||
if [ "$proj_kind" == "lib" ]; then
|
||||
if [ "$config" == "Debug" ]; then
|
||||
config_suffix=d
|
||||
else
|
||||
config_suffix=""
|
||||
fi
|
||||
tag_content TargetName "${name}${lib_sfx}${config_suffix}"
|
||||
fi
|
||||
close_tag PropertyGroup
|
||||
done
|
||||
done
|
||||
|
||||
for plat in "${platforms[@]}"; do
|
||||
for config in Debug Release; do
|
||||
open_tag ItemDefinitionGroup \
|
||||
Condition="'\$(Configuration)|\$(Platform)'=='$config|$plat'"
|
||||
if [ "$name" == "vpx" ]; then
|
||||
hostplat=$plat
|
||||
if [ "$hostplat" == "ARM" ]; then
|
||||
hostplat=Win32
|
||||
fi
|
||||
fi
|
||||
open_tag ClCompile
|
||||
if [ "$config" = "Debug" ]; then
|
||||
opt=Disabled
|
||||
runtime=$debug_runtime
|
||||
curlibs=$debug_libs
|
||||
debug=_DEBUG
|
||||
else
|
||||
opt=MaxSpeed
|
||||
runtime=$release_runtime
|
||||
curlibs=$libs
|
||||
tag_content FavorSizeOrSpeed Speed
|
||||
debug=NDEBUG
|
||||
fi
|
||||
extradefines=";$defines"
|
||||
tag_content Optimization $opt
|
||||
tag_content AdditionalIncludeDirectories "$incs;%(AdditionalIncludeDirectories)"
|
||||
tag_content PreprocessorDefinitions "WIN32;$debug;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE$extradefines;%(PreprocessorDefinitions)"
|
||||
tag_content RuntimeLibrary $runtime
|
||||
tag_content WarningLevel Level3
|
||||
if ${werror:-false}; then
|
||||
tag_content TreatWarningAsError true
|
||||
fi
|
||||
if [ $vs_ver -ge 11 ]; then
|
||||
# We need to override the defaults for these settings
|
||||
# if AppContainerApplication is set.
|
||||
tag_content CompileAsWinRT false
|
||||
tag_content PrecompiledHeader NotUsing
|
||||
tag_content SDLCheck false
|
||||
fi
|
||||
close_tag ClCompile
|
||||
case "$proj_kind" in
|
||||
exe)
|
||||
open_tag Link
|
||||
tag_content GenerateDebugInformation true
|
||||
# Console is the default normally, but if
|
||||
# AppContainerApplication is set, we need to override it.
|
||||
tag_content SubSystem Console
|
||||
close_tag Link
|
||||
;;
|
||||
dll)
|
||||
open_tag Link
|
||||
tag_content GenerateDebugInformation true
|
||||
tag_content ModuleDefinitionFile $module_def
|
||||
close_tag Link
|
||||
;;
|
||||
lib)
|
||||
;;
|
||||
esac
|
||||
close_tag ItemDefinitionGroup
|
||||
done
|
||||
|
||||
done
|
||||
|
||||
open_tag ItemGroup
|
||||
generate_filter "Source Files" "c;cc;cpp;def;odl;idl;hpj;bat;asm;asmx;s"
|
||||
close_tag ItemGroup
|
||||
open_tag ItemGroup
|
||||
generate_filter "Header Files" "h;hm;inl;inc;xsd"
|
||||
close_tag ItemGroup
|
||||
open_tag ItemGroup
|
||||
generate_filter "Build Files" "mk"
|
||||
close_tag ItemGroup
|
||||
open_tag ItemGroup
|
||||
generate_filter "References" "vcxproj"
|
||||
close_tag ItemGroup
|
||||
|
||||
tag Import \
|
||||
Project="\$(VCTargetsPath)\\Microsoft.Cpp.targets"
|
||||
|
||||
open_tag ImportGroup \
|
||||
Label="ExtensionTargets"
|
||||
close_tag ImportGroup
|
||||
|
||||
close_tag Project
|
||||
|
||||
# This must be done from within the {} subshell
|
||||
echo "Ignored files list (${#file_list[@]} items) is:" >&2
|
||||
for f in "${file_list[@]}"; do
|
||||
echo " $f" >&2
|
||||
done
|
||||
}
|
||||
|
||||
# This regexp doesn't catch most of the strings in the vcxproj format,
|
||||
# since they're like <tag>path</tag> instead of <tag attr="path" />
|
||||
# as previously. It still seems to work ok despite this.
|
||||
generate_vcxproj |
|
||||
sed -e '/"/s;\([^ "]\)/;\1\\;g' |
|
||||
sed -e '/xmlns/s;\\;/;g' > ${outfile}
|
||||
|
||||
exit
|
|
@ -0,0 +1,274 @@
|
|||
#!/bin/sh
|
||||
##
|
||||
## Copyright (c) 2014 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## tree. An additional intellectual property rights grant can be found
|
||||
## in the file PATENTS. All contributing project authors may
|
||||
## be found in the AUTHORS file in the root of the source tree.
|
||||
##
|
||||
##
|
||||
## This script generates 'VPX.framework'. An iOS app can encode and decode VPx
|
||||
## video by including 'VPX.framework'.
|
||||
##
|
||||
## Run iosbuild.sh to create 'VPX.framework' in the current directory.
|
||||
##
|
||||
set -e
|
||||
devnull='> /dev/null 2>&1'
|
||||
|
||||
BUILD_ROOT="_iosbuild"
|
||||
CONFIGURE_ARGS="--disable-docs
|
||||
--disable-examples
|
||||
--disable-libyuv
|
||||
--disable-unit-tests"
|
||||
DIST_DIR="_dist"
|
||||
FRAMEWORK_DIR="VPX.framework"
|
||||
HEADER_DIR="${FRAMEWORK_DIR}/Headers/vpx"
|
||||
MAKE_JOBS=1
|
||||
SCRIPT_DIR=$(dirname "$0")
|
||||
LIBVPX_SOURCE_DIR=$(cd ${SCRIPT_DIR}/../..; pwd)
|
||||
LIPO=$(xcrun -sdk iphoneos${SDK} -find lipo)
|
||||
ORIG_PWD="$(pwd)"
|
||||
TARGETS="arm64-darwin-gcc
|
||||
armv7-darwin-gcc
|
||||
armv7s-darwin-gcc
|
||||
x86-iphonesimulator-gcc
|
||||
x86_64-iphonesimulator-gcc"
|
||||
|
||||
# Configures for the target specified by $1, and invokes make with the dist
|
||||
# target using $DIST_DIR as the distribution output directory.
|
||||
build_target() {
|
||||
local target="$1"
|
||||
local old_pwd="$(pwd)"
|
||||
|
||||
vlog "***Building target: ${target}***"
|
||||
|
||||
mkdir "${target}"
|
||||
cd "${target}"
|
||||
eval "${LIBVPX_SOURCE_DIR}/configure" --target="${target}" \
|
||||
${CONFIGURE_ARGS} ${EXTRA_CONFIGURE_ARGS} ${devnull}
|
||||
export DIST_DIR
|
||||
eval make -j ${MAKE_JOBS} dist ${devnull}
|
||||
cd "${old_pwd}"
|
||||
|
||||
vlog "***Done building target: ${target}***"
|
||||
}
|
||||
|
||||
# Returns the preprocessor symbol for the target specified by $1.
|
||||
target_to_preproc_symbol() {
|
||||
target="$1"
|
||||
case "${target}" in
|
||||
arm64-*)
|
||||
echo "__aarch64__"
|
||||
;;
|
||||
armv7-*)
|
||||
echo "__ARM_ARCH_7A__"
|
||||
;;
|
||||
armv7s-*)
|
||||
echo "__ARM_ARCH_7S__"
|
||||
;;
|
||||
x86-*)
|
||||
echo "__i386__"
|
||||
;;
|
||||
x86_64-*)
|
||||
echo "__x86_64__"
|
||||
;;
|
||||
*)
|
||||
echo "#error ${target} unknown/unsupported"
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Create a vpx_config.h shim that, based on preprocessor settings for the
|
||||
# current target CPU, includes the real vpx_config.h for the current target.
|
||||
# $1 is the list of targets.
|
||||
create_vpx_framework_config_shim() {
|
||||
local targets="$1"
|
||||
local config_file="${HEADER_DIR}/vpx_config.h"
|
||||
local preproc_symbol=""
|
||||
local target=""
|
||||
local include_guard="VPX_FRAMEWORK_HEADERS_VPX_VPX_CONFIG_H_"
|
||||
|
||||
local file_header="/*
|
||||
* Copyright (c) $(date +%Y) The WebM project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
/* GENERATED FILE: DO NOT EDIT! */
|
||||
|
||||
#ifndef ${include_guard}
|
||||
#define ${include_guard}
|
||||
|
||||
#if defined"
|
||||
|
||||
printf "%s" "${file_header}" > "${config_file}"
|
||||
for target in ${targets}; do
|
||||
preproc_symbol=$(target_to_preproc_symbol "${target}")
|
||||
printf " ${preproc_symbol}\n" >> "${config_file}"
|
||||
printf "#define VPX_FRAMEWORK_TARGET \"${target}\"\n" >> "${config_file}"
|
||||
printf "#include \"VPX/vpx/${target}/vpx_config.h\"\n" >> "${config_file}"
|
||||
printf "#elif defined" >> "${config_file}"
|
||||
mkdir "${HEADER_DIR}/${target}"
|
||||
cp -p "${BUILD_ROOT}/${target}/vpx_config.h" "${HEADER_DIR}/${target}"
|
||||
done
|
||||
|
||||
# Consume the last line of output from the loop: We don't want it.
|
||||
sed -i '' -e '$d' "${config_file}"
|
||||
|
||||
printf "#endif\n\n" >> "${config_file}"
|
||||
printf "#endif // ${include_guard}" >> "${config_file}"
|
||||
}
|
||||
|
||||
# Configures and builds each target specified by $1, and then builds
|
||||
# VPX.framework.
|
||||
build_framework() {
|
||||
local lib_list=""
|
||||
local targets="$1"
|
||||
local target=""
|
||||
local target_dist_dir=""
|
||||
|
||||
# Clean up from previous build(s).
|
||||
rm -rf "${BUILD_ROOT}" "${FRAMEWORK_DIR}"
|
||||
|
||||
# Create output dirs.
|
||||
mkdir -p "${BUILD_ROOT}"
|
||||
mkdir -p "${HEADER_DIR}"
|
||||
|
||||
cd "${BUILD_ROOT}"
|
||||
|
||||
for target in ${targets}; do
|
||||
build_target "${target}"
|
||||
target_dist_dir="${BUILD_ROOT}/${target}/${DIST_DIR}"
|
||||
lib_list="${lib_list} ${target_dist_dir}/lib/libvpx.a"
|
||||
done
|
||||
|
||||
cd "${ORIG_PWD}"
|
||||
|
||||
# The basic libvpx API includes are all the same; just grab the most recent
|
||||
# set.
|
||||
cp -p "${target_dist_dir}"/include/vpx/* "${HEADER_DIR}"
|
||||
|
||||
# Build the fat library.
|
||||
${LIPO} -create ${lib_list} -output ${FRAMEWORK_DIR}/VPX
|
||||
|
||||
# Create the vpx_config.h shim that allows usage of vpx_config.h from
|
||||
# within VPX.framework.
|
||||
create_vpx_framework_config_shim "${targets}"
|
||||
|
||||
# Copy in vpx_version.h.
|
||||
cp -p "${BUILD_ROOT}/${target}/vpx_version.h" "${HEADER_DIR}"
|
||||
|
||||
vlog "Created fat library ${FRAMEWORK_DIR}/VPX containing:"
|
||||
for lib in ${lib_list}; do
|
||||
vlog " $(echo ${lib} | awk -F / '{print $2, $NF}')"
|
||||
done
|
||||
|
||||
# TODO(tomfinegan): Verify that expected targets are included within
|
||||
# VPX.framework/VPX via lipo -info.
|
||||
}
|
||||
|
||||
# Trap function. Cleans up the subtree used to build all targets contained in
|
||||
# $TARGETS.
|
||||
cleanup() {
|
||||
local readonly res=$?
|
||||
cd "${ORIG_PWD}"
|
||||
|
||||
if [ $res -ne 0 ]; then
|
||||
elog "build exited with error ($res)"
|
||||
fi
|
||||
|
||||
if [ "${PRESERVE_BUILD_OUTPUT}" != "yes" ]; then
|
||||
rm -rf "${BUILD_ROOT}"
|
||||
fi
|
||||
}
|
||||
|
||||
iosbuild_usage() {
|
||||
cat << EOF
|
||||
Usage: ${0##*/} [arguments]
|
||||
--help: Display this message and exit.
|
||||
--extra-configure-args <args>: Extra args to pass when configuring libvpx.
|
||||
--jobs: Number of make jobs.
|
||||
--preserve-build-output: Do not delete the build directory.
|
||||
--show-build-output: Show output from each library build.
|
||||
--targets <targets>: Override default target list. Defaults:
|
||||
${TARGETS}
|
||||
--verbose: Output information about the environment and each stage of the
|
||||
build.
|
||||
EOF
|
||||
}
|
||||
|
||||
elog() {
|
||||
echo "${0##*/} failed because: $@" 1>&2
|
||||
}
|
||||
|
||||
vlog() {
|
||||
if [ "${VERBOSE}" = "yes" ]; then
|
||||
echo "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
# Parse the command line.
|
||||
while [ -n "$1" ]; do
|
||||
case "$1" in
|
||||
--extra-configure-args)
|
||||
EXTRA_CONFIGURE_ARGS="$2"
|
||||
shift
|
||||
;;
|
||||
--help)
|
||||
iosbuild_usage
|
||||
exit
|
||||
;;
|
||||
--jobs)
|
||||
MAKE_JOBS="$2"
|
||||
shift
|
||||
;;
|
||||
--preserve-build-output)
|
||||
PRESERVE_BUILD_OUTPUT=yes
|
||||
;;
|
||||
--show-build-output)
|
||||
devnull=
|
||||
;;
|
||||
--targets)
|
||||
TARGETS="$2"
|
||||
shift
|
||||
;;
|
||||
--verbose)
|
||||
VERBOSE=yes
|
||||
;;
|
||||
*)
|
||||
iosbuild_usage
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
if [ "${VERBOSE}" = "yes" ]; then
|
||||
cat << EOF
|
||||
BUILD_ROOT=${BUILD_ROOT}
|
||||
DIST_DIR=${DIST_DIR}
|
||||
CONFIGURE_ARGS=${CONFIGURE_ARGS}
|
||||
EXTRA_CONFIGURE_ARGS=${EXTRA_CONFIGURE_ARGS}
|
||||
FRAMEWORK_DIR=${FRAMEWORK_DIR}
|
||||
HEADER_DIR=${HEADER_DIR}
|
||||
MAKE_JOBS=${MAKE_JOBS}
|
||||
PRESERVE_BUILD_OUTPUT=${PRESERVE_BUILD_OUTPUT}
|
||||
LIBVPX_SOURCE_DIR=${LIBVPX_SOURCE_DIR}
|
||||
LIPO=${LIPO}
|
||||
ORIG_PWD=${ORIG_PWD}
|
||||
TARGETS="${TARGETS}"
|
||||
EOF
|
||||
fi
|
||||
|
||||
build_framework "${TARGETS}"
|
||||
echo "Successfully built '${FRAMEWORK_DIR}' for:"
|
||||
echo " ${TARGETS}"
|
|
@ -0,0 +1,113 @@
|
|||
#!/bin/bash
|
||||
##
|
||||
## Copyright (c) 2014 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## tree. An additional intellectual property rights grant can be found
|
||||
## in the file PATENTS. All contributing project authors may
|
||||
## be found in the AUTHORS file in the root of the source tree.
|
||||
##
|
||||
|
||||
if [ "$(uname -o 2>/dev/null)" = "Cygwin" ] \
|
||||
&& cygpath --help >/dev/null 2>&1; then
|
||||
FIXPATH='cygpath -m'
|
||||
else
|
||||
FIXPATH='echo_path'
|
||||
fi
|
||||
|
||||
die() {
|
||||
echo "${self_basename}: $@" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
die_unknown(){
|
||||
echo "Unknown option \"$1\"." >&2
|
||||
echo "See ${self_basename} --help for available options." >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
echo_path() {
|
||||
for path; do
|
||||
echo "$path"
|
||||
done
|
||||
}
|
||||
|
||||
# Output one, possibly changed based on the system, path per line.
|
||||
fix_path() {
|
||||
$FIXPATH "$@"
|
||||
}
|
||||
|
||||
# Corrects the paths in file_list in one pass for efficiency.
|
||||
fix_file_list() {
|
||||
# TODO(jzern): this could be more generic and take the array as a param.
|
||||
files=$(fix_path "${file_list[@]}")
|
||||
local IFS=$'\n'
|
||||
file_list=($files)
|
||||
}
|
||||
|
||||
generate_uuid() {
|
||||
local hex="0123456789ABCDEF"
|
||||
local i
|
||||
local uuid=""
|
||||
local j
|
||||
#93995380-89BD-4b04-88EB-625FBE52EBFB
|
||||
for ((i=0; i<32; i++)); do
|
||||
(( j = $RANDOM % 16 ))
|
||||
uuid="${uuid}${hex:$j:1}"
|
||||
done
|
||||
echo "${uuid:0:8}-${uuid:8:4}-${uuid:12:4}-${uuid:16:4}-${uuid:20:12}"
|
||||
}
|
||||
|
||||
indent1=" "
|
||||
indent=""
|
||||
indent_push() {
|
||||
indent="${indent}${indent1}"
|
||||
}
|
||||
indent_pop() {
|
||||
indent="${indent%${indent1}}"
|
||||
}
|
||||
|
||||
tag_attributes() {
|
||||
for opt in "$@"; do
|
||||
optval="${opt#*=}"
|
||||
[ -n "${optval}" ] ||
|
||||
die "Missing attribute value in '$opt' while generating $tag tag"
|
||||
echo "${indent}${opt%%=*}=\"${optval}\""
|
||||
done
|
||||
}
|
||||
|
||||
open_tag() {
|
||||
local tag=$1
|
||||
shift
|
||||
if [ $# -ne 0 ]; then
|
||||
echo "${indent}<${tag}"
|
||||
indent_push
|
||||
tag_attributes "$@"
|
||||
echo "${indent}>"
|
||||
else
|
||||
echo "${indent}<${tag}>"
|
||||
indent_push
|
||||
fi
|
||||
}
|
||||
|
||||
close_tag() {
|
||||
local tag=$1
|
||||
indent_pop
|
||||
echo "${indent}</${tag}>"
|
||||
}
|
||||
|
||||
tag() {
|
||||
local tag=$1
|
||||
shift
|
||||
if [ $# -ne 0 ]; then
|
||||
echo "${indent}<${tag}"
|
||||
indent_push
|
||||
tag_attributes "$@"
|
||||
indent_pop
|
||||
echo "${indent}/>"
|
||||
else
|
||||
echo "${indent}<${tag}/>"
|
||||
fi
|
||||
}
|
||||
|
|
@ -0,0 +1,425 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
no strict 'refs';
|
||||
use warnings;
|
||||
use Getopt::Long;
|
||||
Getopt::Long::Configure("auto_help") if $Getopt::Long::VERSION > 2.32;
|
||||
|
||||
my %ALL_FUNCS = ();
|
||||
my @ALL_ARCHS;
|
||||
my @ALL_FORWARD_DECLS;
|
||||
my @REQUIRES;
|
||||
|
||||
my %opts = ();
|
||||
my %disabled = ();
|
||||
my %required = ();
|
||||
|
||||
my @argv;
|
||||
foreach (@ARGV) {
|
||||
$disabled{$1} = 1, next if /--disable-(.*)/;
|
||||
$required{$1} = 1, next if /--require-(.*)/;
|
||||
push @argv, $_;
|
||||
}
|
||||
|
||||
# NB: use GetOptions() instead of GetOptionsFromArray() for compatibility.
|
||||
@ARGV = @argv;
|
||||
GetOptions(
|
||||
\%opts,
|
||||
'arch=s',
|
||||
'sym=s',
|
||||
'config=s',
|
||||
);
|
||||
|
||||
foreach my $opt (qw/arch config/) {
|
||||
if (!defined($opts{$opt})) {
|
||||
warn "--$opt is required!\n";
|
||||
Getopt::Long::HelpMessage('-exit' => 1);
|
||||
}
|
||||
}
|
||||
|
||||
foreach my $defs_file (@ARGV) {
|
||||
if (!-f $defs_file) {
|
||||
warn "$defs_file: $!\n";
|
||||
Getopt::Long::HelpMessage('-exit' => 1);
|
||||
}
|
||||
}
|
||||
|
||||
open CONFIG_FILE, $opts{config} or
|
||||
die "Error opening config file '$opts{config}': $!\n";
|
||||
|
||||
my %config = ();
|
||||
while (<CONFIG_FILE>) {
|
||||
next if !/^(?:CONFIG_|HAVE_)/;
|
||||
chomp;
|
||||
my @pair = split /=/;
|
||||
$config{$pair[0]} = $pair[1];
|
||||
}
|
||||
close CONFIG_FILE;
|
||||
|
||||
#
|
||||
# Routines for the RTCD DSL to call
|
||||
#
|
||||
sub vpx_config($) {
|
||||
return (defined $config{$_[0]}) ? $config{$_[0]} : "";
|
||||
}
|
||||
|
||||
sub specialize {
|
||||
my $fn=$_[0];
|
||||
shift;
|
||||
foreach my $opt (@_) {
|
||||
eval "\$${fn}_${opt}=${fn}_${opt}";
|
||||
}
|
||||
}
|
||||
|
||||
sub add_proto {
|
||||
my $fn = splice(@_, -2, 1);
|
||||
$ALL_FUNCS{$fn} = \@_;
|
||||
specialize $fn, "c";
|
||||
}
|
||||
|
||||
sub require {
|
||||
foreach my $fn (keys %ALL_FUNCS) {
|
||||
foreach my $opt (@_) {
|
||||
my $ofn = eval "\$${fn}_${opt}";
|
||||
next if !$ofn;
|
||||
|
||||
# if we already have a default, then we can disable it, as we know
|
||||
# we can do better.
|
||||
my $best = eval "\$${fn}_default";
|
||||
if ($best) {
|
||||
my $best_ofn = eval "\$${best}";
|
||||
if ($best_ofn && "$best_ofn" ne "$ofn") {
|
||||
eval "\$${best}_link = 'false'";
|
||||
}
|
||||
}
|
||||
eval "\$${fn}_default=${fn}_${opt}";
|
||||
eval "\$${fn}_${opt}_link='true'";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub forward_decls {
|
||||
push @ALL_FORWARD_DECLS, @_;
|
||||
}
|
||||
|
||||
#
|
||||
# Include the user's directives
|
||||
#
|
||||
foreach my $f (@ARGV) {
|
||||
open FILE, "<", $f or die "cannot open $f: $!\n";
|
||||
my $contents = join('', <FILE>);
|
||||
close FILE;
|
||||
eval $contents or warn "eval failed: $@\n";
|
||||
}
|
||||
|
||||
#
|
||||
# Process the directives according to the command line
|
||||
#
|
||||
sub process_forward_decls() {
|
||||
foreach (@ALL_FORWARD_DECLS) {
|
||||
$_->();
|
||||
}
|
||||
}
|
||||
|
||||
sub determine_indirection {
|
||||
vpx_config("CONFIG_RUNTIME_CPU_DETECT") eq "yes" or &require(@ALL_ARCHS);
|
||||
foreach my $fn (keys %ALL_FUNCS) {
|
||||
my $n = "";
|
||||
my @val = @{$ALL_FUNCS{$fn}};
|
||||
my $args = pop @val;
|
||||
my $rtyp = "@val";
|
||||
my $dfn = eval "\$${fn}_default";
|
||||
$dfn = eval "\$${dfn}";
|
||||
foreach my $opt (@_) {
|
||||
my $ofn = eval "\$${fn}_${opt}";
|
||||
next if !$ofn;
|
||||
my $link = eval "\$${fn}_${opt}_link";
|
||||
next if $link && $link eq "false";
|
||||
$n .= "x";
|
||||
}
|
||||
if ($n eq "x") {
|
||||
eval "\$${fn}_indirect = 'false'";
|
||||
} else {
|
||||
eval "\$${fn}_indirect = 'true'";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub declare_function_pointers {
|
||||
foreach my $fn (sort keys %ALL_FUNCS) {
|
||||
my @val = @{$ALL_FUNCS{$fn}};
|
||||
my $args = pop @val;
|
||||
my $rtyp = "@val";
|
||||
my $dfn = eval "\$${fn}_default";
|
||||
$dfn = eval "\$${dfn}";
|
||||
foreach my $opt (@_) {
|
||||
my $ofn = eval "\$${fn}_${opt}";
|
||||
next if !$ofn;
|
||||
print "$rtyp ${ofn}($args);\n";
|
||||
}
|
||||
if (eval "\$${fn}_indirect" eq "false") {
|
||||
print "#define ${fn} ${dfn}\n";
|
||||
} else {
|
||||
print "RTCD_EXTERN $rtyp (*${fn})($args);\n";
|
||||
}
|
||||
print "\n";
|
||||
}
|
||||
}
|
||||
|
||||
sub set_function_pointers {
|
||||
foreach my $fn (sort keys %ALL_FUNCS) {
|
||||
my @val = @{$ALL_FUNCS{$fn}};
|
||||
my $args = pop @val;
|
||||
my $rtyp = "@val";
|
||||
my $dfn = eval "\$${fn}_default";
|
||||
$dfn = eval "\$${dfn}";
|
||||
if (eval "\$${fn}_indirect" eq "true") {
|
||||
print " $fn = $dfn;\n";
|
||||
foreach my $opt (@_) {
|
||||
my $ofn = eval "\$${fn}_${opt}";
|
||||
next if !$ofn;
|
||||
next if "$ofn" eq "$dfn";
|
||||
my $link = eval "\$${fn}_${opt}_link";
|
||||
next if $link && $link eq "false";
|
||||
my $cond = eval "\$have_${opt}";
|
||||
print " if (${cond}) $fn = $ofn;\n"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub filter {
|
||||
my @filtered;
|
||||
foreach (@_) { push @filtered, $_ unless $disabled{$_}; }
|
||||
return @filtered;
|
||||
}
|
||||
|
||||
#
|
||||
# Helper functions for generating the arch specific RTCD files
|
||||
#
|
||||
sub common_top() {
|
||||
my $include_guard = uc($opts{sym})."_H_";
|
||||
print <<EOF;
|
||||
#ifndef ${include_guard}
|
||||
#define ${include_guard}
|
||||
|
||||
#ifdef RTCD_C
|
||||
#define RTCD_EXTERN
|
||||
#else
|
||||
#define RTCD_EXTERN extern
|
||||
#endif
|
||||
|
||||
EOF
|
||||
|
||||
process_forward_decls();
|
||||
print <<EOF;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
EOF
|
||||
declare_function_pointers("c", @ALL_ARCHS);
|
||||
|
||||
print <<EOF;
|
||||
void $opts{sym}(void);
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
sub common_bottom() {
|
||||
print <<EOF;
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
EOF
|
||||
}
|
||||
|
||||
sub x86() {
|
||||
determine_indirection("c", @ALL_ARCHS);
|
||||
|
||||
# Assign the helper variable for each enabled extension
|
||||
foreach my $opt (@ALL_ARCHS) {
|
||||
my $opt_uc = uc $opt;
|
||||
eval "\$have_${opt}=\"flags & HAS_${opt_uc}\"";
|
||||
}
|
||||
|
||||
common_top;
|
||||
print <<EOF;
|
||||
#ifdef RTCD_C
|
||||
#include "vpx_ports/x86.h"
|
||||
static void setup_rtcd_internal(void)
|
||||
{
|
||||
int flags = x86_simd_caps();
|
||||
|
||||
(void)flags;
|
||||
|
||||
EOF
|
||||
|
||||
set_function_pointers("c", @ALL_ARCHS);
|
||||
|
||||
print <<EOF;
|
||||
}
|
||||
#endif
|
||||
EOF
|
||||
common_bottom;
|
||||
}
|
||||
|
||||
sub arm() {
|
||||
determine_indirection("c", @ALL_ARCHS);
|
||||
|
||||
# Assign the helper variable for each enabled extension
|
||||
foreach my $opt (@ALL_ARCHS) {
|
||||
my $opt_uc = uc $opt;
|
||||
# Enable neon assembly based on HAVE_NEON logic instead of adding new
|
||||
# HAVE_NEON_ASM logic
|
||||
if ($opt eq 'neon_asm') { $opt_uc = 'NEON' }
|
||||
eval "\$have_${opt}=\"flags & HAS_${opt_uc}\"";
|
||||
}
|
||||
|
||||
common_top;
|
||||
print <<EOF;
|
||||
#include "vpx_config.h"
|
||||
|
||||
#ifdef RTCD_C
|
||||
#include "vpx_ports/arm.h"
|
||||
static void setup_rtcd_internal(void)
|
||||
{
|
||||
int flags = arm_cpu_caps();
|
||||
|
||||
(void)flags;
|
||||
|
||||
EOF
|
||||
|
||||
set_function_pointers("c", @ALL_ARCHS);
|
||||
|
||||
print <<EOF;
|
||||
}
|
||||
#endif
|
||||
EOF
|
||||
common_bottom;
|
||||
}
|
||||
|
||||
sub mips() {
|
||||
determine_indirection("c", @ALL_ARCHS);
|
||||
common_top;
|
||||
|
||||
print <<EOF;
|
||||
#include "vpx_config.h"
|
||||
|
||||
#ifdef RTCD_C
|
||||
static void setup_rtcd_internal(void)
|
||||
{
|
||||
EOF
|
||||
|
||||
set_function_pointers("c", @ALL_ARCHS);
|
||||
|
||||
print <<EOF;
|
||||
#if HAVE_DSPR2
|
||||
#if CONFIG_VP8
|
||||
void dsputil_static_init();
|
||||
dsputil_static_init();
|
||||
#endif
|
||||
#if CONFIG_VP9
|
||||
void vp9_dsputil_static_init();
|
||||
vp9_dsputil_static_init();
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
EOF
|
||||
common_bottom;
|
||||
}
|
||||
|
||||
sub unoptimized() {
|
||||
determine_indirection "c";
|
||||
common_top;
|
||||
print <<EOF;
|
||||
#include "vpx_config.h"
|
||||
|
||||
#ifdef RTCD_C
|
||||
static void setup_rtcd_internal(void)
|
||||
{
|
||||
EOF
|
||||
|
||||
set_function_pointers "c";
|
||||
|
||||
print <<EOF;
|
||||
}
|
||||
#endif
|
||||
EOF
|
||||
common_bottom;
|
||||
}
|
||||
|
||||
#
|
||||
# Main Driver
|
||||
#
|
||||
|
||||
&require("c");
|
||||
if ($opts{arch} eq 'x86') {
|
||||
@ALL_ARCHS = filter(qw/mmx sse sse2 sse3 ssse3 sse4_1 avx avx2/);
|
||||
x86;
|
||||
} elsif ($opts{arch} eq 'x86_64') {
|
||||
@ALL_ARCHS = filter(qw/mmx sse sse2 sse3 ssse3 sse4_1 avx avx2/);
|
||||
@REQUIRES = filter(keys %required ? keys %required : qw/mmx sse sse2/);
|
||||
&require(@REQUIRES);
|
||||
x86;
|
||||
} elsif ($opts{arch} eq 'mips32' || $opts{arch} eq 'mips64') {
|
||||
@ALL_ARCHS = filter("$opts{arch}");
|
||||
open CONFIG_FILE, $opts{config} or
|
||||
die "Error opening config file '$opts{config}': $!\n";
|
||||
while (<CONFIG_FILE>) {
|
||||
if (/HAVE_DSPR2=yes/) {
|
||||
@ALL_ARCHS = filter("$opts{arch}", qw/dspr2/);
|
||||
last;
|
||||
}
|
||||
if (/HAVE_MSA=yes/) {
|
||||
@ALL_ARCHS = filter("$opts{arch}", qw/msa/);
|
||||
last;
|
||||
}
|
||||
}
|
||||
close CONFIG_FILE;
|
||||
mips;
|
||||
} elsif ($opts{arch} eq 'armv6') {
|
||||
@ALL_ARCHS = filter(qw/media/);
|
||||
arm;
|
||||
} elsif ($opts{arch} =~ /armv7\w?/) {
|
||||
@ALL_ARCHS = filter(qw/media neon_asm neon/);
|
||||
@REQUIRES = filter(keys %required ? keys %required : qw/media/);
|
||||
&require(@REQUIRES);
|
||||
arm;
|
||||
} elsif ($opts{arch} eq 'armv8' || $opts{arch} eq 'arm64' ) {
|
||||
@ALL_ARCHS = filter(qw/neon/);
|
||||
arm;
|
||||
} else {
|
||||
unoptimized;
|
||||
}
|
||||
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
rtcd -
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
Usage: rtcd.pl [options] FILE
|
||||
|
||||
See 'perldoc rtcd.pl' for more details.
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Reads the Run Time CPU Detections definitions from FILE and generates a
|
||||
C header file on stdout.
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
Options:
|
||||
--arch=ARCH Architecture to generate defs for (required)
|
||||
--disable-EXT Disable support for EXT extensions
|
||||
--require-EXT Require support for EXT extensions
|
||||
--sym=SYMBOL Unique symbol to use for RTCD initialization function
|
||||
--config=FILE File with CONFIG_FOO=yes lines to parse
|
|
@ -0,0 +1,76 @@
|
|||
#!/bin/sh
|
||||
##
|
||||
## Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## tree. An additional intellectual property rights grant can be found
|
||||
## in the file PATENTS. All contributing project authors may
|
||||
## be found in the AUTHORS file in the root of the source tree.
|
||||
##
|
||||
|
||||
|
||||
|
||||
for opt in "$@"; do
|
||||
optval="${opt#*=}"
|
||||
case "$opt" in
|
||||
--bare) bare=true ;;
|
||||
*) break ;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
source_path=${1:-.}
|
||||
out_file=${2}
|
||||
id=${3:-VERSION_STRING}
|
||||
|
||||
git_version_id=""
|
||||
if [ -d "${source_path}/.git" ]; then
|
||||
# Source Path is a git working copy. Check for local modifications.
|
||||
export GIT_DIR="${source_path}/.git"
|
||||
git_version_id=`git describe --match=v[0-9]* 2>/dev/null`
|
||||
fi
|
||||
|
||||
changelog_version=""
|
||||
for p in "${source_path}" "${source_path}/.."; do
|
||||
if [ -z "$git_version_id" -a -f "${p}/CHANGELOG" ]; then
|
||||
changelog_version=`head -n1 "${p}/CHANGELOG" | awk '{print $2}'`
|
||||
changelog_version="${changelog_version}"
|
||||
break
|
||||
fi
|
||||
done
|
||||
version_str="${changelog_version}${git_version_id}"
|
||||
bare_version=${version_str#v}
|
||||
major_version=${bare_version%%.*}
|
||||
bare_version=${bare_version#*.}
|
||||
minor_version=${bare_version%%.*}
|
||||
bare_version=${bare_version#*.}
|
||||
patch_version=${bare_version%%-*}
|
||||
bare_version=${bare_version#${patch_version}}
|
||||
extra_version=${bare_version##-}
|
||||
|
||||
#since they'll be used as integers below make sure they are or force to 0
|
||||
for v in major_version minor_version patch_version; do
|
||||
if eval echo \$$v |grep -E -q '[^[:digit:]]'; then
|
||||
eval $v=0
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ${bare} ]; then
|
||||
echo "${changelog_version}${git_version_id}" > $$.tmp
|
||||
else
|
||||
cat<<EOF>$$.tmp
|
||||
#define VERSION_MAJOR $major_version
|
||||
#define VERSION_MINOR $minor_version
|
||||
#define VERSION_PATCH $patch_version
|
||||
#define VERSION_EXTRA "$extra_version"
|
||||
#define VERSION_PACKED ((VERSION_MAJOR<<16)|(VERSION_MINOR<<8)|(VERSION_PATCH))
|
||||
#define ${id}_NOSP "${version_str}"
|
||||
#define ${id} " ${version_str}"
|
||||
EOF
|
||||
fi
|
||||
if [ -n "$out_file" ]; then
|
||||
diff $$.tmp ${out_file} >/dev/null 2>&1 || cat $$.tmp > ${out_file}
|
||||
else
|
||||
cat $$.tmp
|
||||
fi
|
||||
rm $$.tmp
|
|
@ -0,0 +1,720 @@
|
|||
#!/bin/sh
|
||||
##
|
||||
## configure
|
||||
##
|
||||
## This script is the front-end to the build system. It provides a similar
|
||||
## interface to standard configure scripts with some extra bits for dealing
|
||||
## with toolchains that differ from the standard POSIX interface and
|
||||
## for extracting subsets of the source tree. In theory, reusable parts
|
||||
## of this script were intended to live in build/make/configure.sh,
|
||||
## but in practice, the line is pretty blurry.
|
||||
##
|
||||
## This build system is based in part on the FFmpeg configure script.
|
||||
##
|
||||
|
||||
#source_path="`dirname \"$0\"`"
|
||||
source_path=${0%/*}
|
||||
. "${source_path}/build/make/configure.sh"
|
||||
|
||||
show_help(){
|
||||
show_help_pre
|
||||
cat << EOF
|
||||
Advanced options:
|
||||
${toggle_libs} libraries
|
||||
${toggle_examples} examples
|
||||
${toggle_docs} documentation
|
||||
${toggle_unit_tests} unit tests
|
||||
${toggle_decode_perf_tests} build decoder perf tests with unit tests
|
||||
${toggle_encode_perf_tests} build encoder perf tests with unit tests
|
||||
--cpu=CPU tune for the specified CPU (ARM: cortex-a8, X86: sse3)
|
||||
--libc=PATH path to alternate libc
|
||||
--size-limit=WxH max size to allow in the decoder
|
||||
--as={yasm|nasm|auto} use specified assembler [auto, yasm preferred]
|
||||
--sdk-path=PATH path to root of sdk (android builds only)
|
||||
${toggle_codec_srcs} in/exclude codec library source code
|
||||
${toggle_debug_libs} in/exclude debug version of libraries
|
||||
${toggle_static_msvcrt} use static MSVCRT (VS builds only)
|
||||
${toggle_vp9_highbitdepth} use VP9 high bit depth (10/12) profiles
|
||||
${toggle_vp8} VP8 codec support
|
||||
${toggle_vp9} VP9 codec support
|
||||
${toggle_internal_stats} output of encoder internal stats for debug, if supported (encoders)
|
||||
${toggle_postproc} postprocessing
|
||||
${toggle_vp9_postproc} vp9 specific postprocessing
|
||||
${toggle_multithread} multithreaded encoding and decoding
|
||||
${toggle_spatial_resampling} spatial sampling (scaling) support
|
||||
${toggle_realtime_only} enable this option while building for real-time encoding
|
||||
${toggle_onthefly_bitpacking} enable on-the-fly bitpacking in real-time encoding
|
||||
${toggle_error_concealment} enable this option to get a decoder which is able to conceal losses
|
||||
${toggle_coefficient_range_checking}
|
||||
enable decoder to check if intermediate
|
||||
transform coefficients are in valid range
|
||||
${toggle_runtime_cpu_detect} runtime cpu detection
|
||||
${toggle_shared} shared library support
|
||||
${toggle_static} static library support
|
||||
${toggle_small} favor smaller size over speed
|
||||
${toggle_postproc_visualizer} macro block / block level visualizers
|
||||
${toggle_multi_res_encoding} enable multiple-resolution encoding
|
||||
${toggle_temporal_denoising} enable temporal denoising and disable the spatial denoiser
|
||||
${toggle_vp9_temporal_denoising}
|
||||
enable vp9 temporal denoising
|
||||
${toggle_webm_io} enable input from and output to WebM container
|
||||
${toggle_libyuv} enable libyuv
|
||||
|
||||
Codecs:
|
||||
Codecs can be selectively enabled or disabled individually, or by family:
|
||||
--disable-<codec>
|
||||
is equivalent to:
|
||||
--disable-<codec>-encoder
|
||||
--disable-<codec>-decoder
|
||||
|
||||
Codecs available in this distribution:
|
||||
EOF
|
||||
#restore editor state '
|
||||
|
||||
family="";
|
||||
last_family="";
|
||||
c="";
|
||||
str="";
|
||||
for c in ${CODECS}; do
|
||||
family=${c%_*}
|
||||
if [ "${family}" != "${last_family}" ]; then
|
||||
[ -z "${str}" ] || echo "${str}"
|
||||
str="$(printf ' %10s:' ${family})"
|
||||
fi
|
||||
str="${str} $(printf '%10s' ${c#*_})"
|
||||
last_family=${family}
|
||||
done
|
||||
echo "${str}"
|
||||
show_help_post
|
||||
}
|
||||
|
||||
##
|
||||
## BEGIN APPLICATION SPECIFIC CONFIGURATION
|
||||
##
|
||||
|
||||
# all_platforms is a list of all supported target platforms. Maintain
|
||||
# alphabetically by architecture, generic-gnu last.
|
||||
all_platforms="${all_platforms} armv6-darwin-gcc"
|
||||
all_platforms="${all_platforms} armv6-linux-rvct"
|
||||
all_platforms="${all_platforms} armv6-linux-gcc"
|
||||
all_platforms="${all_platforms} armv6-none-rvct"
|
||||
all_platforms="${all_platforms} arm64-darwin-gcc"
|
||||
all_platforms="${all_platforms} armv7-android-gcc" #neon Cortex-A8
|
||||
all_platforms="${all_platforms} armv7-darwin-gcc" #neon Cortex-A8
|
||||
all_platforms="${all_platforms} armv7-linux-rvct" #neon Cortex-A8
|
||||
all_platforms="${all_platforms} armv7-linux-gcc" #neon Cortex-A8
|
||||
all_platforms="${all_platforms} armv7-none-rvct" #neon Cortex-A8
|
||||
all_platforms="${all_platforms} armv7-win32-vs11"
|
||||
all_platforms="${all_platforms} armv7-win32-vs12"
|
||||
all_platforms="${all_platforms} armv7s-darwin-gcc"
|
||||
all_platforms="${all_platforms} mips32-linux-gcc"
|
||||
all_platforms="${all_platforms} mips64-linux-gcc"
|
||||
all_platforms="${all_platforms} sparc-solaris-gcc"
|
||||
all_platforms="${all_platforms} x86-android-gcc"
|
||||
all_platforms="${all_platforms} x86-darwin8-gcc"
|
||||
all_platforms="${all_platforms} x86-darwin8-icc"
|
||||
all_platforms="${all_platforms} x86-darwin9-gcc"
|
||||
all_platforms="${all_platforms} x86-darwin9-icc"
|
||||
all_platforms="${all_platforms} x86-darwin10-gcc"
|
||||
all_platforms="${all_platforms} x86-darwin11-gcc"
|
||||
all_platforms="${all_platforms} x86-darwin12-gcc"
|
||||
all_platforms="${all_platforms} x86-darwin13-gcc"
|
||||
all_platforms="${all_platforms} x86-darwin14-gcc"
|
||||
all_platforms="${all_platforms} x86-iphonesimulator-gcc"
|
||||
all_platforms="${all_platforms} x86-linux-gcc"
|
||||
all_platforms="${all_platforms} x86-linux-icc"
|
||||
all_platforms="${all_platforms} x86-os2-gcc"
|
||||
all_platforms="${all_platforms} x86-solaris-gcc"
|
||||
all_platforms="${all_platforms} x86-win32-gcc"
|
||||
all_platforms="${all_platforms} x86-win32-vs7"
|
||||
all_platforms="${all_platforms} x86-win32-vs8"
|
||||
all_platforms="${all_platforms} x86-win32-vs9"
|
||||
all_platforms="${all_platforms} x86-win32-vs10"
|
||||
all_platforms="${all_platforms} x86-win32-vs11"
|
||||
all_platforms="${all_platforms} x86-win32-vs12"
|
||||
all_platforms="${all_platforms} x86_64-darwin9-gcc"
|
||||
all_platforms="${all_platforms} x86_64-darwin10-gcc"
|
||||
all_platforms="${all_platforms} x86_64-darwin11-gcc"
|
||||
all_platforms="${all_platforms} x86_64-darwin12-gcc"
|
||||
all_platforms="${all_platforms} x86_64-darwin13-gcc"
|
||||
all_platforms="${all_platforms} x86_64-darwin14-gcc"
|
||||
all_platforms="${all_platforms} x86_64-iphonesimulator-gcc"
|
||||
all_platforms="${all_platforms} x86_64-linux-gcc"
|
||||
all_platforms="${all_platforms} x86_64-linux-icc"
|
||||
all_platforms="${all_platforms} x86_64-solaris-gcc"
|
||||
all_platforms="${all_platforms} x86_64-win64-gcc"
|
||||
all_platforms="${all_platforms} x86_64-win64-vs8"
|
||||
all_platforms="${all_platforms} x86_64-win64-vs9"
|
||||
all_platforms="${all_platforms} x86_64-win64-vs10"
|
||||
all_platforms="${all_platforms} x86_64-win64-vs11"
|
||||
all_platforms="${all_platforms} x86_64-win64-vs12"
|
||||
all_platforms="${all_platforms} generic-gnu"
|
||||
|
||||
# all_targets is a list of all targets that can be configured
|
||||
# note that these should be in dependency order for now.
|
||||
all_targets="libs examples docs"
|
||||
|
||||
# all targets available are enabled, by default.
|
||||
for t in ${all_targets}; do
|
||||
[ -f "${source_path}/${t}.mk" ] && enable_feature ${t}
|
||||
done
|
||||
|
||||
if ! perl --version >/dev/null; then
|
||||
die "Perl is required to build"
|
||||
fi
|
||||
|
||||
|
||||
if [ "`cd \"${source_path}\" && pwd`" != "`pwd`" ]; then
|
||||
# test to see if source_path already configured
|
||||
if [ -f "${source_path}/vpx_config.h" ]; then
|
||||
die "source directory already configured; run 'make distclean' there first"
|
||||
fi
|
||||
fi
|
||||
|
||||
# check installed doxygen version
|
||||
doxy_version=$(doxygen --version 2>/dev/null)
|
||||
doxy_major=${doxy_version%%.*}
|
||||
if [ ${doxy_major:-0} -ge 1 ]; then
|
||||
doxy_version=${doxy_version#*.}
|
||||
doxy_minor=${doxy_version%%.*}
|
||||
doxy_patch=${doxy_version##*.}
|
||||
|
||||
[ $doxy_major -gt 1 ] && enable_feature doxygen
|
||||
[ $doxy_minor -gt 5 ] && enable_feature doxygen
|
||||
[ $doxy_minor -eq 5 ] && [ $doxy_patch -ge 3 ] && enable_feature doxygen
|
||||
fi
|
||||
|
||||
# disable codecs when their source directory does not exist
|
||||
[ -d "${source_path}/vp8" ] || disable_feature vp8
|
||||
[ -d "${source_path}/vp9" ] || disable_feature vp9
|
||||
|
||||
# install everything except the sources, by default. sources will have
|
||||
# to be enabled when doing dist builds, since that's no longer a common
|
||||
# case.
|
||||
enabled doxygen && enable_feature install_docs
|
||||
enable_feature install_bins
|
||||
enable_feature install_libs
|
||||
|
||||
enable_feature static
|
||||
enable_feature optimizations
|
||||
enable_feature dependency_tracking
|
||||
enable_feature spatial_resampling
|
||||
enable_feature multithread
|
||||
enable_feature os_support
|
||||
enable_feature temporal_denoising
|
||||
|
||||
CODECS="
|
||||
vp8_encoder
|
||||
vp8_decoder
|
||||
vp9_encoder
|
||||
vp9_decoder
|
||||
"
|
||||
CODEC_FAMILIES="
|
||||
vp8
|
||||
vp9
|
||||
"
|
||||
|
||||
ARCH_LIST="
|
||||
arm
|
||||
mips
|
||||
x86
|
||||
x86_64
|
||||
"
|
||||
ARCH_EXT_LIST="
|
||||
edsp
|
||||
media
|
||||
neon
|
||||
neon_asm
|
||||
|
||||
mips32
|
||||
dspr2
|
||||
msa
|
||||
mips64
|
||||
|
||||
mmx
|
||||
sse
|
||||
sse2
|
||||
sse3
|
||||
ssse3
|
||||
sse4_1
|
||||
avx
|
||||
avx2
|
||||
"
|
||||
HAVE_LIST="
|
||||
${ARCH_EXT_LIST}
|
||||
vpx_ports
|
||||
stdint_h
|
||||
pthread_h
|
||||
sys_mman_h
|
||||
unistd_h
|
||||
"
|
||||
EXPERIMENT_LIST="
|
||||
spatial_svc
|
||||
fp_mb_stats
|
||||
emulate_hardware
|
||||
"
|
||||
CONFIG_LIST="
|
||||
dependency_tracking
|
||||
external_build
|
||||
install_docs
|
||||
install_bins
|
||||
install_libs
|
||||
install_srcs
|
||||
use_x86inc
|
||||
debug
|
||||
gprof
|
||||
gcov
|
||||
rvct
|
||||
gcc
|
||||
msvs
|
||||
pic
|
||||
big_endian
|
||||
|
||||
codec_srcs
|
||||
debug_libs
|
||||
|
||||
dequant_tokens
|
||||
dc_recon
|
||||
runtime_cpu_detect
|
||||
postproc
|
||||
vp9_postproc
|
||||
multithread
|
||||
internal_stats
|
||||
${CODECS}
|
||||
${CODEC_FAMILIES}
|
||||
encoders
|
||||
decoders
|
||||
static_msvcrt
|
||||
spatial_resampling
|
||||
realtime_only
|
||||
onthefly_bitpacking
|
||||
error_concealment
|
||||
shared
|
||||
static
|
||||
small
|
||||
postproc_visualizer
|
||||
os_support
|
||||
unit_tests
|
||||
webm_io
|
||||
libyuv
|
||||
decode_perf_tests
|
||||
encode_perf_tests
|
||||
multi_res_encoding
|
||||
temporal_denoising
|
||||
vp9_temporal_denoising
|
||||
coefficient_range_checking
|
||||
vp9_highbitdepth
|
||||
experimental
|
||||
size_limit
|
||||
${EXPERIMENT_LIST}
|
||||
"
|
||||
CMDLINE_SELECT="
|
||||
dependency_tracking
|
||||
external_build
|
||||
extra_warnings
|
||||
werror
|
||||
install_docs
|
||||
install_bins
|
||||
install_libs
|
||||
install_srcs
|
||||
debug
|
||||
gprof
|
||||
gcov
|
||||
pic
|
||||
use_x86inc
|
||||
optimizations
|
||||
ccache
|
||||
runtime_cpu_detect
|
||||
thumb
|
||||
|
||||
libs
|
||||
examples
|
||||
docs
|
||||
libc
|
||||
as
|
||||
size_limit
|
||||
codec_srcs
|
||||
debug_libs
|
||||
|
||||
dequant_tokens
|
||||
dc_recon
|
||||
postproc
|
||||
vp9_postproc
|
||||
multithread
|
||||
internal_stats
|
||||
${CODECS}
|
||||
${CODEC_FAMILIES}
|
||||
static_msvcrt
|
||||
spatial_resampling
|
||||
realtime_only
|
||||
onthefly_bitpacking
|
||||
error_concealment
|
||||
shared
|
||||
static
|
||||
small
|
||||
postproc_visualizer
|
||||
unit_tests
|
||||
webm_io
|
||||
libyuv
|
||||
decode_perf_tests
|
||||
encode_perf_tests
|
||||
multi_res_encoding
|
||||
temporal_denoising
|
||||
vp9_temporal_denoising
|
||||
coefficient_range_checking
|
||||
vp9_highbitdepth
|
||||
experimental
|
||||
"
|
||||
|
||||
process_cmdline() {
|
||||
for opt do
|
||||
optval="${opt#*=}"
|
||||
case "$opt" in
|
||||
--disable-codecs) for c in ${CODECS}; do disable_feature $c; done ;;
|
||||
--enable-?*|--disable-?*)
|
||||
eval `echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g'`
|
||||
if echo "${EXPERIMENT_LIST}" | grep "^ *$option\$" >/dev/null; then
|
||||
if enabled experimental; then
|
||||
${action}_feature $option
|
||||
else
|
||||
log_echo "Ignoring $opt -- not in experimental mode."
|
||||
fi
|
||||
else
|
||||
process_common_cmdline $opt
|
||||
fi
|
||||
;;
|
||||
*) process_common_cmdline "$opt"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
post_process_cmdline() {
|
||||
c=""
|
||||
|
||||
# If the codec family is disabled, disable all components of that family.
|
||||
# If the codec family is enabled, enable all components of that family.
|
||||
log_echo "Configuring selected codecs"
|
||||
for c in ${CODECS}; do
|
||||
disabled ${c%%_*} && disable_feature ${c}
|
||||
enabled ${c%%_*} && enable_feature ${c}
|
||||
done
|
||||
|
||||
# Enable all detected codecs, if they haven't been disabled
|
||||
for c in ${CODECS}; do soft_enable $c; done
|
||||
|
||||
# Enable the codec family if any component of that family is enabled
|
||||
for c in ${CODECS}; do
|
||||
enabled $c && enable_feature ${c%_*}
|
||||
done
|
||||
|
||||
# Set the {en,de}coders variable if any algorithm in that class is enabled
|
||||
for c in ${CODECS}; do
|
||||
enabled ${c} && enable_feature ${c##*_}s
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
process_targets() {
|
||||
enabled child || write_common_config_banner
|
||||
write_common_target_config_h ${BUILD_PFX}vpx_config.h
|
||||
write_common_config_targets
|
||||
|
||||
# Calculate the default distribution name, based on the enabled features
|
||||
cf=""
|
||||
DIST_DIR=vpx
|
||||
for cf in $CODEC_FAMILIES; do
|
||||
if enabled ${cf}_encoder && enabled ${cf}_decoder; then
|
||||
DIST_DIR="${DIST_DIR}-${cf}"
|
||||
elif enabled ${cf}_encoder; then
|
||||
DIST_DIR="${DIST_DIR}-${cf}cx"
|
||||
elif enabled ${cf}_decoder; then
|
||||
DIST_DIR="${DIST_DIR}-${cf}dx"
|
||||
fi
|
||||
done
|
||||
enabled debug_libs && DIST_DIR="${DIST_DIR}-debug"
|
||||
enabled codec_srcs && DIST_DIR="${DIST_DIR}-src"
|
||||
! enabled postproc && ! enabled vp9_postproc && DIST_DIR="${DIST_DIR}-nopost"
|
||||
! enabled multithread && DIST_DIR="${DIST_DIR}-nomt"
|
||||
! enabled install_docs && DIST_DIR="${DIST_DIR}-nodocs"
|
||||
DIST_DIR="${DIST_DIR}-${tgt_isa}-${tgt_os}"
|
||||
case "${tgt_os}" in
|
||||
win*) enabled static_msvcrt && DIST_DIR="${DIST_DIR}mt" || DIST_DIR="${DIST_DIR}md"
|
||||
DIST_DIR="${DIST_DIR}-${tgt_cc}"
|
||||
;;
|
||||
esac
|
||||
if [ -f "${source_path}/build/make/version.sh" ]; then
|
||||
ver=`"$source_path/build/make/version.sh" --bare "$source_path"`
|
||||
DIST_DIR="${DIST_DIR}-${ver}"
|
||||
VERSION_STRING=${ver}
|
||||
ver=${ver%%-*}
|
||||
VERSION_PATCH=${ver##*.}
|
||||
ver=${ver%.*}
|
||||
VERSION_MINOR=${ver##*.}
|
||||
ver=${ver#v}
|
||||
VERSION_MAJOR=${ver%.*}
|
||||
fi
|
||||
enabled child || cat <<EOF >> config.mk
|
||||
|
||||
PREFIX=${prefix}
|
||||
ifeq (\$(MAKECMDGOALS),dist)
|
||||
DIST_DIR?=${DIST_DIR}
|
||||
else
|
||||
DIST_DIR?=\$(DESTDIR)${prefix}
|
||||
endif
|
||||
LIBSUBDIR=${libdir##${prefix}/}
|
||||
|
||||
VERSION_STRING=${VERSION_STRING}
|
||||
|
||||
VERSION_MAJOR=${VERSION_MAJOR}
|
||||
VERSION_MINOR=${VERSION_MINOR}
|
||||
VERSION_PATCH=${VERSION_PATCH}
|
||||
|
||||
CONFIGURE_ARGS=${CONFIGURE_ARGS}
|
||||
EOF
|
||||
enabled child || echo "CONFIGURE_ARGS?=${CONFIGURE_ARGS}" >> config.mk
|
||||
|
||||
#
|
||||
# Write makefiles for all enabled targets
|
||||
#
|
||||
for tgt in libs examples docs solution; do
|
||||
tgt_fn="$tgt-$toolchain.mk"
|
||||
|
||||
if enabled $tgt; then
|
||||
echo "Creating makefiles for ${toolchain} ${tgt}"
|
||||
write_common_target_config_mk $tgt_fn ${BUILD_PFX}vpx_config.h
|
||||
#write_${tgt}_config
|
||||
fi
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
process_detect() {
|
||||
if enabled shared; then
|
||||
# Can only build shared libs on a subset of platforms. Doing this check
|
||||
# here rather than at option parse time because the target auto-detect
|
||||
# magic happens after the command line has been parsed.
|
||||
if ! enabled linux && ! enabled os2; then
|
||||
if enabled gnu; then
|
||||
echo "--enable-shared is only supported on ELF; assuming this is OK"
|
||||
else
|
||||
die "--enable-shared only supported on ELF and OS/2 for now"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if [ -z "$CC" ] || enabled external_build; then
|
||||
echo "Bypassing toolchain for environment detection."
|
||||
enable_feature external_build
|
||||
check_header() {
|
||||
log fake_check_header "$@"
|
||||
header=$1
|
||||
shift
|
||||
var=`echo $header | sed 's/[^A-Za-z0-9_]/_/g'`
|
||||
disable_feature $var
|
||||
# Headers common to all environments
|
||||
case $header in
|
||||
stdio.h)
|
||||
true;
|
||||
;;
|
||||
*)
|
||||
result=false
|
||||
for d in "$@"; do
|
||||
[ -f "${d##-I}/$header" ] && result=true && break
|
||||
done
|
||||
${result:-true}
|
||||
esac && enable_feature $var
|
||||
|
||||
# Specialize windows and POSIX environments.
|
||||
case $toolchain in
|
||||
*-win*-*)
|
||||
case $header-$toolchain in
|
||||
stdint*-gcc) true;;
|
||||
*) false;;
|
||||
esac && enable_feature $var
|
||||
;;
|
||||
*)
|
||||
case $header in
|
||||
stdint.h) true;;
|
||||
pthread.h) true;;
|
||||
sys/mman.h) true;;
|
||||
unistd.h) true;;
|
||||
*) false;;
|
||||
esac && enable_feature $var
|
||||
esac
|
||||
enabled $var
|
||||
}
|
||||
check_ld() {
|
||||
true
|
||||
}
|
||||
fi
|
||||
check_header stdio.h || die "Unable to invoke compiler: ${CC} ${CFLAGS}"
|
||||
check_ld <<EOF || die "Toolchain is unable to link executables"
|
||||
int main(void) {return 0;}
|
||||
EOF
|
||||
# check system headers
|
||||
check_header stdint.h
|
||||
check_header pthread.h
|
||||
check_header sys/mman.h
|
||||
check_header unistd.h # for sysconf(3) and friends.
|
||||
|
||||
check_header vpx/vpx_integer.h -I${source_path} && enable_feature vpx_ports
|
||||
}
|
||||
|
||||
process_toolchain() {
|
||||
process_common_toolchain
|
||||
|
||||
# Enable some useful compiler flags
|
||||
if enabled gcc; then
|
||||
enabled werror && check_add_cflags -Werror
|
||||
check_add_cflags -Wall
|
||||
check_add_cflags -Wdeclaration-after-statement
|
||||
check_add_cflags -Wdisabled-optimization
|
||||
check_add_cflags -Wpointer-arith
|
||||
check_add_cflags -Wtype-limits
|
||||
check_add_cflags -Wcast-qual
|
||||
check_add_cflags -Wvla
|
||||
check_add_cflags -Wimplicit-function-declaration
|
||||
check_add_cflags -Wuninitialized
|
||||
check_add_cflags -Wunused-variable
|
||||
case ${CC} in
|
||||
*clang*)
|
||||
# libvpx and/or clang have issues with aliasing:
|
||||
# https://code.google.com/p/webm/issues/detail?id=603
|
||||
# work around them until they are fixed
|
||||
check_add_cflags -fno-strict-aliasing
|
||||
;;
|
||||
*) check_add_cflags -Wunused-but-set-variable ;;
|
||||
esac
|
||||
enabled extra_warnings || check_add_cflags -Wno-unused-function
|
||||
fi
|
||||
|
||||
if enabled icc; then
|
||||
enabled werror && check_add_cflags -Werror
|
||||
check_add_cflags -Wall
|
||||
check_add_cflags -Wpointer-arith
|
||||
|
||||
# ICC has a number of floating point optimizations that we disable
|
||||
# in favor of deterministic output WRT to other compilers
|
||||
add_cflags -fp-model precise
|
||||
fi
|
||||
|
||||
# Enable extra, harmless warnings. These might provide additional insight
|
||||
# to what the compiler is doing and why, but in general, but they shouldn't
|
||||
# be treated as fatal, even if we're treating warnings as errors.
|
||||
GCC_EXTRA_WARNINGS="
|
||||
-Wdisabled-optimization
|
||||
-Winline
|
||||
"
|
||||
enabled gcc && EXTRA_WARNINGS="${GCC_EXTRA_WARNINGS}"
|
||||
RVCT_EXTRA_WARNINGS="
|
||||
--remarks
|
||||
"
|
||||
enabled rvct && EXTRA_WARNINGS="${RVCT_EXTRA_WARNINGS}"
|
||||
if enabled extra_warnings; then
|
||||
for w in ${EXTRA_WARNINGS}; do
|
||||
check_add_cflags ${w}
|
||||
enabled gcc && enabled werror && check_add_cflags -Wno-error=${w}
|
||||
done
|
||||
fi
|
||||
|
||||
# ccache only really works on gcc toolchains
|
||||
enabled gcc || soft_disable ccache
|
||||
if enabled mips; then
|
||||
enable_feature dequant_tokens
|
||||
enable_feature dc_recon
|
||||
fi
|
||||
|
||||
if enabled internal_stats; then
|
||||
enable_feature vp9_postproc
|
||||
fi
|
||||
|
||||
# Enable the postbuild target if building for visual studio.
|
||||
case "$tgt_cc" in
|
||||
vs*) enable_feature msvs
|
||||
enable_feature solution
|
||||
vs_version=${tgt_cc##vs}
|
||||
case $vs_version in
|
||||
[789])
|
||||
VCPROJ_SFX=vcproj
|
||||
gen_vcproj_cmd=${source_path}/build/make/gen_msvs_proj.sh
|
||||
;;
|
||||
10|11|12)
|
||||
VCPROJ_SFX=vcxproj
|
||||
gen_vcproj_cmd=${source_path}/build/make/gen_msvs_vcxproj.sh
|
||||
enabled werror && gen_vcproj_cmd="${gen_vcproj_cmd} --enable-werror"
|
||||
;;
|
||||
esac
|
||||
all_targets="${all_targets} solution"
|
||||
INLINE="__forceinline"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Other toolchain specific defaults
|
||||
case $toolchain in x86*) soft_enable postproc;; esac
|
||||
|
||||
if enabled postproc_visualizer; then
|
||||
enabled postproc || die "postproc_visualizer requires postproc to be enabled"
|
||||
fi
|
||||
|
||||
# Enable unit tests by default if we have a working C++ compiler.
|
||||
case "$toolchain" in
|
||||
*-vs*)
|
||||
soft_enable unit_tests
|
||||
soft_enable webm_io
|
||||
soft_enable libyuv
|
||||
;;
|
||||
*-android-*)
|
||||
soft_enable webm_io
|
||||
soft_enable libyuv
|
||||
# GTestLog must be modified to use Android logging utilities.
|
||||
;;
|
||||
*-darwin-*)
|
||||
# iOS/ARM builds do not work with gtest. This does not match
|
||||
# x86 targets.
|
||||
;;
|
||||
*-iphonesimulator-*)
|
||||
soft_enable webm_io
|
||||
soft_enable libyuv
|
||||
;;
|
||||
*-win*)
|
||||
# Some mingw toolchains don't have pthread available by default.
|
||||
# Treat these more like visual studio where threading in gtest
|
||||
# would be disabled for the same reason.
|
||||
check_cxx "$@" <<EOF && soft_enable unit_tests
|
||||
int z;
|
||||
EOF
|
||||
check_cxx "$@" <<EOF && soft_enable webm_io
|
||||
int z;
|
||||
EOF
|
||||
check_cxx "$@" <<EOF && soft_enable libyuv
|
||||
int z;
|
||||
EOF
|
||||
;;
|
||||
*)
|
||||
enabled pthread_h && check_cxx "$@" <<EOF && soft_enable unit_tests
|
||||
int z;
|
||||
EOF
|
||||
check_cxx "$@" <<EOF && soft_enable webm_io
|
||||
int z;
|
||||
EOF
|
||||
check_cxx "$@" <<EOF && soft_enable libyuv
|
||||
int z;
|
||||
EOF
|
||||
;;
|
||||
esac
|
||||
# libwebm needs to be linked with C++ standard library
|
||||
enabled webm_io && LD=${CXX}
|
||||
}
|
||||
|
||||
|
||||
##
|
||||
## END APPLICATION SPECIFIC CONFIGURATION
|
||||
##
|
||||
CONFIGURE_ARGS="$@"
|
||||
process "$@"
|
||||
print_webm_license ${BUILD_PFX}vpx_config.c "/*" " */"
|
||||
cat <<EOF >> ${BUILD_PFX}vpx_config.c
|
||||
#include "vpx/vpx_codec.h"
|
||||
static const char* const cfg = "$CONFIGURE_ARGS";
|
||||
const char *vpx_codec_build_config(void) {return cfg;}
|
||||
EOF
|
|
@ -0,0 +1,48 @@
|
|||
##
|
||||
## Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## tree. An additional intellectual property rights grant can be found
|
||||
## in the file PATENTS. All contributing project authors may
|
||||
## be found in the AUTHORS file in the root of the source tree.
|
||||
##
|
||||
|
||||
|
||||
INSTALL_MAPS += docs/% docs/%
|
||||
INSTALL_MAPS += src/% %
|
||||
INSTALL_MAPS += % %
|
||||
|
||||
# Static documentation authored in doxygen
|
||||
CODEC_DOX := mainpage.dox \
|
||||
keywords.dox \
|
||||
usage.dox \
|
||||
usage_cx.dox \
|
||||
usage_dx.dox \
|
||||
|
||||
# Other doxy files sourced in Markdown
|
||||
TXT_DOX = $(call enabled,TXT_DOX)
|
||||
|
||||
EXAMPLE_PATH += $(SRC_PATH_BARE) #for CHANGELOG, README, etc
|
||||
EXAMPLE_PATH += $(SRC_PATH_BARE)/examples
|
||||
|
||||
doxyfile: $(if $(findstring examples, $(ALL_TARGETS)),examples.doxy)
|
||||
doxyfile: libs.doxy_template libs.doxy
|
||||
@echo " [CREATE] $@"
|
||||
@cat $^ > $@
|
||||
@echo "STRIP_FROM_PATH += $(SRC_PATH_BARE) $(BUILD_ROOT)" >> $@
|
||||
@echo "INPUT += $(addprefix $(SRC_PATH_BARE)/,$(CODEC_DOX))" >> $@;
|
||||
@echo "INPUT += $(TXT_DOX)" >> $@;
|
||||
@echo "EXAMPLE_PATH += $(EXAMPLE_PATH)" >> $@
|
||||
|
||||
CLEAN-OBJS += doxyfile $(wildcard docs/html/*)
|
||||
docs/html/index.html: doxyfile $(CODEC_DOX) $(TXT_DOX)
|
||||
@echo " [DOXYGEN] $<"
|
||||
@doxygen $<
|
||||
DOCS-yes += docs/html/index.html
|
||||
|
||||
DIST-DOCS-yes = $(wildcard docs/html/*)
|
||||
DIST-DOCS-$(CONFIG_CODEC_SRCS) += $(addprefix src/,$(CODEC_DOX))
|
||||
DIST-DOCS-$(CONFIG_CODEC_SRCS) += src/libs.doxy_template
|
||||
DIST-DOCS-yes += CHANGELOG
|
||||
DIST-DOCS-yes += README
|
|
@ -0,0 +1,378 @@
|
|||
##
|
||||
## Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## tree. An additional intellectual property rights grant can be found
|
||||
## in the file PATENTS. All contributing project authors may
|
||||
## be found in the AUTHORS file in the root of the source tree.
|
||||
##
|
||||
|
||||
LIBYUV_SRCS += third_party/libyuv/include/libyuv/basic_types.h \
|
||||
third_party/libyuv/include/libyuv/convert.h \
|
||||
third_party/libyuv/include/libyuv/convert_argb.h \
|
||||
third_party/libyuv/include/libyuv/convert_from.h \
|
||||
third_party/libyuv/include/libyuv/cpu_id.h \
|
||||
third_party/libyuv/include/libyuv/planar_functions.h \
|
||||
third_party/libyuv/include/libyuv/rotate.h \
|
||||
third_party/libyuv/include/libyuv/row.h \
|
||||
third_party/libyuv/include/libyuv/scale.h \
|
||||
third_party/libyuv/include/libyuv/scale_row.h \
|
||||
third_party/libyuv/source/cpu_id.cc \
|
||||
third_party/libyuv/source/planar_functions.cc \
|
||||
third_party/libyuv/source/row_any.cc \
|
||||
third_party/libyuv/source/row_common.cc \
|
||||
third_party/libyuv/source/row_mips.cc \
|
||||
third_party/libyuv/source/row_neon.cc \
|
||||
third_party/libyuv/source/row_neon64.cc \
|
||||
third_party/libyuv/source/row_posix.cc \
|
||||
third_party/libyuv/source/row_win.cc \
|
||||
third_party/libyuv/source/scale.cc \
|
||||
third_party/libyuv/source/scale_common.cc \
|
||||
third_party/libyuv/source/scale_mips.cc \
|
||||
third_party/libyuv/source/scale_neon.cc \
|
||||
third_party/libyuv/source/scale_neon64.cc \
|
||||
third_party/libyuv/source/scale_posix.cc \
|
||||
third_party/libyuv/source/scale_win.cc \
|
||||
|
||||
LIBWEBM_MUXER_SRCS += third_party/libwebm/mkvmuxer.cpp \
|
||||
third_party/libwebm/mkvmuxerutil.cpp \
|
||||
third_party/libwebm/mkvwriter.cpp \
|
||||
third_party/libwebm/mkvmuxer.hpp \
|
||||
third_party/libwebm/mkvmuxertypes.hpp \
|
||||
third_party/libwebm/mkvmuxerutil.hpp \
|
||||
third_party/libwebm/mkvparser.hpp \
|
||||
third_party/libwebm/mkvwriter.hpp \
|
||||
third_party/libwebm/webmids.hpp
|
||||
|
||||
LIBWEBM_PARSER_SRCS = third_party/libwebm/mkvparser.cpp \
|
||||
third_party/libwebm/mkvreader.cpp \
|
||||
third_party/libwebm/mkvparser.hpp \
|
||||
third_party/libwebm/mkvreader.hpp
|
||||
|
||||
# List of examples to build. UTILS are tools meant for distribution
|
||||
# while EXAMPLES demonstrate specific portions of the API.
|
||||
UTILS-$(CONFIG_DECODERS) += vpxdec.c
|
||||
vpxdec.SRCS += md5_utils.c md5_utils.h
|
||||
vpxdec.SRCS += vpx_ports/mem_ops.h
|
||||
vpxdec.SRCS += vpx_ports/mem_ops_aligned.h
|
||||
vpxdec.SRCS += vpx_ports/msvc.h
|
||||
vpxdec.SRCS += vpx_ports/vpx_timer.h
|
||||
vpxdec.SRCS += vpx/vpx_integer.h
|
||||
vpxdec.SRCS += args.c args.h
|
||||
vpxdec.SRCS += ivfdec.c ivfdec.h
|
||||
vpxdec.SRCS += tools_common.c tools_common.h
|
||||
vpxdec.SRCS += y4menc.c y4menc.h
|
||||
ifeq ($(CONFIG_LIBYUV),yes)
|
||||
vpxdec.SRCS += $(LIBYUV_SRCS)
|
||||
endif
|
||||
ifeq ($(CONFIG_WEBM_IO),yes)
|
||||
vpxdec.SRCS += $(LIBWEBM_PARSER_SRCS)
|
||||
vpxdec.SRCS += webmdec.cc webmdec.h
|
||||
endif
|
||||
vpxdec.GUID = BA5FE66F-38DD-E034-F542-B1578C5FB950
|
||||
vpxdec.DESCRIPTION = Full featured decoder
|
||||
UTILS-$(CONFIG_ENCODERS) += vpxenc.c
|
||||
vpxenc.SRCS += args.c args.h y4minput.c y4minput.h vpxenc.h
|
||||
vpxenc.SRCS += ivfdec.c ivfdec.h
|
||||
vpxenc.SRCS += ivfenc.c ivfenc.h
|
||||
vpxenc.SRCS += rate_hist.c rate_hist.h
|
||||
vpxenc.SRCS += tools_common.c tools_common.h
|
||||
vpxenc.SRCS += warnings.c warnings.h
|
||||
vpxenc.SRCS += vpx_ports/mem_ops.h
|
||||
vpxenc.SRCS += vpx_ports/mem_ops_aligned.h
|
||||
vpxenc.SRCS += vpx_ports/msvc.h
|
||||
vpxenc.SRCS += vpx_ports/vpx_timer.h
|
||||
vpxenc.SRCS += vpxstats.c vpxstats.h
|
||||
ifeq ($(CONFIG_LIBYUV),yes)
|
||||
vpxenc.SRCS += $(LIBYUV_SRCS)
|
||||
endif
|
||||
ifeq ($(CONFIG_WEBM_IO),yes)
|
||||
vpxenc.SRCS += $(LIBWEBM_MUXER_SRCS)
|
||||
vpxenc.SRCS += webmenc.cc webmenc.h
|
||||
endif
|
||||
vpxenc.GUID = 548DEC74-7A15-4B2B-AFC3-AA102E7C25C1
|
||||
vpxenc.DESCRIPTION = Full featured encoder
|
||||
ifeq ($(CONFIG_SPATIAL_SVC),yes)
|
||||
EXAMPLES-$(CONFIG_VP9_ENCODER) += vp9_spatial_svc_encoder.c
|
||||
vp9_spatial_svc_encoder.SRCS += args.c args.h
|
||||
vp9_spatial_svc_encoder.SRCS += ivfenc.c ivfenc.h
|
||||
vp9_spatial_svc_encoder.SRCS += tools_common.c tools_common.h
|
||||
vp9_spatial_svc_encoder.SRCS += video_common.h
|
||||
vp9_spatial_svc_encoder.SRCS += video_writer.h video_writer.c
|
||||
vp9_spatial_svc_encoder.SRCS += vpx_ports/msvc.h
|
||||
vp9_spatial_svc_encoder.SRCS += vpxstats.c vpxstats.h
|
||||
vp9_spatial_svc_encoder.GUID = 4A38598D-627D-4505-9C7B-D4020C84100D
|
||||
vp9_spatial_svc_encoder.DESCRIPTION = VP9 Spatial SVC Encoder
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_SHARED),yes)
|
||||
EXAMPLES-$(CONFIG_VP9_ENCODER) += resize_util.c
|
||||
endif
|
||||
|
||||
EXAMPLES-$(CONFIG_ENCODERS) += vpx_temporal_svc_encoder.c
|
||||
vpx_temporal_svc_encoder.SRCS += ivfenc.c ivfenc.h
|
||||
vpx_temporal_svc_encoder.SRCS += tools_common.c tools_common.h
|
||||
vpx_temporal_svc_encoder.SRCS += video_common.h
|
||||
vpx_temporal_svc_encoder.SRCS += video_writer.h video_writer.c
|
||||
vpx_temporal_svc_encoder.SRCS += vpx_ports/msvc.h
|
||||
vpx_temporal_svc_encoder.GUID = B18C08F2-A439-4502-A78E-849BE3D60947
|
||||
vpx_temporal_svc_encoder.DESCRIPTION = Temporal SVC Encoder
|
||||
EXAMPLES-$(CONFIG_DECODERS) += simple_decoder.c
|
||||
simple_decoder.GUID = D3BBF1E9-2427-450D-BBFF-B2843C1D44CC
|
||||
simple_decoder.SRCS += ivfdec.h ivfdec.c
|
||||
simple_decoder.SRCS += tools_common.h tools_common.c
|
||||
simple_decoder.SRCS += video_common.h
|
||||
simple_decoder.SRCS += video_reader.h video_reader.c
|
||||
simple_decoder.SRCS += vpx_ports/mem_ops.h
|
||||
simple_decoder.SRCS += vpx_ports/mem_ops_aligned.h
|
||||
simple_decoder.SRCS += vpx_ports/msvc.h
|
||||
simple_decoder.DESCRIPTION = Simplified decoder loop
|
||||
EXAMPLES-$(CONFIG_DECODERS) += postproc.c
|
||||
postproc.SRCS += ivfdec.h ivfdec.c
|
||||
postproc.SRCS += tools_common.h tools_common.c
|
||||
postproc.SRCS += video_common.h
|
||||
postproc.SRCS += video_reader.h video_reader.c
|
||||
postproc.SRCS += vpx_ports/mem_ops.h
|
||||
postproc.SRCS += vpx_ports/mem_ops_aligned.h
|
||||
postproc.SRCS += vpx_ports/msvc.h
|
||||
postproc.GUID = 65E33355-F35E-4088-884D-3FD4905881D7
|
||||
postproc.DESCRIPTION = Decoder postprocessor control
|
||||
EXAMPLES-$(CONFIG_DECODERS) += decode_to_md5.c
|
||||
decode_to_md5.SRCS += md5_utils.h md5_utils.c
|
||||
decode_to_md5.SRCS += ivfdec.h ivfdec.c
|
||||
decode_to_md5.SRCS += tools_common.h tools_common.c
|
||||
decode_to_md5.SRCS += video_common.h
|
||||
decode_to_md5.SRCS += video_reader.h video_reader.c
|
||||
decode_to_md5.SRCS += vpx_ports/mem_ops.h
|
||||
decode_to_md5.SRCS += vpx_ports/mem_ops_aligned.h
|
||||
decode_to_md5.SRCS += vpx_ports/msvc.h
|
||||
decode_to_md5.GUID = 59120B9B-2735-4BFE-B022-146CA340FE42
|
||||
decode_to_md5.DESCRIPTION = Frame by frame MD5 checksum
|
||||
EXAMPLES-$(CONFIG_ENCODERS) += simple_encoder.c
|
||||
simple_encoder.SRCS += ivfenc.h ivfenc.c
|
||||
simple_encoder.SRCS += tools_common.h tools_common.c
|
||||
simple_encoder.SRCS += video_common.h
|
||||
simple_encoder.SRCS += video_writer.h video_writer.c
|
||||
simple_encoder.SRCS += vpx_ports/msvc.h
|
||||
simple_encoder.GUID = 4607D299-8A71-4D2C-9B1D-071899B6FBFD
|
||||
simple_encoder.DESCRIPTION = Simplified encoder loop
|
||||
EXAMPLES-$(CONFIG_VP9_ENCODER) += vp9_lossless_encoder.c
|
||||
vp9_lossless_encoder.SRCS += ivfenc.h ivfenc.c
|
||||
vp9_lossless_encoder.SRCS += tools_common.h tools_common.c
|
||||
vp9_lossless_encoder.SRCS += video_common.h
|
||||
vp9_lossless_encoder.SRCS += video_writer.h video_writer.c
|
||||
vp9_lossless_encoder.SRCS += vpx_ports/msvc.h
|
||||
vp9_lossless_encoder.GUID = B63C7C88-5348-46DC-A5A6-CC151EF93366
|
||||
vp9_lossless_encoder.DESCRIPTION = Simplified lossless VP9 encoder
|
||||
EXAMPLES-$(CONFIG_ENCODERS) += twopass_encoder.c
|
||||
twopass_encoder.SRCS += ivfenc.h ivfenc.c
|
||||
twopass_encoder.SRCS += tools_common.h tools_common.c
|
||||
twopass_encoder.SRCS += video_common.h
|
||||
twopass_encoder.SRCS += video_writer.h video_writer.c
|
||||
twopass_encoder.SRCS += vpx_ports/msvc.h
|
||||
twopass_encoder.GUID = 73494FA6-4AF9-4763-8FBB-265C92402FD8
|
||||
twopass_encoder.DESCRIPTION = Two-pass encoder loop
|
||||
EXAMPLES-$(CONFIG_DECODERS) += decode_with_drops.c
|
||||
decode_with_drops.SRCS += ivfdec.h ivfdec.c
|
||||
decode_with_drops.SRCS += tools_common.h tools_common.c
|
||||
decode_with_drops.SRCS += video_common.h
|
||||
decode_with_drops.SRCS += video_reader.h video_reader.c
|
||||
decode_with_drops.SRCS += vpx_ports/mem_ops.h
|
||||
decode_with_drops.SRCS += vpx_ports/mem_ops_aligned.h
|
||||
decode_with_drops.SRCS += vpx_ports/msvc.h
|
||||
decode_with_drops.GUID = CE5C53C4-8DDA-438A-86ED-0DDD3CDB8D26
|
||||
decode_with_drops.DESCRIPTION = Drops frames while decoding
|
||||
EXAMPLES-$(CONFIG_ENCODERS) += set_maps.c
|
||||
set_maps.SRCS += ivfenc.h ivfenc.c
|
||||
set_maps.SRCS += tools_common.h tools_common.c
|
||||
set_maps.SRCS += video_common.h
|
||||
set_maps.SRCS += video_writer.h video_writer.c
|
||||
set_maps.SRCS += vpx_ports/msvc.h
|
||||
set_maps.GUID = ECB2D24D-98B8-4015-A465-A4AF3DCC145F
|
||||
set_maps.DESCRIPTION = Set active and ROI maps
|
||||
EXAMPLES-$(CONFIG_VP8_ENCODER) += vp8cx_set_ref.c
|
||||
vp8cx_set_ref.SRCS += ivfenc.h ivfenc.c
|
||||
vp8cx_set_ref.SRCS += tools_common.h tools_common.c
|
||||
vp8cx_set_ref.SRCS += video_common.h
|
||||
vp8cx_set_ref.SRCS += video_writer.h video_writer.c
|
||||
vp8cx_set_ref.SRCS += vpx_ports/msvc.h
|
||||
vp8cx_set_ref.GUID = C5E31F7F-96F6-48BD-BD3E-10EBF6E8057A
|
||||
vp8cx_set_ref.DESCRIPTION = VP8 set encoder reference frame
|
||||
|
||||
|
||||
ifeq ($(CONFIG_MULTI_RES_ENCODING),yes)
|
||||
ifeq ($(CONFIG_LIBYUV),yes)
|
||||
EXAMPLES-$(CONFIG_VP8_ENCODER) += vp8_multi_resolution_encoder.c
|
||||
vp8_multi_resolution_encoder.SRCS += ivfenc.h ivfenc.c
|
||||
vp8_multi_resolution_encoder.SRCS += tools_common.h tools_common.c
|
||||
vp8_multi_resolution_encoder.SRCS += video_writer.h video_writer.c
|
||||
vp8_multi_resolution_encoder.SRCS += vpx_ports/msvc.h
|
||||
vp8_multi_resolution_encoder.SRCS += $(LIBYUV_SRCS)
|
||||
vp8_multi_resolution_encoder.GUID = 04f8738e-63c8-423b-90fa-7c2703a374de
|
||||
vp8_multi_resolution_encoder.DESCRIPTION = VP8 Multiple-resolution Encoding
|
||||
endif
|
||||
endif
|
||||
|
||||
# Handle extra library flags depending on codec configuration
|
||||
|
||||
# We should not link to math library (libm) on RVCT
|
||||
# when building for bare-metal targets
|
||||
ifeq ($(CONFIG_OS_SUPPORT), yes)
|
||||
CODEC_EXTRA_LIBS-$(CONFIG_VP8) += m
|
||||
CODEC_EXTRA_LIBS-$(CONFIG_VP9) += m
|
||||
else
|
||||
ifeq ($(CONFIG_GCC), yes)
|
||||
CODEC_EXTRA_LIBS-$(CONFIG_VP8) += m
|
||||
CODEC_EXTRA_LIBS-$(CONFIG_VP9) += m
|
||||
endif
|
||||
endif
|
||||
#
|
||||
# End of specified files. The rest of the build rules should happen
|
||||
# automagically from here.
|
||||
#
|
||||
|
||||
|
||||
# Examples need different flags based on whether we're building
|
||||
# from an installed tree or a version controlled tree. Determine
|
||||
# the proper paths.
|
||||
ifeq ($(HAVE_ALT_TREE_LAYOUT),yes)
|
||||
LIB_PATH-yes := $(SRC_PATH_BARE)/../lib
|
||||
INC_PATH-yes := $(SRC_PATH_BARE)/../include
|
||||
else
|
||||
LIB_PATH-yes += $(if $(BUILD_PFX),$(BUILD_PFX),.)
|
||||
INC_PATH-$(CONFIG_VP8_DECODER) += $(SRC_PATH_BARE)/vp8
|
||||
INC_PATH-$(CONFIG_VP8_ENCODER) += $(SRC_PATH_BARE)/vp8
|
||||
INC_PATH-$(CONFIG_VP9_DECODER) += $(SRC_PATH_BARE)/vp9
|
||||
INC_PATH-$(CONFIG_VP9_ENCODER) += $(SRC_PATH_BARE)/vp9
|
||||
endif
|
||||
INC_PATH-$(CONFIG_LIBYUV) += $(SRC_PATH_BARE)/third_party/libyuv/include
|
||||
LIB_PATH := $(call enabled,LIB_PATH)
|
||||
INC_PATH := $(call enabled,INC_PATH)
|
||||
INTERNAL_CFLAGS = $(addprefix -I,$(INC_PATH))
|
||||
INTERNAL_LDFLAGS += $(addprefix -L,$(LIB_PATH))
|
||||
|
||||
|
||||
# Expand list of selected examples to build (as specified above)
|
||||
UTILS = $(call enabled,UTILS)
|
||||
EXAMPLES = $(addprefix examples/,$(call enabled,EXAMPLES))
|
||||
ALL_EXAMPLES = $(UTILS) $(EXAMPLES)
|
||||
UTIL_SRCS = $(foreach ex,$(UTILS),$($(ex:.c=).SRCS))
|
||||
ALL_SRCS = $(foreach ex,$(ALL_EXAMPLES),$($(notdir $(ex:.c=)).SRCS))
|
||||
CODEC_EXTRA_LIBS=$(sort $(call enabled,CODEC_EXTRA_LIBS))
|
||||
|
||||
|
||||
# Expand all example sources into a variable containing all sources
|
||||
# for that example (not just them main one specified in UTILS/EXAMPLES)
|
||||
# and add this file to the list (for MSVS workspace generation)
|
||||
$(foreach ex,$(ALL_EXAMPLES),$(eval $(notdir $(ex:.c=)).SRCS += $(ex) examples.mk))
|
||||
|
||||
|
||||
# Create build/install dependencies for all examples. The common case
|
||||
# is handled here. The MSVS case is handled below.
|
||||
NOT_MSVS = $(if $(CONFIG_MSVS),,yes)
|
||||
DIST-BINS-$(NOT_MSVS) += $(addprefix bin/,$(ALL_EXAMPLES:.c=$(EXE_SFX)))
|
||||
INSTALL-BINS-$(NOT_MSVS) += $(addprefix bin/,$(UTILS:.c=$(EXE_SFX)))
|
||||
DIST-SRCS-yes += $(ALL_SRCS)
|
||||
INSTALL-SRCS-yes += $(UTIL_SRCS)
|
||||
OBJS-$(NOT_MSVS) += $(call objs,$(ALL_SRCS))
|
||||
BINS-$(NOT_MSVS) += $(addprefix $(BUILD_PFX),$(ALL_EXAMPLES:.c=$(EXE_SFX)))
|
||||
|
||||
|
||||
# Instantiate linker template for all examples.
|
||||
CODEC_LIB=$(if $(CONFIG_DEBUG_LIBS),vpx_g,vpx)
|
||||
ifneq ($(filter darwin%,$(TGT_OS)),)
|
||||
SHARED_LIB_SUF=.dylib
|
||||
else
|
||||
ifneq ($(filter os2%,$(TGT_OS)),)
|
||||
SHARED_LIB_SUF=_dll.a
|
||||
else
|
||||
SHARED_LIB_SUF=.so
|
||||
endif
|
||||
endif
|
||||
CODEC_LIB_SUF=$(if $(CONFIG_SHARED),$(SHARED_LIB_SUF),.a)
|
||||
$(foreach bin,$(BINS-yes),\
|
||||
$(eval $(bin):$(LIB_PATH)/lib$(CODEC_LIB)$(CODEC_LIB_SUF))\
|
||||
$(eval $(call linker_template,$(bin),\
|
||||
$(call objs,$($(notdir $(bin:$(EXE_SFX)=)).SRCS)) \
|
||||
-l$(CODEC_LIB) $(addprefix -l,$(CODEC_EXTRA_LIBS))\
|
||||
)))
|
||||
|
||||
# The following pairs define a mapping of locations in the distribution
|
||||
# tree to locations in the source/build trees.
|
||||
INSTALL_MAPS += src/%.c %.c
|
||||
INSTALL_MAPS += src/% $(SRC_PATH_BARE)/%
|
||||
INSTALL_MAPS += bin/% %
|
||||
INSTALL_MAPS += % %
|
||||
|
||||
|
||||
# Set up additional MSVS environment
|
||||
ifeq ($(CONFIG_MSVS),yes)
|
||||
CODEC_LIB=$(if $(CONFIG_SHARED),vpx,$(if $(CONFIG_STATIC_MSVCRT),vpxmt,vpxmd))
|
||||
# This variable uses deferred expansion intentionally, since the results of
|
||||
# $(wildcard) may change during the course of the Make.
|
||||
VS_PLATFORMS = $(foreach d,$(wildcard */Release/$(CODEC_LIB).lib),$(word 1,$(subst /, ,$(d))))
|
||||
INSTALL_MAPS += $(foreach p,$(VS_PLATFORMS),bin/$(p)/% $(p)/Release/%)
|
||||
endif
|
||||
|
||||
# Build Visual Studio Projects. We use a template here to instantiate
|
||||
# explicit rules rather than using an implicit rule because we want to
|
||||
# leverage make's VPATH searching rather than specifying the paths on
|
||||
# each file in ALL_EXAMPLES. This has the unfortunate side effect that
|
||||
# touching the source files trigger a rebuild of the project files
|
||||
# even though there is no real dependency there (the dependency is on
|
||||
# the makefiles). We may want to revisit this.
|
||||
define vcproj_template
|
||||
$(1): $($(1:.$(VCPROJ_SFX)=).SRCS) vpx.$(VCPROJ_SFX)
|
||||
@echo " [vcproj] $$@"
|
||||
$$(GEN_VCPROJ)\
|
||||
--exe\
|
||||
--target=$$(TOOLCHAIN)\
|
||||
--name=$$(@:.$(VCPROJ_SFX)=)\
|
||||
--ver=$$(CONFIG_VS_VERSION)\
|
||||
--proj-guid=$$($$(@:.$(VCPROJ_SFX)=).GUID)\
|
||||
--src-path-bare="$(SRC_PATH_BARE)" \
|
||||
$$(if $$(CONFIG_STATIC_MSVCRT),--static-crt) \
|
||||
--out=$$@ $$(INTERNAL_CFLAGS) $$(CFLAGS) \
|
||||
$$(INTERNAL_LDFLAGS) $$(LDFLAGS) -l$$(CODEC_LIB) $$^
|
||||
endef
|
||||
ALL_EXAMPLES_BASENAME := $(notdir $(ALL_EXAMPLES))
|
||||
PROJECTS-$(CONFIG_MSVS) += $(ALL_EXAMPLES_BASENAME:.c=.$(VCPROJ_SFX))
|
||||
INSTALL-BINS-$(CONFIG_MSVS) += $(foreach p,$(VS_PLATFORMS),\
|
||||
$(addprefix bin/$(p)/,$(ALL_EXAMPLES_BASENAME:.c=.exe)))
|
||||
$(foreach proj,$(call enabled,PROJECTS),\
|
||||
$(eval $(call vcproj_template,$(proj))))
|
||||
|
||||
#
|
||||
# Documentation Rules
|
||||
#
|
||||
%.dox: %.c
|
||||
@echo " [DOXY] $@"
|
||||
@mkdir -p $(dir $@)
|
||||
@echo "/*!\page example_$(@F:.dox=) $(@F:.dox=)" > $@
|
||||
@echo " \includelineno $(<F)" >> $@
|
||||
@echo "*/" >> $@
|
||||
|
||||
samples.dox: examples.mk
|
||||
@echo " [DOXY] $@"
|
||||
@echo "/*!\page samples Sample Code" > $@
|
||||
@echo " This SDK includes a number of sample applications."\
|
||||
"Each sample documents a feature of the SDK in both prose"\
|
||||
"and the associated C code."\
|
||||
"The following samples are included: ">>$@
|
||||
@$(foreach ex,$(sort $(notdir $(EXAMPLES:.c=))),\
|
||||
echo " - \subpage example_$(ex) $($(ex).DESCRIPTION)" >> $@;)
|
||||
@echo >> $@
|
||||
@echo " In addition, the SDK contains a number of utilities."\
|
||||
"Since these utilities are built upon the concepts described"\
|
||||
"in the sample code listed above, they are not documented in"\
|
||||
"pieces like the samples are. Their source is included here"\
|
||||
"for reference. The following utilities are included:" >> $@
|
||||
@$(foreach ex,$(sort $(UTILS:.c=)),\
|
||||
echo " - \subpage example_$(ex) $($(ex).DESCRIPTION)" >> $@;)
|
||||
@echo "*/" >> $@
|
||||
|
||||
CLEAN-OBJS += examples.doxy samples.dox $(ALL_EXAMPLES:.c=.dox)
|
||||
DOCS-yes += examples.doxy samples.dox
|
||||
examples.doxy: samples.dox $(ALL_EXAMPLES:.c=.dox)
|
||||
@echo "INPUT += $^" > $@
|
|
@ -0,0 +1,137 @@
|
|||
/*
|
||||
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
// Frame-by-frame MD5 Checksum
|
||||
// ===========================
|
||||
//
|
||||
// This example builds upon the simple decoder loop to show how checksums
|
||||
// of the decoded output can be generated. These are used for validating
|
||||
// decoder implementations against the reference implementation, for example.
|
||||
//
|
||||
// MD5 algorithm
|
||||
// -------------
|
||||
// The Message-Digest 5 (MD5) is a well known hash function. We have provided
|
||||
// an implementation derived from the RSA Data Security, Inc. MD5 Message-Digest
|
||||
// Algorithm for your use. Our implmentation only changes the interface of this
|
||||
// reference code. You must include the `md5_utils.h` header for access to these
|
||||
// functions.
|
||||
//
|
||||
// Processing The Decoded Data
|
||||
// ---------------------------
|
||||
// Each row of the image is passed to the MD5 accumulator. First the Y plane
|
||||
// is processed, then U, then V. It is important to honor the image's `stride`
|
||||
// values.
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "vpx/vp8dx.h"
|
||||
#include "vpx/vpx_decoder.h"
|
||||
|
||||
#include "../md5_utils.h"
|
||||
#include "../tools_common.h"
|
||||
#include "../video_reader.h"
|
||||
#include "./vpx_config.h"
|
||||
|
||||
static void get_image_md5(const vpx_image_t *img, unsigned char digest[16]) {
|
||||
int plane, y;
|
||||
MD5Context md5;
|
||||
|
||||
MD5Init(&md5);
|
||||
|
||||
for (plane = 0; plane < 3; ++plane) {
|
||||
const unsigned char *buf = img->planes[plane];
|
||||
const int stride = img->stride[plane];
|
||||
const int w = plane ? (img->d_w + 1) >> 1 : img->d_w;
|
||||
const int h = plane ? (img->d_h + 1) >> 1 : img->d_h;
|
||||
|
||||
for (y = 0; y < h; ++y) {
|
||||
MD5Update(&md5, buf, w);
|
||||
buf += stride;
|
||||
}
|
||||
}
|
||||
|
||||
MD5Final(digest, &md5);
|
||||
}
|
||||
|
||||
static void print_md5(FILE *stream, unsigned char digest[16]) {
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 16; ++i)
|
||||
fprintf(stream, "%02x", digest[i]);
|
||||
}
|
||||
|
||||
static const char *exec_name;
|
||||
|
||||
void usage_exit(void) {
|
||||
fprintf(stderr, "Usage: %s <infile> <outfile>\n", exec_name);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
int frame_cnt = 0;
|
||||
FILE *outfile = NULL;
|
||||
vpx_codec_ctx_t codec;
|
||||
VpxVideoReader *reader = NULL;
|
||||
const VpxVideoInfo *info = NULL;
|
||||
const VpxInterface *decoder = NULL;
|
||||
|
||||
exec_name = argv[0];
|
||||
|
||||
if (argc != 3)
|
||||
die("Invalid number of arguments.");
|
||||
|
||||
reader = vpx_video_reader_open(argv[1]);
|
||||
if (!reader)
|
||||
die("Failed to open %s for reading.", argv[1]);
|
||||
|
||||
if (!(outfile = fopen(argv[2], "wb")))
|
||||
die("Failed to open %s for writing.", argv[2]);
|
||||
|
||||
info = vpx_video_reader_get_info(reader);
|
||||
|
||||
decoder = get_vpx_decoder_by_fourcc(info->codec_fourcc);
|
||||
if (!decoder)
|
||||
die("Unknown input codec.");
|
||||
|
||||
printf("Using %s\n", vpx_codec_iface_name(decoder->codec_interface()));
|
||||
|
||||
if (vpx_codec_dec_init(&codec, decoder->codec_interface(), NULL, 0))
|
||||
die_codec(&codec, "Failed to initialize decoder");
|
||||
|
||||
while (vpx_video_reader_read_frame(reader)) {
|
||||
vpx_codec_iter_t iter = NULL;
|
||||
vpx_image_t *img = NULL;
|
||||
size_t frame_size = 0;
|
||||
const unsigned char *frame = vpx_video_reader_get_frame(reader,
|
||||
&frame_size);
|
||||
if (vpx_codec_decode(&codec, frame, (unsigned int)frame_size, NULL, 0))
|
||||
die_codec(&codec, "Failed to decode frame");
|
||||
|
||||
while ((img = vpx_codec_get_frame(&codec, &iter)) != NULL) {
|
||||
unsigned char digest[16];
|
||||
|
||||
get_image_md5(img, digest);
|
||||
print_md5(outfile, digest);
|
||||
fprintf(outfile, " img-%dx%d-%04d.i420\n",
|
||||
img->d_w, img->d_h, ++frame_cnt);
|
||||
}
|
||||
}
|
||||
|
||||
printf("Processed %d frames.\n", frame_cnt);
|
||||
if (vpx_codec_destroy(&codec))
|
||||
die_codec(&codec, "Failed to destroy codec.");
|
||||
|
||||
vpx_video_reader_close(reader);
|
||||
|
||||
fclose(outfile);
|
||||
return EXIT_SUCCESS;
|
||||
}
|
|
@ -0,0 +1,152 @@
|
|||
/*
|
||||
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
// Decode With Drops Example
|
||||
// =========================
|
||||
//
|
||||
// This is an example utility which drops a series of frames, as specified
|
||||
// on the command line. This is useful for observing the error recovery
|
||||
// features of the codec.
|
||||
//
|
||||
// Usage
|
||||
// -----
|
||||
// This example adds a single argument to the `simple_decoder` example,
|
||||
// which specifies the range or pattern of frames to drop. The parameter is
|
||||
// parsed as follows:
|
||||
//
|
||||
// Dropping A Range Of Frames
|
||||
// --------------------------
|
||||
// To drop a range of frames, specify the starting frame and the ending
|
||||
// frame to drop, separated by a dash. The following command will drop
|
||||
// frames 5 through 10 (base 1).
|
||||
//
|
||||
// $ ./decode_with_drops in.ivf out.i420 5-10
|
||||
//
|
||||
//
|
||||
// Dropping A Pattern Of Frames
|
||||
// ----------------------------
|
||||
// To drop a pattern of frames, specify the number of frames to drop and
|
||||
// the number of frames after which to repeat the pattern, separated by
|
||||
// a forward-slash. The following command will drop 3 of 7 frames.
|
||||
// Specifically, it will decode 4 frames, then drop 3 frames, and then
|
||||
// repeat.
|
||||
//
|
||||
// $ ./decode_with_drops in.ivf out.i420 3/7
|
||||
//
|
||||
//
|
||||
// Extra Variables
|
||||
// ---------------
|
||||
// This example maintains the pattern passed on the command line in the
|
||||
// `n`, `m`, and `is_range` variables:
|
||||
//
|
||||
//
|
||||
// Making The Drop Decision
|
||||
// ------------------------
|
||||
// The example decides whether to drop the frame based on the current
|
||||
// frame number, immediately before decoding the frame.
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "vpx/vp8dx.h"
|
||||
#include "vpx/vpx_decoder.h"
|
||||
|
||||
#include "../tools_common.h"
|
||||
#include "../video_reader.h"
|
||||
#include "./vpx_config.h"
|
||||
|
||||
static const char *exec_name;
|
||||
|
||||
void usage_exit(void) {
|
||||
fprintf(stderr, "Usage: %s <infile> <outfile> <N-M|N/M>\n", exec_name);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
int frame_cnt = 0;
|
||||
FILE *outfile = NULL;
|
||||
vpx_codec_ctx_t codec;
|
||||
const VpxInterface *decoder = NULL;
|
||||
VpxVideoReader *reader = NULL;
|
||||
const VpxVideoInfo *info = NULL;
|
||||
int n = 0;
|
||||
int m = 0;
|
||||
int is_range = 0;
|
||||
char *nptr = NULL;
|
||||
|
||||
exec_name = argv[0];
|
||||
|
||||
if (argc != 4)
|
||||
die("Invalid number of arguments.");
|
||||
|
||||
reader = vpx_video_reader_open(argv[1]);
|
||||
if (!reader)
|
||||
die("Failed to open %s for reading.", argv[1]);
|
||||
|
||||
if (!(outfile = fopen(argv[2], "wb")))
|
||||
die("Failed to open %s for writing.", argv[2]);
|
||||
|
||||
n = strtol(argv[3], &nptr, 0);
|
||||
m = strtol(nptr + 1, NULL, 0);
|
||||
is_range = (*nptr == '-');
|
||||
if (!n || !m || (*nptr != '-' && *nptr != '/'))
|
||||
die("Couldn't parse pattern %s.\n", argv[3]);
|
||||
|
||||
info = vpx_video_reader_get_info(reader);
|
||||
|
||||
decoder = get_vpx_decoder_by_fourcc(info->codec_fourcc);
|
||||
if (!decoder)
|
||||
die("Unknown input codec.");
|
||||
|
||||
printf("Using %s\n", vpx_codec_iface_name(decoder->codec_interface()));
|
||||
|
||||
if (vpx_codec_dec_init(&codec, decoder->codec_interface(), NULL, 0))
|
||||
die_codec(&codec, "Failed to initialize decoder.");
|
||||
|
||||
while (vpx_video_reader_read_frame(reader)) {
|
||||
vpx_codec_iter_t iter = NULL;
|
||||
vpx_image_t *img = NULL;
|
||||
size_t frame_size = 0;
|
||||
int skip;
|
||||
const unsigned char *frame = vpx_video_reader_get_frame(reader,
|
||||
&frame_size);
|
||||
if (vpx_codec_decode(&codec, frame, (unsigned int)frame_size, NULL, 0))
|
||||
die_codec(&codec, "Failed to decode frame.");
|
||||
|
||||
++frame_cnt;
|
||||
|
||||
skip = (is_range && frame_cnt >= n && frame_cnt <= m) ||
|
||||
(!is_range && m - (frame_cnt - 1) % m <= n);
|
||||
|
||||
if (!skip) {
|
||||
putc('.', stdout);
|
||||
|
||||
while ((img = vpx_codec_get_frame(&codec, &iter)) != NULL)
|
||||
vpx_img_write(img, outfile);
|
||||
} else {
|
||||
putc('X', stdout);
|
||||
}
|
||||
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
printf("Processed %d frames.\n", frame_cnt);
|
||||
if (vpx_codec_destroy(&codec))
|
||||
die_codec(&codec, "Failed to destroy codec.");
|
||||
|
||||
printf("Play: ffplay -f rawvideo -pix_fmt yuv420p -s %dx%d %s\n",
|
||||
info->frame_width, info->frame_height, argv[2]);
|
||||
|
||||
vpx_video_reader_close(reader);
|
||||
fclose(outfile);
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
|
@ -0,0 +1,138 @@
|
|||
/*
|
||||
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
// Postprocessing Decoder
|
||||
// ======================
|
||||
//
|
||||
// This example adds postprocessing to the simple decoder loop.
|
||||
//
|
||||
// Initializing Postprocessing
|
||||
// ---------------------------
|
||||
// You must inform the codec that you might request postprocessing at
|
||||
// initialization time. This is done by passing the VPX_CODEC_USE_POSTPROC
|
||||
// flag to `vpx_codec_dec_init`. If the codec does not support
|
||||
// postprocessing, this call will return VPX_CODEC_INCAPABLE. For
|
||||
// demonstration purposes, we also fall back to default initialization if
|
||||
// the codec does not provide support.
|
||||
//
|
||||
// Using Adaptive Postprocessing
|
||||
// -----------------------------
|
||||
// VP6 provides "adaptive postprocessing." It will automatically select the
|
||||
// best postprocessing filter on a frame by frame basis based on the amount
|
||||
// of time remaining before the user's specified deadline expires. The
|
||||
// special value 0 indicates that the codec should take as long as
|
||||
// necessary to provide the best quality frame. This example gives the
|
||||
// codec 15ms (15000us) to return a frame. Remember that this is a soft
|
||||
// deadline, and the codec may exceed it doing its regular processing. In
|
||||
// these cases, no additional postprocessing will be done.
|
||||
//
|
||||
// Codec Specific Postprocessing Controls
|
||||
// --------------------------------------
|
||||
// Some codecs provide fine grained controls over their built-in
|
||||
// postprocessors. VP8 is one example. The following sample code toggles
|
||||
// postprocessing on and off every 15 frames.
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "vpx/vp8dx.h"
|
||||
#include "vpx/vpx_decoder.h"
|
||||
|
||||
#include "../tools_common.h"
|
||||
#include "../video_reader.h"
|
||||
#include "./vpx_config.h"
|
||||
|
||||
static const char *exec_name;
|
||||
|
||||
void usage_exit(void) {
|
||||
fprintf(stderr, "Usage: %s <infile> <outfile>\n", exec_name);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
int frame_cnt = 0;
|
||||
FILE *outfile = NULL;
|
||||
vpx_codec_ctx_t codec;
|
||||
vpx_codec_err_t res;
|
||||
VpxVideoReader *reader = NULL;
|
||||
const VpxInterface *decoder = NULL;
|
||||
const VpxVideoInfo *info = NULL;
|
||||
|
||||
exec_name = argv[0];
|
||||
|
||||
if (argc != 3)
|
||||
die("Invalid number of arguments.");
|
||||
|
||||
reader = vpx_video_reader_open(argv[1]);
|
||||
if (!reader)
|
||||
die("Failed to open %s for reading.", argv[1]);
|
||||
|
||||
if (!(outfile = fopen(argv[2], "wb")))
|
||||
die("Failed to open %s for writing", argv[2]);
|
||||
|
||||
info = vpx_video_reader_get_info(reader);
|
||||
|
||||
decoder = get_vpx_decoder_by_fourcc(info->codec_fourcc);
|
||||
if (!decoder)
|
||||
die("Unknown input codec.");
|
||||
|
||||
printf("Using %s\n", vpx_codec_iface_name(decoder->codec_interface()));
|
||||
|
||||
res = vpx_codec_dec_init(&codec, decoder->codec_interface(), NULL,
|
||||
VPX_CODEC_USE_POSTPROC);
|
||||
if (res == VPX_CODEC_INCAPABLE)
|
||||
die_codec(&codec, "Postproc not supported by this decoder.");
|
||||
|
||||
if (res)
|
||||
die_codec(&codec, "Failed to initialize decoder.");
|
||||
|
||||
while (vpx_video_reader_read_frame(reader)) {
|
||||
vpx_codec_iter_t iter = NULL;
|
||||
vpx_image_t *img = NULL;
|
||||
size_t frame_size = 0;
|
||||
const unsigned char *frame = vpx_video_reader_get_frame(reader,
|
||||
&frame_size);
|
||||
|
||||
++frame_cnt;
|
||||
|
||||
if (frame_cnt % 30 == 1) {
|
||||
vp8_postproc_cfg_t pp = {0, 0, 0};
|
||||
|
||||
if (vpx_codec_control(&codec, VP8_SET_POSTPROC, &pp))
|
||||
die_codec(&codec, "Failed to turn off postproc.");
|
||||
} else if (frame_cnt % 30 == 16) {
|
||||
vp8_postproc_cfg_t pp = {VP8_DEBLOCK | VP8_DEMACROBLOCK | VP8_MFQE,
|
||||
4, 0};
|
||||
if (vpx_codec_control(&codec, VP8_SET_POSTPROC, &pp))
|
||||
die_codec(&codec, "Failed to turn on postproc.");
|
||||
};
|
||||
|
||||
// Decode the frame with 15ms deadline
|
||||
if (vpx_codec_decode(&codec, frame, (unsigned int)frame_size, NULL, 15000))
|
||||
die_codec(&codec, "Failed to decode frame");
|
||||
|
||||
while ((img = vpx_codec_get_frame(&codec, &iter)) != NULL) {
|
||||
vpx_img_write(img, outfile);
|
||||
}
|
||||
}
|
||||
|
||||
printf("Processed %d frames.\n", frame_cnt);
|
||||
if (vpx_codec_destroy(&codec))
|
||||
die_codec(&codec, "Failed to destroy codec");
|
||||
|
||||
printf("Play: ffplay -f rawvideo -pix_fmt yuv420p -s %dx%d %s\n",
|
||||
info->frame_width, info->frame_height, argv[2]);
|
||||
|
||||
vpx_video_reader_close(reader);
|
||||
|
||||
fclose(outfile);
|
||||
return EXIT_SUCCESS;
|
||||
}
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче