twilio-video 2.29.0-preview.1 → 2.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,16 +2,26 @@ The Twilio Programmable Video SDKs use [Semantic Versioning](http://www.semver.o
2
2
 
3
3
  **Version 1.x reached End of Life on September 8th, 2021.** See the changelog entry [here](https://www.twilio.com/changelog/end-of-life-complete-for-unsupported-versions-of-the-programmable-video-sdk). Support for the 1.x version ended on December 4th, 2020.
4
4
 
5
- 2.29.0-preview.1 (August 13, 2024)
6
- ==================================
5
+ 2.29.0 (December 5, 2024)
6
+ ================================
7
7
 
8
8
  Changes
9
9
  -------
10
10
 
11
+ ### Video Processor V3 support (Beta)
12
+ - `AddProcessorOptions.outputFrameBufferContextType = 'bitmaprenderer'` is now supported on Safari and Firefox. (VBLOCKS-3643, VBLOCKS-3644)
11
13
  - `AddProcessorOptions.inputFrameBufferType` now has a new value `videoframe`. On browsers that support [`VideoFrame`](https://developer.mozilla.org/en-US/docs/Web/API/VideoFrame), the `inputFrameBuffer` argument of [`VideoProcessor.processFrame()`](https://twilio.github.io/twilio-video-processors.js/classes/VirtualBackgroundProcessor.html#processFrame) will be a `VideoFrame`. On other supported browsers, it will be an `HTMLVideoElement`.
12
14
  - `AddProcessorOptions.outputFrameBufferContextType` now has a new value `bitmaprenderer`. Currently, this is only **supported for Chromium-based browsers**. On other supported browsers, it falls back to `2d`.
13
15
  - Patched the build script to work around the issue: https://github.com/markdown-it/linkify-it/issues/111.
14
16
 
17
+ 2.28.2 (November 22, 2024)
18
+ ==========================
19
+
20
+ Bug Fixes
21
+ ---------
22
+
23
+ - Fixed a bug in Desktop Safari 18 and all iOS browsers on iOS 18 where cloning a disabled `MediaStreamTrack` would incorrectly set the `enabled` property to `true` instead of preserving the original disabled state. This ensures track cloning behavior matches the MediaStreamTrack specification and works consistently across browsers. Bug report: https://bugs.webkit.org/show_bug.cgi?id=281758
24
+
15
25
  2.28.1 (October 3, 2023)
16
26
  ========================
17
27
 
package/LICENSE.md CHANGED
@@ -1,7 +1,7 @@
1
1
  The following license applies to all parts of this software except as
2
2
  documented below.
3
3
 
4
- Copyright (C) 2019-2022 Twilio, inc.
4
+ Copyright (C) 2019-2025 Twilio, inc.
5
5
  All rights reserved.
6
6
 
7
7
  Redistribution and use in source and binary forms, with or without
package/README.md CHANGED
@@ -3,10 +3,6 @@ twilio-video.js
3
3
 
4
4
  [![NPM](https://img.shields.io/npm/v/twilio-video.svg)](https://www.npmjs.com/package/twilio-video) [![CircleCI](https://circleci.com/gh/twilio/twilio-video.js/tree/master.svg?style=svg&circle-token=80e91c8284c21ff16d3003702e17b903c0b32f1d)](https://circleci.com/gh/twilio/twilio-video.js/tree/master)
5
5
 
6
- > [!WARNING]
7
- > We are no longer allowing new customers to onboard to Twilio Video. Effective **December 5th, 2026**, Twilio Video will End of Life (EOL) and will cease to function for all customers. Customers may transition to any video provider they choose, however, we are recommending customers migrate to the Zoom Video SDK and we have prepared a [Migration Guide](https://developers.zoom.us/docs/video-sdk/twilio/). Additional information on this EOL is available in our Help Center [here](https://help.twilio.com/articles/24158233644443-Programmable-Video-End-of-Life-Extension).
8
-
9
-
10
6
  twilio-video.js allows you to add real-time voice and video to your web apps.
11
7
 
12
8
  * [API Docs](//sdk.twilio.com/js/video/latest/docs)
@@ -78,7 +74,7 @@ Releases of twilio-video.js are hosted on a CDN, and you can include these
78
74
  directly in your web app using a <script> tag.
79
75
 
80
76
  ```html
81
- <script src="//sdk.twilio.com/js/video/releases/2.28.1/twilio-video.min.js"></script>
77
+ <script src="//sdk.twilio.com/js/video/releases/2.29.0/twilio-video.min.js"></script>
82
78
  ```
83
79
 
84
80
  Using this method, twilio-video.js will set a browser global:
@@ -1,9 +1,9 @@
1
- /*! twilio-video.js 2.29.0-preview.1
1
+ /*! twilio-video.js 2.29.0
2
2
 
3
3
  The following license applies to all parts of this software except as
4
4
  documented below.
5
5
 
6
- Copyright (C) 2019-2022 Twilio, inc.
6
+ Copyright (C) 2019-2025 Twilio, inc.
7
7
  All rights reserved.
8
8
 
9
9
  Redistribution and use in source and binary forms, with or without
@@ -7517,13 +7517,6 @@ var VideoTrack = /** @class */ (function (_super) {
7517
7517
  // that the correct type is used and on Firefox, it throws an exception if you try to capture
7518
7518
  // frames prior calling getContext https://bugzilla.mozilla.org/show_bug.cgi?id=1572422
7519
7519
  outputFrameBufferContextType = outputFrameBufferContextType || '2d';
7520
- // NOTE(mmalavalli): For now, we support bitmaprenderer context type only on Chrome.
7521
- // On other browsers, it will fall back to "2d".
7522
- if (outputFrameBufferContextType === 'bitmaprenderer' && guessBrowser() !== 'chrome') {
7523
- this._log.warn('outputFrameBufferContextType = "bitmaprenderer" is not supported by '
7524
- + 'the SDK for this browser, falling back to "2d".');
7525
- outputFrameBufferContextType = '2d';
7526
- }
7527
7520
  var ctx = this._outputFrame.getContext(outputFrameBufferContextType);
7528
7521
  if (!ctx) {
7529
7522
  throw new Error("Cannot get outputFrameBufferContextType: " + outputFrameBufferContextType + ".");
@@ -7763,8 +7756,7 @@ function dimensionsChanged(track, elem) {
7763
7756
  * that your Video Processor uses in order to properly generate the processed track. For example, if your Video Processor uses WebGL2 (`canvas.getContext('webgl2')`),
7764
7757
  * you should set `outputFrameBufferContextType` to `webgl2`. If you're using Canvas 2D processing (`canvas.getContext('2d')`),
7765
7758
  * you should set `outputFrameBufferContextType` to `2d`. If the output frame is an [ImageBitmap](https://developer.mozilla.org/en-US/docs/Web/API/ImageBitmap),
7766
- * you should set `outputFrameBufferContextType` to `bitmaprenderer`. For now, this is supported only on Chrome. On other
7767
- * browsers, it will fall back to `2d`.
7759
+ * you should set `outputFrameBufferContextType` to `bitmaprenderer`.
7768
7760
  */
7769
7761
  /**
7770
7762
  * The {@link VideoTrack}'s dimensions changed.
@@ -11040,7 +11032,14 @@ var LocalTrackPublicationSignaling = /** @class */ (function (_super) {
11040
11032
  */
11041
11033
  function LocalTrackPublicationSignaling(trackSender, name, priority) {
11042
11034
  var _this = this;
11043
- trackSender = trackSender.clone();
11035
+ // NOTE(lrivas): Safely clone a media stream track while preserving the original
11036
+ // enabled state. This is needed because Safari 18 incorrectly enables tracks
11037
+ // during cloning. Bug report: https://bugs.webkit.org/show_bug.cgi?id=281758
11038
+ var clonedTrackSender = trackSender.clone();
11039
+ if (trackSender.kind !== 'data') {
11040
+ clonedTrackSender.track.enabled = trackSender.track.enabled;
11041
+ }
11042
+ trackSender = clonedTrackSender;
11044
11043
  var enabled = trackSender.kind === 'data' ? true : trackSender.track.enabled;
11045
11044
  _this = _super.call(this, name, trackSender.kind, enabled, priority) || this;
11046
11045
  _this.setTrackTransceiver(trackSender);
@@ -30257,7 +30256,7 @@ module.exports={
30257
30256
  "name": "twilio-video",
30258
30257
  "title": "Twilio Video",
30259
30258
  "description": "Twilio Video JavaScript Library",
30260
- "version": "2.29.0-preview.1",
30259
+ "version": "2.29.0",
30261
30260
  "homepage": "https://twilio.com",
30262
30261
  "author": "Mark Andrus Roberts <mroberts@twilio.com>",
30263
30262
  "contributors": [