@libmedia/avutil 0.12.0 → 1.0.0

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 (572) hide show
  1. package/dist/cjs/{AVStream.js → AVStream.cjs} +5 -5
  2. package/dist/cjs/AVStream.js.map +1 -1
  3. package/dist/cjs/audiosamplefmt.js.map +1 -1
  4. package/dist/cjs/avformat.js.map +1 -1
  5. package/dist/cjs/codec.js.map +1 -1
  6. package/dist/cjs/codecs/{aac.js → aac.cjs} +2 -8
  7. package/dist/cjs/codecs/aac.js.map +1 -1
  8. package/dist/cjs/codecs/{ac3.js → ac3.cjs} +2 -8
  9. package/dist/cjs/codecs/ac3.js.map +1 -1
  10. package/dist/cjs/codecs/{av1.js → av1.cjs} +6 -10
  11. package/dist/cjs/codecs/av1.js.map +1 -1
  12. package/dist/cjs/codecs/{dts.js → dts.cjs} +3 -9
  13. package/dist/cjs/codecs/dts.js.map +1 -1
  14. package/dist/cjs/codecs/{flac.js → flac.cjs} +2 -8
  15. package/dist/cjs/codecs/flac.js.map +1 -1
  16. package/dist/cjs/codecs/{h264.js → h264.cjs} +20 -23
  17. package/dist/cjs/codecs/h264.js.map +1 -1
  18. package/dist/cjs/codecs/{hevc.js → hevc.cjs} +23 -23
  19. package/dist/cjs/codecs/hevc.js.map +1 -1
  20. package/dist/cjs/codecs/{mp3.js → mp3.cjs} +1 -1
  21. package/dist/cjs/codecs/mp3.js.map +1 -1
  22. package/dist/cjs/codecs/{mpeg4.js → mpeg4.cjs} +1 -1
  23. package/dist/cjs/codecs/mpeg4.js.map +1 -1
  24. package/dist/cjs/codecs/{mpegvideo.js → mpegvideo.cjs} +1 -1
  25. package/dist/cjs/codecs/mpegvideo.js.map +1 -1
  26. package/dist/cjs/codecs/{opus.js → opus.cjs} +3 -9
  27. package/dist/cjs/codecs/opus.js.map +1 -1
  28. package/dist/cjs/codecs/ttml.cjs +51 -0
  29. package/dist/cjs/codecs/ttml.js.map +1 -1
  30. package/dist/cjs/codecs/{vp8.js → vp8.cjs} +2 -8
  31. package/dist/cjs/codecs/vp8.js.map +1 -1
  32. package/dist/cjs/codecs/{vp9.js → vp9.cjs} +4 -10
  33. package/dist/cjs/codecs/vp9.js.map +1 -1
  34. package/dist/cjs/codecs/{vvc.js → vvc.cjs} +25 -25
  35. package/dist/cjs/codecs/vvc.js.map +1 -1
  36. package/dist/cjs/{constant.js → constant.cjs} +6 -7
  37. package/dist/cjs/constant.js.map +1 -1
  38. package/dist/cjs/{enum.js → enum.cjs} +3 -1
  39. package/dist/cjs/enum.js.map +1 -1
  40. package/dist/cjs/error.js.map +1 -1
  41. package/dist/cjs/function/analyzeAVFormat.js.map +1 -1
  42. package/dist/cjs/function/analyzeUrlIOLoader.cjs +66 -0
  43. package/dist/cjs/function/analyzeUrlIOLoader.js.map +1 -1
  44. package/dist/cjs/function/{audioData2AVFrame.js → audioData2AVFrame.cjs} +9 -9
  45. package/dist/cjs/function/audioData2AVFrame.js.map +1 -1
  46. package/dist/cjs/function/{avPCMBuffer2AVFrame.js → avPCMBuffer2AVFrame.cjs} +20 -20
  47. package/dist/cjs/function/avPCMBuffer2AVFrame.js.map +1 -1
  48. package/dist/cjs/function/{avframe2AudioData.js → avframe2AudioData.cjs} +7 -7
  49. package/dist/cjs/function/avframe2AudioData.js.map +1 -1
  50. package/dist/cjs/function/avframe2VideoFrame.cjs +48 -0
  51. package/dist/cjs/function/avframe2VideoFrame.js.map +1 -1
  52. package/dist/cjs/function/{avpacket2EncodedAudioChunk.js → avpacket2EncodedAudioChunk.cjs} +3 -3
  53. package/dist/cjs/function/avpacket2EncodedAudioChunk.js.map +1 -1
  54. package/dist/cjs/function/{avpacket2EncodedVideoChunk.js → avpacket2EncodedVideoChunk.cjs} +3 -3
  55. package/dist/cjs/function/avpacket2EncodedVideoChunk.js.map +1 -1
  56. package/dist/cjs/function/compileResource.cjs +19 -0
  57. package/dist/cjs/function/compileResource.js.map +1 -1
  58. package/dist/cjs/function/constant/webcodecs.cjs +50 -0
  59. package/dist/cjs/function/constant/webcodecs.js.map +1 -0
  60. package/dist/cjs/function/encodedAudioChunk2AVPacket.cjs +23 -0
  61. package/dist/cjs/function/encodedAudioChunk2AVPacket.js.map +1 -1
  62. package/dist/cjs/function/{encodedVideoChunk2AVPacket.js → encodedVideoChunk2AVPacket.cjs} +8 -8
  63. package/dist/cjs/function/encodedVideoChunk2AVPacket.js.map +1 -1
  64. package/dist/cjs/function/{getAudioCodec.js → getAudioCodec.cjs} +1 -1
  65. package/dist/cjs/function/getAudioCodec.js.map +1 -1
  66. package/dist/cjs/function/getAudioMimeType.cjs +19 -0
  67. package/dist/cjs/function/getAudioMimeType.js.map +1 -0
  68. package/dist/cjs/function/getHardwarePreference.cjs +10 -0
  69. package/dist/cjs/function/getHardwarePreference.js.map +1 -1
  70. package/dist/cjs/function/{getVideoCodec.js → getVideoCodec.cjs} +12 -12
  71. package/dist/cjs/function/getVideoCodec.js.map +1 -1
  72. package/dist/cjs/function/getVideoMimeType.cjs +18 -0
  73. package/dist/cjs/function/getVideoMimeType.js.map +1 -0
  74. package/dist/cjs/function/{getWasmUrl.js → getWasmUrl.cjs} +2 -3
  75. package/dist/cjs/function/getWasmUrl.js.map +1 -1
  76. package/dist/cjs/function/{hasAlphaChannel.js → hasAlphaChannel.cjs} +1 -1
  77. package/dist/cjs/function/hasAlphaChannel.js.map +1 -1
  78. package/dist/cjs/function/{isHdr.js → isHdr.cjs} +1 -1
  79. package/dist/cjs/function/isHdr.js.map +1 -1
  80. package/dist/cjs/function/videoFrame2AVFrame.cjs +51 -0
  81. package/dist/cjs/function/videoFrame2AVFrame.js.map +1 -1
  82. package/dist/cjs/implement/AVFramePoolImpl.cjs +28 -0
  83. package/dist/cjs/implement/AVFramePoolImpl.js.map +1 -1
  84. package/dist/cjs/implement/AVPCMBufferPoolImpl.cjs +27 -0
  85. package/dist/cjs/implement/AVPCMBufferPoolImpl.js.map +1 -1
  86. package/dist/cjs/implement/AVPacketPoolImpl.cjs +29 -0
  87. package/dist/cjs/implement/AVPacketPoolImpl.js.map +1 -1
  88. package/dist/cjs/index.cjs +840 -0
  89. package/dist/cjs/index.js.map +1 -0
  90. package/dist/cjs/internal.cjs +283 -0
  91. package/dist/cjs/internal.js.map +1 -0
  92. package/dist/cjs/{pixelFormatDescriptor.js → pixelFormatDescriptor.cjs} +2 -0
  93. package/dist/cjs/pixelFormatDescriptor.js.map +1 -1
  94. package/dist/cjs/pixfmt.js.map +1 -1
  95. package/dist/cjs/sampleFormatDescriptor.js.map +1 -1
  96. package/dist/cjs/{stringEnum.js → stringEnum.cjs} +4 -1
  97. package/dist/cjs/stringEnum.js.map +1 -1
  98. package/dist/cjs/struct/{audiosample.js → audiosample.cjs} +13 -13
  99. package/dist/cjs/struct/audiosample.js.map +1 -1
  100. package/dist/cjs/struct/{avbuffer.js → avbuffer.cjs} +18 -18
  101. package/dist/cjs/struct/avbuffer.js.map +1 -1
  102. package/dist/cjs/struct/{avcodecparameters.js → avcodecparameters.cjs} +11 -11
  103. package/dist/cjs/struct/avcodecparameters.js.map +1 -1
  104. package/dist/cjs/struct/{avdict.js → avdict.cjs} +9 -9
  105. package/dist/cjs/struct/avdict.js.map +1 -1
  106. package/dist/cjs/struct/{avframe.js → avframe.cjs} +30 -30
  107. package/dist/cjs/struct/avframe.js.map +1 -1
  108. package/dist/cjs/struct/{avpacket.js → avpacket.cjs} +19 -19
  109. package/dist/cjs/struct/avpacket.js.map +1 -1
  110. package/dist/cjs/struct/{avpcmbuffer.js → avpcmbuffer.cjs} +9 -9
  111. package/dist/cjs/struct/avpcmbuffer.js.map +1 -1
  112. package/dist/cjs/struct/avsubtitle.js.map +1 -1
  113. package/dist/cjs/struct/{encryption.js → encryption.cjs} +13 -13
  114. package/dist/cjs/struct/encryption.js.map +1 -1
  115. package/dist/cjs/struct/rational.cjs +43 -0
  116. package/dist/cjs/struct/rational.js.map +1 -1
  117. package/dist/cjs/util/{amf.js → amf.cjs} +7 -38
  118. package/dist/cjs/util/amf.js.map +1 -1
  119. package/dist/cjs/util/av1syntax.js.map +1 -1
  120. package/dist/cjs/util/avbuffer.cjs +122 -0
  121. package/dist/cjs/util/avbuffer.js.map +1 -1
  122. package/dist/cjs/util/avdict.cjs +75 -0
  123. package/dist/cjs/util/avdict.js.map +1 -1
  124. package/dist/cjs/util/{avframe.js → avframe.cjs} +82 -87
  125. package/dist/cjs/util/avframe.js.map +1 -1
  126. package/dist/cjs/util/{avpacket.js → avpacket.cjs} +58 -58
  127. package/dist/cjs/util/avpacket.js.map +1 -1
  128. package/dist/cjs/util/{channel.js → channel.cjs} +7 -7
  129. package/dist/cjs/util/channel.js.map +1 -1
  130. package/dist/cjs/util/codecparameters.cjs +95 -0
  131. package/dist/cjs/util/codecparameters.js.map +1 -1
  132. package/dist/cjs/util/common.js.map +1 -1
  133. package/dist/cjs/util/{encryption.js → encryption.cjs} +5 -11
  134. package/dist/cjs/util/encryption.js.map +1 -1
  135. package/dist/cjs/util/expgolomb.js.map +1 -1
  136. package/dist/cjs/util/{intread.js → intread.cjs} +1 -1
  137. package/dist/cjs/util/intread.js.map +1 -1
  138. package/dist/cjs/util/{intwrite.js → intwrite.cjs} +1 -1
  139. package/dist/cjs/util/intwrite.js.map +1 -1
  140. package/dist/cjs/util/mem.cjs +23 -0
  141. package/dist/cjs/util/mem.js.map +1 -1
  142. package/dist/cjs/util/{nalu.js → nalu.cjs} +7 -42
  143. package/dist/cjs/util/nalu.js.map +1 -1
  144. package/dist/cjs/util/ntp.js.map +1 -1
  145. package/dist/cjs/util/pcm.js.map +1 -1
  146. package/dist/cjs/util/{pixel.js → pixel.cjs} +26 -30
  147. package/dist/cjs/util/pixel.js.map +1 -1
  148. package/dist/cjs/util/{rational.js → rational.cjs} +5 -11
  149. package/dist/cjs/util/rational.js.map +1 -1
  150. package/dist/cjs/util/{sample.js → sample.cjs} +6 -12
  151. package/dist/cjs/util/sample.js.map +1 -1
  152. package/dist/cjs/util/{serialize.js → serialize.cjs} +40 -42
  153. package/dist/cjs/util/serialize.js.map +1 -1
  154. package/dist/esm/AVStream.d.ts +7 -7
  155. package/dist/esm/AVStream.js +10 -12
  156. package/dist/esm/AVStream.js.map +1 -1
  157. package/dist/esm/audiosamplefmt.js.map +1 -1
  158. package/dist/esm/avformat.js.map +1 -1
  159. package/dist/esm/codec.js.map +1 -1
  160. package/dist/esm/codecs/aac.d.ts +10 -5
  161. package/dist/esm/codecs/aac.js +2 -2
  162. package/dist/esm/codecs/aac.js.map +1 -1
  163. package/dist/esm/codecs/ac3.d.ts +1 -1
  164. package/dist/esm/codecs/ac3.js +1 -1
  165. package/dist/esm/codecs/ac3.js.map +1 -1
  166. package/dist/esm/codecs/av1.d.ts +3 -3
  167. package/dist/esm/codecs/av1.js +4 -6
  168. package/dist/esm/codecs/av1.js.map +1 -1
  169. package/dist/esm/codecs/dts.d.ts +1 -1
  170. package/dist/esm/codecs/dts.js +2 -2
  171. package/dist/esm/codecs/dts.js.map +1 -1
  172. package/dist/esm/codecs/flac.d.ts +3 -3
  173. package/dist/esm/codecs/flac.js +1 -1
  174. package/dist/esm/codecs/flac.js.map +1 -1
  175. package/dist/esm/codecs/h264.d.ts +5 -5
  176. package/dist/esm/codecs/h264.js +13 -18
  177. package/dist/esm/codecs/h264.js.map +1 -1
  178. package/dist/esm/codecs/hevc.d.ts +5 -5
  179. package/dist/esm/codecs/hevc.js +16 -15
  180. package/dist/esm/codecs/hevc.js.map +1 -1
  181. package/dist/esm/codecs/mp3.d.ts +4 -4
  182. package/dist/esm/codecs/mp3.js +1 -1
  183. package/dist/esm/codecs/mp3.js.map +1 -1
  184. package/dist/esm/codecs/mpeg4.d.ts +1 -1
  185. package/dist/esm/codecs/mpeg4.js +1 -1
  186. package/dist/esm/codecs/mpeg4.js.map +1 -1
  187. package/dist/esm/codecs/mpegvideo.d.ts +1 -1
  188. package/dist/esm/codecs/mpegvideo.js +1 -1
  189. package/dist/esm/codecs/mpegvideo.js.map +1 -1
  190. package/dist/esm/codecs/opus.d.ts +3 -3
  191. package/dist/esm/codecs/opus.js +2 -4
  192. package/dist/esm/codecs/opus.js.map +1 -1
  193. package/dist/esm/codecs/ttml.js +5 -11
  194. package/dist/esm/codecs/ttml.js.map +1 -1
  195. package/dist/esm/codecs/vp8.d.ts +4 -4
  196. package/dist/esm/codecs/vp8.js +2 -2
  197. package/dist/esm/codecs/vp8.js.map +1 -1
  198. package/dist/esm/codecs/vp9.d.ts +4 -4
  199. package/dist/esm/codecs/vp9.js +8 -10
  200. package/dist/esm/codecs/vp9.js.map +1 -1
  201. package/dist/esm/codecs/vvc.d.ts +5 -5
  202. package/dist/esm/codecs/vvc.js +16 -17
  203. package/dist/esm/codecs/vvc.js.map +1 -1
  204. package/dist/esm/constant.d.ts +5 -7
  205. package/dist/esm/constant.js +5 -9
  206. package/dist/esm/constant.js.map +1 -1
  207. package/dist/esm/enum.d.ts +9 -1
  208. package/dist/esm/enum.js +3 -1
  209. package/dist/esm/enum.js.map +1 -1
  210. package/dist/esm/error.js.map +1 -1
  211. package/dist/esm/function/analyzeAVFormat.d.ts +2 -2
  212. package/dist/esm/function/analyzeAVFormat.js.map +1 -1
  213. package/dist/esm/function/analyzeUrlIOLoader.d.ts +2 -2
  214. package/dist/esm/function/analyzeUrlIOLoader.js +2 -10
  215. package/dist/esm/function/analyzeUrlIOLoader.js.map +1 -1
  216. package/dist/esm/function/audioData2AVFrame.d.ts +1 -1
  217. package/dist/esm/function/audioData2AVFrame.js +6 -6
  218. package/dist/esm/function/audioData2AVFrame.js.map +1 -1
  219. package/dist/esm/function/avPCMBuffer2AVFrame.d.ts +2 -2
  220. package/dist/esm/function/avPCMBuffer2AVFrame.js +9 -9
  221. package/dist/esm/function/avPCMBuffer2AVFrame.js.map +1 -1
  222. package/dist/esm/function/avframe2AudioData.d.ts +1 -1
  223. package/dist/esm/function/avframe2AudioData.js +6 -8
  224. package/dist/esm/function/avframe2AudioData.js.map +1 -1
  225. package/dist/esm/function/avframe2VideoFrame.d.ts +3 -3
  226. package/dist/esm/function/avframe2VideoFrame.js +14 -79
  227. package/dist/esm/function/avframe2VideoFrame.js.map +1 -1
  228. package/dist/esm/function/avpacket2EncodedAudioChunk.d.ts +1 -1
  229. package/dist/esm/function/avpacket2EncodedAudioChunk.js +5 -7
  230. package/dist/esm/function/avpacket2EncodedAudioChunk.js.map +1 -1
  231. package/dist/esm/function/avpacket2EncodedVideoChunk.d.ts +1 -1
  232. package/dist/esm/function/avpacket2EncodedVideoChunk.js +5 -7
  233. package/dist/esm/function/avpacket2EncodedVideoChunk.js.map +1 -1
  234. package/dist/esm/function/compileResource.d.ts +1 -1
  235. package/dist/esm/function/compileResource.js +2 -4
  236. package/dist/esm/function/compileResource.js.map +1 -1
  237. package/dist/esm/function/constant/webcodecs.d.ts +5 -0
  238. package/dist/esm/function/constant/webcodecs.js +51 -0
  239. package/dist/esm/function/constant/webcodecs.js.map +1 -0
  240. package/dist/esm/function/encodedAudioChunk2AVPacket.d.ts +1 -1
  241. package/dist/esm/function/encodedAudioChunk2AVPacket.js +6 -6
  242. package/dist/esm/function/encodedAudioChunk2AVPacket.js.map +1 -1
  243. package/dist/esm/function/encodedVideoChunk2AVPacket.d.ts +1 -1
  244. package/dist/esm/function/encodedVideoChunk2AVPacket.js +7 -7
  245. package/dist/esm/function/encodedVideoChunk2AVPacket.js.map +1 -1
  246. package/dist/esm/function/getAudioCodec.d.ts +1 -1
  247. package/dist/esm/function/getAudioCodec.js +2 -2
  248. package/dist/esm/function/getAudioCodec.js.map +1 -1
  249. package/dist/esm/function/getAudioMimeType.d.ts +2 -0
  250. package/dist/esm/function/getAudioMimeType.js +12 -0
  251. package/dist/esm/function/getAudioMimeType.js.map +1 -0
  252. package/dist/esm/function/getHardwarePreference.js +1 -1
  253. package/dist/esm/function/getHardwarePreference.js.map +1 -1
  254. package/dist/esm/function/getVideoCodec.d.ts +1 -1
  255. package/dist/esm/function/getVideoCodec.js +11 -13
  256. package/dist/esm/function/getVideoCodec.js.map +1 -1
  257. package/dist/esm/function/getVideoMimeType.d.ts +2 -0
  258. package/dist/esm/function/getVideoMimeType.js +8 -0
  259. package/dist/esm/function/getVideoMimeType.js.map +1 -0
  260. package/dist/esm/function/getWasmUrl.d.ts +1 -1
  261. package/dist/esm/function/getWasmUrl.js +2 -2
  262. package/dist/esm/function/getWasmUrl.js.map +1 -1
  263. package/dist/esm/function/hasAlphaChannel.d.ts +1 -1
  264. package/dist/esm/function/hasAlphaChannel.js +2 -2
  265. package/dist/esm/function/hasAlphaChannel.js.map +1 -1
  266. package/dist/esm/function/isHdr.d.ts +1 -1
  267. package/dist/esm/function/isHdr.js +2 -2
  268. package/dist/esm/function/isHdr.js.map +1 -1
  269. package/dist/esm/function/videoFrame2AVFrame.d.ts +6 -6
  270. package/dist/esm/function/videoFrame2AVFrame.js +13 -74
  271. package/dist/esm/function/videoFrame2AVFrame.js.map +1 -1
  272. package/dist/esm/implement/AVFramePoolImpl.d.ts +3 -4
  273. package/dist/esm/implement/AVFramePoolImpl.js +5 -7
  274. package/dist/esm/implement/AVFramePoolImpl.js.map +1 -1
  275. package/dist/esm/implement/AVPCMBufferPoolImpl.d.ts +3 -4
  276. package/dist/esm/implement/AVPCMBufferPoolImpl.js +4 -6
  277. package/dist/esm/implement/AVPCMBufferPoolImpl.js.map +1 -1
  278. package/dist/esm/implement/AVPacketPoolImpl.d.ts +3 -4
  279. package/dist/esm/implement/AVPacketPoolImpl.js +5 -7
  280. package/dist/esm/implement/AVPacketPoolImpl.js.map +1 -1
  281. package/dist/esm/index.d.ts +54 -0
  282. package/dist/esm/index.js +98 -0
  283. package/dist/esm/index.js.map +1 -0
  284. package/dist/esm/internal.d.ts +26 -0
  285. package/dist/esm/internal.js +52 -0
  286. package/dist/esm/internal.js.map +1 -0
  287. package/dist/esm/pixelFormatDescriptor.d.ts +1 -1
  288. package/dist/esm/pixelFormatDescriptor.js +2 -0
  289. package/dist/esm/pixelFormatDescriptor.js.map +1 -1
  290. package/dist/esm/pixfmt.d.ts +9 -1
  291. package/dist/esm/pixfmt.js.map +1 -1
  292. package/dist/esm/sampleFormatDescriptor.d.ts +1 -1
  293. package/dist/esm/sampleFormatDescriptor.js.map +1 -1
  294. package/dist/esm/stringEnum.d.ts +5 -5
  295. package/dist/esm/stringEnum.js +4 -1
  296. package/dist/esm/stringEnum.js.map +1 -1
  297. package/dist/esm/struct/audiosample.d.ts +1 -1
  298. package/dist/esm/struct/audiosample.js +2 -2
  299. package/dist/esm/struct/audiosample.js.map +1 -1
  300. package/dist/esm/struct/avbuffer.d.ts +1 -1
  301. package/dist/esm/struct/avbuffer.js +4 -4
  302. package/dist/esm/struct/avbuffer.js.map +1 -1
  303. package/dist/esm/struct/avcodecparameters.d.ts +9 -9
  304. package/dist/esm/struct/avcodecparameters.js +14 -16
  305. package/dist/esm/struct/avcodecparameters.js.map +1 -1
  306. package/dist/esm/struct/avdict.js +2 -2
  307. package/dist/esm/struct/avdict.js.map +1 -1
  308. package/dist/esm/struct/avframe.d.ts +12 -12
  309. package/dist/esm/struct/avframe.js +18 -22
  310. package/dist/esm/struct/avframe.js.map +1 -1
  311. package/dist/esm/struct/avpacket.d.ts +4 -4
  312. package/dist/esm/struct/avpacket.js +7 -9
  313. package/dist/esm/struct/avpacket.js.map +1 -1
  314. package/dist/esm/struct/avpcmbuffer.d.ts +1 -1
  315. package/dist/esm/struct/avpcmbuffer.js +2 -2
  316. package/dist/esm/struct/avpcmbuffer.js.map +1 -1
  317. package/dist/esm/struct/avsubtitle.d.ts +2 -2
  318. package/dist/esm/struct/avsubtitle.js.map +1 -1
  319. package/dist/esm/struct/encryption.js +2 -2
  320. package/dist/esm/struct/encryption.js.map +1 -1
  321. package/dist/esm/struct/rational.d.ts +1 -1
  322. package/dist/esm/struct/rational.js +4 -4
  323. package/dist/esm/struct/rational.js.map +1 -1
  324. package/dist/esm/util/amf.d.ts +1 -4
  325. package/dist/esm/util/amf.js +1 -5
  326. package/dist/esm/util/amf.js.map +1 -1
  327. package/dist/esm/util/av1syntax.d.ts +1 -1
  328. package/dist/esm/util/av1syntax.js.map +1 -1
  329. package/dist/esm/util/avbuffer.d.ts +2 -2
  330. package/dist/esm/util/avbuffer.js +7 -15
  331. package/dist/esm/util/avbuffer.js.map +1 -1
  332. package/dist/esm/util/avdict.d.ts +2 -2
  333. package/dist/esm/util/avdict.js +12 -16
  334. package/dist/esm/util/avdict.js.map +1 -1
  335. package/dist/esm/util/avframe.d.ts +2 -2
  336. package/dist/esm/util/avframe.js +22 -24
  337. package/dist/esm/util/avframe.js.map +1 -1
  338. package/dist/esm/util/avpacket.d.ts +3 -3
  339. package/dist/esm/util/avpacket.js +11 -13
  340. package/dist/esm/util/avpacket.js.map +1 -1
  341. package/dist/esm/util/channel.d.ts +1 -1
  342. package/dist/esm/util/channel.js +6 -6
  343. package/dist/esm/util/channel.js.map +1 -1
  344. package/dist/esm/util/codecparameters.d.ts +3 -1
  345. package/dist/esm/util/codecparameters.js +16 -12
  346. package/dist/esm/util/codecparameters.js.map +1 -1
  347. package/dist/esm/util/common.js.map +1 -1
  348. package/dist/esm/util/encryption.d.ts +2 -2
  349. package/dist/esm/util/encryption.js +1 -3
  350. package/dist/esm/util/encryption.js.map +1 -1
  351. package/dist/esm/util/expgolomb.d.ts +1 -2
  352. package/dist/esm/util/expgolomb.js.map +1 -1
  353. package/dist/esm/util/intread.js +1 -1
  354. package/dist/esm/util/intread.js.map +1 -1
  355. package/dist/esm/util/intwrite.js +1 -1
  356. package/dist/esm/util/intwrite.js.map +1 -1
  357. package/dist/esm/util/mem.js +7 -7
  358. package/dist/esm/util/mem.js.map +1 -1
  359. package/dist/esm/util/nalu.d.ts +1 -1
  360. package/dist/esm/util/nalu.js +3 -5
  361. package/dist/esm/util/nalu.js.map +1 -1
  362. package/dist/esm/util/ntp.js.map +1 -1
  363. package/dist/esm/util/pcm.d.ts +1 -1
  364. package/dist/esm/util/pcm.js.map +1 -1
  365. package/dist/esm/util/pixel.d.ts +1 -1
  366. package/dist/esm/util/pixel.js +8 -10
  367. package/dist/esm/util/pixel.js.map +1 -1
  368. package/dist/esm/util/rational.d.ts +10 -10
  369. package/dist/esm/util/rational.js +4 -4
  370. package/dist/esm/util/rational.js.map +1 -1
  371. package/dist/esm/util/sample.d.ts +1 -1
  372. package/dist/esm/util/sample.js +7 -7
  373. package/dist/esm/util/sample.js.map +1 -1
  374. package/dist/esm/util/serialize.d.ts +9 -9
  375. package/dist/esm/util/serialize.js +6 -6
  376. package/dist/esm/util/serialize.js.map +1 -1
  377. package/package.json +23 -390
  378. package/src/AVStream.ts +677 -0
  379. package/src/audiosamplefmt.ts +302 -0
  380. package/src/avformat.ts +96 -0
  381. package/src/codec.ts +1016 -0
  382. package/src/codecs/aac.ts +429 -0
  383. package/src/codecs/ac3.ts +309 -0
  384. package/src/codecs/av1.ts +503 -0
  385. package/src/codecs/dts.ts +100 -0
  386. package/src/codecs/flac.ts +118 -0
  387. package/src/codecs/h264.ts +1013 -0
  388. package/src/codecs/hevc.ts +1049 -0
  389. package/src/codecs/mp3.ts +172 -0
  390. package/src/codecs/mpeg4.ts +37 -0
  391. package/src/codecs/mpegvideo.ts +49 -0
  392. package/src/codecs/opus.ts +148 -0
  393. package/src/codecs/ttml.ts +158 -0
  394. package/src/codecs/vp8.ts +91 -0
  395. package/src/codecs/vp9.ts +213 -0
  396. package/src/codecs/vvc.ts +1086 -0
  397. package/src/constant.ts +72 -0
  398. package/src/enum.ts +47 -0
  399. package/src/error.ts +45 -0
  400. package/src/function/analyzeAVFormat.ts +94 -0
  401. package/src/function/analyzeUrlIOLoader.ts +166 -0
  402. package/src/function/audioData2AVFrame.ts +82 -0
  403. package/src/function/avPCMBuffer2AVFrame.ts +111 -0
  404. package/src/function/avframe2AudioData.ts +131 -0
  405. package/src/function/avframe2VideoFrame.ts +88 -0
  406. package/src/function/avpacket2EncodedAudioChunk.ts +39 -0
  407. package/src/function/avpacket2EncodedVideoChunk.ts +39 -0
  408. package/src/function/compileResource.ts +57 -0
  409. package/src/function/constant/webcodecs.ts +81 -0
  410. package/src/function/encodedAudioChunk2AVPacket.ts +62 -0
  411. package/src/function/encodedVideoChunk2AVPacket.ts +86 -0
  412. package/src/function/getAudioCodec.ts +45 -0
  413. package/src/function/getAudioMimeType.ts +44 -0
  414. package/src/function/getHardwarePreference.ts +45 -0
  415. package/src/function/getVideoCodec.ts +244 -0
  416. package/src/function/getVideoMimeType.ts +35 -0
  417. package/src/function/getWasmUrl.ts +190 -0
  418. package/src/function/hasAlphaChannel.ts +37 -0
  419. package/src/function/isHdr.ts +44 -0
  420. package/src/function/videoFrame2AVFrame.ts +95 -0
  421. package/src/implement/AVFramePoolImpl.ts +83 -0
  422. package/src/implement/AVPCMBufferPoolImpl.ts +79 -0
  423. package/src/implement/AVPacketPoolImpl.ts +82 -0
  424. package/src/index.ts +264 -0
  425. package/src/internal.ts +71 -0
  426. package/src/pixelFormatDescriptor.ts +819 -0
  427. package/src/pixfmt.ts +1400 -0
  428. package/src/sampleFormatDescriptor.ts +57 -0
  429. package/src/stringEnum.ts +366 -0
  430. package/src/struct/audiosample.ts +95 -0
  431. package/src/struct/avbuffer.ts +139 -0
  432. package/src/struct/avcodecparameters.ts +243 -0
  433. package/src/struct/avdict.ts +44 -0
  434. package/src/struct/avframe.ts +663 -0
  435. package/src/struct/avpacket.ts +178 -0
  436. package/src/struct/avpcmbuffer.ts +77 -0
  437. package/src/struct/avsubtitle.ts +59 -0
  438. package/src/struct/encryption.ts +180 -0
  439. package/src/struct/rational.ts +43 -0
  440. package/src/util/amf.ts +178 -0
  441. package/src/util/av1syntax.ts +112 -0
  442. package/src/util/avbuffer.ts +294 -0
  443. package/src/util/avdict.ts +171 -0
  444. package/src/util/avframe.ts +520 -0
  445. package/src/util/avpacket.ts +313 -0
  446. package/src/util/channel.ts +66 -0
  447. package/src/util/codecparameters.ts +148 -0
  448. package/src/util/common.ts +42 -0
  449. package/src/util/encryption.ts +154 -0
  450. package/src/util/expgolomb.ts +170 -0
  451. package/src/util/intread.ts +60 -0
  452. package/src/util/intwrite.ts +71 -0
  453. package/src/util/mem.ts +60 -0
  454. package/src/util/nalu.ts +297 -0
  455. package/src/util/ntp.ts +32 -0
  456. package/src/util/pcm.ts +161 -0
  457. package/src/util/pixel.ts +381 -0
  458. package/src/util/rational.ts +152 -0
  459. package/src/util/sample.ts +136 -0
  460. package/src/util/serialize.ts +268 -0
  461. package/dist/cjs/AVStream.d.ts +0 -577
  462. package/dist/cjs/audiosamplefmt.d.ts +0 -248
  463. package/dist/cjs/avformat.d.ts +0 -66
  464. package/dist/cjs/codec.d.ts +0 -927
  465. package/dist/cjs/codecs/aac.d.ts +0 -121
  466. package/dist/cjs/codecs/ac3.d.ts +0 -72
  467. package/dist/cjs/codecs/av1.d.ts +0 -75
  468. package/dist/cjs/codecs/dts.d.ts +0 -17
  469. package/dist/cjs/codecs/flac.d.ts +0 -46
  470. package/dist/cjs/codecs/h264.d.ts +0 -188
  471. package/dist/cjs/codecs/hevc.d.ts +0 -220
  472. package/dist/cjs/codecs/mp3.d.ts +0 -17
  473. package/dist/cjs/codecs/mpeg4.d.ts +0 -7
  474. package/dist/cjs/codecs/mpegvideo.d.ts +0 -7
  475. package/dist/cjs/codecs/opus.d.ts +0 -26
  476. package/dist/cjs/codecs/ttml.d.ts +0 -9
  477. package/dist/cjs/codecs/ttml.js +0 -87
  478. package/dist/cjs/codecs/vp8.d.ts +0 -31
  479. package/dist/cjs/codecs/vp9.d.ts +0 -45
  480. package/dist/cjs/codecs/vvc.d.ts +0 -235
  481. package/dist/cjs/constant.d.ts +0 -36
  482. package/dist/cjs/enum.d.ts +0 -3285
  483. package/dist/cjs/error.d.ts +0 -10
  484. package/dist/cjs/function/analyzeAVFormat.d.ts +0 -3
  485. package/dist/cjs/function/analyzeUrlIOLoader.d.ts +0 -7
  486. package/dist/cjs/function/analyzeUrlIOLoader.js +0 -101
  487. package/dist/cjs/function/audioData2AVFrame.d.ts +0 -2
  488. package/dist/cjs/function/avPCMBuffer2AVFrame.d.ts +0 -3
  489. package/dist/cjs/function/avframe2AudioData.d.ts +0 -2
  490. package/dist/cjs/function/avframe2VideoFrame.d.ts +0 -5
  491. package/dist/cjs/function/avframe2VideoFrame.js +0 -146
  492. package/dist/cjs/function/avpacket2EncodedAudioChunk.d.ts +0 -2
  493. package/dist/cjs/function/avpacket2EncodedVideoChunk.d.ts +0 -2
  494. package/dist/cjs/function/compileResource.d.ts +0 -2
  495. package/dist/cjs/function/compileResource.js +0 -53
  496. package/dist/cjs/function/encodedAudioChunk2AVPacket.d.ts +0 -2
  497. package/dist/cjs/function/encodedAudioChunk2AVPacket.js +0 -23
  498. package/dist/cjs/function/encodedVideoChunk2AVPacket.d.ts +0 -7
  499. package/dist/cjs/function/getAudioCodec.d.ts +0 -2
  500. package/dist/cjs/function/getHardwarePreference.d.ts +0 -1
  501. package/dist/cjs/function/getHardwarePreference.js +0 -16
  502. package/dist/cjs/function/getVideoCodec.d.ts +0 -2
  503. package/dist/cjs/function/getWasmUrl.d.ts +0 -2
  504. package/dist/cjs/function/hasAlphaChannel.d.ts +0 -2
  505. package/dist/cjs/function/isHdr.d.ts +0 -2
  506. package/dist/cjs/function/videoFrame2AVFrame.d.ts +0 -7
  507. package/dist/cjs/function/videoFrame2AVFrame.js +0 -113
  508. package/dist/cjs/implement/AVFramePoolImpl.d.ts +0 -11
  509. package/dist/cjs/implement/AVFramePoolImpl.js +0 -59
  510. package/dist/cjs/implement/AVPCMBufferPoolImpl.d.ts +0 -11
  511. package/dist/cjs/implement/AVPCMBufferPoolImpl.js +0 -57
  512. package/dist/cjs/implement/AVPacketPoolImpl.d.ts +0 -11
  513. package/dist/cjs/implement/AVPacketPoolImpl.js +0 -60
  514. package/dist/cjs/pixelFormatDescriptor.d.ts +0 -100
  515. package/dist/cjs/pixfmt.d.ts +0 -1293
  516. package/dist/cjs/sampleFormatDescriptor.d.ts +0 -6
  517. package/dist/cjs/stringEnum.d.ts +0 -161
  518. package/dist/cjs/struct/audiosample.d.ts +0 -64
  519. package/dist/cjs/struct/avbuffer.d.ts +0 -85
  520. package/dist/cjs/struct/avcodecparameters.d.ts +0 -181
  521. package/dist/cjs/struct/avdict.d.ts +0 -17
  522. package/dist/cjs/struct/avframe.d.ts +0 -559
  523. package/dist/cjs/struct/avpacket.d.ts +0 -124
  524. package/dist/cjs/struct/avpcmbuffer.d.ts +0 -49
  525. package/dist/cjs/struct/avsubtitle.d.ts +0 -30
  526. package/dist/cjs/struct/encryption.d.ts +0 -137
  527. package/dist/cjs/struct/rational.d.ts +0 -15
  528. package/dist/cjs/struct/rational.js +0 -43
  529. package/dist/cjs/util/amf.d.ts +0 -10
  530. package/dist/cjs/util/av1syntax.d.ts +0 -9
  531. package/dist/cjs/util/avbuffer.d.ts +0 -18
  532. package/dist/cjs/util/avbuffer.js +0 -153
  533. package/dist/cjs/util/avdict.d.ts +0 -9
  534. package/dist/cjs/util/avdict.js +0 -111
  535. package/dist/cjs/util/avframe.d.ts +0 -21
  536. package/dist/cjs/util/avpacket.d.ts +0 -24
  537. package/dist/cjs/util/channel.d.ts +0 -5
  538. package/dist/cjs/util/codecparameters.d.ts +0 -4
  539. package/dist/cjs/util/codecparameters.js +0 -70
  540. package/dist/cjs/util/common.d.ts +0 -3
  541. package/dist/cjs/util/crypto.d.ts +0 -1
  542. package/dist/cjs/util/crypto.js +0 -8
  543. package/dist/cjs/util/crypto.js.map +0 -1
  544. package/dist/cjs/util/encryption.d.ts +0 -6
  545. package/dist/cjs/util/expgolomb.d.ts +0 -26
  546. package/dist/cjs/util/intread.d.ts +0 -9
  547. package/dist/cjs/util/intwrite.d.ts +0 -9
  548. package/dist/cjs/util/mem.d.ts +0 -5
  549. package/dist/cjs/util/mem.js +0 -54
  550. package/dist/cjs/util/nalu.d.ts +0 -32
  551. package/dist/cjs/util/ntp.d.ts +0 -1
  552. package/dist/cjs/util/pcm.d.ts +0 -4
  553. package/dist/cjs/util/pixel.d.ts +0 -11
  554. package/dist/cjs/util/rational.d.ts +0 -58
  555. package/dist/cjs/util/sample.d.ts +0 -7
  556. package/dist/cjs/util/serialize.d.ts +0 -63
  557. package/dist/esm/util/crypto.d.ts +0 -1
  558. package/dist/esm/util/crypto.js +0 -4
  559. package/dist/esm/util/crypto.js.map +0 -1
  560. /package/dist/cjs/{audiosamplefmt.js → audiosamplefmt.cjs} +0 -0
  561. /package/dist/cjs/{avformat.js → avformat.cjs} +0 -0
  562. /package/dist/cjs/{codec.js → codec.cjs} +0 -0
  563. /package/dist/cjs/{error.js → error.cjs} +0 -0
  564. /package/dist/cjs/function/{analyzeAVFormat.js → analyzeAVFormat.cjs} +0 -0
  565. /package/dist/cjs/{pixfmt.js → pixfmt.cjs} +0 -0
  566. /package/dist/cjs/{sampleFormatDescriptor.js → sampleFormatDescriptor.cjs} +0 -0
  567. /package/dist/cjs/struct/{avsubtitle.js → avsubtitle.cjs} +0 -0
  568. /package/dist/cjs/util/{av1syntax.js → av1syntax.cjs} +0 -0
  569. /package/dist/cjs/util/{common.js → common.cjs} +0 -0
  570. /package/dist/cjs/util/{expgolomb.js → expgolomb.cjs} +0 -0
  571. /package/dist/cjs/util/{ntp.js → ntp.cjs} +0 -0
  572. /package/dist/cjs/util/{pcm.js → pcm.cjs} +0 -0
@@ -0,0 +1,677 @@
1
+ /*
2
+ * libmedia AVStream defined
3
+ *
4
+ * 版权所有 (C) 2024 赵高兴
5
+ * Copyright (C) 2024 Gaoxing Zhao
6
+ *
7
+ * 此文件是 libmedia 的一部分
8
+ * This file is part of libmedia.
9
+ *
10
+ * libmedia 是自由软件;您可以根据 GNU Lesser General Public License(GNU LGPL)3.1
11
+ * 或任何其更新的版本条款重新分发或修改它
12
+ * libmedia is free software; you can redistribute it and/or
13
+ * modify it under the terms of the GNU Lesser General Public
14
+ * License as published by the Free Software Foundation; either
15
+ * version 3.1 of the License, or (at your option) any later version.
16
+ *
17
+ * libmedia 希望能够为您提供帮助,但不提供任何明示或暗示的担保,包括但不限于适销性或特定用途的保证
18
+ * 您应自行承担使用 libmedia 的风险,并且需要遵守 GNU Lesser General Public License 中的条款和条件。
19
+ * libmedia is distributed in the hope that it will be useful,
20
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
21
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22
+ * Lesser General Public License for more details.
23
+ *
24
+ */
25
+
26
+ import type { Data } from '@libmedia/common'
27
+ import AVCodecParameters from './struct/avcodecparameters'
28
+ import type { AVPacketSideDataType } from './codec'
29
+ import { NOPTS_VALUE, NOPTS_VALUE_BIGINT } from './constant'
30
+ import type { AVRational } from './struct/rational'
31
+ import type AVPacket from './struct/avpacket'
32
+ import { destroyAVPacket } from './util/avpacket'
33
+
34
+ export const enum AVStreamMetadataKey {
35
+ /**
36
+ * 表演者(歌手、乐队等)
37
+ */
38
+ ARTIST = 'artist',
39
+ /**
40
+ * 自由文本评论
41
+ */
42
+ COMMENT = 'comment',
43
+ /**
44
+ * 版权声明
45
+ */
46
+ COPYRIGHT = 'copyright',
47
+ /**
48
+ * 发行年份(通常为 YYYY 格式)
49
+ */
50
+ DATE = 'date',
51
+ /**
52
+ * 音乐流派
53
+ */
54
+ GENRE = 'genre',
55
+ /**
56
+ * 语言
57
+ */
58
+ LANGUAGE = 'language',
59
+ /**
60
+ * 歌曲或作品的标题
61
+ */
62
+ TITLE = 'title',
63
+ /**
64
+ * 专辑名称
65
+ */
66
+ ALBUM = 'album',
67
+ /**
68
+ * 曲目编号
69
+ */
70
+ TRACK = 'track',
71
+ /**
72
+ * 用于编码音频文件的软件信息
73
+ */
74
+ ENCODER = 'encoder',
75
+ /**
76
+ * 时间参数
77
+ */
78
+ TIME_CODE = 'timecode',
79
+ /**
80
+ * 发行商
81
+ */
82
+ VENDOR = 'vendor',
83
+ /**
84
+ * 发行商标识
85
+ */
86
+ VENDOR_ID = 'vendorId',
87
+ /**
88
+ * 海报
89
+ */
90
+ POSTER = 'poster',
91
+ /**
92
+ * 歌词
93
+ */
94
+ LYRICS = 'lyrics',
95
+ /**
96
+ * 专辑的主要艺术家(与 ARTIST 区分开,适用于合集专辑)
97
+ */
98
+ ALBUM_ARTIST = 'albumArtist',
99
+ /**
100
+ * 如果是多张 CD 的专辑,标识当前曲目所在的 CD
101
+ */
102
+ DISC = 'disc',
103
+ /**
104
+ * 具体的演奏者或表演者
105
+ */
106
+ PERFORMER = 'performer',
107
+ /**
108
+ * 发行者
109
+ */
110
+ PUBLISHER = 'publisher',
111
+ /**
112
+ * 作曲者
113
+ */
114
+ COMPOSER = 'composer',
115
+ /**
116
+ * 编曲者
117
+ */
118
+ COMPILATION = 'compilation',
119
+ /**
120
+ * 创建时间
121
+ */
122
+ CREATION_TIME = 'creationTime',
123
+ /**
124
+ * 最后更改时间
125
+ */
126
+ MODIFICATION_TIME = 'modificationTime',
127
+ /**
128
+ * 专辑表演者排序
129
+ */
130
+ ALBUM_ARTIST_SORT = 'albumArtistSort',
131
+ /**
132
+ * 专辑排序
133
+ */
134
+ ALBUM_SORT = 'albumSort',
135
+ /**
136
+ * 表演者排序
137
+ */
138
+ ARTIST_SORT = 'artistSort',
139
+ /**
140
+ * 标题排序
141
+ */
142
+ TITLE_SORT = 'titleSort',
143
+ /**
144
+ * 作曲者排序
145
+ */
146
+ COMPOSER_SORT = 'composerSort',
147
+ /**
148
+ * 分组
149
+ */
150
+ GROUPING = 'grouping',
151
+ /**
152
+ * 额外的描述信息
153
+ */
154
+ DESCRIPTION = 'description',
155
+ /**
156
+ * 许可信息
157
+ */
158
+ LICENSE = 'license',
159
+ /**
160
+ * 国际标准录音代码
161
+ */
162
+ ISRC = 'isrc',
163
+ /**
164
+ * 情绪标签,如 Happy、Sad
165
+ */
166
+ MOOD = 'mood',
167
+ /**
168
+ * mp4 的 elst box 内容
169
+ */
170
+ ELST = 'elst',
171
+ /**
172
+ * mp4 的旋转矩阵
173
+ */
174
+ MATRIX = 'matrix',
175
+ /**
176
+ * 某些媒体的样式(如 webvtt)
177
+ */
178
+ STYLES = 'styles',
179
+ /**
180
+ * 媒体的 mime
181
+ */
182
+ MIME = 'mime',
183
+ /**
184
+ * mp4 的 handlerName
185
+ */
186
+ HANDLER_NAME = 'handlerName',
187
+ /**
188
+ * DRM 系统支持信息
189
+ */
190
+ ENCRYPTION = 'encryption'
191
+ }
192
+
193
+ export const enum AVDisposition {
194
+ NONE = 0,
195
+ /**
196
+ * The stream should be chosen by default among other streams of the same type,
197
+ * unless the user has explicitly specified otherwise.
198
+ */
199
+ DEFAULT = 1 << 0,
200
+ /**
201
+ * The stream is not in original language.
202
+ *
203
+ * @note AV_DISPOSITION_ORIGINAL is the inverse of this disposition. At most
204
+ * one of them should be set in properly tagged streams.
205
+ * @note This disposition may apply to any stream type, not just audio.
206
+ */
207
+ DUB = 1 << 1,
208
+ /**
209
+ * The stream is in original language.
210
+ *
211
+ * @see the notes for AV_DISPOSITION_DUB
212
+ */
213
+ ORIGINAL = 1 << 2,
214
+ /**
215
+ * The stream is a commentary track.
216
+ */
217
+ COMMENT = 1 << 3,
218
+ /**
219
+ * The stream contains song lyrics.
220
+ */
221
+ LYRICS = 1 << 4,
222
+ /**
223
+ * The stream contains karaoke audio.
224
+ */
225
+ KARAOKE = 1 << 5,
226
+
227
+ /**
228
+ * Track should be used during playback by default.
229
+ * Useful for subtitle track that should be displayed
230
+ * even when user did not explicitly ask for subtitles.
231
+ */
232
+ FORCED = 1 << 6,
233
+ /**
234
+ * stream for hearing impaired audiences
235
+ */
236
+ HEARING_IMPAIRED = 1 << 7,
237
+ /**
238
+ * stream for visual impaired audiences
239
+ */
240
+ VISUAL_IMPAIRED = 1 << 8,
241
+ /**
242
+ * stream without voice
243
+ */
244
+ CLEAN_EFFECTS = 1 << 9,
245
+ /**
246
+ * The stream is stored in the file as an attached picture/"cover art" (e.g.
247
+ * APIC frame in ID3v2). The first (usually only) packet associated with it
248
+ * will be returned among the first few packets read from the file unless
249
+ * seeking takes place. It can also be accessed at any time in
250
+ * AVStream.attached_pic.
251
+ */
252
+ ATTACHED_PIC = 1 << 10,
253
+ /**
254
+ * The stream is sparse, and contains thumbnail images, often corresponding
255
+ * to chapter markers. Only ever used with AV_DISPOSITION_ATTACHED_PIC.
256
+ */
257
+ TIMED_THUMBNAILS = 1 << 11,
258
+
259
+ /**
260
+ * The stream is intended to be mixed with a spatial audio track. For example,
261
+ * it could be used for narration or stereo music, and may remain unchanged by
262
+ * listener head rotation.
263
+ */
264
+ NON_DIEGETIC = 1 << 12,
265
+
266
+ /**
267
+ * The stream is sparse, thumbnail images for other stream in picture format like heif
268
+ */
269
+ THUMBNAIL = 1 << 13,
270
+
271
+ /**
272
+ * The subtitle stream contains captions, providing a transcription and possibly
273
+ * a translation of audio. Typically intended for hearing-impaired audiences.
274
+ */
275
+ CAPTIONS = 1 << 16,
276
+ /**
277
+ * The subtitle stream contains a textual description of the video content.
278
+ * Typically intended for visually-impaired audiences or for the cases where the
279
+ * video cannot be seen.
280
+ */
281
+ DESCRIPTIONS = 1 << 17,
282
+ /**
283
+ * The subtitle stream contains time-aligned metadata that is not intended to be
284
+ * directly presented to the user.
285
+ */
286
+ METADATA = 1 << 18,
287
+ /**
288
+ * The stream is intended to be mixed with another stream before presentation.
289
+ * Used for example to signal the stream contains an image part of a HEIF grid,
290
+ * or for mix_type=0 in mpegts.
291
+ */
292
+ DEPENDENT = 1 << 19,
293
+ /**
294
+ * still images in video stream (still_picture_flag=1 in mpegts
295
+ */
296
+ STILL_IMAGE = 1 << 20,
297
+ /**
298
+ * still images in video stream (still_picture_flag=1 in mpegts
299
+ */
300
+ MULTILAYER = 1 << 21
301
+ }
302
+
303
+ export const enum AVDiscard {
304
+ /* We leave some space between them for extensions (drop some
305
+ * keyframes for intra-only or drop just some bidir frames). */
306
+ // /< discard nothing
307
+ AVDISCARD_NONE = -16,
308
+ // /< discard useless packets like 0 size packets in avi
309
+ AVDISCARD_DEFAULT = 0,
310
+ // /< discard all non reference
311
+ AVDISCARD_NONREF = 8,
312
+ // /< discard all bidirectional frames
313
+ AVDISCARD_BIDIR = 16,
314
+ // /< discard all non intra frames
315
+ AVDISCARD_NONINTRA = 24,
316
+ // /< discard all frames except keyframes
317
+ AVDISCARD_NONKEY = 32,
318
+ // /< discard all
319
+ AVDISCARD_ALL = 48
320
+ }
321
+
322
+ export const enum AVStreamGroupParamsType {
323
+ NONE,
324
+ IAMF_AUDIO_ELEMENT,
325
+ IAMF_MIX_PRESENTATION,
326
+ TILE_GRID,
327
+ }
328
+
329
+ /**
330
+ * from FFmpeg
331
+ *
332
+ */
333
+ export default class AVStream {
334
+ /**
335
+ * stream index in AVFormatContext
336
+ */
337
+ index: int32 = NOPTS_VALUE
338
+
339
+ /**
340
+ * Format-specific stream ID.
341
+ * decoding: set by libavformat
342
+ * encoding: set by the user, replaced by libavformat if left unset
343
+ */
344
+ id: int32 = NOPTS_VALUE
345
+
346
+ /**
347
+ * format private data
348
+ */
349
+ privData: Data = null
350
+ /**
351
+ * demuxer or muxer's private data
352
+ */
353
+ privateData2: Data = null
354
+
355
+ codecpar: AVCodecParameters = make<AVCodecParameters>(new AVCodecParameters())
356
+
357
+ /**
358
+ * An array of side data that applies to the whole stream (i.e. the
359
+ * container does not allow it to change between packets).
360
+ *
361
+ * There may be no overlap between the side data in this array and side data
362
+ * in the packets. I.e. a given side data is either exported by the muxer
363
+ * (demuxing) / set by the caller (muxing) in this array, then it never
364
+ * appears in the packets, or the side data is exported / sent through
365
+ * the packets (always in the first packet where the value becomes known or
366
+ * changes), then it does not appear in this array.
367
+ *
368
+ * - demuxing: Set by libavformat when the stream is created.
369
+ * - muxing: May be set by the caller before write_header().
370
+ *
371
+ */
372
+ sideData: Partial<Record<AVPacketSideDataType, Uint8Array>> = {}
373
+
374
+ /**
375
+ * number of frames in this stream if known or 0
376
+ */
377
+ nbFrames: int64 = 0n
378
+
379
+ metadata: Data = {}
380
+
381
+ /**
382
+ * Decoding: duration of the stream, in stream time base.
383
+ * If a source file does not specify a duration, but does specify
384
+ * a bitrate, this value will be estimated from bitrate and file size.
385
+ *
386
+ * Encoding: May be set by the caller before avformat_write_header() to
387
+ * provide a hint to the muxer about the estimated duration.
388
+ */
389
+ duration: int64 = NOPTS_VALUE_BIGINT
390
+
391
+ /**
392
+ * Decoding: pts of the first frame of the stream in presentation order, in stream time base.
393
+ * Only set this if you are absolutely 100% sure that the value you set
394
+ * it to really is the pts of the first frame.
395
+ * This may be undefined (AV_NOPTS_VALUE).
396
+ * @note The ASF header does NOT contain a correct start_time the ASF
397
+ * demuxer must NOT set this.
398
+ */
399
+ startTime: int64 = NOPTS_VALUE_BIGINT
400
+
401
+ /**
402
+ * 第一个 packet 的 dts
403
+ */
404
+ firstDTS: int64 = NOPTS_VALUE_BIGINT
405
+
406
+ /**
407
+ * AV_DISPOSITION_* bit field
408
+ */
409
+ disposition: AVDisposition = AVDisposition.NONE
410
+
411
+ /**
412
+ * Selects which packets can be discarded at will and do not need to be demuxed.
413
+ */
414
+ discard: AVDiscard = AVDiscard.AVDISCARD_NONE
415
+
416
+ /**
417
+ *
418
+ * 封装时间基
419
+ *
420
+ * decoding: set by libavformat
421
+ * encoding: May be set by the caller before avformat_write_header() to
422
+ * provide a hint to the muxer about the desired timebase. In
423
+ * avformat_write_header(), the muxer will overwrite this field
424
+ * with the timebase that will actually be used for the timestamps
425
+ * written into the file (which may or may not be related to the
426
+ * user-provided one, depending on the format).
427
+ */
428
+ timeBase: AVRational = make<AVRational>()
429
+
430
+ /**
431
+ * 帧索引,可用于 seek
432
+ */
433
+ sampleIndexes: {
434
+ dts: int64
435
+ pts: int64
436
+ pos: int64
437
+ size: int32
438
+ duration: int64
439
+ flags: int32
440
+ }[] = []
441
+
442
+ /**
443
+ * pos 到 sample index 的映射
444
+ */
445
+ sampleIndexesPosMap: Map<int64, int32> = new Map()
446
+
447
+ /**
448
+ * For streams with AV_DISPOSITION_ATTACHED_PIC disposition, this packet
449
+ * will contain the attached picture.
450
+ *
451
+ * decoding: set by libavformat, must not be modified by the caller.
452
+ * encoding: unused
453
+ */
454
+ attachedPic: pointer<AVPacket> = nullptr
455
+
456
+ public destroy() {
457
+ if (this.codecpar) {
458
+ this.codecpar.destroy()
459
+ unmake(this.codecpar)
460
+ this.codecpar = null
461
+ }
462
+ if (this.timeBase) {
463
+ unmake(this.timeBase)
464
+ this.timeBase = null
465
+ }
466
+ if (this.attachedPic) {
467
+ destroyAVPacket(this.attachedPic)
468
+ this.attachedPic = nullptr
469
+ }
470
+ this.sampleIndexes.length = 0
471
+ this.sampleIndexesPosMap.clear()
472
+ }
473
+ }
474
+
475
+ export class AVStreamGroupTileGrid {
476
+ /**
477
+ * Width of the canvas.
478
+ *
479
+ * Must be > 0.
480
+ */
481
+ codedWidth: int32 = 0
482
+ /**
483
+ * Width of the canvas.
484
+ *
485
+ * Must be > 0.
486
+ */
487
+ codedHeight: int32 = 0
488
+
489
+ /**
490
+ * An @ref nb_tiles sized array of offsets in pixels from the topleft edge
491
+ * of the canvas, indicating where each stream should be placed.
492
+ * It must be allocated with the av_malloc() family of functions.
493
+ *
494
+ * - demuxing: set by libavformat, must not be modified by the caller.
495
+ * - muxing: set by the caller before avformat_write_header().
496
+ *
497
+ * Freed by libavformat in avformat_free_context().
498
+ */
499
+ offsets: {
500
+ /**
501
+ * Index of the stream in the group this tile references.
502
+ *
503
+ * Must be < @ref AVStreamGroup.nb_streams "nb_streams".
504
+ */
505
+ idx: int32
506
+ /**
507
+ * Offset in pixels from the left edge of the canvas where the tile
508
+ * should be placed.
509
+ */
510
+ horizontal: int32
511
+ /**
512
+ * Offset in pixels from the top edge of the canvas where the tile
513
+ * should be placed.
514
+ */
515
+ vertical: int32
516
+ }[] = []
517
+
518
+ /**
519
+ * The pixel value per channel in RGBA format used if no pixel of any tile
520
+ * is located at a particular pixel location.
521
+ *
522
+ * @see av_image_fill_color().
523
+ * @see av_parse_color().
524
+ */
525
+ background: uint8[] = null
526
+
527
+ /**
528
+ * Offset in pixels from the left edge of the canvas where the actual image
529
+ * meant for presentation starts.
530
+ *
531
+ * This field must be >= 0 and < @ref coded_width.
532
+ */
533
+ horizontalOffset: int32 = NOPTS_VALUE
534
+
535
+ /**
536
+ * Offset in pixels from the top edge of the canvas where the actual image
537
+ * meant for presentation starts.
538
+ *
539
+ * This field must be >= 0 and < @ref coded_height.
540
+ */
541
+ verticalOffset: int32 = NOPTS_VALUE
542
+
543
+ /**
544
+ * Width of the final image for presentation.
545
+ *
546
+ * Must be > 0 and <= (@ref coded_width - @ref horizontal_offset).
547
+ * When it's not equal to (@ref coded_width - @ref horizontal_offset), the
548
+ * result of (@ref coded_width - width - @ref horizontal_offset) is the
549
+ * amount amount of pixels to be cropped from the right edge of the
550
+ * final image before presentation.
551
+ */
552
+ width: int32 = 0
553
+
554
+ /**
555
+ * Height of the final image for presentation.
556
+ *
557
+ * Must be > 0 and <= (@ref coded_height - @ref vertical_offset).
558
+ * When it's not equal to (@ref coded_height - @ref vertical_offset), the
559
+ * result of (@ref coded_height - height - @ref vertical_offset) is the
560
+ * amount amount of pixels to be cropped from the bottom edge of the
561
+ * final image before presentation.
562
+ */
563
+ height: int32 = 0
564
+
565
+ /**
566
+ * Additional data associated with the grid.
567
+ *
568
+ * Should be allocated with av_packet_side_data_new() or
569
+ * av_packet_side_data_add(), and will be freed by avformat_free_context().
570
+ */
571
+ sideData: Partial<Record<AVPacketSideDataType, Uint8Array>> = {}
572
+ }
573
+
574
+ export class AVStreamGroup {
575
+ /**
576
+ * format private data
577
+ */
578
+ privData: Data = null
579
+
580
+ /**
581
+ * Group index in AVFormatContext.
582
+ */
583
+ index: int32 = NOPTS_VALUE
584
+
585
+ /**
586
+ * Group type-specific group ID.
587
+ *
588
+ * decoding: set by libavformat
589
+ * encoding: may set by the user
590
+ */
591
+ id: int32 = NOPTS_VALUE
592
+
593
+ /**
594
+ * Group type
595
+ *
596
+ * decoding: set by libavformat on group creation
597
+ * encoding: set by avformat_stream_group_create()
598
+ */
599
+ type: AVStreamGroupParamsType = AVStreamGroupParamsType.NONE
600
+
601
+ /**
602
+ * Group type-specific parameters
603
+ */
604
+ params: AVStreamGroupTileGrid = null
605
+
606
+ /**
607
+ * Metadata that applies to the whole group.
608
+ *
609
+ * - demuxing: set by libavformat on group creation
610
+ * - muxing: may be set by the caller before avformat_write_header()
611
+ *
612
+ * Freed by libavformat in avformat_free_context().
613
+ */
614
+ metadata: Data = {}
615
+
616
+ /**
617
+ * A list of streams in the group. New entries are created with
618
+ * avformat_stream_group_add_stream().
619
+ *
620
+ * - demuxing: entries are created by libavformat on group creation.
621
+ * If AVFMTCTX_NOHEADER is set in ctx_flags, then new entries may also
622
+ * appear in av_read_frame().
623
+ * - muxing: entries are created by the user before avformat_write_header().
624
+ *
625
+ * Freed by libavformat in avformat_free_context().
626
+ */
627
+ streams: AVStream[] = []
628
+
629
+ /**
630
+ * Stream group disposition - a combination of AV_DISPOSITION_* flags.
631
+ * This field currently applies to all defined AVStreamGroupParamsType.
632
+ *
633
+ * - demuxing: set by libavformat when creating the group or in
634
+ * avformat_find_stream_info().
635
+ * - muxing: may be set by the caller before avformat_write_header().
636
+ */
637
+ disposition: int32 = 0
638
+
639
+ destroy() {
640
+ this.streams.length = 0
641
+ this.params = null
642
+ }
643
+ }
644
+
645
+ export interface AVStreamInterface {
646
+ index: int32
647
+ id: int32
648
+ codecpar: pointer<AVCodecParameters>
649
+ nbFrames: int64
650
+ metadata: Data
651
+ duration: int64
652
+ startTime: int64
653
+ disposition: int32
654
+ timeBase: AVRational
655
+ attachedPic: pointer<AVPacket>
656
+ }
657
+
658
+ export interface AVStreamGroupInterface {
659
+ index: int32
660
+ id: int32
661
+ type: AVStreamGroupParamsType
662
+ params: AVStreamGroupTileGrid
663
+ metadata: Data
664
+ streams: AVStreamInterface[]
665
+ disposition: int32
666
+ }
667
+
668
+ export interface AVStreamMetadataEncryption {
669
+ schemeType: number
670
+ schemeVersion: number
671
+ cryptByteBlock?: number
672
+ skipByteBlock?: number
673
+ perSampleIVSize: number
674
+ kid: Uint8Array
675
+ constantIV?: Uint8Array
676
+ pattern?: boolean
677
+ }