aboutsummaryrefslogtreecommitdiff
path: root/decoder
diff options
context:
space:
mode:
authorHarish Mahendrakar <harish.mahendrakar@ittiam.com>2019-10-02 11:12:13 -0700
committerRay Essick <essick@google.com>2019-12-01 13:30:58 -0800
commit40dbcab01b9a057c7511781f9b9f5031263bf34d (patch)
tree0e5c7ccf038faf0e474344c44e87331f4a53c3e2 /decoder
parent75572bd253a14f6014e00421d6eed8f84fabce04 (diff)
downloadlibhevc-40dbcab01b9a057c7511781f9b9f5031263bf34d.tar.gz
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
Diffstat (limited to 'decoder')
-rw-r--r--decoder/ihevcd_parse_slice_header.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/decoder/ihevcd_parse_slice_header.c b/decoder/ihevcd_parse_slice_header.c
index 2d6bf4c..8f8864e 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))
{