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.
Antwort
Zu viele Anzeigen?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.