blob: 6c64e22c196f50a03a7ddb43246f207d84d9f731 [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 = [
Niels Möllerbe682d42018-03-27 08:31:45 +020018 "sdp_video_format.cc",
andersc063f0c02017-09-11 11:50:51 -070019 "sdp_video_format.h",
Niels Möllera46bd4b2018-06-08 14:03:44 +020020 "video_codec.cc",
Niels Möller802506c2018-05-31 10:44:51 +020021 "video_codec.h",
Niels Möllerbe682d42018-03-27 08:31:45 +020022 "video_decoder.cc",
ilnikd60d06a2017-04-05 03:02:20 -070023 "video_decoder.h",
Magnus Jedvert59ab3532018-09-03 18:07:56 +020024 "video_decoder_factory.cc",
Magnus Jedvertd4b0c052017-09-14 10:24:54 +020025 "video_decoder_factory.h",
mflodman351424e2017-08-10 02:43:14 -070026 "video_encoder.cc",
ilnikd60d06a2017-04-05 03:02:20 -070027 "video_encoder.h",
Niels Möller0a8f4352018-05-18 11:37:23 +020028 "video_encoder_config.cc",
29 "video_encoder_config.h",
Magnus Jedvertd4b0c052017-09-14 10:24:54 +020030 "video_encoder_factory.h",
Elad Alonde3360e2019-03-06 21:14:54 +010031 "vp8_frame_buffer_controller.h",
Elad Alon411b49b2019-01-29 14:05:55 +010032 "vp8_frame_config.cc",
33 "vp8_frame_config.h",
Elad Aloncde8ab22019-03-20 11:56:20 +010034 "vp8_temporal_layers.cc",
Erik Språng4529fbc2018-10-12 10:30:31 +020035 "vp8_temporal_layers.h",
ilnikd60d06a2017-04-05 03:02:20 -070036 ]
37
38 deps = [
Elad Alon8f01c4e2019-06-28 15:19:43 +020039 "..:fec_controller_api",
Mirko Bonadeid9708072019-01-25 20:26:48 +010040 "..:scoped_refptr",
ilnikd60d06a2017-04-05 03:02:20 -070041 "../..:webrtc_common",
Elad Alon411b49b2019-01-29 14:05:55 +010042 "../../modules/video_coding:codec_globals_headers",
Patrik Höglunda8005cf2017-12-13 16:05:42 +010043 "../../rtc_base:checks",
ehmaldonadof6a861a2017-07-19 10:40:47 -070044 "../../rtc_base:rtc_base_approved",
Mirko Bonadei276827c2018-10-16 14:13:50 +020045 "../../rtc_base/system:rtc_export",
Erik Språng4d9df382019-03-27 15:00:43 +010046 "../units:data_rate",
Niels Möller4dc66c52018-10-05 14:17:58 +020047 "../video:encoded_image",
Erik Språngec475652018-05-15 15:12:55 +020048 "../video:video_bitrate_allocation",
Erik Språngf93eda12019-01-16 17:10:57 +010049 "../video:video_codec_constants",
Niels Möllerc6ce9c52018-05-11 11:15:30 +020050 "../video:video_frame",
Chen Xing5d24b162019-06-10 12:59:38 +020051 "../video:video_rtp_headers",
Steve Antona59dcc32019-03-25 13:53:07 -070052 "//third_party/abseil-cpp/absl/algorithm:container",
Erik Språngdbdd8392019-01-17 15:27:50 +010053 "//third_party/abseil-cpp/absl/container:inlined_vector",
Niels Möller3c7d5992018-10-19 15:29:54 +020054 "//third_party/abseil-cpp/absl/strings",
Danil Chapovalov0bc58cf2018-06-21 13:32:56 +020055 "//third_party/abseil-cpp/absl/types:optional",
ilnikd60d06a2017-04-05 03:02:20 -070056 ]
57}
Anders Carlsson67537952018-05-03 11:28:29 +020058
Kári Tristan Helgasonb1633592019-03-22 11:19:08 +010059rtc_source_set("bitstream_parser_api") {
60 visibility = [ "*" ]
61 sources = [
62 "bitstream_parser.h",
63 ]
64 deps = [
65 "..:array_view",
66 ]
67}
68
Mirko Bonadei86d053c2019-10-17 21:32:04 +020069rtc_library("builtin_video_decoder_factory") {
Anders Carlsson67537952018-05-03 11:28:29 +020070 visibility = [ "*" ]
71 allow_poison = [
72 "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
73 "software_video_codecs",
74 ]
75 sources = [
76 "builtin_video_decoder_factory.cc",
77 "builtin_video_decoder_factory.h",
78 ]
79
80 deps = [
81 ":video_codecs_api",
Mirko Bonadeid9708072019-01-25 20:26:48 +010082 "../../api:scoped_refptr",
Anders Carlsson67537952018-05-03 11:28:29 +020083 "../../media:rtc_internal_video_codecs",
Mirko Bonadeiac194142018-10-22 17:08:37 +020084 "../../rtc_base/system:rtc_export",
Anders Carlsson67537952018-05-03 11:28:29 +020085 ]
86}
87
Mirko Bonadei86d053c2019-10-17 21:32:04 +020088rtc_library("builtin_video_encoder_factory") {
Anders Carlsson67537952018-05-03 11:28:29 +020089 visibility = [ "*" ]
90 allow_poison = [
91 "audio_codecs", # TODO(bugs.webrtc.org/8396): Remove.
92 "software_video_codecs",
93 ]
94 sources = [
95 "builtin_video_encoder_factory.cc",
96 "builtin_video_encoder_factory.h",
97 ]
98
99 deps = [
100 ":video_codecs_api",
Mirko Bonadeid9708072019-01-25 20:26:48 +0100101 "../../api:scoped_refptr",
Florent Castellie7862cc2018-12-06 13:38:24 +0100102 "../../media:rtc_encoder_simulcast_proxy",
Anders Carlsson67537952018-05-03 11:28:29 +0200103 "../../media:rtc_internal_video_codecs",
104 "../../media:rtc_media_base",
Yves Gerey3e707812018-11-28 16:47:49 +0100105 "../../rtc_base:checks",
Mirko Bonadeiac194142018-10-22 17:08:37 +0200106 "../../rtc_base/system:rtc_export",
Niels Möller039743e2018-10-23 10:07:25 +0200107 "//third_party/abseil-cpp/absl/strings",
Anders Carlsson67537952018-05-03 11:28:29 +0200108 ]
109}
Anders Carlssondd3e0ab2018-06-12 11:15:56 +0200110
Mirko Bonadei86d053c2019-10-17 21:32:04 +0200111rtc_library("vp8_temporal_layers_factory") {
Erik Språng4529fbc2018-10-12 10:30:31 +0200112 visibility = [ "*" ]
113 allow_poison = [ "software_video_codecs" ]
114 sources = [
Elad Aloncde8ab22019-03-20 11:56:20 +0100115 "vp8_temporal_layers_factory.cc",
116 "vp8_temporal_layers_factory.h",
Erik Språng4529fbc2018-10-12 10:30:31 +0200117 ]
118
119 deps = [
120 ":video_codecs_api",
Elad Alon45befc52019-07-02 11:20:09 +0200121 "../:fec_controller_api",
Elad Aloncde8ab22019-03-20 11:56:20 +0100122 "../../modules/video_coding:video_coding_utility",
Erik Språng4529fbc2018-10-12 10:30:31 +0200123 "../../modules/video_coding:webrtc_vp8_temporal_layers",
Elad Aloncde8ab22019-03-20 11:56:20 +0100124 "../../rtc_base:checks",
Erik Språng4529fbc2018-10-12 10:30:31 +0200125 ]
126}
127
Mirko Bonadei86d053c2019-10-17 21:32:04 +0200128rtc_library("rtc_software_fallback_wrappers") {
Anders Carlssondd3e0ab2018-06-12 11:15:56 +0200129 visibility = [ "*" ]
130
131 sources = [
132 "video_decoder_software_fallback_wrapper.cc",
133 "video_decoder_software_fallback_wrapper.h",
134 "video_encoder_software_fallback_wrapper.cc",
135 "video_encoder_software_fallback_wrapper.h",
136 ]
137
Anders Carlssondd3e0ab2018-06-12 11:15:56 +0200138 deps = [
139 ":video_codecs_api",
Elad Alon8f01c4e2019-06-28 15:19:43 +0200140 "..:fec_controller_api",
Anders Carlssondd3e0ab2018-06-12 11:15:56 +0200141 "../../media:rtc_h264_profile_id",
142 "../../media:rtc_media_base",
143 "../../modules/video_coding:video_codec_interface",
144 "../../rtc_base:checks",
145 "../../rtc_base:rtc_base_approved",
146 "../../rtc_base/system:fallthrough",
Mirko Bonadei66e76792019-04-02 11:33:59 +0200147 "../../rtc_base/system:rtc_export",
Mirko Bonadei17f48782018-09-28 08:51:10 +0200148 "../../system_wrappers:field_trial",
Yves Gerey3e707812018-11-28 16:47:49 +0100149 "../video:encoded_image",
Anders Carlssondd3e0ab2018-06-12 11:15:56 +0200150 "../video:video_bitrate_allocation",
Yves Gerey3e707812018-11-28 16:47:49 +0100151 "../video:video_frame",
Chen Xing5d24b162019-06-10 12:59:38 +0200152 "../video:video_rtp_headers",
Yves Gerey3e707812018-11-28 16:47:49 +0100153 "//third_party/abseil-cpp/absl/types:optional",
Anders Carlssondd3e0ab2018-06-12 11:15:56 +0200154 ]
155}