piixishstream 0.0.0-stage → 1.0.2
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.
- package/README.md +124 -2
- package/dist/client/GatewayEvents.d.ts +30 -0
- package/dist/client/GatewayEvents.js +2 -0
- package/dist/client/GatewayEvents.js.map +1 -0
- package/dist/client/GatewayOpCodes.d.ts +40 -0
- package/dist/client/GatewayOpCodes.js +42 -0
- package/dist/client/GatewayOpCodes.js.map +1 -0
- package/dist/client/Streamer.d.ts +30 -0
- package/dist/client/Streamer.js +188 -0
- package/dist/client/Streamer.js.map +1 -0
- package/dist/client/index.d.ts +3 -0
- package/dist/client/index.js +4 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/processing/AnnexBBitstreamReaderWriter.d.ts +23 -0
- package/dist/client/processing/AnnexBBitstreamReaderWriter.js +149 -0
- package/dist/client/processing/AnnexBBitstreamReaderWriter.js.map +1 -0
- package/dist/client/processing/AnnexBHelper.d.ts +93 -0
- package/dist/client/processing/AnnexBHelper.js +127 -0
- package/dist/client/processing/AnnexBHelper.js.map +1 -0
- package/dist/client/processing/SPSVUIRewriter.d.ts +1 -0
- package/dist/client/processing/SPSVUIRewriter.js +297 -0
- package/dist/client/processing/SPSVUIRewriter.js.map +1 -0
- package/dist/client/voice/BaseMediaConnection.d.ts +80 -0
- package/dist/client/voice/BaseMediaConnection.js +552 -0
- package/dist/client/voice/BaseMediaConnection.js.map +1 -0
- package/dist/client/voice/CodecPayloadType.d.ts +59 -0
- package/dist/client/voice/CodecPayloadType.js +60 -0
- package/dist/client/voice/CodecPayloadType.js.map +1 -0
- package/dist/client/voice/StreamConnection.d.ts +11 -0
- package/dist/client/voice/StreamConnection.js +34 -0
- package/dist/client/voice/StreamConnection.js.map +1 -0
- package/dist/client/voice/VoiceConnection.d.ts +8 -0
- package/dist/client/voice/VoiceConnection.js +15 -0
- package/dist/client/voice/VoiceConnection.js.map +1 -0
- package/dist/client/voice/VoiceMessageTypes.d.ts +178 -0
- package/dist/client/voice/VoiceMessageTypes.js +2 -0
- package/dist/client/voice/VoiceMessageTypes.js.map +1 -0
- package/dist/client/voice/VoiceOpCodes.d.ts +35 -0
- package/dist/client/voice/VoiceOpCodes.js +38 -0
- package/dist/client/voice/VoiceOpCodes.js.map +1 -0
- package/dist/client/voice/WebRtcWrapper.d.ts +23 -0
- package/dist/client/voice/WebRtcWrapper.js +159 -0
- package/dist/client/voice/WebRtcWrapper.js.map +1 -0
- package/dist/client/voice/index.d.ts +4 -0
- package/dist/client/voice/index.js +6 -0
- package/dist/client/voice/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/media/AudioStream.d.ts +7 -0
- package/dist/media/AudioStream.js +12 -0
- package/dist/media/AudioStream.js.map +1 -0
- package/dist/media/BaseMediaStream.d.ts +31 -0
- package/dist/media/BaseMediaStream.js +164 -0
- package/dist/media/BaseMediaStream.js.map +1 -0
- package/dist/media/LibavCodecId.d.ts +541 -0
- package/dist/media/LibavCodecId.js +553 -0
- package/dist/media/LibavCodecId.js.map +1 -0
- package/dist/media/LibavDecoder.d.ts +5 -0
- package/dist/media/LibavDecoder.js +43 -0
- package/dist/media/LibavDecoder.js.map +1 -0
- package/dist/media/LibavDemuxer.d.ts +44 -0
- package/dist/media/LibavDemuxer.js +231 -0
- package/dist/media/LibavDemuxer.js.map +1 -0
- package/dist/media/VideoStream.d.ts +7 -0
- package/dist/media/VideoStream.js +12 -0
- package/dist/media/VideoStream.js.map +1 -0
- package/dist/media/encoders/index.d.ts +26 -0
- package/dist/media/encoders/index.js +12 -0
- package/dist/media/encoders/index.js.map +1 -0
- package/dist/media/encoders/merge.d.ts +3 -0
- package/dist/media/encoders/merge.js +10 -0
- package/dist/media/encoders/merge.js.map +1 -0
- package/dist/media/encoders/nvenc.d.ts +10 -0
- package/dist/media/encoders/nvenc.js +23 -0
- package/dist/media/encoders/nvenc.js.map +1 -0
- package/dist/media/encoders/software.d.ts +17 -0
- package/dist/media/encoders/software.js +31 -0
- package/dist/media/encoders/software.js.map +1 -0
- package/dist/media/encoders/vaapi.d.ts +6 -0
- package/dist/media/encoders/vaapi.js +22 -0
- package/dist/media/encoders/vaapi.js.map +1 -0
- package/dist/media/index.d.ts +4 -0
- package/dist/media/index.js +5 -0
- package/dist/media/index.js.map +1 -0
- package/dist/media/newApi.d.ts +130 -0
- package/dist/media/newApi.js +409 -0
- package/dist/media/newApi.js.map +1 -0
- package/dist/utils.d.ts +25 -0
- package/dist/utils.js +65 -0
- package/dist/utils.js.map +1 -0
- package/package.json +82 -5
- package/src/client/GatewayEvents.ts +48 -0
- package/src/client/GatewayOpCodes.ts +40 -0
- package/src/client/Streamer.ts +259 -0
- package/src/client/index.ts +3 -0
- package/src/client/processing/AnnexBBitstreamReaderWriter.ts +148 -0
- package/src/client/processing/AnnexBHelper.ts +134 -0
- package/src/client/processing/SPSVUIRewriter.ts +332 -0
- package/src/client/voice/BaseMediaConnection.ts +639 -0
- package/src/client/voice/CodecPayloadType.ts +59 -0
- package/src/client/voice/MediaUdp.ts.bak +171 -0
- package/src/client/voice/StreamConnection.ts +38 -0
- package/src/client/voice/VoiceConnection.ts +19 -0
- package/src/client/voice/VoiceMessageTypes.ts +263 -0
- package/src/client/voice/VoiceOpCodes.ts +36 -0
- package/src/client/voice/WebRtcWrapper.ts +218 -0
- package/src/client/voice/index.ts +5 -0
- package/src/index.ts +3 -0
- package/src/media/AudioStream.ts +18 -0
- package/src/media/BaseMediaStream.ts +198 -0
- package/src/media/LibavCodecId.ts +564 -0
- package/src/media/LibavDecoder.ts +47 -0
- package/src/media/LibavDemuxer.ts +293 -0
- package/src/media/VideoStream.ts +17 -0
- package/src/media/encoders/index.ts +27 -0
- package/src/media/encoders/merge.ts +14 -0
- package/src/media/encoders/nvenc.ts +38 -0
- package/src/media/encoders/software.ts +76 -0
- package/src/media/encoders/vaapi.ts +29 -0
- package/src/media/index.ts +4 -0
- package/src/media/newApi.ts +642 -0
- package/src/utils.ts +101 -0
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
export class AnnexBBitstreamReader {
|
|
2
|
+
_buffer;
|
|
3
|
+
_byteOffset = 0;
|
|
4
|
+
_bitOffset = 0;
|
|
5
|
+
constructor(buffer) {
|
|
6
|
+
this._buffer = buffer;
|
|
7
|
+
}
|
|
8
|
+
readBits(count) {
|
|
9
|
+
if (count === 0)
|
|
10
|
+
return 0;
|
|
11
|
+
let result = 0;
|
|
12
|
+
while (count > 0) {
|
|
13
|
+
if (this._byteOffset >= this._buffer.length)
|
|
14
|
+
throw new Error("Bad byte offset");
|
|
15
|
+
if (this._bitOffset === 0 &&
|
|
16
|
+
this._byteOffset >= 2 &&
|
|
17
|
+
this._buffer[this._byteOffset - 2] === 0 &&
|
|
18
|
+
this._buffer[this._byteOffset - 1] === 0 &&
|
|
19
|
+
this._buffer[this._byteOffset] === 3) {
|
|
20
|
+
// Skip over emulation prevention
|
|
21
|
+
this._byteOffset++;
|
|
22
|
+
}
|
|
23
|
+
if (this._bitOffset === 0 && count >= 8) {
|
|
24
|
+
// We're byte aligned, read whole bytes and push in
|
|
25
|
+
result = (result << 8) | this._buffer[this._byteOffset++];
|
|
26
|
+
count -= 8;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
// Read just enough to get us to the next byte
|
|
30
|
+
const numBitsToRead = Math.min(count, 8 - this._bitOffset);
|
|
31
|
+
const mask = (1 << numBitsToRead) - 1;
|
|
32
|
+
const newBits = (this._buffer[this._byteOffset] >>
|
|
33
|
+
(8 - this._bitOffset - numBitsToRead)) &
|
|
34
|
+
mask;
|
|
35
|
+
result = (result << numBitsToRead) | newBits;
|
|
36
|
+
count -= numBitsToRead;
|
|
37
|
+
this._bitOffset += numBitsToRead;
|
|
38
|
+
if (this._bitOffset === 8) {
|
|
39
|
+
this._bitOffset = 0;
|
|
40
|
+
this._byteOffset++;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
readUnsigned(bits) {
|
|
47
|
+
return this.readBits(bits);
|
|
48
|
+
}
|
|
49
|
+
readSigned(bits) {
|
|
50
|
+
const unsigned = this.readUnsigned(bits);
|
|
51
|
+
if (unsigned & (1 << (bits - 1)))
|
|
52
|
+
return unsigned - (1 << bits);
|
|
53
|
+
return unsigned;
|
|
54
|
+
}
|
|
55
|
+
readUnsignedExpGolomb() {
|
|
56
|
+
let leading0 = 0;
|
|
57
|
+
while (this.readBits(1) === 0)
|
|
58
|
+
leading0++;
|
|
59
|
+
return (1 << leading0) + this.readBits(leading0) - 1;
|
|
60
|
+
}
|
|
61
|
+
readSignedExpGolomb() {
|
|
62
|
+
// Mapping: x <= 0 => -2x, x > 0 => 2x - 1
|
|
63
|
+
const unsigned = this.readUnsignedExpGolomb();
|
|
64
|
+
if (unsigned % 2 === 0)
|
|
65
|
+
return unsigned / -2;
|
|
66
|
+
return (unsigned + 1) / 2;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
export class AnnexBBitstreamWriter {
|
|
70
|
+
_arr = [];
|
|
71
|
+
_pendingByte = 0;
|
|
72
|
+
_bitOffset = 0;
|
|
73
|
+
toBuffer() {
|
|
74
|
+
return Buffer.from(this._arr);
|
|
75
|
+
}
|
|
76
|
+
flush() {
|
|
77
|
+
// Write the pending byte into the array and reset, taking care of emulation prevention
|
|
78
|
+
if (this._pendingByte <= 3 &&
|
|
79
|
+
this._arr.at(-1) === 0 &&
|
|
80
|
+
this._arr.at(-2) === 0)
|
|
81
|
+
this._arr.push(3);
|
|
82
|
+
this._arr.push(this._pendingByte);
|
|
83
|
+
this._pendingByte = 0;
|
|
84
|
+
this._bitOffset = 0;
|
|
85
|
+
}
|
|
86
|
+
writeBits(bits, count) {
|
|
87
|
+
while (count > 0) {
|
|
88
|
+
if (this._bitOffset === 0) {
|
|
89
|
+
if (count >= 8) {
|
|
90
|
+
// We're byte aligned and has more than 1 byte left to write, write a whole byte
|
|
91
|
+
this._pendingByte = (bits >> (count - 8)) & 0xff;
|
|
92
|
+
count -= 8;
|
|
93
|
+
this.flush();
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
// We have less than 1 byte, write the rest in
|
|
97
|
+
const mask = (1 << count) - 1;
|
|
98
|
+
this._pendingByte |= (bits & mask) << (8 - count);
|
|
99
|
+
this._bitOffset = count;
|
|
100
|
+
count = 0;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
// Write the minimum number of bits to get us byte aligned again
|
|
105
|
+
const numBitsToWrite = Math.min(8 - this._bitOffset, count);
|
|
106
|
+
const bitsToWrite = (bits >> (count - numBitsToWrite)) & ((1 << numBitsToWrite) - 1);
|
|
107
|
+
this._pendingByte |=
|
|
108
|
+
bitsToWrite << (8 - this._bitOffset - numBitsToWrite);
|
|
109
|
+
count -= numBitsToWrite;
|
|
110
|
+
this._bitOffset += numBitsToWrite;
|
|
111
|
+
if (this._bitOffset === 8) {
|
|
112
|
+
this._bitOffset = 0;
|
|
113
|
+
this.flush();
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
writeUnsigned(num, count) {
|
|
119
|
+
if (num < 0)
|
|
120
|
+
throw new Error("Expected a non-negative number");
|
|
121
|
+
this.writeBits(num, count);
|
|
122
|
+
}
|
|
123
|
+
writeSigned(num, count) {
|
|
124
|
+
if (count <= 0)
|
|
125
|
+
return;
|
|
126
|
+
if (count > 32)
|
|
127
|
+
throw new Error("writeSigned supports up to 32 bits");
|
|
128
|
+
// Build mask for `count` bits. Handle 32-bit as a special case.
|
|
129
|
+
const mask = count === 32 ? 0xffffffff >>> 0 : (((1 << count) >>> 0) - 1) >>> 0;
|
|
130
|
+
// Convert to two's-complement unsigned representation and write
|
|
131
|
+
const unsigned = (num & mask) >>> 0;
|
|
132
|
+
this.writeBits(unsigned, count);
|
|
133
|
+
}
|
|
134
|
+
writeUnsignedExpGolomb(num) {
|
|
135
|
+
if (num < 0)
|
|
136
|
+
throw new Error("Expected a non-negative number");
|
|
137
|
+
num++;
|
|
138
|
+
const bitCount = 32 - Math.clz32(num >>> 0);
|
|
139
|
+
this.writeBits(0, bitCount - 1);
|
|
140
|
+
this.writeBits(num, bitCount);
|
|
141
|
+
}
|
|
142
|
+
writeSignedExpGolomb(num) {
|
|
143
|
+
if (num < 0)
|
|
144
|
+
this.writeUnsignedExpGolomb(-2 * num);
|
|
145
|
+
else
|
|
146
|
+
this.writeUnsignedExpGolomb(2 * num - 1);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=AnnexBBitstreamReaderWriter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnnexBBitstreamReaderWriter.js","sourceRoot":"","sources":["../../../src/client/processing/AnnexBBitstreamReaderWriter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
export declare enum H264NalUnitTypes {
|
|
2
|
+
Unspecified = 0,
|
|
3
|
+
CodedSliceNonIDR = 1,
|
|
4
|
+
CodedSlicePartitionA = 2,
|
|
5
|
+
CodedSlicePartitionB = 3,
|
|
6
|
+
CodedSlicePartitionC = 4,
|
|
7
|
+
CodedSliceIdr = 5,
|
|
8
|
+
SEI = 6,
|
|
9
|
+
SPS = 7,
|
|
10
|
+
PPS = 8,
|
|
11
|
+
AccessUnitDelimiter = 9,
|
|
12
|
+
EndOfSequence = 10,
|
|
13
|
+
EndOfStream = 11,
|
|
14
|
+
FillerData = 12,
|
|
15
|
+
SEIExtenstion = 13,
|
|
16
|
+
PrefixNalUnit = 14,
|
|
17
|
+
SubsetSPS = 15
|
|
18
|
+
}
|
|
19
|
+
export declare enum H265NalUnitTypes {
|
|
20
|
+
TRAIL_N = 0,
|
|
21
|
+
TRAIL_R = 1,
|
|
22
|
+
TSA_N = 2,
|
|
23
|
+
TSA_R = 3,
|
|
24
|
+
STSA_N = 4,
|
|
25
|
+
STSA_R = 5,
|
|
26
|
+
RADL_N = 6,
|
|
27
|
+
RADL_R = 7,
|
|
28
|
+
RASL_N = 8,
|
|
29
|
+
RASL_R = 9,
|
|
30
|
+
RSV_VCL_N10 = 10,
|
|
31
|
+
RSV_VCL_R11 = 11,
|
|
32
|
+
RSV_VCL_N12 = 12,
|
|
33
|
+
RSV_VCL_R13 = 13,
|
|
34
|
+
RSV_VCL_N14 = 14,
|
|
35
|
+
RSV_VCL_R15 = 15,
|
|
36
|
+
BLA_W_LP = 16,
|
|
37
|
+
BLA_W_RADL = 17,
|
|
38
|
+
BLA_N_LP = 18,
|
|
39
|
+
IDR_W_RADL = 19,
|
|
40
|
+
IDR_N_LP = 20,
|
|
41
|
+
CRA_NUT = 21,
|
|
42
|
+
RSV_IRAP_VCL22 = 22,
|
|
43
|
+
RSV_IRAP_VCL23 = 23,
|
|
44
|
+
RSV_VCL24 = 24,
|
|
45
|
+
RSV_VCL25 = 25,
|
|
46
|
+
RSV_VCL26 = 26,
|
|
47
|
+
RSV_VCL27 = 27,
|
|
48
|
+
RSV_VCL28 = 28,
|
|
49
|
+
RSV_VCL29 = 29,
|
|
50
|
+
RSV_VCL30 = 30,
|
|
51
|
+
RSV_VCL31 = 31,
|
|
52
|
+
VPS_NUT = 32,
|
|
53
|
+
SPS_NUT = 33,
|
|
54
|
+
PPS_NUT = 34,
|
|
55
|
+
AUD_NUT = 35,
|
|
56
|
+
EOS_NUT = 36,
|
|
57
|
+
EOB_NUT = 37,
|
|
58
|
+
FD_NUT = 38,
|
|
59
|
+
PREFIX_SEI_NUT = 39,
|
|
60
|
+
SUFFIX_SEI_NUT = 40,
|
|
61
|
+
RSV_NVCL41 = 41,
|
|
62
|
+
RSV_NVCL42 = 42,
|
|
63
|
+
RSV_NVCL43 = 43,
|
|
64
|
+
RSV_NVCL44 = 44,
|
|
65
|
+
RSV_NVCL45 = 45,
|
|
66
|
+
RSV_NVCL46 = 46,
|
|
67
|
+
RSV_NVCL47 = 47,
|
|
68
|
+
UNSPEC48 = 48,
|
|
69
|
+
UNSPEC49 = 49,
|
|
70
|
+
UNSPEC50 = 50,
|
|
71
|
+
UNSPEC51 = 51,
|
|
72
|
+
UNSPEC52 = 52,
|
|
73
|
+
UNSPEC53 = 53,
|
|
74
|
+
UNSPEC54 = 54,
|
|
75
|
+
UNSPEC55 = 55,
|
|
76
|
+
UNSPEC56 = 56,
|
|
77
|
+
UNSPEC57 = 57,
|
|
78
|
+
UNSPEC58 = 58,
|
|
79
|
+
UNSPEC59 = 59,
|
|
80
|
+
UNSPEC60 = 60,
|
|
81
|
+
UNSPEC61 = 61,
|
|
82
|
+
UNSPEC62 = 62,
|
|
83
|
+
UNSPEC63 = 63
|
|
84
|
+
}
|
|
85
|
+
export interface AnnexBHelpers {
|
|
86
|
+
getUnitType(frame: Buffer): number;
|
|
87
|
+
splitHeader(frame: Buffer): [Buffer, Buffer];
|
|
88
|
+
isAUD(unitType: number): boolean;
|
|
89
|
+
}
|
|
90
|
+
export declare const H264Helpers: AnnexBHelpers;
|
|
91
|
+
export declare const H265Helpers: AnnexBHelpers;
|
|
92
|
+
export declare const startCode3: Buffer<ArrayBuffer>;
|
|
93
|
+
export declare function splitNalu(buf: Buffer): Buffer<ArrayBufferLike>[];
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
export var H264NalUnitTypes;
|
|
2
|
+
(function (H264NalUnitTypes) {
|
|
3
|
+
H264NalUnitTypes[H264NalUnitTypes["Unspecified"] = 0] = "Unspecified";
|
|
4
|
+
H264NalUnitTypes[H264NalUnitTypes["CodedSliceNonIDR"] = 1] = "CodedSliceNonIDR";
|
|
5
|
+
H264NalUnitTypes[H264NalUnitTypes["CodedSlicePartitionA"] = 2] = "CodedSlicePartitionA";
|
|
6
|
+
H264NalUnitTypes[H264NalUnitTypes["CodedSlicePartitionB"] = 3] = "CodedSlicePartitionB";
|
|
7
|
+
H264NalUnitTypes[H264NalUnitTypes["CodedSlicePartitionC"] = 4] = "CodedSlicePartitionC";
|
|
8
|
+
H264NalUnitTypes[H264NalUnitTypes["CodedSliceIdr"] = 5] = "CodedSliceIdr";
|
|
9
|
+
H264NalUnitTypes[H264NalUnitTypes["SEI"] = 6] = "SEI";
|
|
10
|
+
H264NalUnitTypes[H264NalUnitTypes["SPS"] = 7] = "SPS";
|
|
11
|
+
H264NalUnitTypes[H264NalUnitTypes["PPS"] = 8] = "PPS";
|
|
12
|
+
H264NalUnitTypes[H264NalUnitTypes["AccessUnitDelimiter"] = 9] = "AccessUnitDelimiter";
|
|
13
|
+
H264NalUnitTypes[H264NalUnitTypes["EndOfSequence"] = 10] = "EndOfSequence";
|
|
14
|
+
H264NalUnitTypes[H264NalUnitTypes["EndOfStream"] = 11] = "EndOfStream";
|
|
15
|
+
H264NalUnitTypes[H264NalUnitTypes["FillerData"] = 12] = "FillerData";
|
|
16
|
+
H264NalUnitTypes[H264NalUnitTypes["SEIExtenstion"] = 13] = "SEIExtenstion";
|
|
17
|
+
H264NalUnitTypes[H264NalUnitTypes["PrefixNalUnit"] = 14] = "PrefixNalUnit";
|
|
18
|
+
H264NalUnitTypes[H264NalUnitTypes["SubsetSPS"] = 15] = "SubsetSPS";
|
|
19
|
+
})(H264NalUnitTypes || (H264NalUnitTypes = {}));
|
|
20
|
+
export var H265NalUnitTypes;
|
|
21
|
+
(function (H265NalUnitTypes) {
|
|
22
|
+
H265NalUnitTypes[H265NalUnitTypes["TRAIL_N"] = 0] = "TRAIL_N";
|
|
23
|
+
H265NalUnitTypes[H265NalUnitTypes["TRAIL_R"] = 1] = "TRAIL_R";
|
|
24
|
+
H265NalUnitTypes[H265NalUnitTypes["TSA_N"] = 2] = "TSA_N";
|
|
25
|
+
H265NalUnitTypes[H265NalUnitTypes["TSA_R"] = 3] = "TSA_R";
|
|
26
|
+
H265NalUnitTypes[H265NalUnitTypes["STSA_N"] = 4] = "STSA_N";
|
|
27
|
+
H265NalUnitTypes[H265NalUnitTypes["STSA_R"] = 5] = "STSA_R";
|
|
28
|
+
H265NalUnitTypes[H265NalUnitTypes["RADL_N"] = 6] = "RADL_N";
|
|
29
|
+
H265NalUnitTypes[H265NalUnitTypes["RADL_R"] = 7] = "RADL_R";
|
|
30
|
+
H265NalUnitTypes[H265NalUnitTypes["RASL_N"] = 8] = "RASL_N";
|
|
31
|
+
H265NalUnitTypes[H265NalUnitTypes["RASL_R"] = 9] = "RASL_R";
|
|
32
|
+
H265NalUnitTypes[H265NalUnitTypes["RSV_VCL_N10"] = 10] = "RSV_VCL_N10";
|
|
33
|
+
H265NalUnitTypes[H265NalUnitTypes["RSV_VCL_R11"] = 11] = "RSV_VCL_R11";
|
|
34
|
+
H265NalUnitTypes[H265NalUnitTypes["RSV_VCL_N12"] = 12] = "RSV_VCL_N12";
|
|
35
|
+
H265NalUnitTypes[H265NalUnitTypes["RSV_VCL_R13"] = 13] = "RSV_VCL_R13";
|
|
36
|
+
H265NalUnitTypes[H265NalUnitTypes["RSV_VCL_N14"] = 14] = "RSV_VCL_N14";
|
|
37
|
+
H265NalUnitTypes[H265NalUnitTypes["RSV_VCL_R15"] = 15] = "RSV_VCL_R15";
|
|
38
|
+
H265NalUnitTypes[H265NalUnitTypes["BLA_W_LP"] = 16] = "BLA_W_LP";
|
|
39
|
+
H265NalUnitTypes[H265NalUnitTypes["BLA_W_RADL"] = 17] = "BLA_W_RADL";
|
|
40
|
+
H265NalUnitTypes[H265NalUnitTypes["BLA_N_LP"] = 18] = "BLA_N_LP";
|
|
41
|
+
H265NalUnitTypes[H265NalUnitTypes["IDR_W_RADL"] = 19] = "IDR_W_RADL";
|
|
42
|
+
H265NalUnitTypes[H265NalUnitTypes["IDR_N_LP"] = 20] = "IDR_N_LP";
|
|
43
|
+
H265NalUnitTypes[H265NalUnitTypes["CRA_NUT"] = 21] = "CRA_NUT";
|
|
44
|
+
H265NalUnitTypes[H265NalUnitTypes["RSV_IRAP_VCL22"] = 22] = "RSV_IRAP_VCL22";
|
|
45
|
+
H265NalUnitTypes[H265NalUnitTypes["RSV_IRAP_VCL23"] = 23] = "RSV_IRAP_VCL23";
|
|
46
|
+
H265NalUnitTypes[H265NalUnitTypes["RSV_VCL24"] = 24] = "RSV_VCL24";
|
|
47
|
+
H265NalUnitTypes[H265NalUnitTypes["RSV_VCL25"] = 25] = "RSV_VCL25";
|
|
48
|
+
H265NalUnitTypes[H265NalUnitTypes["RSV_VCL26"] = 26] = "RSV_VCL26";
|
|
49
|
+
H265NalUnitTypes[H265NalUnitTypes["RSV_VCL27"] = 27] = "RSV_VCL27";
|
|
50
|
+
H265NalUnitTypes[H265NalUnitTypes["RSV_VCL28"] = 28] = "RSV_VCL28";
|
|
51
|
+
H265NalUnitTypes[H265NalUnitTypes["RSV_VCL29"] = 29] = "RSV_VCL29";
|
|
52
|
+
H265NalUnitTypes[H265NalUnitTypes["RSV_VCL30"] = 30] = "RSV_VCL30";
|
|
53
|
+
H265NalUnitTypes[H265NalUnitTypes["RSV_VCL31"] = 31] = "RSV_VCL31";
|
|
54
|
+
H265NalUnitTypes[H265NalUnitTypes["VPS_NUT"] = 32] = "VPS_NUT";
|
|
55
|
+
H265NalUnitTypes[H265NalUnitTypes["SPS_NUT"] = 33] = "SPS_NUT";
|
|
56
|
+
H265NalUnitTypes[H265NalUnitTypes["PPS_NUT"] = 34] = "PPS_NUT";
|
|
57
|
+
H265NalUnitTypes[H265NalUnitTypes["AUD_NUT"] = 35] = "AUD_NUT";
|
|
58
|
+
H265NalUnitTypes[H265NalUnitTypes["EOS_NUT"] = 36] = "EOS_NUT";
|
|
59
|
+
H265NalUnitTypes[H265NalUnitTypes["EOB_NUT"] = 37] = "EOB_NUT";
|
|
60
|
+
H265NalUnitTypes[H265NalUnitTypes["FD_NUT"] = 38] = "FD_NUT";
|
|
61
|
+
H265NalUnitTypes[H265NalUnitTypes["PREFIX_SEI_NUT"] = 39] = "PREFIX_SEI_NUT";
|
|
62
|
+
H265NalUnitTypes[H265NalUnitTypes["SUFFIX_SEI_NUT"] = 40] = "SUFFIX_SEI_NUT";
|
|
63
|
+
H265NalUnitTypes[H265NalUnitTypes["RSV_NVCL41"] = 41] = "RSV_NVCL41";
|
|
64
|
+
H265NalUnitTypes[H265NalUnitTypes["RSV_NVCL42"] = 42] = "RSV_NVCL42";
|
|
65
|
+
H265NalUnitTypes[H265NalUnitTypes["RSV_NVCL43"] = 43] = "RSV_NVCL43";
|
|
66
|
+
H265NalUnitTypes[H265NalUnitTypes["RSV_NVCL44"] = 44] = "RSV_NVCL44";
|
|
67
|
+
H265NalUnitTypes[H265NalUnitTypes["RSV_NVCL45"] = 45] = "RSV_NVCL45";
|
|
68
|
+
H265NalUnitTypes[H265NalUnitTypes["RSV_NVCL46"] = 46] = "RSV_NVCL46";
|
|
69
|
+
H265NalUnitTypes[H265NalUnitTypes["RSV_NVCL47"] = 47] = "RSV_NVCL47";
|
|
70
|
+
H265NalUnitTypes[H265NalUnitTypes["UNSPEC48"] = 48] = "UNSPEC48";
|
|
71
|
+
H265NalUnitTypes[H265NalUnitTypes["UNSPEC49"] = 49] = "UNSPEC49";
|
|
72
|
+
H265NalUnitTypes[H265NalUnitTypes["UNSPEC50"] = 50] = "UNSPEC50";
|
|
73
|
+
H265NalUnitTypes[H265NalUnitTypes["UNSPEC51"] = 51] = "UNSPEC51";
|
|
74
|
+
H265NalUnitTypes[H265NalUnitTypes["UNSPEC52"] = 52] = "UNSPEC52";
|
|
75
|
+
H265NalUnitTypes[H265NalUnitTypes["UNSPEC53"] = 53] = "UNSPEC53";
|
|
76
|
+
H265NalUnitTypes[H265NalUnitTypes["UNSPEC54"] = 54] = "UNSPEC54";
|
|
77
|
+
H265NalUnitTypes[H265NalUnitTypes["UNSPEC55"] = 55] = "UNSPEC55";
|
|
78
|
+
H265NalUnitTypes[H265NalUnitTypes["UNSPEC56"] = 56] = "UNSPEC56";
|
|
79
|
+
H265NalUnitTypes[H265NalUnitTypes["UNSPEC57"] = 57] = "UNSPEC57";
|
|
80
|
+
H265NalUnitTypes[H265NalUnitTypes["UNSPEC58"] = 58] = "UNSPEC58";
|
|
81
|
+
H265NalUnitTypes[H265NalUnitTypes["UNSPEC59"] = 59] = "UNSPEC59";
|
|
82
|
+
H265NalUnitTypes[H265NalUnitTypes["UNSPEC60"] = 60] = "UNSPEC60";
|
|
83
|
+
H265NalUnitTypes[H265NalUnitTypes["UNSPEC61"] = 61] = "UNSPEC61";
|
|
84
|
+
H265NalUnitTypes[H265NalUnitTypes["UNSPEC62"] = 62] = "UNSPEC62";
|
|
85
|
+
H265NalUnitTypes[H265NalUnitTypes["UNSPEC63"] = 63] = "UNSPEC63";
|
|
86
|
+
})(H265NalUnitTypes || (H265NalUnitTypes = {}));
|
|
87
|
+
export const H264Helpers = {
|
|
88
|
+
getUnitType(frame) {
|
|
89
|
+
return frame[0] & 0x1f;
|
|
90
|
+
},
|
|
91
|
+
splitHeader(frame) {
|
|
92
|
+
return [frame.subarray(0, 1), frame.subarray(1)];
|
|
93
|
+
},
|
|
94
|
+
isAUD(unitType) {
|
|
95
|
+
return unitType === H264NalUnitTypes.AccessUnitDelimiter;
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
export const H265Helpers = {
|
|
99
|
+
getUnitType(frame) {
|
|
100
|
+
return (frame[0] >> 1) & 0x3f;
|
|
101
|
+
},
|
|
102
|
+
splitHeader(frame) {
|
|
103
|
+
return [frame.subarray(0, 2), frame.subarray(2)];
|
|
104
|
+
},
|
|
105
|
+
isAUD(unitType) {
|
|
106
|
+
return unitType === H265NalUnitTypes.AUD_NUT;
|
|
107
|
+
},
|
|
108
|
+
};
|
|
109
|
+
export const startCode3 = Buffer.from([0, 0, 1]);
|
|
110
|
+
export function splitNalu(buf) {
|
|
111
|
+
let temp = buf;
|
|
112
|
+
const nalus = [];
|
|
113
|
+
while (temp?.byteLength) {
|
|
114
|
+
let pos = temp.indexOf(startCode3);
|
|
115
|
+
let length = 3;
|
|
116
|
+
if (pos > 0 && temp[pos - 1] === 0) {
|
|
117
|
+
pos--;
|
|
118
|
+
length++;
|
|
119
|
+
}
|
|
120
|
+
const nalu = pos === -1 ? temp : temp.subarray(0, pos);
|
|
121
|
+
temp = pos === -1 ? null : temp.subarray(pos + length);
|
|
122
|
+
if (nalu.byteLength)
|
|
123
|
+
nalus.push(nalu);
|
|
124
|
+
}
|
|
125
|
+
return nalus;
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=AnnexBHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnnexBHelper.js","sourceRoot":"","sources":["../../../src/client/processing/AnnexBHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function rewriteSPSVUI(buffer: Buffer): Buffer<ArrayBuffer>;
|