我正在为Lion创建一个屏幕录制应用程序,它主要使用Lion的新AVCaptureScreenInput类来为屏幕上的指定矩形获取屏幕视频流。一切似乎都好但是:
根据活动监视器,每次我呼叫setCropRect:
,内存使用量将增加10-20Mb 。由于我提供了一个功能,可以在录制过程中更改矩形大小,因为用户更改了矩阵,内存使用量可能会增加到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中的错误,或者我以错误的方式使用它,还是应该使用其他类来执行此操作? THX
答案 0 :(得分:0)
由于您打开配置事务,进行更改,然后立即提交更改,为什么不省略事务?库可能会延迟清理事务内存,直到记录会话完成。我不认为有必要使用配置事务,除非您需要一组配置更新是原子的。
或者它可能是真正的泄密。