예제 #1
0
 public static byte[] Encode(IVideoBaseInfom param)
 {
     using (MemoryStream ms = new MemoryStream())
     {
         PacketBase.WriteBytes(ms, VideoInfo.Encode(param));
         PacketBase.WriteBytes(ms, TimePeriodPacket.Encode(param));
         return(ms.ToArray());
     }
 }
 public static byte[] Encode(LocalDownloadInfoPacket packet)
 {
     using (MemoryStream ms = new MemoryStream())
     {
         PacketBase.WriteBytes(ms, VideoInfo.Encode(packet.Info));
         PacketBase.WriteBytes(ms, packet.Path);
         return(ms.ToArray());
     }
 }
예제 #3
0
 public static byte[] Encode(VideoDataParam param)
 {
     using (MemoryStream ms = new MemoryStream())
     {
         PacketBase.WriteBytes(ms, VideoInfo.Encode(param as VideoInfo));
         PacketBase.WriteBytes(ms, param.Time.Ticks);
         return(ms.ToArray());
     }
 }
예제 #4
0
 public static byte[] Encode(StorageFlagParam packet)
 {
     using (MemoryStream ms = new MemoryStream())
     {
         PacketBase.WriteBytes(ms, VideoInfo.Encode(packet as IVideoInfo));
         PacketBase.WriteBytes(ms, packet.StorageOn);
         return(ms.ToArray());
     }
 }
 public static byte[] Encode(VideoTimePeriodsPacket packet)
 {
     using (MemoryStream ms = new MemoryStream())
     {
         PacketBase.WriteBytes(ms, VideoInfo.Encode(packet));
         PacketBase.WriteBytes(ms, TimePeriodPacket.EncodeArray(packet.TimePeriods));
         return(ms.ToArray());
     }
 }
예제 #6
0
 public static byte[] Encode(ITimePeriod data)
 {
     using (MemoryStream ms = new MemoryStream())
     {
         PacketBase.WriteBytes(ms, data.BeginTime);
         PacketBase.WriteBytes(ms, data.EndTime);
         return(ms.ToArray());
     }
 }
예제 #7
0
 public static byte[] Encode(IVideoInfo info)
 {
     using (MemoryStream ms = new MemoryStream())
     {
         PacketBase.WriteBytes(ms, info.VideoId);
         PacketBase.WriteBytes(ms, info.StreamId);
         PacketBase.WriteBytes(ms, info.VideoName);
         return(ms.ToArray());
     }
 }
예제 #8
0
 public static byte[] Encode(MessagePacket packet)
 {
     using (MemoryStream ms = new MemoryStream())
     {
         PacketBase.WriteBytes(ms, (int)packet.Type);
         PacketBase.WriteBytes(ms, packet.Message);
         PacketBase.WriteBytes(ms, packet.Operate);
         return(ms.ToArray());
     }
 }
예제 #9
0
 public static byte[] Encode(StreamPacket data)
 {
     using (MemoryStream ms = new MemoryStream())
     {
         PacketBase.WriteBytes(ms, data.Time);
         PacketBase.WriteBytes(ms, (int)data.Type);
         PacketBase.WriteBytes(ms, data.Buffer.Length);
         PacketBase.WriteBytes(ms, data.Buffer);
         return(ms.ToArray());
     }
 }
예제 #10
0
 public static byte[] Encode(VideoBasePacket packet)
 {
     using (MemoryStream ms = new MemoryStream())
     {
         PacketBase.WriteBytes(ms, packet.Time);
         PacketBase.WriteBytes(ms, packet.Header.Length);
         PacketBase.WriteBytes(ms, packet.Header);
         PacketBase.WriteBytes(ms, packet.Length);
         return(ms.ToArray());
     }
 }
예제 #11
0
 public static byte[] Encode(IDownloadInfo param)
 {
     using (MemoryStream ms = new MemoryStream())
     {
         PacketBase.WriteBytes(ms, param.SourceIp);
         PacketBase.WriteBytes(ms, param.SourcePort);
         PacketBase.WriteBytes(ms, param.DownloadPath);
         PacketBase.WriteBytes(ms, VideoBaseInfomParam.Encode(param as IVideoBaseInfom));
         return(ms.ToArray());
     }
 }
 public static byte[] EncodeArray(IDownloadInfoExpand[] packets)
 {
     using (MemoryStream ms = new MemoryStream())
     {
         PacketBase.WriteBytes(ms, packets.Length);
         for (int i = 0; i < packets.Length; i++)
         {
             PacketBase.WriteBytes(ms, DownloadInfoExpandPacket.Encode(packets[i]));
         }
         return(ms.ToArray());
     }
 }
예제 #13
0
 public static byte[] Encode(LocalVideosInfoPacket packet)
 {
     using (MemoryStream ms = new MemoryStream())
     {
         PacketBase.WriteBytes(ms, TimePeriodPacket.Encode(packet.TimePeriod));
         PacketBase.WriteBytes(ms, packet.ValidTimePeriods.Length);
         for (int i = 0; i < packet.ValidTimePeriods.Length; i++)
         {
             PacketBase.WriteBytes(ms, VideoTimePeriodsPacket.Encode(packet.ValidTimePeriods[i]));
         }
         return(ms.ToArray());
     }
 }
예제 #14
0
 public static byte[] EncodeArray(IDownloadInfo[] infos)
 {
     using (MemoryStream ms = new MemoryStream())
     {
         int len = infos != null ? infos.Length : 0;
         PacketBase.WriteBytes(ms, len);
         for (int i = 0; i < len; i++)
         {
             PacketBase.WriteBytes(ms, Encode(infos[i]));
         }
         return(ms.ToArray());
     }
 }
예제 #15
0
 public static byte[] EncodeArray(IVideoInfo[] storageFlags)
 {
     using (MemoryStream ms = new MemoryStream())
     {
         int len = storageFlags != null ? storageFlags.Length : 0;
         PacketBase.WriteBytes(ms, len);
         for (int i = 0; i < len; i++)
         {
             PacketBase.WriteBytes(ms, VideoInfo.Encode(storageFlags[i]));
         }
         return(ms.ToArray());
     }
 }
예제 #16
0
 public static byte[] Encode(HikHeaderPacket packet)
 {
     using (MemoryStream ms = new MemoryStream())
     {
         PacketBase.WriteBytes(ms, (int)VideoType.Hik);
         PacketBase.WriteBytes(ms, packet.StreamId);
         PacketBase.WriteBytes(ms, packet.StreamName);
         PacketBase.WriteBytes(ms, packet.StreamUrl);
         PacketBase.WriteBytes(ms, packet.Type);
         PacketBase.WriteBytes(ms, packet.Header.Length);
         PacketBase.WriteBytes(ms, packet.Header);
         return(ms.ToArray());
     }
 }
예제 #17
0
 public static byte[] Encode(FfmpegHeaderPacket packet)
 {
     using (MemoryStream ms = new MemoryStream())
     {
         PacketBase.WriteBytes(ms, (int)VideoType.Ffmpeg);
         PacketBase.WriteBytes(ms, packet.StreamId);
         PacketBase.WriteBytes(ms, packet.StreamName);
         PacketBase.WriteBytes(ms, packet.StreamUrl);
         PacketBase.WriteBytes(ms, packet.CodecID);
         PacketBase.WriteBytes(ms, packet.Width);
         PacketBase.WriteBytes(ms, packet.Height);
         return(ms.ToArray());
     }
 }
예제 #18
0
 public static byte[] EncodeArray(TimePeriodPacket[] packets)
 {
     if (packets == null)
     {
         packets = new TimePeriodPacket[0];
     }
     using (MemoryStream ms = new MemoryStream())
     {
         PacketBase.WriteBytes(ms, packets.Length);
         for (int i = 0; i < packets.Length; i++)
         {
             PacketBase.WriteBytes(ms, TimePeriodPacket.Encode(packets[i]));
         }
         return(ms.ToArray());
     }
 }
예제 #19
0
        static byte[] getBytes(Guid guid, DownloadCode code, object obj)
        {
            using (MemoryStream ms = new MemoryStream())
            {
                PacketBase.WriteBytes(ms, guid);
                PacketBase.WriteBytes(ms, (int)code);
                switch (code)
                {
                case DownloadCode.DownloadInfo:
                    PacketBase.WriteBytes(ms, DownloadInfoParam.Encode((DownloadInfoParam)obj));
                    break;

                case DownloadCode.Name:
                case DownloadCode.Quality:
                case DownloadCode.ErrorInfo:
                    PacketBase.WriteBytes(ms, (string)obj);
                    break;

                case DownloadCode.Size:
                case DownloadCode.Speed:
                    PacketBase.WriteBytes(ms, (long)obj);
                    break;

                case DownloadCode.IsLocalDownload:
                    PacketBase.WriteBytes(ms, (bool)obj);
                    break;

                case DownloadCode.TimePeriodsAll:
                case DownloadCode.TimePeriodsCompleted:
                    PacketBase.WriteBytes(ms, TimePeriodPacket.EncodeArray((TimePeriodPacket[])obj));
                    break;

                case DownloadCode.Status:
                    PacketBase.WriteBytes(ms, (int)(DownloadStatus)obj);
                    break;

                case DownloadCode.UpdatedLastestTime:
                    PacketBase.WriteBytes(ms, (DateTime)obj);
                    break;

                case DownloadCode.GoTop:
                    break;
                }
                return(ms.ToArray());
            }
        }
예제 #20
0
 public static byte[] Encode(VideoDataInfoParam param)
 {
     using (MemoryStream ms = new MemoryStream())
     {
         PacketBase.WriteBytes(ms, param.SourceIp);
         PacketBase.WriteBytes(ms, param.SourcePort);
         PacketBase.WriteBytes(ms, param.VideoInfos.Length);
         foreach (VideoInfo vi in param.VideoInfos)
         {
             PacketBase.WriteBytes(ms, vi.VideoId);
             PacketBase.WriteBytes(ms, vi.StreamId);
         }
         PacketBase.WriteBytes(ms, param.BeginTime);
         PacketBase.WriteBytes(ms, param.EndTime);
         return(ms.ToArray());
     }
 }
 public static byte[] Encode(IDownloadInfoExpand packet)
 {
     using (MemoryStream ms = new MemoryStream())
     {
         PacketBase.WriteBytes(ms, packet.GuidCode);
         PacketBase.WriteBytes(ms, DownloadInfoParam.Encode(packet.DownloadInfo));
         PacketBase.WriteBytes(ms, packet.Name);
         PacketBase.WriteBytes(ms, packet.Quality);
         PacketBase.WriteBytes(ms, packet.Size);
         PacketBase.WriteBytes(ms, packet.IsLocalDownload);
         PacketBase.WriteBytes(ms, TimePeriodPacket.EncodeArray(packet.TimePeriodsAll));
         PacketBase.WriteBytes(ms, TimePeriodPacket.EncodeArray(packet.TimePeriodsCompleted));
         PacketBase.WriteBytes(ms, (int)packet.DownloadStatus);
         PacketBase.WriteBytes(ms, packet.ErrorInfo);
         PacketBase.WriteBytes(ms, packet.UpdatedLastestTime);
         PacketBase.WriteBytes(ms, packet.Speed);
         return(ms.ToArray());
     }
 }
예제 #22
0
 void write(FileStream fs, ParamCode code, byte[] buffer)
 {
     PacketBase.WriteBytes(fs, buffer.Length + 4);
     PacketBase.WriteBytes(fs, (int)code);
     PacketBase.WriteBytes(fs, buffer);
 }