From a720d9c230e7ee91dcdd71d96a97a2e4010dbc46 Mon Sep 17 00:00:00 2001 From: Ding Wei Date: Thu, 20 Aug 2020 20:18:37 +0800 Subject: [PATCH] [h264d]: fix issue for judge stream whether is avcc Signed-off-by: Ding Wei Change-Id: I294bcc9f267fe5ab52dbce8bf4fbbc966f99b3f8 --- mpp/codec/dec/h264/h264d_api.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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;