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));
                }
            }
        }
Exemple #2
0
        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;
            }
        }
Exemple #3
0
 public HikM4HeaderEventArgs(HikM4Header header)
 {
     this.Header = header;
 }
Exemple #4
0
 public void InitHeader(HikM4Header header)
 {
     _hikHeaderInit = true;
     _hikDecoder.InputData(HikM4Decoder.HeaderType, header.Data);
 }