Чистка AVFrame правильно - PullRequest
       8

Чистка AVFrame правильно

0 голосов
/ 01 апреля 2019

Я создаю объект AVFrame с помощью функции av_frame_alloc () и очищаю его с помощью av_frame_free (& frame), который внутренне вызывает av_frame_unref (), но он не очищает память должным образом.Размер кучи моего приложения растет в геометрической прогрессии во время выполнения.

Не работает:

AVFrame* frame = av_frame_alloc();
av_frame_free(&frame);

Работает:

AVFrame* frame = av_frame_alloc();
av_free(frame->data[0]);

Насколько я знаю, av_frame_free () вызываетav_freep (), которая вызывает av_free () для освобождения динамической памяти.Очистка памяти, если я использую av_free (frame-> data [0]) напрямую вместо av_frame_free (& frame)

...