From ae695cd67e7cd67df03ccf9afd0c014e73024fe6 Mon Sep 17 00:00:00 2001 From: Harish Mahendrakar Date: Wed, 2 Oct 2019 11:12:13 -0700 Subject: [PATCH] decoder: Return error if first slice decoded in a frame is dependent slice Dependent slice copies slice header from a previously decoded slice. In case of errors, when the first slice is missing and subsequent slice to be decoded is a dependent slice, it has no valid slice header to copy from. Ignore such slices. Bug: 141688974 Test: poc in bug Change-Id: Idc1bed45ab37aeee4d373deb00e1b465ca84cfeb (cherry picked from commit 40dbcab01b9a057c7511781f9b9f5031263bf34d) --- decoder/ihevcd_parse_slice_header.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/decoder/ihevcd_parse_slice_header.c b/decoder/ihevcd_parse_slice_header.c index c161fc4..13372c3 100644 --- a/decoder/ihevcd_parse_slice_header.c +++ b/decoder/ihevcd_parse_slice_header.c @@ -325,6 +325,12 @@ IHEVCD_ERROR_T ihevcd_parse_slice_header(codec_t *ps_codec, { BITS_PARSE("dependent_slice_flag", value, ps_bitstrm, 1); + /* First slice to be decoded in the current picture can't be dependent slice */ + if (value && 0 == ps_codec->i4_pic_present) + { + return IHEVCD_IGNORE_SLICE; + } + /* If dependendent slice, copy slice header from previous slice */ if(value && (ps_codec->s_parse.i4_cur_slice_idx > 0)) {