blob: d8549e903712373a0dfab0588831816c06d89fae [file] [log] [blame]
ilnikd60d06a2017-04-05 03:02:20 -07001# Copyright (c) 2017 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("../../webrtc.gni")
10if (is_android) {
11 import("//build/config/android/config.gni")
12 import("//build/config/android/rules.gni")
13}
14
Mirko Bonadei86d053c2019-10-17 21:32:04 +020015rtc_library("video_codecs_api") {
Per Kjellandera7f2d842018-01-10 15:54:53 +000016 visibility = [ "*" ]
ilnikd60d06a2017-04-05 03:02:20 -070017 sources = [
Johannes Kronc3fcee72021-04-19 09:09:26 +020018 "h264_profile_level_id.cc",
19 "h264_profile_level_id.h",
Niels Möllerbe682d42018-03-27 08:31:45 +020020 "sdp_video_format.cc",
andersc063f0c02017-09-11 11:50:51 -070021 "sdp_video_format.h",
Niels Möller5b69aa62020-08-14 15:32:14 +020022 "spatial_layer.cc",
23 "spatial_layer.h",
Niels Möllera46bd4b2018-06-08 14:03:44 +020024 "video_codec.cc",
Niels Möller802506c2018-05-31 10:44:51 +020025 "video_codec.h",
Niels Möllerbe682d42018-03-27 08:31:45 +020026 "video_decoder.cc",
ilnikd60d06a2017-04-05 03:02:20 -070027 "video_decoder.h",
Magnus Jedvertd4b0c052017-09-14 10:24:54 +020028 "video_decoder_factory.h",
mflodman351424e2017-08-10 02:43:14 -070029 "video_encoder.cc",
ilnikd60d06a2017-04-05 03:02:20 -070030 "video_encoder.h",
Niels Möller0a8f4352018-05-18 11:37:23 +020031 "video_encoder_config.cc",
32 "video_encoder_config.h",
Magnus Jedvertd4b0c052017-09-14 10:24:54 +020033 "video_encoder_factory.h",
Elad Alonde3360e2019-03-06 21:14:54 +010034 "vp8_frame_buffer_controller.h",
Elad Alon411b49b2019-01-29 14:05:55 +010035 "vp8_frame_config.cc",
36 "vp8_frame_config.h",
Elad Aloncde8ab22019-03-20 11:56:20 +010037 "vp8_temporal_layers.cc",
Erik Språng4529fbc2018-10-12 10:30:31 +020038 "vp8_temporal_layers.h",
Johannes Kronc3fcee72021-04-19 09:09:26 +020039 "vp9_profile.cc",
40 "vp9_profile.h",
ilnikd60d06a2017-04-05 03:02:20 -070041 ]
42
43 deps = [
Elad Alon8f01c4e2019-06-28 15:19:43 +020044 "..:fec_controller_api",
Mirko Bonadeid9708072019-01-25 20:26:48 +010045 "..:scoped_refptr",
Johannes Kron20ee02c2021-04-20 15:53:52 +020046 "../../api:array_view",
Elad Alon411b49b2019-01-29 14:05:55 +010047 "../../modules/video_coding:codec_globals_headers",
Patrik Höglunda8005cf2017-12-13 16:05:42 +010048 "../../rtc_base:checks",
Florent Castelli4467ad72022-04-04 15:18:46 +020049 "../../rtc_base:macromagic",
Florent Castellif86f6f92022-04-05 02:54:12 +020050 "../../rtc_base:refcount",
ehmaldonadof6a861a2017-07-19 10:40:47 -070051 "../../rtc_base:rtc_base_approved",
Florent Castelli57aa81b2022-04-04 17:14:02 +020052 "../../rtc_base:stringutils",
Mirko Bonadei276827c2018-10-16 14:13:50 +020053 "../../rtc_base/system:rtc_export",
Erik Språng4d9df382019-03-27 15:00:43 +010054 "../units:data_rate",
Niels Möller4dc66c52018-10-05 14:17:58 +020055 "../video:encoded_image",
Danil Chapovalovecc46ef2021-08-09 15:30:47 +020056 "../video:render_resolution",
Erik Språngec475652018-05-15 15:12:55 +020057 "../video:video_bitrate_allocation",
Erik Språngf93eda12019-01-16 17:10:57 +010058 "../video:video_codec_constants",
Niels Möllerc6ce9c52018-05-11 11:15:30 +020059 "../video:video_frame",
Chen Xing5d24b162019-06-10 12:59:38 +020060 "../video:video_rtp_headers",
Mirko Bonadei2dcf3482020-06-05 14:30:41 +020061 ]
62 absl_deps = [
Steve Antona59dcc32019-03-25 13:53:07 -070063 "//third_party/abseil-cpp/absl/algorithm:container",
Erik Språngdbdd8392019-01-17 15:27:50 +010064 "//third_party/abseil-cpp/absl/container:inlined_vector",
Niels Möller3c7d5992018-10-19 15:29:54 +020065 "//third_party/abseil-cpp/absl/strings",
Danil Chapovalov0bc58cf2018-06-21 13:32:56 +020066 "//third_party/abseil-cpp/absl/types:optional",
ilnikd60d06a2017-04-05 03:02:20 -070067 ]
68}
Anders Carlsson67537952018-05-03 11:28:29 +020069
Kári Tristan Helgasonb1633592019-03-22 11:19:08 +010070rtc_source_set("bitstream_parser_api") {
71 visibility = [ "*" ]
Danil Chapovalov64f1f3f2020-01-16 14:41:10 +010072 sources = [ "bitstream_parser.h" ]
73 deps = [ "..:array_view" ]
Kári Tristan Helgasonb1633592019-03-22 11:19:08 +010074}
75
Mirko Bonadei86d053c2019-10-17 21:32:04 +020076rtc_library("builtin_video_decoder_factory") {
Anders Carlsson67537952018-05-03 11:28:29 +020077 visibility = [ "*" ]
78 allow_poison = [
79 "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
80 "software_video_codecs",
81 ]
82 sources = [
83 "builtin_video_decoder_factory.cc",
84 "builtin_video_decoder_factory.h",
85 ]
86
87 deps = [
88 ":video_codecs_api",
Mirko Bonadeid9708072019-01-25 20:26:48 +010089 "../../api:scoped_refptr",
Anders Carlsson67537952018-05-03 11:28:29 +020090 "../../media:rtc_internal_video_codecs",
Mirko Bonadeiac194142018-10-22 17:08:37 +020091 "../../rtc_base/system:rtc_export",
Anders Carlsson67537952018-05-03 11:28:29 +020092 ]
93}
94
Mirko Bonadei86d053c2019-10-17 21:32:04 +020095rtc_library("builtin_video_encoder_factory") {
Anders Carlsson67537952018-05-03 11:28:29 +020096 visibility = [ "*" ]
97 allow_poison = [
98 "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
99 "software_video_codecs",
100 ]
101 sources = [
102 "builtin_video_encoder_factory.cc",
103 "builtin_video_encoder_factory.h",
104 ]
105
106 deps = [
107 ":video_codecs_api",
Mirko Bonadeid9708072019-01-25 20:26:48 +0100108 "../../api:scoped_refptr",
Florent Castellie7862cc2018-12-06 13:38:24 +0100109 "../../media:rtc_encoder_simulcast_proxy",
Anders Carlsson67537952018-05-03 11:28:29 +0200110 "../../media:rtc_internal_video_codecs",
111 "../../media:rtc_media_base",
Yves Gerey3e707812018-11-28 16:47:49 +0100112 "../../rtc_base:checks",
Mirko Bonadeiac194142018-10-22 17:08:37 +0200113 "../../rtc_base/system:rtc_export",
Anders Carlsson67537952018-05-03 11:28:29 +0200114 ]
Mirko Bonadei2dcf3482020-06-05 14:30:41 +0200115 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
Anders Carlsson67537952018-05-03 11:28:29 +0200116}
Anders Carlssondd3e0ab2018-06-12 11:15:56 +0200117
philipel6160ca52022-03-16 12:11:42 +0100118rtc_source_set("video_encoder_factory_template") {
119 visibility = [ "*" ]
120 allow_poison = [ "software_video_codecs" ]
121 public = [ "video_encoder_factory_template.h" ]
122
123 deps = [ ":video_codecs_api" ]
124 absl_deps = [ "//third_party/abseil-cpp/absl/algorithm:container" ]
125}
126
127rtc_source_set("video_encoder_factory_template_libvpx_vp8_adapter") {
128 visibility = [ "*" ]
129 allow_poison = [ "software_video_codecs" ]
130 public = [ "video_encoder_factory_template_libvpx_vp8_adapter.h" ]
131
132 deps = [ "../../modules/video_coding:webrtc_vp8" ]
133}
134
135rtc_source_set("video_encoder_factory_template_libvpx_vp9_adapter") {
136 visibility = [ "*" ]
137 allow_poison = [ "software_video_codecs" ]
138 public = [ "video_encoder_factory_template_libvpx_vp9_adapter.h" ]
139
140 deps = [ "../../modules/video_coding:webrtc_vp9" ]
141}
142
143rtc_source_set("video_encoder_factory_template_open_h264_adapter") {
144 visibility = [ "*" ]
145 allow_poison = [ "software_video_codecs" ]
146 public = [ "video_encoder_factory_template_open_h264_adapter.h" ]
147
148 deps = [ "../../modules/video_coding:webrtc_h264" ]
149}
150
151rtc_source_set("video_encoder_factory_template_libaom_av1_adapter") {
152 visibility = [ "*" ]
153 allow_poison = [ "software_video_codecs" ]
154 public = [ "video_encoder_factory_template_libaom_av1_adapter.h" ]
155
156 deps = [
157 "../../modules/video_coding/codecs/av1:libaom_av1_encoder",
158 "../../modules/video_coding/svc:scalability_structures",
159 ]
160}
161
Mirko Bonadei86d053c2019-10-17 21:32:04 +0200162rtc_library("vp8_temporal_layers_factory") {
Erik Språng4529fbc2018-10-12 10:30:31 +0200163 visibility = [ "*" ]
164 allow_poison = [ "software_video_codecs" ]
165 sources = [
Elad Aloncde8ab22019-03-20 11:56:20 +0100166 "vp8_temporal_layers_factory.cc",
167 "vp8_temporal_layers_factory.h",
Erik Språng4529fbc2018-10-12 10:30:31 +0200168 ]
169
170 deps = [
171 ":video_codecs_api",
Elad Alon45befc52019-07-02 11:20:09 +0200172 "../:fec_controller_api",
Elad Aloncde8ab22019-03-20 11:56:20 +0100173 "../../modules/video_coding:video_coding_utility",
Erik Språng4529fbc2018-10-12 10:30:31 +0200174 "../../modules/video_coding:webrtc_vp8_temporal_layers",
Elad Aloncde8ab22019-03-20 11:56:20 +0100175 "../../rtc_base:checks",
Erik Språng4529fbc2018-10-12 10:30:31 +0200176 ]
177}
178
Mirko Bonadei86d053c2019-10-17 21:32:04 +0200179rtc_library("rtc_software_fallback_wrappers") {
Anders Carlssondd3e0ab2018-06-12 11:15:56 +0200180 visibility = [ "*" ]
181
182 sources = [
183 "video_decoder_software_fallback_wrapper.cc",
184 "video_decoder_software_fallback_wrapper.h",
185 "video_encoder_software_fallback_wrapper.cc",
186 "video_encoder_software_fallback_wrapper.h",
187 ]
188
Anders Carlssondd3e0ab2018-06-12 11:15:56 +0200189 deps = [
190 ":video_codecs_api",
Elad Alon8f01c4e2019-06-28 15:19:43 +0200191 "..:fec_controller_api",
Ilya Nikolaevskiy38e9b062020-10-08 14:36:33 +0000192 "../../api/video:video_frame",
Anders Carlssondd3e0ab2018-06-12 11:15:56 +0200193 "../../media:rtc_media_base",
194 "../../modules/video_coding:video_codec_interface",
Erik Språng261f7922020-01-31 13:51:12 +0100195 "../../modules/video_coding:video_coding_utility",
Anders Carlssondd3e0ab2018-06-12 11:15:56 +0200196 "../../rtc_base:checks",
Florent Castellia30aef32022-04-19 17:47:13 +0200197 "../../rtc_base:event_tracer",
Florent Castelli0af55ba2022-04-04 15:06:30 +0200198 "../../rtc_base:logging",
Anders Carlssondd3e0ab2018-06-12 11:15:56 +0200199 "../../rtc_base:rtc_base_approved",
Mirko Bonadei66e76792019-04-02 11:33:59 +0200200 "../../rtc_base/system:rtc_export",
Mirko Bonadei17f48782018-09-28 08:51:10 +0200201 "../../system_wrappers:field_trial",
Johannes Kron57033032020-03-17 10:01:43 +0100202 "../../system_wrappers:metrics",
Yves Gerey3e707812018-11-28 16:47:49 +0100203 "../video:encoded_image",
Anders Carlssondd3e0ab2018-06-12 11:15:56 +0200204 "../video:video_bitrate_allocation",
Yves Gerey3e707812018-11-28 16:47:49 +0100205 "../video:video_frame",
Chen Xing5d24b162019-06-10 12:59:38 +0200206 "../video:video_rtp_headers",
Mirko Bonadei2dcf3482020-06-05 14:30:41 +0200207 ]
208 absl_deps = [
Danil Chapovalov64f1f3f2020-01-16 14:41:10 +0100209 "//third_party/abseil-cpp/absl/base:core_headers",
Mirko Bonadei06d35592020-04-01 13:43:08 +0200210 "//third_party/abseil-cpp/absl/strings",
Yves Gerey3e707812018-11-28 16:47:49 +0100211 "//third_party/abseil-cpp/absl/types:optional",
Anders Carlssondd3e0ab2018-06-12 11:15:56 +0200212 ]
213}