diff --git a/mpp/codec/dec/h264/h264d_api.c b/mpp/codec/dec/h264/h264d_api.c index 195eff85..35dcc7d1 100644 --- a/mpp/codec/dec/h264/h264d_api.c +++ b/mpp/codec/dec/h264/h264d_api.c @@ -537,7 +537,10 @@ MPP_RET h264d_prepare(void *decoder, MppPacket pkt, HalDecTask *task) //!< avcC stream if (mpp_packet_get_flag(pkt) & MPP_PACKET_FLAG_EXTRA_DATA) { RK_U8 *pdata = p_Inp->in_buf; - p_Inp->is_nalff = (p_Inp->in_length > 3) && (pdata[0] && pdata[1]); + + p_Inp->is_nalff = (p_Inp->in_length > 3) && + (pdata[0] || pdata[1] || (pdata[2] > 1) || (!pdata[2] && pdata[3] > 1)); + mpp_log("is_avcC=%d\n", p_Inp->is_nalff); if (p_Inp->is_nalff) { (ret = parse_prepare_avcC_header(p_Inp, p_Dec->p_Cur)); goto __RETURN;