8 Stimmen

Ist die Endianness der Formatparameter in RIFF WAV-Dateien garantiert?

Ist die Bytereihenfolge der Formatparameter in RIFF WAV-Dateien garantiert? Ich habe widersprüchliche Antworten dazu gehört, einschließlich Verweise auf ein RIFX Dateiformat.

19voto

Dave Gamble Punkte 4098

Ja.

Wenn die Datei mit RIFF beginnt, handelt es sich um Little-Endian. Wenn sie mit FFIR oder RIFX beginnt, ist es wahrscheinlich nicht. Im Allgemeinen bedeutet die Unterstützung des WAV-Formats die Unterstützung von RIFF-Dateien, obwohl die Unterstützung von RIFX nicht schwierig sein sollte.

Die AES31-Spezifikation für BWF (Broadcast Wave Format) bezieht sich auf diese Spezifikation für RIFF: http://www.tactilemedia.com/info/MCI_Control_Info.html

Daraus ergibt sich:

RIFF hat einen Pendant, RIFX, der verwendet wird, um RIFF-Dateiformate zu definieren, die das Motorola Integer-Byte-Reihenfolgeformat verwenden anstelle des Intel-Formats. Eine RIFX-Datei ist dieselbe wie eine RIFF-Datei, außer dass die ersten vier Bytes 'RIFX' anstelle von 'RIFF' sind, und die Integer-Byte-Reihenfolge wird im Motorola-Format dargestellt.

Der von Ihnen referenzierte KVR-Artikel bezieht sich auf die falsche Verwendung von int* durch den Autor auf big-endian-Systemen (Motorola PPC), was dazu führt, dass Byte-swapped-Werte abgerufen werden. Es ist immer wichtig, Byte-Reihenfolgen korrekt zu behandeln, wenn man Cross-Endian-Code schreibt.

Wenn das nullte Byte der Datei auf der Festplatte 'R' und das dritte 'F' ist, können Sie sicher sein, dass der Rest des Inhalts Little-Endian gespeichert wird.

RIFX wird nicht weit verbreitet verwendet. Die meisten Big-Endian-RIFF-Implementierungen tauschen Bytes auf der Festplatte aus und erstellen korrekte RIFF-Dateien.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X