@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,313 @@
1
+ /*
2
+ * libmedia avpacket util
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 AVPacket, { AVPacketSideData } from '../struct/avpacket'
27
+ import type { AVPacketSideDataType } from '../codec'
28
+ import { avFree, avFreep, avMalloc, avMallocz } from './mem'
29
+ import { AV_TIME_BASE, NOPTS_VALUE, NOPTS_VALUE_BIGINT } from '../constant'
30
+ import { avbufferCreate, avbufferRealloc, avbufferRef, avbufferReplace, avbufferUnref } from './avbuffer'
31
+ import type { AVBufferRef } from '../struct/avbuffer'
32
+
33
+ import {
34
+ type SafeUint8Array,
35
+ memcpy,
36
+ memset,
37
+ mapUint8Array,
38
+ mapSafeUint8Array
39
+ } from '@libmedia/cheap'
40
+
41
+ const AV_INPUT_BUFFER_PADDING_SIZE = 64
42
+
43
+ export function getAVPacketData(avpacket: pointer<AVPacket>): Uint8Array<ArrayBufferLike>
44
+ export function getAVPacketData(avpacket: pointer<AVPacket>, safe: boolean): SafeUint8Array
45
+ export function getAVPacketData(avpacket: pointer<AVPacket>, safe?: boolean) {
46
+ return safe ? mapSafeUint8Array(avpacket.data, reinterpret_cast<size>(avpacket.size)) : mapUint8Array(avpacket.data, reinterpret_cast<size>(avpacket.size))
47
+ }
48
+
49
+ export function initAVPacketData(avpacket: pointer<AVPacket>, length: size) {
50
+ avpacket.data = avMalloc(length)
51
+ avpacket.size = static_cast<int32>(length)
52
+ return mapUint8Array(avpacket.data, reinterpret_cast<size>(avpacket.size))
53
+ }
54
+
55
+ export function getSideData(psd: pointer<pointer<AVPacketSideData>>, pnbSd: pointer<int32>, type: AVPacketSideDataType): pointer<AVPacketSideData> {
56
+ const sideDataElems = accessof(pnbSd)
57
+ const sideData = accessof(psd)
58
+ for (let i = 0; i < sideDataElems; i++) {
59
+ if (sideData[i].type === type) {
60
+ return addressof(sideData[i])
61
+ }
62
+ }
63
+ return nullptr
64
+ }
65
+
66
+ export function getAVPacketSideData(avpacket: pointer<AVPacket>, type: AVPacketSideDataType): pointer<AVPacketSideData> {
67
+ return getSideData(addressof(avpacket.sideData), addressof(avpacket.sideDataElems), type)
68
+ }
69
+
70
+ export function hasSideData(psd: pointer<pointer<AVPacketSideData>>, pnbSd: pointer<int32>, type: AVPacketSideDataType) {
71
+ const sideDataElems = accessof(pnbSd)
72
+ const sideData = accessof(psd)
73
+ for (let i = 0; i < sideDataElems; i++) {
74
+ if (sideData[i].type === type) {
75
+ return true
76
+ }
77
+ }
78
+ return false
79
+ }
80
+
81
+ export function hasAVPacketSideData(avpacket: pointer<AVPacket>, type: AVPacketSideDataType) {
82
+ return hasSideData(addressof(avpacket.sideData), addressof(avpacket.sideDataElems), type)
83
+ }
84
+
85
+ export function addSideData(psd: pointer<pointer<AVPacketSideData>>, pnbSd: pointer<int32>, type: AVPacketSideDataType, data: pointer<void>, length: size) {
86
+ const sideDataElems = accessof(pnbSd)
87
+ const sideData = accessof(psd)
88
+ for (let i = 0; i < sideDataElems; i++) {
89
+ if (sideData[i].type === type) {
90
+ avFree(sideData[i].data)
91
+ sideData[i].data = reinterpret_cast<pointer<uint8>>(data)
92
+ sideData[i].size = length
93
+ return
94
+ }
95
+ }
96
+ const len = (sideDataElems + 1) * reinterpret_cast<int32>(sizeof(AVPacketSideData))
97
+ const newSideData = avMallocz(len) as pointer<AVPacketSideData>
98
+
99
+ if (sideDataElems) {
100
+ for (let i = 0; i < sideDataElems; i++) {
101
+ newSideData[i] = sideData[i]
102
+ }
103
+ }
104
+
105
+ const ele = addressof(newSideData[sideDataElems])
106
+ ele.data = reinterpret_cast<pointer<uint8>>(data)
107
+ ele.type = type
108
+ ele.size = length
109
+
110
+ if (sideData) {
111
+ avFree(sideData)
112
+ }
113
+
114
+ accessof(psd) <- newSideData
115
+ accessof(pnbSd) <- reinterpret_cast<int32>(sideDataElems + 1)
116
+
117
+ return ele
118
+ }
119
+
120
+ export function newSideData(psd: pointer<pointer<AVPacketSideData>>, pnbSd: pointer<int32>, type: AVPacketSideDataType, size: size) {
121
+ const data = avMalloc(size + static_cast<size>(AV_INPUT_BUFFER_PADDING_SIZE as uint32))
122
+ memset(reinterpret_cast<pointer<uint8>>(data + size), 0, AV_INPUT_BUFFER_PADDING_SIZE)
123
+ return addSideData(psd, pnbSd, type, data, size)
124
+ }
125
+
126
+ export function addAVPacketSideData(avpacket: pointer<AVPacket>, type: AVPacketSideDataType, data: pointer<void>, length: size) {
127
+ addSideData(addressof(avpacket.sideData), addressof(avpacket.sideDataElems), type, data, length)
128
+ }
129
+
130
+ export function deleteAVPacketSideData(avpacket: pointer<AVPacket>, type: AVPacketSideDataType) {
131
+ let index = -1
132
+ for (let i = 0; i < avpacket.sideDataElems; i++) {
133
+ if (avpacket.sideData[i].type === type) {
134
+ index = i
135
+ break
136
+ }
137
+ }
138
+ if (index > -1) {
139
+ if (avpacket.sideDataElems === 1) {
140
+ avFree(avpacket.sideData[0].data)
141
+ avFree(avpacket.sideData)
142
+ avpacket.sideData = nullptr
143
+ avpacket.sideDataElems = 0
144
+ }
145
+ else {
146
+ const len = (avpacket.sideDataElems - 1) * reinterpret_cast<int32>(sizeof(AVPacketSideData))
147
+ const sideData = avMallocz(len) as pointer<AVPacketSideData>
148
+ for (let i = 0; i < avpacket.sideDataElems; i++) {
149
+ if (i !== index) {
150
+ sideData[i] = avpacket.sideData[i]
151
+ }
152
+ else {
153
+ avFree(avpacket.sideData[i].data)
154
+ }
155
+ }
156
+ avFree(avpacket.sideData)
157
+ avpacket.sideData = sideData
158
+ avpacket.sideDataElems--
159
+ }
160
+ }
161
+ }
162
+
163
+ export function createAVPacket(): pointer<AVPacket> {
164
+ const avpacket = reinterpret_cast<pointer<AVPacket>>(avMallocz(sizeof(AVPacket)))
165
+ getAVPacketDefault(avpacket)
166
+ return avpacket
167
+ }
168
+
169
+ export function destroyAVPacket(avpacket: pointer<AVPacket>) {
170
+ unrefAVPacket(avpacket)
171
+ avFree(avpacket)
172
+ }
173
+
174
+ export function freeAVPacketSideData(pSideData: pointer<pointer<AVPacketSideData>>, pnbSideData: pointer<int32>) {
175
+
176
+ const sideData = accessof(pSideData)
177
+ const nbSideData = accessof(pnbSideData)
178
+
179
+ if (sideData) {
180
+ for (let i = 0; i < nbSideData; i++) {
181
+ avFree(sideData[i].data)
182
+ }
183
+ avFreep(pSideData)
184
+ accessof(pnbSideData) <- static_cast<int32>(0)
185
+ }
186
+ }
187
+
188
+ export function getAVPacketDefault(avpacket: pointer<AVPacket>) {
189
+ avpacket.data = nullptr
190
+ avpacket.size = 0
191
+ avpacket.sideData = nullptr
192
+ avpacket.sideDataElems = 0
193
+ avpacket.streamIndex = NOPTS_VALUE
194
+ avpacket.pos = NOPTS_VALUE_BIGINT
195
+ avpacket.duration = NOPTS_VALUE_BIGINT
196
+ avpacket.flags = 0
197
+ avpacket.dts = NOPTS_VALUE_BIGINT
198
+ avpacket.pts = NOPTS_VALUE_BIGINT
199
+ avpacket.timeBase.den = AV_TIME_BASE
200
+ avpacket.timeBase.num = 1
201
+
202
+ avpacket.buf = nullptr
203
+ }
204
+
205
+ export function copyAVPacketSideData(dst: pointer<AVPacket>, src: pointer<AVPacket>) {
206
+ freeAVPacketSideData(addressof(dst.sideData), addressof(dst.sideDataElems))
207
+ if (src.sideDataElems) {
208
+ let size = reinterpret_cast<int32>(sizeof(AVPacketSideData))
209
+ dst.sideData = reinterpret_cast<pointer<AVPacketSideData>>(avMallocz(size * src.sideDataElems))
210
+ for (let i = 0; i < src.sideDataElems; i++) {
211
+ dst.sideData[i].size = src.sideData[i].size
212
+ dst.sideData[i].type = src.sideData[i].type
213
+ dst.sideData[i].data = avMalloc(src.sideData[i].size)
214
+ memcpy(dst.sideData[i].data, src.sideData[i].data, src.sideData[i].size)
215
+ }
216
+ dst.sideDataElems = src.sideDataElems
217
+ }
218
+ }
219
+
220
+ export function copyAVPacketProps(dst: pointer<AVPacket>, src: pointer<AVPacket>) {
221
+ dst.streamIndex = src.streamIndex
222
+ dst.pos = src.pos
223
+ dst.duration = src.duration
224
+ dst.flags = src.flags
225
+ dst.dts = src.dts
226
+ dst.pts = src.pts
227
+ dst.opaque = src.opaque
228
+ dst.timeBase.den = src.timeBase.den
229
+ dst.timeBase.num = src.timeBase.num
230
+
231
+ dst.opaqueRef = nullptr
232
+
233
+ avbufferReplace(addressof(dst.opaqueRef), src.opaqueRef)
234
+
235
+ copyAVPacketSideData(dst, src)
236
+
237
+ return 0
238
+ }
239
+
240
+ function allocAVPacket(buf: pointer<pointer<AVBufferRef>>, size: size) {
241
+ avbufferRealloc(buf, size + static_cast<size>(AV_INPUT_BUFFER_PADDING_SIZE as uint32))
242
+ memset(accessof(buf).data + size, 0, AV_INPUT_BUFFER_PADDING_SIZE)
243
+ return 0
244
+ }
245
+
246
+ export function refAVPacket(dst: pointer<AVPacket>, src: pointer<AVPacket>) {
247
+ if (dst.buf) {
248
+ avbufferUnref(addressof(dst.buf))
249
+ }
250
+ dst.buf = nullptr
251
+ copyAVPacketProps(dst, src)
252
+
253
+ if (!src.buf && src.size) {
254
+ allocAVPacket(addressof(dst.buf), reinterpret_cast<size>(src.size))
255
+ if (src.size) {
256
+ memcpy(dst.buf.data, src.data, reinterpret_cast<size>(src.size))
257
+ }
258
+ dst.data = dst.buf.data
259
+ }
260
+ else if (src.buf) {
261
+ dst.buf = avbufferRef(src.buf)
262
+ dst.data = src.data
263
+ }
264
+ dst.size = src.size
265
+
266
+ return 0
267
+ }
268
+
269
+ export function unrefAVPacket(avpacket: pointer<AVPacket>) {
270
+ freeAVPacketSideData(addressof(avpacket.sideData), addressof(avpacket.sideDataElems))
271
+ avbufferUnref(addressof(avpacket.opaqueRef))
272
+
273
+ if (avpacket.buf) {
274
+ avbufferUnref(addressof(avpacket.buf))
275
+ }
276
+ else if (avpacket.data) {
277
+ avFree(avpacket.data)
278
+ }
279
+ getAVPacketDefault(avpacket)
280
+ }
281
+
282
+ export function copyAVPacketData(dst: pointer<AVPacket>, src: pointer<AVPacket>) {
283
+ if (dst.buf) {
284
+ avbufferUnref(addressof(dst.buf))
285
+ }
286
+ dst.buf = nullptr
287
+ if (!src.buf && src.size) {
288
+ allocAVPacket(addressof(dst.buf), reinterpret_cast<size>(src.size))
289
+ if (src.size) {
290
+ memcpy(dst.buf.data, src.data, reinterpret_cast<size>(src.size))
291
+ }
292
+ dst.data = dst.buf.data
293
+ }
294
+ else if (src.buf) {
295
+ dst.buf = avbufferRef(src.buf)
296
+ dst.data = src.data
297
+ }
298
+ dst.size = src.size
299
+ }
300
+
301
+ export function addAVPacketData(avpacket: pointer<AVPacket>, data: pointer<uint8>, size: int32) {
302
+
303
+ if (avpacket.buf) {
304
+ avbufferUnref(addressof(avpacket.buf))
305
+ }
306
+ else if (avpacket.data) {
307
+ avFree(avpacket.data)
308
+ }
309
+
310
+ avpacket.buf = avbufferCreate(data, size + AV_INPUT_BUFFER_PADDING_SIZE)
311
+ avpacket.data = data
312
+ avpacket.size = size
313
+ }
@@ -0,0 +1,66 @@
1
+ /*
2
+ * libmedia channel util
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 { AVChannelCustom, AVChannelLayout } from '../struct/audiosample'
27
+ import { popCount64 } from './common'
28
+ import { AVChannel, AVChannelOrder } from '../audiosamplefmt'
29
+ import { avFreep, avMallocz } from './mem'
30
+ import * as error from '../error'
31
+
32
+ import { memset } from '@libmedia/cheap'
33
+
34
+ export function getChannelLayoutNBChannels(layout: uint64) {
35
+ return popCount64(layout)
36
+ }
37
+
38
+ export function unInitChannelLayout(channelLayout: pointer<AVChannelLayout>) {
39
+ if (channelLayout.order == AVChannelOrder.AV_CHANNEL_ORDER_CUSTOM) {
40
+ avFreep(addressof(channelLayout.u.map))
41
+ }
42
+ memset(channelLayout, 0, sizeof(accessof(channelLayout)))
43
+ }
44
+
45
+ export function setChannelLayoutFromMask(channelLayout: pointer<AVChannelLayout>, mask: uint64) {
46
+ if (!mask) {
47
+ return error.INVALID_ARGUMENT
48
+ }
49
+ channelLayout.order = AVChannelOrder.AV_CHANNEL_ORDER_NATIVE
50
+ channelLayout.nbChannels = popCount64(static_cast<uint64>(mask))
51
+ channelLayout.u.mask = mask
52
+ return 0
53
+ }
54
+
55
+ export function initCustomChannelLayout(channelLayout: pointer<AVChannelLayout>, channels: int32) {
56
+ if (channels <= 0) {
57
+ throw new Error('invalid channels')
58
+ }
59
+ const map: pointer<AVChannelCustom> = avMallocz(reinterpret_cast<size>(reinterpret_cast<size>(channels) * sizeof(accessof(channelLayout.u.map))))
60
+ for (let i = 0; i < channels; i++) {
61
+ map[i].id = AVChannel.AV_CHANNEL_UNKNOWN
62
+ }
63
+ channelLayout.order = AVChannelOrder.AV_CHANNEL_ORDER_CUSTOM
64
+ channelLayout.nbChannels = channels
65
+ channelLayout.u.map = map
66
+ }
@@ -0,0 +1,148 @@
1
+ /*
2
+ * libmedia codecparameters util
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 AVCodecParameters from '../struct/avcodecparameters'
27
+ import { avFree, avFreep, avMalloc, avMallocz } from './mem'
28
+ import { unInitChannelLayout } from './channel'
29
+ import { freeAVPacketSideData } from './avpacket'
30
+ import { AVCodecID, AVMediaType } from '../codec'
31
+ import { AVChannelOrder } from '../audiosamplefmt'
32
+ import { AVChromaLocation, AVColorPrimaries, AVColorRange,
33
+ AVColorSpace, AVColorTransferCharacteristic, AVFieldOrder
34
+ } from '../pixfmt'
35
+ import { NOPTS_VALUE } from '../constant'
36
+ import { AVPacketSideData } from '../struct/avpacket'
37
+
38
+ export { default as isHdr } from '../function/isHdr'
39
+ export { default as hasAlphaChannel } from '../function/hasAlphaChannel'
40
+
41
+ import { memset, memcpy } from '@libmedia/cheap'
42
+
43
+ function copyCodecParametersSideData(
44
+ pDst: pointer<pointer<AVPacketSideData>>,
45
+ pnbDst: pointer<int32>,
46
+ src: pointer<AVPacketSideData>,
47
+ nbSrc: int32
48
+ ) {
49
+
50
+ if (!src) {
51
+ return
52
+ }
53
+
54
+ const dst = reinterpret_cast<pointer<AVPacketSideData>>(avMallocz(nbSrc * reinterpret_cast<int32>(sizeof(AVPacketSideData))))
55
+
56
+ for (let i = 0; i < nbSrc; i++) {
57
+ dst[i].type = src[i].type
58
+ dst[i].size = src[i].size
59
+ dst[i].data = avMalloc(src[i].size)
60
+ memcpy(dst[i].data, src[i].data, src[i].size)
61
+ }
62
+
63
+ accessof(pnbDst) <- nbSrc
64
+ accessof(pDst) <- dst
65
+
66
+ return 0
67
+ }
68
+
69
+ export function copyCodecParameters(dst: pointer<AVCodecParameters>, src: pointer<AVCodecParameters>) {
70
+ dst.codecType = src.codecType
71
+ dst.codecId = src.codecId
72
+ dst.codecTag = src.codecTag
73
+ dst.format = src.format
74
+ dst.bitrate = src.bitrate
75
+ dst.bitsPerCodedSample = src.bitsPerCodedSample
76
+ dst.bitsPerRawSample = src.bitsPerRawSample
77
+ dst.profile = src.profile
78
+ dst.level = src.level
79
+ dst.width = src.width
80
+ dst.height = src.height
81
+ dst.sampleAspectRatio.den = src.sampleAspectRatio.den
82
+ dst.sampleAspectRatio.num = src.sampleAspectRatio.num
83
+ dst.fieldOrder = src.fieldOrder
84
+ dst.colorRange = src.colorRange
85
+ dst.colorPrimaries = src.colorPrimaries
86
+ dst.colorTrc = src.colorTrc
87
+ dst.colorSpace = src.colorSpace
88
+ dst.chromaLocation = src.chromaLocation
89
+ dst.videoDelay = src.videoDelay
90
+ dst.chLayout = src.chLayout
91
+ dst.sampleRate = src.sampleRate
92
+ dst.blockAlign = src.blockAlign
93
+ dst.frameSize = src.frameSize
94
+ dst.initialPadding = src.initialPadding
95
+ dst.trailingPadding = src.trailingPadding
96
+ dst.seekPreroll = src.seekPreroll
97
+ dst.flags = src.flags
98
+
99
+ dst.framerate = src.framerate
100
+
101
+ if (src.extradata) {
102
+ if (dst.extradata) {
103
+ avFree(dst.extradata)
104
+ }
105
+ dst.extradata = avMalloc(reinterpret_cast<size>(src.extradataSize))
106
+ dst.extradataSize = src.extradataSize
107
+ memcpy(dst.extradata, src.extradata, reinterpret_cast<size>(src.extradataSize))
108
+ }
109
+
110
+ if (src.codedSideData) {
111
+ copyCodecParametersSideData(addressof(dst.codedSideData), addressof(dst.nbCodedSideData), src.codedSideData, src.nbCodedSideData)
112
+ }
113
+ }
114
+
115
+ export function resetCodecParameters(par: pointer<AVCodecParameters>) {
116
+ if (par.extradata) {
117
+ avFreep(addressof(par.extradata))
118
+ }
119
+ unInitChannelLayout(addressof(par.chLayout))
120
+ freeAVPacketSideData(addressof(par.codedSideData), addressof(par.nbCodedSideData))
121
+ memset(par, 0, sizeof(accessof(par)))
122
+
123
+ par.codecType = AVMediaType.AVMEDIA_TYPE_UNKNOWN
124
+ par.codecId = AVCodecID.AV_CODEC_ID_NONE
125
+ par.format = -1
126
+ par.chLayout.order = AVChannelOrder.AV_CHANNEL_ORDER_UNSPEC
127
+ par.fieldOrder = AVFieldOrder.AV_FIELD_UNKNOWN
128
+ par.colorRange = AVColorRange.AVCOL_RANGE_UNSPECIFIED
129
+ par.colorPrimaries = AVColorPrimaries.AVCOL_PRI_UNSPECIFIED
130
+ par.colorTrc = AVColorTransferCharacteristic.AVCOL_TRC_UNSPECIFIED
131
+ par.colorSpace = AVColorSpace.AVCOL_SPC_UNSPECIFIED
132
+ par.chromaLocation = AVChromaLocation.AVCHROMA_LOC_UNSPECIFIED
133
+ par.sampleAspectRatio.num = 0
134
+ par.sampleAspectRatio.den = 1
135
+ par.framerate.num = 0
136
+ par.framerate.num = 1
137
+ par.profile = NOPTS_VALUE
138
+ par.level = NOPTS_VALUE
139
+ par.flags = 0
140
+ }
141
+
142
+ export function freeCodecParameters(par: pointer<AVCodecParameters>) {
143
+ if (!par) {
144
+ return
145
+ }
146
+ resetCodecParameters(par)
147
+ avFree(par)
148
+ }
@@ -0,0 +1,42 @@
1
+ /*
2
+ * libmedia common util
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
+ export function popCount(x: uint32) {
27
+ x -= (x >> 1) & 0x55555555
28
+ x = (x & 0x33333333) + ((x >> 2) & 0x33333333)
29
+ x = (x + (x >> 4)) & 0x0F0F0F0F
30
+ x += x >> 8
31
+ return (x + (x >> 16)) & 0x3F
32
+ }
33
+
34
+ export function popCount64(x: uint64) {
35
+ return popCount(static_cast<uint32>(x)) + popCount(static_cast<uint32>(x >> 32n))
36
+ }
37
+
38
+ export function milliSecond2Second(time: int64) {
39
+ const integer = time / 1000n
40
+ const decimal = time - integer * 1000n
41
+ return Number(integer) + Number(decimal) / 1000
42
+ }