lavc/qsvdec: flush buffered data before reinit
authorLinjie Fu <linjie.fu@intel.com>
Tue, 16 Oct 2018 01:36:13 +0000 (09:36 +0800)
committerZhong Li <zhong.li@intel.com>
Tue, 6 Nov 2018 09:42:29 +0000 (17:42 +0800)
commit87368884a52b09eef96190ff1654d56591ec7038
tree557e1e78f2e4cc678f18173970d04fc1fd9548f8
parentbeaa350e24167f4ff31275a6114693f5ce7cd409
lavc/qsvdec: flush buffered data before reinit

Flush the buffered data in libmfx before video param reinit
in case the frames drop.

Cache the first frame causing the reinit and decode zero-size
pkt to flush the buffered pkt before reinit. After all the
buffered pkts being flushed, resume to reinit and decode.

Fix the issue in ticket #7399.

[V2]: Move the definition of zero_pkt to where it is exactly
used.

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
Signed-off-by: Zhong Li <zhong.li@intel.com>
libavcodec/qsvdec.c
libavcodec/qsvdec.h
libavcodec/qsvdec_h2645.c
libavcodec/qsvdec_other.c