Decoder: Initialize slice parameters before concealing error MBs

Also memset ps_dec_op structure to zero.
For error input, this ensures dimensions are initialized to zero

Bug: 28165661
Change-Id: I66eb2ddc5e02e74b7ff04da5f749443920f37141
diff --git a/decoder/ih264d_api.c b/decoder/ih264d_api.c
index b6d4e35..82226f3 100644
--- a/decoder/ih264d_api.c
+++ b/decoder/ih264d_api.c
@@ -1637,6 +1637,14 @@
 
     ps_dec_ip = (ivd_video_decode_ip_t *)pv_api_ip;
     ps_dec_op = (ivd_video_decode_op_t *)pv_api_op;
+
+    {
+        UWORD32 u4_size;
+        u4_size = ps_dec_op->u4_size;
+        memset(ps_dec_op, 0, sizeof(ivd_video_decode_op_t));
+        ps_dec_op->u4_size = u4_size;
+    }
+
     ps_dec->pv_dec_out = ps_dec_op;
     if(ps_dec->init_done != 1)
     {
diff --git a/decoder/ih264d_parse_pslice.c b/decoder/ih264d_parse_pslice.c
index 8694a36..9f56a0e 100644
--- a/decoder/ih264d_parse_pslice.c
+++ b/decoder/ih264d_parse_pslice.c
@@ -1494,6 +1494,12 @@
                    if(ps_dec->ps_pps[i].u1_is_valid == TRUE)
                        j = i;
             {
+                //initialize slice params required by ih264d_start_of_pic to valid values
+                ps_dec->ps_cur_slice->u1_bottom_field_flag = 0;
+                ps_dec->ps_cur_slice->u1_field_pic_flag = 0;
+                ps_dec->ps_cur_slice->u1_slice_type = P_SLICE;
+                ps_dec->ps_cur_slice->u1_nal_ref_idc = 1;
+                ps_dec->ps_cur_slice->u1_nal_unit_type = 1;
                 ret = ih264d_start_of_pic(ps_dec, poc, ps_cur_poc,
                         ps_dec->ps_cur_slice->u2_frame_num,
                         &ps_dec->ps_pps[j]);
@@ -1671,6 +1677,9 @@
     }
 
     ps_dec->ps_cur_slice->u2_first_mb_in_slice = ps_dec->u2_total_mbs_coded << u1_mbaff;
+    ps_dec->ps_cur_slice->i1_slice_alpha_c0_offset = 0;
+    ps_dec->ps_cur_slice->i1_slice_beta_offset = 0;
+
     if(ps_dec->ps_cur_slice->u1_field_pic_flag)
         ps_dec->u2_prv_frame_num = ps_dec->ps_cur_slice->u2_frame_num;
 
diff --git a/decoder/ih264d_parse_slice.c b/decoder/ih264d_parse_slice.c
index fa85aa1..5ff92f8 100644
--- a/decoder/ih264d_parse_slice.c
+++ b/decoder/ih264d_parse_slice.c
@@ -719,7 +719,7 @@
 
     ps_dec->u4_deblk_mb_x = 0;
     ps_dec->u4_deblk_mb_y = 0;
-
+    ps_dec->pu4_wt_ofsts = ps_dec->pu4_wts_ofsts_mat;
 
     H264_MUTEX_UNLOCK(&ps_dec->process_disp_mutex);
     return OK;
@@ -1869,7 +1869,6 @@
         ps_dec->pv_proc_tu_coeff_data = ps_dec->pv_parse_tu_coeff_data;
     }
 
-    ps_dec->pu4_wt_ofsts = ps_dec->pu4_wts_ofsts_mat;
     if(u1_slice_type == I_SLICE)
     {
         ps_dec->ps_cur_pic->u4_pack_slc_typ |= I_SLC_BIT;