@libmedia/avutil 0.11.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 (579) hide show
  1. package/dist/cjs/AVStream.cjs +66 -0
  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} +22 -26
  17. package/dist/cjs/codecs/h264.js.map +1 -1
  18. package/dist/cjs/codecs/{hevc.js → hevc.cjs} +25 -26
  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} +27 -28
  35. package/dist/cjs/codecs/vvc.js.map +1 -1
  36. package/dist/cjs/constant.cjs +27 -0
  37. package/dist/cjs/constant.js.map +1 -1
  38. package/dist/cjs/{enum.js → enum.cjs} +39 -24
  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} +22 -22
  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.cjs +19 -0
  53. package/dist/cjs/function/avpacket2EncodedAudioChunk.js.map +1 -1
  54. package/dist/cjs/function/avpacket2EncodedVideoChunk.cjs +19 -0
  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.cjs +62 -0
  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} +17 -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} +19 -4
  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} +40 -6
  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} +34 -36
  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} +85 -90
  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 +258 -15
  155. package/dist/esm/AVStream.js +39 -11
  156. package/dist/esm/AVStream.js.map +1 -1
  157. package/dist/esm/audiosamplefmt.js.map +1 -1
  158. package/dist/esm/avformat.d.ts +4 -1
  159. package/dist/esm/avformat.js.map +1 -1
  160. package/dist/esm/codec.d.ts +65 -1
  161. package/dist/esm/codec.js.map +1 -1
  162. package/dist/esm/codecs/aac.d.ts +10 -5
  163. package/dist/esm/codecs/aac.js +2 -2
  164. package/dist/esm/codecs/aac.js.map +1 -1
  165. package/dist/esm/codecs/ac3.d.ts +1 -1
  166. package/dist/esm/codecs/ac3.js +1 -1
  167. package/dist/esm/codecs/ac3.js.map +1 -1
  168. package/dist/esm/codecs/av1.d.ts +3 -3
  169. package/dist/esm/codecs/av1.js +4 -6
  170. package/dist/esm/codecs/av1.js.map +1 -1
  171. package/dist/esm/codecs/dts.d.ts +1 -1
  172. package/dist/esm/codecs/dts.js +2 -2
  173. package/dist/esm/codecs/dts.js.map +1 -1
  174. package/dist/esm/codecs/flac.d.ts +3 -3
  175. package/dist/esm/codecs/flac.js +1 -1
  176. package/dist/esm/codecs/flac.js.map +1 -1
  177. package/dist/esm/codecs/h264.d.ts +6 -6
  178. package/dist/esm/codecs/h264.js +15 -21
  179. package/dist/esm/codecs/h264.js.map +1 -1
  180. package/dist/esm/codecs/hevc.d.ts +6 -6
  181. package/dist/esm/codecs/hevc.js +18 -18
  182. package/dist/esm/codecs/hevc.js.map +1 -1
  183. package/dist/esm/codecs/mp3.d.ts +4 -4
  184. package/dist/esm/codecs/mp3.js +1 -1
  185. package/dist/esm/codecs/mp3.js.map +1 -1
  186. package/dist/esm/codecs/mpeg4.d.ts +1 -1
  187. package/dist/esm/codecs/mpeg4.js +1 -1
  188. package/dist/esm/codecs/mpeg4.js.map +1 -1
  189. package/dist/esm/codecs/mpegvideo.d.ts +1 -1
  190. package/dist/esm/codecs/mpegvideo.js +1 -1
  191. package/dist/esm/codecs/mpegvideo.js.map +1 -1
  192. package/dist/esm/codecs/opus.d.ts +3 -3
  193. package/dist/esm/codecs/opus.js +2 -4
  194. package/dist/esm/codecs/opus.js.map +1 -1
  195. package/dist/esm/codecs/ttml.js +5 -11
  196. package/dist/esm/codecs/ttml.js.map +1 -1
  197. package/dist/esm/codecs/vp8.d.ts +4 -4
  198. package/dist/esm/codecs/vp8.js +2 -2
  199. package/dist/esm/codecs/vp8.js.map +1 -1
  200. package/dist/esm/codecs/vp9.d.ts +4 -4
  201. package/dist/esm/codecs/vp9.js +8 -10
  202. package/dist/esm/codecs/vp9.js.map +1 -1
  203. package/dist/esm/codecs/vvc.d.ts +6 -6
  204. package/dist/esm/codecs/vvc.js +18 -20
  205. package/dist/esm/codecs/vvc.js.map +1 -1
  206. package/dist/esm/constant.d.ts +6 -7
  207. package/dist/esm/constant.js +7 -9
  208. package/dist/esm/constant.js.map +1 -1
  209. package/dist/esm/enum.d.ts +147 -13
  210. package/dist/esm/enum.js +39 -24
  211. package/dist/esm/enum.js.map +1 -1
  212. package/dist/esm/error.js.map +1 -1
  213. package/dist/esm/function/analyzeAVFormat.d.ts +2 -2
  214. package/dist/esm/function/analyzeAVFormat.js.map +1 -1
  215. package/dist/esm/function/analyzeUrlIOLoader.d.ts +2 -2
  216. package/dist/esm/function/analyzeUrlIOLoader.js +2 -10
  217. package/dist/esm/function/analyzeUrlIOLoader.js.map +1 -1
  218. package/dist/esm/function/audioData2AVFrame.d.ts +1 -1
  219. package/dist/esm/function/audioData2AVFrame.js +6 -6
  220. package/dist/esm/function/audioData2AVFrame.js.map +1 -1
  221. package/dist/esm/function/avPCMBuffer2AVFrame.d.ts +2 -2
  222. package/dist/esm/function/avPCMBuffer2AVFrame.js +9 -9
  223. package/dist/esm/function/avPCMBuffer2AVFrame.js.map +1 -1
  224. package/dist/esm/function/avframe2AudioData.d.ts +1 -1
  225. package/dist/esm/function/avframe2AudioData.js +6 -8
  226. package/dist/esm/function/avframe2AudioData.js.map +1 -1
  227. package/dist/esm/function/avframe2VideoFrame.d.ts +3 -3
  228. package/dist/esm/function/avframe2VideoFrame.js +14 -79
  229. package/dist/esm/function/avframe2VideoFrame.js.map +1 -1
  230. package/dist/esm/function/avpacket2EncodedAudioChunk.d.ts +1 -1
  231. package/dist/esm/function/avpacket2EncodedAudioChunk.js +6 -7
  232. package/dist/esm/function/avpacket2EncodedAudioChunk.js.map +1 -1
  233. package/dist/esm/function/avpacket2EncodedVideoChunk.d.ts +1 -1
  234. package/dist/esm/function/avpacket2EncodedVideoChunk.js +6 -7
  235. package/dist/esm/function/avpacket2EncodedVideoChunk.js.map +1 -1
  236. package/dist/esm/function/compileResource.d.ts +1 -1
  237. package/dist/esm/function/compileResource.js +2 -4
  238. package/dist/esm/function/compileResource.js.map +1 -1
  239. package/dist/esm/function/constant/webcodecs.d.ts +5 -0
  240. package/dist/esm/function/constant/webcodecs.js +51 -0
  241. package/dist/esm/function/constant/webcodecs.js.map +1 -0
  242. package/dist/esm/function/encodedAudioChunk2AVPacket.d.ts +1 -1
  243. package/dist/esm/function/encodedAudioChunk2AVPacket.js +7 -7
  244. package/dist/esm/function/encodedAudioChunk2AVPacket.js.map +1 -1
  245. package/dist/esm/function/encodedVideoChunk2AVPacket.d.ts +1 -1
  246. package/dist/esm/function/encodedVideoChunk2AVPacket.js +12 -9
  247. package/dist/esm/function/encodedVideoChunk2AVPacket.js.map +1 -1
  248. package/dist/esm/function/getAudioCodec.d.ts +1 -1
  249. package/dist/esm/function/getAudioCodec.js +2 -2
  250. package/dist/esm/function/getAudioCodec.js.map +1 -1
  251. package/dist/esm/function/getAudioMimeType.d.ts +2 -0
  252. package/dist/esm/function/getAudioMimeType.js +12 -0
  253. package/dist/esm/function/getAudioMimeType.js.map +1 -0
  254. package/dist/esm/function/getHardwarePreference.js +1 -1
  255. package/dist/esm/function/getHardwarePreference.js.map +1 -1
  256. package/dist/esm/function/getVideoCodec.d.ts +1 -1
  257. package/dist/esm/function/getVideoCodec.js +11 -13
  258. package/dist/esm/function/getVideoCodec.js.map +1 -1
  259. package/dist/esm/function/getVideoMimeType.d.ts +2 -0
  260. package/dist/esm/function/getVideoMimeType.js +8 -0
  261. package/dist/esm/function/getVideoMimeType.js.map +1 -0
  262. package/dist/esm/function/getWasmUrl.d.ts +1 -1
  263. package/dist/esm/function/getWasmUrl.js +17 -2
  264. package/dist/esm/function/getWasmUrl.js.map +1 -1
  265. package/dist/esm/function/hasAlphaChannel.d.ts +1 -1
  266. package/dist/esm/function/hasAlphaChannel.js +2 -2
  267. package/dist/esm/function/hasAlphaChannel.js.map +1 -1
  268. package/dist/esm/function/isHdr.d.ts +1 -1
  269. package/dist/esm/function/isHdr.js +2 -2
  270. package/dist/esm/function/isHdr.js.map +1 -1
  271. package/dist/esm/function/videoFrame2AVFrame.d.ts +6 -6
  272. package/dist/esm/function/videoFrame2AVFrame.js +13 -74
  273. package/dist/esm/function/videoFrame2AVFrame.js.map +1 -1
  274. package/dist/esm/implement/AVFramePoolImpl.d.ts +3 -3
  275. package/dist/esm/implement/AVFramePoolImpl.js +5 -7
  276. package/dist/esm/implement/AVFramePoolImpl.js.map +1 -1
  277. package/dist/esm/implement/AVPCMBufferPoolImpl.d.ts +3 -3
  278. package/dist/esm/implement/AVPCMBufferPoolImpl.js +4 -6
  279. package/dist/esm/implement/AVPCMBufferPoolImpl.js.map +1 -1
  280. package/dist/esm/implement/AVPacketPoolImpl.d.ts +3 -3
  281. package/dist/esm/implement/AVPacketPoolImpl.js +5 -7
  282. package/dist/esm/implement/AVPacketPoolImpl.js.map +1 -1
  283. package/dist/esm/index.d.ts +54 -0
  284. package/dist/esm/index.js +98 -0
  285. package/dist/esm/index.js.map +1 -0
  286. package/dist/esm/internal.d.ts +26 -0
  287. package/dist/esm/internal.js +52 -0
  288. package/dist/esm/internal.js.map +1 -0
  289. package/dist/esm/pixelFormatDescriptor.d.ts +2 -1
  290. package/dist/esm/pixelFormatDescriptor.js +15 -0
  291. package/dist/esm/pixelFormatDescriptor.js.map +1 -1
  292. package/dist/esm/pixfmt.d.ts +9 -1
  293. package/dist/esm/pixfmt.js.map +1 -1
  294. package/dist/esm/sampleFormatDescriptor.d.ts +1 -1
  295. package/dist/esm/sampleFormatDescriptor.js.map +1 -1
  296. package/dist/esm/stringEnum.d.ts +30 -5
  297. package/dist/esm/stringEnum.js +43 -5
  298. package/dist/esm/stringEnum.js.map +1 -1
  299. package/dist/esm/struct/audiosample.d.ts +1 -1
  300. package/dist/esm/struct/audiosample.js +2 -2
  301. package/dist/esm/struct/audiosample.js.map +1 -1
  302. package/dist/esm/struct/avbuffer.d.ts +1 -1
  303. package/dist/esm/struct/avbuffer.js +4 -4
  304. package/dist/esm/struct/avbuffer.js.map +1 -1
  305. package/dist/esm/struct/avcodecparameters.d.ts +14 -9
  306. package/dist/esm/struct/avcodecparameters.js +14 -16
  307. package/dist/esm/struct/avcodecparameters.js.map +1 -1
  308. package/dist/esm/struct/avdict.js +2 -2
  309. package/dist/esm/struct/avdict.js.map +1 -1
  310. package/dist/esm/struct/avframe.d.ts +12 -12
  311. package/dist/esm/struct/avframe.js +21 -27
  312. package/dist/esm/struct/avframe.js.map +1 -1
  313. package/dist/esm/struct/avpacket.d.ts +4 -4
  314. package/dist/esm/struct/avpacket.js +7 -9
  315. package/dist/esm/struct/avpacket.js.map +1 -1
  316. package/dist/esm/struct/avpcmbuffer.d.ts +1 -1
  317. package/dist/esm/struct/avpcmbuffer.js +2 -2
  318. package/dist/esm/struct/avpcmbuffer.js.map +1 -1
  319. package/dist/esm/struct/avsubtitle.d.ts +2 -2
  320. package/dist/esm/struct/avsubtitle.js.map +1 -1
  321. package/dist/esm/struct/encryption.js +2 -2
  322. package/dist/esm/struct/encryption.js.map +1 -1
  323. package/dist/esm/struct/rational.d.ts +1 -1
  324. package/dist/esm/struct/rational.js +4 -4
  325. package/dist/esm/struct/rational.js.map +1 -1
  326. package/dist/esm/util/amf.d.ts +1 -4
  327. package/dist/esm/util/amf.js +1 -5
  328. package/dist/esm/util/amf.js.map +1 -1
  329. package/dist/esm/util/av1syntax.d.ts +1 -1
  330. package/dist/esm/util/av1syntax.js.map +1 -1
  331. package/dist/esm/util/avbuffer.d.ts +2 -1
  332. package/dist/esm/util/avbuffer.js +7 -15
  333. package/dist/esm/util/avbuffer.js.map +1 -1
  334. package/dist/esm/util/avdict.d.ts +2 -1
  335. package/dist/esm/util/avdict.js +12 -16
  336. package/dist/esm/util/avdict.js.map +1 -1
  337. package/dist/esm/util/avframe.d.ts +2 -1
  338. package/dist/esm/util/avframe.js +22 -24
  339. package/dist/esm/util/avframe.js.map +1 -1
  340. package/dist/esm/util/avpacket.d.ts +3 -3
  341. package/dist/esm/util/avpacket.js +11 -13
  342. package/dist/esm/util/avpacket.js.map +1 -1
  343. package/dist/esm/util/channel.d.ts +1 -1
  344. package/dist/esm/util/channel.js +6 -6
  345. package/dist/esm/util/channel.js.map +1 -1
  346. package/dist/esm/util/codecparameters.d.ts +3 -1
  347. package/dist/esm/util/codecparameters.js +16 -12
  348. package/dist/esm/util/codecparameters.js.map +1 -1
  349. package/dist/esm/util/common.js.map +1 -1
  350. package/dist/esm/util/encryption.d.ts +2 -2
  351. package/dist/esm/util/encryption.js +1 -3
  352. package/dist/esm/util/encryption.js.map +1 -1
  353. package/dist/esm/util/expgolomb.d.ts +1 -2
  354. package/dist/esm/util/expgolomb.js.map +1 -1
  355. package/dist/esm/util/intread.js +1 -1
  356. package/dist/esm/util/intread.js.map +1 -1
  357. package/dist/esm/util/intwrite.js +1 -1
  358. package/dist/esm/util/intwrite.js.map +1 -1
  359. package/dist/esm/util/mem.js +7 -7
  360. package/dist/esm/util/mem.js.map +1 -1
  361. package/dist/esm/util/nalu.d.ts +1 -1
  362. package/dist/esm/util/nalu.js +3 -5
  363. package/dist/esm/util/nalu.js.map +1 -1
  364. package/dist/esm/util/ntp.js.map +1 -1
  365. package/dist/esm/util/pcm.d.ts +1 -1
  366. package/dist/esm/util/pcm.js.map +1 -1
  367. package/dist/esm/util/pixel.d.ts +1 -1
  368. package/dist/esm/util/pixel.js +8 -10
  369. package/dist/esm/util/pixel.js.map +1 -1
  370. package/dist/esm/util/rational.d.ts +10 -10
  371. package/dist/esm/util/rational.js +4 -4
  372. package/dist/esm/util/rational.js.map +1 -1
  373. package/dist/esm/util/sample.d.ts +1 -1
  374. package/dist/esm/util/sample.js +7 -7
  375. package/dist/esm/util/sample.js.map +1 -1
  376. package/dist/esm/util/serialize.d.ts +9 -9
  377. package/dist/esm/util/serialize.js +6 -6
  378. package/dist/esm/util/serialize.js.map +1 -1
  379. package/package.json +23 -390
  380. package/src/AVStream.ts +677 -0
  381. package/src/audiosamplefmt.ts +302 -0
  382. package/src/avformat.ts +96 -0
  383. package/src/codec.ts +1016 -0
  384. package/src/codecs/aac.ts +429 -0
  385. package/src/codecs/ac3.ts +309 -0
  386. package/src/codecs/av1.ts +503 -0
  387. package/src/codecs/dts.ts +100 -0
  388. package/src/codecs/flac.ts +118 -0
  389. package/src/codecs/h264.ts +1013 -0
  390. package/src/codecs/hevc.ts +1049 -0
  391. package/src/codecs/mp3.ts +172 -0
  392. package/src/codecs/mpeg4.ts +37 -0
  393. package/src/codecs/mpegvideo.ts +49 -0
  394. package/src/codecs/opus.ts +148 -0
  395. package/src/codecs/ttml.ts +158 -0
  396. package/src/codecs/vp8.ts +91 -0
  397. package/src/codecs/vp9.ts +213 -0
  398. package/src/codecs/vvc.ts +1086 -0
  399. package/src/constant.ts +72 -0
  400. package/src/enum.ts +47 -0
  401. package/src/error.ts +45 -0
  402. package/src/function/analyzeAVFormat.ts +94 -0
  403. package/src/function/analyzeUrlIOLoader.ts +166 -0
  404. package/src/function/audioData2AVFrame.ts +82 -0
  405. package/src/function/avPCMBuffer2AVFrame.ts +111 -0
  406. package/src/function/avframe2AudioData.ts +131 -0
  407. package/src/function/avframe2VideoFrame.ts +88 -0
  408. package/src/function/avpacket2EncodedAudioChunk.ts +39 -0
  409. package/src/function/avpacket2EncodedVideoChunk.ts +39 -0
  410. package/src/function/compileResource.ts +57 -0
  411. package/src/function/constant/webcodecs.ts +81 -0
  412. package/src/function/encodedAudioChunk2AVPacket.ts +62 -0
  413. package/src/function/encodedVideoChunk2AVPacket.ts +86 -0
  414. package/src/function/getAudioCodec.ts +45 -0
  415. package/src/function/getAudioMimeType.ts +44 -0
  416. package/src/function/getHardwarePreference.ts +45 -0
  417. package/src/function/getVideoCodec.ts +244 -0
  418. package/src/function/getVideoMimeType.ts +35 -0
  419. package/src/function/getWasmUrl.ts +190 -0
  420. package/src/function/hasAlphaChannel.ts +37 -0
  421. package/src/function/isHdr.ts +44 -0
  422. package/src/function/videoFrame2AVFrame.ts +95 -0
  423. package/src/implement/AVFramePoolImpl.ts +83 -0
  424. package/src/implement/AVPCMBufferPoolImpl.ts +79 -0
  425. package/src/implement/AVPacketPoolImpl.ts +82 -0
  426. package/src/index.ts +264 -0
  427. package/src/internal.ts +71 -0
  428. package/src/pixelFormatDescriptor.ts +819 -0
  429. package/src/pixfmt.ts +1400 -0
  430. package/src/sampleFormatDescriptor.ts +57 -0
  431. package/src/stringEnum.ts +366 -0
  432. package/src/struct/audiosample.ts +95 -0
  433. package/src/struct/avbuffer.ts +139 -0
  434. package/src/struct/avcodecparameters.ts +243 -0
  435. package/src/struct/avdict.ts +44 -0
  436. package/src/struct/avframe.ts +663 -0
  437. package/src/struct/avpacket.ts +178 -0
  438. package/src/struct/avpcmbuffer.ts +77 -0
  439. package/src/struct/avsubtitle.ts +59 -0
  440. package/src/struct/encryption.ts +180 -0
  441. package/src/struct/rational.ts +43 -0
  442. package/src/util/amf.ts +178 -0
  443. package/src/util/av1syntax.ts +112 -0
  444. package/src/util/avbuffer.ts +294 -0
  445. package/src/util/avdict.ts +171 -0
  446. package/src/util/avframe.ts +520 -0
  447. package/src/util/avpacket.ts +313 -0
  448. package/src/util/channel.ts +66 -0
  449. package/src/util/codecparameters.ts +148 -0
  450. package/src/util/common.ts +42 -0
  451. package/src/util/encryption.ts +154 -0
  452. package/src/util/expgolomb.ts +170 -0
  453. package/src/util/intread.ts +60 -0
  454. package/src/util/intwrite.ts +71 -0
  455. package/src/util/mem.ts +60 -0
  456. package/src/util/nalu.ts +297 -0
  457. package/src/util/ntp.ts +32 -0
  458. package/src/util/pcm.ts +161 -0
  459. package/src/util/pixel.ts +381 -0
  460. package/src/util/rational.ts +152 -0
  461. package/src/util/sample.ts +136 -0
  462. package/src/util/serialize.ts +268 -0
  463. package/dist/cjs/AVStream.d.ts +0 -334
  464. package/dist/cjs/AVStream.js +0 -37
  465. package/dist/cjs/audiosamplefmt.d.ts +0 -248
  466. package/dist/cjs/avformat.d.ts +0 -63
  467. package/dist/cjs/codec.d.ts +0 -863
  468. package/dist/cjs/codecs/aac.d.ts +0 -121
  469. package/dist/cjs/codecs/ac3.d.ts +0 -72
  470. package/dist/cjs/codecs/av1.d.ts +0 -75
  471. package/dist/cjs/codecs/dts.d.ts +0 -17
  472. package/dist/cjs/codecs/flac.d.ts +0 -46
  473. package/dist/cjs/codecs/h264.d.ts +0 -188
  474. package/dist/cjs/codecs/hevc.d.ts +0 -220
  475. package/dist/cjs/codecs/mp3.d.ts +0 -17
  476. package/dist/cjs/codecs/mpeg4.d.ts +0 -7
  477. package/dist/cjs/codecs/mpegvideo.d.ts +0 -7
  478. package/dist/cjs/codecs/opus.d.ts +0 -26
  479. package/dist/cjs/codecs/ttml.d.ts +0 -9
  480. package/dist/cjs/codecs/ttml.js +0 -87
  481. package/dist/cjs/codecs/vp8.d.ts +0 -31
  482. package/dist/cjs/codecs/vp9.d.ts +0 -45
  483. package/dist/cjs/codecs/vvc.d.ts +0 -235
  484. package/dist/cjs/constant.d.ts +0 -35
  485. package/dist/cjs/constant.js +0 -27
  486. package/dist/cjs/enum.d.ts +0 -3159
  487. package/dist/cjs/error.d.ts +0 -10
  488. package/dist/cjs/function/analyzeAVFormat.d.ts +0 -3
  489. package/dist/cjs/function/analyzeUrlIOLoader.d.ts +0 -7
  490. package/dist/cjs/function/analyzeUrlIOLoader.js +0 -101
  491. package/dist/cjs/function/audioData2AVFrame.d.ts +0 -2
  492. package/dist/cjs/function/avPCMBuffer2AVFrame.d.ts +0 -3
  493. package/dist/cjs/function/avframe2AudioData.d.ts +0 -2
  494. package/dist/cjs/function/avframe2VideoFrame.d.ts +0 -5
  495. package/dist/cjs/function/avframe2VideoFrame.js +0 -146
  496. package/dist/cjs/function/avpacket2EncodedAudioChunk.d.ts +0 -2
  497. package/dist/cjs/function/avpacket2EncodedAudioChunk.js +0 -17
  498. package/dist/cjs/function/avpacket2EncodedVideoChunk.d.ts +0 -2
  499. package/dist/cjs/function/avpacket2EncodedVideoChunk.js +0 -17
  500. package/dist/cjs/function/compileResource.d.ts +0 -2
  501. package/dist/cjs/function/compileResource.js +0 -53
  502. package/dist/cjs/function/encodedAudioChunk2AVPacket.d.ts +0 -2
  503. package/dist/cjs/function/encodedAudioChunk2AVPacket.js +0 -23
  504. package/dist/cjs/function/encodedVideoChunk2AVPacket.d.ts +0 -7
  505. package/dist/cjs/function/encodedVideoChunk2AVPacket.js +0 -30
  506. package/dist/cjs/function/getAudioCodec.d.ts +0 -2
  507. package/dist/cjs/function/getHardwarePreference.d.ts +0 -1
  508. package/dist/cjs/function/getHardwarePreference.js +0 -16
  509. package/dist/cjs/function/getVideoCodec.d.ts +0 -2
  510. package/dist/cjs/function/getWasmUrl.d.ts +0 -2
  511. package/dist/cjs/function/hasAlphaChannel.d.ts +0 -2
  512. package/dist/cjs/function/isHdr.d.ts +0 -2
  513. package/dist/cjs/function/videoFrame2AVFrame.d.ts +0 -7
  514. package/dist/cjs/function/videoFrame2AVFrame.js +0 -113
  515. package/dist/cjs/implement/AVFramePoolImpl.d.ts +0 -10
  516. package/dist/cjs/implement/AVFramePoolImpl.js +0 -59
  517. package/dist/cjs/implement/AVPCMBufferPoolImpl.d.ts +0 -10
  518. package/dist/cjs/implement/AVPCMBufferPoolImpl.js +0 -57
  519. package/dist/cjs/implement/AVPacketPoolImpl.d.ts +0 -10
  520. package/dist/cjs/implement/AVPacketPoolImpl.js +0 -60
  521. package/dist/cjs/pixelFormatDescriptor.d.ts +0 -99
  522. package/dist/cjs/pixfmt.d.ts +0 -1293
  523. package/dist/cjs/sampleFormatDescriptor.d.ts +0 -6
  524. package/dist/cjs/stringEnum.d.ts +0 -136
  525. package/dist/cjs/struct/audiosample.d.ts +0 -64
  526. package/dist/cjs/struct/avbuffer.d.ts +0 -85
  527. package/dist/cjs/struct/avcodecparameters.d.ts +0 -176
  528. package/dist/cjs/struct/avdict.d.ts +0 -17
  529. package/dist/cjs/struct/avframe.d.ts +0 -559
  530. package/dist/cjs/struct/avpacket.d.ts +0 -124
  531. package/dist/cjs/struct/avpcmbuffer.d.ts +0 -49
  532. package/dist/cjs/struct/avsubtitle.d.ts +0 -30
  533. package/dist/cjs/struct/encryption.d.ts +0 -137
  534. package/dist/cjs/struct/rational.d.ts +0 -15
  535. package/dist/cjs/struct/rational.js +0 -43
  536. package/dist/cjs/util/amf.d.ts +0 -10
  537. package/dist/cjs/util/av1syntax.d.ts +0 -9
  538. package/dist/cjs/util/avbuffer.d.ts +0 -17
  539. package/dist/cjs/util/avbuffer.js +0 -153
  540. package/dist/cjs/util/avdict.d.ts +0 -8
  541. package/dist/cjs/util/avdict.js +0 -111
  542. package/dist/cjs/util/avframe.d.ts +0 -20
  543. package/dist/cjs/util/avpacket.d.ts +0 -24
  544. package/dist/cjs/util/channel.d.ts +0 -5
  545. package/dist/cjs/util/codecparameters.d.ts +0 -4
  546. package/dist/cjs/util/codecparameters.js +0 -70
  547. package/dist/cjs/util/common.d.ts +0 -3
  548. package/dist/cjs/util/crypto.d.ts +0 -1
  549. package/dist/cjs/util/crypto.js +0 -8
  550. package/dist/cjs/util/crypto.js.map +0 -1
  551. package/dist/cjs/util/encryption.d.ts +0 -6
  552. package/dist/cjs/util/expgolomb.d.ts +0 -26
  553. package/dist/cjs/util/intread.d.ts +0 -9
  554. package/dist/cjs/util/intwrite.d.ts +0 -9
  555. package/dist/cjs/util/mem.d.ts +0 -5
  556. package/dist/cjs/util/mem.js +0 -54
  557. package/dist/cjs/util/nalu.d.ts +0 -32
  558. package/dist/cjs/util/ntp.d.ts +0 -1
  559. package/dist/cjs/util/pcm.d.ts +0 -4
  560. package/dist/cjs/util/pixel.d.ts +0 -11
  561. package/dist/cjs/util/rational.d.ts +0 -58
  562. package/dist/cjs/util/sample.d.ts +0 -7
  563. package/dist/cjs/util/serialize.d.ts +0 -63
  564. package/dist/esm/util/crypto.d.ts +0 -1
  565. package/dist/esm/util/crypto.js +0 -4
  566. package/dist/esm/util/crypto.js.map +0 -1
  567. /package/dist/cjs/{audiosamplefmt.js → audiosamplefmt.cjs} +0 -0
  568. /package/dist/cjs/{avformat.js → avformat.cjs} +0 -0
  569. /package/dist/cjs/{codec.js → codec.cjs} +0 -0
  570. /package/dist/cjs/{error.js → error.cjs} +0 -0
  571. /package/dist/cjs/function/{analyzeAVFormat.js → analyzeAVFormat.cjs} +0 -0
  572. /package/dist/cjs/{pixfmt.js → pixfmt.cjs} +0 -0
  573. /package/dist/cjs/{sampleFormatDescriptor.js → sampleFormatDescriptor.cjs} +0 -0
  574. /package/dist/cjs/struct/{avsubtitle.js → avsubtitle.cjs} +0 -0
  575. /package/dist/cjs/util/{av1syntax.js → av1syntax.cjs} +0 -0
  576. /package/dist/cjs/util/{common.js → common.cjs} +0 -0
  577. /package/dist/cjs/util/{expgolomb.js → expgolomb.cjs} +0 -0
  578. /package/dist/cjs/util/{ntp.js → ntp.cjs} +0 -0
  579. /package/dist/cjs/util/{pcm.js → pcm.cjs} +0 -0
@@ -0,0 +1,663 @@
1
+ /*
2
+ * libmedia AVFrame 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 { AV_NUM_DATA_POINTERS, NOPTS_VALUE, NOPTS_VALUE_BIGINT } from '../constant'
27
+ import { AVChromaLocation, AVColorPrimaries, AVColorRange, AVColorSpace, AVColorTransferCharacteristic } from '../pixfmt'
28
+ import type { AVBufferRef } from './avbuffer'
29
+ import { unrefAVFrame } from '../util/avframe'
30
+ import type { AVDictionary } from './avdict'
31
+ import { AVRational } from './rational'
32
+ import type { AVChannelLayout } from './audiosample'
33
+
34
+ export const enum AVFrameFlags {
35
+ AV_FRAME_FLAG_NONE = 0,
36
+ /**
37
+ * The frame data may be corrupted, e.g. due to decoding errors.
38
+ */
39
+ AV_FRAME_FLAG_CORRUPT = 1 << 0,
40
+ /**
41
+ * A flag to mark frames that are keyframes.
42
+ */
43
+ AV_FRAME_FLAG_KEY = 1 << 1,
44
+ /**
45
+ * A flag to mark the frames which need to be decoded, but shouldn't be output.
46
+ */
47
+ AV_FRAME_FLAG_DISCARD = 1 << 2,
48
+ /**
49
+ * A flag to mark frames whose content is interlaced.
50
+ */
51
+ AV_FRAME_FLAG_INTERLACED = 1 << 3,
52
+ /**
53
+ * A flag to mark frames where the top field is displayed first if the content
54
+ * is interlaced.
55
+ */
56
+ AV_FRAME_FLAG_TOP_FIELD_FIRST = 1 << 4
57
+ }
58
+
59
+ export const enum FFDecodeError {
60
+ NONE = 0,
61
+ INVALID_BITSTREAM = 1,
62
+ MISSING_REFERENCE = 2,
63
+ CONCEALMENT_ACTIVE = 4,
64
+ DECODE_SLICES = 8
65
+ }
66
+
67
+ export const enum AVPictureType {
68
+ /**
69
+ * Undefined
70
+ */
71
+ AV_PICTURE_TYPE_NONE = 0,
72
+ /**
73
+ * Intra
74
+ */
75
+ AV_PICTURE_TYPE_I,
76
+ /**
77
+ * Predicted
78
+ */
79
+ AV_PICTURE_TYPE_P,
80
+ /**
81
+ * Bi-dir predicted
82
+ */
83
+ AV_PICTURE_TYPE_B,
84
+ /**
85
+ * S(GMC)-VOP MPEG-4
86
+ */
87
+ AV_PICTURE_TYPE_S,
88
+ /**
89
+ * Switching Intra
90
+ */
91
+ AV_PICTURE_TYPE_SI,
92
+ /**
93
+ * Switching Predicted
94
+ */
95
+ AV_PICTURE_TYPE_SP,
96
+ /**
97
+ * BI type
98
+ */
99
+ AV_PICTURE_TYPE_BI
100
+ }
101
+
102
+ /**
103
+ * @defgroup lavu_frame AVFrame
104
+ * @ingroup lavu_data
105
+ *
106
+ * @{
107
+ * AVFrame is an abstraction for reference-counted raw multimedia data.
108
+ */
109
+
110
+ export const enum AVFrameSideDataType {
111
+ /**
112
+ * The data is the AVPanScan struct defined in libavcodec.
113
+ */
114
+ AV_FRAME_DATA_PANSCAN,
115
+ /**
116
+ * ATSC A53 Part 4 Closed Captions.
117
+ * A53 CC bitstream is stored as uint8_t in AVFrameSideData.data.
118
+ * The number of bytes of CC data is AVFrameSideData.size.
119
+ */
120
+ AV_FRAME_DATA_A53_CC,
121
+ /**
122
+ * Stereoscopic 3d metadata.
123
+ * The data is the AVStereo3D struct defined in libcommon/stereo3d.h.
124
+ */
125
+ AV_FRAME_DATA_STEREO3D,
126
+ /**
127
+ * The data is the AVMatrixEncoding enum defined in libcommon/channel_layout.h.
128
+ */
129
+ AV_FRAME_DATA_MATRIXENCODING,
130
+ /**
131
+ * Metadata relevant to a downmix procedure.
132
+ * The data is the AVDownmixInfo struct defined in libcommon/downmix_info.h.
133
+ */
134
+ AV_FRAME_DATA_DOWNMIX_INFO,
135
+ /**
136
+ * ReplayGain information in the form of the AVReplayGain struct.
137
+ */
138
+ AV_FRAME_DATA_REPLAYGAIN,
139
+ /**
140
+ * This side data contains a 3x3 transformation matrix describing an affine
141
+ * transformation that needs to be applied to the frame for correct
142
+ * presentation.
143
+ *
144
+ * See libcommon/display.h for a detailed description of the data.
145
+ */
146
+ AV_FRAME_DATA_DISPLAYMATRIX,
147
+ /**
148
+ * Active Format Description data consisting of a single byte as specified
149
+ * in ETSI TS 101 154 using AVActiveFormatDescription enum.
150
+ */
151
+ AV_FRAME_DATA_AFD,
152
+ /**
153
+ * Motion vectors exported by some codecs (on demand through the export_mvs
154
+ * flag set in the libavcodec AVCodecContext flags2 option).
155
+ * The data is the AVMotionVector struct defined in
156
+ * libcommon/motion_vector.h.
157
+ */
158
+ AV_FRAME_DATA_MOTION_VECTORS,
159
+ /**
160
+ * Recommmends skipping the specified number of samples. This is exported
161
+ * only if the "skip_manual" AVOption is set in libavcodec.
162
+ * This has the same format as AV_PKT_DATA_SKIP_SAMPLES.
163
+ * @code
164
+ * u32le number of samples to skip from start of this packet
165
+ * u32le number of samples to skip from end of this packet
166
+ * u8 reason for start skip
167
+ * u8 reason for end skip (0=padding silence, 1=convergence)
168
+ * @endcode
169
+ */
170
+ AV_FRAME_DATA_SKIP_SAMPLES,
171
+ /**
172
+ * This side data must be associated with an audio frame and corresponds to
173
+ * enum AVAudioServiceType defined in avcodec.h.
174
+ */
175
+ AV_FRAME_DATA_AUDIO_SERVICE_TYPE,
176
+ /**
177
+ * Mastering display metadata associated with a video frame. The payload is
178
+ * an AVMasteringDisplayMetadata type and contains information about the
179
+ * mastering display color volume.
180
+ */
181
+ AV_FRAME_DATA_MASTERING_DISPLAY_METADATA,
182
+ /**
183
+ * The GOP timecode in 25 bit timecode format. Data format is 64-bit integer.
184
+ * This is set on the first frame of a GOP that has a temporal reference of 0.
185
+ */
186
+ AV_FRAME_DATA_GOP_TIMECODE,
187
+
188
+ /**
189
+ * The data represents the AVSphericalMapping structure defined in
190
+ * libcommon/spherical.h.
191
+ */
192
+ AV_FRAME_DATA_SPHERICAL,
193
+
194
+ /**
195
+ * Content light level (based on CTA-861.3). This payload contains data in
196
+ * the form of the AVContentLightMetadata struct.
197
+ */
198
+ AV_FRAME_DATA_CONTENT_LIGHT_LEVEL,
199
+
200
+ /**
201
+ * The data contains an ICC profile as an opaque octet buffer following the
202
+ * format described by ISO 15076-1 with an optional name defined in the
203
+ * metadata key entry "name".
204
+ */
205
+ AV_FRAME_DATA_ICC_PROFILE,
206
+
207
+ /**
208
+ * Timecode which conforms to SMPTE ST 12-1. The data is an array of 4 uint32_t
209
+ * where the first uint32_t describes how many (1-3) of the other timecodes are used.
210
+ * The timecode format is described in the documentation of av_timecode_get_smpte_from_framenum()
211
+ * function in libcommon/timecode.h.
212
+ */
213
+ AV_FRAME_DATA_S12M_TIMECODE,
214
+
215
+ /**
216
+ * HDR dynamic metadata associated with a video frame. The payload is
217
+ * an AVDynamicHDRPlus type and contains information for color
218
+ * volume transform - application 4 of SMPTE 2094-40:2016 standard.
219
+ */
220
+ AV_FRAME_DATA_DYNAMIC_HDR_PLUS,
221
+
222
+ /**
223
+ * Regions Of Interest, the data is an array of AVRegionOfInterest type, the number of
224
+ * array element is implied by AVFrameSideData.size / AVRegionOfInterest.self_size.
225
+ */
226
+ AV_FRAME_DATA_REGIONS_OF_INTEREST,
227
+
228
+ /**
229
+ * Encoding parameters for a video frame, as described by AVVideoEncParams.
230
+ */
231
+ AV_FRAME_DATA_VIDEO_ENC_PARAMS,
232
+
233
+ /**
234
+ * User data unregistered metadata associated with a video frame.
235
+ * This is the H.26[45] UDU SEI message, and shouldn't be used for any other purpose
236
+ * The data is stored as uint8_t in AVFrameSideData.data which is 16 bytes of
237
+ * uuid_iso_iec_11578 followed by AVFrameSideData.size - 16 bytes of user_data_payload_byte.
238
+ */
239
+ AV_FRAME_DATA_SEI_UNREGISTERED,
240
+
241
+ /**
242
+ * Film grain parameters for a frame, described by AVFilmGrainParams.
243
+ * Must be present for every frame which should have film grain applied.
244
+ */
245
+ AV_FRAME_DATA_FILM_GRAIN_PARAMS,
246
+
247
+ /**
248
+ * Bounding boxes for object detection and classification,
249
+ * as described by AVDetectionBBoxHeader.
250
+ */
251
+ AV_FRAME_DATA_DETECTION_BBOXES
252
+ }
253
+
254
+ @struct
255
+ export class AVFrameSideData {
256
+ type: AVFrameSideDataType = 0
257
+
258
+ data: pointer<uint8> = nullptr
259
+
260
+ size: size = 0
261
+
262
+ metadata: pointer<AVDictionary> = nullptr
263
+
264
+ buf: pointer<AVBufferRef> = nullptr
265
+ }
266
+
267
+ @struct
268
+ export class AVMasteringDisplayMetadata {
269
+ /**
270
+ * CIE 1931 xy chromaticity coords of color primaries (r, g, b order).
271
+ */
272
+ displayPrimaries: array<array<AVRational, 2>, 3>
273
+ /**
274
+ * CIE 1931 xy chromaticity coords of white point.
275
+ */
276
+ whitePoint: array<AVRational, 2>
277
+ /**
278
+ * Min luminance of mastering display (cd/m^2).
279
+ */
280
+ minLuminance: AVRational
281
+ /**
282
+ * Max luminance of mastering display (cd/m^2).
283
+ */
284
+ maxLuminance: AVRational
285
+ /**
286
+ * Flag indicating whether the display primaries (and white point) are set.
287
+ */
288
+ hasPrimaries: int32
289
+ /**
290
+ * Flag indicating whether the luminance (min_ and max_) have been set.
291
+ */
292
+ hasLuminance: int32
293
+ }
294
+
295
+ @struct
296
+ export class AVContentLightMetadata {
297
+ /**
298
+ * Max content light level (cd/m^2).
299
+ */
300
+ maxCLL: uint32
301
+ /**
302
+ * Max average light level per frame (cd/m^2).
303
+ */
304
+ maxFALL: uint32
305
+ }
306
+
307
+ /**
308
+ * FFmpeg AVFrame 定义
309
+ */
310
+ @struct
311
+ export default class AVFrame {
312
+ /**
313
+ * pointer to the picture/channel planes.
314
+ * This might be different from the first allocated byte
315
+ *
316
+ * Some decoders access areas outside 0,0 - width, height, please
317
+ * see avcodec_align_dimensions2(). Some filters and swscale can read
318
+ * up to 16 bytes beyond the planes, if these filters are to be used,
319
+ * then 16 extra bytes must be allocated.
320
+ *
321
+ * NOTE: Except for hwaccel formats, pointers not needed by the format
322
+ * MUST be set to NULL.
323
+ */
324
+ data: array<pointer<uint8>, typeof AV_NUM_DATA_POINTERS> = new Array(AV_NUM_DATA_POINTERS).fill(nullptr, 0, AV_NUM_DATA_POINTERS)
325
+
326
+ /**
327
+ * For video, size in bytes of each picture line.
328
+ * For audio, size in bytes of each plane.
329
+ *
330
+ * For audio, only linesize[0] may be set. For planar audio, each channel
331
+ * plane must be the same size.
332
+ *
333
+ * For video the linesizes should be multiples of the CPUs alignment
334
+ * preference, this is 16 or 32 for modern desktop CPUs.
335
+ * Some code requires such alignment other code can be slower without
336
+ * correct alignment, for yet other it makes no difference.
337
+ *
338
+ * @note The linesize may be larger than the size of usable data -- there
339
+ * may be extra padding present for performance reasons.
340
+ */
341
+ linesize: array<int32, typeof AV_NUM_DATA_POINTERS> = new Array(AV_NUM_DATA_POINTERS).fill(0, 0, AV_NUM_DATA_POINTERS)
342
+
343
+ /**
344
+ * pointers to the data planes/channels.
345
+ *
346
+ * For video, this should simply point to data[].
347
+ *
348
+ * For planar audio, each channel has a separate data pointer, and
349
+ * linesize[0] contains the size of each channel buffer.
350
+ * For packed audio, there is just one data pointer, and linesize[0]
351
+ * contains the total size of the buffer for all channels.
352
+ *
353
+ * Note: Both data and extended_data should always be set in a valid frame,
354
+ * but for planar audio with more channels that can fit in data,
355
+ * extended_data must be used in order to access all channels.
356
+ */
357
+ extendedData: pointer<pointer<uint8>> = nullptr
358
+
359
+ /**
360
+ * @name Video dimensions
361
+ * Video frames only. The coded dimensions (in pixels) of the video frame,
362
+ * i.e. the size of the rectangle that contains some well-defined values.
363
+ *
364
+ * @note The part of the frame intended for display/presentation is further
365
+ * restricted by the @ref cropping "Cropping rectangle".
366
+ *
367
+ */
368
+ width: int32 = NOPTS_VALUE
369
+ height: int32 = NOPTS_VALUE
370
+
371
+ /**
372
+ * number of audio samples (per channel) described by this frame
373
+ */
374
+ nbSamples: int32 = NOPTS_VALUE
375
+
376
+ /**
377
+ * format of the frame, -1 if unknown or unset
378
+ * Values correspond to enum AVPixelFormat for video frames,
379
+ * enum AVSampleFormat for audio)
380
+ */
381
+ format: int32 = NOPTS_VALUE
382
+
383
+ /**
384
+ * 1 -> keyframe, 0-> not
385
+ *
386
+ * @deprecated Use AV_FRAME_FLAG_KEY instead
387
+ */
388
+ @ignore(!defined(API_FRAME_KEY))
389
+ keyFrame: int32 = 0
390
+
391
+ /**
392
+ * Picture type of the frame.
393
+ */
394
+ pictType: AVPictureType = AVPictureType.AV_PICTURE_TYPE_NONE
395
+
396
+ /**
397
+ * Sample aspect ratio for the video frame, 0/1 if unknown/unspecified.
398
+ */
399
+ sampleAspectRatio: AVRational = new AVRational({ den: 1, num: 0 })
400
+
401
+ /**
402
+ * Presentation timestamp in time_base units (time when frame should be shown to user).
403
+ */
404
+ pts: int64 = NOPTS_VALUE_BIGINT
405
+
406
+ /**
407
+ * DTS copied from the AVPacket that triggered returning this frame. (if frame threading isn't used)
408
+ * This is also the Presentation time of this AVFrame calculated from
409
+ * only AVPacket.dts values without pts values.
410
+ */
411
+ pktDts: int64 = NOPTS_VALUE_BIGINT
412
+
413
+ /**
414
+ * Time base for the timestamps in this frame.
415
+ * In the future, this field may be set on frames output by decoders or
416
+ * filters, but its value will be by default ignored on input to encoders
417
+ * or filters.
418
+ */
419
+ timeBase: AVRational
420
+
421
+ /**
422
+ * quality (between 1 (good) and FF_LAMBDA_MAX (bad))
423
+ */
424
+ quality: int32 = NOPTS_VALUE
425
+
426
+ /**
427
+ * Frame owner's private data.
428
+ *
429
+ * This field may be set by the code that allocates/owns the frame data.
430
+ * It is then not touched by any library functions, except:
431
+ * - it is copied to other references by av_frame_copy_props() (and hence by
432
+ * av_frame_ref());
433
+ * - it is set to NULL when the frame is cleared by av_frame_unref()
434
+ * - on the caller's explicit request. E.g. libavcodec encoders/decoders
435
+ * will copy this field to/from @ref AVPacket "AVPackets" if the caller sets
436
+ * @ref AV_CODEC_FLAG_COPY_OPAQUE.
437
+ *
438
+ * @see opaque_ref the reference-counted analogue
439
+ */
440
+ opaque: pointer<void> = nullptr
441
+
442
+ /**
443
+ * Number of fields in this frame which should be repeated, i.e. the total
444
+ * duration of this frame should be repeat_pict + 2 normal field durations.
445
+ *
446
+ * For interlaced frames this field may be set to 1, which signals that this
447
+ * frame should be presented as 3 fields: beginning with the first field (as
448
+ * determined by AV_FRAME_FLAG_TOP_FIELD_FIRST being set or not), followed
449
+ * by the second field, and then the first field again.
450
+ *
451
+ * For progressive frames this field may be set to a multiple of 2, which
452
+ * signals that this frame's duration should be (repeat_pict + 2) / 2
453
+ * normal frame durations.
454
+ *
455
+ * @note This field is computed from MPEG2 repeat_first_field flag and its
456
+ * associated flags, H.264 pic_struct from picture timing SEI, and
457
+ * their analogues in other codecs. Typically it should only be used when
458
+ * higher-layer timing information is not available.
459
+ */
460
+ repeatPict: int32 = NOPTS_VALUE
461
+
462
+ /**
463
+ * The content of the picture is interlaced.
464
+ *
465
+ * @deprecated Use AV_FRAME_FLAG_INTERLACED instead
466
+ */
467
+ @ignore(!defined(API_INTERLACED_FRAME))
468
+ interlacedFrame: int32 = NOPTS_VALUE
469
+
470
+ /**
471
+ * If the content is interlaced, is top field displayed first.
472
+ *
473
+ * @deprecated Use AV_FRAME_FLAG_TOP_FIELD_FIRST instead
474
+ */
475
+ @ignore(!defined(API_INTERLACED_FRAME))
476
+ topFieldFirst: int32 = NOPTS_VALUE
477
+
478
+ /**
479
+ * Tell user application that palette has changed from previous frame.
480
+ * @deprecated
481
+ */
482
+ @ignore(!defined(API_PALETTE_HAS_CHANGED))
483
+ paletteHasChanged: int32 = NOPTS_VALUE
484
+
485
+ /**
486
+ * Sample rate of the audio data.
487
+ */
488
+ sampleRate: int32 = NOPTS_VALUE
489
+
490
+ /**
491
+ * AVBuffer references backing the data for this frame. If all elements of
492
+ * this array are NULL, then this frame is not reference counted. This array
493
+ * must be filled contiguously -- if buf[i] is non-NULL then buf[j] must
494
+ * also be non-NULL for all j < i.
495
+ *
496
+ * There may be at most one AVBuffer per data plane, so for video this array
497
+ * always contains all the references. For planar audio with more than
498
+ * AV_NUM_DATA_POINTERS channels, there may be more buffers than can fit in
499
+ * this array. Then the extra AVBufferRef pointers are stored in the
500
+ * extended_buf array.
501
+ */
502
+ buf: array<pointer<AVBufferRef>, typeof AV_NUM_DATA_POINTERS> = new Array(AV_NUM_DATA_POINTERS).fill(nullptr, 0, AV_NUM_DATA_POINTERS)
503
+
504
+ /**
505
+ * For planar audio which requires more than AV_NUM_DATA_POINTERS
506
+ * AVBufferRef pointers, this array will hold all the references which
507
+ * cannot fit into AVFrame.buf.
508
+ *
509
+ * Note that this is different from AVFrame.extended_data, which always
510
+ * contains all the pointers. This array only contains the extra pointers,
511
+ * which cannot fit into AVFrame.buf.
512
+ *
513
+ * This array is always allocated using av_malloc() by whoever constructs
514
+ * the frame. It is freed in av_frame_unref().
515
+ */
516
+ extendedBuf: pointer<pointer<AVBufferRef>> = nullptr
517
+
518
+ /**
519
+ * Number of elements in extended_buf.
520
+ */
521
+ nbExtendedBuf: int32 = 0
522
+
523
+ sideData: pointer<pointer<AVFrameSideData>> = nullptr
524
+
525
+ nbSideData: int32 = 0
526
+
527
+ /**
528
+ * Frame flags, a combination of @ref lavu_frame_flags
529
+ */
530
+ flags: AVFrameFlags = AVFrameFlags.AV_FRAME_FLAG_NONE
531
+
532
+ /**
533
+ * MPEG vs JPEG YUV range.
534
+ * - encoding: Set by user
535
+ * - decoding: Set by libavcodec
536
+ */
537
+ colorRange: AVColorRange = AVColorRange.AVCOL_RANGE_UNSPECIFIED
538
+ colorPrimaries: AVColorPrimaries = AVColorPrimaries.AVCOL_PRI_UNSPECIFIED
539
+ colorTrc: AVColorTransferCharacteristic = AVColorTransferCharacteristic.AVCOL_TRC_UNSPECIFIED
540
+
541
+ /**
542
+ * YUV colorspace type.
543
+ * - encoding: Set by user
544
+ * - decoding: Set by libavcodec
545
+ */
546
+ colorSpace: AVColorSpace = AVColorSpace.AVCOL_SPC_UNSPECIFIED
547
+ chromaLocation: AVChromaLocation = AVChromaLocation.AVCHROMA_LOC_UNSPECIFIED
548
+
549
+ /**
550
+ * frame timestamp estimated using various heuristics, in stream time base
551
+ * - encoding: unused
552
+ * - decoding: set by libavcodec, read by user.
553
+ */
554
+ bestEffortTimestamp: int64 = NOPTS_VALUE_BIGINT
555
+
556
+ /**
557
+ * reordered pos from the last AVPacket that has been input into the decoder
558
+ * - encoding: unused
559
+ * - decoding: Read by user.
560
+ * @deprecated use AV_CODEC_FLAG_COPY_OPAQUE to pass through arbitrary user
561
+ * data from packets to frames
562
+ */
563
+ @ignore(!defined(API_FRAME_PKT))
564
+ pktPos: int64 = NOPTS_VALUE_BIGINT
565
+
566
+ /**
567
+ * metadata.
568
+ * - encoding: Set by user.
569
+ * - decoding: Set by libavcodec.
570
+ */
571
+ metadata: pointer<AVDictionary> = nullptr
572
+
573
+ /**
574
+ * decode error flags of the frame, set to a combination of
575
+ * FF_DECODE_ERROR_xxx flags if the decoder produced a frame, but there
576
+ * were errors during the decoding.
577
+ * - encoding: unused
578
+ * - decoding: set by libavcodec, read by user.
579
+ */
580
+ decodeErrorFlags: FFDecodeError = FFDecodeError.NONE
581
+
582
+ /**
583
+ * size of the corresponding packet containing the compressed
584
+ * frame.
585
+ * It is set to a negative value if unknown.
586
+ * - encoding: unused
587
+ * - decoding: set by libavcodec, read by user.
588
+ * @deprecated use AV_CODEC_FLAG_COPY_OPAQUE to pass through arbitrary user
589
+ * data from packets to frames
590
+ */
591
+ @ignore(!defined(API_FRAME_PKT))
592
+ pktSize: int32 = NOPTS_VALUE
593
+
594
+ /**
595
+ * For hwaccel-format frames, this should be a reference to the
596
+ * AVHWFramesContext describing the frame.
597
+ */
598
+ hwFramesCtx: pointer<AVBufferRef> = nullptr
599
+
600
+ /**
601
+ * AVBufferRef for free use by the API user. FFmpeg will never check the
602
+ * contents of the buffer ref. FFmpeg calls av_buffer_unref() on it when
603
+ * the frame is unreferenced. av_frame_copy_props() calls create a new
604
+ * reference with av_buffer_ref() for the target frame's opaque_ref field.
605
+ *
606
+ * This is unrelated to the opaque field, although it serves a similar
607
+ * purpose.
608
+ */
609
+ opaqueRef: pointer<AVBufferRef> = nullptr
610
+
611
+ /**
612
+ * @anchor cropping
613
+ * @name Cropping
614
+ * Video frames only. The number of pixels to discard from the the
615
+ * top/bottom/left/right border of the frame to obtain the sub-rectangle of
616
+ * the frame intended for presentation.
617
+ */
618
+ cropTop: size = 0
619
+
620
+ cropBottom: size = 0
621
+
622
+ cropLeft: size = 0
623
+
624
+ cropRight: size = 0
625
+
626
+ /**
627
+ * AVBufferRef for internal use by a single libav* library.
628
+ * Must not be used to transfer data between libraries.
629
+ * Has to be NULL when ownership of the frame leaves the respective library.
630
+ *
631
+ * Code outside the FFmpeg libs should never check or change the contents of the buffer ref.
632
+ *
633
+ * FFmpeg calls av_buffer_unref() on it when the frame is unreferenced.
634
+ * av_frame_copy_props() calls create a new reference with av_buffer_ref()
635
+ * for the target frame's private_ref field.
636
+ */
637
+ privateRef: pointer<AVBufferRef> = nullptr
638
+
639
+ /**
640
+ * Channel layout of the audio data.
641
+ */
642
+ chLayout: AVChannelLayout
643
+
644
+ /**
645
+ * Duration of the frame, in the same units as pts. 0 if unknown.
646
+ */
647
+ duration: int64 = 0n
648
+
649
+ public close() {
650
+ unrefAVFrame(addressof(this))
651
+ unmake(this)
652
+ }
653
+ }
654
+
655
+ @struct
656
+ export class AVFrameRef extends AVFrame {
657
+ refCount: atomic_int32
658
+ }
659
+
660
+ export interface AVFramePool {
661
+ alloc: () => pointer<AVFrameRef>
662
+ release: (avframe: pointer<AVFrameRef>) => void
663
+ }