}
const muxingSession = this.muxingSessions.get(sessionId)
- if (muxingSession) muxingSession.abort()
+ if (muxingSession) {
+ muxingSession.abort()
+ muxingSession.destroy()
+
+ this.muxingSessions.delete(sessionId)
+ }
}
private async handleSession (sessionId: string, streamPath: string, streamKey: string) {
muxingSession.on('after-cleanup', ({ videoId }) => {
this.muxingSessions.delete(sessionId)
+ muxingSession.destroy()
+
return this.onAfterMuxingCleanup(videoId)
.catch(err => logger.error('Error in end transmuxing.', { err, ...localLTags }))
})
private readonly videoUUID: string
private readonly saveReplay: boolean
+ private toto: Buffer
+
private readonly lTags: LoggerTagsFn
private segmentsToProcessPerPlaylist: { [playlistId: string]: string[] } = {}
this.saveReplay = this.videoLive.saveReplay
this.lTags = loggerTagsFactory('live', this.sessionId, this.videoUUID)
+
+ this.toto = Buffer.alloc(1_000_000_000)
}
async runMuxing () {
}
abort () {
- if (!this.ffmpegCommand) return false
+ if (!this.ffmpegCommand) return
this.ffmpegCommand.kill('SIGINT')
- return true
+ }
+
+ destroy () {
+ this.removeAllListeners()
+ this.isAbleToUploadVideoWithCache.clear()
+ this.hasClientSocketInBadHealthWithCache.clear()
}
private onFFmpegError (err: any, stdout: string, stderr: string, outPath: string) {