From a06cd0283eeadccff7a0e8a9214c01e816cfcad2 Mon Sep 17 00:00:00 2001 From: James Almer Date: Mon, 18 Mar 2019 17:25:58 -0300 Subject: [PATCH] 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 Signed-off-by: James Almer (cherry picked from commit 70c8c8a818f39bc262565ec29fae2baffb3e1660) --- libavcodec/hevc.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c index f8aeb63aa1..eb052b55ea 100644 --- a/libavcodec/hevc.c +++ b/libavcodec/hevc.c @@ -2795,6 +2795,10 @@ static int decode_nal_unit(HEVCContext *s, const H2645NAL *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;