Ошибка установки ClientDataFormat

У меня возникли проблемы с кодированием определенных конфигураций многоканальных файлов Apple Lossless. У меня нет проблем с конфигурациями 2, 4 и 6 каналов, однако у меня возникают проблемы при создании 12-канального файла.

Используя API ExtAudioFile, я могу создать аудиофайл с 12-канальным AudioStreamBasicDescription и 12-канальным FileChannelLayout. Когда дело доходит до установки 12-канального ClientDataFormat (это делается до установки макета клиента, который, очевидно, также не работает), я получаю код ошибки "fmt?".

Моя AudioStreamBasicDescription для ClientDataFormat генерируется следующим образом:

AudioStreamBasicDescription asbd;

asbd.mSampleRate = m_sampleRate;
asbd.mFormatID = kAudioFormatLinearPCM;
asbd.mFormatFlags = kAudioFormatFlagIsFloat;
asbd.mBytesPerPacket = m_channels * 64 / 8;
asbd.mBytesPerFrame = asbd.mBytesPerPacket;
asbd.mFramesPerPacket = 1;
asbd.mBitsPerChannel = 64;
asbd.mChannelsPerFrame = m_channels;
asbd.mReserved = 0;

Частота дискретизации составляет 176,4 кГц, и m_channels настроен правильно. Это сработало правильно для 2, 4 и 6 каналов, поэтому я не думаю, что это ошибка. Я также пытался использовать 32-разрядные целые числа со знаком вместо 64-разрядных чисел с плавающей запятой, но результат тот же.

Я не уверен, что мне не хватает. Возможно ли кодек Apple Lossless не поддерживает 12-канальные кодировки?

1 ответ

Решение

Я не знаю наверняка, является ли спецификация в MacOSForge окончательной, но согласно http://alac.macosforge.org/trac/browser/trunk/ReadMe.txt

3. From one to eight channels are supported. Channel orders for the supported formats are described as:
            Num Chan        Order
            1               mono
            2               stereo (Left, Right)
            3               MPEG 3.0 B (Center, Left, Right)
            4               MPEG 4.0 B (Center, Left, Right, Center Surround)
            5               MPEG 5.0 D (Center, Left, Right, Left Surround, Right Surround)
            6               MPEG 5.1 D (Center, Left, Right, Left Surround, Right Surround, Low Frequency Effects)
            7               Apple AAC 6.1 (Center, Left, Right, Left Surround, Right Surround, Center Surround, Low Frequency Effects)
            8               MPEG 7.1 B (Center, Left Center, Right Center, Left, Right, Left Surround, Right Surround,  Low Frequency Effects)
Другие вопросы по тегам