# Copyright (c) 2018 The WebRTC project authors. All Rights Reserved. # # Use of this source code is governed by a BSD-style license # that can be found in the LICENSE file in the root of the source # tree. An additional intellectual property rights grant can be found # in the file PATENTS. All contributing project authors may # be found in the AUTHORS file in the root of the source tree. import("../../webrtc.gni") if (is_android) { import("//build/config/android/config.gni") import("//build/config/android/rules.gni") } rtc_library("video_rtp_headers") { visibility = [ "*" ] sources = [ "color_space.cc", "color_space.h", "hdr_metadata.cc", "hdr_metadata.h", "video_content_type.cc", "video_content_type.h", "video_rotation.h", "video_timing.cc", "video_timing.h", ] deps = [ "..:array_view", "../../rtc_base:rtc_base_approved", "../../rtc_base/system:rtc_export", ] absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] } rtc_library("video_frame") { visibility = [ "*" ] sources = [ "video_codec_type.h", "video_frame.cc", "video_frame.h", "video_frame_buffer.cc", "video_frame_buffer.h", "video_sink_interface.h", "video_source_interface.cc", "video_source_interface.h", ] deps = [ ":video_rtp_headers", "..:array_view", "..:rtp_packet_info", "..:scoped_refptr", "../../rtc_base:checks", "../../rtc_base:rtc_base_approved", "../../rtc_base/system:rtc_export", ] absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] } if (is_android) { java_cpp_enum("video_frame_enums") { sources = [ "video_codec_type.h" ] } } rtc_source_set("recordable_encoded_frame") { visibility = [ "*" ] sources = [ "recordable_encoded_frame.h" ] deps = [ ":encoded_image", ":video_frame", ":video_rtp_headers", "..:array_view", "..:scoped_refptr", "../../rtc_base:refcount", "../units:timestamp", ] } rtc_source_set("video_frame_type") { visibility = [ "*" ] sources = [ "video_frame_type.h" ] } rtc_library("video_frame_i420") { visibility = [ "*" ] sources = [ "i420_buffer.cc", "i420_buffer.h", ] deps = [ ":video_frame", ":video_rtp_headers", "..:scoped_refptr", "../../rtc_base", "../../rtc_base:checks", "../../rtc_base/memory:aligned_malloc", "../../rtc_base/system:rtc_export", "//third_party/libyuv", ] } rtc_library("video_frame_i010") { visibility = [ "*" ] sources = [ "i010_buffer.cc", "i010_buffer.h", ] deps = [ ":video_frame", ":video_frame_i420", ":video_rtp_headers", "..:scoped_refptr", "../../rtc_base", "../../rtc_base:checks", "../../rtc_base/memory:aligned_malloc", "//third_party/libyuv", ] } rtc_library("encoded_image") { visibility = [ "*" ] sources = [ "encoded_image.cc", "encoded_image.h", ] deps = [ ":video_codec_constants", ":video_frame", ":video_frame_type", ":video_rtp_headers", "..:refcountedbase", "..:rtp_packet_info", "..:scoped_refptr", "../..:webrtc_common", "../../rtc_base:checks", "../../rtc_base:deprecation", "../../rtc_base:rtc_base_approved", "../../rtc_base/system:rtc_export", ] absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] } rtc_library("encoded_frame") { visibility = [ "*" ] sources = [ "encoded_frame.cc", "encoded_frame.h", ] deps = [ "../../modules/video_coding:encoded_frame" ] } rtc_source_set("video_codec_constants") { visibility = [ "*" ] sources = [ "video_codec_constants.h" ] deps = [] } rtc_library("video_bitrate_allocation") { visibility = [ "*" ] sources = [ "video_bitrate_allocation.cc", "video_bitrate_allocation.h", ] deps = [ ":video_codec_constants", "../../rtc_base:checks", "../../rtc_base:safe_conversions", "../../rtc_base:stringutils", "../../rtc_base/system:rtc_export", ] absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] } rtc_library("video_bitrate_allocator") { visibility = [ "*" ] sources = [ "video_bitrate_allocator.cc", "video_bitrate_allocator.h", ] deps = [ ":video_bitrate_allocation", "../units:data_rate", ] } rtc_source_set("video_bitrate_allocator_factory") { visibility = [ "*" ] sources = [ "video_bitrate_allocator_factory.h" ] deps = [ ":video_bitrate_allocator", "../../rtc_base:rtc_base_approved", "../video_codecs:video_codecs_api", ] } rtc_source_set("video_stream_decoder") { visibility = [ "*" ] sources = [ "video_stream_decoder.h" ] deps = [ ":encoded_frame", ":video_frame", "../task_queue", "../units:time_delta", "../video_codecs:video_codecs_api", ] absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] } rtc_library("video_stream_decoder_create") { visibility = [ "*" ] sources = [ "video_stream_decoder_create.cc", "video_stream_decoder_create.h", ] deps = [ ":video_stream_decoder", "../../rtc_base:rtc_base_approved", "../../video:video_stream_decoder_impl", "../task_queue", "../video_codecs:video_codecs_api", ] } rtc_library("video_adaptation") { visibility = [ "*" ] sources = [ "video_adaptation_counters.cc", "video_adaptation_counters.h", "video_adaptation_reason.h", ] deps = [ "../../rtc_base:checks", "../../rtc_base:stringutils", ] } rtc_source_set("video_stream_encoder") { visibility = [ "*" ] sources = [ "video_stream_encoder_interface.h", "video_stream_encoder_observer.h", "video_stream_encoder_settings.h", ] deps = [ ":video_adaptation", ":video_bitrate_allocation", ":video_bitrate_allocator", ":video_bitrate_allocator_factory", ":video_codec_constants", ":video_frame", "..:rtp_parameters", "..:scoped_refptr", "../:fec_controller_api", "../:rtp_parameters", "../adaptation:resource_adaptation_api", "../units:data_rate", "../video_codecs:video_codecs_api", ] absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] } rtc_source_set("video_frame_metadata") { visibility = [ "*" ] sources = [ "video_frame_metadata.cc", "video_frame_metadata.h", ] deps = [ "..:array_view", "../../modules/rtp_rtcp:rtp_video_header", "../transport/rtp:dependency_descriptor", ] absl_deps = [ "//third_party/abseil-cpp/absl/container:inlined_vector", "//third_party/abseil-cpp/absl/types:optional", ] } rtc_library("video_stream_encoder_create") { visibility = [ "*" ] sources = [ "video_stream_encoder_create.cc", "video_stream_encoder_create.h", ] deps = [ ":video_frame", ":video_stream_encoder", "../../api:scoped_refptr", "../../video:video_stream_encoder_impl", "../../video/adaptation:video_adaptation", "../task_queue", "../video_codecs:video_codecs_api", ] } rtc_library("builtin_video_bitrate_allocator_factory") { visibility = [ "*" ] sources = [ "builtin_video_bitrate_allocator_factory.cc", "builtin_video_bitrate_allocator_factory.h", ] deps = [ ":video_bitrate_allocation", ":video_bitrate_allocator", ":video_bitrate_allocator_factory", "../../:webrtc_common", "../../api:scoped_refptr", "../../media:rtc_media_base", "../../modules/video_coding:video_coding_utility", "../../modules/video_coding:webrtc_vp9_helpers", "../video_codecs:video_codecs_api", ] absl_deps = [ "//third_party/abseil-cpp/absl/base:core_headers" ] } if (rtc_include_tests) { rtc_library("video_unittests") { testonly = true sources = [ "video_frame_metadata_unittest.cc", "video_stream_decoder_create_unittest.cc", ] deps = [ ":video_frame_metadata", ":video_stream_decoder_create", "../../modules/rtp_rtcp:rtp_video_header", "../../test:test_support", "../task_queue:default_task_queue_factory", "../video_codecs:builtin_video_decoder_factory", ] } }