Воспроизведение потока ADPCM на iOS (MS IMA 0x11)

Я использую AudioUnit / RemoteIO API для воспроизведения потокового аудио. Другие форматы, такие как a-law и u-law, работают нормально.

Вот пример того, как я настраиваю формат a-law:

    audioFormat.mSampleRate       = format->nSamplesPerSec;
    audioFormat.mFormatID         = kAudioFormatALaw;
    audioFormat.mFormatFlags      = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked;
    audioFormat.mFramesPerPacket  = 1;
    audioFormat.mChannelsPerFrame = format->nChannels;
    audioFormat.mBitsPerChannel   = format->wBitsPerSample;
    audioFormat.mBytesPerFrame    = (format->wBitsPerSample * format->nChannels) / 8;
    audioFormat.mBytesPerPacket   = audioFormat.mBytesPerFrame * audioFormat.mFramesPerPacket;

Формат, с которым я пытаюсь работать - это MS ADPCM, описанный здесь.

Из того, что я понимаю, в этом случае мне нужно как-то рассчитать количество кадров на пакет. Единственной дополнительной информацией, которую я имею, является поле nBlockAlign, которое мультимедийная вики описывает как "размер блока данных, закодированных в IMA".

Я в недоумении с этим.

Как рассчитывается количество кадров в пакете? Включает ли он размер блока из nBlockAlign?

Я вижу kAudioFormatDVIIntelIMA и kAudioFormatAppleIMA4 в списке форматов. Поддерживает ли iOS этот тип ADPCM?

0 ответов

Другие вопросы по тегам