Многоэтапное преобразование формата

Иногда ACM не может преобразовать данные из одного формата в другой за один шаг. Например, приложению может потребоваться преобразовать 16-разрядные стереоданные 44 кГц в 11 кГц моно ADPCM. Если компрессор или распаковка не могут выполнить это преобразование напрямую, приложение может попытаться выполнить его в два этапа. Обычно это означает одно преобразование между двумя форматами PCM, а затем другое преобразование в окончательный тип формата.

Чтобы выполнить преобразование в два этапа, используйте функцию acmFormatSuggest , чтобы найти формат PCM, соответствующий формату ADPCM. Затем используйте два потока преобразования для выполнения преобразования. Например, выполните одно преобразование из 16-разрядной 44-кГц стерео PCM в 16-разрядную моно с частотой 11 кГц, а затем преобразуйте из 16-разрядной 11-кГц моно в 11-кГц моно ADPCM.

Многоэтапное преобразование также происходит, если исходный или целевой формат не является PCM. Если исходный формат не является PCM, его следует изменить на формат PCM перед преобразованием. Если целевой формат не является PCM, источник должен быть преобразован в промежуточный формат PCM, а затем преобразован в конечный формат назначения.

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