#quicktime #qtkit
#quicktime #qtkit
Вопрос:
Я создаю программу для редактирования видео с помощью QTKit.
Вот пример программы, предоставленной Apple, http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/QTKitApplicationTutorial/CreatingaQTKitStoporStillMotionApplication/CreatingaQTKitStoporStillMotionApplication.html
Моя тестовая программа основана на этой программе, но использует
QTMovie *movie = [[[QTMovie alloc] initToWritableFile: ошибка@»foo.mov»: ноль] автоматический выпуск];
и
[файл обновления фильма];
для сохранения памяти.
Если кадров не так много, программа работает хорошо. Но при таком количестве кадров программа начинает показывать
QTKitServer(5618,0xa0924540) malloc: *** mmap(size=33554432) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
Я проверил утечки памяти с помощью инструментов,
но текущие байты не такие большие, и утечек памяти не обнаружено. Общее количество байтов действительно велико, но является ли это причиной этой проблемы?
Любые идеи будут оценены.
Спасибо,
Ответ №1:
Общее количество байтов не должно быть проблемой, если только не имеется незарегистрированная утечка памяти.
После некоторого поиска в Google некоторые люди, похоже, сталкиваются с этой проблемой при компиляции для 32bit, с какой архитектурой вы компилируете?
Комментарии:
1. Я пробовал компилировать для 32-битных и 64-битных версий и получил ту же ошибку… хммм: (В любом случае, спасибо за ответ
2. Наконец, я обнаружил, что проблема была за пределами самой программы. В QTKit есть утечки памяти, и мы не можем увидеть утечку памяти через инструмент, потому что это происходит в процессе QTKitServer. Утечки памяти были в API -интерфейсе[QTKit frameAtTime:].
3. Я вижу, вам следует дать свой собственный ответ, чтобы вы могли закрыть проблему 🙂
4. Как вы преодолели утечку в QTKitServer?