DlnaMaps.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #pragma warning disable CS1591
  2. using System.Globalization;
  3. namespace MediaBrowser.Model.Dlna
  4. {
  5. public static class DlnaMaps
  6. {
  7. private static readonly string DefaultStreaming =
  8. FlagsToString(DlnaFlags.StreamingTransferMode |
  9. DlnaFlags.BackgroundTransferMode |
  10. DlnaFlags.ConnectionStall |
  11. DlnaFlags.ByteBasedSeek |
  12. DlnaFlags.DlnaV15);
  13. private static readonly string DefaultInteractive =
  14. FlagsToString(DlnaFlags.InteractiveTransferMode |
  15. DlnaFlags.BackgroundTransferMode |
  16. DlnaFlags.ConnectionStall |
  17. DlnaFlags.ByteBasedSeek |
  18. DlnaFlags.DlnaV15);
  19. public static string FlagsToString(DlnaFlags flags)
  20. {
  21. return string.Format(CultureInfo.InvariantCulture, "{0:X8}{1:D24}", (ulong)flags, 0);
  22. }
  23. public static string GetOrgOpValue(bool hasKnownRuntime, bool isDirectStream, TranscodeSeekInfo profileTranscodeSeekInfo)
  24. {
  25. if (hasKnownRuntime)
  26. {
  27. string orgOp = string.Empty;
  28. // Time-based seeking currently only possible when transcoding
  29. orgOp += isDirectStream ? "0" : "1";
  30. // Byte-based seeking only possible when not transcoding
  31. orgOp += isDirectStream || profileTranscodeSeekInfo == TranscodeSeekInfo.Bytes ? "1" : "0";
  32. return orgOp;
  33. }
  34. // No seeking is available if we don't know the content runtime
  35. return "00";
  36. }
  37. public static string GetImageOrgOpValue()
  38. {
  39. string orgOp = string.Empty;
  40. // Time-based seeking currently only possible when transcoding
  41. orgOp += "0";
  42. // Byte-based seeking only possible when not transcoding
  43. orgOp += "0";
  44. return orgOp;
  45. }
  46. }
  47. }