@vonage/media-processor 1.2.7 → 2.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.
Files changed (36) hide show
  1. package/dist/docs/assets/highlight.css +13 -27
  2. package/dist/docs/assets/main.js +2 -2
  3. package/dist/docs/assets/search.js +1 -1
  4. package/dist/docs/assets/style.css +3 -2
  5. package/dist/docs/classes/MediaProcessor.html +51 -43
  6. package/dist/docs/classes/MediaProcessorConnector.html +12 -12
  7. package/dist/docs/enums/ErrorFunction.html +9 -0
  8. package/dist/docs/enums/PipelineInfoData.html +19 -0
  9. package/dist/docs/enums/VonageSourceType.html +5 -0
  10. package/dist/docs/enums/WarningType.html +5 -0
  11. package/dist/docs/index.html +2 -2
  12. package/dist/docs/interfaces/MediaProcessorConnectorInterface.html +4 -10
  13. package/dist/docs/interfaces/MediaProcessorInterface.html +17 -7
  14. package/dist/docs/modules.html +42 -35
  15. package/dist/media-processor.es.js +684 -1943
  16. package/dist/media-processor.min.js +1 -0
  17. package/dist/media-processor.static.js +832 -0
  18. package/dist/media-processor.umd.js +2 -3
  19. package/dist/types/lib/main.d.ts +10 -0
  20. package/dist/types/{src → lib/src}/core/InsertableStreamHelper.d.ts +0 -0
  21. package/dist/types/{src → lib/src}/core/MediaProcessor.d.ts +20 -15
  22. package/dist/types/lib/src/core/MediaProcessorConnector.d.ts +39 -0
  23. package/dist/types/{src → lib/src}/core/MediaProcessorConnectorInterface.d.ts +4 -1
  24. package/dist/types/lib/src/core/MediaProcessorInterface.d.ts +23 -0
  25. package/dist/types/lib/src/core/pipeline.d.ts +166 -0
  26. package/dist/types/{src → lib/src}/telemetry/Key.d.ts +0 -0
  27. package/dist/types/lib/src/telemetry/QosReporter.d.ts +22 -0
  28. package/dist/types/{src → lib/src}/utils/Tools.d.ts +0 -0
  29. package/dist/types/{src → lib/src}/utils/package-json.d.ts +0 -0
  30. package/dist/types/{src → lib/src}/utils/utils.d.ts +0 -0
  31. package/package.json +72 -62
  32. package/dist/types/main.d.ts +0 -9
  33. package/dist/types/src/core/MediaProcessorConnector.d.ts +0 -79
  34. package/dist/types/src/core/MediaProcessorInterface.d.ts +0 -16
  35. package/dist/types/src/core/pipeline.d.ts +0 -116
  36. package/dist/types/src/telemetry/Reporter.d.ts +0 -80
package/package.json CHANGED
@@ -1,65 +1,75 @@
1
1
  {
2
- "name": "@vonage/media-processor",
3
- "version": "1.2.7",
4
- "author": "Guy Mininberg <guy.mininberg@vonage.com>",
5
- "contributors": [
6
- "Guy Mininberg <guy.mininberg@vonage.com>",
7
- "Jose Olivera <joseantonio.oliveraortega@vonage.com>"
8
- ],
9
- "keywords": [
10
- "vonage",
11
- "vonage api",
12
- "client",
13
- "media processing",
14
- "insertable streams",
15
- "opentok",
16
- "nexmo"
17
- ],
18
- "scripts": {
19
- "build": "npm-run-all build:js doc",
20
- "build:js": "node ./scripts/package-json.js && tsc && vite build && tsc --declaration --emitDeclarationOnly --outDir dist/types",
21
- "build:dev": "node ./scripts/package-json.js && tsc && vite build --mode development && tsc --declaration --emitDeclarationOnly --outDir dist/types",
22
- "doc": "typedoc --excludePrivate --excludeProtected --disableSources --out dist/docs lib/main.ts",
23
- "dev": "node ./scripts/package-json.js && vite",
24
- "preview": "vite preview",
25
- "cypress:open": "cypress open",
26
- "cy:run": "cypress run"
27
- },
28
- "dependencies": {
29
- "@types/dom-mediacapture-transform": "^0.1.2",
30
- "@types/emscripten": "^1.39.6",
31
- "@types/node": "^17.0.10",
32
- "@types/offscreencanvas": "^2019.6.4",
33
- "@types/uuid": "^8.3.4",
34
- "axios": "^0.25.0",
35
- "emittery": "^0.10.1",
36
- "typescript-optional": "3.0.0-alpha.3",
37
- "uuid": "~8.3.2"
38
- },
39
- "files": [
40
- "dist"
41
- ],
42
- "types": "./dist/types/main.d.ts",
43
- "main": "./dist/media-processor.umd.js",
44
- "module": "./dist/media-processor.es.js",
45
- "exports": {
46
- ".": {
47
- "import": "./dist/media-processor.es.js",
48
- "require": "./dist/media-processor.umd.js"
2
+ "name": "@vonage/media-processor",
3
+ "version": "2.0.1",
4
+ "author": "Guy Mininberg <guy.mininberg@vonage.com>",
5
+ "contributors": [
6
+ "Guy Mininberg <guy.mininberg@vonage.com>",
7
+ "Jose Olivera <joseantonio.oliveraortega@vonage.com>"
8
+ ],
9
+ "keywords": [
10
+ "vonage",
11
+ "vonage api",
12
+ "client",
13
+ "media processing",
14
+ "insertable streams",
15
+ "opentok",
16
+ "nexmo"
17
+ ],
18
+ "scripts": {
19
+ "build": "npm-run-all build:js build:static doc",
20
+ "build:js": "vite build && tsc --declaration --emitDeclarationOnly --outDir dist/types",
21
+ "build:dev": "vite build --mode development && tsc --declaration --emitDeclarationOnly --outDir dist/types",
22
+ "build:static": "node ./scripts/build-static.js && minify ./dist/media-processor.static.js > ./dist/media-processor.min.js ",
23
+ "doc": "typedoc --excludePrivate --excludeProtected --disableSources --out dist/docs lib/main.ts",
24
+ "dev": "vite",
25
+ "preview": "vite preview",
26
+ "test": "vitest --run --threads false"
27
+ },
28
+ "dependencies": {
29
+ "@types/dom-mediacapture-transform": "^0.1.2",
30
+ "@types/emscripten": "^1.39.6",
31
+ "@types/node": "^17.0.10",
32
+ "@types/offscreencanvas": "^2019.6.4",
33
+ "@types/uuid": "^8.3.4",
34
+ "@vonage/js-onewebrtc-telemetry": "1.1.0",
35
+ "axios": "^0.25.0",
36
+ "emittery": "^0.10.1",
37
+ "typescript-optional": "3.0.0-alpha.3",
38
+ "uuid": "~8.3.2"
39
+ },
40
+ "files": [
41
+ "dist"
42
+ ],
43
+ "types": "./dist/types/main.d.ts",
44
+ "main": "./dist/media-processor.umd.js",
45
+ "module": "./dist/media-processor.es.js",
46
+ "exports": {
47
+ ".": {
48
+ "import": "./dist/media-processor.es.js",
49
+ "require": "./dist/media-processor.umd.js"
50
+ }
51
+ },
52
+ "devDependencies": {
53
+ "@tsconfig/node12": "^1.0.1",
54
+ "@types/chai": "^4.3.3",
55
+ "@types/mocha": "^10.0.0",
56
+ "@types/puppeteer": "^5.4.7",
57
+ "@types/rimraf": "^3.0.2",
58
+ "@vitest/ui": "^0.24.3",
59
+ "chai": "^4.3.6",
60
+ "chai-image": "file:./lib/libs/chai-image-3.0.0.tgz",
61
+ "minify": "^9.1.0",
62
+ "mocha": "^10.1.0",
63
+ "npm-run-all": "^4.1.5",
64
+ "puppeteer": "^19.0.0",
65
+ "rimraf": "^3.0.2",
66
+ "typedoc": "^0.22.12",
67
+ "typescript": "^4.6.2",
68
+ "vite": "^3.1.8",
69
+ "vitest": "^0.24.3"
70
+ },
71
+ "repository": "https://github.com/Vonage/vonage-media-transformers-samples",
72
+ "publishConfig": {
73
+ "registry": "https://registry.npmjs.org"
49
74
  }
50
- },
51
- "devDependencies": {
52
- "@tsconfig/node12": "^1.0.1",
53
- "@types/cypress-image-snapshot": "3.1.6",
54
- "cypress": "9.5.2",
55
- "cypress-image-snapshot": "4.0.1",
56
- "npm-run-all": "^4.1.5",
57
- "typedoc": "^0.22.12",
58
- "typescript": "^4.6.2",
59
- "vite": "^2.7.2"
60
- },
61
- "repository": "https://github.com/Vonage/vonage-media-transformers-samples",
62
- "publishConfig": {
63
- "registry": "https://registry.npmjs.org"
64
- }
65
75
  }
@@ -1,9 +0,0 @@
1
- import { isSupported } from './src/utils/utils';
2
- import MediaProcessor from './src/core/MediaProcessor';
3
- import MediaProcessorConnector from './src/core/MediaProcessorConnector';
4
- import { getVonageMetadata, setVonageMetadata } from './src/telemetry/Reporter';
5
- export type { MediaProcessorConnectorInterface } from './src/core/MediaProcessorConnectorInterface';
6
- export type { MediaProcessorInterface } from './src/core/MediaProcessorInterface';
7
- export type { VonageMetadata, VonageSourceType } from './src/telemetry/Reporter';
8
- export type { EventDataMap, WarnData, ErrorData, ErrorFunction, EventMetaData, PipelineInfoData } from './src/core/pipeline';
9
- export { isSupported, MediaProcessor, MediaProcessorConnector, getVonageMetadata, setVonageMetadata };
@@ -1,79 +0,0 @@
1
- import InsertableStreamHelper from './InsertableStreamHelper';
2
- import { MediaProcessorConnectorInterface } from './MediaProcessorConnectorInterface';
3
- import { MediaProcessorInterface } from './MediaProcessorInterface';
4
- /**
5
- * Helper class implementing the media processor connector interface.
6
- *
7
- * @example
8
- *
9
- * ```ts
10
- * let mediaProcessor: MediaProcessor = new MediaProcessor();
11
- * let transformers: Array<Transformer> = [];
12
- * transformers.push(new CanvasTransform());
13
- * mediaProcessor.setTransformers(transformers);
14
- *
15
- * let connector: MediaProcessorConnector = new MediaProcessorConnector(mediaProcessor);
16
- * source_.setMediaProcessorConnector(connector);
17
- *
18
- * // ...
19
- *
20
- * setMediaProcessorConnector(mediaProcessorConnector: MediaProcessorConnectorInterface): Promise<void> {
21
- * return new Promise<void>(async (resolve, reject) => {
22
- * this.mediaProcessorConnector_ = mediaProcessorConnector;
23
- * if (!this.stream_)
24
- * {
25
- * console.log('[CameraSource] Requesting camera.');
26
- * reject("no stream")
27
- * }
28
- * this.mediaProcessorConnector_.setTrack(this.videoTrack_).then(newTrack => {
29
- * let processedStream = new MediaStream();
30
- * processedStream.addTrack(newTrack);
31
- * this.sink_.setMediaStream(processedStream);
32
- * resolve();
33
- * })
34
- * .catch(e => {
35
- * reject(e)
36
- * })
37
- * });
38
- * }
39
- *
40
- * // ...
41
- *
42
- * async stopMediaProcessorConnector() {
43
- * if(this.mediaProcessorConnector_){
44
- * this.mediaProcessorConnector_.destroy().then(() => {
45
- * let processedStream = new MediaStream();
46
- * processedStream.addTrack(this.videoTrack_);
47
- * this.sink_.setMediaStream(processedStream);
48
- * })
49
- * .catch(e => {
50
- * console.error(e);
51
- * });
52
- * }
53
- * }
54
- * ```
55
- */
56
- declare class MediaProcessorConnector implements MediaProcessorConnectorInterface {
57
- /**
58
- * @private
59
- */
60
- insertableStreamHelper_: InsertableStreamHelper;
61
- /**
62
- * @private
63
- */
64
- mediaProcessor_: MediaProcessorInterface;
65
- constructor(vonageMediaProcessor: MediaProcessorInterface);
66
- /**
67
- * Sets the media stream track instance to be processed.
68
- *
69
- * @param track MeadiaStreamTrack (audio or video) to be processed.
70
- *
71
- * @returns Promise<MediaStreamTrack> MeadiaStreamTrack instance already processed.
72
- */
73
- setTrack(track: MediaStreamTrack): Promise<MediaStreamTrack>;
74
- /**
75
- * Stops the media processing being performed.
76
- */
77
- destroy(): Promise<void>;
78
- }
79
- export default MediaProcessorConnector;
@@ -1,16 +0,0 @@
1
- /**
2
- * Interface definition for media processor instances.
3
- */
4
- export interface MediaProcessorInterface {
5
- /**
6
- * Starts running the tranformation logic performed by the media processor instance.
7
- *
8
- * @param readable Readable stream associated to the media source being processed.
9
- * @param writable Writable stream associated to the resulting media once processed.
10
- */
11
- transform(readable: ReadableStream, writable: WritableStream): Promise<void>;
12
- /**
13
- * Stops running the tranformation logic performed by the media processor instance.
14
- */
15
- destroy(): Promise<void>;
16
- }
@@ -1,116 +0,0 @@
1
- /// <reference types="dom-webcodecs" />
2
- import Emittery from 'emittery';
3
- /**
4
- * WarningType specifies the type of warning from the transformer
5
- */
6
- export declare enum WarningType {
7
- /**
8
- * Warning about change in process rate
9
- */
10
- FPS_DROP = "fps_drop"
11
- }
12
- /**
13
- * DropInfo gives info about the frame rate of the transformer
14
- */
15
- export declare type DropInfo = {
16
- /**
17
- * The rate predicted rate of the track
18
- */
19
- requested: number;
20
- /**
21
- * The actual rate of the track
22
- */
23
- current: number;
24
- };
25
- /**
26
- * ErrorFunction specifies the function which the error (exception) happened
27
- */
28
- export declare type ErrorFunction = 'start' | 'transform' | 'flush';
29
- /**
30
- * EventMetaData the meta data of the event.
31
- */
32
- export declare type EventMetaData = {
33
- /**
34
- * The transformer index in the array of transformers.
35
- */
36
- transformerIndex: number;
37
- };
38
- /**
39
- * WarnData the warning data type
40
- * ```ts
41
- * {
42
- * eventMetaData: { transformerIndex: 0},
43
- * warningType: WarningType.FPS_DROP
44
- * dropInfo: {requested: 30, current:20}
45
- * }
46
- * ```
47
- */
48
- export declare type WarnData = {
49
- eventMetaData: EventMetaData;
50
- warningType: WarningType;
51
- dropInfo: DropInfo;
52
- };
53
- /**
54
- * ErrorData the error data type
55
- * ```ts
56
- * {
57
- * eventMetaData: { transformerIndex: 0},
58
- * ErrorData: 'start',
59
- * error: e (the exception in the catch)
60
- * }
61
- * ```
62
- */
63
- export declare type ErrorData = {
64
- eventMetaData: EventMetaData;
65
- function: ErrorFunction;
66
- error: unknown;
67
- };
68
- /**
69
- * PipelineInfolData - life cycle information of pipeline
70
- */
71
- export declare type PipelineInfoData = {
72
- message: 'pipeline_ended' | 'pipeline_ended_with_error' | 'pipeline_started' | 'pipeline_started_with_error' | 'pipeline_restarted' | 'pipeline_restarted_with_error';
73
- };
74
- /**
75
- * EventDataMap the options of event data
76
- * @warn - see `WarnData`
77
- * @error - see `ErrorData`
78
- * @pipelineInfo - see `pipelineInfo`
79
- */
80
- export declare type EventDataMap = {
81
- warn: WarnData;
82
- error: ErrorData;
83
- pipelineInfo: PipelineInfoData;
84
- };
85
- declare class InternalTransformer extends Emittery<EventDataMap> implements Transformer {
86
- uuid_: string;
87
- transformerType_: string;
88
- fps_: number;
89
- framesTransformed_: number;
90
- transformer_: Transformer;
91
- shouldStop_: boolean;
92
- isFlashed_: boolean;
93
- framesFromSource_: number;
94
- mediaTransformerQosReportStartTimestamp_: number;
95
- videoHeight_: number;
96
- videoWidth_: number;
97
- trackExpectedRate_: number;
98
- index_: number;
99
- controller_?: TransformStreamDefaultController;
100
- constructor(transformer: Transformer, index: number);
101
- setTrackExpectedRate(trackExpectedRate: number): void;
102
- start(controller: TransformStreamDefaultController): Promise<void>;
103
- transform(data: VideoFrame | AudioData, controller: TransformStreamDefaultController): Promise<void>;
104
- flush(controller: TransformStreamDefaultController): Promise<void>;
105
- stop(): void;
106
- mediaTransformerQosReport(): void;
107
- }
108
- declare class Pipeline extends Emittery<EventDataMap> {
109
- transformers_: Array<InternalTransformer>;
110
- trackExpectedRate_: number;
111
- constructor(transformers: Array<Transformer>);
112
- setTrackExpectedRate(trackExpectedRate: number): void;
113
- start(readable: ReadableStream, writeable: WritableStream): Promise<void>;
114
- destroy(): Promise<void>;
115
- }
116
- export default Pipeline;
@@ -1,80 +0,0 @@
1
- import { Optional } from 'typescript-optional';
2
- export declare type VonageSourceType = 'automation' | 'test' | 'vbc' | 'video' | 'voice';
3
- /**
4
- * Specifies the addional information being sent with the telemetry collected by the library.
5
- */
6
- export declare type VonageMetadata = {
7
- /**
8
- * Type of source using the library.
9
- */
10
- sourceType: VonageSourceType;
11
- /**
12
- * Some string identifier identifying the application using the library.
13
- */
14
- appId: string;
15
- /**
16
- * The proxy URL to route all internet traffic generated by this library.
17
- */
18
- proxyUrl?: string;
19
- };
20
- declare global {
21
- var _vonageMediaProcessorMetadata: VonageMetadata;
22
- }
23
- /**
24
- * Sets some metadata for telemetry.
25
- *
26
- * @param metadata Specifies the addional information being sent with the telemetry collected by the library.
27
- * If metadata is either undefined or not set the library will not collect/send any telemetry.
28
- *
29
- * @example
30
- *
31
- * ```ts
32
- * const metadata: VonageMetadata = {
33
- * appId: 'vonage-media-processor-example',
34
- * sourceType: 'test'
35
- * };
36
- * setVonageMetadata(metadata);
37
- * let metadataGet: VonageMetadata = getVonageMetadata();
38
- * ```
39
- */
40
- export declare function setVonageMetadata(metadata: VonageMetadata): void;
41
- export declare function getVonageMetadata(): VonageMetadata;
42
- interface Report {
43
- action: Optional<string>;
44
- applicationId: Optional<string>;
45
- timestamp: number;
46
- fps: Optional<number>;
47
- framesTransformed: Optional<number>;
48
- guid: Optional<string>;
49
- highestFrameTransformCpu: Optional<number>;
50
- message: Optional<string>;
51
- source: Optional<string>;
52
- transformedFps: Optional<number>;
53
- transformerType: Optional<string>;
54
- variation: Optional<string>;
55
- videoHeight: Optional<number>;
56
- videoWidth: Optional<number>;
57
- version: string;
58
- error: Optional<string>;
59
- proxyUrl: Optional<string>;
60
- }
61
- declare class ReportBuilder {
62
- private readonly _report;
63
- constructor();
64
- action(action: string): this;
65
- framesTransformed(framesTransformed: number): this;
66
- fps(fps: number): this;
67
- guid(guid: string): this;
68
- message(message: string): this;
69
- transformedFps(transformedFps: number): this;
70
- transformerType(transformerType: string): this;
71
- variation(variation: string): this;
72
- videoHeight(videoHeight: number): this;
73
- videoWidth(videoWidth: number): this;
74
- error(error: string): this;
75
- build(): Report;
76
- }
77
- declare class Reporter {
78
- static report(report: Report): Promise<any>;
79
- }
80
- export { Report, ReportBuilder, Reporter };