webcodecs-node 0.3.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (348) hide show
  1. package/dist/backends/types.d.ts +6 -3
  2. package/dist/backends/types.d.ts.map +1 -1
  3. package/dist/backends/types.js +2 -2
  4. package/dist/backends/types.js.map +1 -1
  5. package/dist/{ffmpeg → codec-utils}/audio-codecs.d.ts +13 -12
  6. package/dist/codec-utils/audio-codecs.d.ts.map +1 -0
  7. package/dist/{ffmpeg → codec-utils}/audio-codecs.js +29 -11
  8. package/dist/codec-utils/audio-codecs.js.map +1 -0
  9. package/dist/{ffmpeg → codec-utils}/formats.d.ts +7 -7
  10. package/dist/codec-utils/formats.d.ts.map +1 -0
  11. package/dist/{ffmpeg → codec-utils}/formats.js +7 -7
  12. package/dist/codec-utils/formats.js.map +1 -0
  13. package/dist/{ffmpeg → codec-utils}/index.d.ts +3 -3
  14. package/dist/codec-utils/index.d.ts.map +1 -0
  15. package/dist/{ffmpeg → codec-utils}/index.js +3 -4
  16. package/dist/codec-utils/index.js.map +1 -0
  17. package/dist/{ffmpeg → codec-utils}/types.d.ts +13 -11
  18. package/dist/codec-utils/types.d.ts.map +1 -0
  19. package/dist/{ffmpeg → codec-utils}/types.js +3 -1
  20. package/dist/codec-utils/types.js.map +1 -0
  21. package/dist/containers/Demuxer.d.ts +114 -0
  22. package/dist/containers/Demuxer.d.ts.map +1 -0
  23. package/dist/containers/Demuxer.js +256 -0
  24. package/dist/containers/Demuxer.js.map +1 -0
  25. package/dist/containers/Muxer.d.ts +142 -0
  26. package/dist/containers/Muxer.d.ts.map +1 -0
  27. package/dist/containers/Muxer.js +295 -0
  28. package/dist/containers/Muxer.js.map +1 -0
  29. package/dist/containers/extract.d.ts +25 -0
  30. package/dist/containers/extract.d.ts.map +1 -0
  31. package/dist/containers/extract.js +64 -0
  32. package/dist/containers/extract.js.map +1 -0
  33. package/dist/containers/index.d.ts +40 -0
  34. package/dist/containers/index.d.ts.map +1 -0
  35. package/dist/containers/index.js +41 -0
  36. package/dist/containers/index.js.map +1 -0
  37. package/dist/containers/transcode.d.ts +138 -0
  38. package/dist/containers/transcode.d.ts.map +1 -0
  39. package/dist/containers/transcode.js +536 -0
  40. package/dist/containers/transcode.js.map +1 -0
  41. package/dist/core/AudioData.d.ts +4 -0
  42. package/dist/core/AudioData.d.ts.map +1 -1
  43. package/dist/core/AudioData.js +56 -4
  44. package/dist/core/AudioData.js.map +1 -1
  45. package/dist/core/EncodedAudioChunk.d.ts +1 -1
  46. package/dist/core/EncodedAudioChunk.d.ts.map +1 -1
  47. package/dist/core/EncodedAudioChunk.js +1 -1
  48. package/dist/core/EncodedAudioChunk.js.map +1 -1
  49. package/dist/core/EncodedVideoChunk.d.ts.map +1 -1
  50. package/dist/core/EncodedVideoChunk.js +3 -19
  51. package/dist/core/EncodedVideoChunk.js.map +1 -1
  52. package/dist/core/VideoFrame.d.ts +6 -1
  53. package/dist/core/VideoFrame.d.ts.map +1 -1
  54. package/dist/core/VideoFrame.js +130 -17
  55. package/dist/core/VideoFrame.js.map +1 -1
  56. package/dist/decoders/AudioDecoder.d.ts +8 -0
  57. package/dist/decoders/AudioDecoder.d.ts.map +1 -1
  58. package/dist/decoders/AudioDecoder.js +62 -32
  59. package/dist/decoders/AudioDecoder.js.map +1 -1
  60. package/dist/decoders/ImageDecoder.d.ts +0 -3
  61. package/dist/decoders/ImageDecoder.d.ts.map +1 -1
  62. package/dist/decoders/ImageDecoder.js +13 -225
  63. package/dist/decoders/ImageDecoder.js.map +1 -1
  64. package/dist/decoders/VideoDecoder.d.ts +8 -0
  65. package/dist/decoders/VideoDecoder.d.ts.map +1 -1
  66. package/dist/decoders/VideoDecoder.js +76 -46
  67. package/dist/decoders/VideoDecoder.js.map +1 -1
  68. package/dist/demos/demo-1080p-transcode.d.ts +8 -0
  69. package/dist/demos/demo-1080p-transcode.d.ts.map +1 -0
  70. package/dist/demos/demo-1080p-transcode.js +188 -0
  71. package/dist/demos/demo-1080p-transcode.js.map +1 -0
  72. package/dist/demos/demo-containers.d.ts +7 -0
  73. package/dist/demos/demo-containers.d.ts.map +1 -0
  74. package/dist/demos/demo-containers.js +140 -0
  75. package/dist/demos/demo-containers.js.map +1 -0
  76. package/dist/demos/demo-four-corners.js +4 -4
  77. package/dist/demos/demo-four-corners.js.map +1 -1
  78. package/dist/demos/demo-hwaccel.js +1 -1
  79. package/dist/demos/demo-hwaccel.js.map +1 -1
  80. package/dist/demos/demo-samples.js +4 -4
  81. package/dist/demos/demo-samples.js.map +1 -1
  82. package/dist/demos/demo-streaming.js +6 -6
  83. package/dist/demos/demo-streaming.js.map +1 -1
  84. package/dist/encoders/AudioEncoder.d.ts +8 -0
  85. package/dist/encoders/AudioEncoder.d.ts.map +1 -1
  86. package/dist/encoders/AudioEncoder.js +68 -26
  87. package/dist/encoders/AudioEncoder.js.map +1 -1
  88. package/dist/encoders/VideoEncoder.d.ts +8 -0
  89. package/dist/encoders/VideoEncoder.d.ts.map +1 -1
  90. package/dist/encoders/VideoEncoder.js +64 -13
  91. package/dist/encoders/VideoEncoder.js.map +1 -1
  92. package/dist/formats/conversions/batch-converter.d.ts +61 -0
  93. package/dist/formats/conversions/batch-converter.d.ts.map +1 -0
  94. package/dist/formats/conversions/batch-converter.js +274 -0
  95. package/dist/formats/conversions/batch-converter.js.map +1 -0
  96. package/dist/formats/conversions/frame-converter.d.ts.map +1 -1
  97. package/dist/formats/conversions/frame-converter.js +17 -10
  98. package/dist/formats/conversions/frame-converter.js.map +1 -1
  99. package/dist/formats/conversions/index.d.ts +1 -0
  100. package/dist/formats/conversions/index.d.ts.map +1 -1
  101. package/dist/formats/conversions/index.js +2 -0
  102. package/dist/formats/conversions/index.js.map +1 -1
  103. package/dist/hardware/decoder-args.d.ts +2 -7
  104. package/dist/hardware/decoder-args.d.ts.map +1 -1
  105. package/dist/hardware/decoder-args.js +2 -32
  106. package/dist/hardware/decoder-args.js.map +1 -1
  107. package/dist/hardware/encoder-args.d.ts +2 -11
  108. package/dist/hardware/encoder-args.d.ts.map +1 -1
  109. package/dist/hardware/encoder-args.js +2 -71
  110. package/dist/hardware/encoder-args.js.map +1 -1
  111. package/dist/hardware/index.d.ts +2 -2
  112. package/dist/hardware/index.d.ts.map +1 -1
  113. package/dist/hardware/index.js +2 -2
  114. package/dist/hardware/index.js.map +1 -1
  115. package/dist/index.d.ts +5 -7
  116. package/dist/index.d.ts.map +1 -1
  117. package/dist/index.js +5 -6
  118. package/dist/index.js.map +1 -1
  119. package/dist/node-av/NodeAvAudioDecoder.d.ts +2 -2
  120. package/dist/node-av/NodeAvAudioDecoder.d.ts.map +1 -1
  121. package/dist/node-av/NodeAvAudioDecoder.js +63 -56
  122. package/dist/node-av/NodeAvAudioDecoder.js.map +1 -1
  123. package/dist/node-av/NodeAvAudioEncoder.d.ts +6 -0
  124. package/dist/node-av/NodeAvAudioEncoder.d.ts.map +1 -1
  125. package/dist/node-av/NodeAvAudioEncoder.js +166 -45
  126. package/dist/node-av/NodeAvAudioEncoder.js.map +1 -1
  127. package/dist/node-av/NodeAvImageDecoder.d.ts +28 -9
  128. package/dist/node-av/NodeAvImageDecoder.d.ts.map +1 -1
  129. package/dist/node-av/NodeAvImageDecoder.js +156 -37
  130. package/dist/node-av/NodeAvImageDecoder.js.map +1 -1
  131. package/dist/node-av/NodeAvVideoDecoder.d.ts +1 -1
  132. package/dist/node-av/NodeAvVideoDecoder.d.ts.map +1 -1
  133. package/dist/node-av/NodeAvVideoDecoder.js +20 -16
  134. package/dist/node-av/NodeAvVideoDecoder.js.map +1 -1
  135. package/dist/node-av/NodeAvVideoEncoder.d.ts +12 -0
  136. package/dist/node-av/NodeAvVideoEncoder.d.ts.map +1 -1
  137. package/dist/node-av/NodeAvVideoEncoder.js +175 -63
  138. package/dist/node-av/NodeAvVideoEncoder.js.map +1 -1
  139. package/dist/polyfill.d.ts.map +1 -1
  140. package/dist/polyfill.js +11 -9
  141. package/dist/polyfill.js.map +1 -1
  142. package/dist/utils/aac.d.ts.map +1 -1
  143. package/dist/utils/aac.js +6 -0
  144. package/dist/utils/aac.js.map +1 -1
  145. package/dist/utils/buffer-pool.d.ts +109 -0
  146. package/dist/utils/buffer-pool.d.ts.map +1 -0
  147. package/dist/utils/buffer-pool.js +278 -0
  148. package/dist/utils/buffer-pool.js.map +1 -0
  149. package/dist/utils/codec-cache.d.ts +65 -0
  150. package/dist/utils/codec-cache.d.ts.map +1 -0
  151. package/dist/utils/codec-cache.js +116 -0
  152. package/dist/utils/codec-cache.js.map +1 -0
  153. package/dist/utils/errors.d.ts +62 -0
  154. package/dist/utils/errors.d.ts.map +1 -0
  155. package/dist/utils/errors.js +84 -0
  156. package/dist/utils/errors.js.map +1 -0
  157. package/dist/utils/hardware-pool.d.ts +88 -0
  158. package/dist/utils/hardware-pool.d.ts.map +1 -0
  159. package/dist/utils/hardware-pool.js +266 -0
  160. package/dist/utils/hardware-pool.js.map +1 -0
  161. package/dist/utils/index.d.ts +5 -0
  162. package/dist/utils/index.d.ts.map +1 -1
  163. package/dist/utils/index.js +10 -0
  164. package/dist/utils/index.js.map +1 -1
  165. package/dist/utils/timeout.d.ts +44 -0
  166. package/dist/utils/timeout.d.ts.map +1 -0
  167. package/dist/utils/timeout.js +73 -0
  168. package/dist/utils/timeout.js.map +1 -0
  169. package/dist/utils/type-guards.d.ts +11 -1
  170. package/dist/utils/type-guards.d.ts.map +1 -1
  171. package/dist/utils/type-guards.js.map +1 -1
  172. package/package.json +13 -35
  173. package/dist/AudioData.d.ts +0 -6
  174. package/dist/AudioData.d.ts.map +0 -1
  175. package/dist/AudioData.js +0 -6
  176. package/dist/AudioData.js.map +0 -1
  177. package/dist/AudioDecoder.d.ts +0 -6
  178. package/dist/AudioDecoder.d.ts.map +0 -1
  179. package/dist/AudioDecoder.js +0 -6
  180. package/dist/AudioDecoder.js.map +0 -1
  181. package/dist/AudioEncoder.d.ts +0 -6
  182. package/dist/AudioEncoder.d.ts.map +0 -1
  183. package/dist/AudioEncoder.js +0 -6
  184. package/dist/AudioEncoder.js.map +0 -1
  185. package/dist/EncodedAudioChunk.d.ts +0 -6
  186. package/dist/EncodedAudioChunk.d.ts.map +0 -1
  187. package/dist/EncodedAudioChunk.js +0 -6
  188. package/dist/EncodedAudioChunk.js.map +0 -1
  189. package/dist/EncodedVideoChunk.d.ts +0 -6
  190. package/dist/EncodedVideoChunk.d.ts.map +0 -1
  191. package/dist/EncodedVideoChunk.js +0 -6
  192. package/dist/EncodedVideoChunk.js.map +0 -1
  193. package/dist/FFmpegProcess.d.ts +0 -6
  194. package/dist/FFmpegProcess.d.ts.map +0 -1
  195. package/dist/FFmpegProcess.js +0 -6
  196. package/dist/FFmpegProcess.js.map +0 -1
  197. package/dist/HardwareAcceleration.d.ts +0 -6
  198. package/dist/HardwareAcceleration.d.ts.map +0 -1
  199. package/dist/HardwareAcceleration.js +0 -6
  200. package/dist/HardwareAcceleration.js.map +0 -1
  201. package/dist/ImageDecoder.d.ts +0 -6
  202. package/dist/ImageDecoder.d.ts.map +0 -1
  203. package/dist/ImageDecoder.js +0 -6
  204. package/dist/ImageDecoder.js.map +0 -1
  205. package/dist/Logger.d.ts +0 -6
  206. package/dist/Logger.d.ts.map +0 -1
  207. package/dist/Logger.js +0 -6
  208. package/dist/Logger.js.map +0 -1
  209. package/dist/MediaCapabilities.d.ts +0 -9
  210. package/dist/MediaCapabilities.d.ts.map +0 -1
  211. package/dist/MediaCapabilities.js +0 -8
  212. package/dist/MediaCapabilities.js.map +0 -1
  213. package/dist/VideoDecoder.d.ts +0 -6
  214. package/dist/VideoDecoder.d.ts.map +0 -1
  215. package/dist/VideoDecoder.js +0 -6
  216. package/dist/VideoDecoder.js.map +0 -1
  217. package/dist/VideoEncoder.d.ts +0 -6
  218. package/dist/VideoEncoder.d.ts.map +0 -1
  219. package/dist/VideoEncoder.js +0 -6
  220. package/dist/VideoEncoder.js.map +0 -1
  221. package/dist/VideoFrame.d.ts +0 -10
  222. package/dist/VideoFrame.d.ts.map +0 -1
  223. package/dist/VideoFrame.js +0 -9
  224. package/dist/VideoFrame.js.map +0 -1
  225. package/dist/__tests__/AudioData.test.d.ts +0 -5
  226. package/dist/__tests__/AudioData.test.d.ts.map +0 -1
  227. package/dist/__tests__/AudioData.test.js +0 -179
  228. package/dist/__tests__/AudioData.test.js.map +0 -1
  229. package/dist/__tests__/AudioDecoder.test.d.ts +0 -5
  230. package/dist/__tests__/AudioDecoder.test.d.ts.map +0 -1
  231. package/dist/__tests__/AudioDecoder.test.js +0 -733
  232. package/dist/__tests__/AudioDecoder.test.js.map +0 -1
  233. package/dist/__tests__/AudioEncoder.test.d.ts +0 -5
  234. package/dist/__tests__/AudioEncoder.test.d.ts.map +0 -1
  235. package/dist/__tests__/AudioEncoder.test.js +0 -247
  236. package/dist/__tests__/AudioEncoder.test.js.map +0 -1
  237. package/dist/__tests__/EncodedChunks.test.d.ts +0 -5
  238. package/dist/__tests__/EncodedChunks.test.d.ts.map +0 -1
  239. package/dist/__tests__/EncodedChunks.test.js +0 -99
  240. package/dist/__tests__/EncodedChunks.test.js.map +0 -1
  241. package/dist/__tests__/HardwareAcceleration.test.d.ts +0 -5
  242. package/dist/__tests__/HardwareAcceleration.test.d.ts.map +0 -1
  243. package/dist/__tests__/HardwareAcceleration.test.js +0 -84
  244. package/dist/__tests__/HardwareAcceleration.test.js.map +0 -1
  245. package/dist/__tests__/ImageDecoder.test.d.ts +0 -5
  246. package/dist/__tests__/ImageDecoder.test.d.ts.map +0 -1
  247. package/dist/__tests__/ImageDecoder.test.js +0 -587
  248. package/dist/__tests__/ImageDecoder.test.js.map +0 -1
  249. package/dist/__tests__/ImageDecoder.wpt.test.d.ts +0 -8
  250. package/dist/__tests__/ImageDecoder.wpt.test.d.ts.map +0 -1
  251. package/dist/__tests__/ImageDecoder.wpt.test.js +0 -135
  252. package/dist/__tests__/ImageDecoder.wpt.test.js.map +0 -1
  253. package/dist/__tests__/MediaCapabilities.test.d.ts +0 -5
  254. package/dist/__tests__/MediaCapabilities.test.d.ts.map +0 -1
  255. package/dist/__tests__/MediaCapabilities.test.js +0 -346
  256. package/dist/__tests__/MediaCapabilities.test.js.map +0 -1
  257. package/dist/__tests__/NodeAvDecoder.test.d.ts +0 -2
  258. package/dist/__tests__/NodeAvDecoder.test.d.ts.map +0 -1
  259. package/dist/__tests__/NodeAvDecoder.test.js +0 -199
  260. package/dist/__tests__/NodeAvDecoder.test.js.map +0 -1
  261. package/dist/__tests__/NodeAvEncoder.test.d.ts +0 -2
  262. package/dist/__tests__/NodeAvEncoder.test.d.ts.map +0 -1
  263. package/dist/__tests__/NodeAvEncoder.test.js +0 -176
  264. package/dist/__tests__/NodeAvEncoder.test.js.map +0 -1
  265. package/dist/__tests__/VideoDecoder.test.d.ts +0 -5
  266. package/dist/__tests__/VideoDecoder.test.d.ts.map +0 -1
  267. package/dist/__tests__/VideoDecoder.test.js +0 -675
  268. package/dist/__tests__/VideoDecoder.test.js.map +0 -1
  269. package/dist/__tests__/VideoEncoder.test.d.ts +0 -5
  270. package/dist/__tests__/VideoEncoder.test.d.ts.map +0 -1
  271. package/dist/__tests__/VideoEncoder.test.js +0 -468
  272. package/dist/__tests__/VideoEncoder.test.js.map +0 -1
  273. package/dist/__tests__/VideoFrame.test.d.ts +0 -5
  274. package/dist/__tests__/VideoFrame.test.d.ts.map +0 -1
  275. package/dist/__tests__/VideoFrame.test.js +0 -243
  276. package/dist/__tests__/VideoFrame.test.js.map +0 -1
  277. package/dist/__tests__/aac-utils.test.d.ts +0 -2
  278. package/dist/__tests__/aac-utils.test.d.ts.map +0 -1
  279. package/dist/__tests__/aac-utils.test.js +0 -37
  280. package/dist/__tests__/aac-utils.test.js.map +0 -1
  281. package/dist/__tests__/avc-utils.test.d.ts +0 -2
  282. package/dist/__tests__/avc-utils.test.d.ts.map +0 -1
  283. package/dist/__tests__/avc-utils.test.js +0 -63
  284. package/dist/__tests__/avc-utils.test.js.map +0 -1
  285. package/dist/__tests__/hevc-utils.test.d.ts +0 -2
  286. package/dist/__tests__/hevc-utils.test.d.ts.map +0 -1
  287. package/dist/__tests__/hevc-utils.test.js +0 -78
  288. package/dist/__tests__/hevc-utils.test.js.map +0 -1
  289. package/dist/demos/demo-conversion.d.ts +0 -13
  290. package/dist/demos/demo-conversion.d.ts.map +0 -1
  291. package/dist/demos/demo-conversion.js +0 -301
  292. package/dist/demos/demo-conversion.js.map +0 -1
  293. package/dist/demos/demo-hwaccel-conversion.d.ts +0 -8
  294. package/dist/demos/demo-hwaccel-conversion.d.ts.map +0 -1
  295. package/dist/demos/demo-hwaccel-conversion.js +0 -161
  296. package/dist/demos/demo-hwaccel-conversion.js.map +0 -1
  297. package/dist/demos/demo-mediabunny.d.ts +0 -7
  298. package/dist/demos/demo-mediabunny.d.ts.map +0 -1
  299. package/dist/demos/demo-mediabunny.js +0 -78
  300. package/dist/demos/demo-mediabunny.js.map +0 -1
  301. package/dist/ffmpeg/FFmpegProcess.d.ts +0 -111
  302. package/dist/ffmpeg/FFmpegProcess.d.ts.map +0 -1
  303. package/dist/ffmpeg/FFmpegProcess.js +0 -543
  304. package/dist/ffmpeg/FFmpegProcess.js.map +0 -1
  305. package/dist/ffmpeg/audio-codecs.d.ts.map +0 -1
  306. package/dist/ffmpeg/audio-codecs.js.map +0 -1
  307. package/dist/ffmpeg/formats.d.ts.map +0 -1
  308. package/dist/ffmpeg/formats.js.map +0 -1
  309. package/dist/ffmpeg/index.d.ts.map +0 -1
  310. package/dist/ffmpeg/index.js.map +0 -1
  311. package/dist/ffmpeg/parsers/annexb.d.ts +0 -88
  312. package/dist/ffmpeg/parsers/annexb.d.ts.map +0 -1
  313. package/dist/ffmpeg/parsers/annexb.js +0 -201
  314. package/dist/ffmpeg/parsers/annexb.js.map +0 -1
  315. package/dist/ffmpeg/parsers/index.d.ts +0 -6
  316. package/dist/ffmpeg/parsers/index.d.ts.map +0 -1
  317. package/dist/ffmpeg/parsers/index.js +0 -8
  318. package/dist/ffmpeg/parsers/index.js.map +0 -1
  319. package/dist/ffmpeg/parsers/ivf.d.ts +0 -54
  320. package/dist/ffmpeg/parsers/ivf.d.ts.map +0 -1
  321. package/dist/ffmpeg/parsers/ivf.js +0 -109
  322. package/dist/ffmpeg/parsers/ivf.js.map +0 -1
  323. package/dist/ffmpeg/types.d.ts.map +0 -1
  324. package/dist/ffmpeg/types.js.map +0 -1
  325. package/dist/mediabunny/FFmpegAudioDecoder.d.ts +0 -23
  326. package/dist/mediabunny/FFmpegAudioDecoder.d.ts.map +0 -1
  327. package/dist/mediabunny/FFmpegAudioDecoder.js +0 -129
  328. package/dist/mediabunny/FFmpegAudioDecoder.js.map +0 -1
  329. package/dist/mediabunny/FFmpegAudioEncoder.d.ts +0 -43
  330. package/dist/mediabunny/FFmpegAudioEncoder.d.ts.map +0 -1
  331. package/dist/mediabunny/FFmpegAudioEncoder.js +0 -220
  332. package/dist/mediabunny/FFmpegAudioEncoder.js.map +0 -1
  333. package/dist/mediabunny/FFmpegVideoDecoder.d.ts +0 -24
  334. package/dist/mediabunny/FFmpegVideoDecoder.d.ts.map +0 -1
  335. package/dist/mediabunny/FFmpegVideoDecoder.js +0 -125
  336. package/dist/mediabunny/FFmpegVideoDecoder.js.map +0 -1
  337. package/dist/mediabunny/FFmpegVideoEncoder.d.ts +0 -48
  338. package/dist/mediabunny/FFmpegVideoEncoder.d.ts.map +0 -1
  339. package/dist/mediabunny/FFmpegVideoEncoder.js +0 -263
  340. package/dist/mediabunny/FFmpegVideoEncoder.js.map +0 -1
  341. package/dist/mediabunny/index.d.ts +0 -21
  342. package/dist/mediabunny/index.d.ts.map +0 -1
  343. package/dist/mediabunny/index.js +0 -33
  344. package/dist/mediabunny/index.js.map +0 -1
  345. package/dist/types.d.ts +0 -6
  346. package/dist/types.d.ts.map +0 -1
  347. package/dist/types.js +0 -6
  348. package/dist/types.js.map +0 -1
@@ -1,10 +1,14 @@
1
1
  /**
2
2
  * NodeAvImageDecoder - Node-av based image decoder
3
3
  *
4
- * Decodes still images and animated images (GIF, APNG, WebP) using node-av
5
- * native bindings instead of spawning FFmpeg CLI processes.
4
+ * Decodes still images and animated images (GIF, APNG) using node-av
5
+ * native bindings (FFmpeg's libav* libraries).
6
+ *
7
+ * Note: Animated WebP is NOT fully supported due to FFmpeg's webp demuxer
8
+ * skipping ANIM/ANMF chunks. Consider using a dedicated WebP library for
9
+ * animated WebP support.
6
10
  */
7
- import { Decoder, FilterAPI } from 'node-av/api';
11
+ import { Decoder, Demuxer, FilterAPI } from 'node-av/api';
8
12
  import { FormatContext, Packet, Rational } from 'node-av/lib';
9
13
  import { AVMEDIA_TYPE_VIDEO, AV_CODEC_ID_PNG, AV_CODEC_ID_MJPEG, AV_CODEC_ID_WEBP, AV_CODEC_ID_GIF, AV_CODEC_ID_BMP, AV_CODEC_ID_TIFF, AV_CODEC_ID_AV1, } from 'node-av/constants';
10
14
  // MIME type to AVCodecID mapping
@@ -19,11 +23,15 @@ const MIME_TO_CODEC_ID = {
19
23
  'image/tiff': AV_CODEC_ID_TIFF,
20
24
  'image/avif': AV_CODEC_ID_AV1,
21
25
  };
26
+ // Formats that require Demuxer for proper decoding (container formats)
27
+ // Note: WebP is excluded because FFmpeg's webp demuxer doesn't support ANIM/ANMF
28
+ const DEMUXER_FORMATS = ['image/gif', 'image/apng', 'image/avif'];
22
29
  /**
23
30
  * Decode images using node-av native bindings
24
31
  */
25
32
  export class NodeAvImageDecoder {
26
33
  decoder = null;
34
+ demuxer = null;
27
35
  formatContext = null;
28
36
  stream = null;
29
37
  filter = null;
@@ -48,15 +56,28 @@ export class NodeAvImageDecoder {
48
56
  throw new Error(`Unsupported image type: ${this.config.mimeType}`);
49
57
  }
50
58
  try {
51
- await this.initializeDecoder(codecId);
52
- await this.decodeData();
53
- await this.flush();
59
+ if (this.usesDemuxer()) {
60
+ // Use Demuxer for animated formats (GIF, APNG)
61
+ await this.decodeWithDemuxer();
62
+ }
63
+ else {
64
+ // Use raw Decoder for static images
65
+ await this.initializeDecoder(codecId);
66
+ await this.decodeData();
67
+ await this.flush();
68
+ }
54
69
  }
55
70
  finally {
56
71
  this.cleanup();
57
72
  }
58
73
  return this.frames;
59
74
  }
75
+ /**
76
+ * Check if this format requires Demuxer for proper decoding
77
+ */
78
+ usesDemuxer() {
79
+ return DEMUXER_FORMATS.includes(this.config.mimeType.toLowerCase());
80
+ }
60
81
  /**
61
82
  * Get the codec ID for the MIME type
62
83
  */
@@ -64,7 +85,120 @@ export class NodeAvImageDecoder {
64
85
  return MIME_TO_CODEC_ID[this.config.mimeType.toLowerCase()] ?? null;
65
86
  }
66
87
  /**
67
- * Initialize the decoder with the given codec
88
+ * Decode animated images using Demuxer API
89
+ * This properly parses container formats like GIF and APNG
90
+ */
91
+ async decodeWithDemuxer() {
92
+ // Open demuxer from buffer
93
+ this.demuxer = await Demuxer.open(Buffer.from(this.config.data));
94
+ // Find video stream
95
+ const videoStream = this.demuxer.streams.find((s) => s.codecpar.codecType === AVMEDIA_TYPE_VIDEO);
96
+ if (!videoStream) {
97
+ throw new Error('No video stream found in image');
98
+ }
99
+ // Store stream reference and create decoder
100
+ this.stream = videoStream;
101
+ this.decoder = await Decoder.create(videoStream, { exitOnError: false });
102
+ // Get time base for duration calculation
103
+ const timeBase = videoStream.timeBase;
104
+ const timeBaseNum = timeBase?.num ?? 1;
105
+ const timeBaseDen = timeBase?.den ?? 1;
106
+ // Read and decode all packets
107
+ for await (const packet of this.demuxer.packets()) {
108
+ if (!packet)
109
+ break;
110
+ if (packet.streamIndex === videoStream.index) {
111
+ // Calculate timestamp and duration in microseconds
112
+ const pts = Number(packet.pts ?? 0n);
113
+ const duration = Number(packet.duration ?? 0n);
114
+ const timestampUs = Math.round((pts * timeBaseNum / timeBaseDen) * 1_000_000);
115
+ const durationUs = duration > 0
116
+ ? Math.round((duration * timeBaseNum / timeBaseDen) * 1_000_000)
117
+ : NodeAvImageDecoder.DEFAULT_FRAME_DURATION;
118
+ // Decode packet
119
+ await this.decoder.decode(packet);
120
+ // Drain frames
121
+ let frame = await this.decoder.receive();
122
+ while (frame) {
123
+ const converted = await this.convertFrameWithTiming(frame, timestampUs, durationUs);
124
+ frame.unref();
125
+ if (converted) {
126
+ this.frames.push(converted);
127
+ }
128
+ frame = await this.decoder.receive();
129
+ }
130
+ }
131
+ packet.unref();
132
+ }
133
+ // Flush decoder
134
+ try {
135
+ await this.decoder.flush();
136
+ let frame = await this.decoder.receive();
137
+ while (frame) {
138
+ const lastTimestamp = this.frames.length > 0
139
+ ? this.frames[this.frames.length - 1].timestamp + this.frames[this.frames.length - 1].duration
140
+ : 0;
141
+ const converted = await this.convertFrameWithTiming(frame, lastTimestamp, NodeAvImageDecoder.DEFAULT_FRAME_DURATION);
142
+ frame.unref();
143
+ if (converted) {
144
+ this.frames.push(converted);
145
+ }
146
+ frame = await this.decoder.receive();
147
+ }
148
+ }
149
+ catch {
150
+ // Ignore flush errors
151
+ }
152
+ }
153
+ /**
154
+ * Convert a decoded frame to RGBA with specific timing
155
+ */
156
+ async convertFrameWithTiming(frame, timestamp, duration) {
157
+ const width = frame.width;
158
+ const height = frame.height;
159
+ if (width === 0 || height === 0) {
160
+ return null;
161
+ }
162
+ // Build filter description for scaling and format conversion
163
+ let filterDesc = '';
164
+ if (this.config.desiredWidth || this.config.desiredHeight) {
165
+ const scaleW = this.config.desiredWidth || -1;
166
+ const scaleH = this.config.desiredHeight || -1;
167
+ filterDesc = `scale=${scaleW}:${scaleH},format=rgba`;
168
+ }
169
+ else {
170
+ filterDesc = 'format=rgba';
171
+ }
172
+ // Create or reuse filter
173
+ if (!this.filter) {
174
+ this.filter = FilterAPI.create(filterDesc, {});
175
+ }
176
+ await this.filter.process(frame);
177
+ let filtered = await this.filter.receive();
178
+ let attempts = 0;
179
+ while (filtered === null && attempts < 10) {
180
+ filtered = await this.filter.receive();
181
+ attempts++;
182
+ }
183
+ if (!filtered) {
184
+ return null;
185
+ }
186
+ const outputWidth = this.config.desiredWidth || width;
187
+ const outputHeight = this.config.desiredHeight || height;
188
+ const buffer = filtered.toBuffer();
189
+ filtered.unref();
190
+ return {
191
+ data: new Uint8Array(buffer),
192
+ width: outputWidth,
193
+ height: outputHeight,
194
+ timestamp,
195
+ duration,
196
+ complete: true,
197
+ colorSpace: this.config.colorSpace,
198
+ };
199
+ }
200
+ /**
201
+ * Initialize the decoder with the given codec (for static images)
68
202
  */
69
203
  async initializeDecoder(codecId) {
70
204
  this.formatContext = new FormatContext();
@@ -74,7 +208,6 @@ export class NodeAvImageDecoder {
74
208
  const params = this.stream.codecpar;
75
209
  params.codecType = AVMEDIA_TYPE_VIDEO;
76
210
  params.codecId = codecId;
77
- // Width/height will be detected from the image data
78
211
  params.width = 0;
79
212
  params.height = 0;
80
213
  this.decoder = await Decoder.create(this.stream, {
@@ -82,32 +215,15 @@ export class NodeAvImageDecoder {
82
215
  });
83
216
  }
84
217
  /**
85
- * Decode the image data
218
+ * Decode static image data
86
219
  */
87
220
  async decodeData() {
88
221
  if (!this.decoder || !this.stream) {
89
222
  throw new Error('Decoder not initialized');
90
223
  }
91
- const data = this.config.data;
92
- const isAnimated = this.isAnimatedFormat();
93
- if (isAnimated) {
94
- // For animated formats, we need to parse frame boundaries
95
- // For now, send all data as one packet and let decoder handle it
96
- await this.sendPacket(Buffer.from(data), 0);
97
- }
98
- else {
99
- // For still images, send the entire buffer as one packet
100
- await this.sendPacket(Buffer.from(data), 0);
101
- }
224
+ await this.sendPacket(Buffer.from(this.config.data), 0);
102
225
  await this.drainFrames();
103
226
  }
104
- /**
105
- * Check if this is an animated format
106
- */
107
- isAnimatedFormat() {
108
- const type = this.config.mimeType.toLowerCase();
109
- return ['image/gif', 'image/apng', 'image/webp'].includes(type);
110
- }
111
227
  /**
112
228
  * Send a packet to the decoder
113
229
  */
@@ -142,7 +258,7 @@ export class NodeAvImageDecoder {
142
258
  }
143
259
  }
144
260
  /**
145
- * Convert a decoded frame to RGBA
261
+ * Convert a decoded frame to RGBA (for static images)
146
262
  */
147
263
  async convertFrame(frame) {
148
264
  const width = frame.width;
@@ -150,7 +266,6 @@ export class NodeAvImageDecoder {
150
266
  if (width === 0 || height === 0) {
151
267
  return null;
152
268
  }
153
- // Build filter description for scaling and format conversion
154
269
  let filterDesc = '';
155
270
  if (this.config.desiredWidth || this.config.desiredHeight) {
156
271
  const scaleW = this.config.desiredWidth || -1;
@@ -160,13 +275,11 @@ export class NodeAvImageDecoder {
160
275
  else {
161
276
  filterDesc = 'format=rgba';
162
277
  }
163
- // Create or reuse filter
164
278
  if (!this.filter) {
165
279
  this.filter = FilterAPI.create(filterDesc, {});
166
280
  }
167
281
  await this.filter.process(frame);
168
282
  let filtered = await this.filter.receive();
169
- // Keep trying until we get a frame (filter might buffer)
170
283
  let attempts = 0;
171
284
  while (filtered === null && attempts < 10) {
172
285
  filtered = await this.filter.receive();
@@ -179,14 +292,13 @@ export class NodeAvImageDecoder {
179
292
  const outputHeight = this.config.desiredHeight || height;
180
293
  const buffer = filtered.toBuffer();
181
294
  filtered.unref();
182
- const timestamp = this.frames.length * NodeAvImageDecoder.DEFAULT_FRAME_DURATION;
183
- const duration = this.isAnimatedFormat() ? NodeAvImageDecoder.DEFAULT_FRAME_DURATION : 0;
295
+ // Static images have timestamp 0 and duration 0
184
296
  return {
185
297
  data: new Uint8Array(buffer),
186
298
  width: outputWidth,
187
299
  height: outputHeight,
188
- timestamp,
189
- duration,
300
+ timestamp: 0,
301
+ duration: 0,
190
302
  complete: true,
191
303
  colorSpace: this.config.colorSpace,
192
304
  };
@@ -213,6 +325,8 @@ export class NodeAvImageDecoder {
213
325
  this.filter = null;
214
326
  this.decoder?.close();
215
327
  this.decoder = null;
328
+ this.demuxer?.close();
329
+ this.demuxer = null;
216
330
  this.formatContext = null;
217
331
  this.stream = null;
218
332
  }
@@ -232,6 +346,13 @@ export class NodeAvImageDecoder {
232
346
  static isTypeSupported(mimeType) {
233
347
  return mimeType.toLowerCase() in MIME_TO_CODEC_ID;
234
348
  }
349
+ /**
350
+ * Check if animated decoding is supported for this type
351
+ * (GIF and APNG work, WebP does not due to FFmpeg limitations)
352
+ */
353
+ static isAnimatedTypeSupported(mimeType) {
354
+ return DEMUXER_FORMATS.includes(mimeType.toLowerCase());
355
+ }
235
356
  }
236
357
  /**
237
358
  * Probe image dimensions using node-av
@@ -256,7 +377,6 @@ export async function probeImageDimensions(data, mimeType) {
256
377
  params.width = 0;
257
378
  params.height = 0;
258
379
  decoder = await Decoder.create(stream, { exitOnError: false });
259
- // Send the image data
260
380
  const packet = new Packet();
261
381
  packet.alloc();
262
382
  packet.streamIndex = stream.index;
@@ -267,7 +387,6 @@ export async function probeImageDimensions(data, mimeType) {
267
387
  packet.duration = 1n;
268
388
  await decoder.decode(packet);
269
389
  packet.unref();
270
- // Get a frame to determine dimensions
271
390
  const frame = await decoder.receive();
272
391
  if (frame) {
273
392
  const width = frame.width;
@@ -1 +1 @@
1
- {"version":3,"file":"NodeAvImageDecoder.js","sourceRoot":"","sources":["../../src/node-av/NodeAvImageDecoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NodeAvImageDecoder.js","sourceRoot":"","sources":["../../src/node-av/NodeAvImageDecoder.ts"],"names":[],"mappings":"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"}
@@ -36,7 +36,7 @@ export declare class NodeAvVideoDecoder extends EventEmitter implements VideoDec
36
36
  private logDecoderSelection;
37
37
  private decodeBuffer;
38
38
  private drainFrames;
39
- private toOutputBuffer;
39
+ private toOutput;
40
40
  private finish;
41
41
  private cleanup;
42
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NodeAvVideoDecoder.d.ts","sourceRoot":"","sources":["../../src/node-av/NodeAvVideoDecoder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAyBtC,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAE1B,MAAM,sBAAsB,CAAC;AAc9B;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,YAAa,YAAW,mBAAmB;IACjF,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,MAAM,CAA0C;IACxD,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,cAAc,CAAgD;IACtE,OAAO,CAAC,iBAAiB,CAAqC;IAC9D,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,kBAAkB,CAA4E;IAEtG,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,YAAY,CAAC,MAAM,EAAE,yBAAyB,GAAG,IAAI;IAQrD,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO;IASzC,GAAG,IAAI,IAAI;IAMX,IAAI,IAAI,IAAI;IAMN,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YAIjB,YAAY;YA4BZ,aAAa;IA8C3B,OAAO,CAAC,mBAAmB;YAab,YAAY;YAyBZ,WAAW;YAiBX,cAAc;YAoFd,MAAM;IAmBpB,OAAO,CAAC,OAAO;CAWhB"}
1
+ {"version":3,"file":"NodeAvVideoDecoder.d.ts","sourceRoot":"","sources":["../../src/node-av/NodeAvVideoDecoder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAyBtC,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAE1B,MAAM,sBAAsB,CAAC;AAe9B;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,YAAa,YAAW,mBAAmB;IACjF,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,MAAM,CAA0C;IACxD,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,cAAc,CAAgD;IACtE,OAAO,CAAC,iBAAiB,CAAqC;IAC9D,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,kBAAkB,CAA4E;IAEtG,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,YAAY,CAAC,MAAM,EAAE,yBAAyB,GAAG,IAAI;IAQrD,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO;IASzC,GAAG,IAAI,IAAI;IAMX,IAAI,IAAI,IAAI;IAMN,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YAIjB,YAAY;YA4BZ,aAAa;IA2C3B,OAAO,CAAC,mBAAmB;YAab,YAAY;YAyBZ,WAAW;YAqBX,QAAQ;YAqFR,MAAM;IAmBpB,OAAO,CAAC,OAAO;CAYhB"}
@@ -5,13 +5,14 @@
5
5
  * using FFmpeg's libav* libraries via node-av.
6
6
  */
7
7
  import { EventEmitter } from 'events';
8
- import { Decoder, FilterAPI, HardwareContext } from 'node-av/api';
8
+ import { Decoder, FilterAPI } from 'node-av/api';
9
9
  import { FormatContext, Packet, Rational } from 'node-av/lib';
10
10
  import { AVMEDIA_TYPE_VIDEO, AV_PKT_FLAG_KEY, AV_CODEC_ID_H264, AV_CODEC_ID_HEVC, AV_CODEC_ID_VP8, AV_CODEC_ID_VP9, AV_CODEC_ID_AV1, AV_PIX_FMT_BGRA, AV_PIX_FMT_BGR0, AV_PIX_FMT_NV12, AV_PIX_FMT_RGBA, AV_PIX_FMT_RGB0, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVA420P, } from 'node-av/constants';
11
11
  import { DEFAULT_FRAMERATE } from '../backends/types.js';
12
12
  import { parseCodecString } from '../hardware/index.js';
13
13
  import { createLogger } from '../utils/logger.js';
14
14
  import { selectBestFilterChain, getNextFilterChain, describePipeline } from './HardwarePipeline.js';
15
+ import { acquireHardwareContext, releaseHardwareContext } from '../utils/hardware-pool.js';
15
16
  const logger = createLogger('NodeAvVideoDecoder');
16
17
  /** Maximum filter chain fallback attempts */
17
18
  const MAX_FILTER_CHAIN_ATTEMPTS = 10;
@@ -120,12 +121,8 @@ export class NodeAvVideoDecoder extends EventEmitter {
120
121
  const shouldTryHardware = this.hardwarePreference === 'prefer-hardware' &&
121
122
  !SKIP_HARDWARE_CODECS.includes(codecName);
122
123
  if (shouldTryHardware) {
123
- try {
124
- this.hardware = HardwareContext.auto();
125
- }
126
- catch {
127
- this.hardware = null;
128
- }
124
+ // Use pooled hardware context instead of creating new one
125
+ this.hardware = acquireHardwareContext();
129
126
  }
130
127
  this.decoder = await Decoder.create(this.stream, {
131
128
  hardware: this.hardware ?? undefined,
@@ -178,20 +175,26 @@ export class NodeAvVideoDecoder extends EventEmitter {
178
175
  if (frame === undefined) {
179
176
  break;
180
177
  }
181
- const converted = await this.toOutputBuffer(frame);
182
- frame.unref();
183
- if (converted) {
184
- this.emit('frame', converted);
178
+ const output = await this.toOutput(frame);
179
+ if (!output.nativeFrame) {
180
+ frame.unref();
181
+ }
182
+ if (output.buffer) {
183
+ this.emit('frame', output.buffer);
184
+ }
185
+ else if (output.nativeFrame) {
186
+ this.emit('frame', { nativeFrame: output.nativeFrame, format: this.outputPixelFormat });
185
187
  }
186
188
  frame = await this.decoder.receive();
187
189
  }
188
190
  }
189
- async toOutputBuffer(frame) {
191
+ async toOutput(frame) {
190
192
  const outputFormatName = pixelFormatToFFmpegName(this.outputPixelFormat);
191
193
  const isHardwareFrame = Boolean(frame.hwFramesCtx);
192
194
  // If frame already matches requested format and is software, just export
193
195
  if (!isHardwareFrame && frame.format === this.outputPixelFormat) {
194
- return frame.toBuffer();
196
+ // Keep frame alive for the caller; they are responsible for unref()
197
+ return { buffer: null, nativeFrame: frame };
195
198
  }
196
199
  // Try to process with current or new filter chain
197
200
  // If it fails, automatically try the next chain in the fallback sequence
@@ -239,11 +242,11 @@ export class NodeAvVideoDecoder extends EventEmitter {
239
242
  filtered = await this.filter.receive();
240
243
  }
241
244
  if (!filtered) {
242
- return null;
245
+ return { buffer: null };
243
246
  }
244
247
  const buffer = filtered.toBuffer();
245
248
  filtered.unref();
246
- return buffer;
249
+ return { buffer };
247
250
  }
248
251
  catch (err) {
249
252
  // Processing failed - close filter and try next chain
@@ -282,7 +285,8 @@ export class NodeAvVideoDecoder extends EventEmitter {
282
285
  this.filter = null;
283
286
  this.decoder?.close();
284
287
  this.decoder = null;
285
- this.hardware?.dispose();
288
+ // Release hardware context back to pool for reuse
289
+ releaseHardwareContext(this.hardware);
286
290
  this.hardware = null;
287
291
  this.formatContext = null;
288
292
  this.stream = null;
@@ -1 +1 @@
1
- {"version":3,"file":"NodeAvVideoDecoder.js","sourceRoot":"","sources":["../../src/node-av/NodeAvVideoDecoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NodeAvVideoDecoder.js","sourceRoot":"","sources":["../../src/node-av/NodeAvVideoDecoder.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
  * using FFmpeg's libav* libraries via node-av.
6
6
  */
7
7
  import { EventEmitter } from 'events';
8
+ import { Frame } from 'node-av/lib';
8
9
  import type { VideoEncoderBackend, VideoEncoderBackendConfig } from '../backends/types.js';
9
10
  /**
10
11
  * NodeAV-backed video encoder implementing VideoEncoderBackend interface
@@ -12,6 +13,7 @@ import type { VideoEncoderBackend, VideoEncoderBackendConfig } from '../backends
12
13
  export declare class NodeAvVideoEncoder extends EventEmitter implements VideoEncoderBackend {
13
14
  private encoder;
14
15
  private hardware;
16
+ private filter;
15
17
  private config;
16
18
  private frameIndex;
17
19
  private queue;
@@ -21,21 +23,31 @@ export declare class NodeAvVideoEncoder extends EventEmitter implements VideoEnc
21
23
  private inputPixelFormat;
22
24
  private encoderPixelFormat;
23
25
  private timeBase;
26
+ private codecDescription;
27
+ private isHevcCodec;
28
+ private needsFormatConversion;
24
29
  get isHealthy(): boolean;
25
30
  startEncoder(config: VideoEncoderBackendConfig): void;
26
31
  write(data: Buffer | Uint8Array): boolean;
32
+ writeFrame(frame: Frame): boolean;
27
33
  end(): void;
28
34
  kill(): void;
29
35
  shutdown(): Promise<void>;
30
36
  private processQueue;
31
37
  private ensureEncoder;
32
38
  private configurePixelFormat;
39
+ /**
40
+ * Build GPU-accelerated filter chain for format conversion
41
+ * Returns null if no GPU filter is available for this hardware type
42
+ */
43
+ private buildGpuFilterChain;
33
44
  private selectEncoderCodec;
34
45
  private buildEncoderOptions;
35
46
  private configureVpxOptions;
36
47
  private configureSvtAv1Options;
37
48
  private configureX26xOptions;
38
49
  private encodeBuffer;
50
+ private encodeFrame;
39
51
  private createFrame;
40
52
  private drainPackets;
41
53
  private finish;
@@ -1 +1 @@
1
- {"version":3,"file":"NodeAvVideoEncoder.d.ts","sourceRoot":"","sources":["../../src/node-av/NodeAvVideoEncoder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAiBtC,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAE1B,MAAM,sBAAsB,CAAC;AA6D9B;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,YAAa,YAAW,mBAAmB;IACjF,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,MAAM,CAA0C;IACxD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,gBAAgB,CAAqC;IAC7D,OAAO,CAAC,kBAAkB,CAAqC;IAC/D,OAAO,CAAC,QAAQ,CAAgD;IAEhE,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,YAAY,CAAC,MAAM,EAAE,yBAAyB,GAAG,IAAI;IAOrD,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO;IAUzC,GAAG,IAAI,IAAI;IAMX,IAAI,IAAI,IAAI;IAMN,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YAQjB,YAAY;YA4BZ,aAAa;IAmC3B,OAAO,CAAC,oBAAoB;YA0Bd,kBAAkB;IA6BhC,OAAO,CAAC,mBAAmB;IA4C3B,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,oBAAoB;YAgBd,YAAY;IAgB1B,OAAO,CAAC,WAAW;YAwDL,YAAY;YAuBZ,MAAM;IAmBpB,OAAO,CAAC,OAAO;CAOhB"}
1
+ {"version":3,"file":"NodeAvVideoEncoder.d.ts","sourceRoot":"","sources":["../../src/node-av/NodeAvVideoEncoder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,EAAE,KAAK,EAAY,MAAM,aAAa,CAAC;AAc9C,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAE1B,MAAM,sBAAsB,CAAC;AA4E9B;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,YAAa,YAAW,mBAAmB;IACjF,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,MAAM,CAA0C;IACxD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,KAAK,CAAkE;IAC/E,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,gBAAgB,CAAqC;IAC7D,OAAO,CAAC,kBAAkB,CAAqC;IAC/D,OAAO,CAAC,QAAQ,CAAgD;IAChE,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,qBAAqB,CAAS;IAEtC,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,YAAY,CAAC,MAAM,EAAE,yBAAyB,GAAG,IAAI;IAOrD,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO;IAUzC,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAUjC,GAAG,IAAI,IAAI;IAMX,IAAI,IAAI,IAAI;IAMN,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YAQjB,YAAY;YAgCZ,aAAa;IAoC3B,OAAO,CAAC,oBAAoB;IA0C5B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;YAgBb,kBAAkB;IA8BhC,OAAO,CAAC,mBAAmB;IA4C3B,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,oBAAoB;YAgBd,YAAY;YAgBZ,WAAW;YAkBX,WAAW;YAgEX,YAAY;YA+CZ,MAAM;IAmBpB,OAAO,CAAC,OAAO;CAUhB"}