DlnaMaps.cs 1.9 KB

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