@ -17,7 +17,24 @@ public class FFmpegSegmenterService(ILogger<FFmpegSegmenterService> logger) : IF
public bool TryAddWorker(string channelNumber, IHlsSessionWorker worker)
{
bool result = _sessionWorkers.TryAdd(channelNumber, worker);
var result = false;
// check for worker
if (TryGetWorker(channelNumber, out IHlsSessionWorker existing))
// if worker is null, pretend we added it
if (existing is null)
result = true;
}
// if worker is not null, we cannot add one (so result should stay false)
else
// worker does not exist, so try adding a null one
result = _sessionWorkers.TryAdd(channelNumber, worker);
if (result)
@ -142,7 +142,7 @@ public class IptvController : ControllerBase
// _logger.LogDebug("Checking for session worker for channel {Channel}", channelNumber);
if (_ffmpegSegmenterService.TryGetWorker(channelNumber, out IHlsSessionWorker worker))
if (_ffmpegSegmenterService.TryGetWorker(channelNumber, out IHlsSessionWorker worker) && worker is not null)
// _logger.LogDebug("Trimming playlist for channel {Channel}", channelNumber);