summaryrefslogtreecommitdiff
path: root/libavcodec/qsvdec.h
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/qsvdec.h')
-rw-r--r--libavcodec/qsvdec.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/libavcodec/qsvdec.h b/libavcodec/qsvdec.h
index c30627a4bd..5211fb2ee8 100644
--- a/libavcodec/qsvdec.h
+++ b/libavcodec/qsvdec.h
@@ -51,10 +51,21 @@ typedef struct QSVContext {
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;