Hi all,
The FLAC specification has quite a few features that have never been
used by libFLAC, or don't make much sense in normal usage, but are
allowed by the subset. For example:
- the FLAC format allows a variable blocksize and certain encoders do
create such files on request, but the reference encoder never did
- all blocksizes between 16 and 4608 are allowed, but blocksizes other
than 4096 and 1152 are only used on request
- Rice partition orders above 6 are only used on request
- Rice escape codes aren't used by any encoder I know of
- 12 or 20 bit sample sizes are allowed, but quite rare
- metadata blocks can be up to 16MB, which is very spacious
However, I think it would be nice if people or organisations
developing FLAC decoders are able to test their work for support of
those features. That is why I made a FLAC decoder testbench. This is a
zip-file with 59 FLAC-files, in which each file tests a specific
feature of the FLAC format, even features that are not (yet) supported
by libFLAC. These files contain Creative Commons licensed music (see
the readme in the zip-file for details).
One of the reasons I made this testbench is because I would like to
use the variable blocksize feature in future developments, but using
this testbench, I already found out most hardware decoders do not
support such files. This testbench might improve future support of
this feature.
The testbench can be downloaded here:
https://drive.google.com/u/0/uc?id=1jhiZ4Z_hfLDD9SNu-9DAoeeXxH5eLEJ6
For a detailed explanation of what features are tested, please see the
readme file in the zip. If you have any comments or suggestions
concerning this testbench, please let me know. There has already been
some discussion on hydrogenaudio:
https://hydrogenaud.io/index.php?topic=121478.0 There is also a
wikipage there with a table of hardware devices tested with this
testbench: https://wiki.hydrogenaud.io/index.php?title=FLAC_decoder_testbench
Perhaps this file can be linked on one of the developer pages of the
FLAC website after all suggestions have been processed?
Kind regards, Martijn van Beurden