Adding possibility to save an RTCEventLog of the call.

This CL introduces the possibility to save an RTCEventLogs from the
call in order to do further analysis and call debugging.

Bug: webrtc:10138
Change-Id: If95ef66ecf52218b34ce01a4bcf8ab7991b04e5b
Reviewed-on: https://webrtc-review.googlesource.com/c/123881
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26838}
This commit is contained in:
Mirko Bonadei
2019-02-25 11:45:07 +01:00
committed by Commit Bot
parent 99f5d5fdb4
commit ce7a4fb67b
3 changed files with 23 additions and 1 deletions

View File

@ -212,6 +212,8 @@ if (rtc_include_tests) {
"../../../api:libjingle_peerconnection_api",
"../../../api:scoped_refptr",
"../../../api/units:time_delta",
"../../../logging:rtc_event_log_api",
"../../../logging:rtc_event_log_impl_output",
"../../../pc:pc_test_utils",
"../../../rtc_base:gunit_helpers",
"../../../rtc_base:rtc_base",

View File

@ -173,8 +173,11 @@ class PeerConnectionE2EQualityTestFixture {
struct Params {
// If |video_configs| is empty - no video should be added to the test call.
std::vector<VideoConfig> video_configs;
// If |audio_config| is presented audio stream will be configured
// If |audio_config| is set audio stream will be configured
absl::optional<AudioConfig> audio_config;
// If |rtc_event_log_path| is set, an RTCEventLog will be saved in that
// location and it will be available for further analysis.
absl::optional<std::string> rtc_event_log_path;
PeerConnectionInterface::RTCConfiguration rtc_configuration;
};

View File

@ -18,6 +18,8 @@
#include "api/peer_connection_interface.h"
#include "api/scoped_refptr.h"
#include "api/units/time_delta.h"
#include "logging/rtc_event_log/output/rtc_event_log_output_file.h"
#include "logging/rtc_event_log/rtc_event_log.h"
#include "pc/test/mock_peer_connection_observers.h"
#include "rtc_base/bind.h"
#include "rtc_base/gunit.h"
@ -184,6 +186,21 @@ void PeerConnectionE2EQualityTest::Run(
RTC_LOG(INFO) << "video_analyzer_threads=" << video_analyzer_threads;
video_quality_analyzer_injection_helper_->Start(video_analyzer_threads);
// Start RTCEventLog recording if requested.
if (alice_->params()->rtc_event_log_path) {
auto alice_rtc_event_log = absl::make_unique<webrtc::RtcEventLogOutputFile>(
alice_->params()->rtc_event_log_path.value());
alice_->pc()->StartRtcEventLog(std::move(alice_rtc_event_log),
webrtc::RtcEventLog::kImmediateOutput);
}
if (bob_->params()->rtc_event_log_path) {
auto bob_rtc_event_log = absl::make_unique<webrtc::RtcEventLogOutputFile>(
bob_->params()->rtc_event_log_path.value());
bob_->pc()->StartRtcEventLog(std::move(bob_rtc_event_log),
webrtc::RtcEventLog::kImmediateOutput);
}
signaling_thread->Invoke<void>(
RTC_FROM_HERE,
rtc::Bind(&PeerConnectionE2EQualityTest::SetupCallOnSignalingThread,