diff options
author | James Almer <jamrial@gmail.com> | 2019-03-18 17:25:58 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2019-03-20 22:23:12 -0300 |
commit | b307cbe276131463b3595dcf3abbe244c0bc7389 (patch) | |
tree | 9c6281da0138eebc50ad14e9d1f7f18b1a7ef978 | |
parent | bdcbe9296a43580fb27f8a3eda65d9110a85edcf (diff) | |
download | ffmpeg-b307cbe276131463b3595dcf3abbe244c0bc7389.tar.gz |
avcodec/hevcdec: decode at most one slice reporting being the first in the picture
Fixes deadlocks when decoding packets containing more than one of the aforementioned
slices when using frame threads.
Tested-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
(cherry picked from commit 70c8c8a818f39bc262565ec29fae2baffb3e1660)
-rw-r--r-- | libavcodec/hevc.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c index 2046267336..7ece31f8aa 100644 --- a/libavcodec/hevc.c +++ b/libavcodec/hevc.c @@ -2781,6 +2781,10 @@ static int decode_nal_unit(HEVCContext *s, const HEVCNAL *nal) } if (s->sh.first_slice_in_pic_flag) { + if (s->ref) { + av_log(s->avctx, AV_LOG_ERROR, "Two slices reporting being the first in the same frame.\n"); + goto fail; + } ret = hevc_frame_start(s); if (ret < 0) return ret; |