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
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WebGLRenderer = void 0;
4
+ const AgoraMediaBase_1 = require("../../Private/AgoraMediaBase");
4
5
  const Types_1 = require("../../Types");
5
6
  const Utils_1 = require("../../Utils");
6
7
  const IRenderer_1 = require("../IRenderer");
@@ -24,31 +25,48 @@ const yuvShaderSource = `
24
25
  uniform sampler2D Vtex;
25
26
  uniform sampler2D Atex;
26
27
  uniform bool hasAlpha;
28
+
29
+ // Dynamic color space conversion parameters
30
+ uniform float u_yOffset;
31
+ uniform float u_yScale;
32
+ uniform float u_rVCoeff;
33
+ uniform float u_gUCoeff;
34
+ uniform float u_gVCoeff;
35
+ uniform float u_bUCoeff;
36
+
27
37
  varying vec2 v_texCoord;
38
+
28
39
  void main(void) {
29
- float nx,ny,r,g,b,y,u,v,a;
30
- mediump vec4 txl,ux,vx;
31
- nx=v_texCoord[0];
32
- ny=v_texCoord[1];
33
- y=texture2D(Ytex,vec2(nx,ny)).r;
34
- u=texture2D(Utex,vec2(nx,ny)).r;
35
- v=texture2D(Vtex,vec2(nx,ny)).r;
40
+ float nx = v_texCoord[0];
41
+ float ny = v_texCoord[1];
42
+
43
+ float y = texture2D(Ytex, vec2(nx, ny)).r;
44
+ float u = texture2D(Utex, vec2(nx, ny)).r;
45
+ float v = texture2D(Vtex, vec2(nx, ny)).r;
46
+ float a;
47
+
36
48
  if (hasAlpha) {
37
- a=texture2D(Atex,vec2(nx,ny)).r;
49
+ a = texture2D(Atex, vec2(nx, ny)).r;
38
50
  } else {
39
- a=1.0;
51
+ a = 1.0;
40
52
  }
41
- y=1.1643*(y-0.0625);
42
- u=u-0.5;
43
- v=v-0.5;
44
- r=y+1.5958*v;
45
- g=y-0.39173*u-0.81290*v;
46
- b=y+2.017*u;
47
- gl_FragColor=vec4(r,g,b,a);
53
+
54
+ // Apply dynamic color space conversion
55
+ y = u_yScale * (y - u_yOffset);
56
+ u = u - 0.5;
57
+ v = v - 0.5;
58
+
59
+ float r = y + u_rVCoeff * v;
60
+ float g = y + u_gUCoeff * u + u_gVCoeff * v;
61
+ float b = y + u_bUCoeff * u;
62
+
63
+ gl_FragColor = vec4(r, g, b, a);
48
64
  }`;
49
65
  class WebGLRenderer extends IRenderer_1.IRenderer {
50
66
  constructor(fallback) {
51
67
  super();
68
+ // Color space uniform locations
69
+ this.colorSpaceUniforms = {};
52
70
  this.handleContextLost = (event) => {
53
71
  event.preventDefault();
54
72
  (0, Utils_1.logWarn)('webglcontextlost', event);
@@ -78,25 +96,25 @@ class WebGLRenderer extends IRenderer_1.IRenderer {
78
96
  this.surfaceBuffer = null;
79
97
  this.fallback = fallback;
80
98
  }
81
- bind(view) {
82
- super.bind(view);
99
+ bind(context) {
100
+ super.bind(context);
83
101
  this.canvas?.addEventListener('webglcontextlost', this.handleContextLost, false);
84
102
  this.canvas?.addEventListener('webglcontextrestored', this.handleContextRestored, false);
85
103
  const getContext = (contextNames = ['webgl2', 'webgl', 'experimental-webgl']) => {
86
104
  for (let i = 0; i < contextNames.length; i++) {
87
105
  const contextName = contextNames[i];
88
- const context = this.canvas?.getContext(contextName, {
106
+ const canvasContext = this.canvas?.getContext(contextName, {
89
107
  depth: true,
90
108
  stencil: true,
91
- alpha: true,
109
+ alpha: context.enableAlphaMask,
92
110
  antialias: false,
93
111
  premultipliedAlpha: true,
94
- preserveDrawingBuffer: !Utils_1.AgoraEnv.encodeAlpha,
112
+ preserveDrawingBuffer: !context.enableAlphaMask,
95
113
  powerPreference: 'default',
96
114
  failIfMajorPerformanceCaveat: false,
97
115
  });
98
- if (context) {
99
- return context;
116
+ if (canvasContext) {
117
+ return canvasContext;
100
118
  }
101
119
  }
102
120
  return null;
@@ -135,11 +153,13 @@ class WebGLRenderer extends IRenderer_1.IRenderer {
135
153
  this.gl = null;
136
154
  super.unbind();
137
155
  }
138
- drawFrame({ width, height, yStride, uStride, vStride, yBuffer, uBuffer, vBuffer, rotation, alphaBuffer, }) {
156
+ drawFrame(uid, { width, height, yStride, uStride, vStride, yBuffer, uBuffer, vBuffer, rotation, alphaBuffer, colorSpace, }) {
139
157
  this.rotateCanvas({ width, height, rotation });
140
158
  this.updateRenderMode();
141
159
  if (!this.gl || !this.program)
142
160
  return;
161
+ // Set color space conversion parameters based on frame properties
162
+ this.setColorSpaceUniforms(colorSpace);
143
163
  const left = 0, top = 0, right = yStride - width, bottom = 0;
144
164
  this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.texCoordBuffer);
145
165
  const xWidth = width + left + right;
@@ -188,7 +208,7 @@ class WebGLRenderer extends IRenderer_1.IRenderer {
188
208
  pixels: vBuffer,
189
209
  },
190
210
  };
191
- if (alphaBuffer) {
211
+ if (alphaBuffer && alphaBuffer.length > 0 && this.context.enableAlphaMask) {
192
212
  textures[this.gl.TEXTURE3] = {
193
213
  texture: this.aTexture,
194
214
  stride: width,
@@ -206,7 +226,7 @@ class WebGLRenderer extends IRenderer_1.IRenderer {
206
226
  }
207
227
  }
208
228
  this.gl.drawArrays(this.gl.TRIANGLES, 0, 6);
209
- super.drawFrame();
229
+ super.drawFrame(uid);
210
230
  }
211
231
  rotateCanvas({ width, height, rotation }) {
212
232
  super.rotateCanvas({ width, height, rotation });
@@ -272,6 +292,13 @@ class WebGLRenderer extends IRenderer_1.IRenderer {
272
292
  this.positionLocation = this.gl.getAttribLocation(this.program, 'a_position');
273
293
  this.texCoordLocation = this.gl.getAttribLocation(this.program, 'a_texCoord');
274
294
  this.hasAlpha = this.gl.getUniformLocation(this.program, 'hasAlpha');
295
+ // Get color space uniform locations
296
+ this.colorSpaceUniforms.yOffset = this.gl.getUniformLocation(this.program, 'u_yOffset');
297
+ this.colorSpaceUniforms.yScale = this.gl.getUniformLocation(this.program, 'u_yScale');
298
+ this.colorSpaceUniforms.rVCoeff = this.gl.getUniformLocation(this.program, 'u_rVCoeff');
299
+ this.colorSpaceUniforms.gUCoeff = this.gl.getUniformLocation(this.program, 'u_gUCoeff');
300
+ this.colorSpaceUniforms.gVCoeff = this.gl.getUniformLocation(this.program, 'u_gVCoeff');
301
+ this.colorSpaceUniforms.bUCoeff = this.gl.getUniformLocation(this.program, 'u_bUCoeff');
275
302
  this.surfaceBuffer = this.gl.createBuffer();
276
303
  this.texCoordBuffer = this.gl.createBuffer();
277
304
  const createTexture = (texture, textureIndex, textureName) => {
@@ -293,6 +320,8 @@ class WebGLRenderer extends IRenderer_1.IRenderer {
293
320
  this.uTexture = createTexture(this.gl.TEXTURE1, 1, 'Utex');
294
321
  this.vTexture = createTexture(this.gl.TEXTURE2, 2, 'Vtex');
295
322
  this.aTexture = createTexture(this.gl.TEXTURE3, 3, 'Atex');
323
+ // Set default color space parameters (BT.601 Limited Range)
324
+ this.setColorSpaceUniforms();
296
325
  }
297
326
  releaseTextures() {
298
327
  this.gl?.deleteProgram(this.program);
@@ -305,10 +334,134 @@ class WebGLRenderer extends IRenderer_1.IRenderer {
305
334
  this.yTexture = null;
306
335
  this.uTexture = null;
307
336
  this.vTexture = null;
337
+ this.aTexture = null;
338
+ this.hasAlpha = null;
308
339
  this.gl?.deleteBuffer(this.texCoordBuffer);
309
340
  this.gl?.deleteBuffer(this.surfaceBuffer);
310
341
  this.texCoordBuffer = null;
311
342
  this.surfaceBuffer = null;
312
343
  }
344
+ /**
345
+ * Get color space conversion parameters based on color space and range
346
+ */
347
+ getColorSpaceParams(colorSpace) {
348
+ // Default to BT.601 Limited if not specified
349
+ const primaries = colorSpace?.primaries ?? AgoraMediaBase_1.PrimaryID.PrimaryidBt709;
350
+ const range = colorSpace?.range ?? AgoraMediaBase_1.RangeID.RangeidLimited;
351
+ // Y offset and scale based on ran
352
+ let yOffset;
353
+ let yScale;
354
+ if (range === AgoraMediaBase_1.RangeID.RangeidFull) {
355
+ yOffset = 0.0;
356
+ yScale = 1.0;
357
+ }
358
+ else {
359
+ // Limited range: Y [16, 235] -> [0, 1]
360
+ yOffset = 16.0 / 255.0; // 0.0625
361
+ yScale = 255.0 / (235.0 - 16.0); // 1.1643
362
+ }
363
+ // Color space conversion coefficients
364
+ let rVCoeff, gUCoeff, gVCoeff, bUCoeff;
365
+ switch (primaries) {
366
+ case AgoraMediaBase_1.PrimaryID.PrimaryidBt709:
367
+ if (range === AgoraMediaBase_1.RangeID.RangeidFull) {
368
+ // BT.709 Full Range
369
+ rVCoeff = 1.5748;
370
+ gUCoeff = -0.187324;
371
+ gVCoeff = -0.468124;
372
+ bUCoeff = 1.8556;
373
+ }
374
+ else {
375
+ // BT.709 Limited Range
376
+ rVCoeff = 1.792741;
377
+ gUCoeff = -0.213249;
378
+ gVCoeff = -0.532909;
379
+ bUCoeff = 2.112402;
380
+ }
381
+ break;
382
+ case AgoraMediaBase_1.PrimaryID.PrimaryidBt2020:
383
+ if (range === AgoraMediaBase_1.RangeID.RangeidFull) {
384
+ // BT.2020 Full Range
385
+ rVCoeff = 1.4746;
386
+ gUCoeff = -0.164553;
387
+ gVCoeff = -0.571353;
388
+ bUCoeff = 1.8814;
389
+ }
390
+ else {
391
+ // BT.2020 Limited Range
392
+ rVCoeff = 1.678674;
393
+ gUCoeff = -0.187326;
394
+ gVCoeff = -0.650424;
395
+ bUCoeff = 2.141772;
396
+ }
397
+ break;
398
+ case AgoraMediaBase_1.PrimaryID.PrimaryidSmpte170m || AgoraMediaBase_1.PrimaryID.PrimaryidBt470bg:
399
+ if (range === AgoraMediaBase_1.RangeID.RangeidFull) {
400
+ // BT.601 Full Range
401
+ rVCoeff = 1.402;
402
+ gUCoeff = -0.344136;
403
+ gVCoeff = -0.714136;
404
+ bUCoeff = 1.772;
405
+ }
406
+ else {
407
+ // BT.601 Limited Range
408
+ rVCoeff = 1.596027;
409
+ gUCoeff = -0.391762;
410
+ gVCoeff = -0.812968;
411
+ bUCoeff = 2.017232;
412
+ }
413
+ break;
414
+ default:
415
+ if (range === AgoraMediaBase_1.RangeID.RangeidFull) {
416
+ // BT.601 Full Range
417
+ rVCoeff = 1.402;
418
+ gUCoeff = -0.344136;
419
+ gVCoeff = -0.714136;
420
+ bUCoeff = 1.772;
421
+ }
422
+ else {
423
+ // BT.601 Limited Range (your original values)
424
+ rVCoeff = 1.596027;
425
+ gUCoeff = -0.391762;
426
+ gVCoeff = -0.812968;
427
+ bUCoeff = 2.017232;
428
+ }
429
+ break;
430
+ }
431
+ return {
432
+ yOffset,
433
+ yScale,
434
+ rVCoeff,
435
+ gUCoeff,
436
+ gVCoeff,
437
+ bUCoeff,
438
+ };
439
+ }
440
+ /**
441
+ * Set color space uniform values in the shader
442
+ */
443
+ setColorSpaceUniforms(colorSpace) {
444
+ if (!this.gl || !this.program)
445
+ return;
446
+ const params = this.getColorSpaceParams(colorSpace);
447
+ if (this.colorSpaceUniforms.yOffset) {
448
+ this.gl.uniform1f(this.colorSpaceUniforms.yOffset, params.yOffset);
449
+ }
450
+ if (this.colorSpaceUniforms.yScale) {
451
+ this.gl.uniform1f(this.colorSpaceUniforms.yScale, params.yScale);
452
+ }
453
+ if (this.colorSpaceUniforms.rVCoeff) {
454
+ this.gl.uniform1f(this.colorSpaceUniforms.rVCoeff, params.rVCoeff);
455
+ }
456
+ if (this.colorSpaceUniforms.gUCoeff) {
457
+ this.gl.uniform1f(this.colorSpaceUniforms.gUCoeff, params.gUCoeff);
458
+ }
459
+ if (this.colorSpaceUniforms.gVCoeff) {
460
+ this.gl.uniform1f(this.colorSpaceUniforms.gVCoeff, params.gVCoeff);
461
+ }
462
+ if (this.colorSpaceUniforms.bUCoeff) {
463
+ this.gl.uniform1f(this.colorSpaceUniforms.bUCoeff, params.bUCoeff);
464
+ }
465
+ }
313
466
  }
314
467
  exports.WebGLRenderer = WebGLRenderer;
@@ -5,13 +5,13 @@ const IRenderer_1 = require("../IRenderer");
5
5
  const YUVBuffer = require('yuv-buffer');
6
6
  const YUVCanvas = require('yuv-canvas');
7
7
  class YUVCanvasRenderer extends IRenderer_1.IRenderer {
8
- bind(element) {
9
- super.bind(element);
8
+ bind(context) {
9
+ super.bind(context);
10
10
  this.frameSink = YUVCanvas.attach(this.canvas, {
11
11
  webGL: false,
12
12
  });
13
13
  }
14
- drawFrame({ width, height, yStride, uStride, vStride, yBuffer, uBuffer, vBuffer, rotation, alphaBuffer, }) {
14
+ drawFrame(uid, { width, height, yStride, uStride, vStride, yBuffer, uBuffer, vBuffer, rotation, alphaBuffer, }) {
15
15
  this.rotateCanvas({ width, height, rotation });
16
16
  this.updateRenderMode();
17
17
  if (!this.frameSink)
@@ -32,9 +32,16 @@ class YUVCanvasRenderer extends IRenderer_1.IRenderer {
32
32
  bytes: vBuffer,
33
33
  stride: vStride,
34
34
  });
35
- frame.a = alphaBuffer;
35
+ if (alphaBuffer &&
36
+ alphaBuffer.length > 0 &&
37
+ alphaBuffer.length === width * height) {
38
+ frame.a =
39
+ alphaBuffer instanceof Uint8Array
40
+ ? alphaBuffer
41
+ : new Uint8Array(alphaBuffer);
42
+ }
36
43
  this.frameSink.drawFrame(frame);
37
- super.drawFrame();
44
+ super.drawFrame(uid);
38
45
  }
39
46
  rotateCanvas({ width, height, rotation }) {
40
47
  super.rotateCanvas({ width, height, rotation });
@@ -98,13 +98,13 @@ function classMix(...mixins) {
98
98
  class MixClass {
99
99
  constructor() {
100
100
  for (let mixin of mixins) {
101
- copyProperties(this, new mixin()); // 拷贝实例属性
101
+ copyProperties(this, new mixin()); // Copy instance properties
102
102
  }
103
103
  }
104
104
  }
105
105
  for (let mixin of mixins) {
106
- copyProperties(MixClass, mixin); // 拷贝静态属性
107
- copyProperties(MixClass.prototype, mixin.prototype); // 拷贝原型属性
106
+ copyProperties(MixClass, mixin); // Copy static properties
107
+ copyProperties(MixClass.prototype, mixin.prototype); // Copy prototype properties
108
108
  }
109
109
  return MixClass;
110
110
  }
@@ -152,17 +152,17 @@ exports.isSupportWebGL = isSupportWebGL;
152
152
  */
153
153
  function getContextByCanvas(
154
154
  // eslint-disable-next-line auto-import/auto-import
155
- canvas) {
155
+ canvas, enableAlphaMask = false) {
156
156
  const contextNames = ['webgl2', 'webgl', 'experimental-webgl'];
157
157
  for (const contextName of contextNames) {
158
158
  //@ts-ignore
159
159
  const context = canvas.getContext(contextName, {
160
160
  depth: true,
161
161
  stencil: true,
162
- alpha: false,
162
+ alpha: enableAlphaMask,
163
163
  antialias: false,
164
164
  premultipliedAlpha: true,
165
- preserveDrawingBuffer: true,
165
+ preserveDrawingBuffer: !enableAlphaMask,
166
166
  powerPreference: 'default',
167
167
  failIfMajorPerformanceCaveat: false,
168
168
  });
@@ -181,7 +181,7 @@ exports.AgoraEnv = {
181
181
  enableDebugLogging: false,
182
182
  webEnvReady: true,
183
183
  enableWebCodecsDecoder: false,
184
- encodeAlpha: false,
185
184
  videoFallbackStrategy: Types_1.VideoFallbackStrategy.PerformancePriority,
186
185
  maxDecodeRetryCount: 50,
186
+ enableArgusCounters: true,
187
187
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agora-electron-sdk",
3
- "version": "4.5.2",
3
+ "version": "4.5.3-dev.2",
4
4
  "description": "agora-electron-sdk",
5
5
  "main": "js/AgoraSdk",
6
6
  "types": "types/AgoraSdk.d.ts",
@@ -116,7 +116,8 @@
116
116
  "tagName": "v${version}"
117
117
  },
118
118
  "npm": {
119
- "publish": true
119
+ "publish": true,
120
+ "skipChecks": true
120
121
  },
121
122
  "github": {
122
123
  "release": true
@@ -131,25 +132,37 @@
131
132
  "dependencies": {
132
133
  "buffer": "^6.0.3",
133
134
  "cross-env": "^7.0.3",
134
- "download": "^8.0.0",
135
+ "node-fetch": "^2.7.0",
136
+ "extract-zip": "^2.0.1",
135
137
  "eventemitter3": "^5.0.1",
136
138
  "fs-extra": "^11.1.1",
137
- "gulp": "^4.0.2",
139
+ "gulp": "^5.0.0",
138
140
  "json-bigint": "^1.0.0",
139
141
  "jsonfile": "^6.1.0",
140
142
  "lodash.isequal": "^4.5.0",
141
- "minimist": "^1.2.5",
143
+ "minimist": "^1.2.8",
144
+ "shelljs": "^0.8.5",
142
145
  "semver": "^7.6.0",
143
- "shelljs": "^0.8.4",
144
146
  "ts-interface-checker": "^1.0.2",
145
- "winston": "^3.3.3",
147
+ "winston": "^3.11.0",
146
148
  "yuv-buffer": "1.0.0",
147
- "yuv-canvas": "1.2.6"
149
+ "yuv-canvas": "1.2.6",
150
+ "archive-type": "^4.0.0",
151
+ "content-disposition": "^0.5.2",
152
+ "decompress": "^4.2.1",
153
+ "ext-name": "^5.0.0",
154
+ "file-type": "^11.1.0",
155
+ "filenamify": "^3.0.0",
156
+ "get-stream": "^4.1.0",
157
+ "got": "^11.8.5",
158
+ "make-dir": "^4.0.0",
159
+ "p-event": "^2.1.0",
160
+ "pify": "^4.0.1"
148
161
  },
149
162
  "agora_electron": {
150
- "iris_sdk_win": "https://download.agora.io/sdk/release/iris_4.5.1-build.1_DCG_Windows_Video_Standalone_20250305_1103_622.zip",
151
- "iris_sdk_mac": "https://download.agora.io/sdk/release/iris_4.5.1-build.1_DCG_Mac_Video_Standalone_20250305_1105_590.zip",
152
- "native_sdk_win": "https://download.agora.io/sdk/release/Agora_Native_SDK_for_Windows_v4.5.1_FULL.zip",
153
- "native_sdk_mac": "https://download.agora.io/sdk/release/Agora_Native_SDK_for_Mac_v4.5.1_FULL.zip"
163
+ "iris_sdk_win": "https://download.agora.io/sdk/release/iris_4.5.3-dev.8_DCG_Windows_Video_Standalone_20260403_0226_31945.zip",
164
+ "iris_sdk_mac": "https://download.agora.io/sdk/release/iris_4.5.3-dev.8_DCG_Mac_Video_Standalone_20260403_0226_32882.zip",
165
+ "native_sdk_win": "https://download.agora.io/sdk/release/Agora_Native_SDK_for_Windows_v4.5.3_FULL.zip",
166
+ "native_sdk_mac": "https://download.agora.io/sdk/release/Agora_Native_SDK_for_Mac_v4.5.3_FULL.zip"
154
167
  }
155
168
  }
@@ -1,8 +1,8 @@
1
1
  const path = require('path');
2
2
 
3
- const download = require('download');
4
-
5
3
  const { cleanDir } = require('./clean');
4
+ const download = require('./download');
5
+
6
6
  const getConfig = require('./getConfig');
7
7
  const logger = require('./logger');
8
8
 
@@ -30,9 +30,11 @@ const checkElectron = async (cb) => {
30
30
  let downloadUrl = `https://download.agora.io/sdk/release/electron-v${electron_version}-${platform}-${arch}.zip`;
31
31
  logger.info(`Downloading:${downloadUrl}`);
32
32
  await cleanDir(tp);
33
+
33
34
  await download(downloadUrl, tp, {
34
35
  extract: true,
35
36
  });
37
+
36
38
  logger.info(`Finish download:${downloadUrl}`);
37
39
  logger.info(`sync electron success`);
38
40
  cb();
@@ -0,0 +1,102 @@
1
+ 'use strict';
2
+ const fs = require('fs');
3
+ const path = require('path');
4
+ const { URL } = require('url');
5
+
6
+ const archiveType = require('archive-type');
7
+ const contentDisposition = require('content-disposition');
8
+ const decompress = require('decompress');
9
+ const extName = require('ext-name');
10
+ const fileType = require('file-type');
11
+ const filenamify = require('filenamify');
12
+ const getStream = require('get-stream');
13
+ const got = require('got');
14
+ const makeDir = require('make-dir');
15
+ const pEvent = require('p-event');
16
+ const pify = require('pify');
17
+
18
+ const fsP = pify(fs);
19
+ const filenameFromPath = (res) =>
20
+ path.basename(new URL(res.requestUrl).pathname);
21
+
22
+ const getExtFromMime = (res) => {
23
+ const header = res.headers['content-type'];
24
+
25
+ if (!header) {
26
+ return null;
27
+ }
28
+
29
+ const exts = extName.mime(header);
30
+
31
+ if (exts.length !== 1) {
32
+ return null;
33
+ }
34
+
35
+ return exts[0].ext;
36
+ };
37
+
38
+ const getFilename = (res, data) => {
39
+ const header = res.headers['content-disposition'];
40
+
41
+ if (header) {
42
+ const parsed = contentDisposition.parse(header);
43
+
44
+ if (parsed.parameters && parsed.parameters.filename) {
45
+ return parsed.parameters.filename;
46
+ }
47
+ }
48
+
49
+ let filename = filenameFromPath(res);
50
+
51
+ if (!path.extname(filename)) {
52
+ const ext = (fileType(data) || {}).ext || getExtFromMime(res);
53
+
54
+ if (ext) {
55
+ filename = `${filename}.${ext}`;
56
+ }
57
+ }
58
+
59
+ return filename;
60
+ };
61
+
62
+ module.exports = (uri, output, opts) => {
63
+ opts = {
64
+ ...opts,
65
+ encoding: null,
66
+ responseType: 'buffer',
67
+ rejectUnauthorized: process.env.npm_config_strict_ssl !== 'false',
68
+ };
69
+
70
+ const stream = got.stream(uri);
71
+
72
+ const promise = pEvent(stream, 'response')
73
+ .then((res) => {
74
+ const encoding = opts.encoding === null ? 'buffer' : opts.encoding;
75
+ return Promise.all([getStream(stream, { encoding }), res]);
76
+ })
77
+ .then((result) => {
78
+ const [data, res] = result;
79
+
80
+ if (!output) {
81
+ return opts.extract && archiveType(data)
82
+ ? decompress(data, opts)
83
+ : data;
84
+ }
85
+
86
+ const filename = opts.filename || filenamify(getFilename(res, data));
87
+ const outputFilepath = path.join(output, filename);
88
+
89
+ if (opts.extract && archiveType(data)) {
90
+ return decompress(data, path.dirname(outputFilepath), opts);
91
+ }
92
+
93
+ return makeDir(path.dirname(outputFilepath))
94
+ .then(() => fsP.writeFile(outputFilepath, data))
95
+ .then(() => data);
96
+ });
97
+
98
+ stream.then = promise.then.bind(promise);
99
+ stream.catch = promise.catch.bind(promise);
100
+
101
+ return stream;
102
+ };
@@ -1,9 +1,10 @@
1
1
  const path = require('path');
2
2
 
3
- const download = require('download');
4
3
  const fs = require('fs-extra');
5
4
 
6
5
  const { cleanDir, buildDir } = require('./clean');
6
+ const download = require('./download');
7
+
7
8
  const getConfig = require('./getConfig');
8
9
  const logger = require('./logger');
9
10
  const { getOS } = require('./util');
@@ -1,8 +1,8 @@
1
1
  const path = require('path');
2
2
 
3
- const download = require('download');
4
-
5
3
  const { destIrisSDKDir, cleanDir, destNativeSDKDir } = require('./clean');
4
+ const download = require('./download');
5
+
6
6
  const getConfig = require('./getConfig');
7
7
  const logger = require('./logger');
8
8
  const { getOS, moveFile, getIrisStandAlone } = require('./util');
package/ts/AgoraSdk.ts CHANGED
@@ -25,12 +25,7 @@ export * from './Utils';
25
25
  const instance = new RtcEngineExInternal();
26
26
 
27
27
  /**
28
- * Creates one IRtcEngineEx object.
29
- *
30
- * Currently, the Agora RTC SDK v4.x supports creating only one IRtcEngineEx object for each app.
31
- *
32
- * @returns
33
- * One IRtcEngineEx object.
28
+ * @ignore
34
29
  */
35
30
  export function createAgoraRtcEngine(options?: AgoraEnvOptions): IRtcEngineEx {
36
31
  Object.assign(AgoraEnv, options);
@@ -38,12 +33,7 @@ export function createAgoraRtcEngine(options?: AgoraEnvOptions): IRtcEngineEx {
38
33
  }
39
34
 
40
35
  /**
41
- * Gets one IMediaPlayerCacheManager instance.
42
- *
43
- * Before calling any APIs in the IMediaPlayerCacheManager class, you need to call this method to get a cache manager instance of a media player.
44
- *
45
- * @returns
46
- * The IMediaPlayerCacheManager instance.
36
+ * @ignore
47
37
  */
48
38
  export function getMediaPlayerCacheManager(): IMediaPlayerCacheManager {
49
39
  return new IMediaPlayerCacheManagerImpl();
@@ -64,7 +64,11 @@ export class WebCodecsDecoder {
64
64
  if (renderer.rendererType !== RendererType.WEBCODECSRENDERER) {
65
65
  continue;
66
66
  }
67
- renderer.drawFrame(this.pendingFrame, this._currentCodecConfig!);
67
+ renderer.drawFrame(
68
+ this._cacheContext.uid!,
69
+ this.pendingFrame,
70
+ this._currentCodecConfig!
71
+ );
68
72
  this.pendingFrame = null;
69
73
  }
70
74
  }