1233d2500723e5594f3e7c70896ffeeef32b9c950ywan##
2233d2500723e5594f3e7c70896ffeeef32b9c950ywan##  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
3233d2500723e5594f3e7c70896ffeeef32b9c950ywan##
4233d2500723e5594f3e7c70896ffeeef32b9c950ywan##  Use of this source code is governed by a BSD-style license
5233d2500723e5594f3e7c70896ffeeef32b9c950ywan##  that can be found in the LICENSE file in the root of the source
6233d2500723e5594f3e7c70896ffeeef32b9c950ywan##  tree. An additional intellectual property rights grant can be found
7233d2500723e5594f3e7c70896ffeeef32b9c950ywan##  in the file PATENTS.  All contributing project authors may
8233d2500723e5594f3e7c70896ffeeef32b9c950ywan##  be found in the AUTHORS file in the root of the source tree.
9233d2500723e5594f3e7c70896ffeeef32b9c950ywan##
10233d2500723e5594f3e7c70896ffeeef32b9c950ywan
11233d2500723e5594f3e7c70896ffeeef32b9c950ywan
12233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_EXPORTS += exports_enc
13233d2500723e5594f3e7c70896ffeeef32b9c950ywan
14233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += $(VP8_COMMON_SRCS-yes)
15233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-no  += $(VP8_COMMON_SRCS-no)
16233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS_REMOVE-yes += $(VP8_COMMON_SRCS_REMOVE-yes)
17233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS_REMOVE-no  += $(VP8_COMMON_SRCS_REMOVE-no)
18233d2500723e5594f3e7c70896ffeeef32b9c950ywan
19233d2500723e5594f3e7c70896ffeeef32b9c950ywanifeq ($(ARCH_ARM),yes)
20233d2500723e5594f3e7c70896ffeeef32b9c950ywan  include $(SRC_PATH_BARE)/$(VP8_PREFIX)vp8cx_arm.mk
21233d2500723e5594f3e7c70896ffeeef32b9c950ywanendif
22233d2500723e5594f3e7c70896ffeeef32b9c950ywan
23233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += vp8cx.mk
24233d2500723e5594f3e7c70896ffeeef32b9c950ywan
25233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += vp8_cx_iface.c
26233d2500723e5594f3e7c70896ffeeef32b9c950ywan
27233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/defaultcoefcounts.h
28233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/bitstream.c
29233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/boolhuff.c
30233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/dct.c
31233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/encodeframe.c
32233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/encodeframe.h
33233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/encodeintra.c
34233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/encodemb.c
35233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/encodemv.c
36233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-$(CONFIG_MULTITHREAD) += encoder/ethreading.c
37233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/firstpass.c
38233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/block.h
39233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/boolhuff.h
40233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/bitstream.h
41233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-$(CONFIG_TEMPORAL_DENOISING) += encoder/denoising.h
42233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-$(CONFIG_TEMPORAL_DENOISING) += encoder/denoising.c
43233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/encodeintra.h
44233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/encodemb.h
45233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/encodemv.h
46233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/firstpass.h
47233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/lookahead.c
48233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/lookahead.h
49233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/mcomp.h
50233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/modecosts.h
51233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/onyx_int.h
52233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/pickinter.h
53233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/quantize.h
54233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/ratectrl.h
55233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/rdopt.h
56233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/tokenize.h
57233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/treewriter.h
58233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/mcomp.c
59233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/modecosts.c
60233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/onyx_if.c
61233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/pickinter.c
62233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/picklpf.c
63233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/quantize.c
64233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/ratectrl.c
65233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/rdopt.c
66233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/segmentation.c
67233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/segmentation.h
68233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-$(CONFIG_INTERNAL_STATS) += encoder/ssim.c
69233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/tokenize.c
70233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/dct_value_cost.h
71233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/dct_value_tokens.h
72233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/treewriter.c
73233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-$(CONFIG_INTERNAL_STATS) += common/postproc.h
74233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-$(CONFIG_INTERNAL_STATS) += common/postproc.c
75233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/temporal_filter.c
76233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-$(CONFIG_MULTI_RES_ENCODING) += encoder/mr_dissim.c
77233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-$(CONFIG_MULTI_RES_ENCODING) += encoder/mr_dissim.h
78233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes += encoder/vp8_asm_enc_offsets.c
79233d2500723e5594f3e7c70896ffeeef32b9c950ywan
80233d2500723e5594f3e7c70896ffeeef32b9c950ywanifeq ($(CONFIG_REALTIME_ONLY),yes)
81233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS_REMOVE-yes += encoder/firstpass.c
82233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS_REMOVE-yes += encoder/temporal_filter.c
83233d2500723e5594f3e7c70896ffeeef32b9c950ywanendif
84233d2500723e5594f3e7c70896ffeeef32b9c950ywan
85233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-$(HAVE_MMX) += encoder/x86/dct_mmx.asm
86233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-$(HAVE_MMX) += encoder/x86/subtract_mmx.asm
87233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-$(HAVE_MMX) += encoder/x86/vp8_enc_stubs_mmx.c
88233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-$(HAVE_SSE2) += encoder/x86/dct_sse2.asm
89233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-$(HAVE_SSE2) += encoder/x86/fwalsh_sse2.asm
90233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-$(HAVE_SSE2) += encoder/x86/quantize_sse2.c
91233d2500723e5594f3e7c70896ffeeef32b9c950ywan
92233d2500723e5594f3e7c70896ffeeef32b9c950ywanifeq ($(CONFIG_TEMPORAL_DENOISING),yes)
93233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-$(HAVE_SSE2) += encoder/x86/denoising_sse2.c
94233d2500723e5594f3e7c70896ffeeef32b9c950ywanendif
95233d2500723e5594f3e7c70896ffeeef32b9c950ywan
96233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-$(HAVE_SSE2) += encoder/x86/subtract_sse2.asm
97233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-$(HAVE_SSE2) += encoder/x86/temporal_filter_apply_sse2.asm
98233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-$(HAVE_SSE2) += encoder/x86/vp8_enc_stubs_sse2.c
99233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-$(HAVE_SSSE3) += encoder/x86/quantize_ssse3.asm
100233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-$(HAVE_SSE4_1) += encoder/x86/quantize_sse4.asm
101233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-$(ARCH_X86)$(ARCH_X86_64) += encoder/x86/quantize_mmx.asm
102233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-$(ARCH_X86)$(ARCH_X86_64) += encoder/x86/encodeopt.asm
103233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-$(ARCH_X86_64) += encoder/x86/ssim_opt.asm
104233d2500723e5594f3e7c70896ffeeef32b9c950ywan
105233d2500723e5594f3e7c70896ffeeef32b9c950ywanifeq ($(CONFIG_REALTIME_ONLY),yes)
106233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS_REMOVE-$(HAVE_SSE2) += encoder/x86/temporal_filter_apply_sse2.asm
107233d2500723e5594f3e7c70896ffeeef32b9c950ywanendif
108233d2500723e5594f3e7c70896ffeeef32b9c950ywan
109233d2500723e5594f3e7c70896ffeeef32b9c950ywanVP8_CX_SRCS-yes := $(filter-out $(VP8_CX_SRCS_REMOVE-yes),$(VP8_CX_SRCS-yes))
110233d2500723e5594f3e7c70896ffeeef32b9c950ywan
111233d2500723e5594f3e7c70896ffeeef32b9c950ywan$(eval $(call asm_offsets_template,\
112233d2500723e5594f3e7c70896ffeeef32b9c950ywan         vp8_asm_enc_offsets.asm, $(VP8_PREFIX)encoder/vp8_asm_enc_offsets.c))
113