このコードでメモリリークが発生し、何が間違っているのかを見つけることができません。
CvCapture* capture = cvCaptureFromFile([[url path] UTF8String]);
while (cvGrabFrame(capture)) {
IplImage *frame = cvRetrieveFrame(capture);
if (frame) {
[...]
} else {
break;
}
}
cvReleaseCapture(&capture);
cvRetrieveFrameを削除すると、メモリリークがなくなります。1つのcvQueryFrameでcvGrabFrameとcvRetrieveFrameを変更すると、同じ動作が発生します。
動作は、cvReleaseCaptureが有効またはコメントアウトされている場合と同じです。おそらくそれに関連するものですが、私には何がわかりません。
iOSでopenCVr7286を使用しています。