Closed Bug 1592988 Opened 5 years ago Closed 11 months ago

Support RTCRtpReceiver. jitterBufferTarget (formerly playoutDelay)

Categories

(Core :: WebRTC: Signaling, enhancement, P4)

enhancement

Tracking

()

RESOLVED FIXED
115 Branch
Tracking Status
relnote-firefox --- 115+
firefox115 --- fixed

People

(Reporter: bwc, Assigned: dbaker)

References

(Blocks 1 open bug, )

Details

Attachments

(5 files)

Maybe needs some spec discussion first.

Hi all,

Chromium implemented this starting in M79. It would be a great addition to FF.

For some more details, please see the following:
https://github.com/w3ctag/design-reviews/issues/441
https://discourse.wicg.io/t/hint-attribute-in-webrtc-to-influence-underlying-audio-video-buffering/4038

Also see the following example jsfiddle:
https://jsfiddle.net/75cnfojy/

Below, I've pasted the "Objective" and "Use Cases" sections from the discourse link above:
Objective:
We want to provide means for javascript applications to set their preferences on how fast they want to render audio or video data. As fast as possible might be beneficial for applications which concentrates on real time experience. For others additional data buffering may provide smother experience in case of network issues.

Use cases
Cloud gaming is a good example where application requires a very high level of interactivity. 60 FPS corresponds to 16.6 milliseconds delay and we would like to provide User Agent a hint to render media as fast as possible without hurting the user experience. On the other hand, for live streaming additional 500~1500 milliseconds probably won’t hurt live experience but it would allow smoother playback because when small network issues happen you would still have some data to play.

This is now called playoutDelay in the spec.

Summary: Support RTCRtpReceiver.playoutDelayHint → Support RTCRtpReceiver.playoutDelay
Severity: normal → S3
Assignee: nobody → dbaker
Status: NEW → ASSIGNED

Waiting on a libwebrtc change which we'll cherry pick or roll in from a regular update.

https://bugs.chromium.org/p/webrtc/issues/detail?id=15085

Attachment #9327011 - Attachment description: Bug 1592988 - Implement RtcRtpReceiver playoutDelay.r?bwc,jib → Bug 1592988 - Implement RtcRtpReceiver jitterBufferTarget.r?bwc,jib
Summary: Support RTCRtpReceiver.playoutDelay → Support RTCRtpReceiver. jitterBufferTarget (formerly playoutDelay)
Pushed by dbaker@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/17b11131ae66
Enable wpt tests and renamed from playoutDelayHint to playoutDelay to match spec.r=jib
https://hg.mozilla.org/integration/autoland/rev/32e7e07d957c
Implement RtcRtpReceiver jitterBufferTarget.r=bwc,jib,webidl,smaug,saschanaz
https://hg.mozilla.org/integration/autoland/rev/11d59d8a50fc
Updated wpt tests to match playoutDelay spec.r=jib
https://hg.mozilla.org/integration/autoland/rev/9fa26b09323b
Renamed from tests from playoutDelay to jitterBufferTarget and spec changes.r=jib
https://hg.mozilla.org/integration/autoland/rev/38320c197609
Add wpt to use stats to measure jitterBufferTarget.r=jib
Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/40128 for changes under testing/web-platform/tests
Regressions: 1834369
Upstream PR merged by moz-wptsync-bot

Release Note Request (optional, but appreciated)
[Why is this notable]: We will be one of the first browsers to ship jitterBufferTarget. The feature allows an application to modify the jitter buffer which can improve quality for users experiencing network issues such as packet loss.
[Affects Firefox for Android]: Yes
[Suggested wording]: WebRTC application developers can now specify a target in milliseconds of media for the jitter buffer to hold. Altering the target value allows applications to control the tradeoff between playout delay and the risk of running out of audio or video frames due to network jitter.
[Links (documentation, blog post, etc)]: https://w3c.github.io/webrtc-extensions/#rtcrtpreceiver-jitterbuffertarget-attributes

relnote-firefox: --- → ?

Thanks, added the note to the Nightly release notes. Keeping the relnote? flag open to keep it on the radar for inclusion in our final release notes.

Regressions: 1837483
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: