First release

This commit is contained in:
Owen Quinlan 2021-07-02 19:29:34 +10:00
commit fa6c85266e
2339 changed files with 761050 additions and 0 deletions

10816
node_modules/mux.js/test/utils/cc708-pink-underscore.js generated vendored Normal file

File diff suppressed because it is too large Load diff

74
node_modules/mux.js/test/utils/id3-generator.js generated vendored Normal file
View file

@ -0,0 +1,74 @@
/**
* Helper functions for creating ID3 metadata.
*/
'use strict';
var stringToInts, stringToCString, id3Tag, id3Frame;
stringToInts = function(string) {
var result = [], i;
for (i = 0; i < string.length; i++) {
result[i] = string.charCodeAt(i);
}
return result;
};
stringToCString = function(string) {
return stringToInts(string).concat([0x00]);
};
id3Tag = function() {
var
frames = Array.prototype.concat.apply([], Array.prototype.slice.call(arguments)),
result = stringToInts('ID3').concat([
0x03, 0x00, // version 3.0 of ID3v2 (aka ID3v.2.3.0)
0x40, // flags. include an extended header
0x00, 0x00, 0x00, 0x00, // size. set later
// extended header
0x00, 0x00, 0x00, 0x06, // extended header size. no CRC
0x00, 0x00, // extended flags
0x00, 0x00, 0x00, 0x02 // size of padding
], frames),
size;
// size is stored as a sequence of four 7-bit integers with the
// high bit of each byte set to zero
size = result.length - 10;
result[6] = (size >>> 21) & 0x7f;
result[7] = (size >>> 14) & 0x7f;
result[8] = (size >>> 7) & 0x7f;
result[9] = size & 0x7f;
return result;
};
id3Frame = function(type) {
var result = stringToInts(type).concat([
0x00, 0x00, 0x00, 0x00, // size
0xe0, 0x00 // flags. tag/file alter preservation, read-only
]),
size = result.length - 10;
// append the fields of the ID3 frame
result = result.concat.apply(result, Array.prototype.slice.call(arguments, 1));
// set the size
size = result.length - 10;
result[4] = (size >>> 21) & 0x7f;
result[5] = (size >>> 14) & 0x7f;
result[6] = (size >>> 7) & 0x7f;
result[7] = size & 0x7f;
return result;
};
module.exports = {
stringToInts: stringToInts,
stringToCString: stringToCString,
id3Tag: id3Tag,
id3Frame: id3Frame
};

View file

@ -0,0 +1,996 @@
module.exports = [
{ type: 1, pts: 7192231956, ccData: 36782 },
{ type: 0, pts: 7192231956, ccData: 38062 },
{ type: 3, pts: 7192231956, ccData: 17186 },
{ type: 2, pts: 7192234926, ccData: 0 },
{ type: 1, pts: 7192234926, ccData: 387 },
{ type: 2, pts: 7192234926, ccData: 36094 },
{ type: 0, pts: 7192234926, ccData: 38062 },
{ type: 2, pts: 7192240866, ccData: 16640 },
{ type: 2, pts: 7192240866, ccData: 39195 },
{ type: 2, pts: 7192240866, ccData: 1283 },
{ type: 2, pts: 7192240866, ccData: 37162 },
{ type: 2, pts: 7192240866, ccData: 42 },
{ type: 2, pts: 7192240866, ccData: 37376 },
{ type: 2, pts: 7192240866, ccData: 1024 },
{ type: 2, pts: 7192240866, ccData: 31 },
{ type: 0, pts: 7192240866, ccData: 37970 },
{ type: 1, pts: 7192240866, ccData: 62196 },
{ type: 2, pts: 7192240866, ccData: 5264 },
{ type: 1, pts: 7192243926, ccData: 26656 },
{ type: 3, pts: 7192243926, ccData: 49955 },
{ type: 0, pts: 7192243926, ccData: 38817 },
{ type: 1, pts: 7192246896, ccData: 22511 },
{ type: 0, pts: 7192246896, ccData: 38817 },
{ type: 2, pts: 7192246896, ccData: 37376 },
{ type: 2, pts: 7192246896, ccData: 1280 },
{ type: 1, pts: 7192249956, ccData: 61284 },
{ type: 0, pts: 7192249956, ccData: 49877 },
{ type: 3, pts: 7192249956, ccData: 802 },
{ type: 1, pts: 7192253016, ccData: 29472 },
{ type: 2, pts: 7192253016, ccData: 0 },
{ type: 0, pts: 7192253016, ccData: 21536 },
{ type: 2, pts: 7192253016, ccData: 16981 },
{ type: 3, pts: 7192253016, ccData: 17186 },
{ type: 3, pts: 7192255986, ccData: 33570 },
{ type: 1, pts: 7192255986, ccData: 19553 },
{ type: 0, pts: 7192255986, ccData: 18772 },
{ type: 2, pts: 7192255986, ccData: 21536 },
{ type: 2, pts: 7192255986, ccData: 0 },
{ type: 0, pts: 7192258956, ccData: 42963 },
{ type: 2, pts: 7192258956, ccData: 18772 },
{ type: 2, pts: 7192258956, ccData: 0 },
{ type: 3, pts: 7192258956, ccData: 49954 },
{ type: 1, pts: 7192258956, ccData: 63418 },
{ type: 0, pts: 7192261926, ccData: 8398 },
{ type: 1, pts: 7192261926, ccData: 8271 },
{ type: 2, pts: 7192261926, ccData: 10067 },
{ type: 2, pts: 7192261926, ccData: 0 },
{ type: 3, pts: 7192261926, ccData: 802 },
{ type: 3, pts: 7192264896, ccData: 17186 },
{ type: 2, pts: 7192264896, ccData: 0 },
{ type: 2, pts: 7192264896, ccData: 8270 },
{ type: 1, pts: 7192264896, ccData: 28192 },
{ type: 0, pts: 7192264896, ccData: 20308 },
{ type: 2, pts: 7192267956, ccData: 0 },
{ type: 2, pts: 7192267956, ccData: 20308 },
{ type: 1, pts: 7192267956, ccData: 62568 },
{ type: 0, pts: 7192267956, ccData: 8403 },
{ type: 3, pts: 7192267956, ccData: 33570 },
{ type: 3, pts: 7192270926, ccData: 49954 },
{ type: 0, pts: 7192270926, ccData: 54598 },
{ type: 2, pts: 7192270926, ccData: 8275 },
{ type: 2, pts: 7192270926, ccData: 0 },
{ type: 1, pts: 7192270926, ccData: 58656 },
{ type: 1, pts: 7192273986, ccData: 51317 },
{ type: 0, pts: 7192273986, ccData: 17989 },
{ type: 2, pts: 7192273986, ccData: 21830 },
{ type: 2, pts: 7192273986, ccData: 0 },
{ type: 3, pts: 7192273986, ccData: 802 },
{ type: 3, pts: 7192277046, ccData: 17186 },
{ type: 2, pts: 7192277046, ccData: 17989 },
{ type: 1, pts: 7192277046, ccData: 28404 },
{ type: 0, pts: 7192277046, ccData: 21065 },
{ type: 2, pts: 7192277046, ccData: 0 },
{ type: 1, pts: 7192279926, ccData: 8360 },
{ type: 2, pts: 7192279926, ccData: 21065 },
{ type: 2, pts: 7192279926, ccData: 0 },
{ type: 3, pts: 7192279926, ccData: 33570 },
{ type: 0, pts: 7192279926, ccData: 52935 },
{ type: 1, pts: 7192282986, ccData: 54245 },
{ type: 0, pts: 7192282986, ccData: 38132 },
{ type: 2, pts: 7192282986, ccData: 20039 },
{ type: 2, pts: 7192282986, ccData: 0 },
{ type: 3, pts: 7192282986, ccData: 51761 },
{ type: 1, pts: 7192285956, ccData: 36667 },
{ type: 2, pts: 7192285956, ccData: 2048 },
{ type: 2, pts: 7192285956, ccData: 39195 },
{ type: 2, pts: 7192285956, ccData: 16640 },
{ type: 2, pts: 7192285956, ccData: 287 },
{ type: 2, pts: 7192285956, ccData: 4240 },
{ type: 2, pts: 7192285956, ccData: 1283 },
{ type: 2, pts: 7192285956, ccData: 37162 },
{ type: 2, pts: 7192285956, ccData: 0 },
{ type: 0, pts: 7192285956, ccData: 38132 },
{ type: 2, pts: 7192285956, ccData: 37377 },
{ type: 3, pts: 7192288926, ccData: 803 },
{ type: 1, pts: 7192288926, ccData: 258 },
{ type: 0, pts: 7192288926, ccData: 38691 },
{ type: 1, pts: 7192291986, ccData: 16448 },
{ type: 2, pts: 7192291986, ccData: 37377 },
{ type: 2, pts: 7192291986, ccData: 2816 },
{ type: 0, pts: 7192291986, ccData: 38691 },
{ type: 1, pts: 7192294956, ccData: 16448 },
{ type: 0, pts: 7192294956, ccData: 21065 },
{ type: 3, pts: 7192294956, ccData: 17186 },
{ type: 0, pts: 7192298016, ccData: 51144 },
{ type: 2, pts: 7192298016, ccData: 21065 },
{ type: 2, pts: 7192298016, ccData: 0 },
{ type: 3, pts: 7192298016, ccData: 33570 },
{ type: 1, pts: 7192298016, ccData: 16512 },
{ type: 1, pts: 7192300986, ccData: 36782 },
{ type: 2, pts: 7192300986, ccData: 0 },
{ type: 2, pts: 7192300986, ccData: 18248 },
{ type: 3, pts: 7192309986, ccData: 33828 },
{ type: 2, pts: 7192309986, ccData: 0 },
{ type: 2, pts: 7192309986, ccData: 22318 },
{ type: 0, pts: 7192309986, ccData: 22446 },
{ type: 1, pts: 7192309986, ccData: 62196 },
{ type: 0, pts: 7192309986, ccData: 37935 },
{ type: 3, pts: 7192309986, ccData: 17186 },
{ type: 2, pts: 7192313046, ccData: 0 },
{ type: 0, pts: 7192313046, ccData: 37935 },
{ type: 1, pts: 7192313046, ccData: 26656 },
{ type: 2, pts: 7192313046, ccData: 35074 },
{ type: 2, pts: 7192313046, ccData: 35841 },
{ type: 0, pts: 7192316016, ccData: 32896 },
{ type: 1, pts: 7192316016, ccData: 22511 },
{ type: 1, pts: 7192318986, ccData: 61284 },
{ type: 0, pts: 7192318986, ccData: 32896 },
{ type: 1, pts: 7192322046, ccData: 29472 },
{ type: 0, pts: 7192322046, ccData: 32896 },
{ type: 1, pts: 7192324926, ccData: 389 },
{ type: 0, pts: 7192324926, ccData: 32896 },
{ type: 0, pts: 7192327986, ccData: 32896 },
{ type: 1, pts: 7192327986, ccData: 51396 },
{ type: 1, pts: 7192331046, ccData: 36831 },
{ type: 0, pts: 7192331046, ccData: 32896 },
{ type: 0, pts: 7192334016, ccData: 32896 },
{ type: 1, pts: 7192334016, ccData: 258 },
{ type: 0, pts: 7192337076, ccData: 32896 },
{ type: 1, pts: 7192337076, ccData: 16448 },
{ type: 1, pts: 7192340046, ccData: 16448 },
{ type: 0, pts: 7192340046, ccData: 32896 },
{ type: 0, pts: 7192343016, ccData: 32896 },
{ type: 1, pts: 7192343016, ccData: 16512 },
{ type: 1, pts: 7192346076, ccData: 36782 },
{ type: 0, pts: 7192346076, ccData: 32896 },
{ type: 0, pts: 7192348956, ccData: 32896 },
{ type: 1, pts: 7192348956, ccData: 387 },
{ type: 1, pts: 7192352016, ccData: 52975 },
{ type: 0, pts: 7192352016, ccData: 32896 },
{ type: 1, pts: 7192355076, ccData: 62196 },
{ type: 0, pts: 7192355076, ccData: 32896 },
{ type: 0, pts: 7192358046, ccData: 32896 },
{ type: 1, pts: 7192358046, ccData: 26656 },
{ type: 1, pts: 7192361106, ccData: 22511 },
{ type: 0, pts: 7192361106, ccData: 32896 },
{ type: 1, pts: 7192364076, ccData: 61284 },
{ type: 0, pts: 7192364076, ccData: 32896 },
{ type: 1, pts: 7192367046, ccData: 29472 },
{ type: 0, pts: 7192367046, ccData: 32896 },
{ type: 1, pts: 7192370016, ccData: 19553 },
{ type: 0, pts: 7192370016, ccData: 32896 },
{ type: 0, pts: 7192372986, ccData: 32896 },
{ type: 1, pts: 7192372986, ccData: 63418 },
{ type: 0, pts: 7192376046, ccData: 32896 },
{ type: 1, pts: 7192376046, ccData: 8271 },
{ type: 0, pts: 7192379106, ccData: 32896 },
{ type: 1, pts: 7192379106, ccData: 28192 },
{ type: 1, pts: 7192382076, ccData: 62568 },
{ type: 0, pts: 7192382076, ccData: 32896 },
{ type: 1, pts: 7192385136, ccData: 58656 },
{ type: 0, pts: 7192385136, ccData: 32896 },
{ type: 0, pts: 7192388106, ccData: 32896 },
{ type: 1, pts: 7192388106, ccData: 51317 },
{ type: 1, pts: 7192391076, ccData: 28404 },
{ type: 0, pts: 7192391076, ccData: 32896 },
{ type: 0, pts: 7192394046, ccData: 32896 },
{ type: 1, pts: 7192394046, ccData: 8360 },
{ type: 1, pts: 7192397016, ccData: 54245 },
{ type: 0, pts: 7192397016, ccData: 32896 },
{ type: 1, pts: 7192400076, ccData: 36667 },
{ type: 0, pts: 7192400076, ccData: 32896 },
{ type: 1, pts: 7192403046, ccData: 258 },
{ type: 0, pts: 7192403046, ccData: 32896 },
{ type: 1, pts: 7192406106, ccData: 16448 },
{ type: 0, pts: 7192406106, ccData: 32896 },
{ type: 1, pts: 7192409166, ccData: 16448 },
{ type: 0, pts: 7192409166, ccData: 32896 },
{ type: 1, pts: 7192412136, ccData: 16512 },
{ type: 0, pts: 7192412136, ccData: 32896 },
{ type: 0, pts: 7192415106, ccData: 32896 },
{ type: 1, pts: 7192415106, ccData: 36782 },
{ type: 1, pts: 7192418076, ccData: 387 },
{ type: 0, pts: 7192418076, ccData: 32896 },
{ type: 1, pts: 7192421046, ccData: 52975 },
{ type: 0, pts: 7192421046, ccData: 32896 },
{ type: 1, pts: 7192424106, ccData: 62196 },
{ type: 0, pts: 7192424106, ccData: 32896 },
{ type: 0, pts: 7192427076, ccData: 32896 },
{ type: 1, pts: 7192427076, ccData: 26656 },
{ type: 1, pts: 7192430136, ccData: 22511 },
{ type: 0, pts: 7192430136, ccData: 32896 },
{ type: 1, pts: 7192433196, ccData: 61284 },
{ type: 0, pts: 7192433196, ccData: 32896 },
{ type: 1, pts: 7192436166, ccData: 29472 },
{ type: 0, pts: 7192436166, ccData: 32896 },
{ type: 0, pts: 7192439136, ccData: 32896 },
{ type: 1, pts: 7192439136, ccData: 19553 },
{ type: 1, pts: 7192442106, ccData: 63418 },
{ type: 0, pts: 7192442106, ccData: 37920 },
{ type: 0, pts: 7192445076, ccData: 37920 },
{ type: 1, pts: 7192445076, ccData: 8271 },
{ type: 1, pts: 7192448136, ccData: 28192 },
{ type: 3, pts: 7192448136, ccData: 49954 },
{ type: 0, pts: 7192448136, ccData: 38062 },
{ type: 2, pts: 7192451106, ccData: 36093 },
{ type: 1, pts: 7192451106, ccData: 62568 },
{ type: 0, pts: 7192451106, ccData: 38062 },
{ type: 2, pts: 7192451106, ccData: 0 },
{ type: 0, pts: 7192454166, ccData: 38000 },
{ type: 3, pts: 7192454166, ccData: 2609 },
{ type: 1, pts: 7192454166, ccData: 58656 },
{ type: 0, pts: 7192457226, ccData: 38000 },
{ type: 2, pts: 7192457226, ccData: 38939 },
{ type: 2, pts: 7192457226, ccData: 17920 },
{ type: 2, pts: 7192457226, ccData: 31 },
{ type: 2, pts: 7192457226, ccData: 5264 },
{ type: 2, pts: 7192457226, ccData: 1283 },
{ type: 2, pts: 7192457226, ccData: 37162 },
{ type: 2, pts: 7192457226, ccData: 42 },
{ type: 2, pts: 7192457226, ccData: 37376 },
{ type: 2, pts: 7192457226, ccData: 0 },
{ type: 1, pts: 7192457226, ccData: 51317 },
{ type: 1, pts: 7192460106, ccData: 28404 },
{ type: 0, pts: 7192460106, ccData: 38818 },
{ type: 3, pts: 7192460106, ccData: 17187 },
{ type: 2, pts: 7192463166, ccData: 512 },
{ type: 1, pts: 7192463166, ccData: 8360 },
{ type: 0, pts: 7192463166, ccData: 38818 },
{ type: 2, pts: 7192463166, ccData: 37376 },
{ type: 0, pts: 7192466136, ccData: 18772 },
{ type: 1, pts: 7192466136, ccData: 54245 },
{ type: 3, pts: 7192466136, ccData: 33570 },
{ type: 3, pts: 7192469106, ccData: 49954 },
{ type: 2, pts: 7192469106, ccData: 0 },
{ type: 0, pts: 7192469106, ccData: 42963 },
{ type: 1, pts: 7192469106, ccData: 36667 },
{ type: 2, pts: 7192469106, ccData: 18772 },
{ type: 2, pts: 7192472166, ccData: 10067 },
{ type: 2, pts: 7192472166, ccData: 0 },
{ type: 3, pts: 7192472166, ccData: 802 },
{ type: 0, pts: 7192472166, ccData: 8398 },
{ type: 1, pts: 7192472166, ccData: 258 },
{ type: 2, pts: 7192475136, ccData: 8270 },
{ type: 0, pts: 7192475136, ccData: 20308 },
{ type: 3, pts: 7192475136, ccData: 17186 },
{ type: 2, pts: 7192475136, ccData: 0 },
{ type: 1, pts: 7192475136, ccData: 16448 },
{ type: 1, pts: 7192478196, ccData: 16448 },
{ type: 0, pts: 7192478196, ccData: 8385 },
{ type: 2, pts: 7192478196, ccData: 20308 },
{ type: 2, pts: 7192478196, ccData: 0 },
{ type: 3, pts: 7192478196, ccData: 33570 },
{ type: 2, pts: 7192481166, ccData: 8257 },
{ type: 0, pts: 7192481166, ccData: 8276 },
{ type: 2, pts: 7192481166, ccData: 0 },
{ type: 1, pts: 7192481166, ccData: 16512 },
{ type: 3, pts: 7192481166, ccData: 49954 },
{ type: 3, pts: 7192484136, ccData: 802 },
{ type: 2, pts: 7192484136, ccData: 0 },
{ type: 1, pts: 7192484136, ccData: 36782 },
{ type: 0, pts: 7192484136, ccData: 51282 },
{ type: 2, pts: 7192484136, ccData: 8276 },
{ type: 3, pts: 7192487196, ccData: 17186 },
{ type: 0, pts: 7192487196, ccData: 17857 },
{ type: 2, pts: 7192487196, ccData: 18514 },
{ type: 2, pts: 7192487196, ccData: 0 },
{ type: 1, pts: 7192487196, ccData: 387 },
{ type: 3, pts: 7192490166, ccData: 33570 },
{ type: 1, pts: 7192490166, ccData: 52975 },
{ type: 0, pts: 7192490166, ccData: 21536 },
{ type: 2, pts: 7192490166, ccData: 17729 },
{ type: 2, pts: 7192490166, ccData: 0 },
{ type: 2, pts: 7192493226, ccData: 21536 },
{ type: 3, pts: 7192493226, ccData: 49954 },
{ type: 2, pts: 7192493226, ccData: 0 },
{ type: 0, pts: 7192493226, ccData: 21583 },
{ type: 1, pts: 7192493226, ccData: 62196 },
{ type: 1, pts: 7192496196, ccData: 26656 },
{ type: 0, pts: 7192496196, ccData: 8385 },
{ type: 2, pts: 7192496196, ccData: 21583 },
{ type: 2, pts: 7192496196, ccData: 0 },
{ type: 3, pts: 7192496196, ccData: 802 },
{ type: 1, pts: 7192499166, ccData: 22511 },
{ type: 0, pts: 7192499166, ccData: 52953 },
{ type: 2, pts: 7192499166, ccData: 8257 },
{ type: 2, pts: 7192499166, ccData: 0 },
{ type: 3, pts: 7192499166, ccData: 17186 },
{ type: 2, pts: 7192502226, ccData: 0 },
{ type: 2, pts: 7192502226, ccData: 20057 },
{ type: 3, pts: 7192502226, ccData: 33570 },
{ type: 1, pts: 7192502226, ccData: 61284 },
{ type: 0, pts: 7192502226, ccData: 49743 },
{ type: 3, pts: 7192505106, ccData: 49954 },
{ type: 2, pts: 7192505106, ccData: 0 },
{ type: 0, pts: 7192505106, ccData: 50393 },
{ type: 1, pts: 7192505106, ccData: 29472 },
{ type: 2, pts: 7192505106, ccData: 16975 },
{ type: 2, pts: 7192508166, ccData: 17497 },
{ type: 3, pts: 7192508166, ccData: 802 },
{ type: 0, pts: 7192508166, ccData: 44672 },
{ type: 2, pts: 7192508166, ccData: 0 },
{ type: 1, pts: 7192508166, ccData: 389 },
{ type: 2, pts: 7192511226, ccData: 11776 },
{ type: 2, pts: 7192511226, ccData: 0 },
{ type: 1, pts: 7192511226, ccData: 51396 },
{ type: 0, pts: 7192511226, ccData: 37935 },
{ type: 3, pts: 7192511226, ccData: 17444 },
{ type: 0, pts: 7192514196, ccData: 37935 },
{ type: 2, pts: 7192514196, ccData: 35842 },
{ type: 2, pts: 7192514196, ccData: 35073 },
{ type: 2, pts: 7192514196, ccData: 0 },
{ type: 1, pts: 7192514196, ccData: 36831 },
{ type: 0, pts: 7192517256, ccData: 32896 },
{ type: 1, pts: 7192517256, ccData: 258 },
{ type: 1, pts: 7192520226, ccData: 16448 },
{ type: 0, pts: 7192520226, ccData: 32896 },
{ type: 1, pts: 7192523196, ccData: 16448 },
{ type: 0, pts: 7192523196, ccData: 32896 },
{ type: 1, pts: 7192526256, ccData: 16512 },
{ type: 0, pts: 7192526256, ccData: 32896 },
{ type: 1, pts: 7192529136, ccData: 36782 },
{ type: 0, pts: 7192529136, ccData: 32896 },
{ type: 1, pts: 7192532196, ccData: 387 },
{ type: 0, pts: 7192532196, ccData: 32896 },
{ type: 1, pts: 7192535256, ccData: 52975 },
{ type: 0, pts: 7192535256, ccData: 32896 },
{ type: 1, pts: 7192538226, ccData: 62196 },
{ type: 0, pts: 7192538226, ccData: 32896 },
{ type: 1, pts: 7192541286, ccData: 26656 },
{ type: 0, pts: 7192541286, ccData: 32896 },
{ type: 1, pts: 7192544256, ccData: 22511 },
{ type: 0, pts: 7192544256, ccData: 32896 },
{ type: 1, pts: 7192547226, ccData: 61284 },
{ type: 0, pts: 7192547226, ccData: 32896 },
{ type: 1, pts: 7192550196, ccData: 29472 },
{ type: 0, pts: 7192550196, ccData: 32896 },
{ type: 0, pts: 7192553166, ccData: 32896 },
{ type: 1, pts: 7192553166, ccData: 19553 },
{ type: 0, pts: 7192556226, ccData: 32896 },
{ type: 1, pts: 7192556226, ccData: 63418 },
{ type: 1, pts: 7192559286, ccData: 8271 },
{ type: 0, pts: 7192559286, ccData: 32896 },
{ type: 1, pts: 7192562256, ccData: 28192 },
{ type: 0, pts: 7192562256, ccData: 32896 },
{ type: 1, pts: 7192565316, ccData: 62568 },
{ type: 0, pts: 7192565316, ccData: 32896 },
{ type: 1, pts: 7192568286, ccData: 58656 },
{ type: 0, pts: 7192568286, ccData: 32896 },
{ type: 1, pts: 7192571256, ccData: 51317 },
{ type: 0, pts: 7192571256, ccData: 32896 },
{ type: 1, pts: 7192574226, ccData: 28404 },
{ type: 0, pts: 7192574226, ccData: 32896 },
{ type: 1, pts: 7192577196, ccData: 8360 },
{ type: 0, pts: 7192577196, ccData: 32896 },
{ type: 0, pts: 7192580256, ccData: 32896 },
{ type: 1, pts: 7192580256, ccData: 54245 },
{ type: 1, pts: 7192583226, ccData: 36667 },
{ type: 0, pts: 7192583226, ccData: 32896 },
{ type: 1, pts: 7192586286, ccData: 258 },
{ type: 0, pts: 7192586286, ccData: 32896 },
{ type: 0, pts: 7192589346, ccData: 32896 },
{ type: 1, pts: 7192589346, ccData: 16448 },
{ type: 1, pts: 7192592316, ccData: 16448 },
{ type: 0, pts: 7192592316, ccData: 32896 },
{ type: 0, pts: 7192595286, ccData: 32896 },
{ type: 1, pts: 7192595286, ccData: 16512 },
{ type: 0, pts: 7192598256, ccData: 32896 },
{ type: 1, pts: 7192598256, ccData: 36782 },
{ type: 1, pts: 7192601226, ccData: 387 },
{ type: 0, pts: 7192601226, ccData: 32896 },
{ type: 0, pts: 7192604286, ccData: 32896 },
{ type: 1, pts: 7192604286, ccData: 52975 },
{ type: 1, pts: 7192607256, ccData: 62196 },
{ type: 0, pts: 7192607256, ccData: 32896 },
{ type: 1, pts: 7192610316, ccData: 26656 },
{ type: 0, pts: 7192610316, ccData: 32896 },
{ type: 0, pts: 7192613376, ccData: 32896 },
{ type: 1, pts: 7192613376, ccData: 22511 },
{ type: 0, pts: 7192616346, ccData: 32896 },
{ type: 1, pts: 7192616346, ccData: 61284 },
{ type: 0, pts: 7192619316, ccData: 32896 },
{ type: 1, pts: 7192619316, ccData: 29472 },
{ type: 0, pts: 7192622286, ccData: 32896 },
{ type: 1, pts: 7192622286, ccData: 19553 },
{ type: 1, pts: 7192625256, ccData: 63418 },
{ type: 0, pts: 7192625256, ccData: 32896 },
{ type: 1, pts: 7192628316, ccData: 8271 },
{ type: 0, pts: 7192628316, ccData: 32896 },
{ type: 0, pts: 7192631286, ccData: 37920 },
{ type: 1, pts: 7192631286, ccData: 28192 },
{ type: 1, pts: 7192634346, ccData: 62568 },
{ type: 0, pts: 7192634346, ccData: 37920 },
{ type: 1, pts: 7192637406, ccData: 58656 },
{ type: 3, pts: 7192637406, ccData: 33570 },
{ type: 0, pts: 7192637406, ccData: 38062 },
{ type: 2, pts: 7192640286, ccData: 0 },
{ type: 1, pts: 7192640286, ccData: 51317 },
{ type: 0, pts: 7192640286, ccData: 38062 },
{ type: 2, pts: 7192640286, ccData: 36094 },
{ type: 1, pts: 7192643346, ccData: 28404 },
{ type: 3, pts: 7192643346, ccData: 51761 },
{ type: 0, pts: 7192643346, ccData: 38096 },
{ type: 1, pts: 7192646316, ccData: 8360 },
{ type: 0, pts: 7192646316, ccData: 38096 },
{ type: 2, pts: 7192646316, ccData: 39195 },
{ type: 2, pts: 7192646316, ccData: 16640 },
{ type: 2, pts: 7192646316, ccData: 31 },
{ type: 2, pts: 7192646316, ccData: 5264 },
{ type: 2, pts: 7192646316, ccData: 1283 },
{ type: 2, pts: 7192646316, ccData: 37162 },
{ type: 2, pts: 7192646316, ccData: 42 },
{ type: 2, pts: 7192646316, ccData: 37376 },
{ type: 2, pts: 7192646316, ccData: 0 },
{ type: 3, pts: 7192649286, ccData: 802 },
{ type: 0, pts: 7192649286, ccData: 22341 },
{ type: 1, pts: 7192649286, ccData: 54245 },
{ type: 0, pts: 7192652346, ccData: 8276 },
{ type: 1, pts: 7192652346, ccData: 36667 },
{ type: 2, pts: 7192652346, ccData: 0 },
{ type: 3, pts: 7192652346, ccData: 17186 },
{ type: 2, pts: 7192652346, ccData: 22341 },
{ type: 0, pts: 7192655316, ccData: 21209 },
{ type: 2, pts: 7192655316, ccData: 8276 },
{ type: 1, pts: 7192655316, ccData: 258 },
{ type: 3, pts: 7192655316, ccData: 33570 },
{ type: 2, pts: 7192655316, ccData: 0 },
{ type: 1, pts: 7192658376, ccData: 16448 },
{ type: 0, pts: 7192658376, ccData: 8398 },
{ type: 2, pts: 7192658376, ccData: 21081 },
{ type: 2, pts: 7192658376, ccData: 0 },
{ type: 3, pts: 7192658376, ccData: 49954 },
{ type: 0, pts: 7192661346, ccData: 20308 },
{ type: 2, pts: 7192661346, ccData: 8270 },
{ type: 2, pts: 7192661346, ccData: 0 },
{ type: 3, pts: 7192661346, ccData: 802 },
{ type: 1, pts: 7192661346, ccData: 16448 },
{ type: 0, pts: 7192664316, ccData: 8276 },
{ type: 2, pts: 7192664316, ccData: 20308 },
{ type: 2, pts: 7192664316, ccData: 0 },
{ type: 3, pts: 7192664316, ccData: 17186 },
{ type: 1, pts: 7192664316, ccData: 16512 },
{ type: 0, pts: 7192667376, ccData: 20256 },
{ type: 1, pts: 7192667376, ccData: 36782 },
{ type: 2, pts: 7192667376, ccData: 8276 },
{ type: 2, pts: 7192667376, ccData: 0 },
{ type: 3, pts: 7192667376, ccData: 33570 },
{ type: 3, pts: 7192670346, ccData: 49954 },
{ type: 1, pts: 7192670346, ccData: 387 },
{ type: 0, pts: 7192670346, ccData: 53461 },
{ type: 2, pts: 7192670346, ccData: 20256 },
{ type: 2, pts: 7192670346, ccData: 0 },
{ type: 0, pts: 7192673406, ccData: 21536 },
{ type: 3, pts: 7192673406, ccData: 802 },
{ type: 2, pts: 7192673406, ccData: 0 },
{ type: 2, pts: 7192673406, ccData: 20565 },
{ type: 1, pts: 7192673406, ccData: 52975 },
{ type: 1, pts: 7192676376, ccData: 62196 },
{ type: 2, pts: 7192676376, ccData: 21536 },
{ type: 2, pts: 7192676376, ccData: 0 },
{ type: 3, pts: 7192676376, ccData: 17186 },
{ type: 0, pts: 7192676376, ccData: 49614 },
{ type: 0, pts: 7192679346, ccData: 8385 },
{ type: 2, pts: 7192679346, ccData: 16718 },
{ type: 1, pts: 7192679346, ccData: 26656 },
{ type: 3, pts: 7192679346, ccData: 33570 },
{ type: 2, pts: 7192679346, ccData: 0 },
{ type: 1, pts: 7192682406, ccData: 22511 },
{ type: 0, pts: 7192682406, ccData: 52809 },
{ type: 2, pts: 7192682406, ccData: 8257 },
{ type: 2, pts: 7192682406, ccData: 0 },
{ type: 3, pts: 7192682406, ccData: 49954 },
{ type: 0, pts: 7192685286, ccData: 52673 },
{ type: 2, pts: 7192685286, ccData: 20041 },
{ type: 2, pts: 7192685286, ccData: 0 },
{ type: 3, pts: 7192685286, ccData: 802 },
{ type: 1, pts: 7192685286, ccData: 61284 },
{ type: 1, pts: 7192688346, ccData: 389 },
{ type: 0, pts: 7192688346, ccData: 19488 },
{ type: 2, pts: 7192688346, ccData: 19777 },
{ type: 2, pts: 7192688346, ccData: 0 },
{ type: 3, pts: 7192688346, ccData: 17186 },
{ type: 3, pts: 7192691406, ccData: 33570 },
{ type: 2, pts: 7192691406, ccData: 0 },
{ type: 2, pts: 7192691406, ccData: 19488 },
{ type: 0, pts: 7192691406, ccData: 50255 },
{ type: 1, pts: 7192691406, ccData: 51396 },
{ type: 1, pts: 7192694376, ccData: 36831 },
{ type: 0, pts: 7192694376, ccData: 22478 },
{ type: 2, pts: 7192694376, ccData: 17487 },
{ type: 2, pts: 7192694376, ccData: 0 },
{ type: 3, pts: 7192694376, ccData: 49954 },
{ type: 3, pts: 7192697436, ccData: 2609 },
{ type: 1, pts: 7192697436, ccData: 258 },
{ type: 2, pts: 7192697436, ccData: 22350 },
{ type: 2, pts: 7192697436, ccData: 0 },
{ type: 0, pts: 7192697436, ccData: 38130 },
{ type: 2, pts: 7192700406, ccData: 1024 },
{ type: 0, pts: 7192700406, ccData: 38130 },
{ type: 2, pts: 7192700406, ccData: 16640 },
{ type: 2, pts: 7192700406, ccData: 287 },
{ type: 2, pts: 7192700406, ccData: 4240 },
{ type: 2, pts: 7192700406, ccData: 1283 },
{ type: 2, pts: 7192700406, ccData: 37162 },
{ type: 2, pts: 7192700406, ccData: 0 },
{ type: 2, pts: 7192700406, ccData: 37377 },
{ type: 2, pts: 7192700406, ccData: 39195 },
{ type: 1, pts: 7192700406, ccData: 16448 },
{ type: 0, pts: 7192703376, ccData: 38818 },
{ type: 3, pts: 7192703376, ccData: 17187 },
{ type: 1, pts: 7192703376, ccData: 16448 },
{ type: 1, pts: 7192706436, ccData: 16512 },
{ type: 0, pts: 7192706436, ccData: 38818 },
{ type: 2, pts: 7192706436, ccData: 37377 },
{ type: 2, pts: 7192706436, ccData: 1536 },
{ type: 3, pts: 7192709316, ccData: 33570 },
{ type: 1, pts: 7192709316, ccData: 36782 },
{ type: 0, pts: 7192709316, ccData: 18758 },
{ type: 1, pts: 7192712376, ccData: 387 },
{ type: 0, pts: 7192712376, ccData: 8279 },
{ type: 2, pts: 7192712376, ccData: 18758 },
{ type: 2, pts: 7192712376, ccData: 0 },
{ type: 3, pts: 7192712376, ccData: 49954 },
{ type: 1, pts: 7192715436, ccData: 52975 },
{ type: 0, pts: 7192715436, ccData: 17696 },
{ type: 2, pts: 7192715436, ccData: 8279 },
{ type: 2, pts: 7192715436, ccData: 0 },
{ type: 3, pts: 7192715436, ccData: 802 },
{ type: 3, pts: 7192718406, ccData: 17186 },
{ type: 1, pts: 7192718406, ccData: 62196 },
{ type: 2, pts: 7192718406, ccData: 0 },
{ type: 0, pts: 7192718406, ccData: 50255 },
{ type: 2, pts: 7192718406, ccData: 17696 },
{ type: 3, pts: 7192721466, ccData: 33570 },
{ type: 2, pts: 7192721466, ccData: 17487 },
{ type: 0, pts: 7192721466, ccData: 52903 },
{ type: 1, pts: 7192721466, ccData: 26656 },
{ type: 2, pts: 7192721466, ccData: 0 },
{ type: 1, pts: 7192724436, ccData: 22511 },
{ type: 0, pts: 7192724436, ccData: 21536 },
{ type: 2, pts: 7192724436, ccData: 20007 },
{ type: 2, pts: 7192724436, ccData: 0 },
{ type: 3, pts: 7192724436, ccData: 49954 },
{ type: 2, pts: 7192727406, ccData: 0 },
{ type: 2, pts: 7192727406, ccData: 21536 },
{ type: 0, pts: 7192727406, ccData: 51393 },
{ type: 1, pts: 7192727406, ccData: 61284 },
{ type: 3, pts: 7192727406, ccData: 802 },
{ type: 0, pts: 7192730376, ccData: 54853 },
{ type: 1, pts: 7192730376, ccData: 29472 },
{ type: 2, pts: 7192730376, ccData: 18497 },
{ type: 2, pts: 7192730376, ccData: 0 },
{ type: 3, pts: 7192730376, ccData: 17186 },
{ type: 2, pts: 7192733346, ccData: 22085 },
{ type: 3, pts: 7192733346, ccData: 33570 },
{ type: 0, pts: 7192733346, ccData: 8276 },
{ type: 1, pts: 7192733346, ccData: 19553 },
{ type: 2, pts: 7192733346, ccData: 0 },
{ type: 1, pts: 7192736406, ccData: 63418 },
{ type: 2, pts: 7192736406, ccData: 0 },
{ type: 3, pts: 7192736406, ccData: 49954 },
{ type: 2, pts: 7192736406, ccData: 8276 },
{ type: 0, pts: 7192736406, ccData: 20398 },
{ type: 1, pts: 7192739466, ccData: 8271 },
{ type: 0, pts: 7192739466, ccData: 37935 },
{ type: 2, pts: 7192739466, ccData: 20270 },
{ type: 2, pts: 7192739466, ccData: 0 },
{ type: 3, pts: 7192739466, ccData: 1060 },
{ type: 0, pts: 7192742436, ccData: 37935 },
{ type: 2, pts: 7192742436, ccData: 35841 },
{ type: 2, pts: 7192742436, ccData: 35074 },
{ type: 2, pts: 7192742436, ccData: 0 },
{ type: 1, pts: 7192742436, ccData: 28192 },
{ type: 1, pts: 7192745496, ccData: 62568 },
{ type: 0, pts: 7192745496, ccData: 32896 },
{ type: 1, pts: 7192748466, ccData: 58656 },
{ type: 0, pts: 7192748466, ccData: 32896 },
{ type: 1, pts: 7192751436, ccData: 51317 },
{ type: 0, pts: 7192751436, ccData: 32896 },
{ type: 1, pts: 7192754406, ccData: 28404 },
{ type: 0, pts: 7192754406, ccData: 32896 },
{ type: 0, pts: 7192757376, ccData: 32896 },
{ type: 1, pts: 7192757376, ccData: 8360 },
{ type: 1, pts: 7192760436, ccData: 54245 },
{ type: 0, pts: 7192760436, ccData: 32896 },
{ type: 1, pts: 7192763406, ccData: 36667 },
{ type: 0, pts: 7192763406, ccData: 32896 },
{ type: 1, pts: 7192766466, ccData: 258 },
{ type: 0, pts: 7192766466, ccData: 32896 },
{ type: 1, pts: 7192769526, ccData: 16448 },
{ type: 0, pts: 7192769526, ccData: 32896 },
{ type: 1, pts: 7192772496, ccData: 16448 },
{ type: 0, pts: 7192772496, ccData: 32896 },
{ type: 1, pts: 7192775466, ccData: 16512 },
{ type: 0, pts: 7192775466, ccData: 32896 },
{ type: 1, pts: 7192778436, ccData: 36782 },
{ type: 0, pts: 7192778436, ccData: 32896 },
{ type: 1, pts: 7192781406, ccData: 387 },
{ type: 0, pts: 7192781406, ccData: 32896 },
{ type: 1, pts: 7192784466, ccData: 52975 },
{ type: 0, pts: 7192784466, ccData: 32896 },
{ type: 0, pts: 7192787436, ccData: 32896 },
{ type: 1, pts: 7192787436, ccData: 62196 },
{ type: 1, pts: 7192790496, ccData: 26656 },
{ type: 0, pts: 7192790496, ccData: 32896 },
{ type: 0, pts: 7192793556, ccData: 32896 },
{ type: 1, pts: 7192793556, ccData: 22511 },
{ type: 0, pts: 7192796526, ccData: 32896 },
{ type: 1, pts: 7192796526, ccData: 61284 },
{ type: 1, pts: 7192799496, ccData: 29472 },
{ type: 0, pts: 7192799496, ccData: 32896 },
{ type: 1, pts: 7192802466, ccData: 19553 },
{ type: 0, pts: 7192802466, ccData: 32896 },
{ type: 1, pts: 7192805436, ccData: 63418 },
{ type: 0, pts: 7192805436, ccData: 32896 },
{ type: 1, pts: 7192808496, ccData: 8271 },
{ type: 0, pts: 7192808496, ccData: 32896 },
{ type: 0, pts: 7192811466, ccData: 32896 },
{ type: 1, pts: 7192811466, ccData: 28192 },
{ type: 1, pts: 7192814526, ccData: 62568 },
{ type: 0, pts: 7192814526, ccData: 32896 },
{ type: 1, pts: 7192817586, ccData: 58656 },
{ type: 0, pts: 7192817586, ccData: 32896 },
{ type: 0, pts: 7192820466, ccData: 32896 },
{ type: 1, pts: 7192820466, ccData: 51317 },
{ type: 0, pts: 7192823526, ccData: 32896 },
{ type: 1, pts: 7192823526, ccData: 28404 },
{ type: 1, pts: 7192826496, ccData: 8360 },
{ type: 0, pts: 7192826496, ccData: 32896 },
{ type: 0, pts: 7192829466, ccData: 32896 },
{ type: 1, pts: 7192829466, ccData: 54245 },
{ type: 1, pts: 7192832526, ccData: 36667 },
{ type: 0, pts: 7192832526, ccData: 32896 },
{ type: 1, pts: 7192835496, ccData: 258 },
{ type: 0, pts: 7192835496, ccData: 32896 },
{ type: 1, pts: 7192838556, ccData: 16448 },
{ type: 0, pts: 7192838556, ccData: 32896 },
{ type: 0, pts: 7192841526, ccData: 32896 },
{ type: 1, pts: 7192841526, ccData: 16448 },
{ type: 1, pts: 7192844496, ccData: 16512 },
{ type: 0, pts: 7192844496, ccData: 32896 },
{ type: 1, pts: 7192847556, ccData: 36782 },
{ type: 0, pts: 7192847556, ccData: 32896 },
{ type: 1, pts: 7192850526, ccData: 387 },
{ type: 0, pts: 7192850526, ccData: 32896 },
{ type: 1, pts: 7192853586, ccData: 52975 },
{ type: 0, pts: 7192853586, ccData: 37920 },
{ type: 0, pts: 7192856556, ccData: 37920 },
{ type: 1, pts: 7192856556, ccData: 62196 },
{ type: 1, pts: 7192859526, ccData: 26656 },
{ type: 0, pts: 7192859526, ccData: 38062 },
{ type: 3, pts: 7192859526, ccData: 17186 },
{ type: 1, pts: 7192862586, ccData: 22511 },
{ type: 0, pts: 7192862586, ccData: 38062 },
{ type: 2, pts: 7192862586, ccData: 36093 },
{ type: 2, pts: 7192862586, ccData: 0 },
{ type: 0, pts: 7192865466, ccData: 4982 },
{ type: 1, pts: 7192865466, ccData: 61284 },
{ type: 3, pts: 7192865466, ccData: 35377 },
{ type: 2, pts: 7192868526, ccData: 3072 },
{ type: 2, pts: 7192868526, ccData: 37376 },
{ type: 2, pts: 7192868526, ccData: 42 },
{ type: 2, pts: 7192868526, ccData: 37162 },
{ type: 1, pts: 7192868526, ccData: 29472 },
{ type: 0, pts: 7192868526, ccData: 4982 },
{ type: 2, pts: 7192868526, ccData: 38939 },
{ type: 2, pts: 7192868526, ccData: 15360 },
{ type: 2, pts: 7192868526, ccData: 31 },
{ type: 2, pts: 7192868526, ccData: 5264 },
{ type: 2, pts: 7192868526, ccData: 1283 },
{ type: 1, pts: 7192871586, ccData: 389 },
{ type: 0, pts: 7192871586, ccData: 52833 },
{ type: 3, pts: 7192871586, ccData: 49954 },
{ type: 2, pts: 7192874556, ccData: 0 },
{ type: 1, pts: 7192874556, ccData: 51396 },
{ type: 0, pts: 7192874556, ccData: 62194 },
{ type: 2, pts: 7192874556, ccData: 20065 },
{ type: 3, pts: 7192874556, ccData: 802 },
{ type: 0, pts: 7192877616, ccData: 25076 },
{ type: 2, pts: 7192877616, ccData: 29298 },
{ type: 3, pts: 7192877616, ccData: 17186 },
{ type: 1, pts: 7192877616, ccData: 36831 },
{ type: 2, pts: 7192877616, ccData: 0 },
{ type: 3, pts: 7192880586, ccData: 33570 },
{ type: 2, pts: 7192880586, ccData: 0 },
{ type: 2, pts: 7192880586, ccData: 24948 },
{ type: 0, pts: 7192880586, ccData: 61426 },
{ type: 1, pts: 7192880586, ccData: 258 },
{ type: 3, pts: 7192883556, ccData: 49954 },
{ type: 2, pts: 7192883556, ccData: 0 },
{ type: 2, pts: 7192883556, ccData: 28530 },
{ type: 0, pts: 7192883556, ccData: 47744 },
{ type: 1, pts: 7192883556, ccData: 16448 },
{ type: 3, pts: 7192886616, ccData: 2609 },
{ type: 1, pts: 7192886616, ccData: 16448 },
{ type: 0, pts: 7192886616, ccData: 38096 },
{ type: 2, pts: 7192886616, ccData: 14848 },
{ type: 2, pts: 7192886616, ccData: 0 },
{ type: 2, pts: 7192889496, ccData: 287 },
{ type: 2, pts: 7192889496, ccData: 15360 },
{ type: 2, pts: 7192889496, ccData: 38939 },
{ type: 0, pts: 7192889496, ccData: 38096 },
{ type: 2, pts: 7192889496, ccData: 0 },
{ type: 2, pts: 7192889496, ccData: 37162 },
{ type: 2, pts: 7192889496, ccData: 1283 },
{ type: 2, pts: 7192889496, ccData: 4240 },
{ type: 2, pts: 7192889496, ccData: 0 },
{ type: 2, pts: 7192889496, ccData: 37377 },
{ type: 1, pts: 7192889496, ccData: 16512 },
{ type: 1, pts: 7192892556, ccData: 36782 },
{ type: 3, pts: 7192892556, ccData: 17187 },
{ type: 0, pts: 7192892556, ccData: 38817 },
{ type: 0, pts: 7192895616, ccData: 38817 },
{ type: 1, pts: 7192895616, ccData: 387 },
{ type: 2, pts: 7192895616, ccData: 256 },
{ type: 2, pts: 7192895616, ccData: 37377 },
{ type: 1, pts: 7192898586, ccData: 52975 },
{ type: 0, pts: 7192898586, ccData: 18758 },
{ type: 3, pts: 7192898586, ccData: 33570 },
{ type: 0, pts: 7192901646, ccData: 8276 },
{ type: 2, pts: 7192901646, ccData: 18758 },
{ type: 2, pts: 7192901646, ccData: 0 },
{ type: 3, pts: 7192901646, ccData: 49954 },
{ type: 1, pts: 7192901646, ccData: 62196 },
{ type: 1, pts: 7192904616, ccData: 26656 },
{ type: 0, pts: 7192904616, ccData: 51269 },
{ type: 2, pts: 7192904616, ccData: 8276 },
{ type: 2, pts: 7192904616, ccData: 0 },
{ type: 3, pts: 7192904616, ccData: 802 },
{ type: 3, pts: 7192907586, ccData: 17186 },
{ type: 2, pts: 7192907586, ccData: 0 },
{ type: 2, pts: 7192907586, ccData: 18501 },
{ type: 0, pts: 7192907586, ccData: 8403 },
{ type: 1, pts: 7192907586, ccData: 22511 },
{ type: 1, pts: 7192910556, ccData: 61284 },
{ type: 0, pts: 7192910556, ccData: 18755 },
{ type: 2, pts: 7192910556, ccData: 8275 },
{ type: 2, pts: 7192910556, ccData: 0 },
{ type: 3, pts: 7192910556, ccData: 33570 },
{ type: 3, pts: 7192913526, ccData: 49954 },
{ type: 1, pts: 7192913526, ccData: 29472 },
{ type: 2, pts: 7192913526, ccData: 18755 },
{ type: 2, pts: 7192913526, ccData: 0 },
{ type: 0, pts: 7192913526, ccData: 52000 },
{ type: 0, pts: 7192916586, ccData: 49614 },
{ type: 2, pts: 7192916586, ccData: 19232 },
{ type: 2, pts: 7192916586, ccData: 0 },
{ type: 3, pts: 7192916586, ccData: 802 },
{ type: 1, pts: 7192916586, ccData: 19553 },
{ type: 0, pts: 7192919646, ccData: 50208 },
{ type: 1, pts: 7192919646, ccData: 63418 },
{ type: 2, pts: 7192919646, ccData: 16718 },
{ type: 2, pts: 7192919646, ccData: 0 },
{ type: 3, pts: 7192919646, ccData: 17186 },
{ type: 3, pts: 7192922616, ccData: 33570 },
{ type: 1, pts: 7192922616, ccData: 8271 },
{ type: 0, pts: 7192922616, ccData: 17989 },
{ type: 2, pts: 7192922616, ccData: 17440 },
{ type: 2, pts: 7192922616, ccData: 0 },
{ type: 2, pts: 7192925676, ccData: 17989 },
{ type: 3, pts: 7192925676, ccData: 49954 },
{ type: 0, pts: 7192925676, ccData: 49490 },
{ type: 1, pts: 7192925676, ccData: 28192 },
{ type: 2, pts: 7192925676, ccData: 0 },
{ type: 0, pts: 7192928646, ccData: 19525 },
{ type: 2, pts: 7192928646, ccData: 16722 },
{ type: 2, pts: 7192928646, ccData: 0 },
{ type: 3, pts: 7192928646, ccData: 802 },
{ type: 1, pts: 7192928646, ccData: 62568 },
{ type: 0, pts: 7192931616, ccData: 54227 },
{ type: 1, pts: 7192931616, ccData: 58656 },
{ type: 3, pts: 7192931616, ccData: 17186 },
{ type: 2, pts: 7192931616, ccData: 19525 },
{ type: 2, pts: 7192931616, ccData: 0 },
{ type: 1, pts: 7192934586, ccData: 51317 },
{ type: 0, pts: 7192934586, ccData: 8397 },
{ type: 2, pts: 7192934586, ccData: 21331 },
{ type: 2, pts: 7192934586, ccData: 0 },
{ type: 3, pts: 7192934586, ccData: 33570 },
{ type: 2, pts: 7192937556, ccData: 0 },
{ type: 0, pts: 7192937556, ccData: 20303 },
{ type: 2, pts: 7192937556, ccData: 8269 },
{ type: 1, pts: 7192937556, ccData: 28404 },
{ type: 3, pts: 7192937556, ccData: 49954 },
{ type: 1, pts: 7192940616, ccData: 8360 },
{ type: 0, pts: 7192940616, ccData: 54085 },
{ type: 2, pts: 7192940616, ccData: 20303 },
{ type: 2, pts: 7192940616, ccData: 0 },
{ type: 3, pts: 7192940616, ccData: 802 },
{ type: 0, pts: 7192943586, ccData: 38000 },
{ type: 3, pts: 7192943586, ccData: 18993 },
{ type: 1, pts: 7192943586, ccData: 54245 },
{ type: 2, pts: 7192943586, ccData: 0 },
{ type: 2, pts: 7192943586, ccData: 21317 },
{ type: 2, pts: 7192946646, ccData: 1283 },
{ type: 1, pts: 7192946646, ccData: 36667 },
{ type: 2, pts: 7192946646, ccData: 38939 },
{ type: 2, pts: 7192946646, ccData: 15360 },
{ type: 2, pts: 7192946646, ccData: 543 },
{ type: 2, pts: 7192946646, ccData: 4240 },
{ type: 0, pts: 7192946646, ccData: 38000 },
{ type: 2, pts: 7192946646, ccData: 37162 },
{ type: 2, pts: 7192946646, ccData: 0 },
{ type: 2, pts: 7192946646, ccData: 37378 },
{ type: 2, pts: 7192946646, ccData: 0 },
{ type: 3, pts: 7192949706, ccData: 33571 },
{ type: 0, pts: 7192949706, ccData: 38817 },
{ type: 1, pts: 7192949706, ccData: 258 },
{ type: 2, pts: 7192952676, ccData: 256 },
{ type: 1, pts: 7192952676, ccData: 16448 },
{ type: 0, pts: 7192952676, ccData: 38817 },
{ type: 2, pts: 7192952676, ccData: 37378 },
{ type: 1, pts: 7192955646, ccData: 16448 },
{ type: 0, pts: 7192955646, ccData: 22465 },
{ type: 3, pts: 7192955646, ccData: 49954 },
{ type: 3, pts: 7192958616, ccData: 802 },
{ type: 2, pts: 7192958616, ccData: 22337 },
{ type: 2, pts: 7192958616, ccData: 0 },
{ type: 1, pts: 7192958616, ccData: 16512 },
{ type: 0, pts: 7192958616, ccData: 54048 },
{ type: 0, pts: 7192961586, ccData: 17228 },
{ type: 2, pts: 7192961586, ccData: 21280 },
{ type: 2, pts: 7192961586, ccData: 0 },
{ type: 3, pts: 7192961586, ccData: 17186 },
{ type: 1, pts: 7192961586, ccData: 36782 },
{ type: 0, pts: 7192964646, ccData: 20435 },
{ type: 2, pts: 7192964646, ccData: 17228 },
{ type: 2, pts: 7192964646, ccData: 0 },
{ type: 3, pts: 7192964646, ccData: 33570 },
{ type: 1, pts: 7192964646, ccData: 387 },
{ type: 0, pts: 7192967616, ccData: 17746 },
{ type: 1, pts: 7192967616, ccData: 52975 },
{ type: 2, pts: 7192967616, ccData: 0 },
{ type: 2, pts: 7192967616, ccData: 20307 },
{ type: 3, pts: 7192967616, ccData: 49954 },
{ type: 1, pts: 7192970676, ccData: 62196 },
{ type: 0, pts: 7192970676, ccData: 8276 },
{ type: 2, pts: 7192970676, ccData: 17746 },
{ type: 2, pts: 7192970676, ccData: 0 },
{ type: 3, pts: 7192970676, ccData: 802 },
{ type: 2, pts: 7192973736, ccData: 0 },
{ type: 2, pts: 7192973736, ccData: 8276 },
{ type: 3, pts: 7192973736, ccData: 17186 },
{ type: 0, pts: 7192973736, ccData: 20256 },
{ type: 1, pts: 7192973736, ccData: 26656 },
{ type: 1, pts: 7192976706, ccData: 22511 },
{ type: 0, pts: 7192976706, ccData: 49440 },
{ type: 2, pts: 7192976706, ccData: 20256 },
{ type: 2, pts: 7192976706, ccData: 0 },
{ type: 3, pts: 7192976706, ccData: 33570 },
{ type: 3, pts: 7192979676, ccData: 49954 },
{ type: 2, pts: 7192979676, ccData: 0 },
{ type: 2, pts: 7192979676, ccData: 16672 },
{ type: 0, pts: 7192979676, ccData: 53327 },
{ type: 1, pts: 7192979676, ccData: 61284 },
{ type: 1, pts: 7192982646, ccData: 29472 },
{ type: 0, pts: 7192982646, ccData: 53461 },
{ type: 2, pts: 7192982646, ccData: 20559 },
{ type: 2, pts: 7192982646, ccData: 0 },
{ type: 3, pts: 7192982646, ccData: 802 },
{ type: 3, pts: 7192985616, ccData: 17186 },
{ type: 1, pts: 7192985616, ccData: 19553 },
{ type: 2, pts: 7192985616, ccData: 20565 },
{ type: 2, pts: 7192985616, ccData: 0 },
{ type: 0, pts: 7192985616, ccData: 19649 },
{ type: 2, pts: 7192988676, ccData: 19521 },
{ type: 1, pts: 7192988676, ccData: 63418 },
{ type: 0, pts: 7192988676, ccData: 21573 },
{ type: 2, pts: 7192988676, ccData: 0 },
{ type: 3, pts: 7192988676, ccData: 33570 },
{ type: 2, pts: 7192991646, ccData: 0 },
{ type: 2, pts: 7192991646, ccData: 21573 },
{ type: 3, pts: 7192991646, ccData: 49954 },
{ type: 1, pts: 7192991646, ccData: 8271 },
{ type: 0, pts: 7192991646, ccData: 50208 },
{ type: 1, pts: 7192994706, ccData: 28192 },
{ type: 0, pts: 7192994706, ccData: 49490 },
{ type: 2, pts: 7192994706, ccData: 17440 },
{ type: 2, pts: 7192994706, ccData: 0 },
{ type: 3, pts: 7192994706, ccData: 802 },
{ type: 2, pts: 7192997766, ccData: 0 },
{ type: 0, pts: 7192997766, ccData: 17857 },
{ type: 3, pts: 7192997766, ccData: 17186 },
{ type: 1, pts: 7192997766, ccData: 62568 },
{ type: 2, pts: 7192997766, ccData: 16722 },
{ type: 3, pts: 7193000646, ccData: 33570 },
{ type: 1, pts: 7193000646, ccData: 58656 },
{ type: 0, pts: 7193000646, ccData: 11392 },
{ type: 2, pts: 7193000646, ccData: 17729 },
{ type: 2, pts: 7193000646, ccData: 0 },
{ type: 1, pts: 7193003706, ccData: 51317 },
{ type: 2, pts: 7193003706, ccData: 11264 },
{ type: 2, pts: 7193003706, ccData: 0 },
{ type: 3, pts: 7193003706, ccData: 50212 },
{ type: 0, pts: 7193003706, ccData: 37935 },
{ type: 1, pts: 7193006676, ccData: 28404 },
{ type: 0, pts: 7193006676, ccData: 37935 },
{ type: 2, pts: 7193006676, ccData: 35842 },
{ type: 2, pts: 7193006676, ccData: 35073 },
{ type: 2, pts: 7193006676, ccData: 0 },
{ type: 1, pts: 7193009646, ccData: 8360 },
{ type: 0, pts: 7193009646, ccData: 32896 },
{ type: 1, pts: 7193012706, ccData: 54245 },
{ type: 0, pts: 7193012706, ccData: 32896 },
{ type: 1, pts: 7193015676, ccData: 36667 },
{ type: 0, pts: 7193015676, ccData: 32896 },
{ type: 0, pts: 7193018736, ccData: 32896 },
{ type: 1, pts: 7193018736, ccData: 258 },
{ type: 0, pts: 7193021706, ccData: 32896 },
{ type: 1, pts: 7193021706, ccData: 16448 },
{ type: 1, pts: 7193024676, ccData: 16448 },
{ type: 0, pts: 7193024676, ccData: 32896 },
{ type: 1, pts: 7193027736, ccData: 16512 },
{ type: 0, pts: 7193027736, ccData: 32896 },
{ type: 0, pts: 7193030706, ccData: 32896 },
{ type: 1, pts: 7193030706, ccData: 36782 },
{ type: 1, pts: 7193033766, ccData: 387 },
{ type: 0, pts: 7193033766, ccData: 32896 },
{ type: 1, pts: 7193036736, ccData: 52975 },
{ type: 0, pts: 7193036736, ccData: 32896 },
{ type: 1, pts: 7193039706, ccData: 62196 },
{ type: 0, pts: 7193039706, ccData: 32896 },
{ type: 1, pts: 7193042766, ccData: 26656 },
{ type: 0, pts: 7193042766, ccData: 32896 },
{ type: 1, pts: 7193045646, ccData: 22511 },
{ type: 0, pts: 7193045646, ccData: 32896 },
{ type: 1, pts: 7193048706, ccData: 61284 },
{ type: 0, pts: 7193048706, ccData: 32896 },
{ type: 1, pts: 7193051766, ccData: 29472 },
{ type: 0, pts: 7193051766, ccData: 32896 },
{ type: 1, pts: 7193054736, ccData: 389 },
{ type: 0, pts: 7193054736, ccData: 32896 },
{ type: 1, pts: 7193057796, ccData: 51396 },
{ type: 0, pts: 7193057796, ccData: 32896 },
{ type: 1, pts: 7193060766, ccData: 36831 },
{ type: 0, pts: 7193060766, ccData: 32896 },
{ type: 1, pts: 7193063736, ccData: 258 },
{ type: 0, pts: 7193063736, ccData: 32896 },
{ type: 0, pts: 7193066796, ccData: 32896 },
{ type: 1, pts: 7193066796, ccData: 16448 },
{ type: 0, pts: 7193069676, ccData: 32896 },
{ type: 1, pts: 7193069676, ccData: 16448 },
{ type: 1, pts: 7193072736, ccData: 16512 },
{ type: 0, pts: 7193072736, ccData: 32896 },
{ type: 0, pts: 7193075796, ccData: 32896 },
{ type: 1, pts: 7193075796, ccData: 36782 },
{ type: 1, pts: 7193078766, ccData: 387 },
{ type: 0, pts: 7193078766, ccData: 32896 },
{ type: 1, pts: 7193081826, ccData: 52975 },
{ type: 0, pts: 7193081826, ccData: 32896 },
{ type: 1, pts: 7193084796, ccData: 62196 },
{ type: 0, pts: 7193084796, ccData: 32896 },
{ type: 0, pts: 7193087766, ccData: 32896 },
{ type: 1, pts: 7193087766, ccData: 26656 },
{ type: 0, pts: 7193090736, ccData: 32896 },
{ type: 1, pts: 7193090736, ccData: 22511 },
{ type: 0, pts: 7193093706, ccData: 32896 },
{ type: 1, pts: 7193093706, ccData: 61284 },
{ type: 1, pts: 7193096766, ccData: 29472 },
{ type: 0, pts: 7193096766, ccData: 32896 },
{ type: 1, pts: 7193099826, ccData: 19553 },
{ type: 0, pts: 7193099826, ccData: 32896 },
{ type: 1, pts: 7193102796, ccData: 63418 },
{ type: 0, pts: 7193102796, ccData: 32896 },
{ type: 0, pts: 7193105856, ccData: 32896 },
{ type: 1, pts: 7193105856, ccData: 8271 },
{ type: 0, pts: 7193108826, ccData: 32896 },
{ type: 1, pts: 7193108826, ccData: 28192 },
{ type: 1, pts: 7193111796, ccData: 62568 },
{ type: 0, pts: 7193111796, ccData: 32896 },
{ type: 1, pts: 7193114766, ccData: 58656 },
{ type: 0, pts: 7193114766, ccData: 32896 },
{ type: 0, pts: 7193117736, ccData: 32896 },
{ type: 1, pts: 7193117736, ccData: 51317 },
{ type: 0, pts: 7193120796, ccData: 32896 },
{ type: 1, pts: 7193120796, ccData: 28404 },
{ type: 1, pts: 7193123766, ccData: 8360 },
{ type: 0, pts: 7193123766, ccData: 32896 },
{ type: 1, pts: 7193126826, ccData: 54245 },
{ type: 0, pts: 7193126826, ccData: 32896 },
{ type: 0, pts: 7193129886, ccData: 32896 },
{ type: 1, pts: 7193129886, ccData: 36667 },
{ type: 1, pts: 7193138796, ccData: 16448 },
{ type: 0, pts: 7193138796, ccData: 32896 }
];

315
node_modules/mux.js/test/utils/mp4-helpers.js generated vendored Normal file
View file

@ -0,0 +1,315 @@
/**
* Helper functions for creating test MP4 data.
*/
'use strict';
var box, typeBytes, unityMatrix;
module.exports = {};
// ----------------------
// Box Generation Helpers
// ----------------------
module.exports.typeBytes = typeBytes = function(type) {
return [
type.charCodeAt(0),
type.charCodeAt(1),
type.charCodeAt(2),
type.charCodeAt(3)
];
};
module.exports.box = box = function(type) {
var
array = Array.prototype.slice.call(arguments, 1),
result = [],
size,
i;
// "unwrap" any arrays that were passed as arguments
// e.g. box('etc', 1, [2, 3], 4) -> box('etc', 1, 2, 3, 4)
for (i = 0; i < array.length; i++) {
if (array[i] instanceof Array) {
array.splice.apply(array, [i, 1].concat(array[i]));
}
}
size = 8 + array.length;
result[0] = (size & 0xFF000000) >> 24;
result[1] = (size & 0x00FF0000) >> 16;
result[2] = (size & 0x0000FF00) >> 8;
result[3] = size & 0xFF;
result = result.concat(typeBytes(type));
result = result.concat(array);
return result;
};
module.exports.unityMatrix = unityMatrix = [
0, 0, 0x10, 0,
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0x10, 0,
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
0x40, 0, 0, 0
];
// ------------
// Example Data
// ------------
module.exports.sampleMoov =
box('moov',
box('mvhd',
0x01, // version 1
0x00, 0x00, 0x00, // flags
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, // creation_time
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x02, // modification_time
0x00, 0x00, 0x03, 0xe8, // timescale = 1000
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x02, 0x58, // 600 = 0x258 duration
0x00, 0x01, 0x00, 0x00, // 1.0 rate
0x01, 0x00, // 1.0 volume
0x00, 0x00, // reserved
0x00, 0x00, 0x00, 0x00, // reserved
0x00, 0x00, 0x00, 0x00, // reserved
unityMatrix,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, // pre_defined
0x00, 0x00, 0x00, 0x02), // next_track_ID
box('trak',
box('tkhd',
0x01, // version 1
0x00, 0x00, 0x00, // flags
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x02, // creation_time
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x03, // modification_time
0x00, 0x00, 0x00, 0x01, // track_ID
0x00, 0x00, 0x00, 0x00, // reserved
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x02, 0x58, // 600 = 0x258 duration
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, // reserved
0x00, 0x00, // layer
0x00, 0x00, // alternate_group
0x00, 0x00, // non-audio track volume
0x00, 0x00, // reserved
unityMatrix,
0x01, 0x2c, 0x00, 0x00, // 300 in 16.16 fixed-point
0x00, 0x96, 0x00, 0x00), // 150 in 16.16 fixed-point
box('edts',
box('elst',
0x00, // version
0x00, 0x00, 0x00, // flags
0x00, 0x00, 0x00, 0x01, // entry_count
0x00, 0x00, 0x00, 0x00, // segment_duration
0x00, 0x00, 0x04, 0x00, // media_time
0x00, 0x01, 0x80, 0x00)), // media_rate
box('mdia',
box('mdhd',
0x01, // version 1
0x00, 0x00, 0x00, // flags
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x02, // creation_time
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x03, // modification_time
0x00, 0x01, 0x5f, 0x90, // timescale = 90000
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x02, 0x58, // 600 = 0x258 duration
0x15, 0xc7, // 'eng' language
0x00, 0x00),
box('hdlr',
0x01, // version 1
0x00, 0x00, 0x00, // flags
0x00, 0x00, 0x00, 0x00, // pre_defined
typeBytes('vide'), // handler_type
0x00, 0x00, 0x00, 0x00, // reserved
0x00, 0x00, 0x00, 0x00, // reserved
0x00, 0x00, 0x00, 0x00, // reserved
typeBytes('one'), 0x00), // name
box('minf',
box('dinf',
box('dref',
0x01, // version 1
0x00, 0x00, 0x00, // flags
0x00, 0x00, 0x00, 0x01, // entry_count
box('url ',
0x00, // version
0x00, 0x00, 0x01))), // flags
box('stbl',
box('stsd',
0x01, // version 1
0x00, 0x00, 0x00, // flags
0x00, 0x00, 0x00, 0x00, // entry_count
box('avc1',
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, // box content
typeBytes('avcC'), // codec profile type
0x00, 0x4d, 0x40, 0x0d)), // codec parameters
box('stts',
0x01, // version 1
0x00, 0x00, 0x00, // flags
0x00, 0x00, 0x00, 0x01, // entry_count
0x00, 0x00, 0x00, 0x01, // sample_count
0x00, 0x00, 0x00, 0x01), // sample_delta
box('stsc',
0x01, // version 1
0x00, 0x00, 0x00, // flags
0x00, 0x00, 0x00, 0x01, // entry_count
0x00, 0x00, 0x00, 0x02, // first_chunk
0x00, 0x00, 0x00, 0x03, // samples_per_chunk
0x00, 0x00, 0x00, 0x01), // sample_description_index
box('stco',
0x01, // version 1
0x00, 0x00, 0x00, // flags
0x00, 0x00, 0x00, 0x01, // entry_count
0x00, 0x00, 0x00, 0x01), // chunk_offset
box('stss',
0x00, // version 0
0x00, 0x00, 0x00, // flags
0x00, 0x00, 0x00, 0x01, // entry_count
0x00, 0x00, 0x00, 0x01), // sync_sample
box('ctts',
0x00, // version 0
0x00, 0x00, 0x00, // flags
0x00, 0x00, 0x00, 0x01, // entry_count
0x00, 0x00, 0x00, 0x01, // sample_count
0x00, 0x00, 0x00, 0x01))))), // sample_offset
box('trak',
box('tkhd',
0x01, // version 1
0x00, 0x00, 0x00, // flags
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x02, // creation_time
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x03, // modification_time
0x00, 0x00, 0x00, 0x02, // track_ID
0x00, 0x00, 0x00, 0x00, // reserved
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x02, 0x58, // 600 = 0x258 duration
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, // reserved
0x00, 0x00, // layer
0x00, 0x00, // alternate_group
0x00, 0x00, // non-audio track volume
0x00, 0x00, // reserved
unityMatrix,
0x01, 0x2c, 0x00, 0x00, // 300 in 16.16 fixed-point
0x00, 0x96, 0x00, 0x00), // 150 in 16.16 fixed-point
box('edts',
box('elst',
0x01, // version
0x00, 0x00, 0x00, // flags
0x00, 0x00, 0x00, 0x01, // entry_count
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // segment_duration
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // media_time
0x00, 0x01, 0x80, 0x00)), // media_rate
box('mdia',
box('mdhd',
0x01, // version 1
0x00, 0x00, 0x00, // flags
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x02, // creation_time
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x03, // modification_time
0x00, 0x01, 0x5f, 0x90, // timescale = 90000
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x02, 0x58, // 600 = 0x258 duration
0x15, 0xc7, // 'eng' language
0x00, 0x00),
box('hdlr',
0x01, // version 1
0x00, 0x00, 0x00, // flags
0x00, 0x00, 0x00, 0x00, // pre_defined
typeBytes('soun'), // handler_type
0x00, 0x00, 0x00, 0x00, // reserved
0x00, 0x00, 0x00, 0x00, // reserved
0x00, 0x00, 0x00, 0x00, // reserved
typeBytes('one'), 0x00), // name
box('minf',
box('dinf',
box('dref',
0x01, // version 1
0x00, 0x00, 0x00, // flags
0x00, 0x00, 0x00, 0x01, // entry_count
box('url ',
0x00, // version
0x00, 0x00, 0x01))), // flags
box('stbl',
box('stsd',
0x01, // version 1
0x00, 0x00, 0x00, // flags
0x00, 0x00, 0x00, 0x00, // entry_count
box('mp4a',
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, 0x00, 0x00, // box content
typeBytes('esds'), // codec profile type
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, 0x00, 0x00, // box content
0x00, 0x00, 0x00, // box content
0x40, 0x0a, // codec params
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00)), // codec params
box('stts',
0x01, // version 1
0x00, 0x00, 0x00, // flags
0x00, 0x00, 0x00, 0x01, // entry_count
0x00, 0x00, 0x00, 0x01, // sample_count
0x00, 0x00, 0x00, 0x01), // sample_delta
box('stsc',
0x01, // version 1
0x00, 0x00, 0x00, // flags
0x00, 0x00, 0x00, 0x01, // entry_count
0x00, 0x00, 0x00, 0x02, // first_chunk
0x00, 0x00, 0x00, 0x03, // samples_per_chunk
0x00, 0x00, 0x00, 0x01), // sample_description_index
box('ctts',
0x01, // version 1
0x00, 0x00, 0x00, // flags
0x00, 0x00, 0x00, 0x01, // entry_count
0x00, 0x00, 0x00, 0x01, // sample_count
0xff, 0xff, 0xff, 0xff), // sample_offset
box('stco',
0x01, // version 1
0x00, 0x00, 0x00, // flags
0x00, 0x00, 0x00, 0x01, // entry_count
0x00, 0x00, 0x00, 0x01)))))); // chunk_offset

View file

@ -0,0 +1,137 @@
/**
* Helper functions for creating 608/708 SEI NAL units
*/
'use strict';
var box = require('./mp4-helpers').box;
// Create SEI nal-units from Caption packets
var makeSeiFromCaptionPacket = function(caption) {
return {
pts: caption.pts,
dts: caption.dts,
nalUnitType: 'sei_rbsp',
escapedRBSP: new Uint8Array([
0x04, // payload_type === user_data_registered_itu_t_t35
0x0e, // payload_size
181, // itu_t_t35_country_code
0x00, 0x31, // itu_t_t35_provider_code
0x47, 0x41, 0x39, 0x34, // user_identifier, "GA94"
0x03, // user_data_type_code, 0x03 is cc_data
// 110 00001
0xc1, // process_cc_data, cc_count
0xff, // reserved
// 1111 1100
(0xfc | caption.type), // cc_valid, cc_type (608, field 1)
(caption.ccData & 0xff00) >> 8, // cc_data_1
caption.ccData & 0xff, // cc_data_2 without parity bit set
0xff // marker_bits
])
};
};
// Create SEI nal-units from Caption packets
var makeSeiFromMultipleCaptionPackets = function(captionHash) {
var pts = captionHash.pts,
dts = captionHash.dts,
captions = captionHash.captions;
var data = [];
captions.forEach(function(caption) {
data.push(0xfc | caption.type);
data.push((caption.ccData & 0xff00) >> 8);
data.push(caption.ccData & 0xff);
});
return {
pts: pts,
dts: dts,
nalUnitType: 'sei_rbsp',
escapedRBSP: new Uint8Array([
0x04, // payload_type === user_data_registered_itu_t_t35
(0x0b + (captions.length * 3)), // payload_size
181, // itu_t_t35_country_code
0x00, 0x31, // itu_t_t35_provider_code
0x47, 0x41, 0x39, 0x34, // user_identifier, "GA94"
0x03, // user_data_type_code, 0x03 is cc_data
// 110 00001
(0x6 << 5) | captions.length, // process_cc_data, cc_count
0xff // reserved
].concat(data).concat([0xff /* marker bits */])
)
};
};
var makeMdatFromCaptionPackets = function(packets) {
var mdat = ['mdat'];
var seis = packets.map(makeSeiFromCaptionPacket);
seis.forEach(function(sei) {
mdat.push(0x00);
mdat.push(0x00);
mdat.push(0x00);
mdat.push(sei.escapedRBSP.length + 1); // nal length
mdat.push(0x06); // declare nal type as SEI
// SEI message
for (var i = 0; i < sei.escapedRBSP.length; i++) {
var byte = sei.escapedRBSP[i];
mdat.push(byte);
}
});
return box.apply(null, mdat);
};
// Returns a ccData byte-pair for a two character string. That is,
// it converts a string like 'hi' into the two-byte number that
// would be parsed back as 'hi' when provided as ccData.
var characters = function(text) {
if (text.length !== 2) {
throw new Error('ccdata must be specified two characters at a time');
}
return (text.charCodeAt(0) << 8) | text.charCodeAt(1);
};
// Returns a ccData byte-pair including
// Header for 708 packet
// Header for the first service block
// seq should increment by 1 for each byte pair mod 3 (0,1,2,0,1,2,...)
// sizeCode is the number of byte pairs in the packet (including header)
// serviceNum is the service number of the first service block
// blockSize is the size of the first service block in bytes (no header)
// If there's only one service block, the blockSize should be (sizeCode-1)*2
var packetHeader708 = function(seq, sizeCode, serviceNum, blockSize) {
var b1 = (seq << 6) | sizeCode;
var b2 = (serviceNum << 5) | blockSize;
return (b1 << 8) | b2;
};
// Returns a ccData byte-pair to execute a 708 DSW command
// Takes an array of window indicies to display
var displayWindows708 = function(windows) {
var cmd = 0x8900;
windows.forEach(function(winIdx) {
cmd |= (0x01 << winIdx);
});
return cmd;
};
module.exports = {
makeSeiFromCaptionPacket: makeSeiFromCaptionPacket,
makeSeiFromMultipleCaptionPackets: makeSeiFromMultipleCaptionPackets,
makeMdatFromCaptionPackets: makeMdatFromCaptionPackets,
characters: characters,
packetHeader708: packetHeader708,
displayWindows708: displayWindows708
};