Skip to content

Commit

Permalink
Add bindings for the WebRTC Encoded Transform API (#4125)
Browse files Browse the repository at this point in the history
  • Loading branch information
rozbb authored Sep 28, 2024
1 parent 1ebbfc0 commit 532f30a
Show file tree
Hide file tree
Showing 24 changed files with 1,956 additions and 0 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@
* Added experimental support for `Symbol.dispose` via `WASM_BINDGEN_EXPERIMENTAL_SYMBOL_DISPOSE`.
[#4118](https://github.com/rustwasm/wasm-bindgen/pull/4118)

* Added bindings for the draft [WebRTC Encoded Transform](https://www.w3.org/TR/webrtc-encoded-transform) spec.
[#4125](https://github.com/rustwasm/wasm-bindgen/pull/4125)

### Fixed

* Fixed linked modules emitting snippet files when not using `--split-linked-modules`.
Expand Down
17 changes: 17 additions & 0 deletions crates/web-sys/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -768,6 +768,7 @@ IterationCompositeOperation = []
JsonWebKey = []
KeyAlgorithm = []
KeyEvent = []
KeyFrameRequestEvent = ["Event"]
KeyIdsInitData = []
KeyboardEvent = ["Event", "UiEvent"]
KeyboardEventInit = []
Expand Down Expand Up @@ -1114,6 +1115,13 @@ RtcDataChannelInit = []
RtcDataChannelState = []
RtcDataChannelType = []
RtcDegradationPreference = []
RtcEncodedAudioFrame = []
RtcEncodedAudioFrameMetadata = []
RtcEncodedAudioFrameOptions = []
RtcEncodedVideoFrame = []
RtcEncodedVideoFrameMetadata = []
RtcEncodedVideoFrameOptions = []
RtcEncodedVideoFrameType = []
RtcFecParameters = []
RtcIceCandidate = []
RtcIceCandidateInit = []
Expand Down Expand Up @@ -1154,6 +1162,8 @@ RtcRtpHeaderExtensionCapability = []
RtcRtpHeaderExtensionParameters = []
RtcRtpParameters = []
RtcRtpReceiver = []
RtcRtpScriptTransform = []
RtcRtpScriptTransformer = ["EventTarget"]
RtcRtpSender = []
RtcRtpSourceEntry = []
RtcRtpSourceEntryType = []
Expand All @@ -1174,12 +1184,19 @@ RtcStatsReportInternal = []
RtcStatsType = []
RtcTrackEvent = ["Event"]
RtcTrackEventInit = []
RtcTransformEvent = ["Event"]
RtcTransportStats = []
RtcdtmfSender = ["EventTarget"]
RtcdtmfToneChangeEvent = ["Event"]
RtcdtmfToneChangeEventInit = []
RtcrtpContributingSourceStats = []
RtcrtpStreamStats = []
SFrameTransform = ["EventTarget"]
SFrameTransformErrorEvent = ["Event"]
SFrameTransformErrorEventInit = []
SFrameTransformErrorEventType = []
SFrameTransformOptions = []
SFrameTransformRole = []
SaveFilePickerOptions = []
Scheduler = []
SchedulerPostTaskOptions = []
Expand Down
25 changes: 25 additions & 0 deletions crates/web-sys/src/features/gen_DedicatedWorkerGlobalScope.rs
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,31 @@ extern "C" {
this: &DedicatedWorkerGlobalScope,
value: Option<&::js_sys::Function>,
);
#[cfg(web_sys_unstable_apis)]
# [wasm_bindgen (structural , method , getter , js_class = "DedicatedWorkerGlobalScope" , js_name = onrtctransform)]
#[doc = "Getter for the `onrtctransform` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/DedicatedWorkerGlobalScope/onrtctransform)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `DedicatedWorkerGlobalScope`*"]
#[doc = ""]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub fn onrtctransform(this: &DedicatedWorkerGlobalScope) -> Option<::js_sys::Function>;
#[cfg(web_sys_unstable_apis)]
# [wasm_bindgen (structural , method , setter , js_class = "DedicatedWorkerGlobalScope" , js_name = onrtctransform)]
#[doc = "Setter for the `onrtctransform` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/DedicatedWorkerGlobalScope/onrtctransform)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `DedicatedWorkerGlobalScope`*"]
#[doc = ""]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub fn set_onrtctransform(
this: &DedicatedWorkerGlobalScope,
value: Option<&::js_sys::Function>,
);
# [wasm_bindgen (method , structural , js_class = "DedicatedWorkerGlobalScope" , js_name = close)]
#[doc = "The `close()` method."]
#[doc = ""]
Expand Down
52 changes: 52 additions & 0 deletions crates/web-sys/src/features/gen_KeyFrameRequestEvent.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
#![allow(unused_imports)]
#![allow(clippy::all)]
use super::*;
use wasm_bindgen::prelude::*;
#[cfg(web_sys_unstable_apis)]
#[wasm_bindgen]
extern "C" {
# [wasm_bindgen (extends = Event , extends = :: js_sys :: Object , js_name = KeyFrameRequestEvent , typescript_type = "KeyFrameRequestEvent")]
#[derive(Debug, Clone, PartialEq, Eq)]
#[doc = "The `KeyFrameRequestEvent` class."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/KeyFrameRequestEvent)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `KeyFrameRequestEvent`*"]
#[doc = ""]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub type KeyFrameRequestEvent;
#[cfg(web_sys_unstable_apis)]
# [wasm_bindgen (structural , method , getter , js_class = "KeyFrameRequestEvent" , js_name = rid)]
#[doc = "Getter for the `rid` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/KeyFrameRequestEvent/rid)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `KeyFrameRequestEvent`*"]
#[doc = ""]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub fn rid(this: &KeyFrameRequestEvent) -> Option<String>;
#[cfg(web_sys_unstable_apis)]
#[wasm_bindgen(catch, constructor, js_class = "KeyFrameRequestEvent")]
#[doc = "The `new KeyFrameRequestEvent(..)` constructor, creating a new instance of `KeyFrameRequestEvent`."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/KeyFrameRequestEvent/KeyFrameRequestEvent)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `KeyFrameRequestEvent`*"]
#[doc = ""]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub fn new(type_: &str) -> Result<KeyFrameRequestEvent, JsValue>;
#[cfg(web_sys_unstable_apis)]
#[wasm_bindgen(catch, constructor, js_class = "KeyFrameRequestEvent")]
#[doc = "The `new KeyFrameRequestEvent(..)` constructor, creating a new instance of `KeyFrameRequestEvent`."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/KeyFrameRequestEvent/KeyFrameRequestEvent)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `KeyFrameRequestEvent`*"]
#[doc = ""]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub fn new_with_rid(type_: &str, rid: &str) -> Result<KeyFrameRequestEvent, JsValue>;
}
79 changes: 79 additions & 0 deletions crates/web-sys/src/features/gen_RtcEncodedAudioFrame.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
#![allow(unused_imports)]
#![allow(clippy::all)]
use super::*;
use wasm_bindgen::prelude::*;
#[cfg(web_sys_unstable_apis)]
#[wasm_bindgen]
extern "C" {
# [wasm_bindgen (extends = :: js_sys :: Object , js_name = RTCEncodedAudioFrame , typescript_type = "RTCEncodedAudioFrame")]
#[derive(Debug, Clone, PartialEq, Eq)]
#[doc = "The `RtcEncodedAudioFrame` class."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/RTCEncodedAudioFrame)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `RtcEncodedAudioFrame`*"]
#[doc = ""]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub type RtcEncodedAudioFrame;
#[cfg(web_sys_unstable_apis)]
# [wasm_bindgen (structural , method , getter , js_class = "RTCEncodedAudioFrame" , js_name = data)]
#[doc = "Getter for the `data` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/RTCEncodedAudioFrame/data)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `RtcEncodedAudioFrame`*"]
#[doc = ""]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub fn data(this: &RtcEncodedAudioFrame) -> ::js_sys::ArrayBuffer;
#[cfg(web_sys_unstable_apis)]
# [wasm_bindgen (structural , method , setter , js_class = "RTCEncodedAudioFrame" , js_name = data)]
#[doc = "Setter for the `data` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/RTCEncodedAudioFrame/data)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `RtcEncodedAudioFrame`*"]
#[doc = ""]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub fn set_data(this: &RtcEncodedAudioFrame, value: &::js_sys::ArrayBuffer);
#[cfg(web_sys_unstable_apis)]
#[wasm_bindgen(catch, constructor, js_class = "RTCEncodedAudioFrame")]
#[doc = "The `new RtcEncodedAudioFrame(..)` constructor, creating a new instance of `RtcEncodedAudioFrame`."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/RTCEncodedAudioFrame/RTCEncodedAudioFrame)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `RtcEncodedAudioFrame`*"]
#[doc = ""]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub fn new(original_frame: &RtcEncodedAudioFrame) -> Result<RtcEncodedAudioFrame, JsValue>;
#[cfg(web_sys_unstable_apis)]
#[cfg(feature = "RtcEncodedAudioFrameOptions")]
#[wasm_bindgen(catch, constructor, js_class = "RTCEncodedAudioFrame")]
#[doc = "The `new RtcEncodedAudioFrame(..)` constructor, creating a new instance of `RtcEncodedAudioFrame`."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/RTCEncodedAudioFrame/RTCEncodedAudioFrame)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `RtcEncodedAudioFrame`, `RtcEncodedAudioFrameOptions`*"]
#[doc = ""]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub fn new_with_options(
original_frame: &RtcEncodedAudioFrame,
options: &RtcEncodedAudioFrameOptions,
) -> Result<RtcEncodedAudioFrame, JsValue>;
#[cfg(web_sys_unstable_apis)]
#[cfg(feature = "RtcEncodedAudioFrameMetadata")]
# [wasm_bindgen (method , structural , js_class = "RTCEncodedAudioFrame" , js_name = getMetadata)]
#[doc = "The `getMetadata()` method."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/RTCEncodedAudioFrame/getMetadata)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `RtcEncodedAudioFrame`, `RtcEncodedAudioFrameMetadata`*"]
#[doc = ""]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub fn get_metadata(this: &RtcEncodedAudioFrame) -> RtcEncodedAudioFrameMetadata;
}
Loading

0 comments on commit 532f30a

Please sign in to comment.