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