DlnaMaps.cs 1.9 KB

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