@libmedia/avutil 0.12.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (564) 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/codecs/{aac.js → aac.cjs} +2 -8
  4. package/dist/cjs/codecs/aac.js.map +1 -1
  5. package/dist/cjs/codecs/{ac3.js → ac3.cjs} +2 -8
  6. package/dist/cjs/codecs/ac3.js.map +1 -1
  7. package/dist/cjs/codecs/{av1.js → av1.cjs} +6 -10
  8. package/dist/cjs/codecs/av1.js.map +1 -1
  9. package/dist/cjs/codecs/{dts.js → dts.cjs} +3 -9
  10. package/dist/cjs/codecs/dts.js.map +1 -1
  11. package/dist/cjs/codecs/{flac.js → flac.cjs} +2 -8
  12. package/dist/cjs/codecs/flac.js.map +1 -1
  13. package/dist/cjs/codecs/{h264.js → h264.cjs} +20 -23
  14. package/dist/cjs/codecs/h264.js.map +1 -1
  15. package/dist/cjs/codecs/{hevc.js → hevc.cjs} +23 -23
  16. package/dist/cjs/codecs/hevc.js.map +1 -1
  17. package/dist/cjs/codecs/{mp3.js → mp3.cjs} +1 -1
  18. package/dist/cjs/codecs/mp3.js.map +1 -1
  19. package/dist/cjs/codecs/{mpeg4.js → mpeg4.cjs} +1 -1
  20. package/dist/cjs/codecs/mpeg4.js.map +1 -1
  21. package/dist/cjs/codecs/{mpegvideo.js → mpegvideo.cjs} +1 -1
  22. package/dist/cjs/codecs/mpegvideo.js.map +1 -1
  23. package/dist/cjs/codecs/{opus.js → opus.cjs} +3 -9
  24. package/dist/cjs/codecs/opus.js.map +1 -1
  25. package/dist/cjs/codecs/ttml.cjs +51 -0
  26. package/dist/cjs/codecs/ttml.js.map +1 -1
  27. package/dist/cjs/codecs/{vp8.js → vp8.cjs} +2 -8
  28. package/dist/cjs/codecs/vp8.js.map +1 -1
  29. package/dist/cjs/codecs/{vp9.js → vp9.cjs} +4 -10
  30. package/dist/cjs/codecs/vp9.js.map +1 -1
  31. package/dist/cjs/codecs/{vvc.js → vvc.cjs} +25 -25
  32. package/dist/cjs/codecs/vvc.js.map +1 -1
  33. package/dist/cjs/{constant.js → constant.cjs} +6 -7
  34. package/dist/cjs/constant.js.map +1 -1
  35. package/dist/cjs/{enum.js → enum.cjs} +3 -1
  36. package/dist/cjs/enum.js.map +1 -1
  37. package/dist/cjs/error.js.map +1 -1
  38. package/dist/cjs/function/analyzeAVFormat.js.map +1 -1
  39. package/dist/cjs/function/analyzeUrlIOLoader.cjs +66 -0
  40. package/dist/cjs/function/analyzeUrlIOLoader.js.map +1 -1
  41. package/dist/cjs/function/{audioData2AVFrame.js → audioData2AVFrame.cjs} +9 -9
  42. package/dist/cjs/function/audioData2AVFrame.js.map +1 -1
  43. package/dist/cjs/function/{avPCMBuffer2AVFrame.js → avPCMBuffer2AVFrame.cjs} +20 -20
  44. package/dist/cjs/function/avPCMBuffer2AVFrame.js.map +1 -1
  45. package/dist/cjs/function/{avframe2AudioData.js → avframe2AudioData.cjs} +7 -7
  46. package/dist/cjs/function/avframe2AudioData.js.map +1 -1
  47. package/dist/cjs/function/avframe2VideoFrame.cjs +48 -0
  48. package/dist/cjs/function/avframe2VideoFrame.js.map +1 -1
  49. package/dist/cjs/function/{avpacket2EncodedAudioChunk.js → avpacket2EncodedAudioChunk.cjs} +3 -3
  50. package/dist/cjs/function/avpacket2EncodedAudioChunk.js.map +1 -1
  51. package/dist/cjs/function/{avpacket2EncodedVideoChunk.js → avpacket2EncodedVideoChunk.cjs} +3 -3
  52. package/dist/cjs/function/avpacket2EncodedVideoChunk.js.map +1 -1
  53. package/dist/cjs/function/compileResource.cjs +19 -0
  54. package/dist/cjs/function/compileResource.js.map +1 -1
  55. package/dist/cjs/function/constant/webcodecs.cjs +50 -0
  56. package/dist/cjs/function/constant/webcodecs.js.map +1 -0
  57. package/dist/cjs/function/encodedAudioChunk2AVPacket.cjs +23 -0
  58. package/dist/cjs/function/encodedAudioChunk2AVPacket.js.map +1 -1
  59. package/dist/cjs/function/{encodedVideoChunk2AVPacket.js → encodedVideoChunk2AVPacket.cjs} +8 -8
  60. package/dist/cjs/function/encodedVideoChunk2AVPacket.js.map +1 -1
  61. package/dist/cjs/function/{getAudioCodec.js → getAudioCodec.cjs} +1 -1
  62. package/dist/cjs/function/getAudioCodec.js.map +1 -1
  63. package/dist/cjs/function/getAudioMimeType.cjs +19 -0
  64. package/dist/cjs/function/getAudioMimeType.js.map +1 -0
  65. package/dist/cjs/function/getHardwarePreference.cjs +10 -0
  66. package/dist/cjs/function/getHardwarePreference.js.map +1 -1
  67. package/dist/cjs/function/{getVideoCodec.js → getVideoCodec.cjs} +12 -12
  68. package/dist/cjs/function/getVideoCodec.js.map +1 -1
  69. package/dist/cjs/function/getVideoMimeType.cjs +18 -0
  70. package/dist/cjs/function/getVideoMimeType.js.map +1 -0
  71. package/dist/cjs/function/{getWasmUrl.js → getWasmUrl.cjs} +2 -3
  72. package/dist/cjs/function/getWasmUrl.js.map +1 -1
  73. package/dist/cjs/function/{hasAlphaChannel.js → hasAlphaChannel.cjs} +1 -1
  74. package/dist/cjs/function/hasAlphaChannel.js.map +1 -1
  75. package/dist/cjs/function/{isHdr.js → isHdr.cjs} +1 -1
  76. package/dist/cjs/function/isHdr.js.map +1 -1
  77. package/dist/cjs/function/videoFrame2AVFrame.cjs +51 -0
  78. package/dist/cjs/function/videoFrame2AVFrame.js.map +1 -1
  79. package/dist/cjs/implement/AVFramePoolImpl.cjs +28 -0
  80. package/dist/cjs/implement/AVFramePoolImpl.js.map +1 -1
  81. package/dist/cjs/implement/AVPCMBufferPoolImpl.cjs +27 -0
  82. package/dist/cjs/implement/AVPCMBufferPoolImpl.js.map +1 -1
  83. package/dist/cjs/implement/AVPacketPoolImpl.cjs +29 -0
  84. package/dist/cjs/implement/AVPacketPoolImpl.js.map +1 -1
  85. package/dist/cjs/index.cjs +840 -0
  86. package/dist/cjs/index.js.map +1 -0
  87. package/dist/cjs/internal.cjs +283 -0
  88. package/dist/cjs/internal.js.map +1 -0
  89. package/dist/cjs/{pixelFormatDescriptor.js → pixelFormatDescriptor.cjs} +2 -0
  90. package/dist/cjs/pixelFormatDescriptor.js.map +1 -1
  91. package/dist/cjs/pixfmt.js.map +1 -1
  92. package/dist/cjs/sampleFormatDescriptor.js.map +1 -1
  93. package/dist/cjs/{stringEnum.js → stringEnum.cjs} +4 -1
  94. package/dist/cjs/stringEnum.js.map +1 -1
  95. package/dist/cjs/struct/{audiosample.js → audiosample.cjs} +13 -13
  96. package/dist/cjs/struct/audiosample.js.map +1 -1
  97. package/dist/cjs/struct/{avbuffer.js → avbuffer.cjs} +18 -18
  98. package/dist/cjs/struct/avbuffer.js.map +1 -1
  99. package/dist/cjs/struct/{avcodecparameters.js → avcodecparameters.cjs} +11 -11
  100. package/dist/cjs/struct/avcodecparameters.js.map +1 -1
  101. package/dist/cjs/struct/{avdict.js → avdict.cjs} +9 -9
  102. package/dist/cjs/struct/avdict.js.map +1 -1
  103. package/dist/cjs/struct/{avframe.js → avframe.cjs} +30 -30
  104. package/dist/cjs/struct/avframe.js.map +1 -1
  105. package/dist/cjs/struct/{avpacket.js → avpacket.cjs} +19 -19
  106. package/dist/cjs/struct/avpacket.js.map +1 -1
  107. package/dist/cjs/struct/{avpcmbuffer.js → avpcmbuffer.cjs} +9 -9
  108. package/dist/cjs/struct/avpcmbuffer.js.map +1 -1
  109. package/dist/cjs/struct/{encryption.js → encryption.cjs} +13 -13
  110. package/dist/cjs/struct/encryption.js.map +1 -1
  111. package/dist/cjs/struct/rational.cjs +43 -0
  112. package/dist/cjs/struct/rational.js.map +1 -1
  113. package/dist/cjs/util/{amf.js → amf.cjs} +7 -38
  114. package/dist/cjs/util/amf.js.map +1 -1
  115. package/dist/cjs/util/av1syntax.js.map +1 -1
  116. package/dist/cjs/util/avbuffer.cjs +122 -0
  117. package/dist/cjs/util/avbuffer.js.map +1 -1
  118. package/dist/cjs/util/avdict.cjs +75 -0
  119. package/dist/cjs/util/avdict.js.map +1 -1
  120. package/dist/cjs/util/{avframe.js → avframe.cjs} +82 -87
  121. package/dist/cjs/util/avframe.js.map +1 -1
  122. package/dist/cjs/util/{avpacket.js → avpacket.cjs} +58 -58
  123. package/dist/cjs/util/avpacket.js.map +1 -1
  124. package/dist/cjs/util/{channel.js → channel.cjs} +7 -7
  125. package/dist/cjs/util/channel.js.map +1 -1
  126. package/dist/cjs/util/codecparameters.cjs +95 -0
  127. package/dist/cjs/util/codecparameters.js.map +1 -1
  128. package/dist/cjs/util/common.js.map +1 -1
  129. package/dist/cjs/util/{encryption.js → encryption.cjs} +5 -11
  130. package/dist/cjs/util/encryption.js.map +1 -1
  131. package/dist/cjs/util/expgolomb.js.map +1 -1
  132. package/dist/cjs/util/{intread.js → intread.cjs} +1 -1
  133. package/dist/cjs/util/intread.js.map +1 -1
  134. package/dist/cjs/util/{intwrite.js → intwrite.cjs} +1 -1
  135. package/dist/cjs/util/intwrite.js.map +1 -1
  136. package/dist/cjs/util/mem.cjs +23 -0
  137. package/dist/cjs/util/mem.js.map +1 -1
  138. package/dist/cjs/util/{nalu.js → nalu.cjs} +7 -42
  139. package/dist/cjs/util/nalu.js.map +1 -1
  140. package/dist/cjs/util/ntp.js.map +1 -1
  141. package/dist/cjs/util/pcm.js.map +1 -1
  142. package/dist/cjs/util/{pixel.js → pixel.cjs} +26 -30
  143. package/dist/cjs/util/pixel.js.map +1 -1
  144. package/dist/cjs/util/{rational.js → rational.cjs} +5 -11
  145. package/dist/cjs/util/rational.js.map +1 -1
  146. package/dist/cjs/util/{sample.js → sample.cjs} +6 -12
  147. package/dist/cjs/util/sample.js.map +1 -1
  148. package/dist/cjs/util/{serialize.js → serialize.cjs} +40 -42
  149. package/dist/cjs/util/serialize.js.map +1 -1
  150. package/dist/esm/AVStream.d.ts +7 -7
  151. package/dist/esm/AVStream.js +10 -12
  152. package/dist/esm/AVStream.js.map +1 -1
  153. package/dist/esm/codecs/aac.d.ts +10 -5
  154. package/dist/esm/codecs/aac.js +2 -2
  155. package/dist/esm/codecs/aac.js.map +1 -1
  156. package/dist/esm/codecs/ac3.d.ts +1 -1
  157. package/dist/esm/codecs/ac3.js +1 -1
  158. package/dist/esm/codecs/ac3.js.map +1 -1
  159. package/dist/esm/codecs/av1.d.ts +3 -3
  160. package/dist/esm/codecs/av1.js +4 -6
  161. package/dist/esm/codecs/av1.js.map +1 -1
  162. package/dist/esm/codecs/dts.d.ts +1 -1
  163. package/dist/esm/codecs/dts.js +2 -2
  164. package/dist/esm/codecs/dts.js.map +1 -1
  165. package/dist/esm/codecs/flac.d.ts +3 -3
  166. package/dist/esm/codecs/flac.js +1 -1
  167. package/dist/esm/codecs/flac.js.map +1 -1
  168. package/dist/esm/codecs/h264.d.ts +5 -5
  169. package/dist/esm/codecs/h264.js +13 -18
  170. package/dist/esm/codecs/h264.js.map +1 -1
  171. package/dist/esm/codecs/hevc.d.ts +5 -5
  172. package/dist/esm/codecs/hevc.js +16 -15
  173. package/dist/esm/codecs/hevc.js.map +1 -1
  174. package/dist/esm/codecs/mp3.d.ts +4 -4
  175. package/dist/esm/codecs/mp3.js +1 -1
  176. package/dist/esm/codecs/mp3.js.map +1 -1
  177. package/dist/esm/codecs/mpeg4.d.ts +1 -1
  178. package/dist/esm/codecs/mpeg4.js +1 -1
  179. package/dist/esm/codecs/mpeg4.js.map +1 -1
  180. package/dist/esm/codecs/mpegvideo.d.ts +1 -1
  181. package/dist/esm/codecs/mpegvideo.js +1 -1
  182. package/dist/esm/codecs/mpegvideo.js.map +1 -1
  183. package/dist/esm/codecs/opus.d.ts +3 -3
  184. package/dist/esm/codecs/opus.js +2 -4
  185. package/dist/esm/codecs/opus.js.map +1 -1
  186. package/dist/esm/codecs/ttml.js +5 -11
  187. package/dist/esm/codecs/ttml.js.map +1 -1
  188. package/dist/esm/codecs/vp8.d.ts +4 -4
  189. package/dist/esm/codecs/vp8.js +2 -2
  190. package/dist/esm/codecs/vp8.js.map +1 -1
  191. package/dist/esm/codecs/vp9.d.ts +4 -4
  192. package/dist/esm/codecs/vp9.js +8 -10
  193. package/dist/esm/codecs/vp9.js.map +1 -1
  194. package/dist/esm/codecs/vvc.d.ts +5 -5
  195. package/dist/esm/codecs/vvc.js +16 -17
  196. package/dist/esm/codecs/vvc.js.map +1 -1
  197. package/dist/esm/constant.d.ts +5 -7
  198. package/dist/esm/constant.js +5 -9
  199. package/dist/esm/constant.js.map +1 -1
  200. package/dist/esm/enum.d.ts +9 -1
  201. package/dist/esm/enum.js +3 -1
  202. package/dist/esm/enum.js.map +1 -1
  203. package/dist/esm/error.js.map +1 -1
  204. package/dist/esm/function/analyzeAVFormat.d.ts +2 -2
  205. package/dist/esm/function/analyzeAVFormat.js.map +1 -1
  206. package/dist/esm/function/analyzeUrlIOLoader.d.ts +2 -2
  207. package/dist/esm/function/analyzeUrlIOLoader.js +2 -10
  208. package/dist/esm/function/analyzeUrlIOLoader.js.map +1 -1
  209. package/dist/esm/function/audioData2AVFrame.d.ts +1 -1
  210. package/dist/esm/function/audioData2AVFrame.js +6 -6
  211. package/dist/esm/function/audioData2AVFrame.js.map +1 -1
  212. package/dist/esm/function/avPCMBuffer2AVFrame.d.ts +2 -2
  213. package/dist/esm/function/avPCMBuffer2AVFrame.js +9 -9
  214. package/dist/esm/function/avPCMBuffer2AVFrame.js.map +1 -1
  215. package/dist/esm/function/avframe2AudioData.d.ts +1 -1
  216. package/dist/esm/function/avframe2AudioData.js +6 -8
  217. package/dist/esm/function/avframe2AudioData.js.map +1 -1
  218. package/dist/esm/function/avframe2VideoFrame.d.ts +3 -3
  219. package/dist/esm/function/avframe2VideoFrame.js +14 -79
  220. package/dist/esm/function/avframe2VideoFrame.js.map +1 -1
  221. package/dist/esm/function/avpacket2EncodedAudioChunk.d.ts +1 -1
  222. package/dist/esm/function/avpacket2EncodedAudioChunk.js +5 -7
  223. package/dist/esm/function/avpacket2EncodedAudioChunk.js.map +1 -1
  224. package/dist/esm/function/avpacket2EncodedVideoChunk.d.ts +1 -1
  225. package/dist/esm/function/avpacket2EncodedVideoChunk.js +5 -7
  226. package/dist/esm/function/avpacket2EncodedVideoChunk.js.map +1 -1
  227. package/dist/esm/function/compileResource.d.ts +1 -1
  228. package/dist/esm/function/compileResource.js +2 -4
  229. package/dist/esm/function/compileResource.js.map +1 -1
  230. package/dist/esm/function/constant/webcodecs.d.ts +5 -0
  231. package/dist/esm/function/constant/webcodecs.js +51 -0
  232. package/dist/esm/function/constant/webcodecs.js.map +1 -0
  233. package/dist/esm/function/encodedAudioChunk2AVPacket.d.ts +1 -1
  234. package/dist/esm/function/encodedAudioChunk2AVPacket.js +6 -6
  235. package/dist/esm/function/encodedAudioChunk2AVPacket.js.map +1 -1
  236. package/dist/esm/function/encodedVideoChunk2AVPacket.d.ts +1 -1
  237. package/dist/esm/function/encodedVideoChunk2AVPacket.js +7 -7
  238. package/dist/esm/function/encodedVideoChunk2AVPacket.js.map +1 -1
  239. package/dist/esm/function/getAudioCodec.d.ts +1 -1
  240. package/dist/esm/function/getAudioCodec.js +2 -2
  241. package/dist/esm/function/getAudioCodec.js.map +1 -1
  242. package/dist/esm/function/getAudioMimeType.d.ts +2 -0
  243. package/dist/esm/function/getAudioMimeType.js +12 -0
  244. package/dist/esm/function/getAudioMimeType.js.map +1 -0
  245. package/dist/esm/function/getHardwarePreference.js +1 -1
  246. package/dist/esm/function/getHardwarePreference.js.map +1 -1
  247. package/dist/esm/function/getVideoCodec.d.ts +1 -1
  248. package/dist/esm/function/getVideoCodec.js +11 -13
  249. package/dist/esm/function/getVideoCodec.js.map +1 -1
  250. package/dist/esm/function/getVideoMimeType.d.ts +2 -0
  251. package/dist/esm/function/getVideoMimeType.js +8 -0
  252. package/dist/esm/function/getVideoMimeType.js.map +1 -0
  253. package/dist/esm/function/getWasmUrl.d.ts +1 -1
  254. package/dist/esm/function/getWasmUrl.js +2 -2
  255. package/dist/esm/function/getWasmUrl.js.map +1 -1
  256. package/dist/esm/function/hasAlphaChannel.d.ts +1 -1
  257. package/dist/esm/function/hasAlphaChannel.js +2 -2
  258. package/dist/esm/function/hasAlphaChannel.js.map +1 -1
  259. package/dist/esm/function/isHdr.d.ts +1 -1
  260. package/dist/esm/function/isHdr.js +2 -2
  261. package/dist/esm/function/isHdr.js.map +1 -1
  262. package/dist/esm/function/videoFrame2AVFrame.d.ts +6 -6
  263. package/dist/esm/function/videoFrame2AVFrame.js +13 -74
  264. package/dist/esm/function/videoFrame2AVFrame.js.map +1 -1
  265. package/dist/esm/implement/AVFramePoolImpl.d.ts +3 -4
  266. package/dist/esm/implement/AVFramePoolImpl.js +5 -7
  267. package/dist/esm/implement/AVFramePoolImpl.js.map +1 -1
  268. package/dist/esm/implement/AVPCMBufferPoolImpl.d.ts +3 -4
  269. package/dist/esm/implement/AVPCMBufferPoolImpl.js +4 -6
  270. package/dist/esm/implement/AVPCMBufferPoolImpl.js.map +1 -1
  271. package/dist/esm/implement/AVPacketPoolImpl.d.ts +3 -4
  272. package/dist/esm/implement/AVPacketPoolImpl.js +5 -7
  273. package/dist/esm/implement/AVPacketPoolImpl.js.map +1 -1
  274. package/dist/esm/index.d.ts +54 -0
  275. package/dist/esm/index.js +98 -0
  276. package/dist/esm/index.js.map +1 -0
  277. package/dist/esm/internal.d.ts +26 -0
  278. package/dist/esm/internal.js +52 -0
  279. package/dist/esm/internal.js.map +1 -0
  280. package/dist/esm/pixelFormatDescriptor.d.ts +1 -1
  281. package/dist/esm/pixelFormatDescriptor.js +2 -0
  282. package/dist/esm/pixelFormatDescriptor.js.map +1 -1
  283. package/dist/esm/pixfmt.d.ts +9 -1
  284. package/dist/esm/pixfmt.js.map +1 -1
  285. package/dist/esm/sampleFormatDescriptor.d.ts +1 -1
  286. package/dist/esm/sampleFormatDescriptor.js.map +1 -1
  287. package/dist/esm/stringEnum.d.ts +5 -5
  288. package/dist/esm/stringEnum.js +4 -1
  289. package/dist/esm/stringEnum.js.map +1 -1
  290. package/dist/esm/struct/audiosample.d.ts +1 -1
  291. package/dist/esm/struct/audiosample.js +2 -2
  292. package/dist/esm/struct/audiosample.js.map +1 -1
  293. package/dist/esm/struct/avbuffer.d.ts +1 -1
  294. package/dist/esm/struct/avbuffer.js +4 -4
  295. package/dist/esm/struct/avbuffer.js.map +1 -1
  296. package/dist/esm/struct/avcodecparameters.d.ts +9 -9
  297. package/dist/esm/struct/avcodecparameters.js +14 -16
  298. package/dist/esm/struct/avcodecparameters.js.map +1 -1
  299. package/dist/esm/struct/avdict.js +2 -2
  300. package/dist/esm/struct/avdict.js.map +1 -1
  301. package/dist/esm/struct/avframe.d.ts +12 -12
  302. package/dist/esm/struct/avframe.js +18 -22
  303. package/dist/esm/struct/avframe.js.map +1 -1
  304. package/dist/esm/struct/avpacket.d.ts +4 -4
  305. package/dist/esm/struct/avpacket.js +7 -9
  306. package/dist/esm/struct/avpacket.js.map +1 -1
  307. package/dist/esm/struct/avpcmbuffer.d.ts +1 -1
  308. package/dist/esm/struct/avpcmbuffer.js +2 -2
  309. package/dist/esm/struct/avpcmbuffer.js.map +1 -1
  310. package/dist/esm/struct/avsubtitle.d.ts +2 -2
  311. package/dist/esm/struct/encryption.js +2 -2
  312. package/dist/esm/struct/encryption.js.map +1 -1
  313. package/dist/esm/struct/rational.d.ts +1 -1
  314. package/dist/esm/struct/rational.js +4 -4
  315. package/dist/esm/struct/rational.js.map +1 -1
  316. package/dist/esm/util/amf.d.ts +1 -4
  317. package/dist/esm/util/amf.js +1 -5
  318. package/dist/esm/util/amf.js.map +1 -1
  319. package/dist/esm/util/av1syntax.d.ts +1 -1
  320. package/dist/esm/util/av1syntax.js.map +1 -1
  321. package/dist/esm/util/avbuffer.d.ts +2 -2
  322. package/dist/esm/util/avbuffer.js +7 -15
  323. package/dist/esm/util/avbuffer.js.map +1 -1
  324. package/dist/esm/util/avdict.d.ts +2 -2
  325. package/dist/esm/util/avdict.js +12 -16
  326. package/dist/esm/util/avdict.js.map +1 -1
  327. package/dist/esm/util/avframe.d.ts +2 -2
  328. package/dist/esm/util/avframe.js +22 -24
  329. package/dist/esm/util/avframe.js.map +1 -1
  330. package/dist/esm/util/avpacket.d.ts +3 -3
  331. package/dist/esm/util/avpacket.js +11 -13
  332. package/dist/esm/util/avpacket.js.map +1 -1
  333. package/dist/esm/util/channel.d.ts +1 -1
  334. package/dist/esm/util/channel.js +6 -6
  335. package/dist/esm/util/channel.js.map +1 -1
  336. package/dist/esm/util/codecparameters.d.ts +3 -1
  337. package/dist/esm/util/codecparameters.js +16 -12
  338. package/dist/esm/util/codecparameters.js.map +1 -1
  339. package/dist/esm/util/common.js.map +1 -1
  340. package/dist/esm/util/encryption.d.ts +2 -2
  341. package/dist/esm/util/encryption.js +1 -3
  342. package/dist/esm/util/encryption.js.map +1 -1
  343. package/dist/esm/util/expgolomb.d.ts +1 -2
  344. package/dist/esm/util/expgolomb.js.map +1 -1
  345. package/dist/esm/util/intread.js +1 -1
  346. package/dist/esm/util/intread.js.map +1 -1
  347. package/dist/esm/util/intwrite.js +1 -1
  348. package/dist/esm/util/intwrite.js.map +1 -1
  349. package/dist/esm/util/mem.js +7 -7
  350. package/dist/esm/util/mem.js.map +1 -1
  351. package/dist/esm/util/nalu.d.ts +1 -1
  352. package/dist/esm/util/nalu.js +3 -5
  353. package/dist/esm/util/nalu.js.map +1 -1
  354. package/dist/esm/util/ntp.js.map +1 -1
  355. package/dist/esm/util/pcm.d.ts +1 -1
  356. package/dist/esm/util/pcm.js.map +1 -1
  357. package/dist/esm/util/pixel.d.ts +1 -1
  358. package/dist/esm/util/pixel.js +8 -10
  359. package/dist/esm/util/pixel.js.map +1 -1
  360. package/dist/esm/util/rational.d.ts +10 -10
  361. package/dist/esm/util/rational.js +4 -4
  362. package/dist/esm/util/rational.js.map +1 -1
  363. package/dist/esm/util/sample.d.ts +1 -1
  364. package/dist/esm/util/sample.js +7 -7
  365. package/dist/esm/util/sample.js.map +1 -1
  366. package/dist/esm/util/serialize.d.ts +9 -9
  367. package/dist/esm/util/serialize.js +6 -6
  368. package/dist/esm/util/serialize.js.map +1 -1
  369. package/package.json +23 -390
  370. package/src/AVStream.ts +677 -0
  371. package/src/audiosamplefmt.ts +302 -0
  372. package/src/avformat.ts +96 -0
  373. package/src/codec.ts +1016 -0
  374. package/src/codecs/aac.ts +429 -0
  375. package/src/codecs/ac3.ts +309 -0
  376. package/src/codecs/av1.ts +503 -0
  377. package/src/codecs/dts.ts +100 -0
  378. package/src/codecs/flac.ts +118 -0
  379. package/src/codecs/h264.ts +1013 -0
  380. package/src/codecs/hevc.ts +1049 -0
  381. package/src/codecs/mp3.ts +172 -0
  382. package/src/codecs/mpeg4.ts +37 -0
  383. package/src/codecs/mpegvideo.ts +49 -0
  384. package/src/codecs/opus.ts +148 -0
  385. package/src/codecs/ttml.ts +158 -0
  386. package/src/codecs/vp8.ts +91 -0
  387. package/src/codecs/vp9.ts +213 -0
  388. package/src/codecs/vvc.ts +1086 -0
  389. package/src/constant.ts +72 -0
  390. package/src/enum.ts +47 -0
  391. package/src/error.ts +45 -0
  392. package/src/function/analyzeAVFormat.ts +94 -0
  393. package/src/function/analyzeUrlIOLoader.ts +166 -0
  394. package/src/function/audioData2AVFrame.ts +82 -0
  395. package/src/function/avPCMBuffer2AVFrame.ts +111 -0
  396. package/src/function/avframe2AudioData.ts +131 -0
  397. package/src/function/avframe2VideoFrame.ts +88 -0
  398. package/src/function/avpacket2EncodedAudioChunk.ts +39 -0
  399. package/src/function/avpacket2EncodedVideoChunk.ts +39 -0
  400. package/src/function/compileResource.ts +57 -0
  401. package/src/function/constant/webcodecs.ts +81 -0
  402. package/src/function/encodedAudioChunk2AVPacket.ts +62 -0
  403. package/src/function/encodedVideoChunk2AVPacket.ts +86 -0
  404. package/src/function/getAudioCodec.ts +45 -0
  405. package/src/function/getAudioMimeType.ts +44 -0
  406. package/src/function/getHardwarePreference.ts +45 -0
  407. package/src/function/getVideoCodec.ts +244 -0
  408. package/src/function/getVideoMimeType.ts +35 -0
  409. package/src/function/getWasmUrl.ts +190 -0
  410. package/src/function/hasAlphaChannel.ts +37 -0
  411. package/src/function/isHdr.ts +44 -0
  412. package/src/function/videoFrame2AVFrame.ts +95 -0
  413. package/src/implement/AVFramePoolImpl.ts +83 -0
  414. package/src/implement/AVPCMBufferPoolImpl.ts +79 -0
  415. package/src/implement/AVPacketPoolImpl.ts +82 -0
  416. package/src/index.ts +264 -0
  417. package/src/internal.ts +71 -0
  418. package/src/pixelFormatDescriptor.ts +819 -0
  419. package/src/pixfmt.ts +1400 -0
  420. package/src/sampleFormatDescriptor.ts +57 -0
  421. package/src/stringEnum.ts +366 -0
  422. package/src/struct/audiosample.ts +95 -0
  423. package/src/struct/avbuffer.ts +139 -0
  424. package/src/struct/avcodecparameters.ts +243 -0
  425. package/src/struct/avdict.ts +44 -0
  426. package/src/struct/avframe.ts +663 -0
  427. package/src/struct/avpacket.ts +178 -0
  428. package/src/struct/avpcmbuffer.ts +77 -0
  429. package/src/struct/avsubtitle.ts +59 -0
  430. package/src/struct/encryption.ts +180 -0
  431. package/src/struct/rational.ts +43 -0
  432. package/src/util/amf.ts +178 -0
  433. package/src/util/av1syntax.ts +112 -0
  434. package/src/util/avbuffer.ts +294 -0
  435. package/src/util/avdict.ts +171 -0
  436. package/src/util/avframe.ts +520 -0
  437. package/src/util/avpacket.ts +313 -0
  438. package/src/util/channel.ts +66 -0
  439. package/src/util/codecparameters.ts +148 -0
  440. package/src/util/common.ts +42 -0
  441. package/src/util/encryption.ts +154 -0
  442. package/src/util/expgolomb.ts +170 -0
  443. package/src/util/intread.ts +60 -0
  444. package/src/util/intwrite.ts +71 -0
  445. package/src/util/mem.ts +60 -0
  446. package/src/util/nalu.ts +297 -0
  447. package/src/util/ntp.ts +32 -0
  448. package/src/util/pcm.ts +161 -0
  449. package/src/util/pixel.ts +381 -0
  450. package/src/util/rational.ts +152 -0
  451. package/src/util/sample.ts +136 -0
  452. package/src/util/serialize.ts +268 -0
  453. package/dist/cjs/AVStream.d.ts +0 -577
  454. package/dist/cjs/audiosamplefmt.d.ts +0 -248
  455. package/dist/cjs/avformat.d.ts +0 -66
  456. package/dist/cjs/codec.d.ts +0 -927
  457. package/dist/cjs/codecs/aac.d.ts +0 -121
  458. package/dist/cjs/codecs/ac3.d.ts +0 -72
  459. package/dist/cjs/codecs/av1.d.ts +0 -75
  460. package/dist/cjs/codecs/dts.d.ts +0 -17
  461. package/dist/cjs/codecs/flac.d.ts +0 -46
  462. package/dist/cjs/codecs/h264.d.ts +0 -188
  463. package/dist/cjs/codecs/hevc.d.ts +0 -220
  464. package/dist/cjs/codecs/mp3.d.ts +0 -17
  465. package/dist/cjs/codecs/mpeg4.d.ts +0 -7
  466. package/dist/cjs/codecs/mpegvideo.d.ts +0 -7
  467. package/dist/cjs/codecs/opus.d.ts +0 -26
  468. package/dist/cjs/codecs/ttml.d.ts +0 -9
  469. package/dist/cjs/codecs/ttml.js +0 -87
  470. package/dist/cjs/codecs/vp8.d.ts +0 -31
  471. package/dist/cjs/codecs/vp9.d.ts +0 -45
  472. package/dist/cjs/codecs/vvc.d.ts +0 -235
  473. package/dist/cjs/constant.d.ts +0 -36
  474. package/dist/cjs/enum.d.ts +0 -3285
  475. package/dist/cjs/error.d.ts +0 -10
  476. package/dist/cjs/function/analyzeAVFormat.d.ts +0 -3
  477. package/dist/cjs/function/analyzeUrlIOLoader.d.ts +0 -7
  478. package/dist/cjs/function/analyzeUrlIOLoader.js +0 -101
  479. package/dist/cjs/function/audioData2AVFrame.d.ts +0 -2
  480. package/dist/cjs/function/avPCMBuffer2AVFrame.d.ts +0 -3
  481. package/dist/cjs/function/avframe2AudioData.d.ts +0 -2
  482. package/dist/cjs/function/avframe2VideoFrame.d.ts +0 -5
  483. package/dist/cjs/function/avframe2VideoFrame.js +0 -146
  484. package/dist/cjs/function/avpacket2EncodedAudioChunk.d.ts +0 -2
  485. package/dist/cjs/function/avpacket2EncodedVideoChunk.d.ts +0 -2
  486. package/dist/cjs/function/compileResource.d.ts +0 -2
  487. package/dist/cjs/function/compileResource.js +0 -53
  488. package/dist/cjs/function/encodedAudioChunk2AVPacket.d.ts +0 -2
  489. package/dist/cjs/function/encodedAudioChunk2AVPacket.js +0 -23
  490. package/dist/cjs/function/encodedVideoChunk2AVPacket.d.ts +0 -7
  491. package/dist/cjs/function/getAudioCodec.d.ts +0 -2
  492. package/dist/cjs/function/getHardwarePreference.d.ts +0 -1
  493. package/dist/cjs/function/getHardwarePreference.js +0 -16
  494. package/dist/cjs/function/getVideoCodec.d.ts +0 -2
  495. package/dist/cjs/function/getWasmUrl.d.ts +0 -2
  496. package/dist/cjs/function/hasAlphaChannel.d.ts +0 -2
  497. package/dist/cjs/function/isHdr.d.ts +0 -2
  498. package/dist/cjs/function/videoFrame2AVFrame.d.ts +0 -7
  499. package/dist/cjs/function/videoFrame2AVFrame.js +0 -113
  500. package/dist/cjs/implement/AVFramePoolImpl.d.ts +0 -11
  501. package/dist/cjs/implement/AVFramePoolImpl.js +0 -59
  502. package/dist/cjs/implement/AVPCMBufferPoolImpl.d.ts +0 -11
  503. package/dist/cjs/implement/AVPCMBufferPoolImpl.js +0 -57
  504. package/dist/cjs/implement/AVPacketPoolImpl.d.ts +0 -11
  505. package/dist/cjs/implement/AVPacketPoolImpl.js +0 -60
  506. package/dist/cjs/pixelFormatDescriptor.d.ts +0 -100
  507. package/dist/cjs/pixfmt.d.ts +0 -1293
  508. package/dist/cjs/sampleFormatDescriptor.d.ts +0 -6
  509. package/dist/cjs/stringEnum.d.ts +0 -161
  510. package/dist/cjs/struct/audiosample.d.ts +0 -64
  511. package/dist/cjs/struct/avbuffer.d.ts +0 -85
  512. package/dist/cjs/struct/avcodecparameters.d.ts +0 -181
  513. package/dist/cjs/struct/avdict.d.ts +0 -17
  514. package/dist/cjs/struct/avframe.d.ts +0 -559
  515. package/dist/cjs/struct/avpacket.d.ts +0 -124
  516. package/dist/cjs/struct/avpcmbuffer.d.ts +0 -49
  517. package/dist/cjs/struct/avsubtitle.d.ts +0 -30
  518. package/dist/cjs/struct/encryption.d.ts +0 -137
  519. package/dist/cjs/struct/rational.d.ts +0 -15
  520. package/dist/cjs/struct/rational.js +0 -43
  521. package/dist/cjs/util/amf.d.ts +0 -10
  522. package/dist/cjs/util/av1syntax.d.ts +0 -9
  523. package/dist/cjs/util/avbuffer.d.ts +0 -18
  524. package/dist/cjs/util/avbuffer.js +0 -153
  525. package/dist/cjs/util/avdict.d.ts +0 -9
  526. package/dist/cjs/util/avdict.js +0 -111
  527. package/dist/cjs/util/avframe.d.ts +0 -21
  528. package/dist/cjs/util/avpacket.d.ts +0 -24
  529. package/dist/cjs/util/channel.d.ts +0 -5
  530. package/dist/cjs/util/codecparameters.d.ts +0 -4
  531. package/dist/cjs/util/codecparameters.js +0 -70
  532. package/dist/cjs/util/common.d.ts +0 -3
  533. package/dist/cjs/util/crypto.d.ts +0 -1
  534. package/dist/cjs/util/crypto.js +0 -8
  535. package/dist/cjs/util/crypto.js.map +0 -1
  536. package/dist/cjs/util/encryption.d.ts +0 -6
  537. package/dist/cjs/util/expgolomb.d.ts +0 -26
  538. package/dist/cjs/util/intread.d.ts +0 -9
  539. package/dist/cjs/util/intwrite.d.ts +0 -9
  540. package/dist/cjs/util/mem.d.ts +0 -5
  541. package/dist/cjs/util/mem.js +0 -54
  542. package/dist/cjs/util/nalu.d.ts +0 -32
  543. package/dist/cjs/util/ntp.d.ts +0 -1
  544. package/dist/cjs/util/pcm.d.ts +0 -4
  545. package/dist/cjs/util/pixel.d.ts +0 -11
  546. package/dist/cjs/util/rational.d.ts +0 -58
  547. package/dist/cjs/util/sample.d.ts +0 -7
  548. package/dist/cjs/util/serialize.d.ts +0 -63
  549. package/dist/esm/util/crypto.d.ts +0 -1
  550. package/dist/esm/util/crypto.js +0 -4
  551. package/dist/esm/util/crypto.js.map +0 -1
  552. /package/dist/cjs/{audiosamplefmt.js → audiosamplefmt.cjs} +0 -0
  553. /package/dist/cjs/{avformat.js → avformat.cjs} +0 -0
  554. /package/dist/cjs/{codec.js → codec.cjs} +0 -0
  555. /package/dist/cjs/{error.js → error.cjs} +0 -0
  556. /package/dist/cjs/function/{analyzeAVFormat.js → analyzeAVFormat.cjs} +0 -0
  557. /package/dist/cjs/{pixfmt.js → pixfmt.cjs} +0 -0
  558. /package/dist/cjs/{sampleFormatDescriptor.js → sampleFormatDescriptor.cjs} +0 -0
  559. /package/dist/cjs/struct/{avsubtitle.js → avsubtitle.cjs} +0 -0
  560. /package/dist/cjs/util/{av1syntax.js → av1syntax.cjs} +0 -0
  561. /package/dist/cjs/util/{common.js → common.cjs} +0 -0
  562. /package/dist/cjs/util/{expgolomb.js → expgolomb.cjs} +0 -0
  563. /package/dist/cjs/util/{ntp.js → ntp.cjs} +0 -0
  564. /package/dist/cjs/util/{pcm.js → pcm.cjs} +0 -0
@@ -0,0 +1,57 @@
1
+ import { AVSampleFormat } from './audiosamplefmt'
2
+
3
+ export interface AVSampleFormatDescriptor {
4
+ bits: number
5
+ planar: boolean
6
+ }
7
+
8
+ export const AVSampleFormatDescriptors: Partial<Record<AVSampleFormat, AVSampleFormatDescriptor>> = {
9
+ [AVSampleFormat.AV_SAMPLE_FMT_U8]: {
10
+ bits: 8,
11
+ planar: false
12
+ },
13
+ [AVSampleFormat.AV_SAMPLE_FMT_S16]: {
14
+ bits: 16,
15
+ planar: false
16
+ },
17
+ [AVSampleFormat.AV_SAMPLE_FMT_S32]: {
18
+ bits: 32,
19
+ planar: false
20
+ },
21
+ [AVSampleFormat.AV_SAMPLE_FMT_S64]: {
22
+ bits: 64,
23
+ planar: false
24
+ },
25
+ [AVSampleFormat.AV_SAMPLE_FMT_FLT]: {
26
+ bits: 32,
27
+ planar: false
28
+ },
29
+ [AVSampleFormat.AV_SAMPLE_FMT_DBL]: {
30
+ bits: 64,
31
+ planar: false
32
+ },
33
+ [AVSampleFormat.AV_SAMPLE_FMT_U8P]: {
34
+ bits: 8,
35
+ planar: true
36
+ },
37
+ [AVSampleFormat.AV_SAMPLE_FMT_S16P]: {
38
+ bits: 16,
39
+ planar: true
40
+ },
41
+ [AVSampleFormat.AV_SAMPLE_FMT_S32P]: {
42
+ bits: 32,
43
+ planar: true
44
+ },
45
+ [AVSampleFormat.AV_SAMPLE_FMT_S64P]: {
46
+ bits: 64,
47
+ planar: true
48
+ },
49
+ [AVSampleFormat.AV_SAMPLE_FMT_FLTP]: {
50
+ bits: 32,
51
+ planar: true
52
+ },
53
+ [AVSampleFormat.AV_SAMPLE_FMT_DBLP]: {
54
+ bits: 64,
55
+ planar: true
56
+ }
57
+ }
@@ -0,0 +1,366 @@
1
+ import { AVFormat, IOType } from './avformat'
2
+ import { AVCodecID, AVMediaType } from './codec'
3
+ import { AVColorPrimaries, AVColorRange, AVColorSpace, AVColorTransferCharacteristic, AVPixelFormat } from './pixfmt'
4
+ import { AVChannelLayout, AVSampleFormat } from './audiosamplefmt'
5
+ import { AVDisposition, AVStreamGroupParamsType } from './AVStream'
6
+
7
+ export const CodecId2MimeType = {
8
+ [AVCodecID.AV_CODEC_ID_MP3]: 'mp3',
9
+ [AVCodecID.AV_CODEC_ID_AAC]: 'mp4a.40',
10
+ [AVCodecID.AV_CODEC_ID_VORBIS]: 'vorbis',
11
+ [AVCodecID.AV_CODEC_ID_FLAC]: 'flac',
12
+ [AVCodecID.AV_CODEC_ID_OPUS]: 'opus',
13
+ [AVCodecID.AV_CODEC_ID_PCM_MULAW]: 'ulaw',
14
+ [AVCodecID.AV_CODEC_ID_PCM_ALAW]: 'alaw',
15
+ [AVCodecID.AV_CODEC_ID_AC3]: 'ac-3',
16
+ [AVCodecID.AV_CODEC_ID_EAC3]: 'ec-3',
17
+ [AVCodecID.AV_CODEC_ID_DTS]: 'dtsc',
18
+
19
+ [AVCodecID.AV_CODEC_ID_PCM_U8]: 'pcm-u8',
20
+ [AVCodecID.AV_CODEC_ID_PCM_S8]: 'pcm-s8',
21
+ [AVCodecID.AV_CODEC_ID_PCM_S16LE]: 'pcm-s16',
22
+ [AVCodecID.AV_CODEC_ID_PCM_S16BE]: 'pcm-s16be',
23
+ [AVCodecID.AV_CODEC_ID_PCM_S24LE]: 'pcm-s24',
24
+ [AVCodecID.AV_CODEC_ID_PCM_S24BE]: 'pcm-s24be',
25
+ [AVCodecID.AV_CODEC_ID_PCM_S32LE]: 'pcm-s32',
26
+ [AVCodecID.AV_CODEC_ID_PCM_S32BE]: 'pcm-s32be',
27
+ [AVCodecID.AV_CODEC_ID_PCM_F32LE]: 'pcm-f32',
28
+ [AVCodecID.AV_CODEC_ID_PCM_F32BE]: 'pcm-f32be',
29
+ [AVCodecID.AV_CODEC_ID_PCM_F64LE]: 'pcm-f64',
30
+ [AVCodecID.AV_CODEC_ID_PCM_F64BE]: 'pcm-f64be',
31
+
32
+ [AVCodecID.AV_CODEC_ID_AV1]: 'av01',
33
+ [AVCodecID.AV_CODEC_ID_H264]: 'avc1',
34
+ [AVCodecID.AV_CODEC_ID_HEVC]: 'hev1',
35
+ [AVCodecID.AV_CODEC_ID_VVC]: 'vvc1',
36
+ [AVCodecID.AV_CODEC_ID_VP8]: 'vp8',
37
+ [AVCodecID.AV_CODEC_ID_VP9]: 'vp09',
38
+ [AVCodecID.AV_CODEC_ID_MPEG4]: 'mp4v'
39
+ }
40
+
41
+ export const Ext2Format: Record<string, AVFormat> = {
42
+ 'flv': AVFormat.FLV,
43
+ 'mp4': AVFormat.MP4,
44
+ 'm4s': AVFormat.MP4,
45
+ 'mov': AVFormat.MOV,
46
+ 'ts': AVFormat.MPEGTS,
47
+ 'mts': AVFormat.MPEGTS,
48
+ 'm2ts': AVFormat.MPEGTS,
49
+ 'ivf': AVFormat.IVF,
50
+ 'opus': AVFormat.OGG,
51
+ 'oggs': AVFormat.OGG,
52
+ 'ogg': AVFormat.OGG,
53
+ 'm3u8': AVFormat.MPEGTS,
54
+ 'm3u': AVFormat.MPEGTS,
55
+ 'mpd': AVFormat.MP4,
56
+ 'mp3': AVFormat.MP3,
57
+ 'mkv': AVFormat.MATROSKA,
58
+ 'mka': AVFormat.MATROSKA,
59
+ 'webm': AVFormat.WEBM,
60
+ 'aac': AVFormat.AAC,
61
+ 'flac': AVFormat.FLAC,
62
+ 'wav': AVFormat.WAV,
63
+ 'srt': AVFormat.SUBRIP,
64
+ 'vtt': AVFormat.WEBVTT,
65
+ 'ssa': AVFormat.ASS,
66
+ 'ass': AVFormat.ASS,
67
+ 'xml': AVFormat.TTML,
68
+ 'ttml': AVFormat.TTML,
69
+ 'h264': AVFormat.H264,
70
+ '264': AVFormat.H264,
71
+ 'avc': AVFormat.H264,
72
+ 'h265': AVFormat.HEVC,
73
+ '265': AVFormat.HEVC,
74
+ 'hevc': AVFormat.HEVC,
75
+ 'h266': AVFormat.VVC,
76
+ '266': AVFormat.VVC,
77
+ 'vvc': AVFormat.VVC,
78
+ 'mpeg': AVFormat.MPEGPS,
79
+ 'mpg': AVFormat.MPEGPS,
80
+ 'rtsp': AVFormat.RTSP,
81
+ 'rtmp': AVFormat.RTMP,
82
+ 'avi': AVFormat.AVI,
83
+ 'avif': AVFormat.AVIF,
84
+ 'heic': AVFormat.HEIF
85
+ }
86
+
87
+ export const Ext2IOLoader: Record<string, IOType> = {
88
+ 'm3u8': IOType.HLS,
89
+ 'm3u': IOType.HLS,
90
+ 'mpd': IOType.DASH
91
+ }
92
+
93
+ export const VideoCodecString2CodecId = {
94
+ 'copy': AVCodecID.AV_CODEC_ID_NONE,
95
+ 'h264': AVCodecID.AV_CODEC_ID_H264,
96
+ 'h261': AVCodecID.AV_CODEC_ID_H261,
97
+ 'h263': AVCodecID.AV_CODEC_ID_H263,
98
+ 'h263i': AVCodecID.AV_CODEC_ID_H263I,
99
+ 'h263p': AVCodecID.AV_CODEC_ID_H263P,
100
+ 'mjpeg': AVCodecID.AV_CODEC_ID_MJPEG,
101
+ 'wmv1': AVCodecID.AV_CODEC_ID_WMV1,
102
+ 'wmv2': AVCodecID.AV_CODEC_ID_WMV2,
103
+ 'wmv3': AVCodecID.AV_CODEC_ID_WMV3,
104
+ 'avc': AVCodecID.AV_CODEC_ID_H264,
105
+ 'hevc': AVCodecID.AV_CODEC_ID_HEVC,
106
+ 'h265': AVCodecID.AV_CODEC_ID_HEVC,
107
+ 'vvc': AVCodecID.AV_CODEC_ID_VVC,
108
+ 'h266': AVCodecID.AV_CODEC_ID_VVC,
109
+ 'av1': AVCodecID.AV_CODEC_ID_AV1,
110
+ 'vp9': AVCodecID.AV_CODEC_ID_VP9,
111
+ 'vp8': AVCodecID.AV_CODEC_ID_VP8,
112
+ 'mpeg4': AVCodecID.AV_CODEC_ID_MPEG4,
113
+ 'theora': AVCodecID.AV_CODEC_ID_THEORA,
114
+ 'mpeg2video': AVCodecID.AV_CODEC_ID_MPEG2VIDEO,
115
+ 'rv10': AVCodecID.AV_CODEC_ID_RV10,
116
+ 'rv20': AVCodecID.AV_CODEC_ID_RV20,
117
+ 'rv30': AVCodecID.AV_CODEC_ID_RV30,
118
+ 'rv40': AVCodecID.AV_CODEC_ID_RV40,
119
+ 'png': AVCodecID.AV_CODEC_ID_PNG,
120
+ 'bmp': AVCodecID.AV_CODEC_ID_BMP,
121
+ 'webp': AVCodecID.AV_CODEC_ID_WEBP,
122
+ 'tiff': AVCodecID.AV_CODEC_ID_TIFF,
123
+ 'gif': AVCodecID.AV_CODEC_ID_GIF
124
+ }
125
+
126
+ export const AudioCodecString2CodecId = {
127
+ 'copy': AVCodecID.AV_CODEC_ID_NONE,
128
+ 'aac': AVCodecID.AV_CODEC_ID_AAC,
129
+ 'ac3': AVCodecID.AV_CODEC_ID_AC3,
130
+ 'eac3': AVCodecID.AV_CODEC_ID_EAC3,
131
+ 'dts': AVCodecID.AV_CODEC_ID_DTS,
132
+ 'mp3': AVCodecID.AV_CODEC_ID_MP3,
133
+ 'opus': AVCodecID.AV_CODEC_ID_OPUS,
134
+ 'flac': AVCodecID.AV_CODEC_ID_FLAC,
135
+ 'speex': AVCodecID.AV_CODEC_ID_SPEEX,
136
+ 'vorbis': AVCodecID.AV_CODEC_ID_VORBIS,
137
+ 'pcm_alaw': AVCodecID.AV_CODEC_ID_PCM_ALAW,
138
+ 'pcm_mulaw': AVCodecID.AV_CODEC_ID_PCM_MULAW,
139
+ 'wmav1': AVCodecID.AV_CODEC_ID_WMAV1,
140
+ 'wmav2': AVCodecID.AV_CODEC_ID_WMAV2,
141
+ 'cook': AVCodecID.AV_CODEC_ID_COOK,
142
+ 'sipr': AVCodecID.AV_CODEC_ID_SIPR,
143
+ 'ralf': AVCodecID.AV_CODEC_ID_RALF,
144
+ 'pcm_u8': AVCodecID.AV_CODEC_ID_PCM_U8,
145
+ 'pcm_s16le': AVCodecID.AV_CODEC_ID_PCM_S16LE,
146
+ 'pcm_s24le': AVCodecID.AV_CODEC_ID_PCM_S24LE,
147
+ 'pcm_s32le': AVCodecID.AV_CODEC_ID_PCM_S32LE,
148
+ 'pcm_s64le': AVCodecID.AV_CODEC_ID_PCM_S64LE,
149
+ 'pcm_f32le': AVCodecID.AV_CODEC_ID_PCM_F32LE,
150
+ 'pcm_f64le': AVCodecID.AV_CODEC_ID_PCM_F64LE
151
+ }
152
+
153
+ export const SubtitleCodecString2CodecId = {
154
+ 'webvtt': AVCodecID.AV_CODEC_ID_WEBVTT,
155
+ 'subrip': AVCodecID.AV_CODEC_ID_SUBRIP,
156
+ 'ass': AVCodecID.AV_CODEC_ID_ASS,
157
+ 'ttml': AVCodecID.AV_CODEC_ID_TTML,
158
+ 'mov_text': AVCodecID.AV_CODEC_ID_MOV_TEXT,
159
+ 'hdmv_pgs': AVCodecID.AV_CODEC_ID_HDMV_PGS_SUBTITLE,
160
+ 'hdmv_text': AVCodecID.AV_CODEC_ID_HDMV_TEXT_SUBTITLE,
161
+ 'dvd': AVCodecID.AV_CODEC_ID_DVD_SUBTITLE,
162
+ 'dvb': AVCodecID.AV_CODEC_ID_DVB_SUBTITLE,
163
+ 'eia_608': AVCodecID.AV_CODEC_ID_EIA_608
164
+ }
165
+
166
+ export const DataCodecString2CodecId = {
167
+ 'bin_data': AVCodecID.AV_CODEC_ID_BIN_DATA
168
+ }
169
+
170
+ export const PixfmtString2AVPixelFormat = {
171
+ 'yuv420p': AVPixelFormat.AV_PIX_FMT_YUV420P,
172
+ 'yuv422p': AVPixelFormat.AV_PIX_FMT_YUV422P,
173
+ 'yuv444p': AVPixelFormat.AV_PIX_FMT_YUV444P,
174
+ 'yuva420p': AVPixelFormat.AV_PIX_FMT_YUVA420P,
175
+ 'yuva422p': AVPixelFormat.AV_PIX_FMT_YUVA422P,
176
+ 'yuva444p': AVPixelFormat.AV_PIX_FMT_YUVA444P,
177
+ 'yuvj420p': AVPixelFormat.AV_PIX_FMT_YUVJ420P,
178
+ 'yuvj422p': AVPixelFormat.AV_PIX_FMT_YUVJ422P,
179
+ 'yuvj444p': AVPixelFormat.AV_PIX_FMT_YUVJ444P,
180
+
181
+ 'yuv420p10le': AVPixelFormat.AV_PIX_FMT_YUV420P10LE,
182
+ 'yuv422p10le': AVPixelFormat.AV_PIX_FMT_YUV422P10LE,
183
+ 'yuv444p10le': AVPixelFormat.AV_PIX_FMT_YUV444P10LE,
184
+ 'yuva420p10le': AVPixelFormat.AV_PIX_FMT_YUVA420P10LE,
185
+ 'yuva422p10le': AVPixelFormat.AV_PIX_FMT_YUVA422P10LE,
186
+ 'yuva444p10le': AVPixelFormat.AV_PIX_FMT_YUVA444P10LE,
187
+
188
+ 'yuv420p10be': AVPixelFormat.AV_PIX_FMT_YUV420P10BE,
189
+ 'yuv422p10be': AVPixelFormat.AV_PIX_FMT_YUV422P10BE,
190
+ 'yuv444p10be': AVPixelFormat.AV_PIX_FMT_YUV444P10BE,
191
+ 'yuva420p10be': AVPixelFormat.AV_PIX_FMT_YUVA420P10BE,
192
+ 'yuva422p10be': AVPixelFormat.AV_PIX_FMT_YUVA422P10BE,
193
+ 'yuva444p10be': AVPixelFormat.AV_PIX_FMT_YUVA444P10BE,
194
+ 'rgba': AVPixelFormat.AV_PIX_FMT_RGBA,
195
+ 'rgb24': AVPixelFormat.AV_PIX_FMT_RGB24,
196
+ 'bgr24': AVPixelFormat.AV_PIX_FMT_BGR24,
197
+ 'gray': AVPixelFormat.AV_PIX_FMT_GRAY8
198
+ }
199
+
200
+ export const SampleFmtString2SampleFormat = {
201
+ 'u8': AVSampleFormat.AV_SAMPLE_FMT_U8,
202
+ 'u8-planar': AVSampleFormat.AV_SAMPLE_FMT_U8P,
203
+ 's16': AVSampleFormat.AV_SAMPLE_FMT_S16,
204
+ 's16-planar': AVSampleFormat.AV_SAMPLE_FMT_S16P,
205
+ 's32': AVSampleFormat.AV_SAMPLE_FMT_S32,
206
+ 's32-planar': AVSampleFormat.AV_SAMPLE_FMT_S32P,
207
+ 's64': AVSampleFormat.AV_SAMPLE_FMT_S64,
208
+ 's64-planar': AVSampleFormat.AV_SAMPLE_FMT_S64P,
209
+ 'float': AVSampleFormat.AV_SAMPLE_FMT_FLT,
210
+ 'float-planar': AVSampleFormat.AV_SAMPLE_FMT_FLTP,
211
+ 'double': AVSampleFormat.AV_SAMPLE_FMT_DBL,
212
+ 'double-planar': AVSampleFormat.AV_SAMPLE_FMT_DBLP
213
+ }
214
+
215
+ export const Format2AVFormat: Record<string, AVFormat> = {
216
+ 'flv': AVFormat.FLV,
217
+ 'isobmff': AVFormat.ISOBMFF,
218
+ 'mp4': AVFormat.MP4,
219
+ 'mov': AVFormat.MOV,
220
+ 'ts': AVFormat.MPEGTS,
221
+ 'mpegts': AVFormat.MPEGTS,
222
+ 'mpeg': AVFormat.MPEGPS,
223
+ 'ivf': AVFormat.IVF,
224
+ 'ogg': AVFormat.OGG,
225
+ 'opus': AVFormat.OGG,
226
+ 'm3u8': AVFormat.MPEGTS,
227
+ 'm3u': AVFormat.MPEGTS,
228
+ 'mpd': AVFormat.MP4,
229
+ 'mp3': AVFormat.MP3,
230
+ 'mkv': AVFormat.MATROSKA,
231
+ 'matroska': AVFormat.MATROSKA,
232
+ 'mka': AVFormat.MATROSKA,
233
+ 'webm': AVFormat.WEBM,
234
+ 'aac': AVFormat.AAC,
235
+ 'flac': AVFormat.FLAC,
236
+ 'wav': AVFormat.WAV,
237
+ 'raw_h264': AVFormat.H264,
238
+ 'raw_h265': AVFormat.HEVC,
239
+ 'raw_vvc': AVFormat.VVC,
240
+ 'rtsp': AVFormat.RTSP,
241
+ 'rtmp': AVFormat.RTMP,
242
+ 'avi': AVFormat.AVI,
243
+ 'h264': AVFormat.H264,
244
+ 'h265': AVFormat.HEVC,
245
+ 'h266': AVFormat.VVC
246
+ }
247
+
248
+ export const colorRange2AVColorRange: Record<string, AVColorRange> = {
249
+ 'tv': AVColorRange.AVCOL_RANGE_MPEG,
250
+ 'pc': AVColorRange.AVCOL_RANGE_JPEG
251
+ }
252
+
253
+ export const colorSpace2AVColorSpace: Record<string, AVColorSpace> = {
254
+ 'bt709': AVColorSpace.AVCOL_SPC_BT709,
255
+ 'fcc': AVColorSpace.AVCOL_SPC_FCC,
256
+ 'bt470bg': AVColorSpace.AVCOL_SPC_BT470BG,
257
+ 'smpte170m': AVColorSpace.AVCOL_SPC_SMPTE170M,
258
+ 'smpte240m': AVColorSpace.AVCOL_SPC_SMPTE240M,
259
+ 'ycgco': AVColorSpace.AVCOL_SPC_YCGCO,
260
+ 'gbr': AVColorSpace.AVCOL_SPC_RGB,
261
+ 'bt2020nc': AVColorSpace.AVCOL_SPC_BT2020_NCL
262
+ }
263
+
264
+ export const colorPrimaries2AVColorPrimaries: Record<string, AVColorPrimaries> = {
265
+ 'bt709': AVColorPrimaries.AVCOL_PRI_BT709,
266
+ 'bt470m': AVColorPrimaries.AVCOL_PRI_BT470M,
267
+ 'bt470bg': AVColorPrimaries.AVCOL_PRI_BT470BG,
268
+ 'smpte170m': AVColorPrimaries.AVCOL_PRI_SMPTE170M,
269
+ 'smpte240m': AVColorPrimaries.AVCOL_PRI_SMPTE240M,
270
+ 'smpte428': AVColorPrimaries.AVCOL_PRI_SMPTE428,
271
+ 'film': AVColorPrimaries.AVCOL_PRI_FILM,
272
+ 'smpte431': AVColorPrimaries.AVCOL_PRI_SMPTE431,
273
+ 'smpte432': AVColorPrimaries.AVCOL_PRI_SMPTE432,
274
+ 'bt2020': AVColorPrimaries.AVCOL_PRI_BT2020,
275
+ 'jedec-p22': AVColorPrimaries.AVCOL_PRI_JEDEC_P22,
276
+ 'ebu3213': AVColorPrimaries.AVCOL_PRI_EBU3213
277
+ }
278
+
279
+ export const colorTrc2AVColorTransferCharacteristic: Record<string, AVColorTransferCharacteristic> = {
280
+ 'bt709': AVColorTransferCharacteristic.AVCOL_TRC_BT709,
281
+ 'gamma22': AVColorTransferCharacteristic.AVCOL_TRC_GAMMA22,
282
+ 'gamma28': AVColorTransferCharacteristic.AVCOL_TRC_GAMMA28,
283
+ 'smpte170m': AVColorTransferCharacteristic.AVCOL_TRC_SMPTE170M,
284
+ 'smpte240m': AVColorTransferCharacteristic.AVCOL_TRC_SMPTE240M,
285
+ 'srgb': AVColorTransferCharacteristic.AVCOL_TRC_IEC61966_2_1,
286
+ 'xvycc': AVColorTransferCharacteristic.AVCOL_TRC_IEC61966_2_4,
287
+ 'bt2020-10': AVColorTransferCharacteristic.AVCOL_TRC_BT2020_10,
288
+ 'bt2020-12': AVColorTransferCharacteristic.AVCOL_TRC_BT2020_12,
289
+ 'smpte2084': AVColorTransferCharacteristic.AVCOL_TRC_SMPTEST2084,
290
+ 'arib-std-b67': AVColorTransferCharacteristic.AVCOL_TRC_ARIB_STD_B67
291
+ }
292
+
293
+ export const mediaType2AVMediaType: Record<string, AVMediaType> = {
294
+ 'Audio': AVMediaType.AVMEDIA_TYPE_AUDIO,
295
+ 'Video': AVMediaType.AVMEDIA_TYPE_VIDEO,
296
+ 'Subtitle': AVMediaType.AVMEDIA_TYPE_SUBTITLE,
297
+ 'Attachment': AVMediaType.AVMEDIA_TYPE_ATTACHMENT,
298
+ 'Data': AVMediaType.AVMEDIA_TYPE_DATA
299
+ }
300
+
301
+ export const streamGroup2ParamsType: Record<string, AVStreamGroupParamsType> = {
302
+ 'Tile Grid': AVStreamGroupParamsType.TILE_GRID,
303
+ 'Audio Element': AVStreamGroupParamsType.IAMF_AUDIO_ELEMENT,
304
+ 'Mix Presentation': AVStreamGroupParamsType.IAMF_MIX_PRESENTATION
305
+ }
306
+
307
+ export const disposition2AVDisposition: Record<string, AVDisposition> = {
308
+ 'default': AVDisposition.DEFAULT,
309
+ 'dub': AVDisposition.DUB,
310
+ 'original': AVDisposition.ORIGINAL,
311
+ 'comment': AVDisposition.COMMENT,
312
+ 'lyrics': AVDisposition.LYRICS,
313
+ 'karaoke': AVDisposition.KARAOKE,
314
+ 'forced': AVDisposition.FORCED,
315
+ 'hearing impaired': AVDisposition.HEARING_IMPAIRED,
316
+ 'visual impaired': AVDisposition.VISUAL_IMPAIRED,
317
+ 'clean effects': AVDisposition.CLEAN_EFFECTS,
318
+ 'attached pic': AVDisposition.ATTACHED_PIC,
319
+ 'timed thumbnails': AVDisposition.TIMED_THUMBNAILS,
320
+ 'captions': AVDisposition.CAPTIONS,
321
+ 'descriptions': AVDisposition.DESCRIPTIONS,
322
+ 'metadata': AVDisposition.METADATA,
323
+ 'dependent': AVDisposition.DEPENDENT,
324
+ 'still image': AVDisposition.STILL_IMAGE,
325
+ 'thumbnail': AVDisposition.THUMBNAIL
326
+ }
327
+
328
+ export const layoutName2AVChannelLayout: Record<string, AVChannelLayout> = {
329
+ 'mono': AVChannelLayout.AV_CHANNEL_LAYOUT_MONO,
330
+ 'stereo': AVChannelLayout.AV_CHANNEL_LAYOUT_STEREO,
331
+ '2.1': AVChannelLayout.AV_CHANNEL_LAYOUT_2POINT1,
332
+ '3.0': AVChannelLayout.AV_CHANNEL_LAYOUT_SURROUND,
333
+ '3.0(back)': AVChannelLayout.AV_CHANNEL_LAYOUT_2_1,
334
+ '4.0': AVChannelLayout.AV_CHANNEL_LAYOUT_4POINT0,
335
+ 'quad': AVChannelLayout.AV_CHANNEL_LAYOUT_QUAD,
336
+ 'quad(side)': AVChannelLayout.AV_CHANNEL_LAYOUT_2_2,
337
+ '3.1': AVChannelLayout.AV_CHANNEL_LAYOUT_3POINT1,
338
+ '5.0': AVChannelLayout.AV_CHANNEL_LAYOUT_5POINT0_BACK,
339
+ '5.0(side)': AVChannelLayout.AV_CHANNEL_LAYOUT_5POINT0,
340
+ '4.1': AVChannelLayout.AV_CHANNEL_LAYOUT_4POINT1,
341
+ '5.1': AVChannelLayout.AV_CHANNEL_LAYOUT_5POINT1_BACK,
342
+ '5.1(side)': AVChannelLayout.AV_CHANNEL_LAYOUT_5POINT1,
343
+ '6.0': AVChannelLayout.AV_CHANNEL_LAYOUT_6POINT0,
344
+ '6.0(front)': AVChannelLayout.AV_CHANNEL_LAYOUT_6POINT0_FRONT,
345
+ '3.1.2': AVChannelLayout.AV_CHANNEL_LAYOUT_3POINT1POINT2,
346
+ 'hexagonal': AVChannelLayout.AV_CHANNEL_LAYOUT_HEXAGONAL,
347
+ '6.1': AVChannelLayout.AV_CHANNEL_LAYOUT_6POINT1,
348
+ '6.1(back)': AVChannelLayout.AV_CHANNEL_LAYOUT_6POINT1_BACK,
349
+ '6.1(front)': AVChannelLayout.AV_CHANNEL_LAYOUT_6POINT1_FRONT,
350
+ '7.0': AVChannelLayout.AV_CHANNEL_LAYOUT_7POINT0,
351
+ '7.0(front)': AVChannelLayout.AV_CHANNEL_LAYOUT_7POINT0_FRONT,
352
+ '7.1': AVChannelLayout.AV_CHANNEL_LAYOUT_7POINT1,
353
+ '7.1(wide)': AVChannelLayout.AV_CHANNEL_LAYOUT_7POINT1_WIDE_BACK,
354
+ '7.1(wide-side)': AVChannelLayout.AV_CHANNEL_LAYOUT_7POINT1_WIDE,
355
+ '5.1.2': AVChannelLayout.AV_CHANNEL_LAYOUT_5POINT1POINT2_BACK,
356
+ 'octagonal': AVChannelLayout.AV_CHANNEL_LAYOUT_OCTAGONAL,
357
+ 'cube': AVChannelLayout.AV_CHANNEL_LAYOUT_CUBE,
358
+ '5.1.4': AVChannelLayout.AV_CHANNEL_LAYOUT_5POINT1POINT4_BACK,
359
+ '7.1.2': AVChannelLayout.AV_CHANNEL_LAYOUT_7POINT1POINT2,
360
+ '7.1.4': AVChannelLayout.AV_CHANNEL_LAYOUT_7POINT1POINT4_BACK,
361
+ '7.2.3': AVChannelLayout.AV_CHANNEL_LAYOUT_7POINT2POINT3,
362
+ '9.1.4': AVChannelLayout.AV_CHANNEL_LAYOUT_9POINT1POINT4_BACK,
363
+ 'hexadecagonal': AVChannelLayout.AV_CHANNEL_LAYOUT_HEXADECAGONAL,
364
+ 'downmix': AVChannelLayout.AV_CHANNEL_LAYOUT_STEREO_DOWNMIX,
365
+ '22.2': AVChannelLayout.AV_CHANNEL_LAYOUT_22POINT2
366
+ }
@@ -0,0 +1,95 @@
1
+ /*
2
+ * libmedia AVChannelLayout
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 { AVChannel, AVChannelOrder } from '../audiosamplefmt'
27
+
28
+ @struct
29
+ export class AVChannelCustom {
30
+ id: AVChannel
31
+ name: array<char, 16>
32
+ opaque: pointer<void>
33
+ }
34
+
35
+ @struct
36
+ export class AVChannelLayout {
37
+ /**
38
+ * Channel order used in this layout.
39
+ * This is a mandatory field.
40
+ */
41
+ order: AVChannelOrder
42
+
43
+ /**
44
+ * Number of channels in this layout. Mandatory field.
45
+ */
46
+ nbChannels: int32
47
+
48
+ /**
49
+ * Details about which channels are present in this layout.
50
+ * For AV_CHANNEL_ORDER_UNSPEC, this field is undefined and must not be
51
+ * used.
52
+ */
53
+ u: union<{
54
+ /**
55
+ * This member must be used for AV_CHANNEL_ORDER_NATIVE, and may be used
56
+ * for AV_CHANNEL_ORDER_AMBISONIC to signal non-diegetic channels.
57
+ * It is a bitmask, where the position of each set bit means that the
58
+ * AVChannel with the corresponding value is present.
59
+ *
60
+ * I.e. when (mask & (1 << AV_CHAN_FOO)) is non-zero, then AV_CHAN_FOO
61
+ * is present in the layout. Otherwise it is not present.
62
+ *
63
+ * @note when a channel layout using a bitmask is constructed or
64
+ * modified manually (i.e. not using any of the av_channel_layout_*
65
+ * functions), the code doing it must ensure that the number of set bits
66
+ * is equal to nb_channels.
67
+ */
68
+ mask: uint64
69
+
70
+ /**
71
+ * This member must be used when the channel order is
72
+ * AV_CHANNEL_ORDER_CUSTOM. It is a nb_channels-sized array, with each
73
+ * element signalling the presence of the AVChannel with the
74
+ * corresponding value in map[i].id.
75
+ *
76
+ * I.e. when map[i].id is equal to AV_CHAN_FOO, then AV_CH_FOO is the
77
+ * i-th channel in the audio data.
78
+ *
79
+ * When map[i].id is in the range between AV_CHAN_AMBISONIC_BASE and
80
+ * AV_CHAN_AMBISONIC_END (inclusive), the channel contains an ambisonic
81
+ * component with ACN index (as defined above)
82
+ * n = map[i].id - AV_CHAN_AMBISONIC_BASE.
83
+ *
84
+ * map[i].name may be filled with a 0-terminated string, in which case
85
+ * it will be used for the purpose of identifying the channel with the
86
+ * convenience functions below. Otherwise it must be zeroed.
87
+ */
88
+ map: pointer<AVChannelCustom>
89
+ }>
90
+
91
+ /**
92
+ * For some private data of the user.
93
+ */
94
+ opaque: pointer<void>
95
+ }
@@ -0,0 +1,139 @@
1
+ /*
2
+ * libmedia AVBuffer 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 { avFree } from '../util/mem'
27
+ import type { Mutex } from '@libmedia/cheap'
28
+
29
+ export const enum AVBufferFlags {
30
+ NONE = 0,
31
+ READONLY = 1 << 0
32
+ }
33
+
34
+ @struct
35
+ export class AVBuffer {
36
+ /**
37
+ * data described by this buffer
38
+ */
39
+ data: pointer<uint8> = nullptr
40
+
41
+ /**
42
+ * size of data in bytes
43
+ */
44
+ size: size = 0
45
+
46
+ /**
47
+ * number of existing AVBufferRef instances referring to this buffer
48
+ */
49
+ refcount: atomic_uint32 = 0
50
+
51
+ /**
52
+ * a callback for freeing the data
53
+ */
54
+ free: pointer<(opaque: pointer<void>, data: pointer<uint8>) => void> = nullptr
55
+
56
+ /**
57
+ * an opaque pointer, to be used by the freeing callback
58
+ */
59
+ opaque: pointer<void> = nullptr
60
+
61
+ /**
62
+ * A combination of AV_BUFFER_FLAG_*
63
+ */
64
+ flags: AVBufferFlags = AVBufferFlags.NONE
65
+
66
+ /**
67
+ * A combination of BUFFER_FLAG_*
68
+ */
69
+ flagsInternal: int32 = 0
70
+ }
71
+
72
+ function avbufferDefaultFree(opaque: pointer<void>, data: pointer<uint8>) {
73
+ avFree(data)
74
+ }
75
+
76
+ @struct
77
+ export class AVBufferRef {
78
+ buffer: pointer<AVBuffer> = nullptr
79
+
80
+ /**
81
+ * The data buffer. It is considered writable if and only if
82
+ * this is the only reference to the buffer, in which case
83
+ * av_buffer_is_writable() returns 1.
84
+ */
85
+ data: pointer<uint8> = nullptr
86
+
87
+ /**
88
+ * Size of data in bytes.
89
+ */
90
+ size: size = 0
91
+ }
92
+
93
+ @struct
94
+ export class AVBufferPool {
95
+ mutex: Mutex
96
+
97
+ pool: pointer<BufferPoolEntry> = nullptr
98
+
99
+ /**
100
+ * number of existing AVBufferRef instances referring to this buffer
101
+ */
102
+ refcount: atomic_uint32 = 0
103
+
104
+ /**
105
+ * Size of data in bytes.
106
+ */
107
+ size: size = 0
108
+
109
+ /**
110
+ * an opaque pointer, to be used by the freeing callback
111
+ */
112
+ opaque: pointer<void> = nullptr
113
+ alloc: pointer<(size: size) => AVBufferRef> = nullptr
114
+ alloc2: pointer<(opaque: pointer<void>, size: size) => AVBufferRef> = nullptr
115
+ poolFree: pointer<(opaque: pointer<void>) => void> = nullptr
116
+ }
117
+
118
+ @struct
119
+ export class BufferPoolEntry {
120
+ data: pointer<uint8> = nullptr
121
+ /**
122
+ * an opaque pointer, to be used by the freeing callback
123
+ */
124
+ opaque: pointer<void> = nullptr
125
+
126
+ /**
127
+ * a callback for freeing the data
128
+ */
129
+ free: pointer<(opaque: pointer<void>, data: pointer<uint8>) => void> = nullptr
130
+
131
+ pool: pointer<AVBufferPool> = nullptr
132
+
133
+ next: pointer<BufferPoolEntry> = nullptr
134
+ /*
135
+ * An AVBuffer structure to (re)use as AVBuffer for subsequent uses
136
+ * of this BufferPoolEntry.
137
+ */
138
+ buffer: AVBuffer
139
+ }