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; } }
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)); } }
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); }
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); } }
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); }