xref: /aosp_15_r20/external/webrtc/test/pc/e2e/analyzer/video/BUILD.gn (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1# Copyright (c) 2022 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")
10
11if (!build_with_chromium) {
12  group("video_analyzer") {
13    testonly = true
14
15    deps = [
16      ":analyzing_video_sinks_helper",
17      ":default_video_quality_analyzer_internal",
18      ":encoded_image_data_injector_api",
19      ":example_video_quality_analyzer",
20      ":multi_reader_queue",
21      ":quality_analyzing_video_decoder",
22      ":quality_analyzing_video_encoder",
23      ":simulcast_dummy_buffer_helper",
24      ":single_process_encoded_image_data_injector",
25      ":video_dumping",
26      ":video_frame_tracking_id_injector",
27      ":video_quality_metrics_reporter",
28    ]
29    if (rtc_include_tests) {
30      deps += [
31        ":analyzing_video_sink",
32        ":video_quality_analyzer_injection_helper",
33      ]
34    }
35  }
36
37  if (rtc_include_tests) {
38    group("video_analyzer_unittests") {
39      testonly = true
40
41      deps = [
42        ":analyzing_video_sink_test",
43        ":analyzing_video_sinks_helper_test",
44        ":default_video_quality_analyzer_frames_comparator_test",
45        ":default_video_quality_analyzer_metric_names_test",
46        ":default_video_quality_analyzer_stream_state_test",
47        ":default_video_quality_analyzer_test",
48        ":multi_reader_queue_test",
49        ":names_collection_test",
50        ":simulcast_dummy_buffer_helper_test",
51        ":single_process_encoded_image_data_injector_unittest",
52        ":video_dumping_test",
53        ":video_frame_tracking_id_injector_unittest",
54      ]
55    }
56  }
57}
58
59rtc_library("video_dumping") {
60  testonly = true
61  sources = [
62    "video_dumping.cc",
63    "video_dumping.h",
64  ]
65  deps = [
66    "../../../..:video_test_support",
67    "../../../../../api/test/video:video_frame_writer",
68    "../../../../../api/video:video_frame",
69    "../../../../../rtc_base:logging",
70    "../../../../../system_wrappers",
71  ]
72  absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
73}
74
75rtc_library("encoded_image_data_injector_api") {
76  testonly = true
77  sources = [ "encoded_image_data_injector.h" ]
78
79  deps = [ "../../../../../api/video:encoded_image" ]
80  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
81}
82
83rtc_library("single_process_encoded_image_data_injector") {
84  testonly = true
85  sources = [
86    "single_process_encoded_image_data_injector.cc",
87    "single_process_encoded_image_data_injector.h",
88  ]
89
90  deps = [
91    ":encoded_image_data_injector_api",
92    "../../../../../api/video:encoded_image",
93    "../../../../../rtc_base:checks",
94    "../../../../../rtc_base/synchronization:mutex",
95  ]
96  absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
97}
98
99rtc_library("video_frame_tracking_id_injector") {
100  testonly = true
101  sources = [
102    "video_frame_tracking_id_injector.cc",
103    "video_frame_tracking_id_injector.h",
104  ]
105
106  deps = [
107    ":encoded_image_data_injector_api",
108    "../../../../../api/video:encoded_image",
109    "../../../../../rtc_base:checks",
110  ]
111  absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
112}
113
114rtc_library("simulcast_dummy_buffer_helper") {
115  testonly = true
116  sources = [
117    "simulcast_dummy_buffer_helper.cc",
118    "simulcast_dummy_buffer_helper.h",
119  ]
120  deps = [ "../../../../../api/video:video_frame" ]
121}
122
123rtc_library("quality_analyzing_video_decoder") {
124  testonly = true
125  sources = [
126    "quality_analyzing_video_decoder.cc",
127    "quality_analyzing_video_decoder.h",
128  ]
129  deps = [
130    ":encoded_image_data_injector_api",
131    ":simulcast_dummy_buffer_helper",
132    "../../../../../api:video_quality_analyzer_api",
133    "../../../../../api/video:encoded_image",
134    "../../../../../api/video:video_frame",
135    "../../../../../api/video_codecs:video_codecs_api",
136    "../../../../../modules/video_coding:video_codec_interface",
137    "../../../../../rtc_base:logging",
138    "../../../../../rtc_base/synchronization:mutex",
139  ]
140  absl_deps = [
141    "//third_party/abseil-cpp/absl/strings",
142    "//third_party/abseil-cpp/absl/types:optional",
143  ]
144}
145
146rtc_library("quality_analyzing_video_encoder") {
147  testonly = true
148  sources = [
149    "quality_analyzing_video_encoder.cc",
150    "quality_analyzing_video_encoder.h",
151  ]
152  deps = [
153    ":encoded_image_data_injector_api",
154    "../../../../../api:video_quality_analyzer_api",
155    "../../../../../api/test/pclf:media_configuration",
156    "../../../../../api/video:video_frame",
157    "../../../../../api/video_codecs:video_codecs_api",
158    "../../../../../modules/video_coding:video_codec_interface",
159    "../../../../../modules/video_coding/svc:scalability_mode_util",
160    "../../../../../rtc_base:logging",
161    "../../../../../rtc_base/synchronization:mutex",
162  ]
163  absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
164}
165
166rtc_library("analyzing_video_sinks_helper") {
167  testonly = true
168  sources = [
169    "analyzing_video_sinks_helper.cc",
170    "analyzing_video_sinks_helper.h",
171  ]
172  deps = [
173    "../../../../../api/test/pclf:media_configuration",
174    "../../../../../api/test/video:video_frame_writer",
175    "../../../../../rtc_base:macromagic",
176    "../../../../../rtc_base/synchronization:mutex",
177  ]
178  absl_deps = [
179    "//third_party/abseil-cpp/absl/strings",
180    "//third_party/abseil-cpp/absl/types:optional",
181  ]
182}
183
184rtc_library("example_video_quality_analyzer") {
185  testonly = true
186  sources = [
187    "example_video_quality_analyzer.cc",
188    "example_video_quality_analyzer.h",
189  ]
190
191  deps = [
192    "../../../../../api:array_view",
193    "../../../../../api:video_quality_analyzer_api",
194    "../../../../../api/video:encoded_image",
195    "../../../../../api/video:video_frame",
196    "../../../../../rtc_base:logging",
197    "../../../../../rtc_base/synchronization:mutex",
198  ]
199}
200
201# This target contains implementation details of DefaultVideoQualityAnalyzer,
202# so headers exported by it shouldn't be used in other places.
203rtc_library("default_video_quality_analyzer_internal") {
204  visibility = [
205    ":default_video_quality_analyzer",
206    ":default_video_quality_analyzer_frames_comparator_test",
207    ":default_video_quality_analyzer_stream_state_test",
208    ":names_collection_test",
209    ":video_analyzer",
210  ]
211
212  testonly = true
213  sources = [
214    "default_video_quality_analyzer_cpu_measurer.cc",
215    "default_video_quality_analyzer_cpu_measurer.h",
216    "default_video_quality_analyzer_frame_in_flight.cc",
217    "default_video_quality_analyzer_frame_in_flight.h",
218    "default_video_quality_analyzer_frames_comparator.cc",
219    "default_video_quality_analyzer_frames_comparator.h",
220    "default_video_quality_analyzer_internal_shared_objects.cc",
221    "default_video_quality_analyzer_internal_shared_objects.h",
222    "default_video_quality_analyzer_stream_state.cc",
223    "default_video_quality_analyzer_stream_state.h",
224    "names_collection.cc",
225    "names_collection.h",
226  ]
227
228  deps = [
229    ":default_video_quality_analyzer_shared",
230    ":multi_reader_queue",
231    "../..:metric_metadata_keys",
232    "../../../../../api:array_view",
233    "../../../../../api:scoped_refptr",
234    "../../../../../api/numerics",
235    "../../../../../api/units:data_size",
236    "../../../../../api/units:timestamp",
237    "../../../../../api/video:video_frame",
238    "../../../../../api/video:video_frame_type",
239    "../../../../../common_video",
240    "../../../../../rtc_base:checks",
241    "../../../../../rtc_base:platform_thread",
242    "../../../../../rtc_base:rtc_base_tests_utils",
243    "../../../../../rtc_base:rtc_event",
244    "../../../../../rtc_base:stringutils",
245    "../../../../../rtc_base:timeutils",
246    "../../../../../rtc_base/synchronization:mutex",
247    "../../../../../rtc_tools:video_quality_analysis",
248    "../../../../../system_wrappers",
249  ]
250  absl_deps = [
251    "//third_party/abseil-cpp/absl/strings:strings",
252    "//third_party/abseil-cpp/absl/types:optional",
253  ]
254}
255
256rtc_library("multi_reader_queue") {
257  testonly = true
258  sources = [ "multi_reader_queue.h" ]
259  deps = [ "../../../../../rtc_base:checks" ]
260  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
261}
262
263rtc_library("video_quality_metrics_reporter") {
264  testonly = true
265  sources = [
266    "video_quality_metrics_reporter.cc",
267    "video_quality_metrics_reporter.h",
268  ]
269  deps = [
270    "../..:metric_metadata_keys",
271    "../../../../../api:peer_connection_quality_test_fixture_api",
272    "../../../../../api:rtc_stats_api",
273    "../../../../../api:track_id_stream_info_map",
274    "../../../../../api/numerics",
275    "../../../../../api/test/metrics:metric",
276    "../../../../../api/test/metrics:metrics_logger",
277    "../../../../../api/units:data_rate",
278    "../../../../../api/units:data_size",
279    "../../../../../api/units:time_delta",
280    "../../../../../api/units:timestamp",
281    "../../../../../rtc_base:checks",
282    "../../../../../rtc_base/synchronization:mutex",
283  ]
284  absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
285}
286
287rtc_library("default_video_quality_analyzer") {
288  testonly = true
289  sources = [
290    "default_video_quality_analyzer.cc",
291    "default_video_quality_analyzer.h",
292  ]
293
294  deps = [
295    ":default_video_quality_analyzer_internal",
296    ":default_video_quality_analyzer_shared",
297    "../..:metric_metadata_keys",
298    "../../../../../api:array_view",
299    "../../../../../api:video_quality_analyzer_api",
300    "../../../../../api/numerics",
301    "../../../../../api/test/metrics:metric",
302    "../../../../../api/test/metrics:metrics_logger",
303    "../../../../../api/units:data_size",
304    "../../../../../api/units:time_delta",
305    "../../../../../api/units:timestamp",
306    "../../../../../api/video:encoded_image",
307    "../../../../../api/video:video_frame",
308    "../../../../../rtc_base:checks",
309    "../../../../../rtc_base:logging",
310    "../../../../../rtc_base:macromagic",
311    "../../../../../rtc_base:stringutils",
312    "../../../../../rtc_base/synchronization:mutex",
313    "../../../../../system_wrappers",
314  ]
315  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
316}
317
318rtc_library("default_video_quality_analyzer_shared") {
319  testonly = true
320  sources = [
321    "default_video_quality_analyzer_shared_objects.cc",
322    "default_video_quality_analyzer_shared_objects.h",
323  ]
324
325  deps = [
326    "../../../../../api/numerics",
327    "../../../../../api/units:timestamp",
328    "../../../../../rtc_base:checks",
329    "../../../../../rtc_base:stringutils",
330  ]
331  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
332}
333
334rtc_library("analyzing_video_sink") {
335  testonly = true
336  sources = [
337    "analyzing_video_sink.cc",
338    "analyzing_video_sink.h",
339  ]
340  deps = [
341    ":analyzing_video_sinks_helper",
342    ":simulcast_dummy_buffer_helper",
343    ":video_dumping",
344    "../../../..:fixed_fps_video_frame_writer_adapter",
345    "../../../..:test_renderer",
346    "../../../../../api:video_quality_analyzer_api",
347    "../../../../../api/numerics",
348    "../../../../../api/test/pclf:media_configuration",
349    "../../../../../api/test/video:video_frame_writer",
350    "../../../../../api/units:timestamp",
351    "../../../../../api/video:video_frame",
352    "../../../../../rtc_base:checks",
353    "../../../../../rtc_base:logging",
354    "../../../../../rtc_base:macromagic",
355    "../../../../../rtc_base/synchronization:mutex",
356    "../../../../../system_wrappers",
357  ]
358  absl_deps = [
359    "//third_party/abseil-cpp/absl/memory:memory",
360    "//third_party/abseil-cpp/absl/strings",
361    "//third_party/abseil-cpp/absl/types:optional",
362  ]
363}
364
365rtc_library("video_quality_analyzer_injection_helper") {
366  testonly = true
367  sources = [
368    "video_quality_analyzer_injection_helper.cc",
369    "video_quality_analyzer_injection_helper.h",
370  ]
371  deps = [
372    ":analyzing_video_sink",
373    ":analyzing_video_sinks_helper",
374    ":encoded_image_data_injector_api",
375    ":quality_analyzing_video_decoder",
376    ":quality_analyzing_video_encoder",
377    ":simulcast_dummy_buffer_helper",
378    ":video_dumping",
379    "../../../..:fixed_fps_video_frame_writer_adapter",
380    "../../../..:test_renderer",
381    "../../../..:video_test_common",
382    "../../../..:video_test_support",
383    "../../../../../api:array_view",
384    "../../../../../api:stats_observer_interface",
385    "../../../../../api:video_quality_analyzer_api",
386    "../../../../../api/test/pclf:media_configuration",
387    "../../../../../api/video:video_frame",
388    "../../../../../api/video_codecs:video_codecs_api",
389    "../../../../../rtc_base:checks",
390    "../../../../../rtc_base:logging",
391    "../../../../../rtc_base:stringutils",
392    "../../../../../rtc_base/synchronization:mutex",
393    "../../../../../system_wrappers",
394  ]
395  absl_deps = [
396    "//third_party/abseil-cpp/absl/memory",
397    "//third_party/abseil-cpp/absl/strings",
398  ]
399}
400
401if (rtc_include_tests) {
402  rtc_library("simulcast_dummy_buffer_helper_test") {
403    testonly = true
404    sources = [ "simulcast_dummy_buffer_helper_test.cc" ]
405    deps = [
406      ":simulcast_dummy_buffer_helper",
407      "../../../..:test_support",
408      "../../../../../api/video:video_frame",
409      "../../../../../rtc_base:random",
410    ]
411  }
412
413  rtc_library("analyzing_video_sink_test") {
414    testonly = true
415    sources = [ "analyzing_video_sink_test.cc" ]
416    deps = [
417      ":analyzing_video_sink",
418      ":example_video_quality_analyzer",
419      "../../../..:fileutils",
420      "../../../..:test_support",
421      "../../../..:video_test_support",
422      "../../../../../api:create_frame_generator",
423      "../../../../../api:frame_generator_api",
424      "../../../../../api:scoped_refptr",
425      "../../../../../api/test/pclf:media_configuration",
426      "../../../../../api/units:time_delta",
427      "../../../../../api/units:timestamp",
428      "../../../../../api/video:video_frame",
429      "../../../../../common_video",
430      "../../../../../rtc_base:timeutils",
431      "../../../../../system_wrappers",
432      "../../../../time_controller",
433    ]
434    absl_deps = [
435      "//third_party/abseil-cpp/absl/strings",
436      "//third_party/abseil-cpp/absl/types:optional",
437    ]
438  }
439
440  rtc_library("analyzing_video_sinks_helper_test") {
441    testonly = true
442    sources = [ "analyzing_video_sinks_helper_test.cc" ]
443    deps = [
444      ":analyzing_video_sinks_helper",
445      "../../../..:test_support",
446      "../../../../../api/test/pclf:media_configuration",
447    ]
448    absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
449  }
450
451  rtc_library("default_video_quality_analyzer_frames_comparator_test") {
452    testonly = true
453    sources = [ "default_video_quality_analyzer_frames_comparator_test.cc" ]
454    deps = [
455      ":default_video_quality_analyzer_internal",
456      ":default_video_quality_analyzer_shared",
457      "../../../..:test_support",
458      "../../../../../api:create_frame_generator",
459      "../../../../../api/units:timestamp",
460      "../../../../../rtc_base:stringutils",
461      "../../../../../system_wrappers",
462    ]
463  }
464
465  rtc_library("names_collection_test") {
466    testonly = true
467    sources = [ "names_collection_test.cc" ]
468    deps = [
469      ":default_video_quality_analyzer_internal",
470      "../../../..:test_support",
471    ]
472    absl_deps = [
473      "//third_party/abseil-cpp/absl/strings:strings",
474      "//third_party/abseil-cpp/absl/types:optional",
475    ]
476  }
477
478  rtc_library("multi_reader_queue_test") {
479    testonly = true
480    sources = [ "multi_reader_queue_test.cc" ]
481    deps = [
482      ":multi_reader_queue",
483      "../../../..:test_support",
484    ]
485    absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
486  }
487
488  rtc_library("default_video_quality_analyzer_stream_state_test") {
489    testonly = true
490    sources = [ "default_video_quality_analyzer_stream_state_test.cc" ]
491    deps = [
492      ":default_video_quality_analyzer_internal",
493      "../../../..:test_support",
494      "../../../../../api/units:timestamp",
495    ]
496    absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
497  }
498
499  rtc_library("default_video_quality_analyzer_test") {
500    testonly = true
501    sources = [ "default_video_quality_analyzer_test.cc" ]
502    deps = [
503      ":default_video_quality_analyzer",
504      ":default_video_quality_analyzer_shared",
505      "../../../..:test_support",
506      "../../../../../api:create_frame_generator",
507      "../../../../../api:rtp_packet_info",
508      "../../../../../api/test/metrics:global_metrics_logger_and_exporter",
509      "../../../../../api/video:encoded_image",
510      "../../../../../api/video:video_frame",
511      "../../../../../common_video",
512      "../../../../../rtc_base:stringutils",
513      "../../../../../rtc_tools:video_quality_analysis",
514      "../../../../../system_wrappers",
515    ]
516  }
517
518  rtc_library("default_video_quality_analyzer_metric_names_test") {
519    testonly = true
520    sources = [ "default_video_quality_analyzer_metric_names_test.cc" ]
521    deps = [
522      ":default_video_quality_analyzer",
523      "../../../..:test_support",
524      "../../../../../api:create_frame_generator",
525      "../../../../../api:rtp_packet_info",
526      "../../../../../api/test/metrics:metric",
527      "../../../../../api/test/metrics:metrics_logger",
528      "../../../../../api/test/metrics:stdout_metrics_exporter",
529      "../../../../../api/video:encoded_image",
530      "../../../../../api/video:video_frame",
531      "../../../../../common_video",
532      "../../../../../rtc_tools:video_quality_analysis",
533      "../../../../../system_wrappers",
534    ]
535  }
536
537  rtc_library("video_dumping_test") {
538    testonly = true
539    sources = [ "video_dumping_test.cc" ]
540    deps = [
541      ":video_dumping",
542      "../../../..:fileutils",
543      "../../../..:test_support",
544      "../../../..:video_test_support",
545      "../../../../../api:scoped_refptr",
546      "../../../../../api/video:video_frame",
547      "../../../../../rtc_base:random",
548    ]
549    absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
550  }
551
552  rtc_library("single_process_encoded_image_data_injector_unittest") {
553    testonly = true
554    sources = [ "single_process_encoded_image_data_injector_unittest.cc" ]
555    deps = [
556      ":single_process_encoded_image_data_injector",
557      "../../../..:test_support",
558      "../../../../../api/video:encoded_image",
559      "../../../../../rtc_base:buffer",
560    ]
561  }
562
563  rtc_library("video_frame_tracking_id_injector_unittest") {
564    testonly = true
565    sources = [ "video_frame_tracking_id_injector_unittest.cc" ]
566    deps = [
567      ":video_frame_tracking_id_injector",
568      "../../../..:test_support",
569      "../../../../../api/video:encoded_image",
570      "../../../../../rtc_base:buffer",
571    ]
572  }
573}
574