private void Stop()
 {
     if (_started)
     {
         _started = false;
         lock (_videoObj)
         {
             _video.Stop();
         }
         FfmpegHeader = null;
         HikM4Header  = null;
     }
 }
        private void video_FFMPEGFormatEvent(Constants.AVCodecID codecID, int width, int height)
        {
            _ffmpegCodecId = codecID;
            _ffmpegWidth   = width;
            _ffmpegHeight  = height;
            FfmpegHeader header = new FfmpegHeader()
            {
                CodecID = codecID,
                Width   = width,
                Height  = height
            };

            FfmpegHeader = header;
            onFfmpegHeaderReceived(new FfmpegHeaderEventArgs(header));
        }
Beispiel #3
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;
            }
        }
 public FfmpegHeaderEventArgs(FfmpegHeader header)
 {
     this.Header = header;
 }
Beispiel #5
0
 public void InitHeader(FfmpegHeader header)
 {
     _ffmpegHeaderInit = true;
     _ffmpegDecoder.Init(header.CodecID, header.Width, header.Height);
 }