ExclusiveLiveStream.cs 1.3 KB

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