diff options
Diffstat (limited to 'decoder')
-rw-r--r-- | decoder/ih264d_api.c | 1 | ||||
-rw-r--r-- | decoder/mvc/imvcd_nalu_parser.c | 9 |
2 files changed, 7 insertions, 3 deletions
diff --git a/decoder/ih264d_api.c b/decoder/ih264d_api.c index 315f701..16944f4 100644 --- a/decoder/ih264d_api.c +++ b/decoder/ih264d_api.c @@ -3165,6 +3165,7 @@ WORD32 ih264d_set_flush_mode(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op ps_ctl_op->u4_error_code = 0; ps_dec = (dec_struct_t *)(dec_hdl->pv_codec_handle); + ih264d_join_threads(ps_dec); UNUSED(pv_api_ip); /* ! */ /* Signal flush frame control call */ diff --git a/decoder/mvc/imvcd_nalu_parser.c b/decoder/mvc/imvcd_nalu_parser.c index 2699912..db09138 100644 --- a/decoder/mvc/imvcd_nalu_parser.c +++ b/decoder/mvc/imvcd_nalu_parser.c @@ -217,14 +217,17 @@ static WORD32 imvcd_parse_subset_sps(mvc_dec_ctxt_t *ps_mvcd_ctxt, dec_bit_strea if(ps_subset_sps->s_sps_data.u1_pic_order_cnt_type == 0) { - ps_subset_sps->s_sps_data.u1_log2_max_pic_order_cnt_lsb_minus = - 4 + ih264d_uev(pu4_bitstrm_ofst, pu4_bitstrm_buf); + UWORD32 u1_log2_max_pic_order_cnt_lsb_minus4 = + ih264d_uev(pu4_bitstrm_ofst, pu4_bitstrm_buf); - if(ps_subset_sps->s_sps_data.u1_log2_max_pic_order_cnt_lsb_minus > MAX_BITS_IN_POC_LSB) + if(u1_log2_max_pic_order_cnt_lsb_minus4 > (MAX_BITS_IN_POC_LSB - 4)) { return ERROR_INV_SPS_PPS_T; } + ps_subset_sps->s_sps_data.u1_log2_max_pic_order_cnt_lsb_minus = + 4 + u1_log2_max_pic_order_cnt_lsb_minus4; + ps_subset_sps->s_sps_data.i4_max_pic_order_cntLsb = (1 << ps_subset_sps->s_sps_data.u1_log2_max_pic_order_cnt_lsb_minus); } |