livekit-client 2.14.0 → 2.15.1

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.
Files changed (31) hide show
  1. package/dist/livekit-client.e2ee.worker.js.map +1 -1
  2. package/dist/livekit-client.e2ee.worker.mjs.map +1 -1
  3. package/dist/livekit-client.esm.mjs +96 -33
  4. package/dist/livekit-client.esm.mjs.map +1 -1
  5. package/dist/livekit-client.umd.js +1 -1
  6. package/dist/livekit-client.umd.js.map +1 -1
  7. package/dist/src/room/PCTransport.d.ts.map +1 -1
  8. package/dist/src/room/Room.d.ts.map +1 -1
  9. package/dist/src/room/participant/RemoteParticipant.d.ts.map +1 -1
  10. package/dist/src/room/participant/publishUtils.d.ts.map +1 -1
  11. package/dist/src/room/track/RemoteTrackPublication.d.ts +12 -3
  12. package/dist/src/room/track/RemoteTrackPublication.d.ts.map +1 -1
  13. package/dist/src/room/track/options.d.ts +1 -1
  14. package/dist/src/room/track/options.d.ts.map +1 -1
  15. package/dist/src/room/track/utils.d.ts +3 -1
  16. package/dist/src/room/track/utils.d.ts.map +1 -1
  17. package/dist/src/room/utils.d.ts +1 -0
  18. package/dist/src/room/utils.d.ts.map +1 -1
  19. package/dist/ts4.2/src/room/track/RemoteTrackPublication.d.ts +12 -3
  20. package/dist/ts4.2/src/room/track/options.d.ts +2 -1
  21. package/dist/ts4.2/src/room/track/utils.d.ts +3 -1
  22. package/dist/ts4.2/src/room/utils.d.ts +1 -0
  23. package/package.json +11 -11
  24. package/src/room/PCTransport.ts +3 -4
  25. package/src/room/Room.ts +2 -0
  26. package/src/room/participant/RemoteParticipant.ts +1 -0
  27. package/src/room/participant/publishUtils.ts +1 -0
  28. package/src/room/track/RemoteTrackPublication.ts +91 -32
  29. package/src/room/track/options.ts +1 -1
  30. package/src/room/track/utils.ts +12 -1
  31. package/src/room/utils.ts +18 -0
@@ -1,4 +1,4 @@
1
- import { TrackPublishedResponse, TrackSource } from '@livekit/protocol';
1
+ import { TrackInfo, TrackPublishedResponse, TrackSource, VideoQuality } from '@livekit/protocol';
2
2
  import type { AudioProcessorOptions, TrackProcessor, VideoProcessorOptions } from '../..';
3
3
  import { cloneDeep } from '../../utils/cloneDeep';
4
4
  import { isSafari, sleep } from '../utils';
@@ -329,3 +329,14 @@ export function getTrackSourceFromProto(source: TrackSource): Track.Source {
329
329
  return Track.Source.Unknown;
330
330
  }
331
331
  }
332
+
333
+ export function areDimensionsSmaller(a: Track.Dimensions, b: Track.Dimensions): boolean {
334
+ return a.width * a.height < b.width * b.height;
335
+ }
336
+
337
+ export function layerDimensionsFor(
338
+ trackInfo: TrackInfo,
339
+ quality: VideoQuality,
340
+ ): Track.Dimensions | undefined {
341
+ return trackInfo.layers?.find((l) => l.quality === quality);
342
+ }
package/src/room/utils.ts CHANGED
@@ -118,6 +118,24 @@ export function supportsVP9(): boolean {
118
118
  return hasVP9;
119
119
  }
120
120
 
121
+ export function supportsH265(): boolean {
122
+ if (!('getCapabilities' in RTCRtpSender)) {
123
+ return false;
124
+ }
125
+
126
+ const capabilities = RTCRtpSender.getCapabilities('video');
127
+ let hasH265 = false;
128
+ if (capabilities) {
129
+ for (const codec of capabilities.codecs) {
130
+ if (codec.mimeType === 'video/H265') {
131
+ hasH265 = true;
132
+ break;
133
+ }
134
+ }
135
+ }
136
+ return hasH265;
137
+ }
138
+
121
139
  export function isSVCCodec(codec?: string): boolean {
122
140
  return codec === 'av1' || codec === 'vp9';
123
141
  }