FLAC decoder testbench: Difference between revisions
m (Remove silly test) |
(Update to testbench revision 5, re-test all software players, add Mediamonkey 5) |
||
Line 1: | Line 1: | ||
To further the use and development of [[Free Lossless Audio Codec|FLAC]], a testbench containing files with different parameters was constructed. The testbench consists of 59 FLAC files, each one having a different combination of characteristics (like samplerate, bitdepth and number of channels) and FLAC features (like blocksize, maximum partition order, maximum predictor order, maximum predictor precision etc.) However, all combinations fall within the so called subset: a limited set of FLAC parameters that fit in the frame header and are supposed to be 'streamable'. Please be aware that certain tested features (such as blocksize 16 or a samplerate of 38457Hz) are pretty much useless in day-to-day usage, and that failure to properly decode such a file is mostly of interest to developers than to users. | To further the use and development of [[Free Lossless Audio Codec|FLAC]], a testbench containing files with different parameters was constructed. The testbench consists of 59 FLAC files, each one having a different combination of characteristics (like samplerate, bitdepth and number of channels) and FLAC features (like blocksize, maximum partition order, maximum predictor order, maximum predictor precision etc.) However, all combinations fall within the so called subset: a limited set of FLAC parameters that fit in the frame header and are supposed to be 'streamable'. Please be aware that certain tested features (such as blocksize 16 or a samplerate of 38457Hz) are pretty much useless in day-to-day usage, and that failure to properly decode such a file is mostly of interest to developers than to users. | ||
For more information on which file tests what characteristics and features, please refer to the readme.txt file that is included in the testbench. | For more information on which file tests what characteristics and features, please refer to the readme.txt file that is included in the testbench. This testbench is licensed under [https://creativecommons.org/publicdomain/zero/1.0/ CC0 1.0]. | ||
The testbench can be [https://drive.google.com/uc?id= | The testbench can be [https://drive.google.com/uc?id=1ahwxfe3V78X4Dai1i844tzkZ-3chSmeS downloaded here] | ||
{| class="wikitable" cellspacing="2" | {| class="wikitable" cellspacing="2" | ||
Line 214: | Line 214: | ||
| style="background: lime;" | Plays | | style="background: lime;" | Plays | ||
| style="background: lime;" | Plays | | style="background: lime;" | Plays | ||
| style="background: yellow;" | Skips | |||
| style="background: lime;" | Plays | | style="background: lime;" | Plays | ||
| | | class="mw-collapsible mw-collapsed" | Playing 55 returns: Unable to open item for playback (bad allocation). Foobar2000 version 1.6.7, testbench revision 5 | ||
| | |||
|- | |- | ||
! VLC | ! VLC | ||
Line 234: | Line 234: | ||
| style="background: red;" | Crashes | | style="background: red;" | Crashes | ||
| style="background: lime;" | Plays | | style="background: lime;" | Plays | ||
| class="mw-collapsible mw-collapsed" | Unable to play old-style variable blocksize. Crashes occasionally on files with extremely large VORBISCOMMENT | | class="mw-collapsible mw-collapsed" | Unable to play old-style variable blocksize. Crashes occasionally on files with extremely large VORBISCOMMENT. VLC 3.0.16 on testbench revision 5 | ||
|- | |- | ||
! Winamp 5.8 | ! Winamp 5.8 | ||
Line 251: | Line 251: | ||
| style="background: lime;" | Plays | | style="background: lime;" | Plays | ||
| style="background: lime;" | Plays | | style="background: lime;" | Plays | ||
| class="mw-collapsible mw-collapsed" | Freezes on 12 bit, 384kHz, 3.0, 5.0, 6.1, 7.1 | | class="mw-collapsible mw-collapsed" | Freezes on 12 bit, 384kHz, 3.0, 5.0, 6.1, 7.1. Winamp 5.8 build 3660, testbench revision 5 | ||
|- | |- | ||
! Windows Media Player | ! Windows Media Player | ||
Line 269: | Line 269: | ||
| style="background: yellow;" | Rejects | | style="background: yellow;" | Rejects | ||
| style="background: lime;" | Plays | | style="background: lime;" | Plays | ||
| class="mw-collapsible mw-collapsed" | Rejects 12 and 20 bit FLAC and files with extremely large metadata blocks | | class="mw-collapsible mw-collapsed" | Rejects 12 and 20 bit FLAC and files with extremely large metadata blocks. Tested version 12.0.19041.1288 on testbench revision 5 | ||
|- | |- | ||
! mpv | ! mpv | ||
Line 284: | Line 284: | ||
| style="background: lime;" | Plays | | style="background: lime;" | Plays | ||
| style="background: lime;" | Plays | | style="background: lime;" | Plays | ||
| style="background: lime;" | Plays | |||
| style="background: red;" | Hangs | |||
| style="background: lime;" | Plays | |||
| class="mw-collapsible mw-collapsed" | When playing through the list, there are small gaps at the start of a few files, at least those with a sample rate change. Files 27 and 45 don't show the correct duration and aren't quite seekable. Files 54 and 55 make the player hang. (mpv-x86_64-20211031-git-4a80de9 on Windows, testbench revision 5) | |||
|- | |||
! Mediamonkey 5 | |||
| style="background: lime;" | Plays | |||
| style="background: lime;" | Plays | |||
| style="background: lime;" | Plays | |||
| style="background: red;" | Crashes | |||
| style="background: lime;" | Plays | |||
| style="background: lime;" | Plays | |||
| style="background: lime;" | Plays | |||
| style="background: lime;" | Plays | |||
| style="background: lime;" | Plays | |||
| style="background: orange;" | Silence | |||
| style="background: orange;" | Breaks | |||
| style="background: lime;" | Plays | | style="background: lime;" | Plays | ||
| style="background: lime;" | Plays | | style="background: lime;" | Plays | ||
| style="background: red;" | Unresp. | |||
| style="background: lime;" | Plays | | style="background: lime;" | Plays | ||
| class="mw-collapsible mw-collapsed" | | | class="mw-collapsible mw-collapsed" | Crashes on 12-bit file, plays silence on 20-bit file, only plays first 2 seconds of all spoken multichannel files, becomes unresponsive on (and after) playing files with 1000x repeating vorbiscomments. Version 5.0.1.2433 with testbench revision 5 | ||
|} | |} | ||
Revision as of 12:24, 2 November 2021
To further the use and development of FLAC, a testbench containing files with different parameters was constructed. The testbench consists of 59 FLAC files, each one having a different combination of characteristics (like samplerate, bitdepth and number of channels) and FLAC features (like blocksize, maximum partition order, maximum predictor order, maximum predictor precision etc.) However, all combinations fall within the so called subset: a limited set of FLAC parameters that fit in the frame header and are supposed to be 'streamable'. Please be aware that certain tested features (such as blocksize 16 or a samplerate of 38457Hz) are pretty much useless in day-to-day usage, and that failure to properly decode such a file is mostly of interest to developers than to users.
For more information on which file tests what characteristics and features, please refer to the readme.txt file that is included in the testbench. This testbench is licensed under CC0 1.0.
The testbench can be downloaded here
CDDA (44.1kHz/16-bit and less) | High-res (96kHz/24-bit and more) | Multichannel | Metadata | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Decoder | Blocksize | Features | Samplerates | Bitdepths | Variable blocksize | General | Blocksize | Features | Samplerates | Bitdepths | Channel lay-outs | Features | Missing | Extreme | MIME | Remarks |
Files in test set | 1-10 | 11-18 | 19-21 | 22-23 | 24-27 | 28 | 29-30 | 31-32, 34 | 33-36 | 37 | 38-43 | 44 | 45-47 | 48-55 | 56-59 | |
Citroën DS5 | Plays | Plays | Skips | Fails | Plays | Skips | Plays | Hangs | Plays | |||||||
Chromecast | Fails | Plays | Fails | Plays | Fails | Plays | Fails | Fails | Fails | Plays | Rejects | Plays | Reboots | Rejects | ||
Cowon iAudio 7 | Fails | Plays | Fails | Rejects | Rejects | Rejects | Rejects | Rejects | Rejects | Rejects | Freezes | - | - | - | ||
JVC KD-R871BT | Fails | Plays | Fails | Plays | Rejects | Plays | Freezes | Reboots | Fails | Rejects | Rejects | Rejects | Reboots | Rejects | ||
Kenwood KMM-BT304 | Fails | Plays | Rejects | Plays | Rejects | Plays | Rejects | Rejects | Rejects | Plays | Rejects | Rejects | Plays | Reboots | Plays | |
Onkyo TX-NR686 | Fails | Plays | Rejects | Plays | Rejects | Plays | Plays | Plays | Rejects | Plays | Rejects | Plays | Reboots | Plays | ||
Panasonic TX-60CX750E | Plays | Plays | Fails | Plays | Plays | Plays | Plays | Plays | Fails | Plays | Plays | Plays | Plays | Fails | Plays | |
Pioneer BDP-150 | Freezes | Fails | Fails | Plays | Freezes | Plays | Freezes | Fails | Fails | Plays | Freezes | Freezes | Freezes | Plays | ||
Rockbox | Plays | Plays | Plays | Plays | Plays | Plays | Rejects | Rejects | Plays | Plays | Freezes | - | - | - | ||
Software players | ||||||||||||||||
Foobar 2000 | Plays | Plays | Plays | Plays | Plays | Plays | Plays | Plays | Plays | Plays | Plays | Plays | Plays | Skips | Plays | |
VLC | Plays | Plays | Plays | Plays | Fails | Plays | Plays | Plays | Plays | Plays | Plays | Plays | Plays | Crashes | Plays | |
Winamp 5.8 | Plays | Plays | Plays | Freezes | Plays | Plays | Plays | Plays | Freezes | Plays | Freezes | Plays | Plays | Plays | ||
Windows Media Player | Plays | Plays | Plays | Rejects | Plays | Plays | Plays | Plays | Plays | Rejects | Plays | Plays | Plays | Rejects | Plays | |
mpv | Plays | Plays | Plays | Plays | Plays | Plays | Plays | Plays | Plays | Plays | Plays | Plays | Plays | Hangs | Plays | |
Mediamonkey 5 | Plays | Plays | Plays | Crashes | Plays | Plays | Plays | Plays | Plays | Silence | Breaks | Plays | Plays | Unresp. | Plays |
Table legend | |
---|---|
Plays | all files in this category are played as intended, without glitches, changes etc. |
Rejects | One or more files are rejected by the player, either by skipping the file or mentioning a message like: "file not supported" |
Fails | One or more files are not played back as intended, for example by stuttering, garbling or playing at incorrect speed, or by never starting playing (though not skipping, freezing or rebooting) |
Freezes | On one or more files, the player crashes on decoding, leaving the unit inoperable until reboot, or the unit reboots by itself |
The order of precedence is from bottom to top, so if one file freezes the player, one file is rejected and the other play fine, the table reads 'Freezes' for that category. | |
For the metadata tests, the (absence of) rendering of the metadata is not a criterium, simply whether its presence is an obstacle to playing |