|
|
|
|
namespace MediaBrowser.Model.Dlna
|
|
|
|
|
{
|
|
|
|
|
public class DlnaMaps
|
|
|
|
|
{
|
|
|
|
|
public static readonly string DefaultStreaming =
|
|
|
|
|
FlagsToString(DlnaFlags.StreamingTransferMode |
|
|
|
|
|
DlnaFlags.BackgroundTransferMode |
|
|
|
|
|
DlnaFlags.ConnectionStall |
|
|
|
|
|
DlnaFlags.ByteBasedSeek |
|
|
|
|
|
DlnaFlags.DlnaV15);
|
|
|
|
|
|
|
|
|
|
public static readonly string DefaultInteractive =
|
|
|
|
|
FlagsToString(DlnaFlags.InteractiveTransferMode |
|
|
|
|
|
DlnaFlags.BackgroundTransferMode |
|
|
|
|
|
DlnaFlags.ConnectionStall |
|
|
|
|
|
DlnaFlags.ByteBasedSeek |
|
|
|
|
|
DlnaFlags.DlnaV15);
|
|
|
|
|
|
|
|
|
|
public static string FlagsToString(DlnaFlags flags)
|
|
|
|
|
{
|
|
|
|
|
return string.Format("{0:X8}{1:D24}", (ulong)flags, 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static string GetOrgOpValue(bool hasKnownRuntime, bool isDirectStream, TranscodeSeekInfo profileTranscodeSeekInfo)
|
|
|
|
|
{
|
|
|
|
|
if (hasKnownRuntime)
|
|
|
|
|
{
|
|
|
|
|
string orgOp = string.Empty;
|
|
|
|
|
|
|
|
|
|
// Time-based seeking currently only possible when transcoding
|
|
|
|
|
orgOp += isDirectStream ? "0" : "1";
|
|
|
|
|
|
|
|
|
|
// Byte-based seeking only possible when not transcoding
|
|
|
|
|
orgOp += isDirectStream || profileTranscodeSeekInfo == TranscodeSeekInfo.Bytes ? "1" : "0";
|
|
|
|
|
|
|
|
|
|
return orgOp;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// No seeking is available if we don't know the content runtime
|
|
|
|
|
return "00";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static string GetImageOrgOpValue()
|
|
|
|
|
{
|
|
|
|
|
string orgOp = string.Empty;
|
|
|
|
|
|
|
|
|
|
// Time-based seeking currently only possible when transcoding
|
|
|
|
|
orgOp += "0";
|
|
|
|
|
|
|
|
|
|
// Byte-based seeking only possible when not transcoding
|
|
|
|
|
orgOp += "0";
|
|
|
|
|
|
|
|
|
|
return orgOp;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|