ExclusiveLiveStream.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #nullable disable
  2. #pragma warning disable CS1591
  3. using System;
  4. using System.Globalization;
  5. using System.Threading;
  6. using System.Threading.Tasks;
  7. using MediaBrowser.Controller.Library;
  8. using MediaBrowser.Model.Dto;
  9. namespace Emby.Server.Implementations.Library
  10. {
  11. public class ExclusiveLiveStream : ILiveStream
  12. {
  13. private readonly Func<Task> _closeFn;
  14. public ExclusiveLiveStream(MediaSourceInfo mediaSource, Func<Task> closeFn)
  15. {
  16. MediaSource = mediaSource;
  17. EnableStreamSharing = false;
  18. _closeFn = closeFn;
  19. ConsumerCount = 1;
  20. UniqueId = Guid.NewGuid().ToString("N", CultureInfo.InvariantCulture);
  21. }
  22. public int ConsumerCount { get; set; }
  23. public string OriginalStreamId { get; set; }
  24. public string TunerHostId => null;
  25. public bool EnableStreamSharing { get; set; }
  26. public MediaSourceInfo MediaSource { get; set; }
  27. public string UniqueId { get; }
  28. public Task Close()
  29. {
  30. return _closeFn();
  31. }
  32. public Task Open(CancellationToken openCancellationToken)
  33. {
  34. return Task.CompletedTask;
  35. }
  36. }
  37. }