public static LocalDownloadInfoPacket Decode(Stream ms)
        {
            VideoInfo vi   = VideoInfo.Decode(ms);
            string    path = PacketBase.ReadString(ms);

            return(new LocalDownloadInfoPacket(vi, path));
        }
예제 #2
0
        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));
        }
예제 #3
0
        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));
        }
예제 #4
0
        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));
        }
예제 #5
0
        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));
        }
예제 #6
0
        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));
        }
예제 #7
0
        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));
        }
예제 #9
0
        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));
        }