场景:通过receiver监听摄像头surfaceID得到帧图OH\_ImageNative,然后需要OH\_ImageNative→OH\_NativeBuffer→OH\_NativeBuffer\_Map(nativeBuffer, &virAddr)。得到virAddr来进行视觉处理。
问题:执行OH\_NativeBuffer\_Map后,再执行OH\_NativeBuffer\_Unmap会导致receiver接受3帧后,不再接收帧图。
而去掉OH\_NativeBuffer\_Unmap后却正常
这是为什么?OH\_NativeBuffer\_Map后不需要释放吗?
OH\_NativeBuffer\_Unmap函数被调用后,可能会导致OH\_NativeBuffer被释放掉,从而导致receiver无法接收到帧图。这种情况下,你需要确保在使用OH\_NativeBuffer之后,不要立即调用OH\_NativeBuffer\_Unmap函数,而是等到receiver接收到帧图后再执行解除映射的操作。