private void video_VideoStreamEvent(int frameType, byte[] frameData) { var package = new HikM4Package() { Type = frameType, Data = frameData, }; //_flashback.InputHikM4Package(package); //数据通知 if (_notifyHikm4Data != null) { _notifyHikm4Data(package); } if (frameType == HikM4Decoder.HeaderType) { HikM4Header header = new HikM4Header() { Type = frameType, Data = frameData }; HikM4Header = header; onHikM4HeaderReceived(new HikM4HeaderEventArgs(header)); } else { if (HikM4Header != null) { onHikM4StreamReceived(new HikM4StreamEventArgs(package)); } } }
private void streamPipe_StreamHeaderReceived(object sender, IStreamHeader e) { _headerType = e.DeviceType; switch (e.DeviceType) { case VideoDeviceType.Hikv: { _headerReceived = true; HikM4Header header = new HikM4Header() { Type = HikM4Decoder.HeaderType, Data = (e as HikvStreamHeader).Buffer }; HikM4Header = header; onHikM4HeaderReceived(new HikM4HeaderEventArgs(header)); //初始化包头 if (_decode) { _hikm4Decoder.InputData(header.Type, header.Data); } } break; case VideoDeviceType.Ffmpeg: { _headerReceived = true; FfmpegStreamHeader tH = e as FfmpegStreamHeader; FfmpegHeader header = new FfmpegHeader() { CodecID = (Constants.AVCodecID)tH.CodecID, Width = 0, Height = 0 }; FfmpegHeader = header; onFfmpegHeaderReceived(new FfmpegHeaderEventArgs(header)); //初始化包头 if (_decode) { _ffmpegDecoder.Init(header.CodecID, header.Width, header.Height); } } break; default: break; } }
public HikM4HeaderEventArgs(HikM4Header header) { this.Header = header; }
public void InitHeader(HikM4Header header) { _hikHeaderInit = true; _hikDecoder.InputData(HikM4Decoder.HeaderType, header.Data); }