1

我正在为 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 中的错误,或者我以错误的方式使用它,还是应该使用另一个类来执行此操作?谢谢

4

1 回答 1

0

既然您要打开一个配置事务,进行更改,然后立即提交更改,为什么不忽略该事务呢?库可能会延迟清理事务内存,直到录制会话完成。我认为没有必要使用配置事务,除非您需要一组配置更新是原子的。

或者它可能是一个真正的泄漏。

于 2011-11-04T18:30:41.083 回答