Skip to content

Add SFrame packetization handling for SFrameTransform#252

Merged
alvestrand merged 3 commits intow3c:mainfrom
youennf:sframe-packetization-integration
Mar 26, 2026
Merged

Add SFrame packetization handling for SFrameTransform#252
alvestrand merged 3 commits intow3c:mainfrom
youennf:sframe-packetization-integration

Conversation

@youennf
Copy link
Copy Markdown
Collaborator

@youennf youennf commented Apr 30, 2025

Following on last WebRTC WG meeting and this week's chair meeting, here is a draft of how SFrame packetization could be integrated with SFrameTransform and RTCRtpScriptTransform.


Preview | Diff

@youennf
Copy link
Copy Markdown
Collaborator Author

youennf commented Apr 30, 2025

@jan-ivar, @guidou, @dontcallmedom, here is the PR based on yesterday's meeting.

@youennf
Copy link
Copy Markdown
Collaborator Author

youennf commented Apr 30, 2025

@alvestrand, this also introduces the type attribute mentioned during last WebRTC WG meeting.

@youennf youennf force-pushed the sframe-packetization-integration branch from f580cb7 to 4f74b13 Compare April 30, 2025 10:42
@youennf youennf force-pushed the sframe-packetization-integration branch 2 times, most recently from 6226b9a to 17e6cf2 Compare May 22, 2025 11:58
Comment thread index.bs Outdated
Comment thread index.bs Outdated
@jan-ivar jan-ivar marked this pull request as draft June 5, 2025 14:21
@alvestrand
Copy link
Copy Markdown
Collaborator

At some point this needs to refer to how SDP negotiation of SFrame connects to it - hopefully that will be simple once the IETF agrees on the SFRAME RTP spec.

@youennf
Copy link
Copy Markdown
Collaborator Author

youennf commented Jun 6, 2025

At some point this needs to refer to how SDP negotiation of SFrame connects to it - hopefully that will be simple once the IETF agrees on the SFRAME RTP spec.

Agreed, plan is to discuss this at next AVTCore meeting, on Tuesday next week. I hope to see you there.

@jan-ivar
Copy link
Copy Markdown
Member

Sorry I approved the wrong PR.

@jan-ivar jan-ivar self-requested a review July 31, 2025 14:41
@youennf youennf force-pushed the sframe-packetization-integration branch from 17e6cf2 to c493da4 Compare November 17, 2025 15:26
@youennf youennf marked this pull request as ready for review November 17, 2025 15:32
Comment thread index.bs
### Stream creation ### {#stream-creation}

At construction of each {{RTCRtpTransceiver}}, run the following steps:
1. If [=this=] is associated with a media description, initialize [=this=].`[[useSFrame]]` from the media description. If [=this=].`[[useSFrame]]` is true, enable SFrame RTP packetization for [=this=].
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

How this would apply for the frame/packet encryption? For frame level encryption suggested algorithm looks good.

Could you explain how this would change in the future for packet level sframe?
Since then you won't be able to tell based on sdp if encryption should be frame or packet, and for packet level encryption you want to use media specific packetization.

@youennf youennf force-pushed the sframe-packetization-integration branch from c493da4 to e2eb006 Compare February 4, 2026 13:41
Comment thread index.bs
Comment on lines +214 to +217
1. Otherwise, run the following steps:
1. Question: should we always allow the case of setting back a transform to null?
1. If |transceiver|.`[[useSFrame]]` is true, throw a {{InvalidModificationError}} and abort these steps.
1. Set |transceiver|.`[[useSFrame]]` to false.
Copy link
Copy Markdown

@k-wasniowski k-wasniowski Feb 4, 2026

Choose a reason for hiding this comment

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

@youennf I don't remember what was the outcome of the W3C meeting in which disabling sframe was discussed. It was supposed to be possible to disable a sframe on the transceiver? Or rather if transceiver have once initiated sframe, it must remain in this state?

If the outcome was that we should be able to disable sframe for transceiver, the steps here shouldn't mention that both sender/receiver transforms should be set to null?

Also what would be the way for the RTCRtpTransceiver to disable sframe, which was negotiated via SDP, and doesnt have any transforms attached (both are null).

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

This was discussed during https://www.w3.org/2025/10/21-webrtc-minutes#981d
It seems easier to have a strict setup at first, to not have to deal with rollback et al.
When web app creates transceiver, web app has some limited amount of time to select sframe packetization or not.
Applications can create two transceivers, one with sframe and the other without, and switch between the two to send/receive media.

@youennf youennf force-pushed the sframe-packetization-integration branch from e2eb006 to 5ceaa3d Compare February 5, 2026 23:52
@dontcallmedom-bot
Copy link
Copy Markdown

This issue was discussed in WebRTC February 2026 meeting – 17 February 2026 (SFrame Update)

@youennf youennf force-pushed the sframe-packetization-integration branch from 5ceaa3d to 8e0930a Compare March 23, 2026 09:16
Comment thread index.bs Outdated
Co-authored-by: Jan-Ivar Bruaroey <jan-ivar@users.noreply.github.com>
Comment thread index.bs
@alvestrand alvestrand merged commit 1d0f17e into w3c:main Mar 26, 2026
2 checks passed
github-actions Bot added a commit that referenced this pull request Mar 26, 2026
SHA: 1d0f17e
Reason: push, by alvestrand

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants