@libmedia/avutil 0.4.2 → 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 +7 -2
@@ -1,7 +1,5 @@
1
1
  import { CTypeEnumRead as cheap__CTypeEnumRead__1 } from "@libmedia/cheap/ctypeEnumRead";
2
2
 
3
- import { CTypeEnumWrite as cheap__CTypeEnumWrite__5 } 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";
@@ -12,11 +10,9 @@ import BitReader from "@libmedia/common/io/BitReader";
12
10
 
13
11
  import * as logger from "@libmedia/common/util/logger";
14
12
 
15
- import { mapUint8Array, memcpyFromUint8Array } from "@libmedia/cheap/std/memory";
16
-
17
- import { addAVPacketSideData, getAVPacketData } from "../util/avpacket";
13
+ import { mapUint8Array } from "@libmedia/cheap/std/memory";
18
14
 
19
- import { naluUnescape, splitNaluByStartCode, isAnnexb } from "../util/nalu";
15
+ import * as naluUtil from "../util/nalu";
20
16
 
21
17
  import { avMalloc } from "../util/mem";
22
18
 
@@ -24,6 +20,10 @@ import * as expgolomb from "../util/expgolomb";
24
20
 
25
21
  import * as intread from "../util/intread";
26
22
 
23
+ import * as intwrite from "../util/intwrite";
24
+
25
+ export const H264_MAX_DPB_FRAMES = 16;
26
+
27
27
  export const NALULengthSizeMinusOne = 3;
28
28
 
29
29
  export const H264Profile2Name = {
@@ -147,8 +147,8 @@ export function extradata2SpsPps(extradata) {
147
147
  }
148
148
 
149
149
  export function spsPps2Extradata(spss, ppss, spsExts = []) {
150
- spss.length > 32 && (logger.warn(`h264 metadata's sps max length is 32, but get ${spss.length}`, "src/avutil/codecs/h264.ts", 210),
151
- spss = spss.slice(0, 32)), spss.length > 256 && (logger.warn(`h264 metadata's pps max length is 256, but get ${spss.length}`, "src/avutil/codecs/h264.ts", 214),
150
+ spss.length > 32 && (logger.warn(`h264 metadata's sps max length is 32, but get ${spss.length}`, "src/avutil/codecs/h264.ts", 221),
151
+ spss = spss.slice(0, 32)), spss.length > 256 && (logger.warn(`h264 metadata's pps max length is 256, but get ${spss.length}`, "src/avutil/codecs/h264.ts", 225),
152
152
  spss = spss.slice(0, 256));
153
153
  let length = 7;
154
154
  length = spss.reduce(((prev, sps) => prev + 2 + sps.length), length), length = ppss.reduce(((prev, pps) => prev + 2 + pps.length), length);
@@ -170,7 +170,7 @@ export function spsPps2Extradata(spss, ppss, spsExts = []) {
170
170
  }
171
171
 
172
172
  export function annexbExtradata2AvccExtradata(data) {
173
- let nalus = splitNaluByStartCode(data);
173
+ let nalus = naluUtil.splitNaluByStartCode(data);
174
174
  if (nalus.length > 1) {
175
175
  const spss = [], ppss = [], spsExts = [];
176
176
  if (nalus.forEach((nalu => {
@@ -180,24 +180,35 @@ export function annexbExtradata2AvccExtradata(data) {
180
180
  }
181
181
  }
182
182
 
183
- export function annexb2Avcc(data) {
184
- let extradata, nalus = splitNaluByStartCode(data), key = !1;
183
+ export function generateAnnexbExtradata(data) {
184
+ let nalus = naluUtil.splitNaluByStartCode(data);
185
185
  if (nalus.length > 1) {
186
186
  const spss = [], ppss = [], spsExts = [];
187
- nalus.forEach((nalu => {
187
+ if (nalus.forEach((nalu => {
188
188
  const type = 31 & nalu[0];
189
189
  7 === type ? spss.push(nalu) : 8 === type ? ppss.push(nalu) : 13 === type && spsExts.push(nalu);
190
- })), spss.length && ppss.length && (extradata = spsPps2Extradata(spss, ppss, spsExts)),
190
+ })), spss.length && ppss.length) {
191
+ const nalus = [ spss[0], ppss[0] ];
192
+ return spsExts.length && nalus.push(spsExts[0]), naluUtil.joinNaluByStartCode(nalus, 0);
193
+ }
194
+ }
195
+ }
196
+
197
+ export function annexb2Avcc(data) {
198
+ let extradata, nalus = naluUtil.splitNaluByStartCode(data), key = !1;
199
+ if (nalus.length) {
200
+ const spss = [], ppss = [], spsExts = [];
201
+ nalus.forEach((nalu => {
202
+ const type = 31 & nalu[0];
203
+ 7 === type ? spss.push(nalu) : 8 === type ? ppss.push(nalu) : 13 === type ? spsExts.push(nalu) : 5 === type && (key = !0);
204
+ })), spss.length && ppss.length ? (extradata = spsPps2Extradata(spss, ppss, spsExts),
191
205
  nalus = nalus.filter((nalu => {
192
206
  const type = 31 & nalu[0];
193
207
  return 9 !== type && 8 !== type && 7 !== type && 13 !== type;
194
- }));
208
+ }))) : nalus = nalus.filter((nalu => 9 !== (31 & nalu[0])));
195
209
  }
196
- const length = nalus.reduce(((prev, nalu) => prev + 3 + 1 + nalu.length), 0), bufferPointer = avMalloc(length), buffer = mapUint8Array(bufferPointer, length), bufferWriter = new BufferWriter(buffer);
197
- return array.each(nalus, (nalu => {
198
- bufferWriter.writeUint32(nalu.length), bufferWriter.writeBuffer(nalu.subarray(0));
199
- 5 === (31 & nalu[0]) && (key = !0);
200
- })), {
210
+ const length = nalus.reduce(((prev, nalu) => prev + 3 + 1 + nalu.length), 0), bufferPointer = avMalloc(length), buffer = mapUint8Array(bufferPointer, length);
211
+ return naluUtil.joinNaluByLength(nalus, 3, buffer), {
201
212
  bufferPointer: bufferPointer,
202
213
  length: length,
203
214
  key: key,
@@ -205,6 +216,36 @@ export function annexb2Avcc(data) {
205
216
  };
206
217
  }
207
218
 
219
+ export function nalus2Annexb(spss, ppss, spsExts, seis, others) {
220
+ const lengths = [ naluUtil.joinNaluByStartCodeLength(seis, 0), naluUtil.joinNaluByStartCodeLength(spss, 0), naluUtil.joinNaluByStartCodeLength(ppss, 0), naluUtil.joinNaluByStartCodeLength(spsExts, 0), naluUtil.joinNaluByStartCodeLength(others, 2) ];
221
+ let length = lengths.reduce(((prev, length) => prev + length), 0);
222
+ const bufferPointer = avMalloc(length + 6);
223
+ let offset = bufferPointer;
224
+ return intwrite.w8((offset += 1, offset - 1), 0), intwrite.w8((offset += 1, offset - 1), 0),
225
+ intwrite.w8((offset += 1, offset - 1), 0), intwrite.w8((offset += 1, offset - 1), 1),
226
+ intwrite.w8((offset += 1, offset - 1), 9), intwrite.w8((offset += 1, offset - 1), 240),
227
+ seis.length && (naluUtil.joinNaluByStartCode(seis, 0, mapUint8Array(offset, lengths[0])),
228
+ offset += lengths[0]), spss.length && (naluUtil.joinNaluByStartCode(spss, 0, mapUint8Array(offset, lengths[1])),
229
+ offset += lengths[1]), ppss.length && (naluUtil.joinNaluByStartCode(ppss, 0, mapUint8Array(offset, lengths[2])),
230
+ offset += lengths[2]), spsExts.length && (naluUtil.joinNaluByStartCode(spsExts, 0, mapUint8Array(offset, lengths[3])),
231
+ offset += lengths[3]), others.length && naluUtil.joinNaluByStartCode(others, 2, mapUint8Array(offset, lengths[4])),
232
+ {
233
+ bufferPointer: bufferPointer,
234
+ length: length + 6
235
+ };
236
+ }
237
+
238
+ export function annexbAddExtradata(data, extradata) {
239
+ let nalus = naluUtil.splitNaluByStartCode(data).concat(naluUtil.splitNaluByStartCode(extradata));
240
+ if (nalus.length) {
241
+ const spss = [], ppss = [], spsExts = [], seis = [], others = [];
242
+ return nalus.forEach((nalu => {
243
+ const type = 31 & nalu[0];
244
+ 7 === type ? spss.push(nalu) : 8 === type ? ppss.push(nalu) : 13 === type ? spsExts.push(nalu) : 6 === type ? seis.push(nalu) : 9 !== type && others.push(nalu);
245
+ })), nalus2Annexb(spss, ppss, spsExts, seis, others);
246
+ }
247
+ }
248
+
208
249
  export function avcc2Annexb(data, extradata) {
209
250
  const naluLengthSizeMinusOne = extradata ? 3 & extradata[4] : 3;
210
251
  let spss = [], ppss = [], spsExts = [], key = !1;
@@ -212,98 +253,46 @@ export function avcc2Annexb(data, extradata) {
212
253
  const result = extradata2SpsPps(extradata);
213
254
  spss = result.spss, ppss = result.ppss, spsExts = result.spsExts, key = !0;
214
255
  }
215
- const nalus = [], seis = [], bufferReader = new BufferReader(data);
216
- for (;bufferReader.remainingSize() > 0; ) {
217
- let length = 0;
218
- length = 3 === naluLengthSizeMinusOne ? bufferReader.readUint32() : 2 === naluLengthSizeMinusOne ? bufferReader.readUint24() : 1 === naluLengthSizeMinusOne ? bufferReader.readUint16() : bufferReader.readUint8();
219
- const nalu = data.subarray(Number(BigInt.asIntN(32, bufferReader.getPos())), Number(BigInt.asIntN(32, bufferReader.getPos())) + length);
220
- bufferReader.skip(length);
256
+ const others = [], seis = [];
257
+ return naluUtil.splitNaluByLength(data, naluLengthSizeMinusOne).forEach((nalu => {
221
258
  const naluType = 31 & nalu[0];
222
- 6 === naluType ? seis.push(nalu) : 9 !== naluType && nalus.push(nalu);
223
- }
224
- let length = spss.reduce(((prev, sps) => prev + 4 + sps.length), 0);
225
- length = ppss.reduce(((prev, pps) => prev + 4 + pps.length), length), length = spsExts.reduce(((prev, ext) => prev + 4 + ext.length), length),
226
- length = seis.reduce(((prev, sei) => prev + 4 + sei.length), length), length = nalus.reduce(((prev, nalu, index) => prev + (index ? 3 : 4) + nalu.length), length);
227
- const bufferPointer = avMalloc(length + 6), bufferWriter = new BufferWriter(mapUint8Array(bufferPointer, length + 6));
228
- return bufferWriter.writeUint8(0), bufferWriter.writeUint8(0), bufferWriter.writeUint8(0),
229
- bufferWriter.writeUint8(1), bufferWriter.writeUint8(9), bufferWriter.writeUint8(240),
230
- array.each(seis, (sei => {
231
- bufferWriter.writeUint8(0), bufferWriter.writeUint8(0), bufferWriter.writeUint8(0),
232
- bufferWriter.writeUint8(1), bufferWriter.writeBuffer(sei);
233
- })), array.each(spss, (sps => {
234
- bufferWriter.writeUint8(0), bufferWriter.writeUint8(0), bufferWriter.writeUint8(0),
235
- bufferWriter.writeUint8(1), bufferWriter.writeBuffer(sps);
236
- })), array.each(ppss, (pps => {
237
- bufferWriter.writeUint8(0), bufferWriter.writeUint8(0), bufferWriter.writeUint8(0),
238
- bufferWriter.writeUint8(1), bufferWriter.writeBuffer(pps);
239
- })), array.each(spsExts, (ext => {
240
- bufferWriter.writeUint8(0), bufferWriter.writeUint8(0), bufferWriter.writeUint8(0),
241
- bufferWriter.writeUint8(1), bufferWriter.writeBuffer(ext);
242
- })), array.each(nalus, ((nalu, index) => {
243
- bufferWriter.writeUint8(0), bufferWriter.writeUint8(0), index || bufferWriter.writeUint8(0),
244
- bufferWriter.writeUint8(1), bufferWriter.writeBuffer(nalu);
245
- 5 === (31 & nalu[0]) && (key = !0);
259
+ 6 === naluType ? seis.push(nalu) : 9 !== naluType && others.push(nalu), 5 === naluType && (key = !0);
246
260
  })), {
247
- bufferPointer: bufferPointer,
248
- length: length + 6,
261
+ ...nalus2Annexb(spss, ppss, spsExts, seis, others),
249
262
  key: key
250
263
  };
251
264
  }
252
265
 
253
- export function parseAvccExtraData(avpacket, stream) {
254
- if (!(1 & cheap__CTypeEnumRead__1[15](avpacket + 36))) return;
255
- const data = getAVPacketData(avpacket);
256
- if (isAnnexb(data)) return;
257
- const naluLengthSizeMinusOne = stream.metadata.naluLengthSizeMinusOne ?? 3;
258
- let spss = [], ppss = [], spsExts = [], others = [];
259
- const bufferReader = new BufferReader(data);
260
- for (;bufferReader.remainingSize() > 0; ) {
261
- let length = 0;
262
- length = 3 === naluLengthSizeMinusOne ? bufferReader.readUint32() : 2 === naluLengthSizeMinusOne ? bufferReader.readUint24() : 1 === naluLengthSizeMinusOne ? bufferReader.readUint16() : bufferReader.readUint8();
263
- const nalu = data.subarray(Number(BigInt.asIntN(32, bufferReader.getPos())), Number(BigInt.asIntN(32, bufferReader.getPos())) + length);
264
- bufferReader.skip(length);
265
- const naluType = 31 & nalu[0];
266
- 7 === naluType ? spss.push(nalu) : 8 === naluType ? ppss.push(nalu) : 13 === naluType ? spsExts.push(nalu) : others.push(nalu);
267
- }
268
- if (spss.length || ppss.length) {
269
- const extradata = spsPps2Extradata(spss, ppss, spsExts), extradataPointer = avMalloc(extradata.length);
270
- memcpyFromUint8Array(extradataPointer, extradata.length, extradata), addAVPacketSideData(avpacket, 1, extradataPointer, extradata.length);
271
- }
272
- }
273
-
274
- export function parseAnnexbExtraData(avpacket, force = !1) {
275
- if (!(1 & cheap__CTypeEnumRead__1[15](avpacket + 36) || force)) return;
276
- const data = getAVPacketData(avpacket);
277
- if (!isAnnexb(data)) return;
278
- let nalus = splitNaluByStartCode(data);
279
- if (nalus.length > 1) {
280
- const spss = [], ppss = [], spsExts = [];
281
- if (nalus.forEach((nalu => {
282
- const type = 31 & nalu[0];
283
- 7 === type ? spss.push(nalu) : 8 === type ? ppss.push(nalu) : 13 === type && spsExts.push(nalu);
284
- })), spss.length && ppss.length) {
285
- const extradata = spsPps2Extradata(spss, ppss, spsExts), extradataPointer = avMalloc(extradata.length);
286
- memcpyFromUint8Array(extradataPointer, extradata.length, extradata), addAVPacketSideData(avpacket, 1, extradataPointer, extradata.length),
287
- cheap__CTypeEnumWrite__5[15](avpacket + 36, 1 | cheap__CTypeEnumRead__1[15](avpacket + 36));
288
- }
289
- }
290
- }
291
-
292
266
  export function parseAVCodecParameters(stream, extradata) {
293
- if (!extradata && stream.sideData[1] && (extradata = stream.sideData[1]), extradata && extradata.length >= 6) {
267
+ let sps;
268
+ if (!extradata && stream.sideData[1] && (extradata = stream.sideData[1]), extradata && naluUtil.isAnnexb(extradata)) array.each(naluUtil.splitNaluByStartCode(extradata), (nalu => {
269
+ if (7 === (31 & nalu[0])) return sps = nalu, !1;
270
+ })); else if (extradata && extradata.length >= 6) {
294
271
  stream.metadata.naluLengthSizeMinusOne = 3 & extradata[4];
295
272
  const {spss: spss} = extradata2SpsPps(extradata);
296
- if (spss.length) {
297
- const {profile: profile, level: level, width: width, height: height} = parseSPS(spss[0]);
298
- stream.codecpar.profile = profile, stream.codecpar.level = level, stream.codecpar.width = width,
299
- stream.codecpar.height = height;
273
+ spss.length && (sps = spss[0]);
274
+ }
275
+ if (sps) {
276
+ const {profile: profile, level: level, width: width, height: height, videoDelay: videoDelay, chromaFormatIdc: chromaFormatIdc, bitDepthLumaMinus8: bitDepthLumaMinus8} = parseSPS(sps);
277
+ switch (stream.codecpar.profile = profile, stream.codecpar.level = level, stream.codecpar.width = width,
278
+ stream.codecpar.height = height, stream.codecpar.videoDelay = videoDelay, bitDepthLumaMinus8) {
279
+ case 0:
280
+ stream.codecpar.format = 3 === chromaFormatIdc ? 5 : 2 === chromaFormatIdc ? 4 : 0;
281
+ break;
282
+
283
+ case 1:
284
+ stream.codecpar.format = 3 === chromaFormatIdc ? 66 : 2 === chromaFormatIdc ? 70 : 60;
285
+ break;
286
+
287
+ case 2:
288
+ stream.codecpar.format = 3 === chromaFormatIdc ? 68 : 2 === chromaFormatIdc ? 64 : 62;
300
289
  }
301
290
  }
302
291
  }
303
292
 
304
293
  export function isIDR(avpacket, naluLengthSize = 4) {
305
294
  if (2 === cheap__CTypeEnumRead__1[15](avpacket + 80)) {
306
- return splitNaluByStartCode(mapUint8Array(cheap__CTypeEnumRead__1[20](avpacket + 24), cheap__CTypeEnumRead__1[15](avpacket + 28))).some((nalu => 5 === (31 & nalu[0])));
295
+ return naluUtil.splitNaluByStartCode(mapUint8Array(cheap__CTypeEnumRead__1[20](avpacket + 24), cheap__CTypeEnumRead__1[15](avpacket + 28))).some((nalu => 5 === (31 & nalu[0])));
307
296
  }
308
297
  {
309
298
  const size = cheap__CTypeEnumRead__1[15](avpacket + 28);
@@ -321,7 +310,7 @@ export function parseSPS(sps) {
321
310
  if (!sps || sps.length < 3) return;
322
311
  let offset = 0;
323
312
  0 === sps[0] && 0 === sps[1] && 0 === sps[2] && 1 === sps[3] && (offset = 4);
324
- const buffer = naluUnescape(sps.subarray(offset)), bitReader = new BitReader(buffer.length);
313
+ const buffer = naluUtil.naluUnescape(sps.subarray(offset)), bitReader = new BitReader(buffer.length);
325
314
  bitReader.appendBuffer(buffer), bitReader.readU1(), bitReader.readU(2), bitReader.readU(5);
326
315
  const profile = bitReader.readU(8);
327
316
  bitReader.readU1(), bitReader.readU1(), bitReader.readU1(), bitReader.readU1(),
@@ -355,6 +344,32 @@ export function parseSPS(sps) {
355
344
  cropUnitY = 2 - frameCroppingFlag), width -= cropUnitX * (expgolomb.readUE(bitReader) + expgolomb.readUE(bitReader)),
356
345
  height -= cropUnitY * (expgolomb.readUE(bitReader) + expgolomb.readUE(bitReader));
357
346
  }
347
+ let videoDelay = 0;
348
+ if (bitReader.readU1()) {
349
+ let flag = bitReader.readU1();
350
+ if (flag) {
351
+ bitReader.readU(8) >= 17 && (bitReader.readU(16), bitReader.readU(16));
352
+ }
353
+ function parseHrdParameters() {
354
+ const cpbCount = expgolomb.readUE(bitReader) + 1;
355
+ bitReader.readU(4), bitReader.readU(4);
356
+ for (let i = 0; i < cpbCount; i++) expgolomb.readUE(bitReader), expgolomb.readUE(bitReader),
357
+ bitReader.readU1();
358
+ bitReader.readU(5), bitReader.readU(5), bitReader.readU(5), bitReader.readU(5);
359
+ }
360
+ flag = bitReader.readU1(), flag && bitReader.readU1(), flag = bitReader.readU1(),
361
+ flag && (bitReader.readU(3), bitReader.readU1(), flag = bitReader.readU1(), flag && (bitReader.readU(8),
362
+ bitReader.readU(8), bitReader.readU(8))), flag = bitReader.readU1(), flag && (expgolomb.readUE(bitReader),
363
+ expgolomb.readUE(bitReader)), flag = bitReader.readU1(), flag && (bitReader.readU(32),
364
+ bitReader.readU(32), bitReader.readU1());
365
+ let flag1 = bitReader.readU1();
366
+ flag1 && parseHrdParameters();
367
+ let flag2 = bitReader.readU1();
368
+ flag2 && parseHrdParameters(), (flag1 || flag2) && bitReader.readU1(), bitReader.readU1(),
369
+ flag = bitReader.readU1(), flag && (bitReader.readU1(), expgolomb.readUE(bitReader),
370
+ expgolomb.readUE(bitReader), expgolomb.readUE(bitReader), expgolomb.readUE(bitReader),
371
+ videoDelay = Math.min(expgolomb.readUE(bitReader), 16));
372
+ }
358
373
  return {
359
374
  profile: profile,
360
375
  level: level,
@@ -367,7 +382,8 @@ export function parseSPS(sps) {
367
382
  picOrderCntType: picOrderCntType,
368
383
  log2MaxPicOrderCntLsbMinus4: log2MaxPicOrderCntLsbMinus4,
369
384
  deltaPicOrderAlwaysZeroFlag: deltaPicOrderAlwaysZeroFlag,
370
- log2MaxFrameNumMinus4: log2MaxFrameNumMinus4
385
+ log2MaxFrameNumMinus4: log2MaxFrameNumMinus4,
386
+ videoDelay: videoDelay
371
387
  };
372
388
  }
373
389
  //# sourceMappingURL=h264.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["array","BufferWriter","BufferReader","BitReader","logger","mapUint8Array","memcpyFromUint8Array","addAVPacketSideData","getAVPacketData","naluUnescape","splitNaluByStartCode","isAnnexb","avMalloc","expgolomb","intread","NALULengthSizeMinusOne","H264Profile2Name","LevelCapabilities","level","maxResolution","maxFrameRate","getLevelByResolution","width","height","fps","resolution","extradata2SpsPps","extradata","bufferReader","skip","spss","ppss","spsExts","spsLength","readUint8","i","length","readUint16","push","readBuffer","ppsLength","remainingSize","spsExtLength","spsPps2Extradata","warn","slice","reduce","prev","sps","pps","params","parseSPS","profile","ext","buffer","Uint8Array","bufferWriter","writeUint8","each","writeUint16","writeBuffer","chromaFormatIdc","bitDepthLumaMinus8","bitDepthChromaMinus8","annexbExtradata2AvccExtradata","data","nalus","forEach","nalu","type","annexb2Avcc","key","filter","bufferPointer","writeUint32","subarray","avcc2Annexb","naluLengthSizeMinusOne","result","seis","readUint32","readUint24","Number","BigInt","asIntN","getPos","naluType","sei","index","parseAvccExtraData","avpacket","stream","cheap__CTypeEnumRead__1","metadata","others","extradataPointer","parseAnnexbExtraData","force","cheap__CTypeEnumWrite__5","parseAVCodecParameters","sideData","codecpar","isIDR","naluLengthSize","some","size","r8","rb32","rb24","rb16","offset","bitReader","appendBuffer","readU1","readU","readUE","seqScalingListPresentFlag","Array","log2MaxFrameNumMinus4","picOrderCntType","log2MaxPicOrderCntLsbMinus4","deltaPicOrderAlwaysZeroFlag","readSE","numRefFramesInPicOrderCntCycle","picWidthInMbsMinus1","picHeightInMapUnitsMinus1","frameMbsOnlyFlag","frameCroppingFlag","cropUnitX","cropUnitY"],"sources":["../../../codecs/h264.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["array","BufferWriter","BufferReader","BitReader","logger","mapUint8Array","naluUtil","avMalloc","expgolomb","intread","intwrite","H264_MAX_DPB_FRAMES","NALULengthSizeMinusOne","H264Profile2Name","LevelCapabilities","level","maxResolution","maxFrameRate","getLevelByResolution","width","height","fps","resolution","extradata2SpsPps","extradata","bufferReader","skip","spss","ppss","spsExts","spsLength","readUint8","i","length","readUint16","push","readBuffer","ppsLength","remainingSize","spsExtLength","spsPps2Extradata","warn","slice","reduce","prev","sps","pps","params","parseSPS","profile","ext","buffer","Uint8Array","bufferWriter","writeUint8","each","writeUint16","writeBuffer","chromaFormatIdc","bitDepthLumaMinus8","bitDepthChromaMinus8","annexbExtradata2AvccExtradata","data","nalus","splitNaluByStartCode","forEach","nalu","type","generateAnnexbExtradata","joinNaluByStartCode","annexb2Avcc","key","filter","bufferPointer","joinNaluByLength","nalus2Annexb","seis","others","lengths","joinNaluByStartCodeLength","offset","w8","annexbAddExtradata","concat","avcc2Annexb","naluLengthSizeMinusOne","result","splitNaluByLength","naluType","parseAVCodecParameters","stream","sideData","isAnnexb","metadata","videoDelay","codecpar","format","isIDR","avpacket","naluLengthSize","cheap__CTypeEnumRead__1","some","size","r8","rb32","rb24","rb16","naluUnescape","subarray","bitReader","appendBuffer","readU1","readU","readUE","seqScalingListPresentFlag","Array","log2MaxFrameNumMinus4","picOrderCntType","log2MaxPicOrderCntLsbMinus4","deltaPicOrderAlwaysZeroFlag","readSE","numRefFramesInPicOrderCntCycle","picWidthInMbsMinus1","picHeightInMapUnitsMinus1","frameMbsOnlyFlag","frameCroppingFlag","cropUnitX","cropUnitY","flag","parseHrdParameters","cpbCount","flag1","flag2","Math","min"],"sources":["../../../codecs/h264.ts"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  import AVPacket from "../struct/avpacket";
2
2
  import AVStream from "../AVStream";
3
3
  import { Uint8ArrayInterface } from "@libmedia/common/io/interface";
4
+ export declare const HEVC_MAX_DPB_FRAMES = 16;
4
5
  export declare const enum HEVCProfile {
5
6
  Main = 1,
6
7
  Main10 = 2,
@@ -91,34 +92,83 @@ export declare const enum HEVCSliceType {
91
92
  *
92
93
  */
93
94
  export declare function extradata2VpsSpsPps(extradata: Uint8ArrayInterface): {
94
- vpss: any[];
95
- spss: any[];
96
- ppss: any[];
95
+ vpss: Uint8ArrayInterface[];
96
+ spss: Uint8ArrayInterface[];
97
+ ppss: Uint8ArrayInterface[];
97
98
  };
98
- export declare function vpsSpsPps2Extradata(vpss: Uint8ArrayInterface[], spss: Uint8ArrayInterface[], ppss: Uint8ArrayInterface[]): Uint8Array;
99
- export declare function annexbExtradata2AvccExtradata(data: Uint8ArrayInterface): Uint8Array;
99
+ /**
100
+ * annexb vps sps pps 转 avcc 格式的 extradata
101
+ *
102
+ * @param vpss
103
+ * @param spss
104
+ * @param ppss
105
+ * @returns
106
+ */
107
+ export declare function vpsSpsPps2Extradata(vpss: Uint8ArrayInterface[], spss: Uint8ArrayInterface[], ppss: Uint8ArrayInterface[]): Uint8Array<ArrayBuffer>;
108
+ /**
109
+ * annexb extradata 转 avcc extradata
110
+ *
111
+ * @param data
112
+ * @returns
113
+ */
114
+ export declare function annexbExtradata2AvccExtradata(data: Uint8ArrayInterface): Uint8Array<ArrayBuffer>;
115
+ /**
116
+ * 从 annexb 码流里面生成 annexb extradata
117
+ *
118
+ * 提取出 vps、 sps 和 pps
119
+ *
120
+ * @param data
121
+ * @returns
122
+ */
123
+ export declare function generateAnnexbExtradata(data: Uint8ArrayInterface): Uint8Array<ArrayBufferLike>;
100
124
  /**
101
125
  *
102
126
  * annexb 格式的 NALU 转 avcc NALU
103
127
  *
128
+ * 需要保证 data 是 safe 的
129
+ *
104
130
  */
105
131
  export declare function annexb2Avcc(data: Uint8ArrayInterface): {
106
132
  bufferPointer: pointer<void>;
107
133
  length: number;
108
- extradata: Uint8Array;
134
+ extradata: Uint8Array<ArrayBufferLike>;
109
135
  key: boolean;
110
136
  };
137
+ /**
138
+ *
139
+ * 需要保证 data 是 safe 的
140
+ *
141
+ * @param vpss
142
+ * @param spss
143
+ * @param ppss
144
+ * @param nalus
145
+ * @returns
146
+ */
147
+ export declare function nalus2Annexb(vpss: Uint8ArrayInterface[], spss: Uint8ArrayInterface[], ppss: Uint8ArrayInterface[], nalus: Uint8ArrayInterface[]): {
148
+ bufferPointer: pointer<void>;
149
+ length: number;
150
+ };
151
+ /**
152
+ * annexb 添加 sps pps
153
+ *
154
+ * @param data
155
+ * @param extradata
156
+ */
157
+ export declare function annexbAddExtradata(data: Uint8ArrayInterface, extradata: Uint8ArrayInterface): {
158
+ bufferPointer: pointer<void>;
159
+ length: number;
160
+ };
111
161
  /**
112
162
  * avcc 格式的 NALU 转 annexb NALU
113
163
  *
164
+ * 需要保证 data 是 safe 的
165
+ *
114
166
  */
115
167
  export declare function avcc2Annexb(data: Uint8ArrayInterface, extradata?: Uint8ArrayInterface): {
116
- bufferPointer: pointer<void>;
117
- length: any;
118
168
  key: boolean;
169
+ bufferPointer: pointer<void>;
170
+ length: number;
119
171
  };
120
- export declare function parseAvccExtraData(avpacket: pointer<AVPacket>, stream: AVStream): void;
121
- export declare function parseAnnexbExtraData(avpacket: pointer<AVPacket>, force?: boolean): void;
122
172
  export declare function parseAVCodecParameters(stream: AVStream, extradata?: Uint8ArrayInterface): void;
123
173
  export declare function isIDR(avpacket: pointer<AVPacket>, naluLengthSize?: int32): boolean;
124
174
  export interface HevcSPS {
@@ -151,6 +201,7 @@ export interface HevcSPS {
151
201
  min_pu_width: number;
152
202
  min_pu_height: number;
153
203
  log2_max_poc_lsb: number;
204
+ video_delay: number;
154
205
  }
155
206
  export declare function parseSPS(sps: Uint8ArrayInterface): HevcSPS;
156
207
  export interface HevcPPS {