SIGSEGV с суперспособностью

Кто-нибудь знает, почему я получаю SIGSEGV так скоро, как объект superpoweredReverb удаляется?

int size = 3056;
SuperpoweredReverb* superpoweredReverb = new SuperpoweredReverb(44100);
superpoweredReverb->enable(true);
float* buffer = new float[size * 2];
superpoweredReverb->process(buffer, buffer, size);
delete(superpoweredReverb); // <-- error SIGSEGV
delete[](buffer);

Если размер 16, 32, 64 или 1024, все работает нормально. Но, используя другие кратные 8, такие как 1032, 2048 или 4096, я получаю следующее сообщение об ошибке:

  • A / libc: неверный адрес или адрес поврежденного блока 0x63647000 передан dlfree
  • A / libc: фатальный сигнал 11 (SIGSEGV) в 0xdeadbaad (код = 1), поток 7148 (поток 4888)

Я использую Superpowered SDK для автономной обработки с помощью приложения для Android. Буду благодарен за любую помощь.

1

Решение

Кажется, это ошибка в SDK. Используйте размеры буфера <= 1024 для SuperpoweredReverb, пока не будет исправлено.
Увидеть https://github.com/superpoweredSDK/Low-Latency-Android-Audio-iOS-Audio-Engine/issues/168

2

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

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

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