1ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang##
2ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang##  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
3ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang##
4ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang##  Use of this source code is governed by a BSD-style license
5ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang##  that can be found in the LICENSE file in the root of the source
6ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang##  tree. An additional intellectual property rights grant can be found
7ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang##  in the file PATENTS.  All contributing project authors may
8ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang##  be found in the AUTHORS file in the root of the source tree.
9ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang##
10ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
11ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_EXPORTS += exports_enc
12ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
13ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += $(VP9_COMMON_SRCS-yes)
14ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-no  += $(VP9_COMMON_SRCS-no)
15ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS_REMOVE-yes += $(VP9_COMMON_SRCS_REMOVE-yes)
16ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS_REMOVE-no  += $(VP9_COMMON_SRCS_REMOVE-no)
17ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
18ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += vp9_cx_iface.c
19ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
20ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_bitstream.c
21ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianVP9_CX_SRCS-yes += encoder/vp9_context_tree.c
22ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianVP9_CX_SRCS-yes += encoder/vp9_context_tree.h
232ec72e65689c948e92b826ae1e867bf369e72f13Vignesh VenkatasubramanianVP9_CX_SRCS-yes += encoder/vp9_cost.h
242ec72e65689c948e92b826ae1e867bf369e72f13Vignesh VenkatasubramanianVP9_CX_SRCS-yes += encoder/vp9_cost.c
25ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_dct.c
26ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianVP9_CX_SRCS-$(CONFIG_VP9_TEMPORAL_DENOISING) += encoder/vp9_denoiser.c
27ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianVP9_CX_SRCS-$(CONFIG_VP9_TEMPORAL_DENOISING) += encoder/vp9_denoiser.h
28ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_encodeframe.c
29ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_encodeframe.h
30ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_encodemb.c
31ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_encodemv.c
327ce0a1d1337c01056ba24006efab21f00e179e04Vignesh VenkatasubramanianVP9_CX_SRCS-yes += encoder/vp9_ethread.h
337ce0a1d1337c01056ba24006efab21f00e179e04Vignesh VenkatasubramanianVP9_CX_SRCS-yes += encoder/vp9_ethread.c
342ec72e65689c948e92b826ae1e867bf369e72f13Vignesh VenkatasubramanianVP9_CX_SRCS-yes += encoder/vp9_extend.c
35ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_firstpass.c
36ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_block.h
37ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_bitstream.h
38ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_encodemb.h
39ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_encodemv.h
402ec72e65689c948e92b826ae1e867bf369e72f13Vignesh VenkatasubramanianVP9_CX_SRCS-yes += encoder/vp9_extend.h
41ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_firstpass.h
420a39d0a697ff3603e8c100300fda363658e10b23James ZernVP9_CX_SRCS-yes += encoder/vp9_frame_scale.c
430a39d0a697ff3603e8c100300fda363658e10b23James ZernVP9_CX_SRCS-yes += encoder/vp9_job_queue.h
44ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_lookahead.c
45ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_lookahead.h
46ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_mcomp.h
470a39d0a697ff3603e8c100300fda363658e10b23James ZernVP9_CX_SRCS-yes += encoder/vp9_multi_thread.c
480a39d0a697ff3603e8c100300fda363658e10b23James ZernVP9_CX_SRCS-yes += encoder/vp9_multi_thread.h
49ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianVP9_CX_SRCS-yes += encoder/vp9_encoder.h
50ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_quantize.h
51ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_ratectrl.h
52ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianVP9_CX_SRCS-yes += encoder/vp9_rd.h
53ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_rdopt.h
542ec72e65689c948e92b826ae1e867bf369e72f13Vignesh VenkatasubramanianVP9_CX_SRCS-yes += encoder/vp9_pickmode.h
552ec72e65689c948e92b826ae1e867bf369e72f13Vignesh VenkatasubramanianVP9_CX_SRCS-yes += encoder/vp9_svc_layercontext.h
56ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_tokenize.h
57ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_treewriter.h
58ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_mcomp.c
59ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianVP9_CX_SRCS-yes += encoder/vp9_encoder.c
60ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_picklpf.c
61ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_picklpf.h
62ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_quantize.c
63ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_ratectrl.c
64ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianVP9_CX_SRCS-yes += encoder/vp9_rd.c
65ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_rdopt.c
662ec72e65689c948e92b826ae1e867bf369e72f13Vignesh VenkatasubramanianVP9_CX_SRCS-yes += encoder/vp9_pickmode.c
67ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_segmentation.c
68ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_segmentation.h
694fb68e5dd4e93c7599dc905d861de11ac39c5585hkuangVP9_CX_SRCS-yes += encoder/vp9_speed_features.c
704fb68e5dd4e93c7599dc905d861de11ac39c5585hkuangVP9_CX_SRCS-yes += encoder/vp9_speed_features.h
7191037db265ecdd914a26e056cf69207b4f50924ehkuangVP9_CX_SRCS-yes += encoder/vp9_subexp.c
7291037db265ecdd914a26e056cf69207b4f50924ehkuangVP9_CX_SRCS-yes += encoder/vp9_subexp.h
732ec72e65689c948e92b826ae1e867bf369e72f13Vignesh VenkatasubramanianVP9_CX_SRCS-yes += encoder/vp9_svc_layercontext.c
742ec72e65689c948e92b826ae1e867bf369e72f13Vignesh VenkatasubramanianVP9_CX_SRCS-yes += encoder/vp9_resize.c
752ec72e65689c948e92b826ae1e867bf369e72f13Vignesh VenkatasubramanianVP9_CX_SRCS-yes += encoder/vp9_resize.h
767ce0a1d1337c01056ba24006efab21f00e179e04Vignesh VenkatasubramanianVP9_CX_SRCS-$(CONFIG_INTERNAL_STATS) += encoder/vp9_blockiness.c
777ce0a1d1337c01056ba24006efab21f00e179e04Vignesh Venkatasubramanian
78ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_tokenize.c
79ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_treewriter.c
804fb68e5dd4e93c7599dc905d861de11ac39c5585hkuangVP9_CX_SRCS-yes += encoder/vp9_aq_variance.c
814fb68e5dd4e93c7599dc905d861de11ac39c5585hkuangVP9_CX_SRCS-yes += encoder/vp9_aq_variance.h
8268e1c830ade592be74773e249bf94e2bbfb50de7JohannVP9_CX_SRCS-yes += encoder/vp9_aq_360.c
8368e1c830ade592be74773e249bf94e2bbfb50de7JohannVP9_CX_SRCS-yes += encoder/vp9_aq_360.h
844fb68e5dd4e93c7599dc905d861de11ac39c5585hkuangVP9_CX_SRCS-yes += encoder/vp9_aq_cyclicrefresh.c
854fb68e5dd4e93c7599dc905d861de11ac39c5585hkuangVP9_CX_SRCS-yes += encoder/vp9_aq_cyclicrefresh.h
864fb68e5dd4e93c7599dc905d861de11ac39c5585hkuangVP9_CX_SRCS-yes += encoder/vp9_aq_complexity.c
874fb68e5dd4e93c7599dc905d861de11ac39c5585hkuangVP9_CX_SRCS-yes += encoder/vp9_aq_complexity.h
887bc9febe8749e98a3812a0dc4380ceae75c29450JohannVP9_CX_SRCS-yes += encoder/vp9_alt_ref_aq.h
897bc9febe8749e98a3812a0dc4380ceae75c29450JohannVP9_CX_SRCS-yes += encoder/vp9_alt_ref_aq.c
907ce0a1d1337c01056ba24006efab21f00e179e04Vignesh VenkatasubramanianVP9_CX_SRCS-yes += encoder/vp9_skin_detection.c
917ce0a1d1337c01056ba24006efab21f00e179e04Vignesh VenkatasubramanianVP9_CX_SRCS-yes += encoder/vp9_skin_detection.h
9268e1c830ade592be74773e249bf94e2bbfb50de7JohannVP9_CX_SRCS-yes += encoder/vp9_noise_estimate.c
9368e1c830ade592be74773e249bf94e2bbfb50de7JohannVP9_CX_SRCS-yes += encoder/vp9_noise_estimate.h
941184aebb761cbeac9124c37189a80a1a58f04b6bhkuangifeq ($(CONFIG_VP9_POSTPROC),yes)
95ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-$(CONFIG_INTERNAL_STATS) += common/vp9_postproc.h
96ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-$(CONFIG_INTERNAL_STATS) += common/vp9_postproc.c
97ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangendif
98ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_temporal_filter.c
99ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_temporal_filter.h
100ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_mbgraph.c
101ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes += encoder/vp9_mbgraph.h
102ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
1030a39d0a697ff3603e8c100300fda363658e10b23James ZernVP9_CX_SRCS-$(HAVE_SSE4_1) += encoder/x86/temporal_filter_sse4.c
1040a39d0a697ff3603e8c100300fda363658e10b23James Zern
1057ce0a1d1337c01056ba24006efab21f00e179e04Vignesh VenkatasubramanianVP9_CX_SRCS-$(HAVE_SSE2) += encoder/x86/vp9_quantize_sse2.c
10668e1c830ade592be74773e249bf94e2bbfb50de7JohannVP9_CX_SRCS-$(HAVE_AVX) += encoder/x86/vp9_diamond_search_sad_avx.c
1077ce0a1d1337c01056ba24006efab21f00e179e04Vignesh Venkatasubramanianifeq ($(CONFIG_VP9_HIGHBITDEPTH),yes)
1087ce0a1d1337c01056ba24006efab21f00e179e04Vignesh VenkatasubramanianVP9_CX_SRCS-$(HAVE_SSE2) += encoder/x86/vp9_highbd_block_error_intrin_sse2.c
1097ce0a1d1337c01056ba24006efab21f00e179e04Vignesh Venkatasubramanianendif
110f3bed9137f66ef693bd406e43b17e9a1114f1e14hkuang
11168e1c830ade592be74773e249bf94e2bbfb50de7JohannVP9_CX_SRCS-$(HAVE_SSE2) += encoder/x86/vp9_dct_sse2.asm
112f3bed9137f66ef693bd406e43b17e9a1114f1e14hkuangVP9_CX_SRCS-$(HAVE_SSE2) += encoder/x86/vp9_error_sse2.asm
113f3bed9137f66ef693bd406e43b17e9a1114f1e14hkuang
11491037db265ecdd914a26e056cf69207b4f50924ehkuangifeq ($(ARCH_X86_64),yes)
115ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianVP9_CX_SRCS-$(HAVE_SSSE3) += encoder/x86/vp9_quantize_ssse3_x86_64.asm
11691037db265ecdd914a26e056cf69207b4f50924ehkuangendif
117ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
11868e1c830ade592be74773e249bf94e2bbfb50de7JohannVP9_CX_SRCS-$(HAVE_SSE2) += encoder/x86/vp9_dct_intrin_sse2.c
1197ce0a1d1337c01056ba24006efab21f00e179e04Vignesh VenkatasubramanianVP9_CX_SRCS-$(HAVE_SSSE3) += encoder/x86/vp9_dct_ssse3.c
12068e1c830ade592be74773e249bf94e2bbfb50de7JohannVP9_CX_SRCS-$(HAVE_SSSE3) += encoder/x86/vp9_frame_scale_ssse3.c
1217ce0a1d1337c01056ba24006efab21f00e179e04Vignesh Venkatasubramanian
1227ce0a1d1337c01056ba24006efab21f00e179e04Vignesh Venkatasubramanianifeq ($(CONFIG_VP9_TEMPORAL_DENOISING),yes)
1237ce0a1d1337c01056ba24006efab21f00e179e04Vignesh VenkatasubramanianVP9_CX_SRCS-$(HAVE_SSE2) += encoder/x86/vp9_denoiser_sse2.c
1240a39d0a697ff3603e8c100300fda363658e10b23James ZernVP9_CX_SRCS-$(HAVE_NEON) += encoder/arm/neon/vp9_denoiser_neon.c
1257ce0a1d1337c01056ba24006efab21f00e179e04Vignesh Venkatasubramanianendif
126ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
1270a39d0a697ff3603e8c100300fda363658e10b23James ZernVP9_CX_SRCS-$(HAVE_AVX2) += encoder/x86/vp9_error_avx2.c
128ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh Venkatasubramanian
1297ce0a1d1337c01056ba24006efab21f00e179e04Vignesh Venkatasubramanianifneq ($(CONFIG_VP9_HIGHBITDEPTH),yes)
1307ce0a1d1337c01056ba24006efab21f00e179e04Vignesh VenkatasubramanianVP9_CX_SRCS-$(HAVE_NEON) += encoder/arm/neon/vp9_error_neon.c
1317ce0a1d1337c01056ba24006efab21f00e179e04Vignesh Venkatasubramanianendif
1320a39d0a697ff3603e8c100300fda363658e10b23James ZernVP9_CX_SRCS-$(HAVE_NEON) += encoder/arm/neon/vp9_dct_neon.c
133df37111358d02836cb29bbcb9c6e4c95dff90a16JohannVP9_CX_SRCS-$(HAVE_NEON) += encoder/arm/neon/vp9_frame_scale_neon.c
134ba6c59e9d7d7013b3906b6f4230b663422681848Vignesh VenkatasubramanianVP9_CX_SRCS-$(HAVE_NEON) += encoder/arm/neon/vp9_quantize_neon.c
1357ce0a1d1337c01056ba24006efab21f00e179e04Vignesh Venkatasubramanian
1367ce0a1d1337c01056ba24006efab21f00e179e04Vignesh VenkatasubramanianVP9_CX_SRCS-$(HAVE_MSA) += encoder/mips/msa/vp9_error_msa.c
1377ce0a1d1337c01056ba24006efab21f00e179e04Vignesh VenkatasubramanianVP9_CX_SRCS-$(HAVE_MSA) += encoder/mips/msa/vp9_fdct4x4_msa.c
1387ce0a1d1337c01056ba24006efab21f00e179e04Vignesh VenkatasubramanianVP9_CX_SRCS-$(HAVE_MSA) += encoder/mips/msa/vp9_fdct8x8_msa.c
1397ce0a1d1337c01056ba24006efab21f00e179e04Vignesh VenkatasubramanianVP9_CX_SRCS-$(HAVE_MSA) += encoder/mips/msa/vp9_fdct16x16_msa.c
1407ce0a1d1337c01056ba24006efab21f00e179e04Vignesh VenkatasubramanianVP9_CX_SRCS-$(HAVE_MSA) += encoder/mips/msa/vp9_fdct_msa.h
1412ec72e65689c948e92b826ae1e867bf369e72f13Vignesh Venkatasubramanian
142df37111358d02836cb29bbcb9c6e4c95dff90a16Johann# Strip unnecessary files with CONFIG_REALTIME_ONLY
143df37111358d02836cb29bbcb9c6e4c95dff90a16JohannVP9_CX_SRCS_REMOVE-$(CONFIG_REALTIME_ONLY) += encoder/vp9_firstpass.c
144df37111358d02836cb29bbcb9c6e4c95dff90a16JohannVP9_CX_SRCS_REMOVE-$(CONFIG_REALTIME_ONLY) += encoder/vp9_mbgraph.c
145df37111358d02836cb29bbcb9c6e4c95dff90a16JohannVP9_CX_SRCS_REMOVE-$(CONFIG_REALTIME_ONLY) += encoder/vp9_temporal_filter.c
146df37111358d02836cb29bbcb9c6e4c95dff90a16JohannVP9_CX_SRCS_REMOVE-$(CONFIG_REALTIME_ONLY) += encoder/x86/temporal_filter_sse4.c
147df37111358d02836cb29bbcb9c6e4c95dff90a16Johann
148ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVP9_CX_SRCS-yes := $(filter-out $(VP9_CX_SRCS_REMOVE-yes),$(VP9_CX_SRCS-yes))
149