[h264d]: fix issue for judge stream whether is avcc

Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
Change-Id: I294bcc9f267fe5ab52dbce8bf4fbbc966f99b3f8
This commit is contained in:
Ding Wei
2020-08-20 20:18:37 +08:00
committed by Herman Chen
parent 1edcff8a6b
commit a720d9c230

View File

@@ -537,7 +537,10 @@ MPP_RET h264d_prepare(void *decoder, MppPacket pkt, HalDecTask *task)
//!< avcC stream //!< avcC stream
if (mpp_packet_get_flag(pkt) & MPP_PACKET_FLAG_EXTRA_DATA) { if (mpp_packet_get_flag(pkt) & MPP_PACKET_FLAG_EXTRA_DATA) {
RK_U8 *pdata = p_Inp->in_buf; 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) { if (p_Inp->is_nalff) {
(ret = parse_prepare_avcC_header(p_Inp, p_Dec->p_Cur)); (ret = parse_prepare_avcC_header(p_Inp, p_Dec->p_Cur));
goto __RETURN; goto __RETURN;