diff --git a/webrtc-extensions/RTCRtpReceiver-jitterBufferTarget-stats.html b/webrtc-extensions/RTCRtpReceiver-jitterBufferTarget-stats.html index 504de6da9d62fa..98ebea27e43fe9 100644 --- a/webrtc-extensions/RTCRtpReceiver-jitterBufferTarget-stats.html +++ b/webrtc-extensions/RTCRtpReceiver-jitterBufferTarget-stats.html @@ -25,14 +25,14 @@ "measure raising video jitterBufferTarget to 500"); async_promise_test(t => applyJitterBufferTarget(t, "audio", 500), "measure raising audio jitterBufferTarget to 500"); -async_promise_test(t => applyJitterBufferTarget(t, "video", 250, 50), - "measure lowering video jitterBufferTarget to 50"); -async_promise_test(t => applyJitterBufferTarget(t, "audio", 250, 50), - "measure lowering audio jitterBufferTarget to 50"); -async_promise_test(t => applyJitterBufferTarget(t, "video", 500, 150), +async_promise_test(t => applyJitterBufferTarget(t, "video", 250, 150), "measure lowering video jitterBufferTarget to 150"); -async_promise_test(t => applyJitterBufferTarget(t, "audio", 500, 150), +async_promise_test(t => applyJitterBufferTarget(t, "audio", 250, 150), "measure lowering audio jitterBufferTarget to 150"); +async_promise_test(t => applyJitterBufferTarget(t, "video", 400, 250), + "measure lowering video jitterBufferTarget to 300"); +async_promise_test(t => applyJitterBufferTarget(t, "audio", 400, 250), + "measure lowering audio jitterBufferTarget to 300"); async function applyJitterBufferTarget(t, kind, target, targetToLower) { const caller = new RTCPeerConnection(); @@ -67,7 +67,8 @@ async function measureDelayFromStats(t, receiver, callee, target, kind) { const lowerBound = target * 0.7; const upperBound = target * 1.3; - let delay, oldInboundStats; + let delay, oldInboundStats, prevDelay, rateOfChange; + let numDelayMeasurements = 1; for (let statChecks = 0; statChecks < 40; statChecks++) { await new Promise(r => t.step_timeout(r, 1000)); @@ -77,6 +78,11 @@ if (oldInboundStats) { delay = ((inboundStats.jitterBufferDelay - oldInboundStats.jitterBufferDelay) / (inboundStats.jitterBufferEmittedCount - oldInboundStats.jitterBufferEmittedCount) * 1000); + if (prevDelay) { + rateOfChange = (delay - prevDelay) / numDelayMeasurements; + numDelayMeasurements++; + } + prevDelay = delay; if (delay > lowerBound && delay < upperBound) { break; } @@ -84,7 +90,7 @@ oldInboundStats = inboundStats; } t.step(() => assert_between_inclusive(delay , lowerBound, upperBound, - `${kind} delay is within bounds`)); + `${kind} delay is within bounds rateOfChange ${rateOfChange} over ${numDelayMeasurements} measurements`)); return delay; }