public static LocalDownloadInfoPacket Decode(Stream ms) { VideoInfo vi = VideoInfo.Decode(ms); string path = PacketBase.ReadString(ms); return(new LocalDownloadInfoPacket(vi, path)); }
public static VideoInfo Decode(Stream sm) { string videoId = PacketBase.ReadString(sm); int streamId = PacketBase.ReadInt(sm); string videoName = PacketBase.ReadString(sm); return(new VideoInfo(videoId, streamId, videoName)); }
public static MessagePacket Decode(Stream ms) { MessageType type = (MessageType)PacketBase.ReadInt(ms); string message = PacketBase.ReadString(ms); string operate = PacketBase.ReadString(ms); return(new MessagePacket(type, message, operate)); }
public static new DownloadInfoParam Decode(Stream stream) { string sourceIp = PacketBase.ReadString(stream); int sourcePort = PacketBase.ReadInt(stream); string downloadPath = PacketBase.ReadString(stream); var param = VideoBaseInfomParam.Decode(stream); return(new DownloadInfoParam(sourceIp, sourcePort, param, downloadPath)); }
public static DownloadExpandPart Decode(MemoryStream ms) { Guid guid = PacketBase.ReadGuid(ms); DownloadCode code = (DownloadCode)PacketBase.ReadInt(ms); Object obj = null; switch (code) { case DownloadCode.DownloadInfo: obj = DownloadInfoParam.Decode(ms); break; case DownloadCode.Name: case DownloadCode.Quality: case DownloadCode.ErrorInfo: obj = PacketBase.ReadString(ms); break; case DownloadCode.Size: case DownloadCode.Speed: obj = PacketBase.ReadLong(ms); break; case DownloadCode.IsLocalDownload: obj = PacketBase.ReadBool(ms); break; case DownloadCode.TimePeriodsAll: case DownloadCode.TimePeriodsCompleted: obj = TimePeriodPacket.DecodeArray(ms); break; case DownloadCode.Status: obj = (DownloadStatus)PacketBase.ReadInt(ms); break; case DownloadCode.UpdatedLastestTime: obj = PacketBase.ReadTime(ms); break; case DownloadCode.GoTop: obj = null; break; } return(new DownloadExpandPart(guid, code, obj)); }
public static HikHeaderPacket Decode(MemoryStream ms) { int videoType = PacketBase.ReadInt(ms); if (videoType != (int)VideoType.Hik) { return(null); } int streamId = PacketBase.ReadInt(ms); string streamName = PacketBase.ReadString(ms); string streamUrl = PacketBase.ReadString(ms); int type = PacketBase.ReadInt(ms); int length = PacketBase.ReadInt(ms); byte[] buffer = PacketBase.ReadByteArray(ms, length); return(new HikHeaderPacket(streamId, streamName, streamUrl, type, buffer)); }
public static FfmpegHeaderPacket Decode(MemoryStream ms) { int videoType = PacketBase.ReadInt(ms); if (videoType != (int)VideoType.Ffmpeg) { return(null); } int streamId = PacketBase.ReadInt(ms); string streamName = PacketBase.ReadString(ms); string streamUrl = PacketBase.ReadString(ms); int codecId = PacketBase.ReadInt(ms); int width = PacketBase.ReadInt(ms); int height = PacketBase.ReadInt(ms); return(new FfmpegHeaderPacket(streamId, streamName, streamUrl, codecId, width, height)); }
public static DownloadInfoExpandPacket Decode(MemoryStream ms) { Guid guid = PacketBase.ReadGuid(ms); IDownloadInfo di = DownloadInfoParam.Decode(ms); string name = PacketBase.ReadString(ms); string quality = PacketBase.ReadString(ms); long size = PacketBase.ReadLong(ms); bool isLocalDownload = PacketBase.ReadBool(ms); TimePeriodPacket[] tps = TimePeriodPacket.DecodeArray(ms); TimePeriodPacket[] tpsc = TimePeriodPacket.DecodeArray(ms); DownloadStatus status = (DownloadStatus)PacketBase.ReadInt(ms); string errorInfo = PacketBase.ReadString(ms); DateTime time = PacketBase.ReadTime(ms); long speed = PacketBase.ReadLong(ms); return(new DownloadInfoExpandPacket(guid, di, name, quality, size, isLocalDownload, tps, tpsc, status, errorInfo, time, speed)); }
public static VideoDataInfoParam Decode(MemoryStream ms) { string sourceIp = PacketBase.ReadString(ms); int sourcePort = PacketBase.ReadInt(ms); int count = PacketBase.ReadInt(ms); VideoInfo[] vis = new VideoInfo[count]; for (int i = 0; i < count; i++) { string videoId = PacketBase.ReadString(ms); int streamId = PacketBase.ReadInt(ms); vis[i] = new VideoInfo(videoId, streamId); } DateTime beginTime = PacketBase.ReadTime(ms); DateTime endTime = PacketBase.ReadTime(ms); return(new VideoDataInfoParam(sourceIp, sourcePort, vis, beginTime, endTime)); }