diff --git a/plugins/input_rtsp/input_rtsp_node.cpp b/plugins/input_rtsp/input_rtsp_node.cpp index 1c69988..b758e68 100644 --- a/plugins/input_rtsp/input_rtsp_node.cpp +++ b/plugins/input_rtsp/input_rtsp_node.cpp @@ -335,13 +335,11 @@ private: return mpp_buffer_group_get(&pkt_group, t, MPP_BUFFER_INTERNAL, MODULE_TAG, __FUNCTION__) == MPP_OK; }; - // Prefer dma_heap when available (newer kernels), then ion/drm as fallback. - if (!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_ION | MPP_BUFFER_FLAGS_CACHABLE)) && - !try_group(static_cast(MPP_BUFFER_TYPE_ION)) && - !try_group(static_cast(MPP_BUFFER_TYPE_DRM | MPP_BUFFER_FLAGS_CACHABLE)) && - !try_group(static_cast(MPP_BUFFER_TYPE_DRM))) { + // NOTE: Packet(bitstream) buffer should be CPU-accessible; use NORMAL first to avoid mmap/ptr issues. + if (!try_group(MPP_BUFFER_TYPE_NORMAL) && + !try_group(MPP_BUFFER_TYPE_ION) && + !try_group(MPP_BUFFER_TYPE_DRM) && + !try_group(MPP_BUFFER_TYPE_DMA_HEAP)) { pkt_group = nullptr; return false; }