xref: /aosp_15_r20/external/webrtc/api/DEPS (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1# This is supposed to be a complete list of top-level directories,
2# excepting only api/ itself.
3include_rules = [
4  "-audio",
5  "-base",
6  "-build",
7  "-buildtools",
8  "-build_overrides",
9  "-call",
10  "-common_audio",
11  "-common_video",
12  "-data",
13  "-examples",
14  "-experiments",
15  "-g3doc",
16  "-ios",
17  "-infra",
18  "-logging",
19  "-media",
20  "-net",
21  "-modules",
22  "-out",
23  "-p2p",
24  "-pc",
25  "-resources",
26  "-rtc_base",
27  "-rtc_tools",
28  "-sdk",
29  "-stats",
30  "-style-guide",
31  "-system_wrappers",
32  "-test",
33  "-testing",
34  "-third_party",
35  "-tools",
36  "-tools_webrtc",
37  "-video",
38  "-external/webrtc/webrtc",  # Android platform build.
39  "-libyuv",
40  "-common_types.h",
41  "-WebRTC",
42]
43
44specific_include_rules = {
45  # Some internal headers are allowed even in API headers:
46
47  "call_factory_interface\.h": [
48    "+call/rtp_transport_controller_send_factory_interface.h",
49  ],
50
51  ".*\.h": [
52    "+rtc_base/checks.h",
53    "+rtc_base/system/rtc_export.h",
54    "+rtc_base/system/rtc_export_template.h",
55    "+rtc_base/units/unit_base.h",
56  ],
57
58  "array_view\.h": [
59    "+rtc_base/type_traits.h",
60  ],
61
62  # Needed because AudioEncoderOpus is in the wrong place for
63  # backwards compatibilty reasons. See
64  # https://bugs.chromium.org/p/webrtc/issues/detail?id=7847
65  "audio_encoder_opus\.h": [
66    "+modules/audio_coding/codecs/opus/audio_encoder_opus.h",
67  ],
68
69  "async_resolver_factory\.h": [
70    "+rtc_base/async_resolver_interface.h",
71  ],
72
73  "async_dns_resolver\.h": [
74    "+rtc_base/socket_address.h",
75  ],
76
77  "candidate\.h": [
78    "+rtc_base/network_constants.h",
79    "+rtc_base/socket_address.h",
80  ],
81
82  "data_channel_interface\.h": [
83    "+rtc_base/copy_on_write_buffer.h",
84    "+rtc_base/ref_count.h",
85  ],
86
87  "data_channel_transport_interface\.h": [
88    "+rtc_base/copy_on_write_buffer.h",
89  ],
90
91  "dtls_transport_interface\.h": [
92    "+rtc_base/ref_count.h",
93    "+rtc_base/ssl_certificate.h",
94  ],
95
96  "dtmf_sender_interface\.h": [
97    "+rtc_base/ref_count.h",
98  ],
99
100  "fec_controller\.h": [
101    "+modules/include/module_fec_types.h",
102  ],
103
104  "frame_transformer_interface\.h": [
105    "+rtc_base/ref_count.h",
106  ],
107
108  "ice_transport_interface\.h": [
109    "+rtc_base/ref_count.h",
110  ],
111
112  "jsep\.h": [
113    "+rtc_base/ref_count.h",
114  ],
115
116  "media_stream_interface\.h": [
117    "+modules/audio_processing/include/audio_processing_statistics.h",
118    "+rtc_base/ref_count.h",
119  ],
120
121  "packet_socket_factory\.h": [
122    "+rtc_base/proxy_info.h",
123    "+rtc_base/async_packet_socket.h",
124  ],
125
126  "peer_connection_interface\.h": [
127    "+call/rtp_transport_controller_send_factory_interface.h",
128    "+media/base/media_config.h",
129    "+media/base/media_engine.h",
130    "+p2p/base/port.h",
131    "+p2p/base/port_allocator.h",
132    "+rtc_base/network.h",
133    "+rtc_base/network_constants.h",
134    "+rtc_base/network_monitor_factory.h",
135    "+rtc_base/ref_count.h",
136    "+rtc_base/rtc_certificate.h",
137    "+rtc_base/rtc_certificate_generator.h",
138    "+rtc_base/socket_address.h",
139    "+rtc_base/ssl_certificate.h",
140    "+rtc_base/ssl_stream_adapter.h",
141    "+rtc_base/thread.h",
142  ],
143
144  "proxy\.h": [
145    "+rtc_base/event.h",
146    "+rtc_base/message_handler.h",  # Inherits from it.
147    "+rtc_base/thread.h",
148  ],
149
150  "ref_counted_base\.h": [
151    "+rtc_base/ref_count.h",
152    "+rtc_base/ref_counter.h",
153  ],
154
155  "rtc_error\.h": [
156    "+rtc_base/logging.h",
157  ],
158  "rtc_event_log_output_file.h": [
159    # For private member and constructor.
160    "+rtc_base/system/file_wrapper.h",
161  ],
162  "rtp_receiver_interface\.h": [
163    "+rtc_base/ref_count.h",
164  ],
165
166  "rtp_sender_interface\.h": [
167    "+rtc_base/ref_count.h",
168  ],
169
170  "rtp_transceiver_interface\.h": [
171    "+rtc_base/ref_count.h",
172  ],
173
174  "sctp_transport_interface\.h": [
175    "+rtc_base/ref_count.h",
176  ],
177
178  "set_local_description_observer_interface\.h": [
179    "+rtc_base/ref_count.h",
180  ],
181  "set_remote_description_observer_interface\.h": [
182    "+rtc_base/ref_count.h",
183  ],
184
185  "legacy_stats_types\.h": [
186    "+rtc_base/ref_count.h",
187    "+rtc_base/thread_checker.h",
188  ],
189
190  "uma_metrics\.h": [
191    "+rtc_base/ref_count.h",
192  ],
193
194  "audio_mixer\.h": [
195    "+rtc_base/ref_count.h",
196  ],
197
198  "audio_decoder\.h": [
199    "+rtc_base/buffer.h",
200  ],
201
202  "audio_decoder_factory\.h": [
203    "+rtc_base/ref_count.h",
204  ],
205
206  "audio_encoder\.h": [
207    "+rtc_base/buffer.h",
208  ],
209
210  "audio_encoder_factory\.h": [
211    "+rtc_base/ref_count.h",
212  ],
213
214  "frame_decryptor_interface\.h": [
215    "+rtc_base/ref_count.h",
216  ],
217
218  "frame_encryptor_interface\.h": [
219    "+rtc_base/ref_count.h",
220  ],
221
222  "rtc_stats_collector_callback\.h": [
223    "+rtc_base/ref_count.h",
224  ],
225
226  "rtc_stats_report\.h": [
227    "+rtc_base/ref_count.h",
228  ],
229
230  "audioproc_float\.h": [
231    "+modules/audio_processing/include/audio_processing.h",
232  ],
233
234  "echo_detector_creator\.h": [
235    "+modules/audio_processing/include/audio_processing.h",
236  ],
237
238  "fake_metronome\.h": [
239    "+rtc_base/synchronization/mutex.h",
240    "+rtc_base/task_queue.h",
241    "+rtc_base/task_utils/repeating_task.h",
242    "+rtc_base/thread_annotations.h",
243  ],
244
245  "make_ref_counted\.h": [
246    "+rtc_base/ref_counted_object.h",
247  ],
248
249  "mock.*\.h": [
250    "+test/gmock.h",
251  ],
252
253  "mock_peerconnectioninterface\.h": [
254    "+rtc_base/ref_counted_object.h",
255  ],
256
257  "mock_video_track\.h": [
258    "+rtc_base/ref_counted_object.h",
259  ],
260
261  "notifier\.h": [
262    "+rtc_base/system/no_unique_address.h",
263  ],
264
265  "simulated_network\.h": [
266    "+rtc_base/random.h",
267    "+rtc_base/thread_annotations.h",
268  ],
269
270  "test_dependency_factory\.h": [
271    "+rtc_base/thread_checker.h",
272  ],
273
274  "time_controller\.h": [
275    "+rtc_base/thread.h",
276  ],
277
278  "videocodec_test_fixture\.h": [
279    "+modules/video_coding/include/video_codec_interface.h"
280  ],
281
282  "video_encoder_config\.h": [
283    "+rtc_base/ref_count.h",
284  ],
285
286  "sequence_checker\.h": [
287    "+rtc_base/synchronization/sequence_checker_internal.h",
288    "+rtc_base/thread_annotations.h",
289  ],
290
291  "wrapping_async_dns_resolver\.h": [
292    "+rtc_base/async_resolver.h",
293    "+rtc_base/async_resolver_interface.h",
294    "+rtc_base/socket_address.h",
295    "+rtc_base/third_party/sigslot/sigslot.h",
296    "+rtc_base/thread_annotations.h",
297  ],
298
299  "video_encoder_factory_template.*\.h": [
300    "+modules/video_coding",
301  ],
302
303  "video_decoder_factory_template.*\.h": [
304    "+modules/video_coding",
305  ],
306
307  "field_trials\.h": [
308    "+rtc_base/containers/flat_map.h",
309  ],
310
311  "video_track_source_proxy_factory.h": [
312    "+rtc_base/thread.h",
313  ],
314
315  "field_trials_registry\.h": [
316    "+rtc_base/containers/flat_set.h",
317  ],
318
319  # .cc files in api/ should not be restricted in what they can #include,
320  # so we re-add all the top-level directories here. (That's because .h
321  # files leak their #includes to whoever's #including them, but .cc files
322  # do not since no one #includes them.)
323  ".*\.cc": [
324    "+audio",
325    "+call",
326    "+common_audio",
327    "+common_video",
328    "+examples",
329    "+experiments",
330    "+logging",
331    "+media",
332    "+modules",
333    "+p2p",
334    "+pc",
335    "+rtc_base",
336    "+rtc_tools",
337    "+sdk",
338    "+stats",
339    "+system_wrappers",
340    "+test",
341    "+tools",
342    "+tools_webrtc",
343    "+video",
344    "+third_party",
345  ],
346}
347