Skip to content
This repository was archived by the owner on Oct 25, 2024. It is now read-only.

Commit bc7027d

Browse files
authored
Add design review for exposing RTCRtpTransceiver. (#317)
* Add design review for exposing RTCRtpTransceiver. * Address comments. - Don't allow publish a stream to multiple transceivers in one call. - Add a restriction that a transceiver can only be associated with a Publication or a Subscription.
1 parent 36da892 commit bc7027d

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# OWT SDK with WebRTC APIs
2+
## Introduction
3+
OWT(Open WebRTC Toolkit) Client SDKs provide convenient APIs to create, publish, and subscribe streams. Most of these APIs are wrappers of WebRTC APIs with signaling support. It helps WebRTC beginners easily involve WebRTC technology into their applications without too much knowledge of WebRTC evolution and browser differences. As WebRTC 1.0 is moving to PR, which means it is quite stable, we are planning to expose more WebRTC APIs to developers to enable advanced and custom usages with OWT.
4+
## WebRTC APIs
5+
### RTCRtpTransceiver, RTCRtpSender, RTCRtpReceiver
6+
#### Potential Usages
7+
- Replace a track in the middle of a call.
8+
- Set custom encoding parameters, perhaps for simulcast.
9+
- Set preferred codecs.
10+
- Disable or enable RTX / RED / FEC.
11+
#### API Changes
12+
- A new method `getSender` will be added to `Publication`. It returns an `RTCRtpSender` for certain `Publication`.
13+
- A new method `getReceiver` will be added to `Subscription`. It returns an `RTCRtpReceiver` for certain `Subscription`.
14+
- A new method `addTransceiver(DOMString trackKind, sequence<RTCRtpEncodingParameters> sendEncodings)` will be added to `ConferenceClient`. It invokes `RTCPeerConnection.addTransceiver(trackKind, {direction:inactive, sendEncodings:sendEncodings})`, returns an `RTCRtpTransceiver`. Please note that direction is `inactive` until a `publish` with return transceiver is called.
15+
- The second parameter of `ConferenceClient.publish` accepts an `RTCRtpTransceiver` created by `RTCPeerConnection.addTransceiver`. When this method is called, certain `RTCRtpTransceiver`'s direction is changed to `sendonly`, and its sender's `setStreams` is called with the first parameter's `mediaStream`.
16+
#### Server Requirements
17+
- `addTransceiver` and new `publish` needs renegotiation support.
18+
#### Remarks
19+
- Every transceiver could be associated with at most one `Publication` or one `Subscription`.

0 commit comments

Comments
 (0)