【发布时间】:2020-05-20 06:20:37
【问题描述】:
当我使用 WebRTC 的模块桌面捕获来捕获屏幕和鼠标时,我遇到了这个问题。 NSCursor* nscursor = [NSCursor currentSystemCursor]; 我发现这条线会导致内存泄漏。那是一个线程中的循环函数,大概200ms捕获一次。不知道怎么释放内存。
void MouseCursorMonitorMac::CaptureImage(float scale) {
NSCursor* nscursor = [NSCursor currentSystemCursor];
if (nscursor == nil) return;
NSImage* nsimage = [nscursor image];
if (nsimage == nil || !nsimage.isValid) {
return;
}
NSSize nssize = [nsimage size]; // DIP size
// No need to caputre cursor image if it's unchanged since last capture.
if ([[nsimage TIFFRepresentation] isEqual:[last_cursor_ TIFFRepresentation]]) {
return;
}
last_cursor_ = nsimage;
/*
others
/*
}
闲置图片,我只删除所有没有NSCursor* nscursor = [NSCursor currentSystemCursor];
【问题讨论】:
标签: macos memory-leaks webrtc