Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /usr/local/lib/node_modules/homebridge-camera-ui/services/sessions/ drwxr-xr-x | |
| Viewing file: Select action/file-type: 'use-strict';
const logger = require('../logger/logger.service');
const sessions = {};
class Sessions {
init(cameras) {
logger.debug('Initializing camera sessions', false, '[Sessions]');
for (const camera of cameras) {
sessions[camera.name] = {
activeStreams: 0,
maxStreams: camera.videoConfig.maxStreams || 3,
};
}
}
requestSession(cameraName) {
if (sessions[cameraName].activeStreams < sessions[cameraName].maxStreams) {
logger.debug(`${cameraName} added to active sessions`, false, '[Sessions]');
sessions[cameraName].activeStreams++;
logger.debug(`Currently active streams: ${JSON.stringify(sessions)}`, false, '[Sessions]');
return true;
}
logger.warn(
`Starting a new FFMpeg process not allowed! ${sessions[cameraName].activeStreams} processes currently active!`,
false,
'[Sessions]'
);
logger.warn(
`If you want to spawn more than ${sessions[cameraName].maxStreams} processes at same time, please increase "maxStreams" under videoConfig!`,
false,
'[Sessions]'
);
logger.debug(`Currently active streams: ${JSON.stringify(sessions)}`, false, '[Sessions]');
return false;
}
closeSession(cameraName) {
if (sessions[cameraName] && sessions[cameraName].activeStreams) {
sessions[cameraName].activeStreams--;
logger.debug(`${cameraName} removed from active sessions`, false, '[Sessions]');
logger.debug(`Currently active streams: ${JSON.stringify(sessions)}`, false, '[Sessions]');
}
}
}
module.exports = new Sessions();
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0055 ]-- |