Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add definitions of corruption detection measurements #788

Merged
merged 7 commits into from
Nov 7, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions webrtc-stats.html
Original file line number Diff line number Diff line change
Expand Up @@ -1004,6 +1004,9 @@ <h3>
unsigned long long retransmittedBytesReceived;
unsigned long rtxSsrc;
unsigned long fecSsrc;
double totalCorruptionProbability;
double totalSquaredCorruptionProbability;
unsigned long long corruptionMeasurements;
};</pre>
<section>
<h2>
Expand Down Expand Up @@ -1745,6 +1748,48 @@ <h2>
[= map/exist | present =].
</p>
</dd>
<dt>
<dfn>totalCorruptionProbability</dfn> of type <span class=
"idlMemberType">double</span>
</dt>
<dd>
<p>
MUST NOT [= map/exist =] for audio. Represents the cumulative sum of all corruption
probability measurements that have been made for this SSRC, see {{corruptionMeasurements}}
regarding when this attribute SHOULD be [= map/exist | present =].
</p>
</dd>
<dt>
<dfn>totalSquaredCorruptionProbability</dfn> of type <span class=
"idlMemberType">double</span>
</dt>
<dd>
<p>
MUST NOT [= map/exist =] for audio. Represents the cumulative sum of all corruption
probability measurements squared that have been made for this SSRC, see
{{corruptionMeasurements}} regarding when this attribute SHOULD be [= map/exist | present =].
</p>
</dd>
<dt>
<dfn>corruptionMeasurements</dfn> of type <span class=
"idlMemberType">unsigned long long</span>
</dt>
<dd>
<p>
MUST NOT [= map/exist =] for audio. When the user agent is able to make a corruption
probability measurement, this counter is incremented for each such measurement and
{{totalCorruptionProbability}} and {{totalSquaredCorruptionProbability}} are aggregated
with this measurement and measurement squared respectively.
</p>
<p>
If the
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be better to have just a note mentioning the experimental header extension rather than a normative step.
As the header extension is not an established publication, it would block the document from advancing to Candidate Recommendation.
It may leave open the corruption detection algorithm for each implementation to allow alternative techniques.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't intend this to be normative. That header extension does not need to be either negotiated or implemented. How would you phrase it differently? Something like this?

'The user agent may produce corruption likelihood measurements using any method available. That could be facilitated by for instance: a side-channel for validation metadata such as the header extension described at http://www.webrtc.org/experiments/rtp-hdrext/corruption-detection, reference-less image analysis such as natural image statistics, ML-based classification, or anything else capable of producing an estimate.'

<a href="http://www.webrtc.org/experiments/rtp-hdrext/corruption-detection">Corruption Detection</a>
header extension has been negotatied, the user agent SHOULD produce measurements
according to the algorithm in the header extension-explainer, but the user agent MAY produce
measurements by other means, for example by reference-less image analysis compeletely on the
receiver-side.
</p>
</dd>
</dl>
</section>
</div>
Expand Down