Florent Castelli 023be3c977 Data Channel Benchmarking tool
Create a server using:
./data_channel_benchmark --server --port 12345
Start the flow of data from the server to a client using:
./data_channel_benchmark --port 12345 --transfer_size 100
The throughput is reported on the server console.

The negotiation does not require a 3rd party server and is done over a
gRPC transport. No TURN server is configured, so both peers need to be
reachable using STUN only.

Bug: webrtc:13288
Change-Id: Iac9a96cf390ab465ea45a46bf0b40950c56dfceb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/235661
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36206}
2022-03-15 16:18:16 +00:00

63 lines
1.7 KiB
Plaintext

# Copyright 2021 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//third_party/grpc/grpc_library.gni")
import("../../webrtc.gni")
grpc_library("signaling_grpc_proto") {
testonly = true
sources = [ "peer_connection_signaling.proto" ]
}
rtc_library("signaling_interface") {
sources = [ "signaling_interface.h" ]
deps = [ "../../api:libjingle_peerconnection_api" ]
}
rtc_library("grpc_signaling") {
testonly = true
sources = [
"grpc_signaling.cc",
"grpc_signaling.h",
]
deps = [
":signaling_grpc_proto",
":signaling_interface",
"../../api:libjingle_peerconnection_api",
"../../rtc_base:threading",
"//third_party/grpc:grpc++",
]
defines = [ "GPR_FORBID_UNREACHABLE_CODE=0" ]
}
rtc_executable("data_channel_benchmark") {
testonly = true
sources = [
"data_channel_benchmark.cc",
"peer_connection_client.cc",
"peer_connection_client.h",
]
deps = [
":grpc_signaling",
":signaling_interface",
"../../api:create_peerconnection_factory",
"../../api:libjingle_peerconnection_api",
"../../api:rtc_error",
"../../api:scoped_refptr",
"../../api/audio_codecs:builtin_audio_decoder_factory",
"../../api/audio_codecs:builtin_audio_encoder_factory",
"../../api/video_codecs:builtin_video_decoder_factory",
"../../api/video_codecs:builtin_video_encoder_factory",
"../../rtc_base",
"../../rtc_base:logging",
"../../rtc_base:refcount",
"../../rtc_base:threading",
"../../system_wrappers:field_trial",
"//third_party/abseil-cpp/absl/cleanup:cleanup",
"//third_party/abseil-cpp/absl/flags:flag",
"//third_party/abseil-cpp/absl/flags:parse",
]
}