Adding support for DSDIFF

Bart Lauret bblauret at
Sun Nov 13 10:47:33 UTC 2011

Hello Scott c.s.,

With the possible upcoming rise of the usage of the DSDIFF format
(.DFF extension), I wanted to add support for it to taglib. This
fileformat contains DSD audio (1-bit audio used on SACDs) in an AIFF
(EA-IFF 85)-like container. The most used ripping software for these
DSDIFFs (sacd-ripper) creates an ID3 chunk (but it is not part of the
official spec).

The specs of DSDIFF can be found here:

Trying to get this to work I have encountered two problems while using
the RIFF class with DFF.
- It is not completely compatible to the RIFF class, because it uses 8
bytes for the size of the chunk. From the DSDIFF spec: "[T]he
ckDataSize is not 4 bytes in length, as in EA-IFF 85, but 8 bytes.
This makes it possible to create chunks larger than 2 GigaByte (up to
2^64 bytes)."

- Next problem is that the RIFF class only reads chunks which are
sub-chunks of the main chunk. As the ID3 chunk in DFF is a
sub-sub-chunk ('FRM8'->'PROP'->'ID3 '), it is not processed.
Furthermore, all the interesting audio-property information (channel
count, compression type, timestamp, loudspeaker configuration) are
also in the PROP chunk.

So, does this together warrant a move away from the RIFF class, or
should the RIFF class be changed to cope with this? Also, are you
interested in official support for DSDIFF?

Bart Lauret

More information about the taglib-devel mailing list