From 8beb56a7354da38e0aed2d08a900da0ba133df01 Mon Sep 17 00:00:00 2001 From: Yandong Lin Date: Tue, 26 Aug 2025 15:32:32 +0800 Subject: [PATCH] fix[mpp]: Add null check for sync pkt buffer Change-Id: I5e17ce26ee3af2232d97a414f52820122e2402f9 Signed-off-by: Yandong Lin --- mpp/mpp.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/mpp/mpp.cpp b/mpp/mpp.cpp index 45a2e41a..1c91d349 100644 --- a/mpp/mpp.cpp +++ b/mpp/mpp.cpp @@ -841,9 +841,12 @@ MPP_RET Mpp::get_packet(MppPacket *packet) } else { MppPacketImpl *impl = (MppPacketImpl *)pkt; MppBuffer buf = impl->buffer; - RK_U32 offset = (RK_U32)((char *)impl->pos - (char *)impl->data); - mpp_buffer_sync_ro_partial_begin(buf, offset, impl->length); + if (buf) { + RK_U32 offset = (RK_U32)((char *)impl->pos - (char *)impl->data); + + mpp_buffer_sync_ro_partial_begin(buf, offset, impl->length); + } mpp_dbg_pts("%p output packet pts %lld\n", this, impl->pts); } @@ -922,8 +925,10 @@ MPP_RET Mpp::get_packet_async(MppPacket *packet) *packet = pkt; impl = (MppPacketImpl *)pkt; - offset = (RK_U32)((char *)impl->pos - (char *)impl->data); - mpp_buffer_sync_ro_partial_begin(impl->buffer, offset, impl->length); + if (impl->buffer) { + offset = (RK_U32)((char *)impl->pos - (char *)impl->data); + mpp_buffer_sync_ro_partial_begin(impl->buffer, offset, impl->length); + } } else { mpp_mutex_cond_lock(&mFrmIn->cond_lock); if (mpp_list_size(mFrmIn))