Resource Interchange File Format
RIFF (ang. Resource Interchange File Format), format plików przeznaczony do przechowywania danych multimedialnych, w szczególności dźwięku (RIFF WAVE) i video (RIFF AVI). Format RIFF został zaprojektowany przez firmę Microsoft.
Budowa formatu
Format RIFF opiera się na oznakowanych blokach danych o podanej długości (ang. chunks). Każdy blok składa się z nagłówka i pola danych. Nagłówek zawiera identyfikator bloku i długość pola danych. Identyfikator to cztery bajty – litery w kodzie ASCII. Następuje po nim 32-bitowa liczba bez znaku zapisana w formacie little endian określająca długość pola danych w bajtach.
Plik w formacie RIFF składa się z bloku nadrzędnego o identyfikatorze "RIFF", wewnątrz którego znajduje się 4-bajtowy identyfikator podformatu (np. "WAVE"), a następnie bloki podrzędne, których identyfikatory, ilość, kolejność występowania i zawartość pól danych zależą od podformatu. W prawidłowo zbudowanym pliku RIFF długość bloku głównego jest równa długości całego pliku pomniejszonego o 8. Konstrukcja formatu ogranicza maksymalną długość pliku do 4 GB.
Konstrukcja formatu RIFF jest bardzo podobna do IFF, różnica polega na sposobie zapisu długości bloków (IFF używa zapisu big endian).
Przykład pliku
Rysunek przedstawia strukturę przykładowego pliku RIFF WAVE o całkowitej długości 43 647 208 bajtów. Kolorem zielonym oznaczono blok główny, kolorami niebieskim i brązowym bloki podrzędne. Przyciemniono nagłówki bloków (identyfikator i długość pola danych). Lewa kolumna zawiera numer bajtu od którego zaczynają się dane w kolumnie środkowej.