2011-10-25 18 views
1

我正在爲Lion的屏幕記錄應用程序工作,該應用程序主要使用Lion的新AVCaptureScreenInput類來獲取屏幕上指定矩形的屏幕視頻流。好吧,但是:Mac OS X 10.7中的內存泄漏AVCaptureScreenInput setCropRect:function

根據活動監視器,我打電話setCropRect:時間,內存使用量將增長10-20MB。由於我提供了一個可以在錄製過程中更改矩形尺寸的功能,因爲用戶更改矩形很多,內存使用可能會增加到1-2Gb,這是一個災難:(

我嚴重懷疑它是否是bug在蘋果的SDK,因此蘋果的示例代碼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中的錯誤,或者我用它以錯誤的方式,還是應該使用另一個班級來做到這一點?THX

回答

0

由於您正在打開配置事務,進行更改,然後立即提交更改,爲什麼不省略事務?庫可能會延遲清除事務內存,直到記錄會話完成。我不認爲有必要使用配置事務,除非你需要一組配置更新是原子的。或者它可能是一個真正的泄漏。

+0

我試過setCropRect:沒有打開一個事務,但沒有幫助,內存泄漏仍然存在:( –