summaryrefslogtreecommitdiff
path: root/libavcodec/qsvdec.h
diff options
context:
space:
mode:
authorIvan Uskov <ivan.uskov@nablet.com>2015-08-04 06:40:06 -0400
committerMichael Niedermayer <michael@niedermayer.cc>2015-09-07 22:04:02 +0200
commitcc167f7e55dafdeeca7ac9622331db8d8f6cb463 (patch)
tree415efdf769f298e11791555e67f382205d0b17c2 /libavcodec/qsvdec.h
parentef359e724d990abb3cb6a5199e738232260eee1b (diff)
libavcodec/qsvdec.c: correct handling of dynamic frame size changing has been implemented
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
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;