Commit f0adb99d authored by Yuli Khodorkovskiy's avatar Yuli Khodorkovskiy Committed by Michael Niedermayer

avcodec/qsvdec: Fix null dereferences in the qsv decoder

This patch fixes the h264_qsv decoder issues mentioned
in https://ffmpeg.zeranoe.com/forum/viewtopic.php?t=2962.

The patch may be tested by specifying h264_qsv as the decoder to ffplay
for an h264 encoded file.

	ffplay -vcodec h264_qsv foo.mts
Signed-off-by: 's avatarYuli Khodorkovskiy <ykhodo@gmail.com>
Push requested-by: Ivan Uskov
Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
parent bbec14de
...@@ -555,16 +555,18 @@ void ff_qsv_decode_reset(AVCodecContext *avctx, QSVContext *q) ...@@ -555,16 +555,18 @@ void ff_qsv_decode_reset(AVCodecContext *avctx, QSVContext *q)
} }
/* Reset output surfaces */ /* Reset output surfaces */
av_fifo_reset(q->async_fifo); if (q->async_fifo)
av_fifo_reset(q->async_fifo);
/* Reset input packets fifo */ /* Reset input packets fifo */
while (av_fifo_size(q->pkt_fifo)) { while (q->pkt_fifo && av_fifo_size(q->pkt_fifo)) {
av_fifo_generic_read(q->pkt_fifo, &pkt, sizeof(pkt), NULL); av_fifo_generic_read(q->pkt_fifo, &pkt, sizeof(pkt), NULL);
av_packet_unref(&pkt); av_packet_unref(&pkt);
} }
/* Reset input bitstream fifo */ /* Reset input bitstream fifo */
av_fifo_reset(q->input_fifo); if (q->input_fifo)
av_fifo_reset(q->input_fifo);
} }
int ff_qsv_decode_close(QSVContext *q) int ff_qsv_decode_close(QSVContext *q)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment