FMOD, использующий избыточную память кодека с непотоковыми сэмплами

Я использую FMODEx 4.40.10 в настоящее время. Мы загружаем образцы OGG следующим образом:

uint uiFlags(FMOD_SOFTWARE | FMOD_LOWMEM | FMOD_CREATESAMPLE);
FMOD::SOUND* pSound(NULL);
m_pFMODSystem->createSound(sPath, uiFlags, NULL, &pSound);

При взгляде на использование памяти этим звуком через:

FMOD_MEMORY_USAGE_DETAILS usage;
pSound->getMemoryInfo(FMOD_MEMBITS_ALL, 0, NULL, &usage);

Использование. Кодек сообщает больше 0. Это не имеет смысла для меня, так как в документации FMOD говорится, что FMOD_MEMORY_USAGE_DETAILS :: codec:

 codec
[out] Codecs allocated for streaming

Как видно из того, как загружаются звуки, потоковой передачи быть не должно.

Когда загружено несколько файлов OGG, когда я запрашиваю использование памяти системой, он показывает большое количество кодеков — все отдельные кодеки используются вместе. Номера памяти, о которых сообщает FMOD, соответствуют использованию памяти, которое я вижу из своего профиля памяти.

Когда я загружаю необработанные данные PCM, use.codec сообщает как 0.

Почему «кодек» больше 0, когда я загружаю не потоковые файлы OGG? Есть ли способ отключить это использование памяти?

Изменить: В качестве теста, после загрузки OGG, я извлекаю данные PCM и FMOD создает новый звук. Затем я освобождаю звук, созданный в OGG, и заменяю его новым звуком, загруженным из данных PCM. Это работает без нареканий. Это еще одно доказательство того, что выделенная память кодека не нужна.

0

Решение

http://www.fmod.org/forum/viewtopic.php?f=7&т = 15762

FMOD подтвердил мои выводы и сказал, что обходной путь загрузки сжатого звука, извлечения данных PCM, выгрузки звука и последующего создания нового из извлеченных данных PCM вполне подходит.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]