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