Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
]).then(() => {
if (req.fragmentList === null) {
let movie = VideoLib.MovieParser.parse(req.file);
req.fragmentList = VideoLib.FragmentListBuilder.build(movie, config.fragmentDuration);
}
next();
}).finally(() => {
return Promise.all([req.file, req.index].map((file) => {
static index(name) {
let fileName = path.join(config.mediaPath, name);
let indexName = Indexer.getIndexName(name);
let tmpName = Indexer.getTempName(name);
let file = null;
let index = null;
try {
file = fs.openSync(fileName, 'r');
index = fs.openSync(tmpName, 'w');
let movie = VideoLib.MovieParser.parse(file);
let fragmentList = VideoLib.FragmentListBuilder.build(movie, config.fragmentDuration);
VideoLib.FragmentListIndexer.index(fragmentList, index);
} finally {
if (file !== null) {
fs.closeSync(file);
}
if (index !== null) {
fs.closeSync(index);
}
}
if (fs.existsSync(tmpName)) {
try {
Indexer.makeDirs(path.dirname(indexName));
fs.renameSync(tmpName, indexName);
} catch (ex) {
fs.unlinkSync(tmpName);
static index(name) {
let fileName = path.join(config.mediaPath, name);
let indexName = Indexer.getIndexName(name);
let tmpName = Indexer.getTempName(name);
let file = null;
let index = null;
try {
file = fs.openSync(fileName, 'r');
index = fs.openSync(tmpName, 'w');
let movie = VideoLib.MovieParser.parse(file);
let fragmentList = VideoLib.FragmentListBuilder.build(movie, config.fragmentDuration);
VideoLib.FragmentListIndexer.index(fragmentList, index);
} finally {
if (file !== null) {
fs.closeSync(file);
}
if (index !== null) {
fs.closeSync(index);
}
}
if (fs.existsSync(tmpName)) {
try {
Indexer.makeDirs(path.dirname(indexName));
fs.renameSync(tmpName, indexName);
} catch (ex) {
fs.unlinkSync(tmpName);
throw ex;
fs.openAsync(indexName, 'r').then((fd) => {
req.index = fd;
req.fragmentList = VideoLib.FragmentListIndexer.read(req.index);
}).catch((err) => {
let promise = Promise.resolve();
]).then(() => {
if (req.fragmentList === null) {
let movie = VideoLib.MovieParser.parse(req.file);
req.fragmentList = VideoLib.FragmentListBuilder.build(movie, config.fragmentDuration);
}
next();
}).finally(() => {
return Promise.all([req.file, req.index].map((file) => {
static index(name) {
let fileName = path.join(config.mediaPath, name);
let indexName = Indexer.getIndexName(name);
let tmpName = Indexer.getTempName(name);
let file = null;
let index = null;
try {
file = fs.openSync(fileName, 'r');
index = fs.openSync(tmpName, 'w');
let movie = VideoLib.MovieParser.parse(file);
let fragmentList = VideoLib.FragmentListBuilder.build(movie, config.fragmentDuration);
VideoLib.FragmentListIndexer.index(fragmentList, index);
} finally {
if (file !== null) {
fs.closeSync(file);
}
if (index !== null) {
fs.closeSync(index);
}
}
if (fs.existsSync(tmpName)) {
try {
Indexer.makeDirs(path.dirname(indexName));
fs.renameSync(tmpName, indexName);
} catch (ex) {
router.get(/^(.*)\/(audio|video)\.sidx/, Movie.openMovie, (req, res) => {
let type = req.params[1];
req.logger.info('Type:', type);
let buffer = VideoLib.DASHPacketizer[`${type}Index`](req.fragmentList);
res.send(buffer);
});
router.get(/^(.*)\/media-(\d+)\.ts$/, Movie.openMovie, (req, res) => {
let index = parseInt(req.params[1], 10);
if (req.fragmentList.count() < index) {
throw new errors.NotFoundError('Chunk Not Found');
}
let fragment = req.fragmentList.get(index - 1);
let sampleBuffers = VideoLib.FragmentReader.readSamples(fragment, req.file);
let buffer = VideoLib.HLSPacketizer.packetize(fragment, sampleBuffers);
res.header('Content-Type', 'video/MP2T');
if (config.drmEnabled) {
res.send(Movie.encryptChunk(req.params[0], buffer));
} else {
res.send(buffer);
}
});
router.get(/^(.*)\/media-(\d+)\.ts$/, Movie.openMovie, (req, res) => {
let index = parseInt(req.params[1], 10);
if (req.fragmentList.count() < index) {
throw new errors.NotFoundError('Chunk Not Found');
}
let fragment = req.fragmentList.get(index - 1);
let sampleBuffers = VideoLib.FragmentReader.readSamples(fragment, req.file);
let buffer = VideoLib.HLSPacketizer.packetize(fragment, sampleBuffers);
res.header('Content-Type', 'video/MP2T');
if (config.drmEnabled) {
res.send(Movie.encryptChunk(req.params[0], buffer));
} else {
res.send(buffer);
}
});