blob: fe600daea8ac9dbc345f16af2fae94a0fa5604eb [file] [log] [blame]
kjellander@webrtc.org1227ab82014-06-23 19:21:07 +00001# Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
2#
3# Use of this source code is governed by a BSD-style license
4# that can be found in the LICENSE file in the root of the source
5# tree. An additional intellectual property rights grant can be found
6# in the file PATENTS. All contributing project authors may
7# be found in the AUTHORS file in the root of the source tree.
8
9import("../../build/webrtc.gni")
10
11source_set("video_coding") {
12 sources = [
Henrik Kjellander2557b862015-11-18 22:00:21 +010013 "codec_database.cc",
14 "codec_database.h",
15 "codec_timer.cc",
16 "codec_timer.h",
Henrik Kjellander2557b862015-11-18 22:00:21 +010017 "decoding_state.cc",
18 "decoding_state.h",
19 "encoded_frame.cc",
20 "encoded_frame.h",
21 "fec_tables_xor.h",
22 "frame_buffer.cc",
23 "frame_buffer.h",
philipelc707ab72016-04-01 02:01:54 -070024 "frame_object.cc",
25 "frame_object.h",
Henrik Kjellander2557b862015-11-18 22:00:21 +010026 "generic_decoder.cc",
27 "generic_decoder.h",
28 "generic_encoder.cc",
29 "generic_encoder.h",
philipel83f831a2016-03-12 03:30:23 -080030 "histogram.cc",
31 "histogram.h",
Henrik Kjellander2557b862015-11-18 22:00:21 +010032 "include/video_coding.h",
33 "include/video_coding_defines.h",
34 "inter_frame_delay.cc",
35 "inter_frame_delay.h",
36 "internal_defines.h",
37 "jitter_buffer.cc",
38 "jitter_buffer.h",
39 "jitter_buffer_common.h",
40 "jitter_estimator.cc",
41 "jitter_estimator.h",
42 "media_opt_util.cc",
43 "media_opt_util.h",
44 "media_optimization.cc",
45 "media_optimization.h",
46 "nack_fec_tables.h",
philipel83f831a2016-03-12 03:30:23 -080047 "nack_module.cc",
48 "nack_module.h",
Henrik Kjellander2557b862015-11-18 22:00:21 +010049 "packet.cc",
50 "packet.h",
philipelc707ab72016-04-01 02:01:54 -070051 "packet_buffer.cc",
52 "packet_buffer.h",
magjed2943f012016-03-22 05:12:09 -070053 "percentile_filter.cc",
54 "percentile_filter.h",
Henrik Kjellander2557b862015-11-18 22:00:21 +010055 "receiver.cc",
56 "receiver.h",
57 "rtt_filter.cc",
58 "rtt_filter.h",
59 "session_info.cc",
60 "session_info.h",
61 "timestamp_map.cc",
62 "timestamp_map.h",
63 "timing.cc",
64 "timing.h",
65 "video_coding_impl.cc",
66 "video_coding_impl.h",
67 "video_receiver.cc",
68 "video_sender.cc",
kjellander@webrtc.org1227ab82014-06-23 19:21:07 +000069 ]
70
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +000071 configs += [ "../..:common_config" ]
72 public_configs = [ "../..:common_inherited_config" ]
73
kjellander@webrtc.org8649fed2015-01-08 21:22:01 +000074 if (is_win) {
75 cflags = [
76 # TODO(jschuh): Bug 1348: fix this warning.
77 "/wd4267", # size_t to int truncation.
78 ]
79 }
80
kjellander@webrtc.org42ee5b52014-08-25 14:15:35 +000081 if (is_clang) {
82 # Suppress warnings from Chrome's Clang plugins.
83 # See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
84 configs -= [ "//build/config/clang:find_bad_constructs" ]
85 }
86
kjellander@webrtc.org1227ab82014-06-23 19:21:07 +000087 deps = [
88 ":video_coding_utility",
Zeke Chin71f6f442015-06-29 14:34:58 -070089 ":webrtc_h264",
kjellander@webrtc.org1227ab82014-06-23 19:21:07 +000090 ":webrtc_i420",
91 ":webrtc_vp8",
marpan@webrtc.org5b883172014-11-01 06:10:48 +000092 ":webrtc_vp9",
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +000093 "../..:webrtc_common",
kjellander@webrtc.org1227ab82014-06-23 19:21:07 +000094 "../../common_video",
95 "../../system_wrappers",
96 ]
97}
98
99source_set("video_coding_utility") {
stefan@webrtc.org73823ca2014-07-07 11:46:43 +0000100 sources = [
stefan@webrtc.org73823ca2014-07-07 11:46:43 +0000101 "utility/frame_dropper.cc",
kjellander@webrtc.orgb7ce9642015-11-18 23:04:10 +0100102 "utility/frame_dropper.h",
sprang3911c262016-04-15 01:24:14 -0700103 "utility/ivf_file_writer.cc",
104 "utility/ivf_file_writer.h",
kjellander@webrtc.orgb7ce9642015-11-18 23:04:10 +0100105 "utility/moving_average.h",
asapersson86b01602015-10-20 23:55:26 -0700106 "utility/qp_parser.cc",
kjellander@webrtc.orgb7ce9642015-11-18 23:04:10 +0100107 "utility/qp_parser.h",
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:02 +0000108 "utility/quality_scaler.cc",
kjellander@webrtc.orgb7ce9642015-11-18 23:04:10 +0100109 "utility/quality_scaler.h",
jackychen98d8cf52015-05-21 11:12:02 -0700110 "utility/vp8_header_parser.cc",
kjellander@webrtc.orgb7ce9642015-11-18 23:04:10 +0100111 "utility/vp8_header_parser.h",
stefan@webrtc.org73823ca2014-07-07 11:46:43 +0000112 ]
113
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000114 configs += [ "../..:common_config" ]
115 public_configs = [ "../..:common_inherited_config" ]
116
kjellander@webrtc.org42ee5b52014-08-25 14:15:35 +0000117 if (is_clang) {
118 # Suppress warnings from Chrome's Clang plugins.
119 # See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
120 configs -= [ "//build/config/clang:find_bad_constructs" ]
121 }
122
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200123 deps = [
124 "../../system_wrappers",
125 ]
kjellander@webrtc.org1227ab82014-06-23 19:21:07 +0000126}
127
Zeke Chin71f6f442015-06-29 14:34:58 -0700128source_set("webrtc_h264") {
129 sources = [
130 "codecs/h264/h264.cc",
131 "codecs/h264/include/h264.h",
132 ]
133
134 configs += [ "../..:common_config" ]
135 public_configs = [ "../..:common_inherited_config" ]
136
137 if (is_clang) {
138 # Suppress warnings from Chrome's Clang plugins.
139 # See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
140 configs -= [ "//build/config/clang:find_bad_constructs" ]
141 }
142
hbosbab934b2016-01-27 01:36:03 -0800143 defines = []
Zeke Chin71f6f442015-06-29 14:34:58 -0700144 deps = [
145 "../../system_wrappers",
146 ]
hbosa9a1d2a2016-01-11 10:19:02 -0800147
hbos902c03e2016-01-21 03:34:40 -0800148 if (rtc_use_h264) {
hbos9dc59282016-02-03 05:09:37 -0800149 defines += [ "WEBRTC_USE_H264" ]
hbosc5a39c22016-02-02 02:26:05 -0800150 if (rtc_initialize_ffmpeg) {
151 defines += [ "WEBRTC_INITIALIZE_FFMPEG" ]
152 }
hbosbab934b2016-01-27 01:36:03 -0800153 sources += [
154 "codecs/h264/h264_decoder_impl.cc",
155 "codecs/h264/h264_decoder_impl.h",
156 "codecs/h264/h264_encoder_impl.cc",
157 "codecs/h264/h264_encoder_impl.h",
158 ]
hbosa9a1d2a2016-01-11 10:19:02 -0800159 deps += [
kjellanderf6b55092016-02-07 23:04:26 -0800160 "../../common_video",
hbosa9a1d2a2016-01-11 10:19:02 -0800161 "//third_party/ffmpeg:ffmpeg",
162 "//third_party/openh264:encoder",
163 ]
164 }
Zeke Chin71f6f442015-06-29 14:34:58 -0700165}
166
167# TODO(tkchin): Source set for webrtc_h264_video_toolbox. Currently not
168# possible to add, see https://crbug.com/297668.
169
kjellander@webrtc.org1227ab82014-06-23 19:21:07 +0000170source_set("webrtc_i420") {
stefan@webrtc.org73823ca2014-07-07 11:46:43 +0000171 sources = [
Henrik Kjellandera74c08d2015-10-22 12:23:11 +0200172 "codecs/i420/i420.cc",
173 "codecs/i420/include/i420.h",
stefan@webrtc.org73823ca2014-07-07 11:46:43 +0000174 ]
175
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000176 configs += [ "../..:common_config" ]
177 public_configs = [ "../..:common_inherited_config" ]
178
kjellander@webrtc.org42ee5b52014-08-25 14:15:35 +0000179 if (is_clang) {
180 # Suppress warnings from Chrome's Clang plugins.
181 # See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
182 configs -= [ "//build/config/clang:find_bad_constructs" ]
183 }
184
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200185 deps = [
186 "../../system_wrappers",
187 ]
kjellander@webrtc.org1227ab82014-06-23 19:21:07 +0000188}
189
190source_set("webrtc_vp8") {
stefan@webrtc.org73823ca2014-07-07 11:46:43 +0000191 sources = [
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:02 +0000192 "codecs/vp8/default_temporal_layers.cc",
193 "codecs/vp8/default_temporal_layers.h",
pbos@webrtc.org9115cde2014-12-09 10:36:40 +0000194 "codecs/vp8/include/vp8.h",
195 "codecs/vp8/include/vp8_common_types.h",
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:02 +0000196 "codecs/vp8/realtime_temporal_layers.cc",
197 "codecs/vp8/reference_picture_selection.cc",
198 "codecs/vp8/reference_picture_selection.h",
pbos@webrtc.org9115cde2014-12-09 10:36:40 +0000199 "codecs/vp8/screenshare_layers.cc",
200 "codecs/vp8/screenshare_layers.h",
201 "codecs/vp8/simulcast_encoder_adapter.cc",
202 "codecs/vp8/simulcast_encoder_adapter.h",
stefan@webrtc.org73823ca2014-07-07 11:46:43 +0000203 "codecs/vp8/temporal_layers.h",
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:02 +0000204 "codecs/vp8/vp8_impl.cc",
205 "codecs/vp8/vp8_impl.h",
stefan@webrtc.org73823ca2014-07-07 11:46:43 +0000206 ]
kjellander@webrtc.org42ee5b52014-08-25 14:15:35 +0000207
kjellander@webrtc.orgf21ea912014-09-28 17:37:22 +0000208 configs += [ "../..:common_config" ]
209 public_configs = [ "../..:common_inherited_config" ]
210
kjellander@webrtc.org42ee5b52014-08-25 14:15:35 +0000211 if (is_clang) {
212 # Suppress warnings from Chrome's Clang plugins.
213 # See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
214 configs -= [ "//build/config/clang:find_bad_constructs" ]
215 }
216
kjellander@webrtc.org8649fed2015-01-08 21:22:01 +0000217 if (is_win) {
218 cflags = [
219 # TODO(jschuh): Bug 1348: fix this warning.
220 "/wd4267", # size_t to int truncation.
221 ]
222 }
223
stefan@webrtc.org73823ca2014-07-07 11:46:43 +0000224 deps = [
225 ":video_coding_utility",
kwiberg@webrtc.orgac2d27d2015-02-26 13:59:22 +0000226 "../..:webrtc_common",
stefan@webrtc.org73823ca2014-07-07 11:46:43 +0000227 "../../common_video",
228 "../../system_wrappers",
229 ]
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:02 +0000230 if (rtc_build_libvpx) {
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200231 deps += [ rtc_libvpx_dir ]
kjellander@webrtc.orgb8caf6a2014-09-30 18:05:02 +0000232 }
kjellander@webrtc.org1227ab82014-06-23 19:21:07 +0000233}
marpan@webrtc.org5b883172014-11-01 06:10:48 +0000234
235source_set("webrtc_vp9") {
Peter Boströmbd05f0b2015-11-17 15:27:32 +0100236 sources = [
237 "codecs/vp9/include/vp9.h",
238 "codecs/vp9/screenshare_layers.cc",
239 "codecs/vp9/screenshare_layers.h",
240 "codecs/vp9/vp9_frame_buffer_pool.cc",
241 "codecs/vp9/vp9_frame_buffer_pool.h",
242 "codecs/vp9/vp9_impl.cc",
243 "codecs/vp9/vp9_impl.h",
244 ]
marpan@webrtc.org5b883172014-11-01 06:10:48 +0000245
246 configs += [ "../..:common_config" ]
247 public_configs = [ "../..:common_inherited_config" ]
248
249 if (is_clang) {
250 # Suppress warnings from Chrome's Clang plugins.
251 # See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
252 configs -= [ "//build/config/clang:find_bad_constructs" ]
253 }
254
marpan@webrtc.org5b883172014-11-01 06:10:48 +0000255 deps = [
256 ":video_coding_utility",
257 "../../common_video",
258 "../../system_wrappers",
259 ]
260 if (rtc_build_libvpx) {
Henrik Kjellander57e5fd22015-05-25 12:55:39 +0200261 deps += [ rtc_libvpx_dir ]
marpan@webrtc.org5b883172014-11-01 06:10:48 +0000262 }
263}