[webrtc-encoded-transform] SFrameTransform interface has two heads (#262)

jan-ivar has just created a new issue for https://github.com/w3c/webrtc-encoded-transform:

== SFrameTransform interface has two heads ==
The [SFrameTransform](https://w3c.github.io/webrtc-encoded-transform/#sframetransform) interface appears to have been designed with two disparate uses in mind:

1. in place of a RTCRtpScriptTransform:
   ```js
   transceiver.sender.transform = new SFrameTransform;
   ```
 2. as a [builtin TransformStream](https://streams.spec.whatwg.org/#generictransformstream):
    ```js
    onrtctransform = async ({transformer: {readable, writable}}) => {
      await readable.pipeThrough(new SFrameTransform({role: "encrypt"})).pipeTo(writable);
    };
    ```

These are entirely different uses that arguably should be two different interfaces. 

For instance, web developers shouldn't have to figure out what this means:
```js
await readable.pipeThrough(transceiver.sender.transform).pipeTo(writable); // what does this do?
```

A RTCRtpScriptTransform, in contrast, has no stream-like properties on main-thread.

Unfortunately, the current spec conflates two "transform" concepts, making this hard to see. But https://github.com/w3c/webrtc-encoded-transform/issues/229 should clear this up.

Please view or discuss this issue at https://github.com/w3c/webrtc-encoded-transform/issues/262 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Tuesday, 17 June 2025 21:16:15 UTC