簡體   English   中英

Mac OS X 10.7中的內存泄漏AVCaptureScreenInput setCropRect:函數

[英]Memory leak in Mac OS X 10.7 AVCaptureScreenInput setCropRect: function

我正在為Lion開發一個屏幕錄制應用程序,該應用程序主要使用Lion的新AVCaptureScreenInput類來獲取屏幕上指定rect的屏幕視頻流。

根據活動監視器, 每次調用setCropRect: ,內存使用量將增加10-20Mb 由於我提供了可以在錄制過程中更改rect大小的功能,因此,隨着用戶對rect進行大量更改,內存使用量可能會增加到1-2Gb,這是一個災難:

我嚴重懷疑這是否是Apple SDK中的錯誤,因此Apple的示例代碼AVScreenShack示例也存在此問題。

我的代碼是這樣的:

[m_AVCaptureSession beginConfiguration];
[m_AVScreenInput setCropRect:CGRectMake((int)grabRect.origin.x, (int)grabRect.origin.y,(int)grabRect.size.width, (int)grabRect.size.height)];
 [m_AVCaptureSession commitConfiguration];

誰能告訴我,如果這是SDK中的錯誤,還是我以錯誤的方式使用了它,還是應該使用另一個類來做到這一點? 謝謝

由於您要打開配置事務,進行更改,然后立即提交更改,為什么不忽略該事務? 庫可能會延遲清除事務存儲器,直到記錄會話完成為止。 我認為沒有必要使用配置事務,除非您需要一組配置更新來實現原子化。

否則可能是真正的泄漏。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM