agora-electron-sdk 4.2.6 → 4.3.0-dev.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 (172) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/js/Private/AgoraBase.js +139 -174
  3. package/js/Private/AgoraMediaBase.js +49 -20
  4. package/js/Private/AgoraMediaPlayerTypes.js +32 -23
  5. package/js/Private/IAgoraH265Transcoder.js +39 -0
  6. package/js/Private/IAgoraMediaStreamingSource.js +32 -32
  7. package/js/Private/IAgoraMusicContentCenter.js +19 -19
  8. package/js/Private/IAgoraRhythmPlayer.js +9 -9
  9. package/js/Private/IAgoraRtcEngine.js +12 -12
  10. package/js/Private/IAgoraSpatialAudio.js +3 -31
  11. package/js/Private/extension/IAgoraH265TranscoderExtension.js +2 -0
  12. package/js/Private/impl/AgoraMediaBaseImpl.js +26 -2
  13. package/js/Private/impl/IAgoraH265TranscoderImpl.js +119 -0
  14. package/js/Private/impl/IAgoraMediaEngineImpl.js +13 -13
  15. package/js/Private/impl/IAgoraMediaPlayerImpl.js +92 -74
  16. package/js/Private/impl/IAgoraMediaPlayerSourceImpl.js +12 -2
  17. package/js/Private/impl/IAgoraMediaRecorderImpl.js +2 -2
  18. package/js/Private/impl/IAgoraMusicContentCenterImpl.js +20 -20
  19. package/js/Private/impl/IAgoraRtcEngineExImpl.js +66 -84
  20. package/js/Private/impl/IAgoraRtcEngineImpl.js +456 -440
  21. package/js/Private/impl/IAgoraSpatialAudioImpl.js +157 -181
  22. package/js/Private/impl/IAudioDeviceManagerImpl.js +22 -22
  23. package/js/Private/internal/AgoraH265TranscoderInternal.js +86 -0
  24. package/js/Private/internal/AgoraMediaBaseInternal.js +34 -0
  25. package/js/Private/internal/IrisApiEngine.js +35 -20
  26. package/js/Private/internal/LocalSpatialAudioEngineInternal.js +0 -39
  27. package/js/Private/internal/MediaPlayerInternal.js +22 -21
  28. package/js/Private/internal/MusicContentCenterInternal.js +1 -4
  29. package/js/Private/internal/RtcEngineExInternal.js +101 -134
  30. package/js/Private/ti/AgoraMediaBase-ti.js +1 -1
  31. package/js/Private/ti/IAgoraH265Transcoder-ti.js +40 -0
  32. package/js/Private/ti/IAgoraMediaPlayerSource-ti.js +4 -2
  33. package/js/Private/ti/IAgoraMusicContentCenter-ti.js +5 -5
  34. package/js/Private/ti/IAgoraRtcEngine-ti.js +12 -11
  35. package/js/Renderer/AgoraView.js +28 -14
  36. package/js/Renderer/IRenderer.js +65 -17
  37. package/js/Renderer/IRendererManager.js +230 -0
  38. package/js/Renderer/RendererCache.js +170 -0
  39. package/js/Renderer/RendererManager.js +49 -460
  40. package/js/Renderer/WebGLRenderer/index.js +82 -234
  41. package/js/Renderer/YUVCanvasRenderer/index.js +27 -147
  42. package/js/Types.js +6 -6
  43. package/js/Utils.js +37 -88
  44. package/package.json +4 -3
  45. package/scripts/clean.js +12 -0
  46. package/scripts/synclib.js +8 -2
  47. package/ts/Private/AgoraBase.ts +225 -201
  48. package/ts/Private/AgoraMediaBase.ts +63 -25
  49. package/ts/Private/AgoraMediaPlayerTypes.ts +67 -24
  50. package/ts/Private/IAgoraH265Transcoder.ts +73 -0
  51. package/ts/Private/IAgoraLog.ts +1 -0
  52. package/ts/Private/IAgoraMediaEngine.ts +12 -7
  53. package/ts/Private/IAgoraMediaPlayer.ts +47 -21
  54. package/ts/Private/IAgoraMediaPlayerSource.ts +27 -6
  55. package/ts/Private/IAgoraMediaStreamingSource.ts +38 -37
  56. package/ts/Private/IAgoraMusicContentCenter.ts +20 -20
  57. package/ts/Private/IAgoraRhythmPlayer.ts +7 -6
  58. package/ts/Private/IAgoraRtcEngine.ts +407 -364
  59. package/ts/Private/IAgoraRtcEngineEx.ts +25 -61
  60. package/ts/Private/IAgoraSpatialAudio.ts +80 -191
  61. package/ts/Private/IAudioDeviceManager.ts +27 -14
  62. package/ts/Private/extension/IAgoraH265TranscoderExtension.ts +39 -0
  63. package/ts/Private/impl/AgoraMediaBaseImpl.ts +25 -1
  64. package/ts/Private/impl/IAgoraH265TranscoderImpl.ts +152 -0
  65. package/ts/Private/impl/IAgoraMediaEngineImpl.ts +13 -13
  66. package/ts/Private/impl/IAgoraMediaPlayerImpl.ts +110 -81
  67. package/ts/Private/impl/IAgoraMediaPlayerSourceImpl.ts +17 -2
  68. package/ts/Private/impl/IAgoraMediaRecorderImpl.ts +2 -2
  69. package/ts/Private/impl/IAgoraMusicContentCenterImpl.ts +21 -21
  70. package/ts/Private/impl/IAgoraRtcEngineExImpl.ts +71 -106
  71. package/ts/Private/impl/IAgoraRtcEngineImpl.ts +589 -572
  72. package/ts/Private/impl/IAgoraSpatialAudioImpl.ts +211 -218
  73. package/ts/Private/impl/IAudioDeviceManagerImpl.ts +22 -22
  74. package/ts/Private/internal/AgoraH265TranscoderInternal.ts +97 -0
  75. package/ts/Private/internal/AgoraMediaBaseInternal.ts +15 -0
  76. package/ts/Private/internal/IrisApiEngine.ts +42 -27
  77. package/ts/Private/internal/LocalSpatialAudioEngineInternal.ts +1 -86
  78. package/ts/Private/internal/MediaPlayerInternal.ts +20 -29
  79. package/ts/Private/internal/MusicContentCenterInternal.ts +1 -5
  80. package/ts/Private/internal/RtcEngineExInternal.ts +91 -204
  81. package/ts/Private/ti/AgoraMediaBase-ti.ts +1 -1
  82. package/ts/Private/ti/IAgoraH265Transcoder-ti.ts +16 -0
  83. package/ts/Private/ti/IAgoraMediaPlayerSource-ti.ts +4 -2
  84. package/ts/Private/ti/IAgoraMusicContentCenter-ti.ts +5 -5
  85. package/ts/Private/ti/IAgoraRtcEngine-ti.ts +12 -11
  86. package/ts/Renderer/AgoraView.ts +29 -19
  87. package/ts/Renderer/IRenderer.ts +71 -22
  88. package/ts/Renderer/IRendererManager.ts +273 -19
  89. package/ts/Renderer/RendererCache.ts +167 -0
  90. package/ts/Renderer/RendererManager.ts +62 -607
  91. package/ts/Renderer/WebGLRenderer/index.ts +117 -295
  92. package/ts/Renderer/YUVCanvasRenderer/index.ts +45 -198
  93. package/ts/Types.ts +17 -194
  94. package/ts/Utils.ts +36 -100
  95. package/types/Private/AgoraBase.d.ts +219 -200
  96. package/types/Private/AgoraBase.d.ts.map +1 -1
  97. package/types/Private/AgoraMediaBase.d.ts +63 -27
  98. package/types/Private/AgoraMediaBase.d.ts.map +1 -1
  99. package/types/Private/AgoraMediaPlayerTypes.d.ts +65 -24
  100. package/types/Private/AgoraMediaPlayerTypes.d.ts.map +1 -1
  101. package/types/Private/IAgoraH265Transcoder.d.ts +28 -0
  102. package/types/Private/IAgoraH265Transcoder.d.ts.map +1 -0
  103. package/types/Private/IAgoraLog.d.ts.map +1 -1
  104. package/types/Private/IAgoraMediaEngine.d.ts +11 -6
  105. package/types/Private/IAgoraMediaEngine.d.ts.map +1 -1
  106. package/types/Private/IAgoraMediaPlayer.d.ts +42 -20
  107. package/types/Private/IAgoraMediaPlayer.d.ts.map +1 -1
  108. package/types/Private/IAgoraMediaPlayerSource.d.ts +23 -6
  109. package/types/Private/IAgoraMediaPlayerSource.d.ts.map +1 -1
  110. package/types/Private/IAgoraMediaStreamingSource.d.ts.map +1 -1
  111. package/types/Private/IAgoraMusicContentCenter.d.ts +19 -19
  112. package/types/Private/IAgoraMusicContentCenter.d.ts.map +1 -1
  113. package/types/Private/IAgoraRhythmPlayer.d.ts +6 -6
  114. package/types/Private/IAgoraRhythmPlayer.d.ts.map +1 -1
  115. package/types/Private/IAgoraRtcEngine.d.ts +329 -293
  116. package/types/Private/IAgoraRtcEngine.d.ts.map +1 -1
  117. package/types/Private/IAgoraRtcEngineEx.d.ts +21 -53
  118. package/types/Private/IAgoraRtcEngineEx.d.ts.map +1 -1
  119. package/types/Private/IAgoraSpatialAudio.d.ts +56 -167
  120. package/types/Private/IAgoraSpatialAudio.d.ts.map +1 -1
  121. package/types/Private/IAudioDeviceManager.d.ts +27 -14
  122. package/types/Private/IAudioDeviceManager.d.ts.map +1 -1
  123. package/types/Private/extension/IAgoraH265TranscoderExtension.d.ts +24 -0
  124. package/types/Private/extension/IAgoraH265TranscoderExtension.d.ts.map +1 -0
  125. package/types/Private/impl/AgoraMediaBaseImpl.d.ts +5 -1
  126. package/types/Private/impl/AgoraMediaBaseImpl.d.ts.map +1 -1
  127. package/types/Private/impl/IAgoraH265TranscoderImpl.d.ts +15 -0
  128. package/types/Private/impl/IAgoraH265TranscoderImpl.d.ts.map +1 -0
  129. package/types/Private/impl/IAgoraMediaPlayerImpl.d.ts +6 -4
  130. package/types/Private/impl/IAgoraMediaPlayerImpl.d.ts.map +1 -1
  131. package/types/Private/impl/IAgoraMediaPlayerSourceImpl.d.ts.map +1 -1
  132. package/types/Private/impl/IAgoraRtcEngineExImpl.d.ts +2 -4
  133. package/types/Private/impl/IAgoraRtcEngineExImpl.d.ts.map +1 -1
  134. package/types/Private/impl/IAgoraRtcEngineImpl.d.ts +30 -25
  135. package/types/Private/impl/IAgoraRtcEngineImpl.d.ts.map +1 -1
  136. package/types/Private/impl/IAgoraSpatialAudioImpl.d.ts +20 -22
  137. package/types/Private/impl/IAgoraSpatialAudioImpl.d.ts.map +1 -1
  138. package/types/Private/internal/AgoraH265TranscoderInternal.d.ts +14 -0
  139. package/types/Private/internal/AgoraH265TranscoderInternal.d.ts.map +1 -0
  140. package/types/Private/internal/AgoraMediaBaseInternal.d.ts +8 -0
  141. package/types/Private/internal/AgoraMediaBaseInternal.d.ts.map +1 -0
  142. package/types/Private/internal/IrisApiEngine.d.ts +5 -2
  143. package/types/Private/internal/IrisApiEngine.d.ts.map +1 -1
  144. package/types/Private/internal/LocalSpatialAudioEngineInternal.d.ts +0 -15
  145. package/types/Private/internal/LocalSpatialAudioEngineInternal.d.ts.map +1 -1
  146. package/types/Private/internal/MediaPlayerInternal.d.ts.map +1 -1
  147. package/types/Private/internal/MusicContentCenterInternal.d.ts +0 -1
  148. package/types/Private/internal/MusicContentCenterInternal.d.ts.map +1 -1
  149. package/types/Private/internal/RtcEngineExInternal.d.ts +7 -13
  150. package/types/Private/internal/RtcEngineExInternal.d.ts.map +1 -1
  151. package/types/Private/ti/IAgoraH265Transcoder-ti.d.ts +8 -0
  152. package/types/Private/ti/IAgoraH265Transcoder-ti.d.ts.map +1 -0
  153. package/types/Private/ti/IAgoraMediaPlayerSource-ti.d.ts.map +1 -1
  154. package/types/Private/ti/IAgoraRtcEngine-ti.d.ts.map +1 -1
  155. package/types/Renderer/AgoraView.d.ts +4 -4
  156. package/types/Renderer/AgoraView.d.ts.map +1 -1
  157. package/types/Renderer/IRenderer.d.ts +11 -9
  158. package/types/Renderer/IRenderer.d.ts.map +1 -1
  159. package/types/Renderer/IRendererManager.d.ts +50 -12
  160. package/types/Renderer/IRendererManager.d.ts.map +1 -1
  161. package/types/Renderer/RendererCache.d.ts +36 -0
  162. package/types/Renderer/RendererCache.d.ts.map +1 -0
  163. package/types/Renderer/RendererManager.d.ts +13 -139
  164. package/types/Renderer/RendererManager.d.ts.map +1 -1
  165. package/types/Renderer/WebGLRenderer/index.d.ts +3 -18
  166. package/types/Renderer/WebGLRenderer/index.d.ts.map +1 -1
  167. package/types/Renderer/YUVCanvasRenderer/index.d.ts +4 -10
  168. package/types/Renderer/YUVCanvasRenderer/index.d.ts.map +1 -1
  169. package/types/Types.d.ts +11 -187
  170. package/types/Types.d.ts.map +1 -1
  171. package/types/Utils.d.ts +3 -20
  172. package/types/Utils.d.ts.map +1 -1
@@ -40,7 +40,7 @@ export class IAudioDeviceManagerImpl implements IAudioDeviceManager {
40
40
  }
41
41
 
42
42
  protected getApiTypeFromSetPlaybackDevice(deviceId: string): string {
43
- return 'AudioDeviceManager_setPlaybackDevice';
43
+ return 'AudioDeviceManager_setPlaybackDevice_4ad5f6e';
44
44
  }
45
45
 
46
46
  getPlaybackDevice(): string {
@@ -52,7 +52,7 @@ export class IAudioDeviceManagerImpl implements IAudioDeviceManager {
52
52
  }
53
53
 
54
54
  protected getApiTypeFromGetPlaybackDevice(): string {
55
- return 'AudioDeviceManager_getPlaybackDevice';
55
+ return 'AudioDeviceManager_getPlaybackDevice_73b9872';
56
56
  }
57
57
 
58
58
  getPlaybackDeviceInfo(): AudioDeviceInfo {
@@ -63,7 +63,7 @@ export class IAudioDeviceManagerImpl implements IAudioDeviceManager {
63
63
  }
64
64
 
65
65
  protected getApiTypeFromGetPlaybackDeviceInfo(): string {
66
- return 'AudioDeviceManager_getPlaybackDeviceInfo';
66
+ return 'AudioDeviceManager_getPlaybackDeviceInfo_5540658';
67
67
  }
68
68
 
69
69
  setPlaybackDeviceVolume(volume: number): number {
@@ -81,7 +81,7 @@ export class IAudioDeviceManagerImpl implements IAudioDeviceManager {
81
81
  }
82
82
 
83
83
  protected getApiTypeFromSetPlaybackDeviceVolume(volume: number): string {
84
- return 'AudioDeviceManager_setPlaybackDeviceVolume';
84
+ return 'AudioDeviceManager_setPlaybackDeviceVolume_46f8ab7';
85
85
  }
86
86
 
87
87
  getPlaybackDeviceVolume(): number {
@@ -93,7 +93,7 @@ export class IAudioDeviceManagerImpl implements IAudioDeviceManager {
93
93
  }
94
94
 
95
95
  protected getApiTypeFromGetPlaybackDeviceVolume(): string {
96
- return 'AudioDeviceManager_getPlaybackDeviceVolume';
96
+ return 'AudioDeviceManager_getPlaybackDeviceVolume_915cb25';
97
97
  }
98
98
 
99
99
  setRecordingDevice(deviceId: string): number {
@@ -111,7 +111,7 @@ export class IAudioDeviceManagerImpl implements IAudioDeviceManager {
111
111
  }
112
112
 
113
113
  protected getApiTypeFromSetRecordingDevice(deviceId: string): string {
114
- return 'AudioDeviceManager_setRecordingDevice';
114
+ return 'AudioDeviceManager_setRecordingDevice_4ad5f6e';
115
115
  }
116
116
 
117
117
  getRecordingDevice(): string {
@@ -123,7 +123,7 @@ export class IAudioDeviceManagerImpl implements IAudioDeviceManager {
123
123
  }
124
124
 
125
125
  protected getApiTypeFromGetRecordingDevice(): string {
126
- return 'AudioDeviceManager_getRecordingDevice';
126
+ return 'AudioDeviceManager_getRecordingDevice_73b9872';
127
127
  }
128
128
 
129
129
  getRecordingDeviceInfo(): AudioDeviceInfo {
@@ -134,7 +134,7 @@ export class IAudioDeviceManagerImpl implements IAudioDeviceManager {
134
134
  }
135
135
 
136
136
  protected getApiTypeFromGetRecordingDeviceInfo(): string {
137
- return 'AudioDeviceManager_getRecordingDeviceInfo';
137
+ return 'AudioDeviceManager_getRecordingDeviceInfo_5540658';
138
138
  }
139
139
 
140
140
  setRecordingDeviceVolume(volume: number): number {
@@ -152,7 +152,7 @@ export class IAudioDeviceManagerImpl implements IAudioDeviceManager {
152
152
  }
153
153
 
154
154
  protected getApiTypeFromSetRecordingDeviceVolume(volume: number): string {
155
- return 'AudioDeviceManager_setRecordingDeviceVolume';
155
+ return 'AudioDeviceManager_setRecordingDeviceVolume_46f8ab7';
156
156
  }
157
157
 
158
158
  getRecordingDeviceVolume(): number {
@@ -164,7 +164,7 @@ export class IAudioDeviceManagerImpl implements IAudioDeviceManager {
164
164
  }
165
165
 
166
166
  protected getApiTypeFromGetRecordingDeviceVolume(): string {
167
- return 'AudioDeviceManager_getRecordingDeviceVolume';
167
+ return 'AudioDeviceManager_getRecordingDeviceVolume_915cb25';
168
168
  }
169
169
 
170
170
  setLoopbackDevice(deviceId: string): number {
@@ -182,7 +182,7 @@ export class IAudioDeviceManagerImpl implements IAudioDeviceManager {
182
182
  }
183
183
 
184
184
  protected getApiTypeFromSetLoopbackDevice(deviceId: string): string {
185
- return 'AudioDeviceManager_setLoopbackDevice';
185
+ return 'AudioDeviceManager_setLoopbackDevice_4ad5f6e';
186
186
  }
187
187
 
188
188
  getLoopbackDevice(): string {
@@ -194,7 +194,7 @@ export class IAudioDeviceManagerImpl implements IAudioDeviceManager {
194
194
  }
195
195
 
196
196
  protected getApiTypeFromGetLoopbackDevice(): string {
197
- return 'AudioDeviceManager_getLoopbackDevice';
197
+ return 'AudioDeviceManager_getLoopbackDevice_73b9872';
198
198
  }
199
199
 
200
200
  setPlaybackDeviceMute(mute: boolean): number {
@@ -212,7 +212,7 @@ export class IAudioDeviceManagerImpl implements IAudioDeviceManager {
212
212
  }
213
213
 
214
214
  protected getApiTypeFromSetPlaybackDeviceMute(mute: boolean): string {
215
- return 'AudioDeviceManager_setPlaybackDeviceMute';
215
+ return 'AudioDeviceManager_setPlaybackDeviceMute_5039d15';
216
216
  }
217
217
 
218
218
  getPlaybackDeviceMute(): boolean {
@@ -224,7 +224,7 @@ export class IAudioDeviceManagerImpl implements IAudioDeviceManager {
224
224
  }
225
225
 
226
226
  protected getApiTypeFromGetPlaybackDeviceMute(): string {
227
- return 'AudioDeviceManager_getPlaybackDeviceMute';
227
+ return 'AudioDeviceManager_getPlaybackDeviceMute_d942327';
228
228
  }
229
229
 
230
230
  setRecordingDeviceMute(mute: boolean): number {
@@ -242,7 +242,7 @@ export class IAudioDeviceManagerImpl implements IAudioDeviceManager {
242
242
  }
243
243
 
244
244
  protected getApiTypeFromSetRecordingDeviceMute(mute: boolean): string {
245
- return 'AudioDeviceManager_setRecordingDeviceMute';
245
+ return 'AudioDeviceManager_setRecordingDeviceMute_5039d15';
246
246
  }
247
247
 
248
248
  getRecordingDeviceMute(): boolean {
@@ -254,7 +254,7 @@ export class IAudioDeviceManagerImpl implements IAudioDeviceManager {
254
254
  }
255
255
 
256
256
  protected getApiTypeFromGetRecordingDeviceMute(): string {
257
- return 'AudioDeviceManager_getRecordingDeviceMute';
257
+ return 'AudioDeviceManager_getRecordingDeviceMute_d942327';
258
258
  }
259
259
 
260
260
  startPlaybackDeviceTest(testAudioFilePath: string): number {
@@ -275,7 +275,7 @@ export class IAudioDeviceManagerImpl implements IAudioDeviceManager {
275
275
  protected getApiTypeFromStartPlaybackDeviceTest(
276
276
  testAudioFilePath: string
277
277
  ): string {
278
- return 'AudioDeviceManager_startPlaybackDeviceTest';
278
+ return 'AudioDeviceManager_startPlaybackDeviceTest_3a2037f';
279
279
  }
280
280
 
281
281
  stopPlaybackDeviceTest(): number {
@@ -307,7 +307,7 @@ export class IAudioDeviceManagerImpl implements IAudioDeviceManager {
307
307
  protected getApiTypeFromStartRecordingDeviceTest(
308
308
  indicationInterval: number
309
309
  ): string {
310
- return 'AudioDeviceManager_startRecordingDeviceTest';
310
+ return 'AudioDeviceManager_startRecordingDeviceTest_46f8ab7';
311
311
  }
312
312
 
313
313
  stopRecordingDeviceTest(): number {
@@ -339,7 +339,7 @@ export class IAudioDeviceManagerImpl implements IAudioDeviceManager {
339
339
  protected getApiTypeFromStartAudioDeviceLoopbackTest(
340
340
  indicationInterval: number
341
341
  ): string {
342
- return 'AudioDeviceManager_startAudioDeviceLoopbackTest';
342
+ return 'AudioDeviceManager_startAudioDeviceLoopbackTest_46f8ab7';
343
343
  }
344
344
 
345
345
  stopAudioDeviceLoopbackTest(): number {
@@ -368,7 +368,7 @@ export class IAudioDeviceManagerImpl implements IAudioDeviceManager {
368
368
  }
369
369
 
370
370
  protected getApiTypeFromFollowSystemPlaybackDevice(enable: boolean): string {
371
- return 'AudioDeviceManager_followSystemPlaybackDevice';
371
+ return 'AudioDeviceManager_followSystemPlaybackDevice_5039d15';
372
372
  }
373
373
 
374
374
  followSystemRecordingDevice(enable: boolean): number {
@@ -386,7 +386,7 @@ export class IAudioDeviceManagerImpl implements IAudioDeviceManager {
386
386
  }
387
387
 
388
388
  protected getApiTypeFromFollowSystemRecordingDevice(enable: boolean): string {
389
- return 'AudioDeviceManager_followSystemRecordingDevice';
389
+ return 'AudioDeviceManager_followSystemRecordingDevice_5039d15';
390
390
  }
391
391
 
392
392
  followSystemLoopbackDevice(enable: boolean): number {
@@ -404,7 +404,7 @@ export class IAudioDeviceManagerImpl implements IAudioDeviceManager {
404
404
  }
405
405
 
406
406
  protected getApiTypeFromFollowSystemLoopbackDevice(enable: boolean): string {
407
- return 'AudioDeviceManager_followSystemLoopbackDevice';
407
+ return 'AudioDeviceManager_followSystemLoopbackDevice_5039d15';
408
408
  }
409
409
 
410
410
  release(): void {
@@ -0,0 +1,97 @@
1
+ import { createCheckers } from 'ts-interface-checker';
2
+
3
+ import { IH265TranscoderObserver } from '../IAgoraH265Transcoder';
4
+ import { IH265TranscoderEvent } from '../extension/IAgoraH265TranscoderExtension';
5
+ import { IH265TranscoderImpl } from '../impl/IAgoraH265TranscoderImpl';
6
+
7
+ import IAgoraH265TranscoderTI from '../ti/IAgoraH265Transcoder-ti';
8
+
9
+ const checkers = createCheckers(IAgoraH265TranscoderTI);
10
+
11
+ import {
12
+ DeviceEventEmitter,
13
+ EVENT_TYPE,
14
+ EventProcessor,
15
+ } from './IrisApiEngine';
16
+
17
+ export class H265TranscoderInternal extends IH265TranscoderImpl {
18
+ static _h265_transcoder_observers: IH265TranscoderObserver[] = [];
19
+
20
+ release() {
21
+ H265TranscoderInternal._h265_transcoder_observers = [];
22
+ this.removeAllListeners();
23
+ }
24
+
25
+ _addListenerPreCheck<EventType extends keyof IH265TranscoderEvent>(
26
+ eventType: EventType
27
+ ): boolean {
28
+ if (
29
+ checkers.IH265TranscoderObserver?.strictTest({
30
+ [eventType]: undefined,
31
+ })
32
+ ) {
33
+ if (H265TranscoderInternal._h265_transcoder_observers.length === 0) {
34
+ this.registerTranscoderObserver({});
35
+ }
36
+ }
37
+ return true;
38
+ }
39
+
40
+ addListener<EventType extends keyof IH265TranscoderEvent>(
41
+ eventType: EventType,
42
+ listener: IH265TranscoderEvent[EventType]
43
+ ): void {
44
+ this._addListenerPreCheck(eventType);
45
+ const callback = (eventProcessor: EventProcessor<any>, data: any) => {
46
+ if (eventProcessor.type(data) !== EVENT_TYPE.IAgoraH265Transcoder) {
47
+ return;
48
+ }
49
+ eventProcessor.func.map((it) => {
50
+ it({ [eventType]: listener }, eventType, data);
51
+ });
52
+ };
53
+ // @ts-ignore
54
+ listener!.agoraCallback = callback;
55
+ DeviceEventEmitter.addListener(eventType, callback);
56
+ }
57
+
58
+ removeListener<EventType extends keyof IH265TranscoderEvent>(
59
+ eventType: EventType,
60
+ listener?: IH265TranscoderEvent[EventType]
61
+ ) {
62
+ DeviceEventEmitter.removeListener(
63
+ eventType,
64
+ // @ts-ignore
65
+ listener?.agoraCallback ?? listener
66
+ );
67
+ }
68
+
69
+ removeAllListeners<EventType extends keyof IH265TranscoderEvent>(
70
+ eventType?: EventType
71
+ ) {
72
+ DeviceEventEmitter.removeAllListeners(eventType);
73
+ }
74
+
75
+ override registerTranscoderObserver(
76
+ observer: IH265TranscoderObserver
77
+ ): number {
78
+ if (
79
+ !H265TranscoderInternal._h265_transcoder_observers.find(
80
+ (value) => value === observer
81
+ )
82
+ ) {
83
+ H265TranscoderInternal._h265_transcoder_observers.push(observer);
84
+ }
85
+ return super.registerTranscoderObserver(observer);
86
+ }
87
+
88
+ override unregisterTranscoderObserver(
89
+ observer: IH265TranscoderObserver
90
+ ): number {
91
+ H265TranscoderInternal._h265_transcoder_observers =
92
+ H265TranscoderInternal._h265_transcoder_observers.filter(
93
+ (value) => value !== observer
94
+ );
95
+ return super.unregisterTranscoderObserver(observer);
96
+ }
97
+ }
@@ -0,0 +1,15 @@
1
+ import { IVideoFrameMetaInfo, MetaInfoKey } from '../AgoraMediaBase';
2
+ import { IVideoFrameMetaInfoImpl } from '../impl/AgoraMediaBaseImpl';
3
+
4
+ export class VideoFrameMetaInfoInternal extends IVideoFrameMetaInfoImpl {
5
+ private _videoFrameMetaInfo: IVideoFrameMetaInfo | undefined;
6
+ constructor(videoFrameMetaInfo: IVideoFrameMetaInfo | undefined) {
7
+ super();
8
+ this._videoFrameMetaInfo = videoFrameMetaInfo;
9
+ }
10
+
11
+ override getMetaInfoStr(key: MetaInfoKey): string {
12
+ // @ts-ignore
13
+ return this._videoFrameMetaInfo?.[key];
14
+ }
15
+ }
@@ -1,7 +1,7 @@
1
1
  import EventEmitter from 'eventemitter3';
2
2
  import JSON from 'json-bigint';
3
3
 
4
- import { AgoraEnv } from '../../Utils';
4
+ import { AgoraEnv, logDebug, logError, logInfo, logWarn } from '../../Utils';
5
5
  import { IAudioEncodedFrameObserver } from '../AgoraBase';
6
6
  import {
7
7
  AudioFrame,
@@ -14,6 +14,7 @@ import {
14
14
  IVideoFrameObserver,
15
15
  VideoFrame,
16
16
  } from '../AgoraMediaBase';
17
+ import { IH265TranscoderObserver } from '../IAgoraH265Transcoder';
17
18
  import {
18
19
  IMediaPlayer,
19
20
  IMediaPlayerVideoFrameObserver,
@@ -39,6 +40,7 @@ import {
39
40
  processIVideoEncodedFrameObserver,
40
41
  processIVideoFrameObserver,
41
42
  } from '../impl/AgoraMediaBaseImpl';
43
+ import { processIH265TranscoderObserver } from '../impl/IAgoraH265TranscoderImpl';
42
44
  import { processIMediaPlayerVideoFrameObserver } from '../impl/IAgoraMediaPlayerImpl';
43
45
  import { processIMediaPlayerSourceObserver } from '../impl/IAgoraMediaPlayerSourceImpl';
44
46
  import { processIMusicContentCenterEventHandler } from '../impl/IAgoraMusicContentCenterImpl';
@@ -48,6 +50,8 @@ import {
48
50
  processIRtcEngineEventHandler,
49
51
  } from '../impl/IAgoraRtcEngineImpl';
50
52
 
53
+ import { H265TranscoderInternal } from './AgoraH265TranscoderInternal';
54
+ import { VideoFrameMetaInfoInternal } from './AgoraMediaBaseInternal';
51
55
  import { MediaEngineInternal } from './MediaEngineInternal';
52
56
  import { MediaPlayerInternal } from './MediaPlayerInternal';
53
57
  import { MediaRecorderInternal } from './MediaRecorderInternal';
@@ -105,6 +109,7 @@ export enum EVENT_TYPE {
105
109
  IMediaRecorder,
106
110
  IRtcEngine,
107
111
  IMusicContentCenter,
112
+ IAgoraH265Transcoder,
108
113
  }
109
114
 
110
115
  type ProcessorType =
@@ -120,7 +125,8 @@ type ProcessorType =
120
125
  | IMetadataObserver
121
126
  | IDirectCdnStreamingEventHandler
122
127
  | IRtcEngineEventHandler
123
- | IMusicContentCenterEventHandler;
128
+ | IMusicContentCenterEventHandler
129
+ | IH265TranscoderObserver;
124
130
 
125
131
  type EventProcessors = {
126
132
  IAudioFrameObserver: EventProcessor<IAudioFrameObserver>;
@@ -136,6 +142,7 @@ type EventProcessors = {
136
142
  IDirectCdnStreamingEventHandler: EventProcessor<IDirectCdnStreamingEventHandler>;
137
143
  IRtcEngineEventHandler: EventProcessor<IRtcEngineEventHandler>;
138
144
  IMusicContentCenterEventHandler: EventProcessor<IMusicContentCenterEventHandler>;
145
+ IH265TranscoderObserver: EventProcessor<IH265TranscoderObserver>;
139
146
  };
140
147
 
141
148
  /**
@@ -173,6 +180,8 @@ export const EVENT_PROCESSORS: EventProcessors = {
173
180
  data.videoFrame.vBuffer = buffers[2];
174
181
  data.videoFrame.metadata_buffer = buffers[3];
175
182
  data.videoFrame.alphaBuffer = buffers[4];
183
+ let metaInfo = data.videoFrame.metaInfo;
184
+ data.videoFrame.metaInfo = new VideoFrameMetaInfoInternal(metaInfo);
176
185
  }
177
186
  },
178
187
  handlers: (event: string, data: any) =>
@@ -268,6 +277,8 @@ export const EVENT_PROCESSORS: EventProcessors = {
268
277
  data.frame.vBuffer = buffers[2];
269
278
  data.frame.metadata_buffer = buffers[3];
270
279
  data.frame.alphaBuffer = buffers[4];
280
+ let metaInfo = data.frame.metaInfo;
281
+ data.frame.metaInfo = new VideoFrameMetaInfoInternal(metaInfo);
271
282
  }
272
283
  },
273
284
  handlers: (event: string, data: any) =>
@@ -351,11 +362,17 @@ export const EVENT_PROCESSORS: EventProcessors = {
351
362
  handlers: (event: string, data: any) =>
352
363
  MusicContentCenterInternal._event_handlers,
353
364
  },
365
+ IH265TranscoderObserver: {
366
+ suffix: 'H265TranscoderObserver_',
367
+ type: () => EVENT_TYPE.IAgoraH265Transcoder,
368
+ func: [processIH265TranscoderObserver],
369
+ handlers: () => H265TranscoderInternal._h265_transcoder_observers,
370
+ },
354
371
  };
355
372
 
356
373
  function handleEvent(...[event, data, buffers]: any) {
357
374
  if (isDebuggable()) {
358
- console.info('onEvent', event, data, buffers);
375
+ logInfo('onEvent', event, data, buffers);
359
376
  }
360
377
 
361
378
  let _event: string = event;
@@ -377,6 +394,10 @@ function handleEvent(...[event, data, buffers]: any) {
377
394
  if (_event.endsWith('Ex')) {
378
395
  _event = _event.replace(/Ex$/g, '');
379
396
  }
397
+ // for new IrisType, but this is temporary
398
+ if (_event.includes('_')) {
399
+ _event = _event.substring(0, _event.indexOf('_'));
400
+ }
380
401
 
381
402
  let _data: any;
382
403
  try {
@@ -417,14 +438,11 @@ export function callIrisApi(funcName: string, params: any): any {
417
438
 
418
439
  if (funcName.startsWith('MediaEngine_')) {
419
440
  switch (funcName) {
420
- case 'MediaEngine_pushAudioFrame':
421
- case 'MediaEngine_pushCaptureAudioFrame':
422
- case 'MediaEngine_pushReverseAudioFrame':
423
- case 'MediaEngine_pushDirectAudioFrame':
441
+ case 'MediaEngine_pushAudioFrame_c71f4ab':
424
442
  // frame.buffer
425
443
  buffers.push(params.frame.buffer);
426
444
  break;
427
- case 'MediaEngine_pushVideoFrame':
445
+ case 'MediaEngine_pushVideoFrame_4e544e2':
428
446
  // frame.buffer
429
447
  buffers.push(params.frame.buffer);
430
448
  // frame.eglContext
@@ -436,7 +454,7 @@ export function callIrisApi(funcName: string, params: any): any {
436
454
  // frame.d3d11_texture_2d
437
455
  buffers.push(Buffer.from(''));
438
456
  break;
439
- case 'MediaEngine_pushEncodedVideoImage':
457
+ case 'MediaEngine_pushEncodedVideoImage_e71452b':
440
458
  // imageBuffer
441
459
  buffers.push(params.imageBuffer);
442
460
  break;
@@ -460,7 +478,7 @@ export function callIrisApi(funcName: string, params: any): any {
460
478
  };
461
479
  } else if (funcName.startsWith('RtcEngine_')) {
462
480
  switch (funcName) {
463
- case 'RtcEngine_initialize':
481
+ case 'RtcEngine_initialize_0320339':
464
482
  AgoraRtcNg.InitializeEnv();
465
483
  break;
466
484
  case 'RtcEngine_release':
@@ -476,20 +494,22 @@ export function callIrisApi(funcName: string, params: any): any {
476
494
  // metadata.buffer
477
495
  buffers.push(params.metadata.buffer);
478
496
  break;
479
- case 'RtcEngine_sendStreamMessage':
480
- case 'RtcEngine_sendStreamMessageEx':
497
+ case 'RtcEngine_sendStreamMessage_8715a45':
498
+ case 'RtcEngineEx_sendStreamMessageEx_0c34857':
481
499
  // data
482
500
  buffers.push(params.data);
483
501
  break;
484
- case 'RtcEngine_destroyMediaPlayer':
502
+ case 'RtcEngine_destroyMediaPlayer_328a49b':
485
503
  params.mediaPlayerId = params.media_player.getMediaPlayerId();
486
504
  params.toJSON = function () {
487
505
  return { playerId: params.mediaPlayerId };
488
506
  };
489
507
  break;
490
- case 'RtcEngine_destroyMediaRecorder':
508
+ case 'RtcEngine_destroyMediaRecorder_95cdef5':
491
509
  // @ts-ignore
492
- params.nativeHandle = (this as MediaRecorderInternal).nativeHandle;
510
+ params.nativeHandle = (
511
+ params.mediaRecorder as MediaRecorderInternal
512
+ ).nativeHandle;
493
513
  params.toJSON = function () {
494
514
  return { nativeHandle: params.nativeHandle };
495
515
  };
@@ -504,39 +524,34 @@ export function callIrisApi(funcName: string, params: any): any {
504
524
  buffers.length
505
525
  );
506
526
  let ret = callApiResult;
507
- if (ret !== undefined && ret !== null && ret !== '') {
527
+ if (ret !== undefined && ret !== null && ret !== '' && ret !== 'null') {
508
528
  const retObj = JSON.parse(ret);
509
529
  if (isDebuggable()) {
510
530
  if (typeof retObj.result === 'number' && retObj.result < 0) {
511
- console.error('callApi', funcName, JSON.stringify(params), ret);
531
+ logError('callApi', funcName, JSON.stringify(params), ret);
512
532
  } else {
513
- console.debug('callApi', funcName, JSON.stringify(params), ret);
533
+ logDebug('callApi', funcName, JSON.stringify(params), ret);
514
534
  }
515
535
  }
516
536
  return retObj;
517
537
  } else {
518
538
  if (isDebuggable()) {
519
- console.error(
539
+ logError(
520
540
  'callApi',
521
541
  funcName,
522
542
  JSON.stringify(params),
523
543
  callApiReturnCode
524
544
  );
525
545
  } else {
526
- console.warn(
527
- 'callApi',
528
- funcName,
529
- JSON.stringify(params),
530
- callApiReturnCode
531
- );
546
+ logWarn('callApi', funcName, JSON.stringify(params), callApiReturnCode);
532
547
  }
533
548
  return { result: callApiReturnCode };
534
549
  }
535
550
  } catch (e) {
536
551
  if (isDebuggable()) {
537
- console.error('callApi', funcName, JSON.stringify(params), e);
552
+ logError('callApi', funcName, JSON.stringify(params), e);
538
553
  } else {
539
- console.warn('callApi', funcName, JSON.stringify(params), e);
554
+ logWarn('callApi', funcName, JSON.stringify(params), e);
540
555
  }
541
556
  }
542
557
  return {};
@@ -1,88 +1,3 @@
1
- import { RtcConnection } from '../IAgoraRtcEngineEx';
2
- import {
3
- RemoteVoicePositionInfo,
4
- SpatialAudioZone,
5
- } from '../IAgoraSpatialAudio';
6
1
  import { ILocalSpatialAudioEngineImpl } from '../impl/IAgoraSpatialAudioImpl';
7
2
 
8
- export class LocalSpatialAudioEngineInternal extends ILocalSpatialAudioEngineImpl {
9
- protected override getApiTypeFromRelease(): string {
10
- return 'LocalSpatialAudioEngine_release';
11
- }
12
-
13
- protected override getApiTypeFromSetMaxAudioRecvCount(
14
- maxCount: number
15
- ): string {
16
- return 'LocalSpatialAudioEngine_setMaxAudioRecvCount';
17
- }
18
-
19
- protected override getApiTypeFromSetAudioRecvRange(range: number): string {
20
- return 'LocalSpatialAudioEngine_setAudioRecvRange';
21
- }
22
-
23
- protected override getApiTypeFromSetDistanceUnit(unit: number): string {
24
- return 'LocalSpatialAudioEngine_setDistanceUnit';
25
- }
26
-
27
- protected override getApiTypeFromUpdateSelfPosition(
28
- position: number[],
29
- axisForward: number[],
30
- axisRight: number[],
31
- axisUp: number[]
32
- ): string {
33
- return 'LocalSpatialAudioEngine_updateSelfPosition';
34
- }
35
-
36
- protected override getApiTypeFromUpdateSelfPositionEx(
37
- position: number[],
38
- axisForward: number[],
39
- axisRight: number[],
40
- axisUp: number[],
41
- connection: RtcConnection
42
- ): string {
43
- return 'LocalSpatialAudioEngine_updateSelfPositionEx';
44
- }
45
-
46
- protected override getApiTypeFromUpdatePlayerPositionInfo(
47
- playerId: number,
48
- positionInfo: RemoteVoicePositionInfo
49
- ): string {
50
- return 'LocalSpatialAudioEngine_updatePlayerPositionInfo';
51
- }
52
-
53
- protected override getApiTypeFromSetParameters(params: string): string {
54
- return 'LocalSpatialAudioEngine_setParameters';
55
- }
56
-
57
- protected override getApiTypeFromMuteLocalAudioStream(mute: boolean): string {
58
- return 'LocalSpatialAudioEngine_muteLocalAudioStream';
59
- }
60
-
61
- protected override getApiTypeFromMuteAllRemoteAudioStreams(
62
- mute: boolean
63
- ): string {
64
- return 'LocalSpatialAudioEngine_muteAllRemoteAudioStreams';
65
- }
66
-
67
- protected override getApiTypeFromSetZones(
68
- zones: SpatialAudioZone[],
69
- zoneCount: number
70
- ): string {
71
- return 'LocalSpatialAudioEngine_setZones';
72
- }
73
-
74
- protected override getApiTypeFromSetPlayerAttenuation(
75
- playerId: number,
76
- attenuation: number,
77
- forceSet: boolean
78
- ): string {
79
- return 'LocalSpatialAudioEngine_setPlayerAttenuation';
80
- }
81
-
82
- protected override getApiTypeFromMuteRemoteAudioStream(
83
- uid: number,
84
- mute: boolean
85
- ): string {
86
- return 'LocalSpatialAudioEngine_muteRemoteAudioStream';
87
- }
88
- }
3
+ export class LocalSpatialAudioEngineInternal extends ILocalSpatialAudioEngineImpl {}
@@ -1,7 +1,6 @@
1
1
  import { createCheckers } from 'ts-interface-checker';
2
2
 
3
- import { AgoraEnv, logWarn } from '../../Utils';
4
-
3
+ import { AgoraEnv, logError } from '../../Utils';
5
4
  import { ErrorCodeType } from '../AgoraBase';
6
5
  import {
7
6
  IAudioPcmFrameSink,
@@ -105,7 +104,7 @@ export class MediaPlayerInternal extends IMediaPlayerImpl {
105
104
  MediaPlayerInternal._audio_spectrum_observers.get(this._mediaPlayerId)
106
105
  ?.length === 0
107
106
  ) {
108
- console.error(
107
+ logError(
109
108
  'Please call `registerMediaPlayerAudioSpectrumObserver` before you want to receive event by `addListener`'
110
109
  );
111
110
  return false;
@@ -292,43 +291,35 @@ export class MediaPlayerInternal extends IMediaPlayerImpl {
292
291
  key: string,
293
292
  value: number
294
293
  ): string {
295
- return 'MediaPlayer_setPlayerOption';
294
+ return 'MediaPlayer_setPlayerOption_4d05d29';
296
295
  }
297
296
 
298
297
  protected override getApiTypeFromSetPlayerOptionInString(
299
298
  key: string,
300
299
  value: string
301
300
  ): string {
302
- return 'MediaPlayer_setPlayerOption2';
301
+ return 'MediaPlayer_setPlayerOption_ccad422';
303
302
  }
304
303
 
305
304
  override setView(view: HTMLElement): number {
306
- logWarn('Also can use other api setupLocalVideo');
307
- return (
308
- AgoraEnv.AgoraRendererManager?.setupVideo({
309
- videoSourceType: VideoSourceType.VideoSourceMediaPlayer,
310
- uid: this._mediaPlayerId,
311
- view,
312
- }) ?? -ErrorCodeType.ErrNotInitialized
313
- );
305
+ if (!AgoraEnv.AgoraRendererManager) return -ErrorCodeType.ErrNotInitialized;
306
+ const renderer = AgoraEnv.AgoraRendererManager.addOrRemoveRenderer({
307
+ sourceType: VideoSourceType.VideoSourceMediaPlayer,
308
+ mediaPlayerId: this._mediaPlayerId,
309
+ view,
310
+ });
311
+ if (!renderer) return -ErrorCodeType.ErrFailed;
312
+ return ErrorCodeType.ErrOk;
314
313
  }
315
314
 
316
315
  override setRenderMode(renderMode: RenderModeType): number {
317
- logWarn(
318
- 'Also can use other api setRenderOption or setRenderOptionByConfig'
319
- );
320
- return (
321
- AgoraEnv.AgoraRendererManager?.setRenderOptionByConfig({
322
- videoSourceType: VideoSourceType.VideoSourceMediaPlayer,
323
- uid: this._mediaPlayerId,
324
- rendererOptions: {
325
- contentMode:
326
- renderMode === RenderModeType.RenderModeFit
327
- ? RenderModeType.RenderModeFit
328
- : RenderModeType.RenderModeHidden,
329
- mirror: true,
330
- },
331
- }) ?? -ErrorCodeType.ErrNotInitialized
332
- );
316
+ if (!AgoraEnv.AgoraRendererManager) return -ErrorCodeType.ErrNotInitialized;
317
+ const renderer = AgoraEnv.AgoraRendererManager.setRendererContext({
318
+ sourceType: VideoSourceType.VideoSourceMediaPlayer,
319
+ mediaPlayerId: this._mediaPlayerId,
320
+ renderMode,
321
+ });
322
+ if (!renderer) return -ErrorCodeType.ErrFailed;
323
+ return ErrorCodeType.ErrOk;
333
324
  }
334
325
  }