Monitor the "concealed samples" stat for the audio during negotiation.
Bug: webrtc:12361 Change-Id: Ib638314f78782d6c3c4ebbb0899f3d6d4cc8e869 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/201727 Reviewed-by: Henrik Boström <hbos@webrtc.org> Commit-Queue: Harald Alvestrand <hta@webrtc.org> Cr-Commit-Position: refs/heads/master@{#33057}
This commit is contained in:
parent
11215febb9
commit
cbacec52bc
@ -617,6 +617,8 @@ class PeerConnectionWrapper : public webrtc::PeerConnectionObserver,
|
||||
ASSERT_EQ(audio_track_stats_id_, *rtp_stats->track_id);
|
||||
audio_packets_stat_ = *rtp_stats->packets_received;
|
||||
audio_delay_stat_ = *track_stats->relative_packet_arrival_delay;
|
||||
audio_samples_stat_ = *track_stats->total_samples_received;
|
||||
audio_concealed_stat_ = *track_stats->concealed_samples;
|
||||
}
|
||||
|
||||
void UpdateDelayStats(std::string tag, int desc_size) {
|
||||
@ -634,10 +636,33 @@ class PeerConnectionWrapper : public webrtc::PeerConnectionObserver,
|
||||
// An average relative packet arrival delay over the renegotiation of
|
||||
// > 100 ms indicates that something is dramatically wrong, and will impact
|
||||
// quality for sure.
|
||||
ASSERT_GT(0.1, recent_delay) << tag << " size " << desc_size;
|
||||
EXPECT_GT(0.1, recent_delay) << tag << " size " << desc_size;
|
||||
auto delta_samples =
|
||||
*track_stats->total_samples_received - audio_samples_stat_;
|
||||
auto delta_concealed =
|
||||
*track_stats->concealed_samples - audio_concealed_stat_;
|
||||
// These limits should be adjusted down as we improve:
|
||||
//
|
||||
// Concealing more than 4000 samples during a renegotiation is unacceptable.
|
||||
// Concealing more than 20% of samples during a renegotiation is
|
||||
// unacceptable.
|
||||
|
||||
// Current lowest scores:
|
||||
// linux_more_configs bot at conceal rate 0.516
|
||||
// linux_more_configs bot at conceal count 5184
|
||||
// android_arm_rel at conceal count 9241
|
||||
EXPECT_GT(15000U, delta_concealed) << "Concealed " << delta_concealed
|
||||
<< " of " << delta_samples << " samples";
|
||||
if (delta_samples > 0) {
|
||||
EXPECT_GT(0.6, 1.0 * delta_concealed / delta_samples)
|
||||
<< "Concealed " << delta_concealed << " of " << delta_samples
|
||||
<< " samples";
|
||||
}
|
||||
// Increment trailing counters
|
||||
audio_packets_stat_ = *rtp_stats->packets_received;
|
||||
audio_delay_stat_ = *track_stats->relative_packet_arrival_delay;
|
||||
audio_samples_stat_ = *track_stats->total_samples_received;
|
||||
audio_concealed_stat_ = *track_stats->concealed_samples;
|
||||
}
|
||||
|
||||
private:
|
||||
@ -1111,6 +1136,8 @@ class PeerConnectionWrapper : public webrtc::PeerConnectionObserver,
|
||||
// Variables for tracking delay stats on an audio track
|
||||
int audio_packets_stat_ = 0;
|
||||
double audio_delay_stat_ = 0.0;
|
||||
uint64_t audio_samples_stat_ = 0;
|
||||
uint64_t audio_concealed_stat_ = 0;
|
||||
std::string rtp_stats_id_;
|
||||
std::string audio_track_stats_id_;
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user