AVFifoBuffer *async_fifo;
AVFifoBuffer *input_fifo;
+ // we should to buffer input packets at some cases
+ // else it is not possible to handle dynamic stream changes correctly
+ // this fifo uses for input packets buffering
+ AVFifoBuffer *pkt_fifo;
+
// this flag indicates that header parsed,
// decoder instance created and ready to general decoding
int engine_ready;
+ // we can not just re-init decoder if different sequence header arrived
+ // we should to deliver all buffered frames but we can not decode new packets
+ // this time. So when reinit_pending is non-zero we flushing decoder and
+ // accumulate new arrived packets into pkt_fifo
+ int reinit_pending;
+
// options set by the caller
int async_depth;
int iopattern;
AVFrame *frame, int *got_frame,
AVPacket *avpkt);
+void ff_qsv_decode_reset(AVCodecContext *avctx, QSVContext *q);
+
int ff_qsv_decode_close(QSVContext *q);
#endif /* AVCODEC_QSVDEC_H */