public static LocalVideosInfoPacket Decode(Stream ms) { ITimePeriod tp = TimePeriodPacket.Decode(ms); int length = PacketBase.ReadInt(ms); VideoTimePeriodsPacket[] vis = new VideoTimePeriodsPacket[length]; for (int i = 0; i < length; i++) { vis[i] = VideoTimePeriodsPacket.Decode(ms); } return(new LocalVideosInfoPacket(tp, vis)); }
private void readPacket(Stream ms) { int length = PacketBase.ReadInt(ms); int code = PacketBase.ReadInt(ms); byte[] buffer = PacketBase.ReadByteArray(ms, length - 4); switch ((ParamCode)code) { case ParamCode.VideoBaseInfo: if (buffer.Length > 20 && (VideoBase == null || VideoBase.Length == 0)) { VideoBase = VideoBasePacket.Decode(buffer); } break; case ParamCode.TimePeriods: TimePeriods = VideoTimePeriodsPacket.Decode(buffer); break; case ParamCode.DownloadBase: DownloadInfo = DownloadInfoParam.Decode(buffer); break; } }