agora-electron-sdk 4.5.2 → 4.5.3-dev.2

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 (411) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +6 -3
  3. package/js/example/src/renderer/examples/advanced/VideoEffect/videoEffectHelpers.js +395 -0
  4. package/js/{AgoraSdk.js → ts/AgoraSdk.js} +2 -12
  5. package/js/{Decoder → ts/Decoder}/index.js +1 -1
  6. package/js/{Private → ts/Private}/AgoraBase.js +829 -674
  7. package/js/{Private → ts/Private}/AgoraMediaBase.js +154 -151
  8. package/js/{Private → ts/Private}/AgoraMediaPlayerTypes.js +58 -54
  9. package/js/{Private → ts/Private}/IAgoraLog.js +13 -13
  10. package/js/{Private → ts/Private}/IAgoraMediaEngine.js +4 -4
  11. package/js/{Private → ts/Private}/IAgoraMediaPlayer.js +2 -2
  12. package/js/{Private → ts/Private}/IAgoraMusicContentCenter.js +1 -1
  13. package/js/{Private → ts/Private}/IAgoraRhythmPlayer.js +13 -13
  14. package/js/{Private → ts/Private}/IAgoraRtcEngine.js +150 -94
  15. package/js/{Private → ts/Private}/IAgoraRtcEngineEx.js +3 -3
  16. package/js/{Private → ts/Private}/IAgoraSpatialAudio.js +4 -4
  17. package/js/{Private → ts/Private}/IAudioDeviceManager.js +2 -2
  18. package/js/{Private → ts/Private}/impl/IAgoraMediaPlayerImpl.js +10 -0
  19. package/js/{Private → ts/Private}/impl/IAgoraRtcEngineExImpl.js +74 -0
  20. package/js/{Private → ts/Private}/impl/IAgoraRtcEngineImpl.js +233 -1
  21. package/js/{Private → ts/Private}/internal/IrisApiEngine.js +45 -0
  22. package/js/{Private → ts/Private}/internal/RtcEngineExInternal.js +74 -4
  23. package/js/ts/Private/internal/VideoEffectObjectInternal.js +14 -0
  24. package/js/{Private → ts/Private}/ti/IAgoraRtcEngine-ti.js +2 -0
  25. package/js/{Renderer → ts/Renderer}/AgoraView.js +19 -2
  26. package/js/{Renderer → ts/Renderer}/IRenderer.js +7 -4
  27. package/js/{Renderer → ts/Renderer}/IRendererCache.js +17 -1
  28. package/js/ts/Renderer/RendererCache.js +252 -0
  29. package/js/{Renderer → ts/Renderer}/RendererManager.js +13 -64
  30. package/js/{Renderer → ts/Renderer}/WebCodecsRenderer/index.js +5 -5
  31. package/js/{Renderer → ts/Renderer}/WebCodecsRendererCache.js +13 -1
  32. package/js/{Renderer → ts/Renderer}/WebGLRenderer/index.js +179 -26
  33. package/js/{Renderer → ts/Renderer}/YUVCanvasRenderer/index.js +12 -5
  34. package/js/{Utils.js → ts/Utils.js} +7 -7
  35. package/package.json +25 -12
  36. package/scripts/checkElectron.js +4 -2
  37. package/scripts/download.js +102 -0
  38. package/scripts/downloadPrebuild.js +2 -1
  39. package/scripts/synclib.js +2 -2
  40. package/ts/AgoraSdk.ts +2 -12
  41. package/ts/Decoder/index.ts +5 -1
  42. package/ts/Private/AgoraBase.ts +1259 -1060
  43. package/ts/Private/AgoraMediaBase.ts +351 -324
  44. package/ts/Private/AgoraMediaPlayerTypes.ts +94 -91
  45. package/ts/Private/IAgoraLog.ts +20 -18
  46. package/ts/Private/IAgoraMediaEngine.ts +86 -81
  47. package/ts/Private/IAgoraMediaPlayer.ts +196 -181
  48. package/ts/Private/IAgoraMediaPlayerSource.ts +40 -40
  49. package/ts/Private/IAgoraMusicContentCenter.ts +3 -3
  50. package/ts/Private/IAgoraRhythmPlayer.ts +15 -15
  51. package/ts/Private/IAgoraRtcEngine.ts +2492 -2047
  52. package/ts/Private/IAgoraRtcEngineEx.ts +434 -335
  53. package/ts/Private/IAgoraSpatialAudio.ts +43 -45
  54. package/ts/Private/IAudioDeviceManager.ts +106 -97
  55. package/ts/Private/impl/IAgoraMediaPlayerImpl.ts +12 -0
  56. package/ts/Private/impl/IAgoraRtcEngineExImpl.ts +138 -0
  57. package/ts/Private/impl/IAgoraRtcEngineImpl.ts +331 -0
  58. package/ts/Private/internal/IrisApiEngine.ts +47 -0
  59. package/ts/Private/internal/RtcEngineExInternal.ts +106 -9
  60. package/ts/Private/internal/VideoEffectObjectInternal.ts +14 -0
  61. package/ts/Private/ti/IAgoraRtcEngine-ti.ts +2 -0
  62. package/ts/Renderer/AgoraView.ts +32 -3
  63. package/ts/Renderer/IRenderer.ts +8 -3
  64. package/ts/Renderer/IRendererCache.ts +33 -0
  65. package/ts/Renderer/RendererCache.ts +211 -12
  66. package/ts/Renderer/RendererManager.ts +21 -99
  67. package/ts/Renderer/WebCodecsRenderer/index.ts +9 -6
  68. package/ts/Renderer/WebCodecsRendererCache.ts +17 -1
  69. package/ts/Renderer/WebGLRenderer/index.ts +246 -40
  70. package/ts/Renderer/YUVCanvasRenderer/index.ts +29 -16
  71. package/ts/Types.ts +14 -9
  72. package/ts/Utils.ts +8 -7
  73. package/types/example/src/renderer/examples/advanced/VideoEffect/videoEffectHelpers.d.ts +168 -0
  74. package/types/example/src/renderer/examples/advanced/VideoEffect/videoEffectHelpers.d.ts.map +1 -0
  75. package/types/{AgoraSdk.d.ts → ts/AgoraSdk.d.ts} +2 -12
  76. package/types/ts/AgoraSdk.d.ts.map +1 -0
  77. package/types/ts/Decoder/gpu-utils.d.ts.map +1 -0
  78. package/types/ts/Decoder/index.d.ts.map +1 -0
  79. package/types/ts/Private/AgoraBase.d.ts +5504 -0
  80. package/types/ts/Private/AgoraBase.d.ts.map +1 -0
  81. package/types/ts/Private/AgoraMediaBase.d.ts +1695 -0
  82. package/types/ts/Private/AgoraMediaBase.d.ts.map +1 -0
  83. package/types/ts/Private/AgoraMediaPlayerTypes.d.ts +456 -0
  84. package/types/ts/Private/AgoraMediaPlayerTypes.d.ts.map +1 -0
  85. package/types/ts/Private/IAgoraH265Transcoder.d.ts.map +1 -0
  86. package/types/ts/Private/IAgoraLog.d.ts +91 -0
  87. package/types/ts/Private/IAgoraLog.d.ts.map +1 -0
  88. package/types/ts/Private/IAgoraMediaEngine.d.ts +255 -0
  89. package/types/ts/Private/IAgoraMediaEngine.d.ts.map +1 -0
  90. package/types/ts/Private/IAgoraMediaPlayer.d.ts +662 -0
  91. package/types/ts/Private/IAgoraMediaPlayer.d.ts.map +1 -0
  92. package/types/ts/Private/IAgoraMediaPlayerSource.d.ts +109 -0
  93. package/types/ts/Private/IAgoraMediaPlayerSource.d.ts.map +1 -0
  94. package/types/ts/Private/IAgoraMediaRecorder.d.ts.map +1 -0
  95. package/types/ts/Private/IAgoraMediaStreamingSource.d.ts.map +1 -0
  96. package/types/{Private → ts/Private}/IAgoraMusicContentCenter.d.ts +3 -3
  97. package/types/ts/Private/IAgoraMusicContentCenter.d.ts.map +1 -0
  98. package/types/ts/Private/IAgoraRhythmPlayer.d.ts +65 -0
  99. package/types/ts/Private/IAgoraRhythmPlayer.d.ts.map +1 -0
  100. package/types/ts/Private/IAgoraRtcEngine.d.ts +6504 -0
  101. package/types/ts/Private/IAgoraRtcEngine.d.ts.map +1 -0
  102. package/types/ts/Private/IAgoraRtcEngineEx.d.ts +817 -0
  103. package/types/ts/Private/IAgoraRtcEngineEx.d.ts.map +1 -0
  104. package/types/ts/Private/IAgoraSpatialAudio.d.ts +194 -0
  105. package/types/ts/Private/IAgoraSpatialAudio.d.ts.map +1 -0
  106. package/types/ts/Private/IAudioDeviceManager.d.ts +321 -0
  107. package/types/ts/Private/IAudioDeviceManager.d.ts.map +1 -0
  108. package/types/ts/Private/extension/AgoraBaseExtension.d.ts.map +1 -0
  109. package/types/ts/Private/extension/AgoraMediaBaseExtension.d.ts.map +1 -0
  110. package/types/ts/Private/extension/AgoraMediaPlayerTypesExtension.d.ts.map +1 -0
  111. package/types/ts/Private/extension/IAgoraH265TranscoderExtension.d.ts.map +1 -0
  112. package/types/ts/Private/extension/IAgoraLogExtension.d.ts.map +1 -0
  113. package/types/ts/Private/extension/IAgoraMediaEngineExtension.d.ts.map +1 -0
  114. package/types/ts/Private/extension/IAgoraMediaPlayerExtension.d.ts.map +1 -0
  115. package/types/ts/Private/extension/IAgoraMediaPlayerSourceExtension.d.ts.map +1 -0
  116. package/types/ts/Private/extension/IAgoraMediaRecorderExtension.d.ts.map +1 -0
  117. package/types/ts/Private/extension/IAgoraMusicContentCenterExtension.d.ts.map +1 -0
  118. package/types/ts/Private/extension/IAgoraRhythmPlayerExtension.d.ts.map +1 -0
  119. package/types/ts/Private/extension/IAgoraRtcEngineExExtension.d.ts.map +1 -0
  120. package/types/ts/Private/extension/IAgoraRtcEngineExtension.d.ts.map +1 -0
  121. package/types/ts/Private/extension/IAgoraSpatialAudioExtension.d.ts.map +1 -0
  122. package/types/ts/Private/extension/IAudioDeviceManagerExtension.d.ts.map +1 -0
  123. package/types/ts/Private/impl/AgoraBaseImpl.d.ts.map +1 -0
  124. package/types/ts/Private/impl/AgoraMediaBaseImpl.d.ts.map +1 -0
  125. package/types/ts/Private/impl/IAgoraH265TranscoderImpl.d.ts.map +1 -0
  126. package/types/ts/Private/impl/IAgoraMediaEngineImpl.d.ts.map +1 -0
  127. package/types/{Private → ts/Private}/impl/IAgoraMediaPlayerImpl.d.ts +2 -0
  128. package/types/ts/Private/impl/IAgoraMediaPlayerImpl.d.ts.map +1 -0
  129. package/types/ts/Private/impl/IAgoraMediaPlayerSourceImpl.d.ts.map +1 -0
  130. package/types/ts/Private/impl/IAgoraMediaRecorderImpl.d.ts.map +1 -0
  131. package/types/ts/Private/impl/IAgoraMusicContentCenterImpl.d.ts.map +1 -0
  132. package/types/{Private → ts/Private}/impl/IAgoraRtcEngineExImpl.d.ts +7 -1
  133. package/types/ts/Private/impl/IAgoraRtcEngineExImpl.d.ts.map +1 -0
  134. package/types/{Private → ts/Private}/impl/IAgoraRtcEngineImpl.d.ts +27 -1
  135. package/types/ts/Private/impl/IAgoraRtcEngineImpl.d.ts.map +1 -0
  136. package/types/ts/Private/impl/IAgoraSpatialAudioImpl.d.ts.map +1 -0
  137. package/types/ts/Private/impl/IAudioDeviceManagerImpl.d.ts.map +1 -0
  138. package/types/ts/Private/internal/AgoraH265TranscoderInternal.d.ts.map +1 -0
  139. package/types/ts/Private/internal/AgoraMediaBaseInternal.d.ts.map +1 -0
  140. package/types/ts/Private/internal/AudioDeviceManagerInternal.d.ts.map +1 -0
  141. package/types/ts/Private/internal/IrisApiEngine.d.ts.map +1 -0
  142. package/types/ts/Private/internal/LocalSpatialAudioEngineInternal.d.ts.map +1 -0
  143. package/types/ts/Private/internal/MediaEngineInternal.d.ts.map +1 -0
  144. package/types/ts/Private/internal/MediaPlayerInternal.d.ts.map +1 -0
  145. package/types/ts/Private/internal/MediaRecorderInternal.d.ts.map +1 -0
  146. package/types/ts/Private/internal/MusicContentCenterInternal.d.ts.map +1 -0
  147. package/types/{Private → ts/Private}/internal/RtcEngineExInternal.d.ts +10 -4
  148. package/types/ts/Private/internal/RtcEngineExInternal.d.ts.map +1 -0
  149. package/types/ts/Private/internal/VideoEffectObjectInternal.d.ts +7 -0
  150. package/types/ts/Private/internal/VideoEffectObjectInternal.d.ts.map +1 -0
  151. package/types/{Private → ts/Private}/ipc/main.d.ts.map +1 -1
  152. package/types/ts/Private/ipc/renderer.d.ts.map +1 -0
  153. package/types/ts/Private/ti/AgoraBase-ti.d.ts.map +1 -0
  154. package/types/ts/Private/ti/AgoraMediaBase-ti.d.ts.map +1 -0
  155. package/types/ts/Private/ti/AgoraMediaPlayerTypes-ti.d.ts.map +1 -0
  156. package/types/ts/Private/ti/IAgoraH265Transcoder-ti.d.ts.map +1 -0
  157. package/types/ts/Private/ti/IAgoraLog-ti.d.ts.map +1 -0
  158. package/types/ts/Private/ti/IAgoraMediaEngine-ti.d.ts.map +1 -0
  159. package/types/ts/Private/ti/IAgoraMediaPlayer-ti.d.ts.map +1 -0
  160. package/types/ts/Private/ti/IAgoraMediaPlayerSource-ti.d.ts.map +1 -0
  161. package/types/ts/Private/ti/IAgoraMediaRecorder-ti.d.ts.map +1 -0
  162. package/types/ts/Private/ti/IAgoraMediaStreamingSource-ti.d.ts.map +1 -0
  163. package/types/ts/Private/ti/IAgoraMusicContentCenter-ti.d.ts.map +1 -0
  164. package/types/ts/Private/ti/IAgoraRhythmPlayer-ti.d.ts.map +1 -0
  165. package/types/ts/Private/ti/IAgoraRtcEngine-ti.d.ts.map +1 -0
  166. package/types/ts/Private/ti/IAgoraRtcEngineEx-ti.d.ts.map +1 -0
  167. package/types/ts/Private/ti/IAgoraSpatialAudio-ti.d.ts.map +1 -0
  168. package/types/ts/Private/ti/IAudioDeviceManager-ti.d.ts.map +1 -0
  169. package/types/{Renderer → ts/Renderer}/AgoraView.d.ts +6 -0
  170. package/types/ts/Renderer/AgoraView.d.ts.map +1 -0
  171. package/types/ts/Renderer/CapabilityManager.d.ts.map +1 -0
  172. package/types/{Renderer → ts/Renderer}/IRenderer.d.ts +2 -2
  173. package/types/ts/Renderer/IRenderer.d.ts.map +1 -0
  174. package/types/{Renderer → ts/Renderer}/IRendererCache.d.ts +21 -1
  175. package/types/ts/Renderer/IRendererCache.d.ts.map +1 -0
  176. package/types/{Renderer → ts/Renderer}/RendererCache.d.ts +27 -0
  177. package/types/ts/Renderer/RendererCache.d.ts.map +1 -0
  178. package/types/{Renderer → ts/Renderer}/RendererManager.d.ts +4 -17
  179. package/types/ts/Renderer/RendererManager.d.ts.map +1 -0
  180. package/types/{Renderer → ts/Renderer}/WebCodecsRenderer/index.d.ts +3 -3
  181. package/types/ts/Renderer/WebCodecsRenderer/index.d.ts.map +1 -0
  182. package/types/{Renderer → ts/Renderer}/WebCodecsRendererCache.d.ts +7 -0
  183. package/types/ts/Renderer/WebCodecsRendererCache.d.ts.map +1 -0
  184. package/types/{Renderer → ts/Renderer}/WebGLRenderer/index.d.ts +12 -2
  185. package/types/ts/Renderer/WebGLRenderer/index.d.ts.map +1 -0
  186. package/types/ts/Renderer/WebGLRenderer/webgl-utils.d.ts.map +1 -0
  187. package/types/ts/Renderer/YUVCanvasRenderer/index.d.ts +10 -0
  188. package/types/ts/Renderer/YUVCanvasRenderer/index.d.ts.map +1 -0
  189. package/types/ts/Renderer/index.d.ts.map +1 -0
  190. package/types/{Types.d.ts → ts/Types.d.ts} +11 -6
  191. package/types/ts/Types.d.ts.map +1 -0
  192. package/types/{Utils.d.ts → ts/Utils.d.ts} +1 -1
  193. package/types/ts/Utils.d.ts.map +1 -0
  194. package/js/Renderer/RendererCache.js +0 -100
  195. package/types/AgoraSdk.d.ts.map +0 -1
  196. package/types/Decoder/gpu-utils.d.ts.map +0 -1
  197. package/types/Decoder/index.d.ts.map +0 -1
  198. package/types/Private/AgoraBase.d.ts +0 -5310
  199. package/types/Private/AgoraBase.d.ts.map +0 -1
  200. package/types/Private/AgoraMediaBase.d.ts +0 -1668
  201. package/types/Private/AgoraMediaBase.d.ts.map +0 -1
  202. package/types/Private/AgoraMediaPlayerTypes.d.ts +0 -453
  203. package/types/Private/AgoraMediaPlayerTypes.d.ts.map +0 -1
  204. package/types/Private/IAgoraH265Transcoder.d.ts.map +0 -1
  205. package/types/Private/IAgoraLog.d.ts +0 -89
  206. package/types/Private/IAgoraLog.d.ts.map +0 -1
  207. package/types/Private/IAgoraMediaEngine.d.ts +0 -250
  208. package/types/Private/IAgoraMediaEngine.d.ts.map +0 -1
  209. package/types/Private/IAgoraMediaPlayer.d.ts +0 -648
  210. package/types/Private/IAgoraMediaPlayer.d.ts.map +0 -1
  211. package/types/Private/IAgoraMediaPlayerSource.d.ts +0 -109
  212. package/types/Private/IAgoraMediaPlayerSource.d.ts.map +0 -1
  213. package/types/Private/IAgoraMediaRecorder.d.ts.map +0 -1
  214. package/types/Private/IAgoraMediaStreamingSource.d.ts.map +0 -1
  215. package/types/Private/IAgoraMusicContentCenter.d.ts.map +0 -1
  216. package/types/Private/IAgoraRhythmPlayer.d.ts +0 -65
  217. package/types/Private/IAgoraRhythmPlayer.d.ts.map +0 -1
  218. package/types/Private/IAgoraRtcEngine.d.ts +0 -6103
  219. package/types/Private/IAgoraRtcEngine.d.ts.map +0 -1
  220. package/types/Private/IAgoraRtcEngineEx.d.ts +0 -741
  221. package/types/Private/IAgoraRtcEngineEx.d.ts.map +0 -1
  222. package/types/Private/IAgoraSpatialAudio.d.ts +0 -196
  223. package/types/Private/IAgoraSpatialAudio.d.ts.map +0 -1
  224. package/types/Private/IAudioDeviceManager.d.ts +0 -312
  225. package/types/Private/IAudioDeviceManager.d.ts.map +0 -1
  226. package/types/Private/extension/AgoraBaseExtension.d.ts.map +0 -1
  227. package/types/Private/extension/AgoraMediaBaseExtension.d.ts.map +0 -1
  228. package/types/Private/extension/AgoraMediaPlayerTypesExtension.d.ts.map +0 -1
  229. package/types/Private/extension/IAgoraH265TranscoderExtension.d.ts.map +0 -1
  230. package/types/Private/extension/IAgoraLogExtension.d.ts.map +0 -1
  231. package/types/Private/extension/IAgoraMediaEngineExtension.d.ts.map +0 -1
  232. package/types/Private/extension/IAgoraMediaPlayerExtension.d.ts.map +0 -1
  233. package/types/Private/extension/IAgoraMediaPlayerSourceExtension.d.ts.map +0 -1
  234. package/types/Private/extension/IAgoraMediaRecorderExtension.d.ts.map +0 -1
  235. package/types/Private/extension/IAgoraMusicContentCenterExtension.d.ts.map +0 -1
  236. package/types/Private/extension/IAgoraRhythmPlayerExtension.d.ts.map +0 -1
  237. package/types/Private/extension/IAgoraRtcEngineExExtension.d.ts.map +0 -1
  238. package/types/Private/extension/IAgoraRtcEngineExtension.d.ts.map +0 -1
  239. package/types/Private/extension/IAgoraSpatialAudioExtension.d.ts.map +0 -1
  240. package/types/Private/extension/IAudioDeviceManagerExtension.d.ts.map +0 -1
  241. package/types/Private/impl/AgoraBaseImpl.d.ts.map +0 -1
  242. package/types/Private/impl/AgoraMediaBaseImpl.d.ts.map +0 -1
  243. package/types/Private/impl/IAgoraH265TranscoderImpl.d.ts.map +0 -1
  244. package/types/Private/impl/IAgoraMediaEngineImpl.d.ts.map +0 -1
  245. package/types/Private/impl/IAgoraMediaPlayerImpl.d.ts.map +0 -1
  246. package/types/Private/impl/IAgoraMediaPlayerSourceImpl.d.ts.map +0 -1
  247. package/types/Private/impl/IAgoraMediaRecorderImpl.d.ts.map +0 -1
  248. package/types/Private/impl/IAgoraMusicContentCenterImpl.d.ts.map +0 -1
  249. package/types/Private/impl/IAgoraRtcEngineExImpl.d.ts.map +0 -1
  250. package/types/Private/impl/IAgoraRtcEngineImpl.d.ts.map +0 -1
  251. package/types/Private/impl/IAgoraSpatialAudioImpl.d.ts.map +0 -1
  252. package/types/Private/impl/IAudioDeviceManagerImpl.d.ts.map +0 -1
  253. package/types/Private/internal/AgoraH265TranscoderInternal.d.ts.map +0 -1
  254. package/types/Private/internal/AgoraMediaBaseInternal.d.ts.map +0 -1
  255. package/types/Private/internal/AudioDeviceManagerInternal.d.ts.map +0 -1
  256. package/types/Private/internal/IrisApiEngine.d.ts.map +0 -1
  257. package/types/Private/internal/LocalSpatialAudioEngineInternal.d.ts.map +0 -1
  258. package/types/Private/internal/MediaEngineInternal.d.ts.map +0 -1
  259. package/types/Private/internal/MediaPlayerInternal.d.ts.map +0 -1
  260. package/types/Private/internal/MediaRecorderInternal.d.ts.map +0 -1
  261. package/types/Private/internal/MusicContentCenterInternal.d.ts.map +0 -1
  262. package/types/Private/internal/RtcEngineExInternal.d.ts.map +0 -1
  263. package/types/Private/ipc/renderer.d.ts.map +0 -1
  264. package/types/Private/ti/AgoraBase-ti.d.ts.map +0 -1
  265. package/types/Private/ti/AgoraMediaBase-ti.d.ts.map +0 -1
  266. package/types/Private/ti/AgoraMediaPlayerTypes-ti.d.ts.map +0 -1
  267. package/types/Private/ti/IAgoraH265Transcoder-ti.d.ts.map +0 -1
  268. package/types/Private/ti/IAgoraLog-ti.d.ts.map +0 -1
  269. package/types/Private/ti/IAgoraMediaEngine-ti.d.ts.map +0 -1
  270. package/types/Private/ti/IAgoraMediaPlayer-ti.d.ts.map +0 -1
  271. package/types/Private/ti/IAgoraMediaPlayerSource-ti.d.ts.map +0 -1
  272. package/types/Private/ti/IAgoraMediaRecorder-ti.d.ts.map +0 -1
  273. package/types/Private/ti/IAgoraMediaStreamingSource-ti.d.ts.map +0 -1
  274. package/types/Private/ti/IAgoraMusicContentCenter-ti.d.ts.map +0 -1
  275. package/types/Private/ti/IAgoraRhythmPlayer-ti.d.ts.map +0 -1
  276. package/types/Private/ti/IAgoraRtcEngine-ti.d.ts.map +0 -1
  277. package/types/Private/ti/IAgoraRtcEngineEx-ti.d.ts.map +0 -1
  278. package/types/Private/ti/IAgoraSpatialAudio-ti.d.ts.map +0 -1
  279. package/types/Private/ti/IAudioDeviceManager-ti.d.ts.map +0 -1
  280. package/types/Renderer/AgoraView.d.ts.map +0 -1
  281. package/types/Renderer/CapabilityManager.d.ts.map +0 -1
  282. package/types/Renderer/IRenderer.d.ts.map +0 -1
  283. package/types/Renderer/IRendererCache.d.ts.map +0 -1
  284. package/types/Renderer/RendererCache.d.ts.map +0 -1
  285. package/types/Renderer/RendererManager.d.ts.map +0 -1
  286. package/types/Renderer/WebCodecsRenderer/index.d.ts.map +0 -1
  287. package/types/Renderer/WebCodecsRendererCache.d.ts.map +0 -1
  288. package/types/Renderer/WebGLRenderer/index.d.ts.map +0 -1
  289. package/types/Renderer/WebGLRenderer/webgl-utils.d.ts.map +0 -1
  290. package/types/Renderer/YUVCanvasRenderer/index.d.ts +0 -9
  291. package/types/Renderer/YUVCanvasRenderer/index.d.ts.map +0 -1
  292. package/types/Renderer/index.d.ts.map +0 -1
  293. package/types/Types.d.ts.map +0 -1
  294. package/types/Utils.d.ts.map +0 -1
  295. /package/js/{Decoder → ts/Decoder}/gpu-utils.js +0 -0
  296. /package/js/{Private → ts/Private}/IAgoraH265Transcoder.js +0 -0
  297. /package/js/{Private → ts/Private}/IAgoraMediaPlayerSource.js +0 -0
  298. /package/js/{Private → ts/Private}/IAgoraMediaRecorder.js +0 -0
  299. /package/js/{Private → ts/Private}/IAgoraMediaStreamingSource.js +0 -0
  300. /package/js/{Private → ts/Private}/extension/AgoraBaseExtension.js +0 -0
  301. /package/js/{Private → ts/Private}/extension/AgoraMediaBaseExtension.js +0 -0
  302. /package/js/{Private → ts/Private}/extension/AgoraMediaPlayerTypesExtension.js +0 -0
  303. /package/js/{Private → ts/Private}/extension/IAgoraH265TranscoderExtension.js +0 -0
  304. /package/js/{Private → ts/Private}/extension/IAgoraLogExtension.js +0 -0
  305. /package/js/{Private → ts/Private}/extension/IAgoraMediaEngineExtension.js +0 -0
  306. /package/js/{Private → ts/Private}/extension/IAgoraMediaPlayerExtension.js +0 -0
  307. /package/js/{Private → ts/Private}/extension/IAgoraMediaPlayerSourceExtension.js +0 -0
  308. /package/js/{Private → ts/Private}/extension/IAgoraMediaRecorderExtension.js +0 -0
  309. /package/js/{Private → ts/Private}/extension/IAgoraMusicContentCenterExtension.js +0 -0
  310. /package/js/{Private → ts/Private}/extension/IAgoraRhythmPlayerExtension.js +0 -0
  311. /package/js/{Private → ts/Private}/extension/IAgoraRtcEngineExExtension.js +0 -0
  312. /package/js/{Private → ts/Private}/extension/IAgoraRtcEngineExtension.js +0 -0
  313. /package/js/{Private → ts/Private}/extension/IAgoraSpatialAudioExtension.js +0 -0
  314. /package/js/{Private → ts/Private}/extension/IAudioDeviceManagerExtension.js +0 -0
  315. /package/js/{Private → ts/Private}/impl/AgoraBaseImpl.js +0 -0
  316. /package/js/{Private → ts/Private}/impl/AgoraMediaBaseImpl.js +0 -0
  317. /package/js/{Private → ts/Private}/impl/IAgoraH265TranscoderImpl.js +0 -0
  318. /package/js/{Private → ts/Private}/impl/IAgoraMediaEngineImpl.js +0 -0
  319. /package/js/{Private → ts/Private}/impl/IAgoraMediaPlayerSourceImpl.js +0 -0
  320. /package/js/{Private → ts/Private}/impl/IAgoraMediaRecorderImpl.js +0 -0
  321. /package/js/{Private → ts/Private}/impl/IAgoraMusicContentCenterImpl.js +0 -0
  322. /package/js/{Private → ts/Private}/impl/IAgoraSpatialAudioImpl.js +0 -0
  323. /package/js/{Private → ts/Private}/impl/IAudioDeviceManagerImpl.js +0 -0
  324. /package/js/{Private → ts/Private}/internal/AgoraH265TranscoderInternal.js +0 -0
  325. /package/js/{Private → ts/Private}/internal/AgoraMediaBaseInternal.js +0 -0
  326. /package/js/{Private → ts/Private}/internal/AudioDeviceManagerInternal.js +0 -0
  327. /package/js/{Private → ts/Private}/internal/LocalSpatialAudioEngineInternal.js +0 -0
  328. /package/js/{Private → ts/Private}/internal/MediaEngineInternal.js +0 -0
  329. /package/js/{Private → ts/Private}/internal/MediaPlayerInternal.js +0 -0
  330. /package/js/{Private → ts/Private}/internal/MediaRecorderInternal.js +0 -0
  331. /package/js/{Private → ts/Private}/internal/MusicContentCenterInternal.js +0 -0
  332. /package/js/{Private → ts/Private}/ipc/main.js +0 -0
  333. /package/js/{Private → ts/Private}/ipc/renderer.js +0 -0
  334. /package/js/{Private → ts/Private}/ti/AgoraBase-ti.js +0 -0
  335. /package/js/{Private → ts/Private}/ti/AgoraMediaBase-ti.js +0 -0
  336. /package/js/{Private → ts/Private}/ti/AgoraMediaPlayerTypes-ti.js +0 -0
  337. /package/js/{Private → ts/Private}/ti/IAgoraH265Transcoder-ti.js +0 -0
  338. /package/js/{Private → ts/Private}/ti/IAgoraLog-ti.js +0 -0
  339. /package/js/{Private → ts/Private}/ti/IAgoraMediaEngine-ti.js +0 -0
  340. /package/js/{Private → ts/Private}/ti/IAgoraMediaPlayer-ti.js +0 -0
  341. /package/js/{Private → ts/Private}/ti/IAgoraMediaPlayerSource-ti.js +0 -0
  342. /package/js/{Private → ts/Private}/ti/IAgoraMediaRecorder-ti.js +0 -0
  343. /package/js/{Private → ts/Private}/ti/IAgoraMediaStreamingSource-ti.js +0 -0
  344. /package/js/{Private → ts/Private}/ti/IAgoraMusicContentCenter-ti.js +0 -0
  345. /package/js/{Private → ts/Private}/ti/IAgoraRhythmPlayer-ti.js +0 -0
  346. /package/js/{Private → ts/Private}/ti/IAgoraRtcEngineEx-ti.js +0 -0
  347. /package/js/{Private → ts/Private}/ti/IAgoraSpatialAudio-ti.js +0 -0
  348. /package/js/{Private → ts/Private}/ti/IAudioDeviceManager-ti.js +0 -0
  349. /package/js/{Renderer → ts/Renderer}/CapabilityManager.js +0 -0
  350. /package/js/{Renderer → ts/Renderer}/WebGLRenderer/webgl-utils.js +0 -0
  351. /package/js/{Renderer → ts/Renderer}/index.js +0 -0
  352. /package/js/{Types.js → ts/Types.js} +0 -0
  353. /package/types/{Decoder → ts/Decoder}/gpu-utils.d.ts +0 -0
  354. /package/types/{Decoder → ts/Decoder}/index.d.ts +0 -0
  355. /package/types/{Private → ts/Private}/IAgoraH265Transcoder.d.ts +0 -0
  356. /package/types/{Private → ts/Private}/IAgoraMediaRecorder.d.ts +0 -0
  357. /package/types/{Private → ts/Private}/IAgoraMediaStreamingSource.d.ts +0 -0
  358. /package/types/{Private → ts/Private}/extension/AgoraBaseExtension.d.ts +0 -0
  359. /package/types/{Private → ts/Private}/extension/AgoraMediaBaseExtension.d.ts +0 -0
  360. /package/types/{Private → ts/Private}/extension/AgoraMediaPlayerTypesExtension.d.ts +0 -0
  361. /package/types/{Private → ts/Private}/extension/IAgoraH265TranscoderExtension.d.ts +0 -0
  362. /package/types/{Private → ts/Private}/extension/IAgoraLogExtension.d.ts +0 -0
  363. /package/types/{Private → ts/Private}/extension/IAgoraMediaEngineExtension.d.ts +0 -0
  364. /package/types/{Private → ts/Private}/extension/IAgoraMediaPlayerExtension.d.ts +0 -0
  365. /package/types/{Private → ts/Private}/extension/IAgoraMediaPlayerSourceExtension.d.ts +0 -0
  366. /package/types/{Private → ts/Private}/extension/IAgoraMediaRecorderExtension.d.ts +0 -0
  367. /package/types/{Private → ts/Private}/extension/IAgoraMusicContentCenterExtension.d.ts +0 -0
  368. /package/types/{Private → ts/Private}/extension/IAgoraRhythmPlayerExtension.d.ts +0 -0
  369. /package/types/{Private → ts/Private}/extension/IAgoraRtcEngineExExtension.d.ts +0 -0
  370. /package/types/{Private → ts/Private}/extension/IAgoraRtcEngineExtension.d.ts +0 -0
  371. /package/types/{Private → ts/Private}/extension/IAgoraSpatialAudioExtension.d.ts +0 -0
  372. /package/types/{Private → ts/Private}/extension/IAudioDeviceManagerExtension.d.ts +0 -0
  373. /package/types/{Private → ts/Private}/impl/AgoraBaseImpl.d.ts +0 -0
  374. /package/types/{Private → ts/Private}/impl/AgoraMediaBaseImpl.d.ts +0 -0
  375. /package/types/{Private → ts/Private}/impl/IAgoraH265TranscoderImpl.d.ts +0 -0
  376. /package/types/{Private → ts/Private}/impl/IAgoraMediaEngineImpl.d.ts +0 -0
  377. /package/types/{Private → ts/Private}/impl/IAgoraMediaPlayerSourceImpl.d.ts +0 -0
  378. /package/types/{Private → ts/Private}/impl/IAgoraMediaRecorderImpl.d.ts +0 -0
  379. /package/types/{Private → ts/Private}/impl/IAgoraMusicContentCenterImpl.d.ts +0 -0
  380. /package/types/{Private → ts/Private}/impl/IAgoraSpatialAudioImpl.d.ts +0 -0
  381. /package/types/{Private → ts/Private}/impl/IAudioDeviceManagerImpl.d.ts +0 -0
  382. /package/types/{Private → ts/Private}/internal/AgoraH265TranscoderInternal.d.ts +0 -0
  383. /package/types/{Private → ts/Private}/internal/AgoraMediaBaseInternal.d.ts +0 -0
  384. /package/types/{Private → ts/Private}/internal/AudioDeviceManagerInternal.d.ts +0 -0
  385. /package/types/{Private → ts/Private}/internal/IrisApiEngine.d.ts +0 -0
  386. /package/types/{Private → ts/Private}/internal/LocalSpatialAudioEngineInternal.d.ts +0 -0
  387. /package/types/{Private → ts/Private}/internal/MediaEngineInternal.d.ts +0 -0
  388. /package/types/{Private → ts/Private}/internal/MediaPlayerInternal.d.ts +0 -0
  389. /package/types/{Private → ts/Private}/internal/MediaRecorderInternal.d.ts +0 -0
  390. /package/types/{Private → ts/Private}/internal/MusicContentCenterInternal.d.ts +0 -0
  391. /package/types/{Private → ts/Private}/ipc/main.d.ts +0 -0
  392. /package/types/{Private → ts/Private}/ipc/renderer.d.ts +0 -0
  393. /package/types/{Private → ts/Private}/ti/AgoraBase-ti.d.ts +0 -0
  394. /package/types/{Private → ts/Private}/ti/AgoraMediaBase-ti.d.ts +0 -0
  395. /package/types/{Private → ts/Private}/ti/AgoraMediaPlayerTypes-ti.d.ts +0 -0
  396. /package/types/{Private → ts/Private}/ti/IAgoraH265Transcoder-ti.d.ts +0 -0
  397. /package/types/{Private → ts/Private}/ti/IAgoraLog-ti.d.ts +0 -0
  398. /package/types/{Private → ts/Private}/ti/IAgoraMediaEngine-ti.d.ts +0 -0
  399. /package/types/{Private → ts/Private}/ti/IAgoraMediaPlayer-ti.d.ts +0 -0
  400. /package/types/{Private → ts/Private}/ti/IAgoraMediaPlayerSource-ti.d.ts +0 -0
  401. /package/types/{Private → ts/Private}/ti/IAgoraMediaRecorder-ti.d.ts +0 -0
  402. /package/types/{Private → ts/Private}/ti/IAgoraMediaStreamingSource-ti.d.ts +0 -0
  403. /package/types/{Private → ts/Private}/ti/IAgoraMusicContentCenter-ti.d.ts +0 -0
  404. /package/types/{Private → ts/Private}/ti/IAgoraRhythmPlayer-ti.d.ts +0 -0
  405. /package/types/{Private → ts/Private}/ti/IAgoraRtcEngine-ti.d.ts +0 -0
  406. /package/types/{Private → ts/Private}/ti/IAgoraRtcEngineEx-ti.d.ts +0 -0
  407. /package/types/{Private → ts/Private}/ti/IAgoraSpatialAudio-ti.d.ts +0 -0
  408. /package/types/{Private → ts/Private}/ti/IAudioDeviceManager-ti.d.ts +0 -0
  409. /package/types/{Renderer → ts/Renderer}/CapabilityManager.d.ts +0 -0
  410. /package/types/{Renderer → ts/Renderer}/WebGLRenderer/webgl-utils.d.ts +0 -0
  411. /package/types/{Renderer → ts/Renderer}/index.d.ts +0 -0
@@ -94,6 +94,7 @@ import {
94
94
  IRtcEngine,
95
95
  IRtcEngineEventHandler,
96
96
  IVideoDeviceManager,
97
+ IVideoEffectObject,
97
98
  ImageTrackOptions,
98
99
  LeaveChannelOptions,
99
100
  Metadata,
@@ -106,6 +107,7 @@ import {
106
107
  Size,
107
108
  StreamFallbackOptions,
108
109
  VideoDeviceInfo,
110
+ VideoEffectAction,
109
111
  } from '../IAgoraRtcEngine';
110
112
  import { ILocalSpatialAudioEngine } from '../IAgoraSpatialAudio';
111
113
  import { IAudioDeviceManager } from '../IAudioDeviceManager';
@@ -308,6 +310,12 @@ export function processIRtcEngineEventHandler(
308
310
  }
309
311
  break;
310
312
 
313
+ case 'onLocalVideoEvent':
314
+ if (handler.onLocalVideoEvent !== undefined) {
315
+ handler.onLocalVideoEvent(jsonParams.source, jsonParams.event);
316
+ }
317
+ break;
318
+
311
319
  case 'onLocalVideoStateChanged':
312
320
  if (handler.onLocalVideoStateChanged !== undefined) {
313
321
  handler.onLocalVideoStateChanged(
@@ -957,6 +965,12 @@ export function processIRtcEngineEventHandler(
957
965
  handler.onSetRtmFlagResult(jsonParams.connection, jsonParams.code);
958
966
  }
959
967
  break;
968
+
969
+ case 'onMultipathStats':
970
+ if (handler.onMultipathStats !== undefined) {
971
+ handler.onMultipathStats(jsonParams.connection, jsonParams.stats);
972
+ }
973
+ break;
960
974
  }
961
975
  }
962
976
 
@@ -1091,6 +1105,275 @@ export class IVideoDeviceManagerImpl implements IVideoDeviceManager {
1091
1105
  }
1092
1106
  }
1093
1107
 
1108
+ // @ts-ignore
1109
+ export class IVideoEffectObjectImpl implements IVideoEffectObject {
1110
+ addOrUpdateVideoEffect(nodeId: number, templateName: string): number {
1111
+ const apiType = this.getApiTypeFromAddOrUpdateVideoEffect(
1112
+ nodeId,
1113
+ templateName
1114
+ );
1115
+ const jsonParams = {
1116
+ nodeId: nodeId,
1117
+ templateName: templateName,
1118
+ toJSON: () => {
1119
+ return {
1120
+ nodeId: nodeId,
1121
+ templateName: templateName,
1122
+ };
1123
+ },
1124
+ };
1125
+ const jsonResults = callIrisApi.call(this, apiType, jsonParams);
1126
+ return jsonResults.result;
1127
+ }
1128
+
1129
+ protected getApiTypeFromAddOrUpdateVideoEffect(
1130
+ nodeId: number,
1131
+ templateName: string
1132
+ ): string {
1133
+ return 'VideoEffectObject_addOrUpdateVideoEffect_303a98c';
1134
+ }
1135
+
1136
+ removeVideoEffect(nodeId: number): number {
1137
+ const apiType = this.getApiTypeFromRemoveVideoEffect(nodeId);
1138
+ const jsonParams = {
1139
+ nodeId: nodeId,
1140
+ toJSON: () => {
1141
+ return {
1142
+ nodeId: nodeId,
1143
+ };
1144
+ },
1145
+ };
1146
+ const jsonResults = callIrisApi.call(this, apiType, jsonParams);
1147
+ return jsonResults.result;
1148
+ }
1149
+
1150
+ protected getApiTypeFromRemoveVideoEffect(nodeId: number): string {
1151
+ return 'VideoEffectObject_removeVideoEffect_b48de50';
1152
+ }
1153
+
1154
+ performVideoEffectAction(
1155
+ nodeId: number,
1156
+ actionId: VideoEffectAction
1157
+ ): number {
1158
+ const apiType = this.getApiTypeFromPerformVideoEffectAction(
1159
+ nodeId,
1160
+ actionId
1161
+ );
1162
+ const jsonParams = {
1163
+ nodeId: nodeId,
1164
+ actionId: actionId,
1165
+ toJSON: () => {
1166
+ return {
1167
+ nodeId: nodeId,
1168
+ actionId: actionId,
1169
+ };
1170
+ },
1171
+ };
1172
+ const jsonResults = callIrisApi.call(this, apiType, jsonParams);
1173
+ return jsonResults.result;
1174
+ }
1175
+
1176
+ protected getApiTypeFromPerformVideoEffectAction(
1177
+ nodeId: number,
1178
+ actionId: VideoEffectAction
1179
+ ): string {
1180
+ return 'VideoEffectObject_performVideoEffectAction_eddb1a6';
1181
+ }
1182
+
1183
+ setVideoEffectStringParam(
1184
+ option: string,
1185
+ key: string,
1186
+ param: string
1187
+ ): number {
1188
+ const apiType = this.getApiTypeFromSetVideoEffectStringParam(
1189
+ option,
1190
+ key,
1191
+ param
1192
+ );
1193
+ const jsonParams = {
1194
+ option: option,
1195
+ key: key,
1196
+ param: param,
1197
+ toJSON: () => {
1198
+ return {
1199
+ option: option,
1200
+ key: key,
1201
+ param: param,
1202
+ };
1203
+ },
1204
+ };
1205
+ const jsonResults = callIrisApi.call(this, apiType, jsonParams);
1206
+ return jsonResults.result;
1207
+ }
1208
+
1209
+ protected getApiTypeFromSetVideoEffectStringParam(
1210
+ option: string,
1211
+ key: string,
1212
+ param: string
1213
+ ): string {
1214
+ return 'VideoEffectObject_setVideoEffectStringParam_0e4f59e';
1215
+ }
1216
+
1217
+ setVideoEffectFloatParam(option: string, key: string, param: number): number {
1218
+ const apiType = this.getApiTypeFromSetVideoEffectFloatParam(
1219
+ option,
1220
+ key,
1221
+ param
1222
+ );
1223
+ const jsonParams = {
1224
+ option: option,
1225
+ key: key,
1226
+ param: param,
1227
+ toJSON: () => {
1228
+ return {
1229
+ option: option,
1230
+ key: key,
1231
+ param: param,
1232
+ };
1233
+ },
1234
+ };
1235
+ const jsonResults = callIrisApi.call(this, apiType, jsonParams);
1236
+ return jsonResults.result;
1237
+ }
1238
+
1239
+ protected getApiTypeFromSetVideoEffectFloatParam(
1240
+ option: string,
1241
+ key: string,
1242
+ param: number
1243
+ ): string {
1244
+ return 'VideoEffectObject_setVideoEffectFloatParam_e8dfcf8';
1245
+ }
1246
+
1247
+ setVideoEffectIntParam(option: string, key: string, param: number): number {
1248
+ const apiType = this.getApiTypeFromSetVideoEffectIntParam(
1249
+ option,
1250
+ key,
1251
+ param
1252
+ );
1253
+ const jsonParams = {
1254
+ option: option,
1255
+ key: key,
1256
+ param: param,
1257
+ toJSON: () => {
1258
+ return {
1259
+ option: option,
1260
+ key: key,
1261
+ param: param,
1262
+ };
1263
+ },
1264
+ };
1265
+ const jsonResults = callIrisApi.call(this, apiType, jsonParams);
1266
+ return jsonResults.result;
1267
+ }
1268
+
1269
+ protected getApiTypeFromSetVideoEffectIntParam(
1270
+ option: string,
1271
+ key: string,
1272
+ param: number
1273
+ ): string {
1274
+ return 'VideoEffectObject_setVideoEffectIntParam_3b77680';
1275
+ }
1276
+
1277
+ setVideoEffectBoolParam(option: string, key: string, param: boolean): number {
1278
+ const apiType = this.getApiTypeFromSetVideoEffectBoolParam(
1279
+ option,
1280
+ key,
1281
+ param
1282
+ );
1283
+ const jsonParams = {
1284
+ option: option,
1285
+ key: key,
1286
+ param: param,
1287
+ toJSON: () => {
1288
+ return {
1289
+ option: option,
1290
+ key: key,
1291
+ param: param,
1292
+ };
1293
+ },
1294
+ };
1295
+ const jsonResults = callIrisApi.call(this, apiType, jsonParams);
1296
+ return jsonResults.result;
1297
+ }
1298
+
1299
+ protected getApiTypeFromSetVideoEffectBoolParam(
1300
+ option: string,
1301
+ key: string,
1302
+ param: boolean
1303
+ ): string {
1304
+ return 'VideoEffectObject_setVideoEffectBoolParam_918930f';
1305
+ }
1306
+
1307
+ getVideoEffectFloatParam(option: string, key: string): number {
1308
+ const apiType = this.getApiTypeFromGetVideoEffectFloatParam(option, key);
1309
+ const jsonParams = {
1310
+ option: option,
1311
+ key: key,
1312
+ toJSON: () => {
1313
+ return {
1314
+ option: option,
1315
+ key: key,
1316
+ };
1317
+ },
1318
+ };
1319
+ const jsonResults = callIrisApi.call(this, apiType, jsonParams);
1320
+ return jsonResults.result;
1321
+ }
1322
+
1323
+ protected getApiTypeFromGetVideoEffectFloatParam(
1324
+ option: string,
1325
+ key: string
1326
+ ): string {
1327
+ return 'VideoEffectObject_getVideoEffectFloatParam_ccad422';
1328
+ }
1329
+
1330
+ getVideoEffectIntParam(option: string, key: string): number {
1331
+ const apiType = this.getApiTypeFromGetVideoEffectIntParam(option, key);
1332
+ const jsonParams = {
1333
+ option: option,
1334
+ key: key,
1335
+ toJSON: () => {
1336
+ return {
1337
+ option: option,
1338
+ key: key,
1339
+ };
1340
+ },
1341
+ };
1342
+ const jsonResults = callIrisApi.call(this, apiType, jsonParams);
1343
+ return jsonResults.result;
1344
+ }
1345
+
1346
+ protected getApiTypeFromGetVideoEffectIntParam(
1347
+ option: string,
1348
+ key: string
1349
+ ): string {
1350
+ return 'VideoEffectObject_getVideoEffectIntParam_ccad422';
1351
+ }
1352
+
1353
+ getVideoEffectBoolParam(option: string, key: string): boolean {
1354
+ const apiType = this.getApiTypeFromGetVideoEffectBoolParam(option, key);
1355
+ const jsonParams = {
1356
+ option: option,
1357
+ key: key,
1358
+ toJSON: () => {
1359
+ return {
1360
+ option: option,
1361
+ key: key,
1362
+ };
1363
+ },
1364
+ };
1365
+ const jsonResults = callIrisApi.call(this, apiType, jsonParams);
1366
+ return jsonResults.result;
1367
+ }
1368
+
1369
+ protected getApiTypeFromGetVideoEffectBoolParam(
1370
+ option: string,
1371
+ key: string
1372
+ ): string {
1373
+ return 'VideoEffectObject_getVideoEffectBoolParam_ccad422';
1374
+ }
1375
+ }
1376
+
1094
1377
  export function processIMetadataObserver(
1095
1378
  handler: IMetadataObserver,
1096
1379
  event: string,
@@ -1771,6 +2054,54 @@ export class IRtcEngineImpl implements IRtcEngine {
1771
2054
  return 'RtcEngine_setFilterEffectOptions_53b4be3';
1772
2055
  }
1773
2056
 
2057
+ createVideoEffectObject(
2058
+ bundlePath: string,
2059
+ type: MediaSourceType = MediaSourceType.PrimaryCameraSource
2060
+ ): IVideoEffectObject {
2061
+ const apiType = this.getApiTypeFromCreateVideoEffectObject(
2062
+ bundlePath,
2063
+ type
2064
+ );
2065
+ const jsonParams = {
2066
+ bundlePath: bundlePath,
2067
+ type: type,
2068
+ toJSON: () => {
2069
+ return {
2070
+ bundlePath: bundlePath,
2071
+ type: type,
2072
+ };
2073
+ },
2074
+ };
2075
+ const jsonResults = callIrisApi.call(this, apiType, jsonParams);
2076
+ return jsonResults.result;
2077
+ }
2078
+
2079
+ protected getApiTypeFromCreateVideoEffectObject(
2080
+ bundlePath: string,
2081
+ type: MediaSourceType = MediaSourceType.PrimaryCameraSource
2082
+ ): string {
2083
+ return 'RtcEngine_createVideoEffectObject_65bd50d';
2084
+ }
2085
+
2086
+ destroyVideoEffectObject(videoEffectObject: IVideoEffectObject): number {
2087
+ const apiType =
2088
+ this.getApiTypeFromDestroyVideoEffectObject(videoEffectObject);
2089
+ const jsonParams = {
2090
+ videoEffectObject: videoEffectObject,
2091
+ toJSON: () => {
2092
+ return {};
2093
+ },
2094
+ };
2095
+ const jsonResults = callIrisApi.call(this, apiType, jsonParams);
2096
+ return jsonResults.result;
2097
+ }
2098
+
2099
+ protected getApiTypeFromDestroyVideoEffectObject(
2100
+ videoEffectObject: IVideoEffectObject
2101
+ ): string {
2102
+ return 'RtcEngine_destroyVideoEffectObject_66d092b';
2103
+ }
2104
+
1774
2105
  setLowlightEnhanceOptions(
1775
2106
  enabled: boolean,
1776
2107
  options: LowlightEnhanceOptions,
@@ -17,6 +17,7 @@ import {
17
17
  IVideoEncodedFrameObserver,
18
18
  IVideoFrameObserver,
19
19
  VideoFrame,
20
+ VideoSourceType,
20
21
  } from '../AgoraMediaBase';
21
22
  import { IH265TranscoderObserver } from '../IAgoraH265Transcoder';
22
23
  import {
@@ -65,6 +66,7 @@ import {
65
66
  MusicContentCenterInternal,
66
67
  } from './MusicContentCenterInternal';
67
68
  import { RtcEngineExInternal } from './RtcEngineExInternal';
69
+ import { VideoEffectObjectInternal } from './VideoEffectObjectInternal';
68
70
 
69
71
  // @ts-ignore
70
72
  export const DeviceEventEmitter: EventEmitter = new EventEmitter();
@@ -343,6 +345,34 @@ export const EVENT_PROCESSORS: EventProcessors = {
343
345
  case 'onStreamMessageEx':
344
346
  data.data = buffers[0];
345
347
  break;
348
+ case 'onLocalVideoStats':
349
+ if (data) {
350
+ let rendererManager = AgoraEnv.AgoraRendererManager;
351
+ if (rendererManager) {
352
+ let sourceType = (data as any).sourceType;
353
+ let connection = (data as any).connection;
354
+ let rendererCaches =
355
+ rendererManager.getRendererCachesBySourceType(sourceType);
356
+ rendererCaches.forEach((cache) => {
357
+ cache.setCallbackContext(connection, sourceType);
358
+ });
359
+ }
360
+ }
361
+ break;
362
+ case 'onRemoteVideoStats':
363
+ if (data) {
364
+ let rendererManager = AgoraEnv.AgoraRendererManager;
365
+ if (rendererManager) {
366
+ let connection = (data as any).connection;
367
+ const sourceType = VideoSourceType.VideoSourceRemote;
368
+ let rendererCaches =
369
+ rendererManager.getRendererCachesBySourceType(sourceType);
370
+ rendererCaches.forEach((cache) => {
371
+ cache.setCallbackContext(connection, sourceType);
372
+ });
373
+ }
374
+ }
375
+ break;
346
376
  }
347
377
  },
348
378
  handlers: (event: string, data: any) => RtcEngineExInternal._event_handlers,
@@ -457,12 +487,15 @@ export function callIrisApi(funcName: string, params: any): any {
457
487
  // frame.buffer
458
488
  buffers.push(params.frame.buffer);
459
489
  // frame.eglContext
490
+ // @ts-ignore
460
491
  buffers.push(Buffer.from(''));
461
492
  // frame.metadata_buffer
493
+ // @ts-ignore
462
494
  buffers.push(Buffer.from(''));
463
495
  // frame.alphaBuffer
464
496
  buffers.push(params.frame.alphaBuffer);
465
497
  // frame.d3d11_texture_2d
498
+ // @ts-ignore
466
499
  buffers.push(Buffer.from(''));
467
500
  break;
468
501
  case 'MediaEngine_pushEncodedVideoImage_e71452b':
@@ -480,6 +513,13 @@ export function callIrisApi(funcName: string, params: any): any {
480
513
  params.toJSON = function () {
481
514
  return { ...json, playerId: params.mediaPlayerId };
482
515
  };
516
+ } else if (funcName.startsWith('VideoEffectObject_')) {
517
+ params.videoEffectObjectId = // @ts-ignore
518
+ (this as VideoEffectObjectInternal).getVideoEffectObjectId();
519
+ const json = params.toJSON?.call();
520
+ params.toJSON = function () {
521
+ return { ...json, objectId: params.videoEffectObjectId };
522
+ };
483
523
  } else if (funcName.startsWith('MediaRecorder_')) {
484
524
  // @ts-ignore
485
525
  params.nativeHandle = (this as MediaRecorderInternal).nativeHandle;
@@ -516,6 +556,13 @@ export function callIrisApi(funcName: string, params: any): any {
516
556
  return { playerId: params.mediaPlayerId };
517
557
  };
518
558
  break;
559
+ case 'RtcEngine_destroyVideoEffectObject_66d092b':
560
+ params.videoEffectObjectId =
561
+ params.videoEffectObject.getVideoEffectObjectId();
562
+ params.toJSON = function () {
563
+ return { objectId: params.videoEffectObjectId };
564
+ };
565
+ break;
519
566
  case 'RtcEngine_destroyMediaRecorder_95cdef5':
520
567
  // @ts-ignore
521
568
  params.nativeHandle = (
@@ -1,8 +1,7 @@
1
1
  import { createCheckers } from 'ts-interface-checker';
2
2
 
3
3
  import { AgoraElectronBridge } from '../../Private/internal/IrisApiEngine';
4
- import { AgoraEnv, logError, parseIntPtr2Number } from '../../Utils';
5
- import { VideoEncoderConfiguration } from '../AgoraBase';
4
+ import { AgoraEnv, logDebug, logError, parseIntPtr2Number } from '../../Utils';
6
5
  let RendererManager: any;
7
6
  let CapabilityManager: any;
8
7
  //@ts-ignore
@@ -28,6 +27,7 @@ import {
28
27
  } from '../AgoraBase';
29
28
  import {
30
29
  IAudioSpectrumObserver,
30
+ MediaSourceType,
31
31
  RenderModeType,
32
32
  VideoSourceType,
33
33
  } from '../AgoraMediaBase';
@@ -43,6 +43,7 @@ import {
43
43
  IMetadataObserver,
44
44
  IRtcEngineEventHandler,
45
45
  IVideoDeviceManager,
46
+ IVideoEffectObject,
46
47
  LeaveChannelOptions,
47
48
  MetadataType,
48
49
  RtcEngineContext,
@@ -73,6 +74,7 @@ import { MediaEngineInternal } from './MediaEngineInternal';
73
74
  import { MediaPlayerInternal } from './MediaPlayerInternal';
74
75
  import { MediaRecorderInternal } from './MediaRecorderInternal';
75
76
  import { MusicContentCenterInternal } from './MusicContentCenterInternal';
77
+ import { VideoEffectObjectInternal } from './VideoEffectObjectInternal';
76
78
 
77
79
  const checkers = createCheckers(
78
80
  AgoraBaseTI,
@@ -80,6 +82,14 @@ const checkers = createCheckers(
80
82
  IAgoraRtcEngineTI
81
83
  );
82
84
 
85
+ interface PerformanceCounter {
86
+ counters: {
87
+ counterId: number;
88
+ value: number;
89
+ }[];
90
+ uid: number;
91
+ }
92
+
83
93
  export class RtcEngineExInternal extends IRtcEngineExImpl {
84
94
  static _event_handlers: IRtcEngineEventHandler[] = [];
85
95
  static _direct_cdn_streaming_event_handler: IDirectCdnStreamingEventHandler[] =
@@ -98,6 +108,13 @@ export class RtcEngineExInternal extends IRtcEngineExImpl {
98
108
  new LocalSpatialAudioEngineInternal();
99
109
  private _h265_transcoder: IH265Transcoder = new H265TranscoderInternal();
100
110
 
111
+ private performanceInterval: number = 6000;
112
+ private performanceIntervalFunc: any;
113
+ private VideoRemoteRenderMeanFpsCounterId: number = 537;
114
+ private VideoRemoteRenderDrawCostCounterId: number = 576;
115
+ private VideoLocalRenderMeanFpsCounterId: number = 526;
116
+ private VideoLocalRenderDrawCostCounterId: number = 577;
117
+
101
118
  override initialize(context: RtcEngineContext): number {
102
119
  const ret = super.initialize(context);
103
120
  callIrisApi.call(this, 'RtcEngine_setAppType', {
@@ -112,6 +129,68 @@ export class RtcEngineExInternal extends IRtcEngineExImpl {
112
129
  if (AgoraEnv.CapabilityManager === undefined && CapabilityManager) {
113
130
  AgoraEnv.CapabilityManager = new CapabilityManager();
114
131
  }
132
+ if (AgoraEnv.enableArgusCounters) {
133
+ try {
134
+ this.performanceIntervalFunc = setInterval(() => {
135
+ let rendererManager = AgoraEnv.AgoraRendererManager;
136
+ let counters: {
137
+ data: PerformanceCounter[];
138
+ connection: RtcConnection;
139
+ }[] = [];
140
+ if (rendererManager) {
141
+ rendererManager.getRendererCaches().forEach((cache) => {
142
+ const isRemote =
143
+ cache.callbackContext.sourceType ===
144
+ VideoSourceType.VideoSourceRemote;
145
+ if (
146
+ cache.callbackContext.connection?.channelId &&
147
+ (cache.callbackContext.connection?.localUid || isRemote)
148
+ ) {
149
+ let counter = counters.find(
150
+ (counter) =>
151
+ counter.connection.channelId ===
152
+ cache.callbackContext.connection.channelId &&
153
+ counter.connection.localUid ===
154
+ cache.callbackContext.connection.localUid
155
+ );
156
+ let data: PerformanceCounter = {
157
+ counters: [
158
+ {
159
+ counterId: isRemote
160
+ ? this.VideoRemoteRenderMeanFpsCounterId
161
+ : this.VideoLocalRenderMeanFpsCounterId,
162
+ value: Math.floor(cache.actualFps),
163
+ },
164
+ {
165
+ counterId: isRemote
166
+ ? this.VideoRemoteRenderDrawCostCounterId
167
+ : this.VideoLocalRenderDrawCostCounterId,
168
+ value: Math.floor(cache.avgFrameInterval),
169
+ },
170
+ ],
171
+ uid: isRemote ? cache.cacheContext.uid! : 0,
172
+ };
173
+ if (!counter) {
174
+ counters.push({
175
+ data: [data],
176
+ connection: cache.callbackContext.connection,
177
+ });
178
+ } else {
179
+ counter.data.push(data);
180
+ }
181
+ }
182
+ });
183
+ }
184
+ counters.forEach((counter) => {
185
+ this.setParameters(
186
+ JSON.stringify({ 'rtc.report.argus_counters': counter })
187
+ );
188
+ });
189
+ }, this.performanceInterval);
190
+ } catch (error) {
191
+ logDebug('argus counters report error', error);
192
+ }
193
+ }
115
194
  }
116
195
  return ret;
117
196
  }
@@ -139,6 +218,10 @@ export class RtcEngineExInternal extends IRtcEngineExImpl {
139
218
  this.removeAllListeners();
140
219
  AgoraEnv.CapabilityManager?.release();
141
220
  AgoraEnv.CapabilityManager = undefined;
221
+ if (this.performanceIntervalFunc) {
222
+ clearInterval(this.performanceIntervalFunc);
223
+ this.performanceIntervalFunc = undefined;
224
+ }
142
225
  super.release(sync);
143
226
  }
144
227
 
@@ -338,13 +421,6 @@ export class RtcEngineExInternal extends IRtcEngineExImpl {
338
421
  return super.unregisterMediaMetadataObserver(observer, type);
339
422
  }
340
423
 
341
- override setVideoEncoderConfiguration(
342
- config: VideoEncoderConfiguration
343
- ): number {
344
- AgoraEnv.encodeAlpha = config?.advanceOptions?.encodeAlpha ?? false;
345
- return super.setVideoEncoderConfiguration(config);
346
- }
347
-
348
424
  protected override getApiTypeFromJoinChannel(
349
425
  token: string,
350
426
  channelId: string,
@@ -521,6 +597,7 @@ export class RtcEngineExInternal extends IRtcEngineExImpl {
521
597
  if (!value.thumbImage?.buffer || !value.thumbImage?.length) {
522
598
  value.thumbImage!.buffer = undefined;
523
599
  } else {
600
+ // @ts-ignore
524
601
  value.thumbImage!.buffer = AgoraElectronBridge.GetBuffer(
525
602
  value.thumbImage!.buffer as unknown as number,
526
603
  value.thumbImage.length!
@@ -529,6 +606,7 @@ export class RtcEngineExInternal extends IRtcEngineExImpl {
529
606
  if (!value.iconImage?.buffer || !value.iconImage?.length) {
530
607
  value.iconImage!.buffer = undefined;
531
608
  } else {
609
+ // @ts-ignore
532
610
  value.iconImage.buffer = AgoraElectronBridge.GetBuffer(
533
611
  value.iconImage!.buffer as unknown as number,
534
612
  value.iconImage.length!
@@ -644,4 +722,23 @@ export class RtcEngineExInternal extends IRtcEngineExImpl {
644
722
  uid,
645
723
  });
646
724
  }
725
+
726
+ override createVideoEffectObject(
727
+ bundlePath: string,
728
+ type?: MediaSourceType
729
+ ): IVideoEffectObject {
730
+ // @ts-ignore
731
+ const videoEffectObjectId = super.createVideoEffectObject(
732
+ bundlePath,
733
+ type
734
+ ) as number;
735
+ return new VideoEffectObjectInternal(videoEffectObjectId);
736
+ }
737
+
738
+ override destroyVideoEffectObject(
739
+ videoEffectObject: IVideoEffectObject
740
+ ): number {
741
+ const ret = super.destroyVideoEffectObject(videoEffectObject);
742
+ return ret;
743
+ }
647
744
  }
@@ -0,0 +1,14 @@
1
+ import { IVideoEffectObjectImpl } from '../impl/IAgoraRtcEngineImpl';
2
+
3
+ export class VideoEffectObjectInternal extends IVideoEffectObjectImpl {
4
+ private readonly _videoEffectObjectId: number;
5
+
6
+ constructor(videoEffectObjectId: number) {
7
+ super();
8
+ this._videoEffectObjectId = videoEffectObjectId;
9
+ }
10
+
11
+ getVideoEffectObjectId(): number {
12
+ return this._videoEffectObjectId;
13
+ }
14
+ }
@@ -28,6 +28,7 @@ export const IRtcEngineEventHandler = t.iface([], {
28
28
  "onFirstLocalVideoFramePublished": t.opt(t.func("void", t.param("connection", "RtcConnection"), t.param("elapsed", "number"))),
29
29
  "onFirstRemoteVideoDecoded": t.opt(t.func("void", t.param("connection", "RtcConnection"), t.param("remoteUid", "number"), t.param("width", "number"), t.param("height", "number"), t.param("elapsed", "number"))),
30
30
  "onVideoSizeChanged": t.opt(t.func("void", t.param("connection", "RtcConnection"), t.param("sourceType", "VideoSourceType"), t.param("uid", "number"), t.param("width", "number"), t.param("height", "number"), t.param("rotation", "number"))),
31
+ "onLocalVideoEvent": t.opt(t.func("void", t.param("source", "VideoSourceType"), t.param("event", "LocalVideoEventType"))),
31
32
  "onLocalVideoStateChanged": t.opt(t.func("void", t.param("source", "VideoSourceType"), t.param("state", "LocalVideoStreamState"), t.param("reason", "LocalVideoStreamReason"))),
32
33
  "onRemoteVideoStateChanged": t.opt(t.func("void", t.param("connection", "RtcConnection"), t.param("remoteUid", "number"), t.param("state", "RemoteVideoState"), t.param("reason", "RemoteVideoStateReason"), t.param("elapsed", "number"))),
33
34
  "onFirstRemoteVideoFrame": t.opt(t.func("void", t.param("connection", "RtcConnection"), t.param("remoteUid", "number"), t.param("width", "number"), t.param("height", "number"), t.param("elapsed", "number"))),
@@ -100,6 +101,7 @@ export const IRtcEngineEventHandler = t.iface([], {
100
101
  "onExtensionStoppedWithContext": t.opt(t.func("void", t.param("context", "ExtensionContext"))),
101
102
  "onExtensionErrorWithContext": t.opt(t.func("void", t.param("context", "ExtensionContext"), t.param("error", "number"), t.param("message", "string"))),
102
103
  "onSetRtmFlagResult": t.opt(t.func("void", t.param("connection", "RtcConnection"), t.param("code", "number"))),
104
+ "onMultipathStats": t.opt(t.func("void", t.param("connection", "RtcConnection"), t.param("stats", "MultipathStats"))),
103
105
  });
104
106
 
105
107
  export const IMetadataObserver = t.iface([], {