This CL plumbs an additional signal from VideoSendStream down to VideoStreamEncoder, namely the amount of headroom that's left between the encoder max bitrate and the current bitrate allocation for the media track. This will be used in follow-up CLs to tune encoder rate adjustment and some codec specific paramaters a bit differently, based on the knowledge if we are network constrained or not. Bug: webrtc:10155 Change-Id: Ic6ccc79be5c6845468bab65b4ca9918b56923fa4 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125981 Reviewed-by: Niels Moller <nisse@webrtc.org> Commit-Queue: Erik Språng <sprang@webrtc.org> Cr-Commit-Position: refs/heads/master@{#27008}
241 lines
5.4 KiB
Plaintext
241 lines
5.4 KiB
Plaintext
# 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")
|
|
|
|
rtc_source_set("video_frame") {
|
|
visibility = [ "*" ]
|
|
sources = [
|
|
"color_space.cc",
|
|
"color_space.h",
|
|
"hdr_metadata.cc",
|
|
"hdr_metadata.h",
|
|
"video_codec_type.h",
|
|
"video_content_type.cc",
|
|
"video_content_type.h",
|
|
"video_frame.cc",
|
|
"video_frame.h",
|
|
"video_frame_buffer.cc",
|
|
"video_frame_buffer.h",
|
|
"video_frame_marking.h",
|
|
"video_rotation.h",
|
|
"video_sink_interface.h",
|
|
"video_source_interface.cc",
|
|
"video_source_interface.h",
|
|
"video_timing.cc",
|
|
"video_timing.h",
|
|
]
|
|
|
|
deps = [
|
|
"..:array_view",
|
|
"..:scoped_refptr",
|
|
"../../rtc_base:checks",
|
|
"../../rtc_base:rtc_base_approved",
|
|
"../../rtc_base/system:rtc_export",
|
|
"//third_party/abseil-cpp/absl/types:optional",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("video_frame_i420") {
|
|
visibility = [ "*" ]
|
|
sources = [
|
|
"i420_buffer.cc",
|
|
"i420_buffer.h",
|
|
]
|
|
deps = [
|
|
":video_frame",
|
|
"..:scoped_refptr",
|
|
"../../rtc_base:checks",
|
|
"../../rtc_base:rtc_base",
|
|
"../../rtc_base/memory:aligned_malloc",
|
|
"../../rtc_base/system:rtc_export",
|
|
"//third_party/libyuv",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("video_frame_i010") {
|
|
visibility = [ "*" ]
|
|
sources = [
|
|
"i010_buffer.cc",
|
|
"i010_buffer.h",
|
|
]
|
|
deps = [
|
|
":video_frame",
|
|
":video_frame_i420",
|
|
"..:scoped_refptr",
|
|
"../../rtc_base:checks",
|
|
"../../rtc_base:rtc_base",
|
|
"../../rtc_base/memory:aligned_malloc",
|
|
"//third_party/libyuv",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("encoded_image") {
|
|
sources = [
|
|
"encoded_image.cc",
|
|
"encoded_image.h",
|
|
]
|
|
deps = [
|
|
":video_codec_constants",
|
|
":video_frame",
|
|
"../..:webrtc_common",
|
|
"../../rtc_base:checks",
|
|
"../../rtc_base:rtc_base_approved",
|
|
"../../rtc_base/system:rtc_export",
|
|
"//third_party/abseil-cpp/absl/types:optional",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("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_source_set("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",
|
|
"//third_party/abseil-cpp/absl/types:optional",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("video_bitrate_allocator") {
|
|
visibility = [ "*" ]
|
|
sources = [
|
|
"video_bitrate_allocator.h",
|
|
]
|
|
deps = [
|
|
":video_bitrate_allocation",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("video_bitrate_allocator_factory") {
|
|
visibility = [ "*" ]
|
|
sources = [
|
|
"video_bitrate_allocator_factory.h",
|
|
]
|
|
deps = [
|
|
":video_bitrate_allocator",
|
|
"../video_codecs:video_codecs_api",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("video_stream_decoder") {
|
|
visibility = [ "*" ]
|
|
sources = [
|
|
"video_stream_decoder.h",
|
|
]
|
|
|
|
deps = [
|
|
":encoded_frame",
|
|
":video_frame",
|
|
"../video_codecs:video_codecs_api",
|
|
"//third_party/abseil-cpp/absl/types:optional",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("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",
|
|
"//third_party/abseil-cpp/absl/memory",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("video_stream_encoder") {
|
|
visibility = [ "*" ]
|
|
sources = [
|
|
"video_stream_encoder_interface.h",
|
|
"video_stream_encoder_observer.cc",
|
|
"video_stream_encoder_observer.h",
|
|
"video_stream_encoder_settings.h",
|
|
]
|
|
|
|
deps = [
|
|
":video_bitrate_allocator",
|
|
":video_bitrate_allocator_factory",
|
|
":video_frame",
|
|
"../units:data_rate",
|
|
|
|
# For rtpparameters.h
|
|
"..:libjingle_peerconnection_api",
|
|
"../video_codecs:video_codecs_api",
|
|
"//third_party/abseil-cpp/absl/types:optional",
|
|
]
|
|
}
|
|
|
|
rtc_source_set("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",
|
|
"../task_queue",
|
|
"../task_queue:global_task_queue_factory",
|
|
"../video_codecs:video_codecs_api",
|
|
"//third_party/abseil-cpp/absl/memory",
|
|
]
|
|
}
|
|
|
|
rtc_static_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",
|
|
"../../rtc_base/system:fallthrough",
|
|
"../video_codecs:video_codecs_api",
|
|
"//third_party/abseil-cpp/absl/memory",
|
|
]
|
|
}
|