/* * Copyright (c) 2015 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.
*/
using ::webrtc::BitrateConstraints; using ::webrtc::BuiltInNetworkBehaviorConfig; using ::webrtc::InterLayerPredMode; using ::webrtc::SdpVideoFormat; using ::webrtc::VideoQualityTest;
// Flags common with video loopback, with different default values.
ABSL_FLAG(int, width, 1850, "Video width (crops source).");
size_t Width() { returnstatic_cast<size_t>(absl::GetFlag(FLAGS_width));
}
ABSL_FLAG(int, fps, 5, "Frames per second."); int Fps() { return absl::GetFlag(FLAGS_fps);
}
ABSL_FLAG(int, min_bitrate, 50, "Call and stream min bitrate in kbps."); int MinBitrateKbps() { return absl::GetFlag(FLAGS_min_bitrate);
}
ABSL_FLAG(int, start_bitrate, 300, "Call start bitrate in kbps."); int StartBitrateKbps() { return absl::GetFlag(FLAGS_start_bitrate);
}
ABSL_FLAG(int, target_bitrate, 200, "Stream target bitrate in kbps."); int TargetBitrateKbps() { return absl::GetFlag(FLAGS_target_bitrate);
}
ABSL_FLAG(int, max_bitrate, 1000, "Call and stream max bitrate in kbps."); int MaxBitrateKbps() { return absl::GetFlag(FLAGS_max_bitrate);
}
ABSL_FLAG(int, num_temporal_layers, 2, "Number of temporal layers to use."); int NumTemporalLayers() { return absl::GetFlag(FLAGS_num_temporal_layers);
}
// Flags common with video loopback, with equal default values.
ABSL_FLAG(std::string, codec, "VP8", "Video codec to use.");
std::string Codec() { return absl::GetFlag(FLAGS_codec);
}
ABSL_FLAG(std::string,
rtc_event_log_name, "", "Filename for rtc event log. Two files " "with \"_send\" and \"_recv\" suffixes will be created.");
std::string RtcEventLogName() { return absl::GetFlag(FLAGS_rtc_event_log_name);
}
ABSL_FLAG(std::string,
rtp_dump_name, "", "Filename for dumped received RTP stream.");
std::string RtpDumpName() { return absl::GetFlag(FLAGS_rtp_dump_name);
}
ABSL_FLAG(int,
selected_tl,
-1, "Temporal layer to show or analyze. -1 to disable filtering."); int SelectedTL() { return absl::GetFlag(FLAGS_selected_tl);
}
ABSL_FLAG( int,
duration,
0, "Duration of the test in seconds. If 0, rendered will be shown instead."); int DurationSecs() { return absl::GetFlag(FLAGS_duration);
}
ABSL_FLAG(std::string,
graph_title, "", "If empty, title will be generated automatically.");
std::string GraphTitle() { return absl::GetFlag(FLAGS_graph_title);
}
ABSL_FLAG(int, loss_percent, 0, "Percentage of packets randomly lost."); int LossPercent() { return absl::GetFlag(FLAGS_loss_percent);
}
ABSL_FLAG(int,
link_capacity,
0, "Capacity (kbps) of the fake link. 0 means infinite.");
webrtc::DataRate LinkCapacity() { int link_capacity_kbps = absl::GetFlag(FLAGS_link_capacity); return link_capacity_kbps == 0
? webrtc::DataRate::Infinity()
: webrtc::DataRate::KilobitsPerSec(link_capacity_kbps);
}
ABSL_FLAG(int, queue_size, 0, "Size of the bottleneck link queue in packets."); int QueueSize() { return absl::GetFlag(FLAGS_queue_size);
}
ABSL_FLAG(int,
avg_propagation_delay_ms,
0, "Average link propagation delay in ms."); int AvgPropagationDelayMs() { return absl::GetFlag(FLAGS_avg_propagation_delay_ms);
}
ABSL_FLAG(int,
std_propagation_delay_ms,
0, "Link propagation delay standard deviation in ms."); int StdPropagationDelayMs() { return absl::GetFlag(FLAGS_std_propagation_delay_ms);
}
ABSL_FLAG(int, num_streams, 0, "Number of streams to show or analyze."); int NumStreams() { return absl::GetFlag(FLAGS_num_streams);
}
ABSL_FLAG(int,
selected_stream,
0, "ID of the stream to show or analyze. " "Set to the number of streams to show them all."); int SelectedStream() { return absl::GetFlag(FLAGS_selected_stream);
}
ABSL_FLAG(int, num_spatial_layers, 1, "Number of spatial layers to use."); int NumSpatialLayers() { return absl::GetFlag(FLAGS_num_spatial_layers);
}
ABSL_FLAG(int,
selected_sl,
-1, "Spatial layer to show or analyze. -1 to disable filtering."); int SelectedSL() { return absl::GetFlag(FLAGS_selected_sl);
}
ABSL_FLAG(std::string,
encoded_frame_path, "", "The base path for encoded frame logs. Created files will have " "the form ..(recv|send.).ivf");
std::string EncodedFramePath() { return absl::GetFlag(FLAGS_encoded_frame_path);
}
ABSL_FLAG(bool, logs, false, "print logs to stderr");
ABSL_FLAG(bool,
generate_slides, false, "Whether to use randomly generated slides or read them from files."); bool GenerateSlides() { return absl::GetFlag(FLAGS_generate_slides);
}
ABSL_FLAG(int,
slide_change_interval,
10, "Interval (in seconds) between simulated slide changes."); int SlideChangeInterval() { return absl::GetFlag(FLAGS_slide_change_interval);
}
ABSL_FLAG( int,
scroll_duration,
0, "Duration (in seconds) during which a slide will be scrolled into place."); int ScrollDuration() { return absl::GetFlag(FLAGS_scroll_duration);
}
ABSL_FLAG(std::string,
slides, "", "Comma-separated list of *.yuv files to display as slides.");
std::vector<std::string> Slides() {
std::vector<std::string> slides;
std::string slides_list = absl::GetFlag(FLAGS_slides);
rtc::tokenize(slides_list, ',', &slides); return slides;
}
// InitFieldTrialsFromString stores the char*, so the char array must outlive // the application. const std::string field_trials = absl::GetFlag(FLAGS_force_fieldtrials);
webrtc::field_trial::InitFieldTrialsFromString(field_trials.c_str());
webrtc::test::RunTest(Loopback); return 0;
}
Messung V0.5
¤ Dauer der Verarbeitung: 0.23 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.