136504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.org##
236504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.org##  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
336504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.org##
436504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.org##  Use of this source code is governed by a BSD-style license
536504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.org##  that can be found in the LICENSE file in the root of the source
636504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.org##  tree. An additional intellectual property rights grant can be found
736504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.org##  in the file PATENTS.  All contributing project authors may
836504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.org##  be found in the AUTHORS file in the root of the source tree.
936504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.org##
1036504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.org
1136504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_EXPORTS += exports_enc
1236504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.org
1336504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += $(VP9_COMMON_SRCS-yes)
1436504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-no  += $(VP9_COMMON_SRCS-no)
1536504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS_REMOVE-yes += $(VP9_COMMON_SRCS_REMOVE-yes)
1636504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS_REMOVE-no  += $(VP9_COMMON_SRCS_REMOVE-no)
1736504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.org
1836504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += vp9_cx_iface.c
1936504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.org
2036504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_bitstream.c
21693441efe611de7ca09c00f4e79776f604b689f4joeyparrish@google.comVP9_CX_SRCS-yes += encoder/vp9_context_tree.c
22693441efe611de7ca09c00f4e79776f604b689f4joeyparrish@google.comVP9_CX_SRCS-yes += encoder/vp9_context_tree.h
2393a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_cost.h
2493a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_cost.c
2536504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_dct.c
2641294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgVP9_CX_SRCS-$(CONFIG_VP9_TEMPORAL_DENOISING) += encoder/vp9_denoiser.c
2741294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgVP9_CX_SRCS-$(CONFIG_VP9_TEMPORAL_DENOISING) += encoder/vp9_denoiser.h
2836504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_encodeframe.c
29d348b8d765c019ee7250075d663a83db00c65c08tomfinegan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_encodeframe.h
3036504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_encodemb.c
3136504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_encodemv.c
32d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_extend.c
3336504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_firstpass.c
3436504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_block.h
350e29f91ae7876791fc422e9c7cea72b1866439a6johannkoenig@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_writer.h
360e29f91ae7876791fc422e9c7cea72b1866439a6johannkoenig@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_writer.c
3793a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_write_bit_buffer.c
3810a9a0d835561a7f2300c561c514efcf374554d6fgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_write_bit_buffer.h
3936504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_bitstream.h
4036504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_encodemb.h
4136504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_encodemv.h
42d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_extend.h
4336504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_firstpass.h
4436504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_lookahead.c
4536504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_lookahead.h
4636504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_mcomp.h
47693441efe611de7ca09c00f4e79776f604b689f4joeyparrish@google.comVP9_CX_SRCS-yes += encoder/vp9_encoder.h
4836504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_quantize.h
4936504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_ratectrl.h
50e2064011d36b2008099446503f28e64d445060ecjohannkoenig@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_rd.h
5136504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_rdopt.h
52dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_pickmode.h
5393a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_svc_layercontext.h
5436504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_tokenize.h
5536504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_treewriter.h
5636504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_variance.h
5736504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_mcomp.c
58693441efe611de7ca09c00f4e79776f604b689f4joeyparrish@google.comVP9_CX_SRCS-yes += encoder/vp9_encoder.c
5936504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_picklpf.c
60d348b8d765c019ee7250075d663a83db00c65c08tomfinegan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_picklpf.h
6136504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_quantize.c
6236504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_ratectrl.c
63e2064011d36b2008099446503f28e64d445060ecjohannkoenig@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_rd.c
6436504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_rdopt.c
65dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_pickmode.c
6676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_sad.c
6736504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_segmentation.c
6836504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_segmentation.h
6993a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_speed_features.c
7093a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_speed_features.h
7147265f8fe3a36a426773454ad90d20c9aa616c24johannkoenig@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_subexp.c
7247265f8fe3a36a426773454ad90d20c9aa616c24johannkoenig@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_subexp.h
7393a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_svc_layercontext.c
74dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_resize.c
75dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_resize.h
7636504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-$(CONFIG_INTERNAL_STATS) += encoder/vp9_ssim.c
7793a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.orgVP9_CX_SRCS-$(CONFIG_INTERNAL_STATS) += encoder/vp9_ssim.h
7836504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_tokenize.c
7936504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_treewriter.c
8076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_variance.c
8193a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_aq_variance.c
8293a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_aq_variance.h
8393a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_aq_cyclicrefresh.c
8493a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_aq_cyclicrefresh.h
8593a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_aq_complexity.c
8693a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_aq_complexity.h
87f9586bb54d74c97d07b09eb2512f8569c9c1c025fgalligan@chromium.orgifeq ($(CONFIG_VP9_POSTPROC),yes)
8836504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-$(CONFIG_INTERNAL_STATS) += common/vp9_postproc.h
8936504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-$(CONFIG_INTERNAL_STATS) += common/vp9_postproc.c
9036504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgendif
9136504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_temporal_filter.c
9236504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_temporal_filter.h
9336504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_mbgraph.c
9436504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes += encoder/vp9_mbgraph.h
9536504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.org
96dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.orgVP9_CX_SRCS-$(HAVE_AVX2) += encoder/x86/vp9_variance_impl_intrin_avx2.c
973f0af3b06425f635f3559f0bd4f53efea95fa5e2johannkoenig@chromium.orgVP9_CX_SRCS-$(HAVE_SSE2) += encoder/x86/vp9_sad4d_sse2.asm
9893a74791c8e808ea76001ee07693aa2a5fdd3500johannkoenig@chromium.orgVP9_CX_SRCS-$(HAVE_AVX2) += encoder/x86/vp9_sad4d_intrin_avx2.c
99411971f94253c85e1866c281860d6344f6aa0c78fgalligan@chromium.orgVP9_CX_SRCS-$(HAVE_AVX2) += encoder/x86/vp9_subpel_variance_impl_intrin_avx2.c
10036504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-$(HAVE_SSE2) += encoder/x86/vp9_temporal_filter_apply_sse2.asm
10136504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-$(HAVE_SSE3) += encoder/x86/vp9_sad_sse3.asm
10253a13f1fa964820f7a8f9d3932a6f3c0433f8bf5fgalligan@chromium.org
10376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.orgifeq ($(CONFIG_USE_X86INC),yes)
1047765c078fa920ba6c949c15f16b6cc979d8bb95bjohannkoenig@chromium.orgVP9_CX_SRCS-$(HAVE_MMX) += encoder/x86/vp9_dct_mmx.asm
10553a13f1fa964820f7a8f9d3932a6f3c0433f8bf5fgalligan@chromium.orgVP9_CX_SRCS-$(HAVE_SSE2) += encoder/x86/vp9_error_sse2.asm
10653a13f1fa964820f7a8f9d3932a6f3c0433f8bf5fgalligan@chromium.orgVP9_CX_SRCS-$(HAVE_SSE2) += encoder/x86/vp9_sad_sse2.asm
10753a13f1fa964820f7a8f9d3932a6f3c0433f8bf5fgalligan@chromium.orgVP9_CX_SRCS-$(HAVE_SSE2) += encoder/x86/vp9_subtract_sse2.asm
10853a13f1fa964820f7a8f9d3932a6f3c0433f8bf5fgalligan@chromium.orgVP9_CX_SRCS-$(HAVE_SSE2) += encoder/x86/vp9_variance_sse2.c
10953a13f1fa964820f7a8f9d3932a6f3c0433f8bf5fgalligan@chromium.orgVP9_CX_SRCS-$(HAVE_SSE2) += encoder/x86/vp9_subpel_variance.asm
11053a13f1fa964820f7a8f9d3932a6f3c0433f8bf5fgalligan@chromium.orgendif
11153a13f1fa964820f7a8f9d3932a6f3c0433f8bf5fgalligan@chromium.org
11247265f8fe3a36a426773454ad90d20c9aa616c24johannkoenig@chromium.orgifeq ($(ARCH_X86_64),yes)
11388b47b29cc274dd19cddc37c1ce1834d97df282efgalligan@chromium.orgVP9_CX_SRCS-$(HAVE_SSSE3) += encoder/x86/vp9_quantize_ssse3_x86_64.asm
11488b47b29cc274dd19cddc37c1ce1834d97df282efgalligan@chromium.orgVP9_CX_SRCS-$(HAVE_SSSE3) += encoder/x86/vp9_dct_ssse3_x86_64.asm
11547265f8fe3a36a426773454ad90d20c9aa616c24johannkoenig@chromium.orgendif
11636504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-$(HAVE_SSSE3) += encoder/x86/vp9_sad_ssse3.asm
11736504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-$(HAVE_SSE4_1) += encoder/x86/vp9_sad_sse4.asm
11888b47b29cc274dd19cddc37c1ce1834d97df282efgalligan@chromium.orgVP9_CX_SRCS-$(ARCH_X86_64) += encoder/x86/vp9_ssim_opt_x86_64.asm
11936504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.org
120c964bffd9860979a873e7401646c18965d42d78fjohannkoenig@chromium.orgVP9_CX_SRCS-$(HAVE_SSE2) += encoder/x86/vp9_dct_sse2.c
12153a13f1fa964820f7a8f9d3932a6f3c0433f8bf5fgalligan@chromium.orgVP9_CX_SRCS-$(HAVE_SSE2) += encoder/x86/vp9_dct32x32_sse2.c
12236504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.org
123d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.orgVP9_CX_SRCS-$(HAVE_AVX2) += encoder/x86/vp9_dct32x32_avx2.c
124e2064011d36b2008099446503f28e64d445060ecjohannkoenig@chromium.orgVP9_CX_SRCS-$(HAVE_AVX2) += encoder/x86/vp9_dct_avx2.c
125e2064011d36b2008099446503f28e64d445060ecjohannkoenig@chromium.orgVP9_CX_SRCS-$(HAVE_AVX2) += encoder/x86/vp9_error_intrin_avx2.c
126e2064011d36b2008099446503f28e64d445060ecjohannkoenig@chromium.orgVP9_CX_SRCS-$(HAVE_AVX2) += encoder/x86/vp9_variance_avx2.c
127d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.org
128ac4e313c19203132648a2a271703b6ee76fe4284johannkoenig@chromium.orgVP9_CX_SRCS-$(HAVE_NEON) += encoder/arm/neon/vp9_sad_neon.c
12941294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgVP9_CX_SRCS-$(HAVE_NEON) += encoder/arm/neon/vp9_dct_neon.c
13041294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgVP9_CX_SRCS-$(HAVE_NEON) += encoder/arm/neon/vp9_variance_neon.c
13141294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgVP9_CX_SRCS-$(HAVE_NEON) += encoder/arm/neon/vp9_quantize_neon.c
13241294d96d7dbf9bc215b09832a8336c5fb158f0bjohannkoenig@chromium.orgVP9_CX_SRCS-$(HAVE_NEON) += encoder/arm/neon/vp9_subtract_neon.c
133ac4e313c19203132648a2a271703b6ee76fe4284johannkoenig@chromium.org
13436504e6f3126c1d97edf9b059e9f90167fc71eccfgalligan@chromium.orgVP9_CX_SRCS-yes := $(filter-out $(VP9_CX_SRCS_REMOVE-yes),$(VP9_CX_SRCS-yes))
135