Общее количество байтов памяти ограничено?

#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?