@libmedia/avutil 0.4.1 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/dist/cjs/AVStream.d.ts +8 -1
  2. package/dist/cjs/AVStream.js +1 -0
  3. package/dist/cjs/AVStream.js.map +1 -1
  4. package/dist/cjs/codecs/aac.d.ts +1 -1
  5. package/dist/cjs/codecs/aac.js +2 -1
  6. package/dist/cjs/codecs/aac.js.map +1 -1
  7. package/dist/cjs/codecs/av1.d.ts +1 -1
  8. package/dist/cjs/codecs/av1.js +10 -4
  9. package/dist/cjs/codecs/av1.js.map +1 -1
  10. package/dist/cjs/codecs/flac.d.ts +26 -0
  11. package/dist/cjs/codecs/flac.js +31 -1
  12. package/dist/cjs/codecs/flac.js.map +1 -1
  13. package/dist/cjs/codecs/h264.d.ts +59 -10
  14. package/dist/cjs/codecs/h264.js +118 -101
  15. package/dist/cjs/codecs/h264.js.map +1 -1
  16. package/dist/cjs/codecs/hevc.d.ts +61 -10
  17. package/dist/cjs/codecs/hevc.js +89 -98
  18. package/dist/cjs/codecs/hevc.js.map +1 -1
  19. package/dist/cjs/codecs/opus.d.ts +1 -1
  20. package/dist/cjs/codecs/vp9.d.ts +1 -1
  21. package/dist/cjs/codecs/vvc.d.ts +61 -11
  22. package/dist/cjs/codecs/vvc.js +82 -95
  23. package/dist/cjs/codecs/vvc.js.map +1 -1
  24. package/dist/cjs/function/analyzeUrlIOLoader.js +51 -39
  25. package/dist/cjs/function/analyzeUrlIOLoader.js.map +1 -1
  26. package/dist/cjs/function/audioData2AVFrame.js +4 -2
  27. package/dist/cjs/function/audioData2AVFrame.js.map +1 -1
  28. package/dist/cjs/function/avPCMBuffer2AVFrame.d.ts +3 -0
  29. package/dist/cjs/function/avPCMBuffer2AVFrame.js +73 -0
  30. package/dist/cjs/function/avPCMBuffer2AVFrame.js.map +1 -0
  31. package/dist/cjs/function/avframe2AudioData.d.ts +1 -2
  32. package/dist/cjs/function/avframe2AudioData.js +4 -3
  33. package/dist/cjs/function/avframe2AudioData.js.map +1 -1
  34. package/dist/cjs/function/avframe2VideoFrame.d.ts +1 -2
  35. package/dist/cjs/function/avframe2VideoFrame.js +10 -9
  36. package/dist/cjs/function/avframe2VideoFrame.js.map +1 -1
  37. package/dist/cjs/function/avpacket2EncodedAudioChunk.d.ts +1 -1
  38. package/dist/cjs/function/avpacket2EncodedAudioChunk.js +5 -4
  39. package/dist/cjs/function/avpacket2EncodedAudioChunk.js.map +1 -1
  40. package/dist/cjs/function/avpacket2EncodedVideoChunk.d.ts +1 -1
  41. package/dist/cjs/function/avpacket2EncodedVideoChunk.js +5 -4
  42. package/dist/cjs/function/avpacket2EncodedVideoChunk.js.map +1 -1
  43. package/dist/cjs/function/compileResource.js +10 -4
  44. package/dist/cjs/function/compileResource.js.map +1 -1
  45. package/dist/cjs/function/encodedAudioChunk2AVPacket.js.map +1 -1
  46. package/dist/cjs/function/encodedVideoChunk2AVPacket.js.map +1 -1
  47. package/dist/cjs/function/getVideoCodec.js +15 -7
  48. package/dist/cjs/function/getVideoCodec.js.map +1 -1
  49. package/dist/cjs/function/getWasmUrl.d.ts +2 -0
  50. package/dist/cjs/function/getWasmUrl.js +138 -0
  51. package/dist/cjs/function/getWasmUrl.js.map +1 -0
  52. package/dist/cjs/function/videoFrame2AVFrame.js +10 -8
  53. package/dist/cjs/function/videoFrame2AVFrame.js.map +1 -1
  54. package/dist/cjs/implement/AVFramePoolImpl.js +10 -4
  55. package/dist/cjs/implement/AVFramePoolImpl.js.map +1 -1
  56. package/dist/cjs/implement/AVPCMBufferPoolImpl.js +13 -7
  57. package/dist/cjs/implement/AVPCMBufferPoolImpl.js.map +1 -1
  58. package/dist/cjs/implement/AVPacketPoolImpl.js +10 -4
  59. package/dist/cjs/implement/AVPacketPoolImpl.js.map +1 -1
  60. package/dist/cjs/stringEnum.js +2 -0
  61. package/dist/cjs/stringEnum.js.map +1 -1
  62. package/dist/cjs/struct/avbuffer.js +3 -3
  63. package/dist/cjs/struct/avframe.js +5 -5
  64. package/dist/cjs/struct/avpacket.js +2 -2
  65. package/dist/cjs/struct/avpacket.js.map +1 -1
  66. package/dist/cjs/struct/avpcmbuffer.d.ts +5 -0
  67. package/dist/cjs/struct/avpcmbuffer.js +16 -5
  68. package/dist/cjs/struct/avpcmbuffer.js.map +1 -1
  69. package/dist/cjs/util/amf.js +10 -4
  70. package/dist/cjs/util/amf.js.map +1 -1
  71. package/dist/cjs/util/avbuffer.js +18 -12
  72. package/dist/cjs/util/avbuffer.js.map +1 -1
  73. package/dist/cjs/util/avdict.js +38 -2
  74. package/dist/cjs/util/avdict.js.map +1 -1
  75. package/dist/cjs/util/avframe.js +21 -13
  76. package/dist/cjs/util/avframe.js.map +1 -1
  77. package/dist/cjs/util/avpacket.d.ts +2 -2
  78. package/dist/cjs/util/avpacket.js +16 -10
  79. package/dist/cjs/util/avpacket.js.map +1 -1
  80. package/dist/cjs/util/channel.js +10 -4
  81. package/dist/cjs/util/channel.js.map +1 -1
  82. package/dist/cjs/util/codecparameters.js +3 -3
  83. package/dist/cjs/util/codecparameters.js.map +1 -1
  84. package/dist/cjs/util/mem.js +10 -4
  85. package/dist/cjs/util/mem.js.map +1 -1
  86. package/dist/cjs/util/nalu.d.ts +24 -4
  87. package/dist/cjs/util/nalu.js +15 -7
  88. package/dist/cjs/util/nalu.js.map +1 -1
  89. package/dist/cjs/util/pixel.d.ts +1 -1
  90. package/dist/cjs/util/pixel.js +21 -15
  91. package/dist/cjs/util/pixel.js.map +1 -1
  92. package/dist/cjs/util/rational.d.ts +1 -1
  93. package/dist/cjs/util/rational.js +5 -5
  94. package/dist/cjs/util/rational.js.map +1 -1
  95. package/dist/cjs/util/sample.js +1 -1
  96. package/dist/cjs/util/sample.js.map +1 -1
  97. package/dist/cjs/util/serialize.js +2 -2
  98. package/dist/cjs/util/serialize.js.map +1 -1
  99. package/dist/esm/AVStream.d.ts +8 -1
  100. package/dist/esm/AVStream.js +1 -0
  101. package/dist/esm/AVStream.js.map +1 -1
  102. package/dist/esm/codecs/aac.d.ts +1 -1
  103. package/dist/esm/codecs/aac.js +2 -1
  104. package/dist/esm/codecs/aac.js.map +1 -1
  105. package/dist/esm/codecs/av1.d.ts +1 -1
  106. package/dist/esm/codecs/flac.d.ts +26 -0
  107. package/dist/esm/codecs/flac.js +34 -1
  108. package/dist/esm/codecs/flac.js.map +1 -1
  109. package/dist/esm/codecs/h264.d.ts +59 -10
  110. package/dist/esm/codecs/h264.js +114 -98
  111. package/dist/esm/codecs/h264.js.map +1 -1
  112. package/dist/esm/codecs/hevc.d.ts +61 -10
  113. package/dist/esm/codecs/hevc.js +84 -96
  114. package/dist/esm/codecs/hevc.js.map +1 -1
  115. package/dist/esm/codecs/opus.d.ts +1 -1
  116. package/dist/esm/codecs/vp9.d.ts +1 -1
  117. package/dist/esm/codecs/vvc.d.ts +61 -11
  118. package/dist/esm/codecs/vvc.js +77 -93
  119. package/dist/esm/codecs/vvc.js.map +1 -1
  120. package/dist/esm/function/analyzeUrlIOLoader.js +40 -34
  121. package/dist/esm/function/analyzeUrlIOLoader.js.map +1 -1
  122. package/dist/esm/function/audioData2AVFrame.js +4 -0
  123. package/dist/esm/function/audioData2AVFrame.js.map +1 -1
  124. package/dist/esm/function/avPCMBuffer2AVFrame.d.ts +3 -0
  125. package/dist/esm/function/avPCMBuffer2AVFrame.js +48 -0
  126. package/dist/esm/function/avPCMBuffer2AVFrame.js.map +1 -0
  127. package/dist/esm/function/avframe2AudioData.d.ts +1 -2
  128. package/dist/esm/function/avframe2AudioData.js +7 -3
  129. package/dist/esm/function/avframe2AudioData.js.map +1 -1
  130. package/dist/esm/function/avframe2VideoFrame.d.ts +1 -2
  131. package/dist/esm/function/avframe2VideoFrame.js +14 -10
  132. package/dist/esm/function/avframe2VideoFrame.js.map +1 -1
  133. package/dist/esm/function/avpacket2EncodedAudioChunk.d.ts +1 -1
  134. package/dist/esm/function/avpacket2EncodedAudioChunk.js +11 -3
  135. package/dist/esm/function/avpacket2EncodedAudioChunk.js.map +1 -1
  136. package/dist/esm/function/avpacket2EncodedVideoChunk.d.ts +1 -1
  137. package/dist/esm/function/avpacket2EncodedVideoChunk.js +11 -3
  138. package/dist/esm/function/avpacket2EncodedVideoChunk.js.map +1 -1
  139. package/dist/esm/function/getVideoCodec.js +8 -2
  140. package/dist/esm/function/getVideoCodec.js.map +1 -1
  141. package/dist/esm/function/getWasmUrl.d.ts +2 -0
  142. package/dist/esm/function/getWasmUrl.js +133 -0
  143. package/dist/esm/function/getWasmUrl.js.map +1 -0
  144. package/dist/esm/function/videoFrame2AVFrame.js +12 -7
  145. package/dist/esm/function/videoFrame2AVFrame.js.map +1 -1
  146. package/dist/esm/implement/AVPCMBufferPoolImpl.js +3 -3
  147. package/dist/esm/stringEnum.js +2 -0
  148. package/dist/esm/stringEnum.js.map +1 -1
  149. package/dist/esm/struct/avbuffer.js +3 -3
  150. package/dist/esm/struct/avframe.js +5 -5
  151. package/dist/esm/struct/avpacket.js +2 -2
  152. package/dist/esm/struct/avpacket.js.map +1 -1
  153. package/dist/esm/struct/avpcmbuffer.d.ts +5 -0
  154. package/dist/esm/struct/avpcmbuffer.js +16 -5
  155. package/dist/esm/struct/avpcmbuffer.js.map +1 -1
  156. package/dist/esm/util/amf.js.map +1 -1
  157. package/dist/esm/util/avbuffer.js +8 -8
  158. package/dist/esm/util/avdict.js +6 -1
  159. package/dist/esm/util/avdict.js.map +1 -1
  160. package/dist/esm/util/avframe.js +12 -10
  161. package/dist/esm/util/avframe.js.map +1 -1
  162. package/dist/esm/util/avpacket.d.ts +2 -2
  163. package/dist/esm/util/avpacket.js +6 -6
  164. package/dist/esm/util/avpacket.js.map +1 -1
  165. package/dist/esm/util/codecparameters.js +3 -3
  166. package/dist/esm/util/codecparameters.js.map +1 -1
  167. package/dist/esm/util/nalu.d.ts +24 -4
  168. package/dist/esm/util/nalu.js +7 -3
  169. package/dist/esm/util/nalu.js.map +1 -1
  170. package/dist/esm/util/pixel.d.ts +1 -1
  171. package/dist/esm/util/pixel.js +11 -11
  172. package/dist/esm/util/pixel.js.map +1 -1
  173. package/dist/esm/util/rational.d.ts +1 -1
  174. package/dist/esm/util/rational.js +5 -5
  175. package/dist/esm/util/rational.js.map +1 -1
  176. package/dist/esm/util/sample.js +1 -1
  177. package/dist/esm/util/sample.js.map +1 -1
  178. package/dist/esm/util/serialize.js +2 -2
  179. package/dist/esm/util/serialize.js.map +1 -1
  180. package/include/rational.h +1 -1
  181. package/package.json +8 -3
@@ -1,7 +1,5 @@
1
1
  import { CTypeEnumRead as cheap__CTypeEnumRead__0 } from "@libmedia/cheap/ctypeEnumRead";
2
2
 
3
- import { CTypeEnumWrite as cheap__CTypeEnumWrite__4 } from "@libmedia/cheap/ctypeEnumWrite";
4
-
5
3
  import * as array from "@libmedia/common/util/array";
6
4
 
7
5
  import BufferWriter from "@libmedia/common/io/BufferWriter";
@@ -10,11 +8,9 @@ import BufferReader from "@libmedia/common/io/BufferReader";
10
8
 
11
9
  import BitReader from "@libmedia/common/io/BitReader";
12
10
 
13
- import { mapUint8Array, memcpyFromUint8Array } from "@libmedia/cheap/std/memory";
14
-
15
- import { naluUnescape, splitNaluByStartCode, isAnnexb } from "../util/nalu";
11
+ import { mapUint8Array } from "@libmedia/cheap/std/memory";
16
12
 
17
- import { addAVPacketSideData, getAVPacketData } from "../util/avpacket";
13
+ import * as naluUtil from "../util/nalu";
18
14
 
19
15
  import { avMalloc } from "../util/mem";
20
16
 
@@ -22,6 +18,10 @@ import * as expgolomb from "../util/expgolomb";
22
18
 
23
19
  import * as intread from "../util/intread";
24
20
 
21
+ import * as intwrite from "../util/intwrite";
22
+
23
+ export const HEVC_MAX_DPB_FRAMES = 16;
24
+
25
25
  export const HEVCProfile2Name = {
26
26
  1: "Main",
27
27
  2: "Main10",
@@ -191,7 +191,7 @@ export function vpsSpsPps2Extradata(vpss, spss, ppss) {
191
191
  }
192
192
 
193
193
  export function annexbExtradata2AvccExtradata(data) {
194
- let nalus = splitNaluByStartCode(data);
194
+ let nalus = naluUtil.splitNaluByStartCode(data);
195
195
  if (nalus.length >= 2) {
196
196
  const vpss = [], spss = [], ppss = [];
197
197
  if (nalus.forEach((nalu => {
@@ -201,25 +201,36 @@ export function annexbExtradata2AvccExtradata(data) {
201
201
  }
202
202
  }
203
203
 
204
- export function annexb2Avcc(data) {
205
- let extradata, key = !1, nalus = splitNaluByStartCode(data);
204
+ export function generateAnnexbExtradata(data) {
205
+ let nalus = naluUtil.splitNaluByStartCode(data);
206
206
  if (nalus.length >= 2) {
207
207
  const vpss = [], spss = [], ppss = [];
208
- nalus.forEach((nalu => {
208
+ if (nalus.forEach((nalu => {
209
209
  const type = nalu[0] >>> 1 & 63;
210
210
  32 === type ? vpss.push(nalu) : 33 === type ? spss.push(nalu) : 34 === type && ppss.push(nalu);
211
- })), spss.length && ppss.length && (extradata = vpsSpsPps2Extradata(vpss, spss, ppss),
211
+ })), spss.length && ppss.length) {
212
+ const nalus = [ spss[0], ppss[0] ];
213
+ return vpss.length && nalus.unshift(vpss[0]), naluUtil.joinNaluByStartCode(nalus, 0);
214
+ }
215
+ }
216
+ }
217
+
218
+ export function annexb2Avcc(data) {
219
+ let extradata, key = !1, nalus = naluUtil.splitNaluByStartCode(data);
220
+ if (nalus.length) {
221
+ const vpss = [], spss = [], ppss = [];
222
+ nalus.forEach((nalu => {
223
+ const type = nalu[0] >>> 1 & 63;
224
+ 32 === type ? vpss.push(nalu) : 33 === type ? spss.push(nalu) : 34 === type && ppss.push(nalu),
225
+ 19 !== type && 20 !== type && 21 !== type || (key = !0);
226
+ })), spss.length && ppss.length ? (extradata = vpsSpsPps2Extradata(vpss, spss, ppss),
212
227
  nalus = nalus.filter((nalu => {
213
228
  const type = nalu[0] >>> 1 & 63;
214
229
  return 32 !== type && 33 !== type && 34 !== type && 35 !== type;
215
- })));
230
+ }))) : nalus = nalus.filter((nalu => 35 !== (nalu[0] >>> 1 & 63)));
216
231
  }
217
- const length = nalus.reduce(((prev, nalu) => prev + 3 + 1 + nalu.length), 0), bufferPointer = avMalloc(length), buffer = mapUint8Array(bufferPointer, length), bufferWriter = new BufferWriter(buffer);
218
- return array.each(nalus, (nalu => {
219
- bufferWriter.writeUint32(nalu.length), bufferWriter.writeBuffer(nalu.subarray(0));
220
- const type = nalu[0] >>> 1 & 63;
221
- 19 !== type && 20 !== type && 21 !== type || (key = !0);
222
- })), {
232
+ const length = nalus.reduce(((prev, nalu) => prev + 3 + 1 + nalu.length), 0), bufferPointer = avMalloc(length), buffer = mapUint8Array(bufferPointer, length);
233
+ return naluUtil.joinNaluByLength(nalus, 3, buffer), {
223
234
  bufferPointer: bufferPointer,
224
235
  length: length,
225
236
  extradata: extradata,
@@ -227,6 +238,35 @@ export function annexb2Avcc(data) {
227
238
  };
228
239
  }
229
240
 
241
+ export function nalus2Annexb(vpss, spss, ppss, nalus) {
242
+ const lengths = [ naluUtil.joinNaluByStartCodeLength(vpss, 0), naluUtil.joinNaluByStartCodeLength(spss, 0), naluUtil.joinNaluByStartCodeLength(ppss, 0), naluUtil.joinNaluByStartCodeLength(nalus, 2) ];
243
+ let length = lengths.reduce(((prev, length) => prev + length), 0);
244
+ const bufferPointer = avMalloc(length + 7);
245
+ let offset = bufferPointer;
246
+ return intwrite.w8((offset += 1, offset - 1), 0), intwrite.w8((offset += 1, offset - 1), 0),
247
+ intwrite.w8((offset += 1, offset - 1), 0), intwrite.w8((offset += 1, offset - 1), 1),
248
+ intwrite.w8((offset += 1, offset - 1), 70), intwrite.w8((offset += 1, offset - 1), 1),
249
+ intwrite.w8((offset += 1, offset - 1), 80), vpss.length && (naluUtil.joinNaluByStartCode(vpss, 0, mapUint8Array(offset, lengths[0])),
250
+ offset += lengths[0]), spss.length && (naluUtil.joinNaluByStartCode(spss, 0, mapUint8Array(offset, lengths[1])),
251
+ offset += lengths[1]), ppss.length && (naluUtil.joinNaluByStartCode(ppss, 0, mapUint8Array(offset, lengths[2])),
252
+ offset += lengths[2]), nalus.length && naluUtil.joinNaluByStartCode(nalus, 2, mapUint8Array(offset, lengths[3])),
253
+ {
254
+ bufferPointer: bufferPointer,
255
+ length: length + 7
256
+ };
257
+ }
258
+
259
+ export function annexbAddExtradata(data, extradata) {
260
+ let nalus = naluUtil.splitNaluByStartCode(data).concat(naluUtil.splitNaluByStartCode(extradata));
261
+ if (nalus.length) {
262
+ let vpss = [], spss = [], ppss = [], others = [];
263
+ return nalus.forEach((nalu => {
264
+ const type = nalu[0] >>> 1 & 63;
265
+ 32 === type ? vpss.push(nalu) : 33 === type ? spss.push(nalu) : 34 === type ? ppss.push(nalu) : 35 !== type && others.push(nalu);
266
+ })), nalus2Annexb(vpss, spss, ppss, others);
267
+ }
268
+ }
269
+
230
270
  export function avcc2Annexb(data, extradata) {
231
271
  const naluLengthSizeMinusOne = extradata ? 3 & extradata[21] : 3;
232
272
  let vpss = [], spss = [], ppss = [], key = !1;
@@ -234,93 +274,38 @@ export function avcc2Annexb(data, extradata) {
234
274
  const result = extradata2VpsSpsPps(extradata);
235
275
  vpss = result.vpss, spss = result.spss, ppss = result.ppss, key = !0;
236
276
  }
237
- const nalus = [], bufferReader = new BufferReader(data);
238
- for (;bufferReader.remainingSize() > 0; ) {
239
- let length = 0;
240
- length = 3 === naluLengthSizeMinusOne ? bufferReader.readUint32() : 2 === naluLengthSizeMinusOne ? bufferReader.readUint24() : 1 === naluLengthSizeMinusOne ? bufferReader.readUint16() : bufferReader.readUint8(),
241
- nalus.push(bufferReader.readBuffer(length));
242
- }
243
- let length = vpss.reduce(((prev, vps) => prev + 4 + vps.length), 0);
244
- length = spss.reduce(((prev, sps) => prev + 4 + sps.length), length), length = ppss.reduce(((prev, pps) => prev + 4 + pps.length), length),
245
- length = nalus.reduce(((prev, nalu, index) => prev + (index ? 3 : 4) + nalu.length), length);
246
- const bufferPointer = avMalloc(length + 7), buffer = mapUint8Array(bufferPointer, length + 7), bufferWriter = new BufferWriter(buffer);
247
- return bufferWriter.writeUint8(0), bufferWriter.writeUint8(0), bufferWriter.writeUint8(0),
248
- bufferWriter.writeUint8(1), bufferWriter.writeUint8(70), bufferWriter.writeUint8(0),
249
- bufferWriter.writeUint8(240), array.each(vpss, (vps => {
250
- bufferWriter.writeUint8(0), bufferWriter.writeUint8(0), bufferWriter.writeUint8(0),
251
- bufferWriter.writeUint8(1), bufferWriter.writeBuffer(vps);
252
- })), array.each(spss, (sps => {
253
- bufferWriter.writeUint8(0), bufferWriter.writeUint8(0), bufferWriter.writeUint8(0),
254
- bufferWriter.writeUint8(1), bufferWriter.writeBuffer(sps);
255
- })), array.each(ppss, (pps => {
256
- bufferWriter.writeUint8(0), bufferWriter.writeUint8(0), bufferWriter.writeUint8(0),
257
- bufferWriter.writeUint8(1), bufferWriter.writeBuffer(pps);
258
- })), array.each(nalus, ((nalu, index) => {
259
- bufferWriter.writeUint8(0), bufferWriter.writeUint8(0), index || bufferWriter.writeUint8(0),
260
- bufferWriter.writeUint8(1), bufferWriter.writeBuffer(nalu);
261
- const type = nalu[0] >>> 1 & 63;
262
- 19 !== type && 20 !== type && 21 !== type || (key = !0);
263
- })), {
264
- bufferPointer: bufferPointer,
265
- length: length + 7,
277
+ return {
278
+ ...nalus2Annexb(vpss, spss, ppss, naluUtil.splitNaluByLength(data, naluLengthSizeMinusOne).filter((nalu => 35 !== (nalu[0] >>> 1 & 63)))),
266
279
  key: key
267
280
  };
268
281
  }
269
282
 
270
- export function parseAvccExtraData(avpacket, stream) {
271
- if (!(1 & cheap__CTypeEnumRead__0[15](avpacket + 36))) return;
272
- const data = getAVPacketData(avpacket);
273
- if (isAnnexb(data)) return;
274
- const naluLengthSizeMinusOne = stream.metadata.naluLengthSizeMinusOne ?? 3;
275
- let vpss = [], spss = [], ppss = [];
276
- const bufferReader = new BufferReader(data);
277
- for (;bufferReader.remainingSize() > 0; ) {
278
- let length = 0;
279
- length = 3 === naluLengthSizeMinusOne ? bufferReader.readUint32() : 2 === naluLengthSizeMinusOne ? bufferReader.readUint24() : 1 === naluLengthSizeMinusOne ? bufferReader.readUint16() : bufferReader.readUint8();
280
- const nalu = data.subarray(Number(BigInt.asIntN(32, bufferReader.getPos())), Number(BigInt.asIntN(32, bufferReader.getPos())) + length);
281
- bufferReader.skip(length);
282
- const naluType = nalu[0] >>> 1 & 63;
283
- 33 === naluType ? spss.push(nalu) : 34 === naluType ? ppss.push(nalu) : 32 === naluType && vpss.push(nalu);
284
- }
285
- if (spss.length || ppss.length || vpss.length) {
286
- const extradata = vpsSpsPps2Extradata(vpss, spss, ppss), extradataPointer = avMalloc(extradata.length);
287
- memcpyFromUint8Array(extradataPointer, extradata.length, extradata), addAVPacketSideData(avpacket, 1, extradataPointer, extradata.length);
288
- }
289
- }
290
-
291
- export function parseAnnexbExtraData(avpacket, force = !1) {
292
- if (!(1 & cheap__CTypeEnumRead__0[15](avpacket + 36) || force)) return;
293
- const data = getAVPacketData(avpacket);
294
- if (!isAnnexb(data)) return;
295
- let nalus = splitNaluByStartCode(data);
296
- if (nalus.length > 2) {
297
- const vpss = [], spss = [], ppss = [];
298
- if (nalus.forEach((nalu => {
299
- const type = nalu[0] >>> 1 & 63;
300
- 32 === type ? vpss.push(nalu) : 33 === type ? spss.push(nalu) : 34 === type && ppss.push(nalu);
301
- })), vpss.length && spss.length && ppss.length) {
302
- const extradata = vpsSpsPps2Extradata(vpss, spss, ppss), extradataPointer = avMalloc(extradata.length);
303
- memcpyFromUint8Array(extradataPointer, extradata.length, extradata), addAVPacketSideData(avpacket, 1, extradataPointer, extradata.length),
304
- cheap__CTypeEnumWrite__4[15](avpacket + 36, 1 | cheap__CTypeEnumRead__0[15](avpacket + 36));
305
- }
306
- }
307
- }
308
-
309
283
  export function parseAVCodecParameters(stream, extradata) {
310
- if (!extradata && stream.sideData[1] && (extradata = stream.sideData[1]), extradata && extradata.length >= 6) {
284
+ let sps;
285
+ if (!extradata && stream.sideData[1] && (extradata = stream.sideData[1]), extradata && naluUtil.isAnnexb(extradata)) array.each(naluUtil.splitNaluByStartCode(extradata), (nalu => {
286
+ if (33 === (nalu[0] >>> 1 & 63)) return sps = nalu, !1;
287
+ })); else if (extradata && extradata.length >= 6) {
311
288
  stream.metadata.naluLengthSizeMinusOne = 3 & extradata[21];
312
289
  const {spss: spss} = extradata2VpsSpsPps(extradata);
313
- if (spss.length) {
314
- const {profile: profile, level: level, width: width, height: height} = parseSPS(spss[0]);
315
- stream.codecpar.profile = profile, stream.codecpar.level = level, stream.codecpar.width = width,
316
- stream.codecpar.height = height;
290
+ spss.length && (sps = spss[0]);
291
+ }
292
+ if (sps) {
293
+ const {profile: profile, level: level, width: width, height: height, video_delay: video_delay, chroma_format_idc: chroma_format_idc, bit_depth_luma_minus8: bit_depth_luma_minus8} = parseSPS(sps);
294
+ switch (stream.codecpar.profile = profile, stream.codecpar.level = level, stream.codecpar.width = width,
295
+ stream.codecpar.height = height, stream.codecpar.videoDelay = video_delay, bit_depth_luma_minus8) {
296
+ case 0:
297
+ stream.codecpar.format = 3 === chroma_format_idc ? 5 : 2 === chroma_format_idc ? 4 : 0;
298
+ break;
299
+
300
+ case 2:
301
+ stream.codecpar.format = 3 === chroma_format_idc ? 68 : 2 === chroma_format_idc ? 64 : 62;
317
302
  }
318
303
  }
319
304
  }
320
305
 
321
306
  export function isIDR(avpacket, naluLengthSize = 4) {
322
307
  if (2 === cheap__CTypeEnumRead__0[15](avpacket + 80)) {
323
- return splitNaluByStartCode(mapUint8Array(cheap__CTypeEnumRead__0[20](avpacket + 24), cheap__CTypeEnumRead__0[15](avpacket + 28))).some((nalu => {
308
+ return naluUtil.splitNaluByStartCode(mapUint8Array(cheap__CTypeEnumRead__0[20](avpacket + 24), cheap__CTypeEnumRead__0[15](avpacket + 28))).some((nalu => {
324
309
  const type = nalu[0] >>> 1 & 63;
325
310
  return 20 === type || 19 === type;
326
311
  }));
@@ -343,7 +328,7 @@ export function parseSPS(sps) {
343
328
  let offset = 0;
344
329
  0 === sps[0] && 0 === sps[1] && 0 === sps[2] && 1 === sps[3] && (offset = 4);
345
330
  let profile = 0, level = 0, width = 0, height = 0, bit_depth_luma_minus8 = 0, bit_depth_chroma_minus8 = 0, chroma_format_idc = 1, general_profile_space = 0, general_tier_flag = 0, general_profile_compatibility_flags = 0, constraint_flags = 0;
346
- const buffer = naluUnescape(sps.subarray(offset)), bitReader = new BitReader(buffer.length);
331
+ const buffer = naluUtil.naluUnescape(sps.subarray(offset)), bitReader = new BitReader(buffer.length);
347
332
  bitReader.appendBuffer(buffer), bitReader.readU1(), bitReader.readU(6), bitReader.readU(6),
348
333
  bitReader.readU(3), bitReader.readU(4);
349
334
  const spsMaxSubLayersMinus1 = bitReader.readU(3);
@@ -374,8 +359,10 @@ export function parseSPS(sps) {
374
359
  height -= SubHeightC * (1 << bit_depth_luma_minus8 + 1) * (confWinTopOffset + confWinBottomOffset);
375
360
  }
376
361
  const log2_max_poc_lsb = expgolomb.readUE(bitReader) + 4;
362
+ let video_delay = 0;
377
363
  for (let i = bitReader.readU1() ? 0 : spsMaxSubLayersMinus1; i < spsMaxSubLayersMinus1 + 1; i++) expgolomb.readUE(bitReader),
378
- expgolomb.readUE(bitReader), expgolomb.readUE(bitReader);
364
+ video_delay = Math.max(video_delay, Math.min(expgolomb.readUE(bitReader), 16)),
365
+ expgolomb.readUE(bitReader);
379
366
  const log2_min_cb_size = expgolomb.readUE(bitReader) + 3, log2_diff_max_min_coding_block_size = expgolomb.readUE(bitReader), log2_min_tb_size = expgolomb.readUE(bitReader) + 2, log2_diff_max_min_transform_block_size = expgolomb.readUE(bitReader), log2_ctb_size = log2_min_cb_size + log2_diff_max_min_coding_block_size, log2_min_pu_size = log2_min_cb_size - 1, ctb_width = width + (1 << log2_ctb_size) - 1 >> log2_ctb_size, ctb_height = height + (1 << log2_ctb_size) - 1 >> log2_ctb_size;
380
367
  return {
381
368
  profile: profile,
@@ -406,7 +393,8 @@ export function parseSPS(sps) {
406
393
  min_tb_height: height >> log2_min_tb_size,
407
394
  min_pu_width: width >> log2_min_pu_size,
408
395
  min_pu_height: height >> log2_min_pu_size,
409
- log2_max_poc_lsb: log2_max_poc_lsb
396
+ log2_max_poc_lsb: log2_max_poc_lsb,
397
+ video_delay: video_delay
410
398
  };
411
399
  }
412
400
 
@@ -414,7 +402,7 @@ export function parsePPS(pps) {
414
402
  if (!pps || pps.length < 3) return;
415
403
  let offset = 0;
416
404
  0 === pps[0] && 0 === pps[1] && 0 === pps[2] && 1 === pps[3] && (offset = 4);
417
- const buffer = naluUnescape(pps.subarray(offset)), bitReader = new BitReader(buffer.length);
405
+ const buffer = naluUtil.naluUnescape(pps.subarray(offset)), bitReader = new BitReader(buffer.length);
418
406
  bitReader.appendBuffer(buffer);
419
407
  return {
420
408
  pps_pic_parameter_set_id: expgolomb.readUE(bitReader),
@@ -1 +1 @@
1
- {"version":3,"names":["array","BufferWriter","BufferReader","BitReader","mapUint8Array","memcpyFromUint8Array","naluUnescape","splitNaluByStartCode","isAnnexb","addAVPacketSideData","getAVPacketData","avMalloc","expgolomb","intread","HEVCProfile2Name","LevelCapabilities","level","maxLumaSamplesPerSecond","maxLumaPictureSize","maxBitRate","main","main10","getLevelByResolution","profile","width","height","fps","bitrate","selectedProfile","lumaSamplesPerSecond","extradata2VpsSpsPps","extradata","bufferReader","skip","vpss","spss","ppss","arrayLen","readUint8","i","naluType","count","readUint16","list","j","len","push","readBuffer","vpsSpsPps2Extradata","sps","length","reduce","prev","value","buffer","Uint8Array","bufferWriter","spsData","parseSPS","writeUint8","chroma_format_idc","bit_depth_luma_minus8","bit_depth_chroma_minus8","writeUint16","numOfArrays","each","vps","writeBuffer","pps","annexbExtradata2AvccExtradata","data","nalus","forEach","nalu","type","annexb2Avcc","key","filter","bufferPointer","writeUint32","subarray","avcc2Annexb","naluLengthSizeMinusOne","result","remainingSize","readUint32","readUint24","index","parseAvccExtraData","avpacket","stream","cheap__CTypeEnumRead__0","metadata","Number","BigInt","asIntN","getPos","extradataPointer","parseAnnexbExtraData","force","cheap__CTypeEnumWrite__4","parseAVCodecParameters","sideData","codecpar","isIDR","naluLengthSize","some","size","r8","rb32","rb24","rb16","offset","general_profile_space","general_tier_flag","general_profile_compatibility_flags","constraint_flags","bitReader","appendBuffer","readU1","readU","spsMaxSubLayersMinus1","separate_colour_plane_flag","subLayerProfilePresentFlag","Array","subLayerLevelPresentFlag","readUE","confWinLeftOffset","confWinRightOffset","confWinTopOffset","confWinBottomOffset","SubWidthC","SubHeightC","log2_max_poc_lsb","log2_min_cb_size","log2_diff_max_min_coding_block_size","log2_min_tb_size","log2_diff_max_min_transform_block_size","log2_ctb_size","log2_min_pu_size","ctb_width","ctb_height","log2_max_trafo_size","ctb_size","min_cb_width","min_cb_height","min_tb_width","min_tb_height","min_pu_width","min_pu_height","parsePPS","pps_pic_parameter_set_id","pps_seq_parameter_set_id","dependent_slice_segment_flag","output_flag_present_flag","num_extra_slice_header_bits"],"sources":["../../../codecs/hevc.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["array","BufferWriter","BufferReader","BitReader","mapUint8Array","naluUtil","avMalloc","expgolomb","intread","intwrite","HEVC_MAX_DPB_FRAMES","HEVCProfile2Name","LevelCapabilities","level","maxLumaSamplesPerSecond","maxLumaPictureSize","maxBitRate","main","main10","getLevelByResolution","profile","width","height","fps","bitrate","selectedProfile","lumaSamplesPerSecond","extradata2VpsSpsPps","extradata","bufferReader","skip","vpss","spss","ppss","arrayLen","readUint8","i","naluType","count","readUint16","list","j","len","push","readBuffer","vpsSpsPps2Extradata","sps","length","reduce","prev","value","buffer","Uint8Array","bufferWriter","spsData","parseSPS","writeUint8","chroma_format_idc","bit_depth_luma_minus8","bit_depth_chroma_minus8","writeUint16","numOfArrays","each","vps","writeBuffer","pps","annexbExtradata2AvccExtradata","data","nalus","splitNaluByStartCode","forEach","nalu","type","generateAnnexbExtradata","unshift","joinNaluByStartCode","annexb2Avcc","key","filter","bufferPointer","joinNaluByLength","nalus2Annexb","lengths","joinNaluByStartCodeLength","offset","w8","annexbAddExtradata","concat","others","avcc2Annexb","naluLengthSizeMinusOne","result","splitNaluByLength","parseAVCodecParameters","stream","sideData","isAnnexb","metadata","video_delay","codecpar","videoDelay","format","isIDR","avpacket","naluLengthSize","cheap__CTypeEnumRead__0","some","size","r8","rb32","rb24","rb16","general_profile_space","general_tier_flag","general_profile_compatibility_flags","constraint_flags","naluUnescape","subarray","bitReader","appendBuffer","readU1","readU","spsMaxSubLayersMinus1","separate_colour_plane_flag","subLayerProfilePresentFlag","Array","subLayerLevelPresentFlag","readUE","confWinLeftOffset","confWinRightOffset","confWinTopOffset","confWinBottomOffset","SubWidthC","SubHeightC","log2_max_poc_lsb","Math","max","min","log2_min_cb_size","log2_diff_max_min_coding_block_size","log2_min_tb_size","log2_diff_max_min_transform_block_size","log2_ctb_size","log2_min_pu_size","ctb_width","ctb_height","log2_max_trafo_size","ctb_size","min_cb_width","min_cb_height","min_tb_width","min_tb_height","min_pu_width","min_pu_height","parsePPS","pps_pic_parameter_set_id","pps_seq_parameter_set_id","dependent_slice_segment_flag","output_flag_present_flag","num_extra_slice_header_bits"],"sources":["../../../codecs/hevc.ts"],"mappings":"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","ignoreList":[]}
@@ -20,4 +20,4 @@ export declare function getBufferSamples(buffer: Uint8Array): number;
20
20
  *
21
21
  */
22
22
  export declare function parseAVCodecParameters(stream: AVStream, extradata?: Uint8ArrayInterface): void;
23
- export declare function avCodecParameters2Extradata(codecpar: AVCodecParameters): Uint8Array;
23
+ export declare function avCodecParameters2Extradata(codecpar: AVCodecParameters): Uint8Array<ArrayBuffer>;
@@ -38,5 +38,5 @@ export declare function parseExtraData(extradata: Uint8ArrayInterface): {
38
38
  colorTrc: number;
39
39
  colorSpace: number;
40
40
  };
41
- export declare function generateExtradata(codecpar: pointer<AVCodecParameters>): Uint8Array;
41
+ export declare function generateExtradata(codecpar: pointer<AVCodecParameters>): Uint8Array<ArrayBufferLike>;
42
42
  export declare function isIDR(avpacket: pointer<AVPacket>): boolean;
@@ -104,35 +104,84 @@ export declare const enum VVCAPSType {
104
104
  *
105
105
  */
106
106
  export declare function extradata2VpsSpsPps(extradata: Uint8ArrayInterface): {
107
- vpss: any[];
108
- spss: any[];
109
- ppss: any[];
107
+ vpss: Uint8ArrayInterface[];
108
+ spss: Uint8ArrayInterface[];
109
+ ppss: Uint8ArrayInterface[];
110
110
  };
111
- export declare function vpsSpsPps2Extradata(vpss: Uint8ArrayInterface[], spss: Uint8ArrayInterface[], ppss: Uint8ArrayInterface[]): Uint8Array;
112
- export declare function annexbExtradata2AvccExtradata(data: Uint8ArrayInterface): Uint8Array;
111
+ /**
112
+ * annexb vps sps pps 转 avcc 格式的 extradata
113
+ *
114
+ * @param vpss
115
+ * @param spss
116
+ * @param ppss
117
+ * @returns
118
+ */
119
+ export declare function vpsSpsPps2Extradata(vpss: Uint8ArrayInterface[], spss: Uint8ArrayInterface[], ppss: Uint8ArrayInterface[]): Uint8Array<ArrayBuffer>;
120
+ /**
121
+ * annexb extradata 转 avcc extradata
122
+ *
123
+ * @param data
124
+ * @returns
125
+ */
126
+ export declare function annexbExtradata2AvccExtradata(data: Uint8ArrayInterface): Uint8Array<ArrayBuffer>;
127
+ /**
128
+ * 从 annexb 码流里面生成 annexb extradata
129
+ *
130
+ * 提取出 vps、 sps 和 pps
131
+ *
132
+ * @param data
133
+ * @returns
134
+ */
135
+ export declare function generateAnnexbExtradata(data: Uint8ArrayInterface): Uint8Array<ArrayBufferLike>;
113
136
  /**
114
137
  *
115
138
  * annexb 格式的 NALU 转 avcc NALU
116
139
  *
140
+ * 需要保证 data 是 safe 的
141
+ *
117
142
  */
118
143
  export declare function annexb2Avcc(data: Uint8ArrayInterface): {
119
144
  bufferPointer: pointer<void>;
120
145
  length: number;
121
- extradata: Uint8Array;
146
+ extradata: Uint8Array<ArrayBufferLike>;
122
147
  key: boolean;
123
148
  };
149
+ /**
150
+ *
151
+ * 需要保证 data 是 safe 的
152
+ *
153
+ * @param vpss
154
+ * @param spss
155
+ * @param ppss
156
+ * @param nalus
157
+ * @returns
158
+ */
159
+ export declare function nalus2Annexb(vpss: Uint8ArrayInterface[], spss: Uint8ArrayInterface[], ppss: Uint8ArrayInterface[], nalus: Uint8ArrayInterface[], key: boolean): {
160
+ bufferPointer: pointer<void>;
161
+ length: number;
162
+ };
163
+ /**
164
+ * annexb 添加 sps pps
165
+ *
166
+ * @param data
167
+ * @param extradata
168
+ */
169
+ export declare function annexbAddExtradata(data: Uint8ArrayInterface, extradata: Uint8ArrayInterface): {
170
+ bufferPointer: pointer<void>;
171
+ length: number;
172
+ };
124
173
  /**
125
174
  * avcc 格式的 NALU 转 annexb NALU
126
175
  *
176
+ * 需要保证 data 是 safe 的
177
+ *
127
178
  */
128
179
  export declare function avcc2Annexb(data: Uint8ArrayInterface, extradata?: Uint8ArrayInterface): {
129
- bufferPointer: pointer<void>;
130
- length: any;
131
180
  key: boolean;
181
+ bufferPointer: pointer<void>;
182
+ length: number;
132
183
  };
133
- export declare function parseAvccExtraData(avpacket: pointer<AVPacket>, stream: AVStream): void;
134
- export declare function parseAnnexbExtraData(avpacket: pointer<AVPacket>, force?: boolean): void;
135
- export declare function parseAVCodecParametersBySps(stream: AVStream, sps: Uint8Array): void;
184
+ export declare function parseAVCodecParametersBySps(stream: AVStream, sps: Uint8ArrayInterface): void;
136
185
  export declare function parseAVCodecParameters(stream: AVStream, extradata?: Uint8ArrayInterface): void;
137
186
  export declare function isIDR(avpacket: pointer<AVPacket>, naluLengthSize?: int32): boolean;
138
187
  export interface VvcSPS {
@@ -140,6 +189,7 @@ export interface VvcSPS {
140
189
  level: number;
141
190
  width: number;
142
191
  height: number;
192
+ videoDelay: number;
143
193
  chromaFormatIdc: number;
144
194
  bitDepthMinus8: number;
145
195
  generalProfileSpace: number;