From caad46130f27ba67a86f96fd252f5b8d953d817b Mon Sep 17 00:00:00 2001 From: sladro Date: Tue, 6 Jan 2026 15:07:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AEbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/input_rtsp/input_rtsp_node.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/input_rtsp/input_rtsp_node.cpp b/plugins/input_rtsp/input_rtsp_node.cpp index d68df36..455029f 100644 --- a/plugins/input_rtsp/input_rtsp_node.cpp +++ b/plugins/input_rtsp/input_rtsp_node.cpp @@ -597,7 +597,10 @@ private: auto try_group = [&](MppBufferType t) -> bool { return mpp_buffer_group_get(&group, t, MPP_BUFFER_INTERNAL, MODULE_TAG, __FUNCTION__) == MPP_OK; }; - if (!try_group(static_cast(MPP_BUFFER_TYPE_DMA_HEAP | MPP_BUFFER_FLAGS_CACHABLE)) && + // Prefer DMA32 buffers to keep physical addresses <4GB; some RGA drivers can't map >4GB. + if (!try_group(static_cast(MPP_BUFFER_TYPE_DMA_HEAP | MPP_BUFFER_FLAGS_CACHABLE | MPP_BUFFER_FLAGS_DMA32)) && + !try_group(static_cast(MPP_BUFFER_TYPE_DMA_HEAP | MPP_BUFFER_FLAGS_DMA32)) && + !try_group(static_cast(MPP_BUFFER_TYPE_DMA_HEAP | MPP_BUFFER_FLAGS_CACHABLE)) && !try_group(static_cast(MPP_BUFFER_TYPE_DMA_HEAP)) && !try_group(static_cast(MPP_BUFFER_TYPE_DRM | MPP_BUFFER_FLAGS_CACHABLE)) && !try_group(static_cast(MPP_BUFFER_TYPE_DRM)) &&