[FFmpeg-cvslog] avcodec/hevcdec: decode at most one slice reporting being the first in the picture
James Almer
git at videolan.org
Thu Mar 21 03:46:52 EET 2019
ffmpeg | branch: release/3.4 | James Almer <jamrial at gmail.com> | Mon Mar 18 17:25:58 2019 -0300| [da6a61606a1936a6ccceb6a4868247a19309c140] | committer: James Almer
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 at gmail.com>
Signed-off-by: James Almer <jamrial at gmail.com>
(cherry picked from commit 70c8c8a818f39bc262565ec29fae2baffb3e1660)
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=da6a61606a1936a6ccceb6a4868247a19309c140
---
libavcodec/hevcdec.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c
index 89b121d2f0..734c42037a 100644
--- a/libavcodec/hevcdec.c
+++ b/libavcodec/hevcdec.c
@@ -2864,6 +2864,10 @@ static int decode_nal_unit(HEVCContext *s, const H2645NAL *nal)
return ret;
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;
+ }
if (s->max_ra == INT_MAX) {
if (s->nal_unit_type == HEVC_NAL_CRA_NUT || IS_BLA(s)) {
s->max_ra = s->poc;
More information about the ffmpeg-cvslog
mailing list