@microsoft/teams-js 2.26.0-beta.0 → 2.26.0-beta.1
Sign up to get free protection for your applications and to get access to all the features.
package/dist/MicrosoftTeams.d.ts
CHANGED
@@ -2756,6 +2756,15 @@ export namespace videoEffectsEx {
|
|
2756
2756
|
* Limited to Microsoft-internal use
|
2757
2757
|
*/
|
2758
2758
|
audioInferenceModel?: ArrayBuffer;
|
2759
|
+
/**
|
2760
|
+
* @hidden
|
2761
|
+
* Specifies additional capabilities that should be applied to the video frame
|
2762
|
+
* @beta
|
2763
|
+
*
|
2764
|
+
* @internal
|
2765
|
+
* Limited to Microsoft-internal use
|
2766
|
+
*/
|
2767
|
+
requiredCapabilities?: string[];
|
2759
2768
|
}
|
2760
2769
|
/**
|
2761
2770
|
* @hidden
|
@@ -2806,6 +2815,15 @@ export namespace videoEffectsEx {
|
|
2806
2815
|
* Limited to Microsoft-internal use
|
2807
2816
|
*/
|
2808
2817
|
audioInferenceResult?: Uint8Array;
|
2818
|
+
/**
|
2819
|
+
* @hidden
|
2820
|
+
* Additional metadata determined by capabilities specified in {@linkcode VideoFrameConfig.requiredCapabilities}
|
2821
|
+
* @beta
|
2822
|
+
*
|
2823
|
+
* @internal
|
2824
|
+
* Limited to Microsoft-internal use
|
2825
|
+
*/
|
2826
|
+
attributes?: ReadonlyMap<string, Uint8Array>;
|
2809
2827
|
};
|
2810
2828
|
/**
|
2811
2829
|
* @hidden
|
package/dist/MicrosoftTeams.js
CHANGED
@@ -1130,7 +1130,7 @@ function isFollowingApiVersionTagFormat(apiVersionTag) {
|
|
1130
1130
|
}
|
1131
1131
|
|
1132
1132
|
;// CONCATENATED MODULE: ./src/artifactsForCDN/validDomains.json
|
1133
|
-
const validDomains_namespaceObject = /*#__PURE__*/JSON.parse('{"validOrigins":["teams.microsoft.com","teams.microsoft.us","gov.teams.microsoft.us","dod.teams.microsoft.us","int.teams.microsoft.com","outlook.office.com","outlook-sdf.office.com","outlook.office365.com","outlook-sdf.office365.com","outlook.live.com","outlook-sdf.live.com","teams.live.com","local.teams.live.com","local.teams.live.com:8080","local.teams.office.com","local.teams.office.com:8080","devspaces.skype.com","*.www.office.com","www.office.com","word.office.com","excel.office.com","powerpoint.office.com","www.officeppe.com","*.www.microsoft365.com","www.microsoft365.com","bing.com","edgeservices.bing.com","www.bing.com","www.staging-bing-int.com","
|
1133
|
+
const validDomains_namespaceObject = /*#__PURE__*/JSON.parse('{"validOrigins":["teams.microsoft.com","teams.microsoft.us","gov.teams.microsoft.us","dod.teams.microsoft.us","int.teams.microsoft.com","outlook.office.com","outlook-sdf.office.com","outlook.office365.com","outlook-sdf.office365.com","outlook.live.com","outlook-sdf.live.com","teams.live.com","local.teams.live.com","local.teams.live.com:8080","local.teams.office.com","local.teams.office.com:8080","devspaces.skype.com","*.www.office.com","www.office.com","word.office.com","excel.office.com","powerpoint.office.com","www.officeppe.com","*.www.microsoft365.com","www.microsoft365.com","bing.com","edgeservices.bing.com","www.bing.com","www.staging-bing-int.com","*.cloud.microsoft","copilot.microsoft.com","windows.msn.com","fa000000125.resources.office.net","fa000000129.resources.office.net","fa000000124.resources.office.net","fa000000128.resources.office.net","fa000000136.resources.office.net"]}');
|
1134
1134
|
var artifactsForCDN_validDomains_namespaceObject = /*#__PURE__*/__webpack_require__.t(validDomains_namespaceObject, 2);
|
1135
1135
|
;// CONCATENATED MODULE: ./src/internal/constants.ts
|
1136
1136
|
|
@@ -3395,7 +3395,7 @@ const _minRuntimeConfigToUninitialize = {
|
|
3395
3395
|
* @hidden
|
3396
3396
|
* Package version.
|
3397
3397
|
*/
|
3398
|
-
const version = "2.26.0-beta.
|
3398
|
+
const version = "2.26.0-beta.1";
|
3399
3399
|
|
3400
3400
|
;// CONCATENATED MODULE: ./src/internal/internalAPIs.ts
|
3401
3401
|
|
@@ -3553,11 +3553,11 @@ function prefetchOriginsFromCDN() {
|
|
3553
3553
|
});
|
3554
3554
|
}
|
3555
3555
|
function isValidOriginsCacheEmpty() {
|
3556
|
-
return validOriginsCache.length
|
3556
|
+
return validOriginsCache.length === 0;
|
3557
3557
|
}
|
3558
3558
|
function getValidOriginsListFromCDN() {
|
3559
3559
|
return __awaiter(this, void 0, void 0, function* () {
|
3560
|
-
if (isValidOriginsCacheEmpty()) {
|
3560
|
+
if (!isValidOriginsCacheEmpty()) {
|
3561
3561
|
return validOriginsCache;
|
3562
3562
|
}
|
3563
3563
|
if (!inServerSideRenderingEnvironment()) {
|
@@ -10356,6 +10356,7 @@ class OneTextureMetadata {
|
|
10356
10356
|
// Stream id for audio inference metadata, which is the 4-byte ASCII string "1dia" hardcoded by the host
|
10357
10357
|
// (1dia stands for "audio inference data version 1")
|
10358
10358
|
this.AUDIO_INFERENCE_RESULT_STREAM_ID = 0x31646961;
|
10359
|
+
this.ATTRIBUTE_ID_MAP_STREAM_ID = 0x4d444941;
|
10359
10360
|
const metadataDataView = new Uint32Array(metadataBuffer);
|
10360
10361
|
for (let i = 0, index = 0; i < streamCount; i++) {
|
10361
10362
|
const streamId = metadataDataView[index++];
|
@@ -10368,6 +10369,48 @@ class OneTextureMetadata {
|
|
10368
10369
|
get audioInferenceResult() {
|
10369
10370
|
return this.metadataMap.get(this.AUDIO_INFERENCE_RESULT_STREAM_ID);
|
10370
10371
|
}
|
10372
|
+
/**
|
10373
|
+
* @hidden
|
10374
|
+
* Additional attributes on the video frame are string-indexed, with their stream Id dynamically generated.
|
10375
|
+
* The mapping of attribute Ids to their stream Ids is itself stored as frame metadata with layout:
|
10376
|
+
*
|
10377
|
+
* | attribute count | attribute stream Id | attribute id | ... |
|
10378
|
+
* | :---: | :---: | :---: | :---: |
|
10379
|
+
* | 4 bytes | 4 bytes | variable length string (null terminated, 4 byte aligned) | ... |
|
10380
|
+
*
|
10381
|
+
*
|
10382
|
+
* @internal
|
10383
|
+
* Limited to Microsoft-internal use
|
10384
|
+
*/
|
10385
|
+
get attributes() {
|
10386
|
+
const data = this.metadataMap.get(this.ATTRIBUTE_ID_MAP_STREAM_ID);
|
10387
|
+
if (data === undefined) {
|
10388
|
+
return undefined;
|
10389
|
+
}
|
10390
|
+
const map = new Map();
|
10391
|
+
const textDecoder = new TextDecoder('utf-8');
|
10392
|
+
let offset = 0;
|
10393
|
+
const count = data[offset] + (data[++offset] << 8) + (data[++offset] << 16) + (data[++offset] << 24);
|
10394
|
+
for (let i = 0; i < count && offset < data.length - 1; i++) {
|
10395
|
+
const streamId = data[++offset] + (data[++offset] << 8) + (data[++offset] << 16) + (data[++offset] << 24);
|
10396
|
+
// Find start of null-terminator for the subsequent variable-length string entry
|
10397
|
+
const nullTerminatorStartIndex = data.findIndex((value, index, _) => {
|
10398
|
+
return value == 0 && index > offset;
|
10399
|
+
});
|
10400
|
+
const attributeId = textDecoder.decode(data.slice(++offset, nullTerminatorStartIndex));
|
10401
|
+
// Read attribute value from metadata map
|
10402
|
+
const metadata = this.metadataMap.get(streamId);
|
10403
|
+
if (metadata !== undefined) {
|
10404
|
+
map.set(attributeId, metadata);
|
10405
|
+
}
|
10406
|
+
// Variable length attribute Id strings are null-terminated to a 4-byte alignment
|
10407
|
+
const stringByteLength = nullTerminatorStartIndex - offset;
|
10408
|
+
const paddingSize = 4 - (stringByteLength % 4);
|
10409
|
+
// Set offset to index of last trailing zero
|
10410
|
+
offset = nullTerminatorStartIndex + (paddingSize - 1);
|
10411
|
+
}
|
10412
|
+
return map;
|
10413
|
+
}
|
10371
10414
|
}
|
10372
10415
|
class TransformerWithMetadata {
|
10373
10416
|
constructor(notifyError, videoFrameHandler) {
|
@@ -10378,8 +10421,8 @@ class TransformerWithMetadata {
|
|
10378
10421
|
const timestamp = originalFrame.timestamp;
|
10379
10422
|
if (timestamp !== null) {
|
10380
10423
|
try {
|
10381
|
-
const { videoFrame, metadata: { audioInferenceResult } = {} } = yield this.extractVideoFrameAndMetadata(originalFrame);
|
10382
|
-
const frameProcessedByApp = yield this.videoFrameHandler({ videoFrame, audioInferenceResult });
|
10424
|
+
const { videoFrame, metadata: { audioInferenceResult, attributes } = {} } = yield this.extractVideoFrameAndMetadata(originalFrame);
|
10425
|
+
const frameProcessedByApp = yield this.videoFrameHandler({ videoFrame, audioInferenceResult, attributes });
|
10383
10426
|
// the current typescript version(4.6.4) dosn't support webcodecs API fully, we have to do type conversion here.
|
10384
10427
|
const processedFrame = new VideoFrame(frameProcessedByApp, {
|
10385
10428
|
// we need the timestamp to be unchanged from the oirginal frame, so we explicitly set it here.
|
@@ -10476,6 +10519,7 @@ class TransformerWithMetadata {
|
|
10476
10519
|
}),
|
10477
10520
|
metadata: {
|
10478
10521
|
audioInferenceResult: this.shouldDiscardAudioInferenceResult ? undefined : metadata.audioInferenceResult,
|
10522
|
+
attributes: metadata.attributes,
|
10479
10523
|
},
|
10480
10524
|
};
|
10481
10525
|
});
|