FLAC decoder testbench: Difference between revisions

From Hydrogenaudio Knowledgebase
(Updated Rockbox, albeit with old version)
(Add Android 11, move Pioneer BDP-150 comments to tooltips)
Line 47: Line 47:
| 48-55
| 48-55
| 56-59
| 56-59
|-
! Android
| style="background: orange;" | {{tooltip|Fails|Heavy stuttering on blocksize 16}}
| style="background: lime;"  | Plays
| style="background: lime;"  | Plays
| style="background: yellow;" | {{tooltip|Skips|Skips all variable blocksize files}}
| style="background: lime;"  | Plays
| style="background: lime;"  | Plays
| style="background: lime;"  | Plays
| style="background: lime;"  | Plays
| style="background: lime;"  | Plays
| style="background: orange;" | {{tooltip|Fails|No sound on 20 bit file}}
| style="background: orange;" | {{tooltip|Fails|Skips 3.0, 4.0, 5.0 and 6.1, mutilated audio on 7.1}}
| style="background: yellow;" | {{tooltip|Skips|File skipped}}
| style="background: lime;"  | Plays
| style="background: lime;"  | Plays
| class="mw-collapsible mw-collapsed" | Android 11 with Google Play updates of 1st of August 2021 on Samsung XCover 5
|-
|-
! Citroën DS5
! Citroën DS5
Line 165: Line 182:
|-
|-
! Pioneer BDP-150
! Pioneer BDP-150
| style="background: red;"    | Freezes
| style="background: red;"    | {{tooltip|Freezes|Freezes on non-standard blocksizes (16, 254, 725, 1000 and 1937)}}
| style="background: orange;" | Fails
| style="background: orange;" | {{tooltip|Fails|Garbled audio when playing file with LPC with qlp precision of 2}}
| style="background: orange;" | Fails
| style="background: orange;" | {{tooltip|Fails|Stretches non-standard samplerates to 44.1kHz}}
| style="background: lime;"  | Plays
| style="background: lime;"  | Plays
| style="background: red;"    | Freezes
| style="background: red;"    | {{tooltip|Freezes|Freezes on variable blocksize files with non-standard blocksizes, stutters on variable blocksize files with standard blocksizes}}
| style="background: lime;"  | Plays
| style="background: lime;"  | Plays
| style="background: red;"    | Freezes
| style="background: red;"    | {{tooltip|Freezes|Freezes on non-standard blocksize (13456)}}
| style="background: orange;" | Fails
| style="background: orange;" | {{tooltip|Fails| Incorrect decoding (clicks) of RICE2 partitions with escape codes}}
| style="background: orange;" | Fails
| style="background: orange;" | {{tooltip|Fails|Stretches non-standard samplerates to 44.1kHz. Stutters on 192kHz with 32th order predictors}}
| style="background: lime;"  | Plays
| style="background: lime;"  | Plays
| style="background: red;" colspan="2" | Freezes
| style="background: red;" colspan="2" | {{tooltip|Freezes|Freezes on files with more than 6 channels}}
| style="background: red;"    | Freezes
| style="background: red;"    | {{tooltip|Freezes|Freezes on files with an unknown number of total samples}}
| style="background: red;"    | Freezes
| style="background: red;"    | {{tooltip|Freezes|Freezes on files with 1000x repeated vorbiscomments, rejects files with too many seekpoints}}
| style="background: lime;"  | Plays
| style="background: lime;"  | Plays
| class="mw-collapsible mw-collapsed" | Stretches non-standard samplerates to 44.1kHz. Freezes on non-standard blocksizes (16, 254, 725, 1000, 1937 and 13456), on variable blocksize files with non-standard blocksizes, files more than 6 channels, files with unknown number of total samples, files with 1000x repeated vorbiscomments. Stutters on variable blocksize files with standard blocksizes. Rejects files with too many seekpoints. Incorrect decoding (clicks) of RICE2 partitions with escape codes. Incorrect decoding (garbled audio) of LPC with qlp precision of 2. Stutters on 192kHz with 32th order predictors. Firmware v1.08, testbench revision 5
| class="mw-collapsible mw-collapsed" | Firmware v1.08, testbench revision 5
|-
|-
! Rockbox
! Rockbox
Line 196: Line 213:
| style="background: orange;"| {{tooltip|Fails|Plays extremely slowly on file with APPLICATION metadata block}}
| style="background: orange;"| {{tooltip|Fails|Plays extremely slowly on file with APPLICATION metadata block}}
| style="background: lime;"  | Plays
| style="background: lime;"  | Plays
| class="mw-collapsible mw-collapsed" |  Tested with Rockbox 3.13 on Sansa Fuze
| class="mw-collapsible mw-collapsed" |  Tested with Rockbox 3.15 (latest stable) on Sansa Fuze with testbench revision 5
|-
|-
! colspan="16" | Software players
! colspan="16" | Software players

Revision as of 20:15, 22 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 Block­size Features Sample­rates Bit­depths Variable blocksize General Block­size Features Sample­rates Bit­depths 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
Android Fails Plays Plays Skips Plays Plays Plays Plays Plays Fails Fails Skips Plays Plays
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 Fails Plays Rejects Plays Reboots Plays
Panasonic TX-60CX750E Plays Plays Fails Plays Plays Plays Plays Plays Fails Plays Plays Fails 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 Skips Skips Plays Plays Freezes Freezes Fails Plays
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