Пример #1
0
        private void Stream_HeaderEvent(IHeaderPacket obj)
        {
            switch (_vType)
            {
            case VideoDeviceType.Hikv:
            {
                HikHeaderPacket hhp = obj as HikHeaderPacket;
                if (hhp != null)
                {
                    CurrentHeader = new HikvStreamHeader(hhp.Buffer);
                    OnStreamHeaderRecieved(CurrentHeader);
                }
            }
            break;

            case VideoDeviceType.Ffmpeg:
            {
                FfmpegHeaderPacket fhp = obj as FfmpegHeaderPacket;
                if (fhp != null)
                {
                    CurrentHeader = new FfmpegStreamHeader(fhp.CodecID, fhp.Buffer);
                    OnStreamHeaderRecieved(CurrentHeader);
                }
            }
            break;

            default:
                break;
            }
        }
Пример #2
0
 private void updateHikHeader(int type, byte[] header)
 {
     if (StreamId != -1)
     {
         if (_hikPacket != null && _hikPacket.Type == type && bytesEquals(_hikPacket.Header, header))
         {
             return;
         }
         //Console.WriteLine("onHikm4HeaderReceived " + _source.VideoId);
         _hikPacket = new HikHeaderPacket(StreamId, StreamName, StreamUrl, type, header);
         fireVideoDisplay(DateTime.Now, DataType.SysHead, HikHeaderPacket.Encode(_hikPacket));
     }
 }
Пример #3
0
        public void TestHikHeaderPacket()
        {
            HikHeaderPacket packet1 = new HikHeaderPacket(1, "test", "streamUrl", 1, new byte[10]);

            byte[] buffer  = HikHeaderPacket.Encode(packet1);
            var    packet2 = HikHeaderPacket.Decode(buffer);

            Assert.IsNull(FfmpegHeaderPacket.Decode(buffer));

            Assert.AreNotSame(packet1, packet2);
            Assert.AreEqual(packet1.Header.Length, packet2.Header.Length);
            Assert.AreEqual(packet1.StreamId, packet2.StreamId);
            Assert.AreEqual(packet1.StreamName, packet2.StreamName);
            Assert.AreEqual(packet1.StreamUrl, packet2.StreamUrl);
            Assert.AreEqual(packet1.Type, packet2.Type);
        }
        public void TestMethod1()
        {
            FfmpegHeaderPacket packet1 = new FfmpegHeaderPacket(1, "streamName", "streamUrl", 80, 1000, 600);

            byte[] buffer = FfmpegHeaderPacket.Encode(packet1);
            Assert.IsNull(HikHeaderPacket.Decode(buffer));
            FfmpegHeaderPacket packet2 = FfmpegHeaderPacket.Decode(buffer);

            Assert.AreNotSame(packet1, packet2);
            Assert.AreEqual(packet1.CodecID, packet2.CodecID);
            Assert.AreEqual(packet1.StreamId, packet2.StreamId);
            Assert.AreEqual(packet1.StreamName, packet2.StreamName);
            Assert.AreEqual(packet1.Width, packet2.Width);
            Assert.AreEqual(packet1.Height, packet2.Height);
            Assert.AreEqual(packet1.StreamUrl, packet2.StreamUrl);
        }
Пример #5
0
        private void onHeader(IHeaderPacket packet)
        {
            HikHeaderPacket header = packet as HikHeaderPacket;

            if (header != null)
            {
                savetoTxt("Header: ");
                savetoTxt(header.Buffer);

                //Console.WriteLine();
                //string rtspstr = $"hik Header {header.Buffer.Length}:";
                //for (int i = 0; i < header.Buffer.Length; i++)
                //    rtspstr += string.Format("{0:X2}, ", header.Buffer[i]);
                //Console.WriteLine(rtspstr);
            }
        }
Пример #6
0
        IStreamDecoder getDecoder(byte[] buffer)
        {
            FfmpegHeaderPacket fhp = FfmpegHeaderPacket.Decode(buffer);

            if (fhp != null)
            {
                Console.WriteLine($"{(Constants.AVCodecID)fhp.CodecID}, {fhp.Width}, {fhp.Height}");
                return(new FfmpegStreamDecoder((Constants.AVCodecID)fhp.CodecID, fhp.Width, fhp.Height));
            }
            HikHeaderPacket hhp = HikHeaderPacket.Decode(buffer);

            if (hhp != null)
            {
                return(new HikStreamDecoder(hhp.Header));
            }
            return(null);
        }