Generate thumb on stream start

This commit is contained in:
2023-08-01 11:56:04 +01:00
parent e3931eeb62
commit 82dc5615c2
2 changed files with 14 additions and 6 deletions

View File

@ -13,14 +13,16 @@ public class NostrStreamManager : IStreamManager
private readonly StreamManagerContext _context;
private readonly StreamEventBuilder _eventBuilder;
private readonly IDvrStore _dvrStore;
private readonly ThumbnailService _thumbnailService;
public NostrStreamManager(ILogger<NostrStreamManager> logger, StreamManagerContext context,
StreamEventBuilder eventBuilder, IDvrStore dvrStore)
StreamEventBuilder eventBuilder, IDvrStore dvrStore, ThumbnailService thumbnailService)
{
_logger = logger;
_context = context;
_eventBuilder = eventBuilder;
_dvrStore = dvrStore;
_thumbnailService = thumbnailService;
}
public UserStream GetStream()
@ -51,6 +53,10 @@ public class NostrStreamManager : IStreamManager
}
await UpdateStreamState(UserStreamState.Live);
#pragma warning disable CS4014
Task.Run(async () => await _thumbnailService.GenerateThumb(_context.UserStream));
#pragma warning restore CS4014
}
public async Task StreamStopped()

View File

@ -13,15 +13,17 @@ public class StreamManagerFactory
private readonly StreamEventBuilder _eventBuilder;
private readonly IServiceProvider _serviceProvider;
private readonly IDvrStore _dvrStore;
private readonly ThumbnailService _thumbnailService;
public StreamManagerFactory(StreamerContext db, ILoggerFactory loggerFactory, StreamEventBuilder eventBuilder,
IServiceProvider serviceProvider, IDvrStore dvrStore)
IServiceProvider serviceProvider, IDvrStore dvrStore, ThumbnailService thumbnailService)
{
_db = db;
_loggerFactory = loggerFactory;
_eventBuilder = eventBuilder;
_serviceProvider = serviceProvider;
_dvrStore = dvrStore;
_thumbnailService = thumbnailService;
}
public async Task<IStreamManager> CreateStream(StreamInfo info)
@ -80,7 +82,7 @@ public class StreamManagerFactory
EdgeApi = new SrsApi(_serviceProvider.GetRequiredService<HttpClient>(), new Uri($"http://{stream.EdgeIp}:1985"))
};
return new NostrStreamManager(_loggerFactory.CreateLogger<NostrStreamManager>(), ctx, _eventBuilder, _dvrStore);
return new NostrStreamManager(_loggerFactory.CreateLogger<NostrStreamManager>(), ctx, _eventBuilder, _dvrStore, _thumbnailService);
}
public async Task<IStreamManager> ForStream(Guid id)
@ -100,7 +102,7 @@ public class StreamManagerFactory
EdgeApi = new SrsApi(_serviceProvider.GetRequiredService<HttpClient>(), new Uri($"http://{stream.EdgeIp}:1985"))
};
return new NostrStreamManager(_loggerFactory.CreateLogger<NostrStreamManager>(), ctx, _eventBuilder, _dvrStore);
return new NostrStreamManager(_loggerFactory.CreateLogger<NostrStreamManager>(), ctx, _eventBuilder, _dvrStore, _thumbnailService);
}
public async Task<IStreamManager> ForCurrentStream(string pubkey)
@ -120,7 +122,7 @@ public class StreamManagerFactory
EdgeApi = new SrsApi(_serviceProvider.GetRequiredService<HttpClient>(), new Uri($"http://{stream.EdgeIp}:1985"))
};
return new NostrStreamManager(_loggerFactory.CreateLogger<NostrStreamManager>(), ctx, _eventBuilder, _dvrStore);
return new NostrStreamManager(_loggerFactory.CreateLogger<NostrStreamManager>(), ctx, _eventBuilder, _dvrStore, _thumbnailService);
}
public async Task<IStreamManager> ForStream(StreamInfo info)
@ -148,6 +150,6 @@ public class StreamManagerFactory
EdgeApi = new SrsApi(_serviceProvider.GetRequiredService<HttpClient>(), new Uri($"http://{stream.EdgeIp}:1985"))
};
return new NostrStreamManager(_loggerFactory.CreateLogger<NostrStreamManager>(), ctx, _eventBuilder, _dvrStore);
return new NostrStreamManager(_loggerFactory.CreateLogger<NostrStreamManager>(), ctx, _eventBuilder, _dvrStore, _thumbnailService);
}
}