Implement DefaultAudioQualityAnalyzer.
The DefaultAudioQualityAnalyzer will read stats reports (temporarily
using the old PeerConnectionInterface::GetStats) and for each audio
stream it will collect some NetEq related stats.
When DefaultAudioQualityAnalyzer::Stop is invoked by the framework,
it will report the following metrics:
- expand_rate
- accelerate_rate
- preemptive_rate
- speech_expand_rate
- preferred_buffer_size_ms
Bug: webrtc:10138
Change-Id: Ie493456fcb9ed86455b12dabdab98a317387ef46
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125980
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27474}
diff --git a/api/test/audio_quality_analyzer_interface.h b/api/test/audio_quality_analyzer_interface.h
index 1f67ce6..88392d7 100644
--- a/api/test/audio_quality_analyzer_interface.h
+++ b/api/test/audio_quality_analyzer_interface.h
@@ -14,6 +14,7 @@
#include <string>
#include "api/test/stats_observer_interface.h"
+#include "api/test/track_id_stream_label_map.h"
namespace webrtc {
namespace webrtc_pc_e2e {
@@ -23,10 +24,18 @@
public:
~AudioQualityAnalyzerInterface() override = default;
- // Will be called by framework before test.
+ // Will be called by the framework before the test.
// |test_case_name| is name of test case, that should be used to report all
// audio metrics.
- virtual void Start(std::string test_case_name) = 0;
+ // |analyzer_helper| is a pointer to a class that will allow track_id to
+ // stream_id matching. The caller is responsible for ensuring the
+ // AnalyzerHelper outlives the instance of the AudioQualityAnalyzerInterface.
+ virtual void Start(std::string test_case_name,
+ TrackIdStreamLabelMap* analyzer_helper) = 0;
+
+ // Will be called by the framework at the end of the test. The analyzer
+ // has to finalize all its stats and it should report them.
+ virtual void Stop() = 0;
};
} // namespace webrtc_pc_e2e