Example #1
0
        private int ReadPacketFromSource()
        {
            /*
             *作者:Jack
             * 时间:2018-06-08
             * 描述:增加读取frame回调函数
             */
            DateTime startDT = DateTime.Now;
            AVIOInterruptCB_callback readFrameCallback = (p0) =>
            {
                //   var p = (AVFormatContext*)p0;
                var endDT   = DateTime.Now;
                int seconds = (endDT - startDT).Seconds;
                if (seconds >= 3)
                {
                    return(1);
                }
                return(0);
            };

            _inputContext->interrupt_callback.callback = readFrameCallback;
            _inputContext->interrupt_callback.opaque   = _inputContext;

            var ret = av_read_frame(_inputContext, _pPacket);

            return(ret);
        }
 public VideoStreamDecoder()
 {
     _interruptCallbackDelegate = new AVIOInterruptCB_callback(InterruptCallback);
 }