Гарантируется ли порядковый номер параметров формата в файлах RIFF WAV? - PullRequest
8 голосов
/ 10 июля 2009

Гарантируется ли порядковый номер параметров формата в файлах RIFF WAV? Я слышал противоречивые ответы на это, включая ссылки на формат файла RIFX .

1 Ответ

18 голосов
/ 10 июля 2009

Да.

Если файл начинается с RIFF, то он имеет порядок байтов. Если это начинается с FFIR или RIFX, то, вероятно, нет. Как правило, поддержка формата WAV означает поддержку файлов RIFF, хотя добавить поддержку RIFX не составит труда.

Спецификация AES31 для BWF (Broadcast Wave Format) ссылается на эту спецификацию для RIFF: http://www.tactilemedia.com/info/MCI_Control_Info.html

Из этого:

RIFF имеет аналог RIFX, то есть используется для определения форматов файлов RIFF, которые использовать целочисленное байтовое упорядочение Motorola формат, а не формат Intel. RIFX-файл совпадает с RIFF-файлом, за исключением того, что первые четыре байта «RIFX» вместо «RIFF» и целое число порядок байтов представлен в Формат Motorola.

В статье KVR, на которую вы ссылаетесь, содержится ссылка на некорректное использование int * автором в системах с прямым порядком байтов (Motorola PPC), которые будут получать значения с заменой байтов. При написании кода с прямым порядком байтов всегда необходимо соблюдать осторожность для правильной замены байтов.

Если нулевой байт файла на диске - «R», а третий - «F», вы можете быть уверены, что остальное содержимое будет сохранено с прямым порядком байтов.

RIFX широко не используется. Большинство реализаций RIFF с прямым порядком байтов записывают байты на диск и генерируют правильные файлы RIFF.

...