1# 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
15rtc_library("video_codecs_api") {
16  visibility = [ "*" ]
17  sources = [
18    "sdp_video_format.cc",
19    "sdp_video_format.h",
20    "spatial_layer.cc",
21    "spatial_layer.h",
22    "video_codec.cc",
23    "video_codec.h",
24    "video_decoder.cc",
25    "video_decoder.h",
26    "video_decoder_factory.cc",
27    "video_decoder_factory.h",
28    "video_encoder.cc",
29    "video_encoder.h",
30    "video_encoder_config.cc",
31    "video_encoder_config.h",
32    "video_encoder_factory.h",
33    "vp8_frame_buffer_controller.h",
34    "vp8_frame_config.cc",
35    "vp8_frame_config.h",
36    "vp8_temporal_layers.cc",
37    "vp8_temporal_layers.h",
38  ]
39
40  deps = [
41    "..:fec_controller_api",
42    "..:scoped_refptr",
43    "../../modules/video_coding:codec_globals_headers",
44    "../../rtc_base:checks",
45    "../../rtc_base:rtc_base_approved",
46    "../../rtc_base/system:rtc_export",
47    "../units:data_rate",
48    "../video:encoded_image",
49    "../video:video_bitrate_allocation",
50    "../video:video_codec_constants",
51    "../video:video_frame",
52    "../video:video_rtp_headers",
53  ]
54  absl_deps = [
55    "//third_party/abseil-cpp/absl/algorithm:container",
56    "//third_party/abseil-cpp/absl/container:inlined_vector",
57    "//third_party/abseil-cpp/absl/strings",
58    "//third_party/abseil-cpp/absl/types:optional",
59  ]
60}
61
62rtc_source_set("bitstream_parser_api") {
63  visibility = [ "*" ]
64  sources = [ "bitstream_parser.h" ]
65  deps = [ "..:array_view" ]
66}
67
68rtc_library("builtin_video_decoder_factory") {
69  visibility = [ "*" ]
70  allow_poison = [
71    "audio_codecs",  # TODO(bugs.webrtc.org/8396): Remove.
72    "software_video_codecs",
73  ]
74  sources = [
75    "builtin_video_decoder_factory.cc",
76    "builtin_video_decoder_factory.h",
77  ]
78
79  deps = [
80    ":video_codecs_api",
81    "../../api:scoped_refptr",
82    "../../media:rtc_internal_video_codecs",
83    "../../rtc_base/system:rtc_export",
84  ]
85}
86
87rtc_library("builtin_video_encoder_factory") {
88  visibility = [ "*" ]
89  allow_poison = [
90    "audio_codecs",  # TODO(bugs.webrtc.org/8396): Remove.
91    "software_video_codecs",
92  ]
93  sources = [
94    "builtin_video_encoder_factory.cc",
95    "builtin_video_encoder_factory.h",
96  ]
97
98  deps = [
99    ":video_codecs_api",
100    "../../api:scoped_refptr",
101    "../../media:rtc_encoder_simulcast_proxy",
102    "../../media:rtc_internal_video_codecs",
103    "../../media:rtc_media_base",
104    "../../rtc_base:checks",
105    "../../rtc_base/system:rtc_export",
106  ]
107  absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
108}
109
110rtc_library("vp8_temporal_layers_factory") {
111  visibility = [ "*" ]
112  allow_poison = [ "software_video_codecs" ]
113  sources = [
114    "vp8_temporal_layers_factory.cc",
115    "vp8_temporal_layers_factory.h",
116  ]
117
118  deps = [
119    ":video_codecs_api",
120    "../:fec_controller_api",
121    "../../modules/video_coding:video_coding_utility",
122    "../../modules/video_coding:webrtc_vp8_temporal_layers",
123    "../../rtc_base:checks",
124  ]
125}
126
127rtc_library("rtc_software_fallback_wrappers") {
128  visibility = [ "*" ]
129
130  sources = [
131    "video_decoder_software_fallback_wrapper.cc",
132    "video_decoder_software_fallback_wrapper.h",
133    "video_encoder_software_fallback_wrapper.cc",
134    "video_encoder_software_fallback_wrapper.h",
135  ]
136
137  deps = [
138    ":video_codecs_api",
139    "..:fec_controller_api",
140    "../../api/video:video_frame",
141    "../../media:rtc_h264_profile_id",
142    "../../media:rtc_media_base",
143    "../../modules/video_coding:video_codec_interface",
144    "../../modules/video_coding:video_coding_utility",
145    "../../rtc_base:checks",
146    "../../rtc_base:rtc_base_approved",
147    "../../rtc_base/system:rtc_export",
148    "../../system_wrappers:field_trial",
149    "../../system_wrappers:metrics",
150    "../video:encoded_image",
151    "../video:video_bitrate_allocation",
152    "../video:video_frame",
153    "../video:video_rtp_headers",
154  ]
155  absl_deps = [
156    "//third_party/abseil-cpp/absl/base:core_headers",
157    "//third_party/abseil-cpp/absl/strings",
158    "//third_party/abseil-cpp/absl/types:optional",
159  ]
160}
161