Introduce possibility to poll stats and notify analyzers.

This CL introduces the possibility to poll the 2 peer connections
at constant intervals.

It also introduces a dummy AudioQualityAnalyzer that will have to
be implemented in a follow-up CL and it moves every type of the
test framework inside the webrtc::test namespace.

Bug: webrtc:10138
Change-Id: I40acf7894bd67ea5229baba2d2cf18cd8ef65e67
Reviewed-on: https://webrtc-review.googlesource.com/c/123441
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26854}
This commit is contained in:
Mirko Bonadei
2019-02-26 15:19:07 +01:00
committed by Commit Bot
parent 2684ab3db0
commit 12ae4f4d50
17 changed files with 339 additions and 12 deletions

View File

@ -16,8 +16,11 @@
#include "pc/test/frame_generator_capturer_video_track_source.h"
#include "rtc_base/task_queue.h"
#include "rtc_base/task_utils/repeating_task.h"
#include "rtc_base/thread.h"
#include "rtc_base/thread_annotations.h"
#include "system_wrappers/include/clock.h"
#include "test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.h"
#include "test/pc/e2e/analyzer/video/single_process_encoded_image_data_injector.h"
#include "test/pc/e2e/analyzer/video/video_quality_analyzer_injection_helper.h"
#include "test/pc/e2e/api/peerconnection_quality_test_fixture.h"
@ -83,6 +86,7 @@ class PeerConnectionE2EQualityTest
video_quality_analyzer_injection_helper_;
std::unique_ptr<SingleProcessEncodedImageDataInjector>
encoded_image_id_controller_;
std::unique_ptr<AudioQualityAnalyzerInterface> audio_quality_analyzer_;
std::unique_ptr<TestPeer> alice_;
std::unique_ptr<TestPeer> bob_;
@ -95,6 +99,7 @@ class PeerConnectionE2EQualityTest
std::vector<std::unique_ptr<rtc::VideoSinkInterface<VideoFrame>>>
output_video_sinks_;
RepeatingTaskHandle stats_polling_task_ RTC_GUARDED_BY(&task_queue_);
// Must be the last field, so it will be deleted first, because tasks
// in the TaskQueue can access other fields of the instance of this class.
rtc::TaskQueue task_queue_;