OLD | NEW |
---|---|
1 # Copyright 2015 The Chromium Authors. All rights reserved. | 1 # Copyright 2015 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import("//third_party/openh264/openh264_args.gni") | 5 import("//third_party/openh264/openh264_args.gni") |
6 import("//third_party/openh264/openh264_sources.gni") | |
7 import("//third_party/yasm/yasm_assemble.gni") | |
6 | 8 |
7 # Config shared by all openh264 targets. | 9 # Config shared by all openh264 targets. |
8 config("config") { | 10 config("config") { |
9 cflags = [] | 11 cflags = [] |
10 defines = [] | 12 defines = [] |
11 | 13 |
12 # GCC and clang flags. MSVS (is_win && !is_clang) does not use cflags. | 14 # GCC and clang flags. MSVS (is_win && !is_clang) does not use cflags. |
13 if (!is_win || is_clang) { | 15 if (!is_win || is_clang) { |
14 cflags += [ | 16 cflags += [ |
15 "-Wno-format", | 17 "-Wno-format", |
16 "-Wno-header-hygiene", | 18 "-Wno-header-hygiene", |
17 "-Wno-unused-function", | 19 "-Wno-unused-function", |
18 "-Wno-unused-value", | 20 "-Wno-unused-value", |
19 ] | 21 ] |
20 } | 22 } |
21 | 23 |
22 # Platform-specific defines. | 24 # Platform-specific defines. |
23 if (is_android) { | 25 if (is_android) { |
24 # Android NDK is necessary for its cpufeatures and this define is what | 26 # Android NDK is necessary for its cpufeatures and this define is what |
25 # OpenH264 code uses to check if it should be used. | 27 # OpenH264 code uses to check if it should be used. |
26 defines += [ "ANDROID_NDK" ] | 28 defines += [ "ANDROID_NDK" ] |
27 } | 29 } |
28 } | 30 } |
29 | 31 |
32 yasm_assemble("openh264_common_yasm") { | |
33 include_dirs = openh264_common_include_dirs | |
34 if (target_cpu == "x86" || target_cpu == "x64") { | |
35 sources = openh264_common_sources_asm_x86 | |
36 if (target_cpu == "x86") { | |
37 defines = [ "X86_32" ] | |
38 } else { # x64 | |
39 if (target_os == "mac") { | |
40 defines = [ | |
41 "PREFIX", | |
42 "UNIX64", | |
43 ] | |
44 } else { | |
45 defines = [ "WIN64" ] | |
46 } | |
47 } | |
48 } else { | |
49 #TODO | |
50 } | |
51 } | |
52 | |
53 yasm_assemble("openh264_processing_yasm") { | |
54 include_dirs = openh264_processing_include_dirs | |
55 include_dirs += [ "./src/codec/common/x86" ] | |
56 if (target_cpu == "x86" || target_cpu == "x64") { | |
57 sources = openh264_processing_sources_asm_x86 | |
58 if (target_cpu == "x86") { | |
59 defines = [ "X86_32" ] | |
60 } else { # x64 | |
61 if (target_os == "mac") { | |
kthelgason_chromium
2017/01/10 13:43:56
I believe it's conventional to use the helpers `is
| |
62 defines = [ | |
63 "PREFIX", | |
64 "UNIX64", | |
65 ] | |
66 } else { | |
67 defines = [ "WIN64" ] | |
kthelgason_chromium
2017/01/10 13:43:56
Couldn't this also be linux or iOS simulator?
| |
68 } | |
69 } | |
70 } else { | |
71 #TODO | |
72 } | |
73 } | |
74 | |
75 yasm_assemble("openh264_encoder_yasm") { | |
76 include_dirs = openh264_encoder_include_dirs | |
77 include_dirs += [ "./src/codec/common/x86" ] | |
78 if (target_cpu == "x86" || target_cpu == "x64") { | |
79 sources = openh264_encoder_sources_asm_x86 | |
80 if (target_cpu == "x86") { | |
81 defines = [ "X86_32" ] | |
82 } else { # x64 | |
83 if (target_os == "mac") { | |
84 defines = [ | |
85 "PREFIX", | |
86 "UNIX64", | |
87 ] | |
88 } else { | |
89 defines = [ "WIN64" ] | |
90 } | |
91 } | |
92 } else { | |
93 #TODO | |
94 } | |
95 } | |
96 | |
30 source_set("common") { | 97 source_set("common") { |
31 sources = [ | 98 sources = openh264_common_sources |
32 "src/codec/common/inc/WelsCircleQueue.h", | 99 include_dirs = openh264_common_include_dirs |
33 "src/codec/common/inc/WelsList.h", | |
34 "src/codec/common/inc/WelsLock.h", | |
35 "src/codec/common/inc/WelsTask.h", | |
36 "src/codec/common/inc/WelsTaskThread.h", | |
37 "src/codec/common/inc/WelsThread.h", | |
38 "src/codec/common/inc/WelsThreadLib.h", | |
39 "src/codec/common/inc/WelsThreadPool.h", | |
40 "src/codec/common/inc/copy_mb.h", | |
41 "src/codec/common/inc/cpu.h", | |
42 "src/codec/common/inc/cpu_core.h", | |
43 "src/codec/common/inc/crt_util_safe_x.h", | |
44 "src/codec/common/inc/deblocking_common.h", | |
45 "src/codec/common/inc/expand_pic.h", | |
46 "src/codec/common/inc/golomb_common.h", | |
47 "src/codec/common/inc/intra_pred_common.h", | |
48 "src/codec/common/inc/ls_defines.h", | |
49 "src/codec/common/inc/macros.h", | |
50 "src/codec/common/inc/mc.h", | |
51 "src/codec/common/inc/measure_time.h", | |
52 "src/codec/common/inc/memory_align.h", | |
53 "src/codec/common/inc/sad_common.h", | |
54 "src/codec/common/inc/typedefs.h", | |
55 "src/codec/common/inc/utils.h", | |
56 "src/codec/common/inc/version.h", | |
57 "src/codec/common/inc/welsCodecTrace.h", | |
58 "src/codec/common/inc/wels_common_defs.h", | |
59 "src/codec/common/inc/wels_const_common.h", | |
60 "src/codec/common/src/WelsTaskThread.cpp", | |
61 "src/codec/common/src/WelsThread.cpp", | |
62 "src/codec/common/src/WelsThreadLib.cpp", | |
63 "src/codec/common/src/WelsThreadPool.cpp", | |
64 "src/codec/common/src/common_tables.cpp", | |
65 "src/codec/common/src/copy_mb.cpp", | |
66 "src/codec/common/src/cpu.cpp", | |
67 "src/codec/common/src/crt_util_safe_x.cpp", | |
68 "src/codec/common/src/deblocking_common.cpp", | |
69 "src/codec/common/src/expand_pic.cpp", | |
70 "src/codec/common/src/intra_pred_common.cpp", | |
71 "src/codec/common/src/mc.cpp", | |
72 "src/codec/common/src/memory_align.cpp", | |
73 "src/codec/common/src/sad_common.cpp", | |
74 "src/codec/common/src/utils.cpp", | |
75 "src/codec/common/src/welsCodecTrace.cpp", | |
76 ] | |
77 | |
78 include_dirs = [ | |
79 "src/codec/api/svc", | |
80 "src/codec/common/inc", | |
81 "src/codec/common/src", | |
82 ] | |
83 | 100 |
84 configs -= [ "//build/config/compiler:chromium_code" ] | 101 configs -= [ "//build/config/compiler:chromium_code" ] |
85 configs += [ "//build/config/compiler:no_chromium_code" ] | 102 configs += [ "//build/config/compiler:no_chromium_code" ] |
86 configs += [ ":config" ] | 103 configs += [ ":config" ] |
87 deps = [] | 104 deps = [] |
105 if (target_cpu == "x86" || target_cpu == "x64") { | |
106 defines = [ "X86_ASM" ] | |
107 deps += [ ":openh264_common_yasm" ] | |
108 } | |
88 if (is_android) { | 109 if (is_android) { |
89 deps += [ | 110 deps += [ |
90 # Defines "android_get/setCpu..." functions. The original OpenH264 build | 111 # Defines "android_get/setCpu..." functions. The original OpenH264 build |
91 # files replaces these using macros for "wels_..." versions of the same | 112 # files replaces these using macros for "wels_..." versions of the same |
92 # functions. We do not have access to these and use the <cpu-features.h> | 113 # functions. We do not have access to these and use the <cpu-features.h> |
93 # ones instead. | 114 # ones instead. |
94 "//third_party/android_tools:cpu_features", | 115 "//third_party/android_tools:cpu_features", |
95 ] | 116 ] |
96 } | 117 } |
97 } | 118 } |
98 | 119 |
99 source_set("processing") { | 120 source_set("processing") { |
100 sources = [ | 121 sources = openh264_processing_sources |
101 "src/codec/processing/interface/IWelsVP.h", | 122 include_dirs = openh264_processing_include_dirs |
102 "src/codec/processing/src/adaptivequantization/AdaptiveQuantization.cpp", | |
103 "src/codec/processing/src/adaptivequantization/AdaptiveQuantization.h", | |
104 "src/codec/processing/src/backgrounddetection/BackgroundDetection.cpp", | |
105 "src/codec/processing/src/backgrounddetection/BackgroundDetection.h", | |
106 "src/codec/processing/src/common/WelsFrameWork.cpp", | |
107 "src/codec/processing/src/common/WelsFrameWork.h", | |
108 "src/codec/processing/src/common/WelsFrameWorkEx.cpp", | |
109 "src/codec/processing/src/common/common.h", | |
110 "src/codec/processing/src/common/memory.cpp", | |
111 "src/codec/processing/src/common/memory.h", | |
112 "src/codec/processing/src/common/resource.h", | |
113 "src/codec/processing/src/common/typedef.h", | |
114 "src/codec/processing/src/common/util.h", | |
115 "src/codec/processing/src/complexityanalysis/ComplexityAnalysis.cpp", | |
116 "src/codec/processing/src/complexityanalysis/ComplexityAnalysis.h", | |
117 "src/codec/processing/src/denoise/denoise.cpp", | |
118 "src/codec/processing/src/denoise/denoise.h", | |
119 "src/codec/processing/src/denoise/denoise_filter.cpp", | |
120 "src/codec/processing/src/downsample/downsample.cpp", | |
121 "src/codec/processing/src/downsample/downsample.h", | |
122 "src/codec/processing/src/downsample/downsamplefuncs.cpp", | |
123 "src/codec/processing/src/imagerotate/imagerotate.cpp", | |
124 "src/codec/processing/src/imagerotate/imagerotate.h", | |
125 "src/codec/processing/src/imagerotate/imagerotatefuncs.cpp", | |
126 "src/codec/processing/src/scenechangedetection/SceneChangeDetection.cpp", | |
127 "src/codec/processing/src/scenechangedetection/SceneChangeDetection.h", | |
128 "src/codec/processing/src/scrolldetection/ScrollDetection.cpp", | |
129 "src/codec/processing/src/scrolldetection/ScrollDetection.h", | |
130 "src/codec/processing/src/scrolldetection/ScrollDetectionFuncs.cpp", | |
131 "src/codec/processing/src/scrolldetection/ScrollDetectionFuncs.h", | |
132 "src/codec/processing/src/vaacalc/vaacalcfuncs.cpp", | |
133 "src/codec/processing/src/vaacalc/vaacalculation.cpp", | |
134 "src/codec/processing/src/vaacalc/vaacalculation.h", | |
135 ] | |
136 | |
137 include_dirs = [ | |
138 "src/codec/api/svc", | |
139 "src/codec/common/inc", | |
140 "src/codec/common/src", | |
141 "src/codec/processing/interface", | |
142 "src/codec/processing/interface/", | |
143 "src/codec/processing/src/adaptivequantization", | |
144 "src/codec/processing/src/backgrounddetection", | |
145 "src/codec/processing/src/common", | |
146 "src/codec/processing/src/complexityanalysis", | |
147 "src/codec/processing/src/denoise", | |
148 "src/codec/processing/src/downsample", | |
149 "src/codec/processing/src/imagerotate", | |
150 "src/codec/processing/src/scenechangedetection", | |
151 "src/codec/processing/src/scrolldetection", | |
152 "src/codec/processing/src/vaacalc", | |
153 ] | |
154 | 123 |
155 configs -= [ "//build/config/compiler:chromium_code" ] | 124 configs -= [ "//build/config/compiler:chromium_code" ] |
156 configs += [ "//build/config/compiler:no_chromium_code" ] | 125 configs += [ "//build/config/compiler:no_chromium_code" ] |
157 configs += [ ":config" ] | 126 configs += [ ":config" ] |
158 deps = [ | 127 deps = [ |
159 ":common", | 128 ":common", |
160 ] | 129 ] |
130 if (target_cpu == "x86" || target_cpu == "x64") { | |
131 defines = [ "X86_ASM" ] | |
132 deps += [ ":openh264_processing_yasm" ] | |
133 } | |
161 } | 134 } |
162 | 135 |
163 source_set("encoder") { | 136 source_set("encoder") { |
164 sources = [ | 137 sources = openh264_encoder_sources |
165 "src/codec/encoder/core/inc/as264_common.h", | 138 include_dirs = openh264_encoder_include_dirs |
166 "src/codec/encoder/core/inc/au_set.h", | |
167 "src/codec/encoder/core/inc/deblocking.h", | |
168 "src/codec/encoder/core/inc/decode_mb_aux.h", | |
169 "src/codec/encoder/core/inc/dq_map.h", | |
170 "src/codec/encoder/core/inc/encode_mb_aux.h", | |
171 "src/codec/encoder/core/inc/encoder.h", | |
172 "src/codec/encoder/core/inc/encoder_context.h", | |
173 "src/codec/encoder/core/inc/extern.h", | |
174 "src/codec/encoder/core/inc/get_intra_predictor.h", | |
175 "src/codec/encoder/core/inc/mb_cache.h", | |
176 "src/codec/encoder/core/inc/md.h", | |
177 "src/codec/encoder/core/inc/mt_defs.h", | |
178 "src/codec/encoder/core/inc/mv_pred.h", | |
179 "src/codec/encoder/core/inc/nal_encap.h", | |
180 "src/codec/encoder/core/inc/param_svc.h", | |
181 "src/codec/encoder/core/inc/parameter_sets.h", | |
182 "src/codec/encoder/core/inc/paraset_strategy.h", | |
183 "src/codec/encoder/core/inc/picture.h", | |
184 "src/codec/encoder/core/inc/picture_handle.h", | |
185 "src/codec/encoder/core/inc/rc.h", | |
186 "src/codec/encoder/core/inc/ref_list_mgr_svc.h", | |
187 "src/codec/encoder/core/inc/sample.h", | |
188 "src/codec/encoder/core/inc/set_mb_syn_cabac.h", | |
189 "src/codec/encoder/core/inc/set_mb_syn_cavlc.h", | |
190 "src/codec/encoder/core/inc/slice.h", | |
191 "src/codec/encoder/core/inc/slice_multi_threading.h", | |
192 "src/codec/encoder/core/inc/stat.h", | |
193 "src/codec/encoder/core/inc/svc_base_layer_md.h", | |
194 "src/codec/encoder/core/inc/svc_enc_frame.h", | |
195 "src/codec/encoder/core/inc/svc_enc_golomb.h", | |
196 "src/codec/encoder/core/inc/svc_enc_macroblock.h", | |
197 "src/codec/encoder/core/inc/svc_enc_slice_segment.h", | |
198 "src/codec/encoder/core/inc/svc_encode_mb.h", | |
199 "src/codec/encoder/core/inc/svc_encode_slice.h", | |
200 "src/codec/encoder/core/inc/svc_mode_decision.h", | |
201 "src/codec/encoder/core/inc/svc_motion_estimate.h", | |
202 "src/codec/encoder/core/inc/svc_set_mb_syn.h", | |
203 "src/codec/encoder/core/inc/svc_set_mb_syn_cavlc.h", | |
204 "src/codec/encoder/core/inc/vlc_encoder.h", | |
205 "src/codec/encoder/core/inc/wels_common_basis.h", | |
206 "src/codec/encoder/core/inc/wels_const.h", | |
207 "src/codec/encoder/core/inc/wels_func_ptr_def.h", | |
208 "src/codec/encoder/core/inc/wels_preprocess.h", | |
209 "src/codec/encoder/core/inc/wels_task_base.h", | |
210 "src/codec/encoder/core/inc/wels_task_encoder.h", | |
211 "src/codec/encoder/core/inc/wels_task_management.h", | |
212 "src/codec/encoder/core/inc/wels_transpose_matrix.h", | |
213 "src/codec/encoder/core/src/au_set.cpp", | |
214 "src/codec/encoder/core/src/deblocking.cpp", | |
215 "src/codec/encoder/core/src/decode_mb_aux.cpp", | |
216 "src/codec/encoder/core/src/encode_mb_aux.cpp", | |
217 "src/codec/encoder/core/src/encoder.cpp", | |
218 "src/codec/encoder/core/src/encoder_data_tables.cpp", | |
219 "src/codec/encoder/core/src/encoder_ext.cpp", | |
220 "src/codec/encoder/core/src/get_intra_predictor.cpp", | |
221 "src/codec/encoder/core/src/md.cpp", | |
222 "src/codec/encoder/core/src/mv_pred.cpp", | |
223 "src/codec/encoder/core/src/nal_encap.cpp", | |
224 "src/codec/encoder/core/src/paraset_strategy.cpp", | |
225 "src/codec/encoder/core/src/picture_handle.cpp", | |
226 "src/codec/encoder/core/src/ratectl.cpp", | |
227 "src/codec/encoder/core/src/ref_list_mgr_svc.cpp", | |
228 "src/codec/encoder/core/src/sample.cpp", | |
229 "src/codec/encoder/core/src/set_mb_syn_cabac.cpp", | |
230 "src/codec/encoder/core/src/set_mb_syn_cavlc.cpp", | |
231 "src/codec/encoder/core/src/slice_multi_threading.cpp", | |
232 "src/codec/encoder/core/src/svc_base_layer_md.cpp", | |
233 "src/codec/encoder/core/src/svc_enc_slice_segment.cpp", | |
234 "src/codec/encoder/core/src/svc_encode_mb.cpp", | |
235 "src/codec/encoder/core/src/svc_encode_slice.cpp", | |
236 "src/codec/encoder/core/src/svc_mode_decision.cpp", | |
237 "src/codec/encoder/core/src/svc_motion_estimate.cpp", | |
238 "src/codec/encoder/core/src/svc_set_mb_syn_cabac.cpp", | |
239 "src/codec/encoder/core/src/svc_set_mb_syn_cavlc.cpp", | |
240 "src/codec/encoder/core/src/wels_preprocess.cpp", | |
241 "src/codec/encoder/core/src/wels_task_base.cpp", | |
242 "src/codec/encoder/core/src/wels_task_encoder.cpp", | |
243 "src/codec/encoder/core/src/wels_task_management.cpp", | |
244 "src/codec/encoder/plus/inc/welsEncoderExt.h", | |
245 "src/codec/encoder/plus/src/welsEncoderExt.cpp", | |
246 | |
247 # Note: Purposefully excluded: 'src/codec/encoder/plus/src/DllEntry.cpp', | |
248 # This file is not built by the OpenH264 original build files. | |
249 ] | |
250 | |
251 include_dirs = [ | |
252 "src/codec/api/svc", | |
253 "src/codec/common/inc", | |
254 "src/codec/common/src", | |
255 "src/codec/encoder/core/inc", | |
256 "src/codec/encoder/core/src", | |
257 "src/codec/encoder/plus/inc", | |
258 "src/codec/encoder/plus/src", | |
259 "src/codec/processing/interface", | |
260 ] | |
261 | 139 |
262 configs -= [ "//build/config/compiler:chromium_code" ] | 140 configs -= [ "//build/config/compiler:chromium_code" ] |
263 configs += [ "//build/config/compiler:no_chromium_code" ] | 141 configs += [ "//build/config/compiler:no_chromium_code" ] |
264 configs += [ ":config" ] | 142 configs += [ ":config" ] |
265 deps = [ | 143 deps = [ |
266 ":common", | 144 ":common", |
267 ":processing", | 145 ":processing", |
268 ] | 146 ] |
147 if (target_cpu == "x86" || target_cpu == "x64") { | |
148 defines = [ "X86_ASM" ] | |
149 deps += [ ":openh264_encoder_yasm" ] | |
150 } | |
269 } | 151 } |
OLD | NEW |