@remotion/media-utils 3.0.0 → 3.0.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.
- package/.prettierrc.js +14 -0
- package/dist/get-audio-data.d.ts.map +1 -1
- package/dist/get-audio-data.js +26 -2
- package/dist/get-audio-data.js.map +1 -1
- package/dist/get-audio-duration.d.ts +10 -0
- package/dist/get-audio-duration.d.ts.map +1 -1
- package/dist/get-audio-duration.js +24 -2
- package/dist/get-audio-duration.js.map +1 -1
- package/dist/get-video-metadata.d.ts.map +1 -1
- package/dist/get-video-metadata.js +8 -2
- package/dist/get-video-metadata.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -5
- package/dist/index.js.map +1 -1
- package/dist/p-limit/index.d.ts +2 -0
- package/dist/p-limit/index.d.ts.map +1 -0
- package/dist/p-limit/index.js +63 -0
- package/dist/p-limit/index.js.map +1 -0
- package/dist/p-limit/queue.d.ts +10 -0
- package/dist/p-limit/queue.d.ts.map +1 -0
- package/dist/p-limit/queue.js +71 -0
- package/dist/p-limit/queue.js.map +1 -0
- package/dist/p-limit.d.ts +2 -0
- package/dist/p-limit.d.ts.map +1 -0
- package/dist/p-limit.js +58 -0
- package/dist/p-limit.js.map +1 -0
- package/dist/use-audio-data.d.ts +3 -0
- package/dist/use-audio-data.d.ts.map +1 -0
- package/dist/use-audio-data.js +34 -0
- package/dist/use-audio-data.js.map +1 -0
- package/package.json +4 -4
- package/.turbo/turbo-build.log +0 -5
- package/.turbo/turbo-lint.log +0 -11
- package/dist/create-smooth-svg-path.d.ts +0 -5
- package/dist/create-smooth-svg-path.d.ts.map +0 -1
- package/dist/create-smooth-svg-path.js +0 -30
- package/dist/create-smooth-svg-path.js.map +0 -1
- package/dist/smooth-path.d.ts +0 -5
- package/dist/smooth-path.d.ts.map +0 -1
- package/dist/smooth-path.js +0 -30
- package/dist/smooth-path.js.map +0 -1
- package/dist/visualize-audio-waveform.d.ts +0 -11
- package/dist/visualize-audio-waveform.d.ts.map +0 -1
- package/dist/visualize-audio-waveform.js +0 -34
- package/dist/visualize-audio-waveform.js.map +0 -1
package/.prettierrc.js
ADDED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-audio-data.d.ts","sourceRoot":"","sources":["../src/get-audio-data.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-audio-data.d.ts","sourceRoot":"","sources":["../src/get-audio-data.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AA2DlC,eAAO,MAAM,YAAY,QAAS,MAAM,uBAEvC,CAAC"}
|
package/dist/get-audio-data.js
CHANGED
|
@@ -2,13 +2,34 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getAudioData = void 0;
|
|
4
4
|
const is_remote_asset_1 = require("./is-remote-asset");
|
|
5
|
+
const p_limit_1 = require("./p-limit");
|
|
5
6
|
const metadataCache = {};
|
|
6
|
-
const
|
|
7
|
+
const limit = (0, p_limit_1.pLimit)(3);
|
|
8
|
+
const fetchWithCorsCatch = async (src) => {
|
|
9
|
+
try {
|
|
10
|
+
const response = await fetch(src);
|
|
11
|
+
return response;
|
|
12
|
+
}
|
|
13
|
+
catch (err) {
|
|
14
|
+
const error = err;
|
|
15
|
+
if (
|
|
16
|
+
// Chrome
|
|
17
|
+
error.message.includes('Failed to fetch') ||
|
|
18
|
+
// Safari
|
|
19
|
+
error.message.includes('Load failed') ||
|
|
20
|
+
// Firefox
|
|
21
|
+
error.message.includes('NetworkError when attempting to fetch resource')) {
|
|
22
|
+
throw new TypeError(`Failed to read from ${src}: ${error.message}. Does the resource support CORS?`);
|
|
23
|
+
}
|
|
24
|
+
throw err;
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
const fn = async (src) => {
|
|
7
28
|
if (metadataCache[src]) {
|
|
8
29
|
return metadataCache[src];
|
|
9
30
|
}
|
|
10
31
|
const audioContext = new AudioContext();
|
|
11
|
-
const response = await
|
|
32
|
+
const response = await fetchWithCorsCatch(src);
|
|
12
33
|
const arrayBuffer = await response.arrayBuffer();
|
|
13
34
|
const wave = await audioContext.decodeAudioData(arrayBuffer);
|
|
14
35
|
const channelWaveforms = new Array(wave.numberOfChannels)
|
|
@@ -27,5 +48,8 @@ const getAudioData = async (src) => {
|
|
|
27
48
|
metadataCache[src] = metadata;
|
|
28
49
|
return metadata;
|
|
29
50
|
};
|
|
51
|
+
const getAudioData = (src) => {
|
|
52
|
+
return limit(fn, src);
|
|
53
|
+
};
|
|
30
54
|
exports.getAudioData = getAudioData;
|
|
31
55
|
//# sourceMappingURL=get-audio-data.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-audio-data.js","sourceRoot":"","sources":["../src/get-audio-data.ts"],"names":[],"mappings":";;;AAAA,uDAAgD;
|
|
1
|
+
{"version":3,"file":"get-audio-data.js","sourceRoot":"","sources":["../src/get-audio-data.ts"],"names":[],"mappings":";;;AAAA,uDAAgD;AAChD,uCAAiC;AAGjC,MAAM,aAAa,GAA+B,EAAE,CAAC;AAErD,MAAM,KAAK,GAAG,IAAA,gBAAM,EAAC,CAAC,CAAC,CAAC;AAExB,MAAM,kBAAkB,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE;IAChD,IAAI;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,OAAO,QAAQ,CAAC;KAChB;IAAC,OAAO,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,GAAY,CAAC;QAC3B;QACC,SAAS;QACT,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACzC,SAAS;YACT,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;YACrC,UAAU;YACV,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,gDAAgD,CAAC,EACvE;YACD,MAAM,IAAI,SAAS,CAClB,uBAAuB,GAAG,KAAK,KAAK,CAAC,OAAO,mCAAmC,CAC/E,CAAC;SACF;QAED,MAAM,GAAG,CAAC;KACV;AACF,CAAC,CAAC;AAEF,MAAM,EAAE,GAAG,KAAK,EAAE,GAAW,EAAsB,EAAE;IACpD,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE;QACvB,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;KAC1B;IAED,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;IAExC,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;IAEjD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;IAE7D,MAAM,gBAAgB,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;SACvD,IAAI,CAAC,IAAI,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE;QACnB,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEJ,MAAM,QAAQ,GAAc;QAC3B,gBAAgB;QAChB,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,iBAAiB,EAAE,IAAI,CAAC,QAAQ;QAChC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC/B,QAAQ,EAAE,IAAA,+BAAa,EAAC,GAAG,CAAC;KAC5B,CAAC;IACF,aAAa,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;IAC9B,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC;AAEK,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE;IAC3C,OAAO,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC;AAFW,QAAA,YAAY,gBAEvB"}
|
|
@@ -1,2 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get the audio file passed in parameter duration in seconds
|
|
3
|
+
* @async
|
|
4
|
+
* @param src path to the audio file
|
|
5
|
+
* @return {number} duration of the audio file in seconds
|
|
6
|
+
*/
|
|
7
|
+
export declare const getAudioDurationInSeconds: (src: string) => Promise<number>;
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated Renamed to `getAudioDurationInSeconds`
|
|
10
|
+
*/
|
|
1
11
|
export declare const getAudioDuration: (src: string) => Promise<number>;
|
|
2
12
|
//# sourceMappingURL=get-audio-duration.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-audio-duration.d.ts","sourceRoot":"","sources":["../src/get-audio-duration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-audio-duration.d.ts","sourceRoot":"","sources":["../src/get-audio-duration.ts"],"names":[],"mappings":"AAoCA;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,QAAS,MAAM,oBAEpD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAS,MAAM,oBAAmC,CAAC"}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getAudioDuration = void 0;
|
|
4
|
-
const
|
|
3
|
+
exports.getAudioDuration = exports.getAudioDurationInSeconds = void 0;
|
|
4
|
+
const p_limit_1 = require("./p-limit");
|
|
5
|
+
const limit = (0, p_limit_1.pLimit)(3);
|
|
6
|
+
const metadataCache = {};
|
|
7
|
+
const fn = (src) => {
|
|
8
|
+
if (metadataCache[src]) {
|
|
9
|
+
return Promise.resolve(metadataCache[src]);
|
|
10
|
+
}
|
|
5
11
|
const audio = document.createElement('audio');
|
|
6
12
|
audio.src = src;
|
|
7
13
|
return new Promise((resolve, reject) => {
|
|
@@ -10,16 +16,32 @@ const getAudioDuration = (src) => {
|
|
|
10
16
|
cleanup();
|
|
11
17
|
};
|
|
12
18
|
const onLoadedMetadata = () => {
|
|
19
|
+
metadataCache[src] = audio.duration;
|
|
13
20
|
resolve(audio.duration);
|
|
14
21
|
cleanup();
|
|
15
22
|
};
|
|
16
23
|
const cleanup = () => {
|
|
17
24
|
audio.removeEventListener('loadedmetadata', onLoadedMetadata);
|
|
18
25
|
audio.removeEventListener('error', onError);
|
|
26
|
+
audio.remove();
|
|
19
27
|
};
|
|
20
28
|
audio.addEventListener('loadedmetadata', onLoadedMetadata, { once: true });
|
|
21
29
|
audio.addEventListener('error', onError, { once: true });
|
|
22
30
|
});
|
|
23
31
|
};
|
|
32
|
+
/**
|
|
33
|
+
* Get the audio file passed in parameter duration in seconds
|
|
34
|
+
* @async
|
|
35
|
+
* @param src path to the audio file
|
|
36
|
+
* @return {number} duration of the audio file in seconds
|
|
37
|
+
*/
|
|
38
|
+
const getAudioDurationInSeconds = (src) => {
|
|
39
|
+
return limit(fn, src);
|
|
40
|
+
};
|
|
41
|
+
exports.getAudioDurationInSeconds = getAudioDurationInSeconds;
|
|
42
|
+
/**
|
|
43
|
+
* @deprecated Renamed to `getAudioDurationInSeconds`
|
|
44
|
+
*/
|
|
45
|
+
const getAudioDuration = (src) => (0, exports.getAudioDurationInSeconds)(src);
|
|
24
46
|
exports.getAudioDuration = getAudioDuration;
|
|
25
47
|
//# sourceMappingURL=get-audio-duration.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-audio-duration.js","sourceRoot":"","sources":["../src/get-audio-duration.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"get-audio-duration.js","sourceRoot":"","sources":["../src/get-audio-duration.ts"],"names":[],"mappings":";;;AAAA,uCAAiC;AAEjC,MAAM,KAAK,GAAG,IAAA,gBAAM,EAAC,CAAC,CAAC,CAAC;AAExB,MAAM,aAAa,GAA4B,EAAE,CAAC;AAElD,MAAM,EAAE,GAAG,CAAC,GAAW,EAAmB,EAAE;IAC3C,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE;QACvB,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;KAC3C;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;IAChB,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC9C,MAAM,OAAO,GAAG,GAAG,EAAE;YACpB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,EAAE,CAAC;QACX,CAAC,CAAC;QAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE;YAC7B,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,EAAE,CAAC;QACX,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,GAAG,EAAE;YACpB,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;YAC9D,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC5C,KAAK,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC,CAAC;QAEF,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;QACzE,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;GAKG;AACI,MAAM,yBAAyB,GAAG,CAAC,GAAW,EAAE,EAAE;IACxD,OAAO,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC;AAFW,QAAA,yBAAyB,6BAEpC;AAEF;;GAEG;AACI,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAA,iCAAyB,EAAC,GAAG,CAAC,CAAC;AAAnE,QAAA,gBAAgB,oBAAmD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-video-metadata.d.ts","sourceRoot":"","sources":["../src/get-video-metadata.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-video-metadata.d.ts","sourceRoot":"","sources":["../src/get-video-metadata.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AA4CtC,eAAO,MAAM,gBAAgB,QAAS,MAAM,2BAE3C,CAAC"}
|
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getVideoMetadata = void 0;
|
|
4
4
|
const is_remote_asset_1 = require("./is-remote-asset");
|
|
5
|
+
const p_limit_1 = require("./p-limit");
|
|
5
6
|
const cache = {};
|
|
6
|
-
const
|
|
7
|
+
const limit = (0, p_limit_1.pLimit)(3);
|
|
8
|
+
const fn = (src) => {
|
|
7
9
|
if (cache[src]) {
|
|
8
|
-
return cache[src];
|
|
10
|
+
return Promise.resolve(cache[src]);
|
|
9
11
|
}
|
|
10
12
|
const video = document.createElement('video');
|
|
11
13
|
video.src = src;
|
|
@@ -29,10 +31,14 @@ const getVideoMetadata = async (src) => {
|
|
|
29
31
|
const cleanup = () => {
|
|
30
32
|
video.removeEventListener('loadedmetadata', onLoadedMetadata);
|
|
31
33
|
video.removeEventListener('error', onError);
|
|
34
|
+
video.remove();
|
|
32
35
|
};
|
|
33
36
|
video.addEventListener('loadedmetadata', onLoadedMetadata, { once: true });
|
|
34
37
|
video.addEventListener('error', onError, { once: true });
|
|
35
38
|
});
|
|
36
39
|
};
|
|
40
|
+
const getVideoMetadata = (src) => {
|
|
41
|
+
return limit(fn, src);
|
|
42
|
+
};
|
|
37
43
|
exports.getVideoMetadata = getVideoMetadata;
|
|
38
44
|
//# sourceMappingURL=get-video-metadata.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-video-metadata.js","sourceRoot":"","sources":["../src/get-video-metadata.ts"],"names":[],"mappings":";;;AAAA,uDAAgD;
|
|
1
|
+
{"version":3,"file":"get-video-metadata.js","sourceRoot":"","sources":["../src/get-video-metadata.ts"],"names":[],"mappings":";;;AAAA,uDAAgD;AAChD,uCAAiC;AAGjC,MAAM,KAAK,GAAmC,EAAE,CAAC;AAEjD,MAAM,KAAK,GAAG,IAAA,gBAAM,EAAC,CAAC,CAAC,CAAC;AAExB,MAAM,EAAE,GAAG,CAAC,GAAW,EAA0B,EAAE;IAClD,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;QACf,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;KACnC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;IAChB,OAAO,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrD,MAAM,OAAO,GAAG,GAAG,EAAE;YACpB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,EAAE,CAAC;QACX,CAAC,CAAC;QAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE;YAC7B,MAAM,QAAQ,GAAkB;gBAC/B,iBAAiB,EAAE,KAAK,CAAC,QAAQ;gBACjC,KAAK,EAAE,KAAK,CAAC,UAAU;gBACvB,MAAM,EAAE,KAAK,CAAC,WAAW;gBACzB,WAAW,EAAE,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,WAAW;gBACjD,QAAQ,EAAE,IAAA,+BAAa,EAAC,GAAG,CAAC;aAC5B,CAAC;YACF,OAAO,CAAC,QAAQ,CAAC,CAAC;YAClB,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;YAEtB,OAAO,EAAE,CAAC;QACX,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,GAAG,EAAE;YACpB,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;YAC9D,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC5C,KAAK,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC,CAAC;QAEF,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;QACzE,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,EAAE;IAC/C,OAAO,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC;AAFW,QAAA,gBAAgB,oBAE3B"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
export { audioBufferToDataUrl } from './audio-buffer/audio-url-helpers';
|
|
1
2
|
export { getAudioData } from './get-audio-data';
|
|
2
|
-
export { getAudioDuration } from './get-audio-duration';
|
|
3
|
+
export { getAudioDuration, getAudioDurationInSeconds, } from './get-audio-duration';
|
|
3
4
|
export { getVideoMetadata } from './get-video-metadata';
|
|
4
5
|
export { getWaveformPortion } from './get-waveform-portion';
|
|
5
6
|
export * from './types';
|
|
6
7
|
export type { AudioData, VideoMetadata as VideoData } from './types';
|
|
7
|
-
export { useAudioData } from './use-audio-
|
|
8
|
+
export { useAudioData } from './use-audio-data';
|
|
8
9
|
export { visualizeAudio } from './visualize-audio';
|
|
9
|
-
export { audioBufferToDataUrl } from './audio-buffer/audio-url-helpers';
|
|
10
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACN,gBAAgB,EAChB,yBAAyB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAC,kBAAkB,EAAC,MAAM,wBAAwB,CAAC;AAC1D,cAAc,SAAS,CAAC;AACxB,YAAY,EAAC,SAAS,EAAE,aAAa,IAAI,SAAS,EAAC,MAAM,SAAS,CAAC;AACnE,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -10,20 +10,21 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
10
10
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.
|
|
13
|
+
exports.visualizeAudio = exports.useAudioData = exports.getWaveformPortion = exports.getVideoMetadata = exports.getAudioDurationInSeconds = exports.getAudioDuration = exports.getAudioData = exports.audioBufferToDataUrl = void 0;
|
|
14
|
+
var audio_url_helpers_1 = require("./audio-buffer/audio-url-helpers");
|
|
15
|
+
Object.defineProperty(exports, "audioBufferToDataUrl", { enumerable: true, get: function () { return audio_url_helpers_1.audioBufferToDataUrl; } });
|
|
14
16
|
var get_audio_data_1 = require("./get-audio-data");
|
|
15
17
|
Object.defineProperty(exports, "getAudioData", { enumerable: true, get: function () { return get_audio_data_1.getAudioData; } });
|
|
16
18
|
var get_audio_duration_1 = require("./get-audio-duration");
|
|
17
19
|
Object.defineProperty(exports, "getAudioDuration", { enumerable: true, get: function () { return get_audio_duration_1.getAudioDuration; } });
|
|
20
|
+
Object.defineProperty(exports, "getAudioDurationInSeconds", { enumerable: true, get: function () { return get_audio_duration_1.getAudioDurationInSeconds; } });
|
|
18
21
|
var get_video_metadata_1 = require("./get-video-metadata");
|
|
19
22
|
Object.defineProperty(exports, "getVideoMetadata", { enumerable: true, get: function () { return get_video_metadata_1.getVideoMetadata; } });
|
|
20
23
|
var get_waveform_portion_1 = require("./get-waveform-portion");
|
|
21
24
|
Object.defineProperty(exports, "getWaveformPortion", { enumerable: true, get: function () { return get_waveform_portion_1.getWaveformPortion; } });
|
|
22
25
|
__exportStar(require("./types"), exports);
|
|
23
|
-
var
|
|
24
|
-
Object.defineProperty(exports, "useAudioData", { enumerable: true, get: function () { return
|
|
26
|
+
var use_audio_data_1 = require("./use-audio-data");
|
|
27
|
+
Object.defineProperty(exports, "useAudioData", { enumerable: true, get: function () { return use_audio_data_1.useAudioData; } });
|
|
25
28
|
var visualize_audio_1 = require("./visualize-audio");
|
|
26
29
|
Object.defineProperty(exports, "visualizeAudio", { enumerable: true, get: function () { return visualize_audio_1.visualizeAudio; } });
|
|
27
|
-
var audio_url_helpers_1 = require("./audio-buffer/audio-url-helpers");
|
|
28
|
-
Object.defineProperty(exports, "audioBufferToDataUrl", { enumerable: true, get: function () { return audio_url_helpers_1.audioBufferToDataUrl; } });
|
|
29
30
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mDAA8C;AAAtC,8GAAA,YAAY,OAAA;AACpB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,sEAAsE;AAA9D,yHAAA,oBAAoB,OAAA;AAC5B,mDAA8C;AAAtC,8GAAA,YAAY,OAAA;AACpB,2DAG8B;AAF7B,sHAAA,gBAAgB,OAAA;AAChB,+HAAA,yBAAyB,OAAA;AAE1B,2DAAsD;AAA9C,sHAAA,gBAAgB,OAAA;AACxB,+DAA0D;AAAlD,0HAAA,kBAAkB,OAAA;AAC1B,0CAAwB;AAExB,mDAA8C;AAAtC,8GAAA,YAAY,OAAA;AACpB,qDAAiD;AAAzC,iHAAA,cAAc,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/p-limit/index.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,WAAW,EAAE,MAAM,iDA4EjD"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const yocto_queue_1 = __importDefault(require("yocto-queue"));
|
|
7
|
+
function pLimit(concurrency) {
|
|
8
|
+
if (!((Number.isInteger(concurrency) ||
|
|
9
|
+
concurrency === Number.POSITIVE_INFINITY) &&
|
|
10
|
+
concurrency > 0)) {
|
|
11
|
+
throw new TypeError('Expected `concurrency` to be a number from 1 and up');
|
|
12
|
+
}
|
|
13
|
+
const queue = new yocto_queue_1.default();
|
|
14
|
+
let activeCount = 0;
|
|
15
|
+
const next = () => {
|
|
16
|
+
activeCount--;
|
|
17
|
+
if (queue.size > 0) {
|
|
18
|
+
queue.dequeue()();
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
const run = async (fn, resolve, args) => {
|
|
22
|
+
activeCount++;
|
|
23
|
+
const result = (async () => fn(...args))();
|
|
24
|
+
resolve(result);
|
|
25
|
+
try {
|
|
26
|
+
await result;
|
|
27
|
+
}
|
|
28
|
+
catch (_a) { }
|
|
29
|
+
next();
|
|
30
|
+
};
|
|
31
|
+
const enqueue = (fn, resolve, args) => {
|
|
32
|
+
queue.enqueue(run.bind(undefined, fn, resolve, args));
|
|
33
|
+
(async () => {
|
|
34
|
+
// This function needs to wait until the next microtask before comparing
|
|
35
|
+
// `activeCount` to `concurrency`, because `activeCount` is updated asynchronously
|
|
36
|
+
// when the run function is dequeued and called. The comparison in the if-statement
|
|
37
|
+
// needs to happen asynchronously as well to get an up-to-date value for `activeCount`.
|
|
38
|
+
await Promise.resolve();
|
|
39
|
+
if (activeCount < concurrency && queue.size > 0) {
|
|
40
|
+
queue.dequeue()();
|
|
41
|
+
}
|
|
42
|
+
})();
|
|
43
|
+
};
|
|
44
|
+
const generator = (fn, ...args) => new Promise((resolve) => {
|
|
45
|
+
enqueue(fn, resolve, args);
|
|
46
|
+
});
|
|
47
|
+
Object.defineProperties(generator, {
|
|
48
|
+
activeCount: {
|
|
49
|
+
get: () => activeCount,
|
|
50
|
+
},
|
|
51
|
+
pendingCount: {
|
|
52
|
+
get: () => queue.size,
|
|
53
|
+
},
|
|
54
|
+
clearQueue: {
|
|
55
|
+
value: () => {
|
|
56
|
+
queue.clear();
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
return generator;
|
|
61
|
+
}
|
|
62
|
+
exports.default = pLimit;
|
|
63
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/p-limit/index.ts"],"names":[],"mappings":";;;;;AAAA,8DAAgC;AAEhC,SAAwB,MAAM,CAAC,WAAmB;IACjD,IACC,CAAC,CACA,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC;QAC7B,WAAW,KAAK,MAAM,CAAC,iBAAiB,CAAC;QAC1C,WAAW,GAAG,CAAC,CACf,EACA;QACD,MAAM,IAAI,SAAS,CAAC,qDAAqD,CAAC,CAAC;KAC3E;IAED,MAAM,KAAK,GAAG,IAAI,qBAAK,EAAE,CAAC;IAC1B,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,MAAM,IAAI,GAAG,GAAG,EAAE;QACjB,WAAW,EAAE,CAAC;QAEd,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE;YACnB,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;SAClB;IACF,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACvC,WAAW,EAAE,CAAC;QAEd,MAAM,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;QAE3C,OAAO,CAAC,MAAM,CAAC,CAAC;QAEhB,IAAI;YACH,MAAM,MAAM,CAAC;SACb;QAAC,WAAM,GAAE;QAEV,IAAI,EAAE,CAAC;IACR,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CACf,EAAqE,EACrE,OAAO,EACP,IAAI,EACH,EAAE;QACH,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAEtD,CAAC,KAAK,IAAI,EAAE;YACX,wEAAwE;YACxE,kFAAkF;YAClF,mFAAmF;YACnF,uFAAuF;YACvF,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YAExB,IAAI,WAAW,GAAG,WAAW,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE;gBAChD,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;aAClB;QACF,CAAC,CAAC,EAAE,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,CACjC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACvB,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEJ,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE;QAClC,WAAW,EAAE;YACZ,GAAG,EAAE,GAAG,EAAE,CAAC,WAAW;SACtB;QACD,YAAY,EAAE;YACb,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI;SACrB;QACD,UAAU,EAAE;YACX,KAAK,EAAE,GAAG,EAAE;gBACX,KAAK,CAAC,KAAK,EAAE,CAAC;YACf,CAAC;SACD;KACD,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AAClB,CAAC;AA5ED,yBA4EC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export default class Queue<ValueType> implements Iterable<ValueType> {
|
|
2
|
+
#private;
|
|
3
|
+
constructor();
|
|
4
|
+
enqueue(value: ValueType): void;
|
|
5
|
+
dequeue(): any;
|
|
6
|
+
clear(): void;
|
|
7
|
+
get size(): number;
|
|
8
|
+
[Symbol.iterator](): Generator<any, void, unknown>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../src/p-limit/queue.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,OAAO,OAAO,KAAK,CAAC,SAAS,CAAE,YAAW,QAAQ,CAAC,SAAS,CAAC;;;IASnE,OAAO,CAAC,KAAK,EAAE,SAAS;IAcxB,OAAO;IAWP,KAAK;IAML,IAAI,IAAI,WAEP;IAEA,CAAC,MAAM,CAAC,QAAQ,CAAC;CAQlB"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
How it works:
|
|
4
|
+
`this.#head` is an instance of `Node` which keeps track of its current value and nests another instance of `Node` that keeps the value that comes after it. When a value is provided to `.enqueue()`, the code needs to iterate through `this.#head`, going deeper and deeper to find the last value. However, iterating through every single item is slow. This problem is solved by saving a reference to the last value as `this.#tail` so that it can reference it to add a new value.
|
|
5
|
+
*/
|
|
6
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
7
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
8
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
9
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
10
|
+
};
|
|
11
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
12
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
13
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
14
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
15
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
16
|
+
};
|
|
17
|
+
var _Queue_head, _Queue_tail, _Queue_size;
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
class Node {
|
|
20
|
+
constructor(value) {
|
|
21
|
+
this.value = value;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
class Queue {
|
|
25
|
+
constructor() {
|
|
26
|
+
_Queue_head.set(this, void 0);
|
|
27
|
+
_Queue_tail.set(this, void 0);
|
|
28
|
+
_Queue_size.set(this, 0);
|
|
29
|
+
this.clear();
|
|
30
|
+
}
|
|
31
|
+
enqueue(value) {
|
|
32
|
+
var _a;
|
|
33
|
+
const node = new Node(value);
|
|
34
|
+
if (__classPrivateFieldGet(this, _Queue_head, "f")) {
|
|
35
|
+
__classPrivateFieldGet(this, _Queue_tail, "f").next = node;
|
|
36
|
+
__classPrivateFieldSet(this, _Queue_tail, node, "f");
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
__classPrivateFieldSet(this, _Queue_head, node, "f");
|
|
40
|
+
__classPrivateFieldSet(this, _Queue_tail, node, "f");
|
|
41
|
+
}
|
|
42
|
+
__classPrivateFieldSet(this, _Queue_size, (_a = __classPrivateFieldGet(this, _Queue_size, "f"), _a++, _a), "f");
|
|
43
|
+
}
|
|
44
|
+
dequeue() {
|
|
45
|
+
var _a;
|
|
46
|
+
const current = __classPrivateFieldGet(this, _Queue_head, "f");
|
|
47
|
+
if (!current) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
__classPrivateFieldSet(this, _Queue_head, __classPrivateFieldGet(this, _Queue_head, "f").next, "f");
|
|
51
|
+
__classPrivateFieldSet(this, _Queue_size, (_a = __classPrivateFieldGet(this, _Queue_size, "f"), _a--, _a), "f");
|
|
52
|
+
return current.value;
|
|
53
|
+
}
|
|
54
|
+
clear() {
|
|
55
|
+
__classPrivateFieldSet(this, _Queue_head, undefined, "f");
|
|
56
|
+
__classPrivateFieldSet(this, _Queue_tail, undefined, "f");
|
|
57
|
+
__classPrivateFieldSet(this, _Queue_size, 0, "f");
|
|
58
|
+
}
|
|
59
|
+
get size() {
|
|
60
|
+
return __classPrivateFieldGet(this, _Queue_size, "f");
|
|
61
|
+
}
|
|
62
|
+
*[(_Queue_head = new WeakMap(), _Queue_tail = new WeakMap(), _Queue_size = new WeakMap(), Symbol.iterator)]() {
|
|
63
|
+
let current = __classPrivateFieldGet(this, _Queue_head, "f");
|
|
64
|
+
while (current) {
|
|
65
|
+
yield current.value;
|
|
66
|
+
current = current.next;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.default = Queue;
|
|
71
|
+
//# sourceMappingURL=queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/p-limit/queue.ts"],"names":[],"mappings":";AAAA;;;EAGE;;;;;;;;;;;;;;AAEF,MAAM,IAAI;IAIT,YAAY,KAAK;QAChB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;CACD;AAED,MAAqB,KAAK;IAKzB;QAJA,8BAAwB;QACxB,8BAAwB;QACxB,sBAAQ,CAAC,EAAC;QAGT,IAAI,CAAC,KAAK,EAAE,CAAC;IACd,CAAC;IAED,OAAO,CAAC,KAAgB;;QACvB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QAE7B,IAAI,uBAAA,IAAI,mBAAM,EAAE;YACf,uBAAA,IAAI,mBAAM,CAAC,IAAI,GAAG,IAAI,CAAC;YACvB,uBAAA,IAAI,eAAS,IAAI,MAAA,CAAC;SAClB;aAAM;YACN,uBAAA,IAAI,eAAS,IAAI,MAAA,CAAC;YAClB,uBAAA,IAAI,eAAS,IAAI,MAAA,CAAC;SAClB;QAED,0CAAA,CAAA,mDAAU,EAAV,IAAY,IAAA,CAAA,MAAA,CAAC;IACd,CAAC;IAED,OAAO;;QACN,MAAM,OAAO,GAAG,uBAAA,IAAI,mBAAM,CAAC;QAC3B,IAAI,CAAC,OAAO,EAAE;YACb,OAAO;SACP;QAED,uBAAA,IAAI,eAAS,uBAAA,IAAI,mBAAM,CAAC,IAAI,MAAA,CAAC;QAC7B,0CAAA,CAAA,mDAAU,EAAV,IAAY,IAAA,CAAA,MAAA,CAAC;QACb,OAAO,OAAO,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,KAAK;QACJ,uBAAA,IAAI,eAAS,SAAS,MAAA,CAAC;QACvB,uBAAA,IAAI,eAAS,SAAS,MAAA,CAAC;QACvB,uBAAA,IAAI,eAAS,CAAC,MAAA,CAAC;IAChB,CAAC;IAED,IAAI,IAAI;QACP,OAAO,uBAAA,IAAI,mBAAM,CAAC;IACnB,CAAC;IAED,CAAC,yFAAC,MAAM,CAAC,QAAQ,EAAC;QACjB,IAAI,OAAO,GAAG,uBAAA,IAAI,mBAAM,CAAC;QAEzB,OAAO,OAAO,EAAE;YACf,MAAM,OAAO,CAAC,KAAK,CAAC;YACpB,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;SACvB;IACF,CAAC;CACD;AApDD,wBAoDC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"p-limit.d.ts","sourceRoot":"","sources":["../src/p-limit.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,gBAAiB,MAAM,yKA0EzC,CAAC"}
|
package/dist/p-limit.js
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.pLimit = void 0;
|
|
4
|
+
const pLimit = (concurrency) => {
|
|
5
|
+
const queue = [];
|
|
6
|
+
let activeCount = 0;
|
|
7
|
+
const next = () => {
|
|
8
|
+
var _a;
|
|
9
|
+
activeCount--;
|
|
10
|
+
if (queue.length > 0) {
|
|
11
|
+
(_a = queue.shift()) === null || _a === void 0 ? void 0 : _a();
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
const run = async (fn, resolve, ...args) => {
|
|
15
|
+
activeCount++;
|
|
16
|
+
// eslint-disable-next-line require-await
|
|
17
|
+
const result = (async () => fn(...args))();
|
|
18
|
+
resolve(result);
|
|
19
|
+
try {
|
|
20
|
+
await result;
|
|
21
|
+
}
|
|
22
|
+
catch (_a) { }
|
|
23
|
+
next();
|
|
24
|
+
};
|
|
25
|
+
const enqueue = (fn, resolve, ...args) => {
|
|
26
|
+
queue.push(() => run(fn, resolve, ...args));
|
|
27
|
+
(async () => {
|
|
28
|
+
var _a;
|
|
29
|
+
// This function needs to wait until the next microtask before comparing
|
|
30
|
+
// `activeCount` to `concurrency`, because `activeCount` is updated asynchronously
|
|
31
|
+
// when the run function is dequeued and called. The comparison in the if-statement
|
|
32
|
+
// needs to happen asynchronously as well to get an up-to-date value for `activeCount`.
|
|
33
|
+
await Promise.resolve();
|
|
34
|
+
if (activeCount < concurrency && queue.length > 0) {
|
|
35
|
+
(_a = queue.shift()) === null || _a === void 0 ? void 0 : _a();
|
|
36
|
+
}
|
|
37
|
+
})();
|
|
38
|
+
};
|
|
39
|
+
const generator = (fn, ...args) => new Promise((resolve) => {
|
|
40
|
+
enqueue(fn, resolve, ...args);
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperties(generator, {
|
|
43
|
+
activeCount: {
|
|
44
|
+
get: () => activeCount,
|
|
45
|
+
},
|
|
46
|
+
pendingCount: {
|
|
47
|
+
get: () => queue.length,
|
|
48
|
+
},
|
|
49
|
+
clearQueue: {
|
|
50
|
+
value: () => {
|
|
51
|
+
queue.length = 0;
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
return generator;
|
|
56
|
+
};
|
|
57
|
+
exports.pLimit = pLimit;
|
|
58
|
+
//# sourceMappingURL=p-limit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"p-limit.js","sourceRoot":"","sources":["../src/p-limit.ts"],"names":[],"mappings":";;;AAAO,MAAM,MAAM,GAAG,CAAC,WAAmB,EAAE,EAAE;IAC7C,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,MAAM,IAAI,GAAG,GAAG,EAAE;;QACjB,WAAW,EAAE,CAAC;QAEd,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,MAAA,KAAK,CAAC,KAAK,EAAE,2CAAI,CAAC;SAClB;IACF,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,KAAK,EAChB,EAAsE,EACtE,OAA2C,EAC3C,GAAG,IAAe,EACjB,EAAE;QACH,WAAW,EAAE,CAAC;QAEd,yCAAyC;QACzC,MAAM,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;QAE3C,OAAO,CAAC,MAAM,CAAC,CAAC;QAEhB,IAAI;YACH,MAAM,MAAM,CAAC;SACb;QAAC,WAAM,GAAE;QAEV,IAAI,EAAE,CAAC;IACR,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CACf,EAAsE,EACtE,OAA2C,EAC3C,GAAG,IAAe,EACjB,EAAE;QACH,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAE5C,CAAC,KAAK,IAAI,EAAE;;YACX,wEAAwE;YACxE,kFAAkF;YAClF,mFAAmF;YACnF,uFAAuF;YACvF,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YAExB,IAAI,WAAW,GAAG,WAAW,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClD,MAAA,KAAK,CAAC,KAAK,EAAE,2CAAI,CAAC;aAClB;QACF,CAAC,CAAC,EAAE,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CACjB,EAAsE,EACtE,GAAG,IAAe,EACjB,EAAE,CACH,IAAI,OAAO,CAAa,CAAC,OAAO,EAAE,EAAE;QACnC,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEJ,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE;QAClC,WAAW,EAAE;YACZ,GAAG,EAAE,GAAG,EAAE,CAAC,WAAW;SACtB;QACD,YAAY,EAAE;YACb,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM;SACvB;QACD,UAAU,EAAE;YACX,KAAK,EAAE,GAAG,EAAE;gBACX,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YAClB,CAAC;SACD;KACD,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AAClB,CAAC,CAAC;AA1EW,QAAA,MAAM,UA0EjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-audio-data.d.ts","sourceRoot":"","sources":["../src/use-audio-data.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAElC,eAAO,MAAM,YAAY,QAAS,MAAM,KAAG,SAAS,GAAG,IAkCtD,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useAudioData = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const remotion_1 = require("remotion");
|
|
6
|
+
const get_audio_data_1 = require("./get-audio-data");
|
|
7
|
+
const useAudioData = (src) => {
|
|
8
|
+
if (!src) {
|
|
9
|
+
throw new TypeError("useAudioData requires a 'src' parameter");
|
|
10
|
+
}
|
|
11
|
+
const mountState = (0, react_1.useRef)({ isMounted: true });
|
|
12
|
+
(0, react_1.useEffect)(() => {
|
|
13
|
+
const { current } = mountState;
|
|
14
|
+
current.isMounted = true;
|
|
15
|
+
return () => {
|
|
16
|
+
current.isMounted = false;
|
|
17
|
+
};
|
|
18
|
+
}, []);
|
|
19
|
+
const [metadata, setMetadata] = (0, react_1.useState)(null);
|
|
20
|
+
const fetchMetadata = (0, react_1.useCallback)(async () => {
|
|
21
|
+
const handle = (0, remotion_1.delayRender)(`Waiting for audio metadata with src="${src}" to be loaded`);
|
|
22
|
+
const data = await (0, get_audio_data_1.getAudioData)(src);
|
|
23
|
+
if (mountState.current.isMounted) {
|
|
24
|
+
setMetadata(data);
|
|
25
|
+
}
|
|
26
|
+
(0, remotion_1.continueRender)(handle);
|
|
27
|
+
}, [src]);
|
|
28
|
+
(0, react_1.useEffect)(() => {
|
|
29
|
+
fetchMetadata();
|
|
30
|
+
}, [fetchMetadata]);
|
|
31
|
+
return metadata;
|
|
32
|
+
};
|
|
33
|
+
exports.useAudioData = useAudioData;
|
|
34
|
+
//# sourceMappingURL=use-audio-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-audio-data.js","sourceRoot":"","sources":["../src/use-audio-data.ts"],"names":[],"mappings":";;;AAAA,iCAA+D;AAC/D,uCAAqD;AACrD,qDAA8C;AAGvC,MAAM,YAAY,GAAG,CAAC,GAAW,EAAoB,EAAE;IAC7D,IAAI,CAAC,GAAG,EAAE;QACT,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;KAC/D;IAED,MAAM,UAAU,GAAG,IAAA,cAAM,EAAC,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;IAE7C,IAAA,iBAAS,EAAC,GAAG,EAAE;QACd,MAAM,EAAC,OAAO,EAAC,GAAG,UAAU,CAAC;QAC7B,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;QACzB,OAAO,GAAG,EAAE;YACX,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;QAC3B,CAAC,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAmB,IAAI,CAAC,CAAC;IAEjE,MAAM,aAAa,GAAG,IAAA,mBAAW,EAAC,KAAK,IAAI,EAAE;QAC5C,MAAM,MAAM,GAAG,IAAA,sBAAW,EACzB,wCAAwC,GAAG,gBAAgB,CAC3D,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,IAAA,6BAAY,EAAC,GAAG,CAAC,CAAC;QACrC,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE;YACjC,WAAW,CAAC,IAAI,CAAC,CAAC;SAClB;QAED,IAAA,yBAAc,EAAC,MAAM,CAAC,CAAC;IACxB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,IAAA,iBAAS,EAAC,GAAG,EAAE;QACd,aAAa,EAAE,CAAC;IACjB,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC;AAlCW,QAAA,YAAY,gBAkCvB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remotion/media-utils",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.1",
|
|
4
4
|
"description": "Utility functions for audio and video",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"url": "https://github.com/remotion-dev/remotion/issues"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"remotion": "3.0.
|
|
21
|
+
"remotion": "3.0.1"
|
|
22
22
|
},
|
|
23
23
|
"peerDependencies": {
|
|
24
24
|
"react": ">=16.8.0",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"@types/react": "18.0.1",
|
|
31
31
|
"eslint": "8.13.0",
|
|
32
32
|
"prettier": "^2.0.5",
|
|
33
|
-
"prettier-plugin-organize-imports": "^
|
|
33
|
+
"prettier-plugin-organize-imports": "^2.3.4",
|
|
34
34
|
"typescript": "^4.5.5"
|
|
35
35
|
},
|
|
36
36
|
"keywords": [
|
|
@@ -44,5 +44,5 @@
|
|
|
44
44
|
"publishConfig": {
|
|
45
45
|
"access": "public"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "3d2cbaddccc5f81bd71dad203450e3dc05447ed6"
|
|
48
48
|
}
|
package/.turbo/turbo-build.log
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
[33m@remotion/media-utils:build: [0mcache hit, replaying output [2m963d37f52405876a[0m
|
|
2
|
-
[33m@remotion/media-utils:build: [0m
|
|
3
|
-
[33m@remotion/media-utils:build: [0m> @remotion/media-utils@2.6.16 build /Users/jonathanburger/remotion/packages/media-utils
|
|
4
|
-
[33m@remotion/media-utils:build: [0m> tsc -d
|
|
5
|
-
[33m@remotion/media-utils:build: [0m
|
package/.turbo/turbo-lint.log
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
[33m@remotion/media-utils:lint: [0mcache hit, replaying output [2m3451a35f8fc63bce[0m
|
|
2
|
-
[33m@remotion/media-utils:lint: [0m
|
|
3
|
-
[33m@remotion/media-utils:lint: [0m> @remotion/media-utils@2.6.15 lint /Users/jonathanburger/remotion/packages/media-utils
|
|
4
|
-
[33m@remotion/media-utils:lint: [0m> eslint src --ext ts,tsx
|
|
5
|
-
[33m@remotion/media-utils:lint: [0m
|
|
6
|
-
[33m@remotion/media-utils:lint: [0m
|
|
7
|
-
[33m@remotion/media-utils:lint: [0m/Users/jonathanburger/remotion/packages/media-utils/src/get-video-metadata.ts
|
|
8
|
-
[33m@remotion/media-utils:lint: [0m 6:77 warning Async arrow function has no 'await' expression require-await
|
|
9
|
-
[33m@remotion/media-utils:lint: [0m
|
|
10
|
-
[33m@remotion/media-utils:lint: [0m✖ 1 problem (0 errors, 1 warning)
|
|
11
|
-
[33m@remotion/media-utils:lint: [0m
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-smooth-svg-path.d.ts","sourceRoot":"","sources":["../src/create-smooth-svg-path.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,WAAY;IAAC,MAAM;IAAE,MAAM;CAAC,EAAE,kBA6B7D,CAAC"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createSmoothSvgPath = void 0;
|
|
4
|
-
const createSmoothSvgPath = (points) => {
|
|
5
|
-
return points.reduce((acc, point, i, a) => {
|
|
6
|
-
if (i === 0) {
|
|
7
|
-
return `M ${point[0]},${point[1]}`;
|
|
8
|
-
}
|
|
9
|
-
const p0 = a[i - 2] || a[i - 1];
|
|
10
|
-
const x0 = p0[0];
|
|
11
|
-
const y0 = p0[1];
|
|
12
|
-
const p1 = a[i - 1];
|
|
13
|
-
const x1 = p1[0];
|
|
14
|
-
const y1 = p1[1];
|
|
15
|
-
const x = point[0];
|
|
16
|
-
const y = point[1];
|
|
17
|
-
const cp1x = (2 * x0 + x1) / 3;
|
|
18
|
-
const cp1y = (2 * y0 + y1) / 3;
|
|
19
|
-
const cp2x = (x0 + 2 * x1) / 3;
|
|
20
|
-
const cp2y = (y0 + 2 * y1) / 3;
|
|
21
|
-
const cp3x = (x0 + 4 * x1 + x) / 6;
|
|
22
|
-
const cp3y = (y0 + 4 * y1 + y) / 6;
|
|
23
|
-
if (i === a.length - 1) {
|
|
24
|
-
return `${acc} C ${cp1x},${cp1y} ${cp2x},${cp2y} ${cp3x},${cp3y} C${x},${y} ${x},${y} ${x},${y}`;
|
|
25
|
-
}
|
|
26
|
-
return `${acc} C ${cp1x},${cp1y} ${cp2x},${cp2y} ${cp3x},${cp3y}`;
|
|
27
|
-
}, '');
|
|
28
|
-
};
|
|
29
|
-
exports.createSmoothSvgPath = createSmoothSvgPath;
|
|
30
|
-
//# sourceMappingURL=create-smooth-svg-path.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-smooth-svg-path.js","sourceRoot":"","sources":["../src/create-smooth-svg-path.ts"],"names":[],"mappings":";;;AAAO,MAAM,mBAAmB,GAAG,CAAC,MAA0B,EAAE,EAAE;IACjE,OAAO,MAAM,CAAC,MAAM,CACnB,CAAC,GAAkB,EAAE,KAAuB,EAAE,CAAS,EAAE,CAAC,EAAE,EAAE;QAC7D,IAAI,CAAC,KAAK,CAAC,EAAE;YACZ,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;SACnC;QAED,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,OAAO,GAAG,GAAG,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SACjG;QAED,OAAO,GAAG,GAAG,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;IACnE,CAAC,EACD,EAAE,CACF,CAAC;AACH,CAAC,CAAC;AA7BW,QAAA,mBAAmB,uBA6B9B"}
|
package/dist/smooth-path.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"smooth-path.d.ts","sourceRoot":"","sources":["../src/smooth-path.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,WAAY;IAAC,MAAM;IAAE,MAAM;CAAC,EAAE,kBA6B7D,CAAC"}
|
package/dist/smooth-path.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createSmoothSvgPath = void 0;
|
|
4
|
-
const createSmoothSvgPath = (points) => {
|
|
5
|
-
return points.reduce((acc, point, i, a) => {
|
|
6
|
-
if (i === 0) {
|
|
7
|
-
return `M ${point[0]},${point[1]}`;
|
|
8
|
-
}
|
|
9
|
-
const p0 = a[i - 2] || a[i - 1];
|
|
10
|
-
const x0 = p0[0];
|
|
11
|
-
const y0 = p0[1];
|
|
12
|
-
const p1 = a[i - 1];
|
|
13
|
-
const x1 = p1[0];
|
|
14
|
-
const y1 = p1[1];
|
|
15
|
-
const x = point[0];
|
|
16
|
-
const y = point[1];
|
|
17
|
-
const cp1x = (2 * x0 + x1) / 3;
|
|
18
|
-
const cp1y = (2 * y0 + y1) / 3;
|
|
19
|
-
const cp2x = (x0 + 2 * x1) / 3;
|
|
20
|
-
const cp2y = (y0 + 2 * y1) / 3;
|
|
21
|
-
const cp3x = (x0 + 4 * x1 + x) / 6;
|
|
22
|
-
const cp3y = (y0 + 4 * y1 + y) / 6;
|
|
23
|
-
if (i === a.length - 1) {
|
|
24
|
-
return `${acc} C ${cp1x},${cp1y} ${cp2x},${cp2y} ${cp3x},${cp3y} C${x},${y} ${x},${y} ${x},${y}`;
|
|
25
|
-
}
|
|
26
|
-
return `${acc} C ${cp1x},${cp1y} ${cp2x},${cp2y} ${cp3x},${cp3y}`;
|
|
27
|
-
}, '');
|
|
28
|
-
};
|
|
29
|
-
exports.createSmoothSvgPath = createSmoothSvgPath;
|
|
30
|
-
//# sourceMappingURL=smooth-path.js.map
|
package/dist/smooth-path.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"smooth-path.js","sourceRoot":"","sources":["../src/smooth-path.ts"],"names":[],"mappings":";;;AAAO,MAAM,mBAAmB,GAAG,CAAC,MAA0B,EAAE,EAAE;IACjE,OAAO,MAAM,CAAC,MAAM,CACnB,CAAC,GAAkB,EAAE,KAAuB,EAAE,CAAS,EAAE,CAAC,EAAE,EAAE;QAC7D,IAAI,CAAC,KAAK,CAAC,EAAE;YACZ,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;SACnC;QAED,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,OAAO,GAAG,GAAG,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SACjG;QAED,OAAO,GAAG,GAAG,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;IACnE,CAAC,EACD,EAAE,CACF,CAAC;AACH,CAAC,CAAC;AA7BW,QAAA,mBAAmB,uBA6B9B"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { AudioData } from './types';
|
|
2
|
-
declare type FnParameters = {
|
|
3
|
-
audioData: AudioData;
|
|
4
|
-
frame: number;
|
|
5
|
-
fps: number;
|
|
6
|
-
windowInSeconds: number;
|
|
7
|
-
numberOfSamples: number;
|
|
8
|
-
};
|
|
9
|
-
export declare const visualizeAudioWaveform: ({ ...parameters }: FnParameters) => number[];
|
|
10
|
-
export {};
|
|
11
|
-
//# sourceMappingURL=visualize-audio-waveform.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"visualize-audio-waveform.d.ts","sourceRoot":"","sources":["../src/visualize-audio-waveform.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAIlC,aAAK,YAAY,GAAG;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;CACxB,CAAC;AA2CF,eAAO,MAAM,sBAAsB,sBAAqB,YAAY,aAGnE,CAAC"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.visualizeAudioWaveform = void 0;
|
|
4
|
-
const get_waveform_portion_1 = require("./get-waveform-portion");
|
|
5
|
-
const cache = {};
|
|
6
|
-
const visualizeAudioWaveformFrame = ({ audioData, frame, fps, numberOfSamples, windowInSeconds, }) => {
|
|
7
|
-
if (windowInSeconds * audioData.sampleRate < numberOfSamples) {
|
|
8
|
-
throw new TypeError(windowInSeconds +
|
|
9
|
-
's audiodata does not have ' +
|
|
10
|
-
numberOfSamples +
|
|
11
|
-
' bars. Increase windowInSeconds or decrease numberOfSamples');
|
|
12
|
-
}
|
|
13
|
-
const cacheKey = audioData.resultId + frame + fps + numberOfSamples + 'waveform';
|
|
14
|
-
if (cache[cacheKey]) {
|
|
15
|
-
return cache[cacheKey];
|
|
16
|
-
}
|
|
17
|
-
const time = frame / fps;
|
|
18
|
-
const max = audioData.durationInSeconds - windowInSeconds / 2;
|
|
19
|
-
const min = windowInSeconds / 2;
|
|
20
|
-
const startTimeInSeconds = Math.min(max, Math.max(min, time - windowInSeconds / 2));
|
|
21
|
-
return (0, get_waveform_portion_1.getWaveformPortion)({
|
|
22
|
-
audioData,
|
|
23
|
-
startTimeInSeconds,
|
|
24
|
-
durationInSeconds: windowInSeconds,
|
|
25
|
-
numberOfSamples,
|
|
26
|
-
normalize: true,
|
|
27
|
-
});
|
|
28
|
-
};
|
|
29
|
-
const visualizeAudioWaveform = ({ ...parameters }) => {
|
|
30
|
-
const data = visualizeAudioWaveformFrame(parameters);
|
|
31
|
-
return data.map((value) => value.amplitude);
|
|
32
|
-
};
|
|
33
|
-
exports.visualizeAudioWaveform = visualizeAudioWaveform;
|
|
34
|
-
//# sourceMappingURL=visualize-audio-waveform.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"visualize-audio-waveform.js","sourceRoot":"","sources":["../src/visualize-audio-waveform.ts"],"names":[],"mappings":";;;AAAA,iEAA+D;AAG/D,MAAM,KAAK,GAA2B,EAAE,CAAC;AAUzC,MAAM,2BAA2B,GAAG,CAAC,EACpC,SAAS,EACT,KAAK,EACL,GAAG,EACH,eAAe,EACf,eAAe,GACD,EAAE,EAAE;IAClB,IAAI,eAAe,GAAG,SAAS,CAAC,UAAU,GAAG,eAAe,EAAE;QAC7D,MAAM,IAAI,SAAS,CAClB,eAAe;YACd,4BAA4B;YAC5B,eAAe;YACf,6DAA6D,CAC9D,CAAC;KACF;IAED,MAAM,QAAQ,GACb,SAAS,CAAC,QAAQ,GAAG,KAAK,GAAG,GAAG,GAAG,eAAe,GAAG,UAAU,CAAC;IACjE,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE;QACpB,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;KACvB;IAED,MAAM,IAAI,GAAG,KAAK,GAAG,GAAG,CAAC;IAEzB,MAAM,GAAG,GAAG,SAAS,CAAC,iBAAiB,GAAG,eAAe,GAAG,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,eAAe,GAAG,CAAC,CAAC;IAEhC,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAClC,GAAG,EACH,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,eAAe,GAAG,CAAC,CAAC,CACzC,CAAC;IAEF,OAAO,IAAA,yCAAkB,EAAC;QACzB,SAAS;QACT,kBAAkB;QAClB,iBAAiB,EAAE,eAAe;QAClC,eAAe;QACf,SAAS,EAAE,IAAI;KACf,CAAC,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,sBAAsB,GAAG,CAAC,EAAC,GAAG,UAAU,EAAe,EAAE,EAAE;IACvE,MAAM,IAAI,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC7C,CAAC,CAAC;AAHW,QAAA,sBAAsB,0BAGjC"}
|