RIFF WAV ファイルではフォーマットパラメータのエンディアン性が保証されていますか?
-
12-09-2019 - |
質問
RIFF WAV ファイルではフォーマットパラメータのエンディアン性が保証されていますか?私は持っている 相反する答えを聞いた これには、への参照も含めて、 RIFX ファイル形式。
解決
はい。
ファイルが RIFF で始まる場合、それはリトル エンディアンです。FFIR または RIFX で始まる場合は、おそらくそうではありません。一般に、WAV 形式のサポートは RIFF ファイルのサポートを意味しますが、RIFX サポートの追加は難しくありません。
BWF (Broadcast Wave Format) の AES31 仕様は、RIFF の次の仕様を参照しています。 http://www.tactilemedia.com/info/MCI_Control_Info.html
これから:
Riffには、Intel形式ではなくMotorola Integer Byte-Ordering形式を使用するRIFFファイル形式を定義するために使用される対応物rifxがあります。RIFXファイルは、最初の4バイトが「リフ」ではなく「RIFX」であり、整数バイトの順序付けがMotorola形式で表されることを除いて、RIFFファイルと同じです。
あなたが参照している KVR 記事では、作者がバイトスワップされた値を取得するビッグエンディアン システム (Motorola PPC) での int* の誤った使用方法について言及しています。クロスエンディアン コードを作成する場合は、バイト スワッピングを正しく処理するために常に注意が必要です。
ディスク上のファイルの 0 番目のバイトが「R」で、3 番目のバイトが「F」であれば、残りの内容はリトル エンディアンで保存されることが確実です。
RIFX は広く使用されていません。ほとんどのビッグエンディアン RIFF 実装は、バイトをディスクにスワップし、正しい RIFF ファイルを生成します。