@webex/internal-media-core 0.0.1-beta → 0.0.4-beta

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 (108) hide show
  1. package/README.md +2 -78
  2. package/package.json +3 -2
  3. package/dist/transpiled/Logger/index.js +0 -41
  4. package/dist/transpiled/Logger/index.js.map +0 -1
  5. package/dist/transpiled/Media/Device/Device.js +0 -21
  6. package/dist/transpiled/Media/Device/Device.js.map +0 -1
  7. package/dist/transpiled/Media/Device/DeviceMocks.js +0 -65
  8. package/dist/transpiled/Media/Device/DeviceMocks.js.map +0 -1
  9. package/dist/transpiled/Media/Device/index.js +0 -2
  10. package/dist/transpiled/Media/Device/index.js.map +0 -1
  11. package/dist/transpiled/Media/Effects/BNR/Bnr.integration-test.js +0 -47
  12. package/dist/transpiled/Media/Effects/BNR/Bnr.integration-test.js.map +0 -1
  13. package/dist/transpiled/Media/Effects/BNR/Bnr.js +0 -187
  14. package/dist/transpiled/Media/Effects/BNR/Bnr.js.map +0 -1
  15. package/dist/transpiled/Media/Effects/BNR/Bnr.test.js +0 -37
  16. package/dist/transpiled/Media/Effects/BNR/Bnr.test.js.map +0 -1
  17. package/dist/transpiled/Media/Effects/BNR/BnrMock.js +0 -92
  18. package/dist/transpiled/Media/Effects/BNR/BnrMock.js.map +0 -1
  19. package/dist/transpiled/Media/Effects/BNR/index.js +0 -2
  20. package/dist/transpiled/Media/Effects/BNR/index.js.map +0 -1
  21. package/dist/transpiled/Media/Media.integration-test.js +0 -40
  22. package/dist/transpiled/Media/Media.integration-test.js.map +0 -1
  23. package/dist/transpiled/Media/Media.test.js +0 -291
  24. package/dist/transpiled/Media/Media.test.js.map +0 -1
  25. package/dist/transpiled/Media/Track/BufferSourceAudioTrack.js +0 -4
  26. package/dist/transpiled/Media/Track/BufferSourceAudioTrack.js.map +0 -1
  27. package/dist/transpiled/Media/Track/CameraVideoTrack.js +0 -4
  28. package/dist/transpiled/Media/Track/CameraVideoTrack.js.map +0 -1
  29. package/dist/transpiled/Media/Track/LocalAudioTrack.js +0 -4
  30. package/dist/transpiled/Media/Track/LocalAudioTrack.js.map +0 -1
  31. package/dist/transpiled/Media/Track/LocalTrack.js +0 -4
  32. package/dist/transpiled/Media/Track/LocalTrack.js.map +0 -1
  33. package/dist/transpiled/Media/Track/LocalVideoTrack.js +0 -4
  34. package/dist/transpiled/Media/Track/LocalVideoTrack.js.map +0 -1
  35. package/dist/transpiled/Media/Track/MicrophoneAudioTrack.js +0 -4
  36. package/dist/transpiled/Media/Track/MicrophoneAudioTrack.js.map +0 -1
  37. package/dist/transpiled/Media/Track/RemoteAudioTrack.js +0 -4
  38. package/dist/transpiled/Media/Track/RemoteAudioTrack.js.map +0 -1
  39. package/dist/transpiled/Media/Track/RemoteTrack.js +0 -4
  40. package/dist/transpiled/Media/Track/RemoteTrack.js.map +0 -1
  41. package/dist/transpiled/Media/Track/RemoteVideoTrack.js +0 -4
  42. package/dist/transpiled/Media/Track/RemoteVideoTrack.js.map +0 -1
  43. package/dist/transpiled/Media/Track/Track.integration-test.js +0 -118
  44. package/dist/transpiled/Media/Track/Track.integration-test.js.map +0 -1
  45. package/dist/transpiled/Media/Track/Track.js +0 -120
  46. package/dist/transpiled/Media/Track/Track.js.map +0 -1
  47. package/dist/transpiled/Media/Track/Track.test.js +0 -26
  48. package/dist/transpiled/Media/Track/Track.test.js.map +0 -1
  49. package/dist/transpiled/Media/Track/TrackMock.js +0 -109
  50. package/dist/transpiled/Media/Track/TrackMock.js.map +0 -1
  51. package/dist/transpiled/Media/Track/Utils.js +0 -31
  52. package/dist/transpiled/Media/Track/Utils.js.map +0 -1
  53. package/dist/transpiled/Media/Track/index.js +0 -2
  54. package/dist/transpiled/Media/Track/index.js.map +0 -1
  55. package/dist/transpiled/Media/index.js +0 -401
  56. package/dist/transpiled/Media/index.js.map +0 -1
  57. package/dist/transpiled/MediaConnection/EventEmitter.js +0 -4
  58. package/dist/transpiled/MediaConnection/EventEmitter.js.map +0 -1
  59. package/dist/transpiled/MediaConnection/MediaConnection.integration-test.js +0 -218
  60. package/dist/transpiled/MediaConnection/MediaConnection.integration-test.js.map +0 -1
  61. package/dist/transpiled/MediaConnection/MediaConnection.js +0 -357
  62. package/dist/transpiled/MediaConnection/MediaConnection.js.map +0 -1
  63. package/dist/transpiled/MediaConnection/MediaConnection.test.js +0 -427
  64. package/dist/transpiled/MediaConnection/MediaConnection.test.js.map +0 -1
  65. package/dist/transpiled/MediaConnection/RoapMediaConnection.integration-test.js +0 -368
  66. package/dist/transpiled/MediaConnection/RoapMediaConnection.integration-test.js.map +0 -1
  67. package/dist/transpiled/MediaConnection/RoapMediaConnection.js +0 -148
  68. package/dist/transpiled/MediaConnection/RoapMediaConnection.js.map +0 -1
  69. package/dist/transpiled/MediaConnection/RoapMediaConnection.test.js +0 -320
  70. package/dist/transpiled/MediaConnection/RoapMediaConnection.test.js.map +0 -1
  71. package/dist/transpiled/MediaConnection/config.js +0 -2
  72. package/dist/transpiled/MediaConnection/config.js.map +0 -1
  73. package/dist/transpiled/MediaConnection/eventTypes.js +0 -36
  74. package/dist/transpiled/MediaConnection/eventTypes.js.map +0 -1
  75. package/dist/transpiled/MediaConnection/index.js +0 -4
  76. package/dist/transpiled/MediaConnection/index.js.map +0 -1
  77. package/dist/transpiled/MediaConnection/logger.js +0 -22
  78. package/dist/transpiled/MediaConnection/logger.js.map +0 -1
  79. package/dist/transpiled/MediaConnection/roap.js +0 -399
  80. package/dist/transpiled/MediaConnection/roap.js.map +0 -1
  81. package/dist/transpiled/MediaConnection/roap.test.js +0 -873
  82. package/dist/transpiled/MediaConnection/roap.test.js.map +0 -1
  83. package/dist/transpiled/MediaConnection/roap.typegen.js +0 -2
  84. package/dist/transpiled/MediaConnection/roap.typegen.js.map +0 -1
  85. package/dist/transpiled/MediaConnection/testUtils/EventListener.js +0 -102
  86. package/dist/transpiled/MediaConnection/testUtils/EventListener.js.map +0 -1
  87. package/dist/transpiled/MediaConnection/testUtils/RoapListener.js +0 -15
  88. package/dist/transpiled/MediaConnection/testUtils/RoapListener.js.map +0 -1
  89. package/dist/transpiled/MediaConnection/testUtils/index.js +0 -17
  90. package/dist/transpiled/MediaConnection/testUtils/index.js.map +0 -1
  91. package/dist/transpiled/MediaConnection/testUtils/logger.js +0 -31
  92. package/dist/transpiled/MediaConnection/testUtils/logger.js.map +0 -1
  93. package/dist/transpiled/MediaConnection/testUtils.js +0 -14
  94. package/dist/transpiled/MediaConnection/testUtils.js.map +0 -1
  95. package/dist/transpiled/MediaConnection/utils.js +0 -71
  96. package/dist/transpiled/MediaConnection/utils.js.map +0 -1
  97. package/dist/transpiled/MediaConnection/utils.test-fixtures.js +0 -287
  98. package/dist/transpiled/MediaConnection/utils.test-fixtures.js.map +0 -1
  99. package/dist/transpiled/MediaConnection/utils.test.js +0 -20
  100. package/dist/transpiled/MediaConnection/utils.test.js.map +0 -1
  101. package/dist/transpiled/common/peerConnectionMock.js +0 -52
  102. package/dist/transpiled/common/peerConnectionMock.js.map +0 -1
  103. package/dist/transpiled/constants.js +0 -9
  104. package/dist/transpiled/constants.js.map +0 -1
  105. package/dist/transpiled/index.intergation-test.js +0 -14
  106. package/dist/transpiled/index.intergation-test.js.map +0 -1
  107. package/dist/transpiled/index.js +0 -41
  108. package/dist/transpiled/index.js.map +0 -1
package/README.md CHANGED
@@ -1,80 +1,4 @@
1
1
  ![Logo of the project](https://avatars.githubusercontent.com/u/15900782?s=100&v=4)
2
- # webrtc-media-core
2
+ # internal-media-core
3
3
 
4
- > A framework for interacting with WebRTC across multiple browsers.
5
-
6
- > https://confluence-eng-gpk2.cisco.com/conf/display/WBXT/Webrtc+Media+Core+Framework
7
-
8
-
9
- ## Developing
10
-
11
- ```shell
12
- git clone https://sqbu-github.cisco.com/WebExSquared/webrtc-media-core
13
- cd webrtc-media-core/
14
- yarn install
15
- ```
16
-
17
- ### Building
18
-
19
- If your project needs some additional steps for the developer to build the
20
- project after some code changes, state them here:
21
-
22
- ```shell
23
- yarn build
24
- ```
25
-
26
- ### Testing
27
-
28
- ```shell
29
- yarn test
30
- ```
31
-
32
- ### Testing in debug mode
33
-
34
- ```shell
35
- yarn test:debug
36
- ```
37
-
38
- 1. After the above command, open up http://localhost:9876/debug.html in browser and do inspect element. (Note - HTTP & not HTTPS)
39
- 1. Here, the test files would be available in sources tab, where debuggers can be set and refresh the page to run tests again.
40
- 1. It also looks out for changes. So, whenever the test file changes, the test cases re-run in terminal and latest changes reflect in debug.html upon page refresh.
41
-
42
- ### Integration Testing
43
-
44
- ```shell
45
- yarn run test:integration
46
- ```
47
-
48
- ### Integration Testing with Sauce Labs
49
-
50
- 1. Add ```.env``` file in your project.
51
- ```shell
52
- #.env
53
- # Update your SAUCE_USERNAME and SAUCE_ACCESS_KEY environment variables below
54
- SAUCE_USERNAME="YOUR_SAUCE_USERNAME"
55
- SAUCE_ACCESS_KEY="YOUR_SAUCE_ACCESS_KEY"
56
- ```
57
- 2. Make sure your `SAUCE_USERNAME` and `SAUCE_ACCESS_KEY` environment variables are set in ```.env``` file.
58
-
59
- `SAUCE_USERNAME` and `SAUCE_ACCESS_KEY` are credentials from your [SauceLabs account](https://docs.saucelabs.com/basics/environment-variables/)
60
-
61
- 3. Run the below command in the terminal.
62
- ```shell
63
- SAUCE=true yarn run test:integration
64
- ```
65
- 4. Sauce labs link in the results or Open your Sauce labs and filter test with your name and see the test case.
66
-
67
- ### Deploying / Publishing
68
-
69
- In case there's some step you have to take that publishes this project to a
70
- server, this is the right time to state it.
71
-
72
- ```shell
73
- yarn release
74
- ```
75
-
76
- ### Contribute
77
-
78
- Thank you for considering contributing to this repository!
79
- Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for more details about testing, building the packages
80
- and submitting pull requests for suggested changes. Pull requests welcome.
4
+ > This package is for webex internal conception only
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "@webex/internal-media-core",
3
- "version": "0.0.1-beta",
3
+ "version": "0.0.4-beta",
4
4
  "files": [
5
- "dist"
5
+ "dist/esm",
6
+ "dist/types"
6
7
  ],
7
8
  "main": "dist/esm/index.js",
8
9
  "module": "dist/esm/index.js",
@@ -1,41 +0,0 @@
1
- const LEVELS = {
2
- error: 1,
3
- warn: 2,
4
- info: 3,
5
- debug: 4,
6
- };
7
- const logFormat = (level, logDetails) => {
8
- const { ID, mediaType, action, description, error } = logDetails;
9
- const timestamp = new Date().toISOString();
10
- const errorText = error ? (error.stack ? `${error.message}: ${error.stack}` : `${error}`) : '';
11
- return `${timestamp} ${level} ${ID || ''} ${mediaType} ${action} ${description} ${errorText}`
12
- .replace(/\s+/g, ' ')
13
- .trim();
14
- };
15
- let currentLevel = 'error';
16
- const log = (level, args) => {
17
- if (LEVELS[level] <= LEVELS[currentLevel]) {
18
- console.log(logFormat(level, args));
19
- }
20
- };
21
- const logger = {
22
- info: (args) => log('info', args),
23
- warn: (args) => log('warn', args),
24
- error: (args) => log('error', args),
25
- debug: (args) => log('debug', args),
26
- };
27
- for (const level of ['info', 'warn', 'error', 'debug']) {
28
- logger[level] = (logInfo) => {
29
- const { ID, mediaType, action, description, error } = logInfo;
30
- currentLevel = level;
31
- return log(level, {
32
- ID,
33
- mediaType,
34
- action,
35
- description,
36
- error,
37
- });
38
- };
39
- }
40
- export default logger;
41
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Logger/index.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,GAAoB;IAC9B,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AAiBF,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,UAA2B,EAAE,EAAE;IAC/D,MAAM,EAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAC,GAAG,UAAU,CAAC;IAC/D,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAG3C,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/F,OAAO,GAAG,SAAS,IAAI,KAAK,IAAI,EAAE,IAAI,EAAE,IAAI,SAAS,IAAI,MAAM,IAAI,WAAW,IAAI,SAAS,EAAE;SAC1F,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,IAAI,YAAY,GAAG,OAAO,CAAC;AAE3B,MAAM,GAAG,GAAG,CAAC,KAAa,EAAE,IAAqB,EAAE,EAAE;IACnD,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE;QAEzC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;KACrC;AACH,CAAC,CAAC;AAGF,MAAM,MAAM,GAAoB;IAC9B,IAAI,EAAE,CAAC,IAAqB,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;IAClD,IAAI,EAAE,CAAC,IAAqB,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;IAClD,KAAK,EAAE,CAAC,IAAqB,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;IACpD,KAAK,EAAE,CAAC,IAAqB,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;CACrD,CAAC;AAEF,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;IAEtD,MAAM,CAAC,KAA8B,CAAC,GAAG,CAAC,OAAwB,EAAQ,EAAE;QAC1E,MAAM,EAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAC,GAAG,OAAO,CAAC;QAE5D,YAAY,GAAG,KAAK,CAAC;QAErB,OAAO,GAAG,CAAC,KAAK,EAAE;YAChB,EAAE;YACF,SAAS;YACT,MAAM;YACN,WAAW;YACX,KAAK;SACN,CAAC,CAAC;IACL,CAAC,CAAC;CACH;AAED,eAAe,MAAM,CAAC"}
@@ -1,21 +0,0 @@
1
- export var DeviceKinds;
2
- (function (DeviceKinds) {
3
- DeviceKinds["AUDIO_INPUT"] = "audioinput";
4
- DeviceKinds["AUDIO_OUTPUT"] = "audiooutput";
5
- DeviceKinds["VIDEO_INPUT"] = "videoinput";
6
- })(DeviceKinds || (DeviceKinds = {}));
7
- export class Device {
8
- ID;
9
- groupID;
10
- label;
11
- kind;
12
- #mediaDeviceInfo;
13
- constructor(mediaDeviceInfo) {
14
- this.#mediaDeviceInfo = mediaDeviceInfo;
15
- this.ID = this.#mediaDeviceInfo.deviceId;
16
- this.groupID = this.#mediaDeviceInfo.groupId;
17
- this.label = this.#mediaDeviceInfo.label;
18
- this.kind = this.#mediaDeviceInfo.kind;
19
- }
20
- }
21
- //# sourceMappingURL=Device.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Device.js","sourceRoot":"","sources":["../../../../src/Media/Device/Device.ts"],"names":[],"mappings":"AACA,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,yCAA0B,CAAA;IAC1B,2CAA4B,CAAA;IAC5B,yCAA0B,CAAA;AAC5B,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAWD,MAAM,OAAO,MAAM;IACjB,EAAE,CAAS;IAEX,OAAO,CAAS;IAEhB,KAAK,CAAS;IAEd,IAAI,CAAkB;IAItB,gBAAgB,CAAkB;IAElC,YAAY,eAAgC;QAC1C,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QAGxC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;IAEzC,CAAC;CACF"}
@@ -1,65 +0,0 @@
1
- export const fakeDevices = [
2
- {
3
- deviceId: 'default',
4
- kind: 'audioinput',
5
- label: 'Fake Default Audio Input',
6
- groupId: 'a6b4fb6a105c92a16a6e2f3fb4efe289a783304764be026d4f973febf805c0c1',
7
- },
8
- {
9
- deviceId: '47dd6c612bb77e7992cb8f026b660c59648e8105baf4c569f96d226738add9a4',
10
- kind: 'audioinput',
11
- label: 'Fake Audio Input 1',
12
- groupId: '99782d7b13f331947c1a9865b27cf7eabffbfd48cfe21ab99867d101c6d7b4d0',
13
- },
14
- {
15
- deviceId: '3786a0243c13d1bc4f39b8091b468f43b14ace215ecd4e878268f095a9d3ba94',
16
- kind: 'audioinput',
17
- label: 'Fake Audio Input 2',
18
- groupId: 'cb709a56a05b4683a1ef0e8f52144a2afcdc80137a87b8f398c00d1e07d46c48',
19
- },
20
- {
21
- deviceId: '479d27bedc007f21231d7e30e20b8ad0c220cc1dd7a800256564c5134167d542',
22
- kind: 'videoinput',
23
- label: 'fake_device_0',
24
- groupId: '6ef67974f928bbe32043f571d203d39659f9fa42ce1588745f783a476fbfa6a8',
25
- },
26
- {
27
- deviceId: 'default',
28
- kind: 'audiooutput',
29
- label: 'Fake Default Audio Output',
30
- groupId: 'a6b4fb6a105c92a16a6e2f3fb4efe289a783304764be026d4f973febf805c0c1',
31
- },
32
- {
33
- deviceId: 'd9feb221c64d6bf7c3ba735c0e70afc2bcd4598053ec3a3f11101d28f6b76945',
34
- kind: 'audiooutput',
35
- label: 'Fake Audio Output 1',
36
- groupId: 'a0df3f514c52d1e5a567863b9fd852f53d259c09640ace42d724867eafbfe593',
37
- },
38
- {
39
- deviceId: 'd2e765431584de6404c45f91c0e3b2c48693305b1341de7ae909925108a1758f',
40
- kind: 'audiooutput',
41
- label: 'Fake Audio Output 2',
42
- groupId: '14ec82d4008126d0fe70c3e61646eb966a423cddfa7da12749e9b70cedbb639b',
43
- },
44
- ];
45
- export const mockMediaStreamTrack = {
46
- kind: 'video',
47
- muted: true,
48
- label: 'Fake Default Video Input',
49
- contentHint: 'sample',
50
- enabled: true,
51
- readyState: 'live',
52
- stop: () => {
53
- },
54
- applyConstraints: () => {
55
- },
56
- getSettings: () => {
57
- return {
58
- frameRate: 10,
59
- width: 320,
60
- height: 180,
61
- sampleRate: 48000,
62
- };
63
- },
64
- };
65
- //# sourceMappingURL=DeviceMocks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DeviceMocks.js","sourceRoot":"","sources":["../../../../src/Media/Device/DeviceMocks.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB;QACE,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,0BAA0B;QACjC,OAAO,EAAE,kEAAkE;KAC5E;IACD;QACE,QAAQ,EAAE,kEAAkE;QAC5E,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,oBAAoB;QAC3B,OAAO,EAAE,kEAAkE;KAC5E;IACD;QACE,QAAQ,EAAE,kEAAkE;QAC5E,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,oBAAoB;QAC3B,OAAO,EAAE,kEAAkE;KAC5E;IACD;QACE,QAAQ,EAAE,kEAAkE;QAC5E,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,eAAe;QACtB,OAAO,EAAE,kEAAkE;KAC5E;IACD;QACE,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,2BAA2B;QAClC,OAAO,EAAE,kEAAkE;KAC5E;IACD;QACE,QAAQ,EAAE,kEAAkE;QAC5E,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,qBAAqB;QAC5B,OAAO,EAAE,kEAAkE;KAC5E;IACD;QACE,QAAQ,EAAE,kEAAkE;QAC5E,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,qBAAqB;QAC5B,OAAO,EAAE,kEAAkE;KAC5E;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,0BAA0B;IACjC,WAAW,EAAE,QAAQ;IACrB,OAAO,EAAE,IAAI;IACb,UAAU,EAAE,MAAM;IAClB,IAAI,EAAE,GAAS,EAAE;IAEjB,CAAC;IACD,gBAAgB,EAAE,GAAS,EAAE;IAE7B,CAAC;IACD,WAAW,EAAE,GAAuB,EAAE;QACpC,OAAO;YACL,SAAS,EAAE,EAAE;YACb,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,GAAG;YACX,UAAU,EAAE,KAAK;SAClB,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './Device';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Media/Device/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
@@ -1,47 +0,0 @@
1
- import { expect } from 'chai';
2
- import { isValidTrack } from './index';
3
- import { getTrackSettings } from '../../Track/Utils';
4
- import { createAudioTrack } from '../../index';
5
- describe('BNR', () => {
6
- describe('isValidTrack()', () => {
7
- let track;
8
- beforeEach(async () => {
9
- track = await createAudioTrack();
10
- });
11
- afterEach(() => {
12
- if (track) {
13
- track.stop();
14
- }
15
- });
16
- it('should have isValidTrack method', () => {
17
- expect(typeof isValidTrack).to.eq('function');
18
- });
19
- it('should return true if track is valid', () => {
20
- const receivedTrack = track.getMediaStreamTrack();
21
- const result = isValidTrack(receivedTrack);
22
- expect(result).to.eq(true);
23
- });
24
- });
25
- describe('getTrackSettings()', () => {
26
- let track;
27
- beforeEach(async () => {
28
- track = await createAudioTrack();
29
- });
30
- afterEach(() => {
31
- if (track) {
32
- track.stop();
33
- }
34
- });
35
- it('should have getTrackSettings method', () => {
36
- expect(typeof getTrackSettings).to.eq('function');
37
- });
38
- if (navigator.mediaDevices.getSupportedConstraints().sampleRate) {
39
- it('should return settings of track', () => {
40
- const receivedTrack = track.getMediaStreamTrack();
41
- const result = getTrackSettings(receivedTrack);
42
- expect(result).to.have.property('sampleRate');
43
- });
44
- }
45
- });
46
- });
47
- //# sourceMappingURL=Bnr.integration-test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Bnr.integration-test.js","sourceRoot":"","sources":["../../../../../src/Media/Effects/BNR/Bnr.integration-test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAC,YAAY,EAAC,MAAM,SAAS,CAAC;AACrC,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAE7C,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;IACnB,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,IAAI,KAAqB,CAAC;QAE1B,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,KAAK,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,GAAG,EAAE;YACb,IAAI,KAAK,EAAE;gBACT,KAAK,CAAC,IAAI,EAAE,CAAC;aACd;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,CAAC,OAAO,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,aAAa,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;YAClD,MAAM,MAAM,GAAY,YAAY,CAAC,aAAa,CAAC,CAAC;YAEpD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IAQL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,IAAI,KAAqB,CAAC;QAE1B,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,KAAK,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,GAAG,EAAE;YACb,IAAI,KAAK,EAAE;gBACT,KAAK,CAAC,IAAI,EAAE,CAAC;aACd;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAGH,IAAI,SAAS,CAAC,YAAY,CAAC,uBAAuB,EAAE,CAAC,UAAU,EAAE;YAC/D,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;gBACzC,MAAM,aAAa,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;gBAClD,MAAM,MAAM,GAAuB,gBAAgB,CAAC,aAAa,CAAC,CAAC;gBAEnE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,187 +0,0 @@
1
- import { MEDIA_STREAM_TRACK } from '../../../constants';
2
- import logger from '../../../Logger';
3
- import { getTrackSettings } from '../../Track/Utils';
4
- const bnrProcessor = {
5
- isModuleAdded: false,
6
- workletProcessorUrl: 'https://models.intelligence.webex.com/bnr/1.1.0/noise-reduction-effect.worklet.js',
7
- };
8
- function isValidTrack(track) {
9
- const supportedConstraints = navigator.mediaDevices.getSupportedConstraints();
10
- const supportedSampleRates = [16000, 32000, 48000];
11
- if (supportedConstraints.sampleRate) {
12
- const settings = getTrackSettings(track);
13
- const { sampleRate } = settings;
14
- if (sampleRate && !supportedSampleRates.includes(sampleRate)) {
15
- const error = new Error(`Sample rate of ${sampleRate} is not supported.`);
16
- logger.error({
17
- ID: track.id,
18
- mediaType: MEDIA_STREAM_TRACK,
19
- action: 'isValidTrack()',
20
- description: error.message,
21
- error,
22
- });
23
- throw error;
24
- }
25
- else {
26
- return true;
27
- }
28
- }
29
- else {
30
- const error = new Error('Not supported');
31
- logger.info({
32
- ID: track.id,
33
- mediaType: MEDIA_STREAM_TRACK,
34
- action: 'isValidTrack()',
35
- description: error.message,
36
- error,
37
- });
38
- return true;
39
- }
40
- }
41
- async function loadProcessor() {
42
- logger.info({
43
- mediaType: MEDIA_STREAM_TRACK,
44
- action: 'loadProcessor()',
45
- description: 'Creating and loading BNR module',
46
- });
47
- const audioContext = new AudioContext();
48
- bnrProcessor.isModuleAdded = true;
49
- bnrProcessor.audioContext = audioContext;
50
- await audioContext.audioWorklet.addModule(bnrProcessor.workletProcessorUrl);
51
- bnrProcessor.workletNode = new AudioWorkletNode(audioContext, 'noise-reduction-worklet-processor');
52
- return audioContext;
53
- }
54
- async function enableBNR(track) {
55
- logger.debug({
56
- ID: track.id,
57
- mediaType: MEDIA_STREAM_TRACK,
58
- action: 'enableBNR()',
59
- description: 'Called',
60
- });
61
- try {
62
- isValidTrack(track);
63
- const streamFromTrack = new MediaStream();
64
- streamFromTrack.addTrack(track);
65
- let audioContext;
66
- let workletNode;
67
- logger.info({
68
- ID: track.id,
69
- mediaType: MEDIA_STREAM_TRACK,
70
- action: 'enableBNR()',
71
- description: 'Checking if BNR module is present already',
72
- });
73
- if (!bnrProcessor.isModuleAdded) {
74
- logger.debug({
75
- ID: track.id,
76
- mediaType: MEDIA_STREAM_TRACK,
77
- action: 'enableBNR()',
78
- description: 'BNR module is not present already',
79
- });
80
- audioContext = await loadProcessor();
81
- }
82
- else {
83
- logger.debug({
84
- ID: track.id,
85
- mediaType: MEDIA_STREAM_TRACK,
86
- action: 'enableBNR()',
87
- description: 'BNR module is present already',
88
- });
89
- logger.info({
90
- ID: track.id,
91
- mediaType: MEDIA_STREAM_TRACK,
92
- action: 'enableBNR()',
93
- description: 'Using existing AudioContext',
94
- });
95
- audioContext = bnrProcessor.audioContext;
96
- }
97
- logger.info({
98
- ID: track.id,
99
- mediaType: MEDIA_STREAM_TRACK,
100
- action: 'enableBNR()',
101
- description: 'Creating worklet node, connecting source and destination streams',
102
- });
103
- workletNode = bnrProcessor.workletNode;
104
- workletNode.port.postMessage('ENABLE');
105
- bnrProcessor.sourceNode = audioContext.createMediaStreamSource(streamFromTrack);
106
- bnrProcessor.sourceNode.connect(workletNode);
107
- bnrProcessor.destinationStream = audioContext.createMediaStreamDestination();
108
- workletNode.connect(bnrProcessor.destinationStream);
109
- logger.info({
110
- ID: track.id,
111
- mediaType: MEDIA_STREAM_TRACK,
112
- action: 'enableBNR()',
113
- description: 'Obtaining noise reduced track and returning',
114
- });
115
- const destinationStream = bnrProcessor.destinationStream.stream;
116
- const [destinationTrack] = destinationStream.getAudioTracks();
117
- return destinationTrack;
118
- }
119
- catch (error) {
120
- logger.error({
121
- ID: track.id,
122
- mediaType: MEDIA_STREAM_TRACK,
123
- action: 'enableBNR()',
124
- description: 'Error in enableBNR',
125
- error: error,
126
- });
127
- throw error;
128
- }
129
- }
130
- function disableBNR() {
131
- logger.debug({
132
- mediaType: MEDIA_STREAM_TRACK,
133
- action: 'disableBNR()',
134
- description: 'Called',
135
- });
136
- try {
137
- let workletNode;
138
- logger.info({
139
- mediaType: MEDIA_STREAM_TRACK,
140
- action: 'disableBNR()',
141
- description: 'Checking if BNR is enabled before disabling',
142
- });
143
- if (!bnrProcessor.isModuleAdded) {
144
- const error = new Error('Can not disable as BNR is not enabled');
145
- logger.error({
146
- mediaType: MEDIA_STREAM_TRACK,
147
- action: 'disableBNR()',
148
- description: 'Can not disable as BNR is not enabled',
149
- });
150
- throw error;
151
- }
152
- else {
153
- logger.info({
154
- mediaType: MEDIA_STREAM_TRACK,
155
- action: 'disableBNR()',
156
- description: 'Using existing AudioWorkletNode for disabling BNR',
157
- });
158
- workletNode = bnrProcessor.workletNode;
159
- }
160
- workletNode.port.postMessage('DISPOSE');
161
- logger.info({
162
- mediaType: MEDIA_STREAM_TRACK,
163
- action: 'disableBNR()',
164
- description: 'Obtaining raw media stream track and removing bnr context',
165
- });
166
- const bnrDisabledStream = bnrProcessor.sourceNode
167
- .mediaStream;
168
- const [track] = bnrDisabledStream?.getAudioTracks();
169
- bnrProcessor.isModuleAdded = false;
170
- delete bnrProcessor.workletNode;
171
- delete bnrProcessor.audioContext;
172
- delete bnrProcessor.sourceNode;
173
- delete bnrProcessor.destinationStream;
174
- return track;
175
- }
176
- catch (error) {
177
- logger.error({
178
- mediaType: MEDIA_STREAM_TRACK,
179
- action: 'disableBNR()',
180
- description: 'Error in disableBNR',
181
- error: error,
182
- });
183
- throw error;
184
- }
185
- }
186
- export { isValidTrack, enableBNR, disableBNR };
187
- //# sourceMappingURL=Bnr.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Bnr.js","sourceRoot":"","sources":["../../../../../src/Media/Effects/BNR/Bnr.ts"],"names":[],"mappings":"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"}
@@ -1,37 +0,0 @@
1
- import { disableBNR, enableBNR } from './index';
2
- import SetupBNRMocks from './BnrMock';
3
- describe('BNR', () => {
4
- beforeAll(() => {
5
- SetupBNRMocks();
6
- });
7
- describe('enableBNR()', () => {
8
- it('returns MediaStreamTrack', async () => {
9
- const [inputTrack] = (await navigator.mediaDevices.getUserMedia({ audio: true })).getAudioTracks();
10
- const outputTrack = await enableBNR(inputTrack);
11
- expect(outputTrack).toBeInstanceOf(MediaStreamTrack);
12
- });
13
- it('throws error for invalid sample rate', async () => {
14
- const [inputTrack] = (await navigator.mediaDevices.getUserMedia({ audio: true })).getAudioTracks();
15
- inputTrack.getSettings = jest.fn().mockReturnValueOnce({ sampleRate: 49000 });
16
- enableBNR(inputTrack).catch((error) => {
17
- expect(error.message).toBe('Sample rate of 49000 is not supported.');
18
- });
19
- });
20
- });
21
- describe('disableBNR()', () => {
22
- it('returns MediaStreamTrack', () => {
23
- const outputTrack = disableBNR();
24
- expect(outputTrack).toBeInstanceOf(MediaStreamTrack);
25
- });
26
- it('throws error when BNR is not already enabled before disabling', () => {
27
- try {
28
- disableBNR();
29
- }
30
- catch (error) {
31
- if (error instanceof Error)
32
- expect(error.message).toBe('Can not disable as BNR is not enabled');
33
- }
34
- });
35
- });
36
- });
37
- //# sourceMappingURL=Bnr.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Bnr.test.js","sourceRoot":"","sources":["../../../../../src/Media/Effects/BNR/Bnr.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,SAAS,EAAC,MAAM,SAAS,CAAC;AAC9C,OAAO,aAAa,MAAM,WAAW,CAAC;AAEtC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;IACnB,SAAS,CAAC,GAAG,EAAE;QACb,aAAa,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;YACxC,MAAM,CAAC,UAAU,CAAC,GAAG,CACnB,MAAM,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CACzD,CAAC,cAAc,EAAE,CAAC;YAEnB,MAAM,WAAW,GAAqB,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC;YAElE,MAAM,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,CAAC,UAAU,CAAC,GAAG,CACnB,MAAM,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CACzD,CAAC,cAAc,EAAE,CAAC;YAEnB,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,EAAC,UAAU,EAAE,KAAK,EAAC,CAAC,CAAC;YAE5E,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACpC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAClC,MAAM,WAAW,GAAqB,UAAU,EAAE,CAAC;YAEnD,MAAM,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;YACvE,IAAI;gBACF,UAAU,EAAE,CAAC;aACd;YAAC,OAAO,KAAK,EAAE;gBACd,IAAI,KAAK,YAAY,KAAK;oBACxB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;aACvE;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,92 +0,0 @@
1
- class FakeMediaStream {
2
- active;
3
- id;
4
- constructor() {
5
- this.active = false;
6
- this.id = '5146425f-c240-48cc-b86b-27d422988fb7';
7
- }
8
- addTrack = () => undefined;
9
- }
10
- class FakeAudioContext {
11
- baseLatency;
12
- currentTime;
13
- destination;
14
- listener;
15
- sampleRate;
16
- state;
17
- audioWorklet;
18
- constructor() {
19
- this.state = 'running';
20
- this.baseLatency = 0.005333333333333333;
21
- this.currentTime = 2.7946666666666666;
22
- this.sampleRate = 48000;
23
- this.audioWorklet = {
24
- addModule: async () => undefined,
25
- };
26
- }
27
- onstatechange = null;
28
- createMediaStreamSource() {
29
- return {
30
- connect: () => undefined,
31
- mediaStream: {
32
- getAudioTracks() {
33
- return [new MediaStreamTrack()];
34
- },
35
- },
36
- };
37
- }
38
- createMediaStreamDestination() {
39
- return {
40
- stream: {
41
- getAudioTracks() {
42
- return [new MediaStreamTrack()];
43
- },
44
- },
45
- };
46
- }
47
- }
48
- class FakeAudioWorkletNode {
49
- port;
50
- constructor() {
51
- this.port = {
52
- postMessage: () => undefined,
53
- };
54
- }
55
- connect() {
56
- }
57
- }
58
- class FakeMediaStreamTrack {
59
- kind;
60
- enabled;
61
- label;
62
- muted;
63
- contentHint;
64
- readyState;
65
- constructor() {
66
- this.kind = 'audio';
67
- this.enabled = true;
68
- this.label = 'Default - MacBook Pro Microphone (Built-in)';
69
- this.muted = false;
70
- this.readyState = 'live';
71
- this.contentHint = '';
72
- }
73
- }
74
- export default () => {
75
- Object.defineProperty(window, 'MediaStream', {
76
- writable: true,
77
- value: FakeMediaStream,
78
- });
79
- Object.defineProperty(window, 'AudioContext', {
80
- writable: true,
81
- value: FakeAudioContext,
82
- });
83
- Object.defineProperty(window, 'AudioWorkletNode', {
84
- writable: true,
85
- value: FakeAudioWorkletNode,
86
- });
87
- Object.defineProperty(window, 'MediaStreamTrack', {
88
- writable: true,
89
- value: FakeMediaStreamTrack,
90
- });
91
- };
92
- //# sourceMappingURL=BnrMock.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BnrMock.js","sourceRoot":"","sources":["../../../../../src/Media/Effects/BNR/BnrMock.ts"],"names":[],"mappings":"AACA,MAAM,eAAe;IACnB,MAAM,CAAU;IAEhB,EAAE,CAAS;IAEX;QACE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,EAAE,GAAG,sCAAsC,CAAC;IACnD,CAAC;IAED,QAAQ,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,gBAAgB;IACpB,WAAW,CAAS;IAEpB,WAAW,CAAS;IAEpB,WAAW,CAAwB;IAEnC,QAAQ,CAAiB;IAEzB,UAAU,CAAS;IAEnB,KAAK,CAAS;IAEd,YAAY,CAAe;IAE3B;QACE,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,oBAAoB,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,kBAAkB,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG;YAClB,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;SACjC,CAAC;IACJ,CAAC;IAED,aAAa,GAAG,IAAI,CAAC;IAErB,uBAAuB;QACrB,OAAO;YACL,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS;YACxB,WAAW,EAAE;gBACX,cAAc;oBACZ,OAAO,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;gBAClC,CAAC;aACF;SACF,CAAC;IACJ,CAAC;IAED,4BAA4B;QAC1B,OAAO;YACL,MAAM,EAAE;gBACN,cAAc;oBACZ,OAAO,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;gBAClC,CAAC;aACF;SACF,CAAC;IACJ,CAAC;CACF;AAED,MAAM,oBAAoB;IACxB,IAAI,CAAS;IAEb;QACE,IAAI,CAAC,IAAI,GAAG;YACV,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS;SAC7B,CAAC;IACJ,CAAC;IAED,OAAO;IAEP,CAAC;CACF;AAED,MAAM,oBAAoB;IACxB,IAAI,CAAS;IAEb,OAAO,CAAU;IAEjB,KAAK,CAAS;IAEd,KAAK,CAAU;IAEf,WAAW,CAAS;IAEpB,UAAU,CAAS;IAEnB;QACE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,6CAA6C,CAAC;QAC3D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;CACF;AAED,eAAe,GAAG,EAAE;IAClB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE;QAC3C,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,eAAe;KACvB,CAAC,CAAC;IAEH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE;QAC5C,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,gBAAgB;KACxB,CAAC,CAAC;IAEH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,kBAAkB,EAAE;QAChD,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,oBAAoB;KAC5B,CAAC,CAAC;IAEH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,kBAAkB,EAAE;QAChD,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,oBAAoB;KAC5B,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './Bnr';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/Media/Effects/BNR/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC"}