Difference between revisions of "FLAC decoder testbench"

From Hydrogenaudio Knowledgebase
Jump to: navigation, search
m (updated Kenwood KMM-BT304 info)
m (Cog: Update 8 channel test information based on app version history)
 
(21 intermediate revisions by 4 users not shown)
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 46 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. All files are licensed under a Creative Commons license, but please refer to the readme.txt file to see which file is licensed under which Creative Commons license and for 'attribution' as to who is the original author.
+
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=1XA5C1YeLOekYNFVB6056Eq-KGMlfW1tE downloaded here]
+
The testbench can be [https://drive.google.com/uc?id=1ahwxfe3V78X4Dai1i844tzkZ-3chSmeS downloaded here]
  
 
{| class="wikitable" cellspacing="2"
 
{| class="wikitable" cellspacing="2"
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: 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: 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
 +
| 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
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
| style="background: yellow;" | Skips
+
| style="background: yellow;" | {{tooltip|Skips|Skips files with a non-standard samplerate, plays 22050Hz}}
| style="background: orange;" | Fails
+
| style="background: orange;" | {{tooltip|Fails|Extreme distortion on playback}}
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
| style="background: yellow;" colspan="7" | Skips
+
| style="background: yellow;" colspan="7" | {{tooltip|Skips|Skips all high-res and multichannel files}}
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
| style="background: red;"    | Hangs
+
| style="background: red;"    | {{tooltip|Hangs|Files with large seektable are skipped (after long delay) and file with combined extreme metadata causes player to hang, requiring removal of USB stick}}
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
| class="mw-collapsible mw-collapsed" | Skips all high-res and multichannel files and all files with a non-standard samplerate. Extreme distortion on 12-bit file. Files with large seektable are skipped (after long delay) and file with combined extreme metadata causes player to hang, requiring removal of USB stick.
+
|  
 
|-
 
|-
 
! Chromecast
 
! Chromecast
Line 102: Line 120:
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: red;"    | Freezes
 
| style="background: red;"    | Freezes
| -
+
| style="background: red;"    | Reboots
 +
| style="background: orange;" | Fails
 
| style="background: yellow;" | Rejects
 
| style="background: yellow;" | Rejects
| -
 
 
| style="background: yellow;" colspan="2" | Rejects
 
| style="background: yellow;" colspan="2" | Rejects
| -
+
| style="background: yellow;" | Rejects
| -
+
| style="background: red;"    | Reboots
| -
+
| style="background: yellow;" | Rejects
| class="mw-collapsible mw-collapsed" | Heavy stutter with blocksize 16. Stretches non-standard samplerates. Samplerates above 96kHz, variable blocksize files and multichannel files 'not supported'. Freezes on blocksize 16384
+
| class="mw-collapsible mw-collapsed" | Heavy stutter with blocksize 16. Stretches non-standard samplerates. Samplerates above 96kHz, variable blocksize files and multichannel files 'not supported'. Freezes on blocksize 16384 and 13456. 192kHz is played back very slow. Skips all multichannel, files with cover image, extreme metadata. Reboot loop on extreme large VORBISCOMMENT
 
|-
 
|-
 
! Kenwood KMM-BT304
 
! Kenwood KMM-BT304
Line 127: Line 145:
 
| style="background: red;"    | Reboots
 
| style="background: red;"    | Reboots
 
| style="background: lime;" | Plays
 
| style="background: lime;" | Plays
| class="mw-collapsible mw-collapsed" | Track 03 plays extremely noisily, barely recognizable. Track 51 produces a "NO DEVICE" error and a reboot. Track 54 produces a reboot with no message. These tracks produce a "NA FILE" error and the player skips to the next: 19 21 24 25 26 27 29 30 31 34 35 36 38 39 40 41 42 43 44 45 46 48 55. (firmware: te1706k.krm from 2020-03-05)
+
| class="mw-collapsible mw-collapsed" | File 03 plays extremely noisily, barely recognizable. File 51 produces a "NO DEVICE" error and a reboot. File 54 produces a reboot with no message. These files produce a "NA FILE" error and the player skips to the next: 19 21 24 25 26 27 29 30 31 34 35 36 38 39 40 41 42 43 44 45 46 48 55. (firmware: te1706k.krm from 2020-03-05)
 
|-
 
|-
 
! Onkyo TX-NR686
 
! Onkyo TX-NR686
| style="background: orange;" | Fails
+
| style="background: orange;" | {{tooltip|Fails|Heavy stutter with blocksize 16}}
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
| style="background: yellow;" | Rejects
+
| style="background: yellow;" | {{tooltip|Rejects|Non-standard sample rates (34567Hz and 39kHz) are skipped}}
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
| style="background: yellow;" | Rejects
+
| style="background: yellow;" | {{tooltip|Rejects|Does not play current format variable blocksize files but does play 'pre-2007 format' 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: lime;"  | Plays
| style="background: yellow;" | Rejects
+
| style="background: yellow;" | {{tooltip|Fails|Non-standard sample rates (134560Hz and 384kHz) are skipped}}
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
| style="background: yellow;" colspan="2" | Rejects
+
| style="background: yellow;" colspan="2" | {{tooltip|Rejects|Does not play 4.0, 5.1 and 7.1 files but does play 5.0 and 6.1 as stereo and 3.0 as 3.1}}
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
| style="background: red;"    | Reboots
+
| style="background: red;"    | {{tooltip|Reboots|Crashes on file with 1000x repeating VORBISCOMMENT}}
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
| class="mw-collapsible mw-collapsed" | Heavy stutter with blocksize 16. Does not play non-standard samplerates, files with extremely large seektable, application block and vorbiscomment. Does not play current format variable blocksize files but does play 'pre-2007 format' variable blocksize files. Does not play 4.0, 5.1 and 7.1 files but does play 5.0 and 6.1 as stereo and 3.0 as 3.1. Crashes on file with 1000x repeating VORBISCOMMENT
+
| class="mw-collapsible mw-collapsed" | Tested with revision 5, firmware version 1071-2000-1070-0011.
 
|-
 
|-
 
! Panasonic TX-60CX750E
 
! Panasonic TX-60CX750E
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
| style="background: orange;" | Fails
+
| style="background: orange;" | {{tooltip|Fails|Non-standard sample rates (34567Hz and 39kHz) are stretched i.e. played at wrong speed}}
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
Line 155: Line 173:
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
| style="background: orange;" | Fails
+
| style="background: orange;" | {{tooltip|Fails|Non-standard sample rates (134560Hz and 384kHz) are stretched i.e. played at wrong speed}}
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | {{tooltip|Plays|Multichannel condensed into 2 channels}}
 +
| style="background: orange;" | {{tooltip|Fails|Does not start playing}}
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 +
| style="background: orange;" | {{tooltip|Fails|Does not start playing on extremely large vorbiscomment}}
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
| style="background: lime;"  | Plays
+
| class="mw-collapsible mw-collapsed" | Based on libFLAC 1.2.1, according to copyright notice. Firmware version 3.228, testbench revision 5
| style="background: orange;" | Fails
+
| style="background: lime;"  | Plays
+
| class="mw-collapsible mw-collapsed" | Based on libFLAC 1.2.1. Stretches non-standard samplerates. Does not output more than 2 channels over HDMI. Keeps loading forever on extremely large VORBISCOMMENT
+
 
|-
 
|-
 
! 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 any non-standard blocksize, on variable blocksize streams, files more than 6 channels, files with unknown number of total samples, files with several extremely large metadata blocks and file with 1000x repeated vorbiscomments. Rejects files with too many seekpoints. Incorrect decoding (short noisy bursts) of RICE2 partitions with escape codes. Incorrect decoding (garbled audio) of LPC with qlp precision of 2. Stutters on 192kHz with 32th order predictors
+
| class="mw-collapsible mw-collapsed" | Firmware v1.08, testbench revision 5
 
|-
 
|-
 
! Rockbox
 
! Rockbox
Line 188: Line 206:
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
| style="background: yellow;"| Rejects
+
| style="background: yellow;"| {{tooltip|Skips|Skips blocksizes 16384 and 13456}}
| style="background: yellow;"| Rejects
+
| style="background: yellow;"| {{tooltip|Skips|Skips file with only 32nd order predictors}}
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| 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;"  | {{tooltip|Freezes|Crashes on filewith no total number of samples set}}
| -
+
| style="background: orange;"| {{tooltip|Fails|Plays extremely slowly on file with APPLICATION metadata block}}
| -
+
| style="background: lime;"  | Plays
| class="mw-collapsible mw-collapsed" |  6.1 and higher multichannel files freeze the player.
+
| 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
Line 214: Line 232:
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 +
| style="background: lime;" | {{tooltip|Plays|version 1.6.8 plays. 1.6.7: Error message: Unable to open item for playback (bad allocation)}}
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
| style="background: lime;"   | Plays
+
| class="mw-collapsible mw-collapsed" | Foobar2000 version 1.6.8 with testbench revision 5
|  
+
 
|-
 
|-
 
! VLC
 
! VLC
Line 223: Line 241:
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
| style="background: orange;" | Fails
+
| style="background: orange;" | {{tooltip|Fails|Unable to play old-style variable blocksize}}
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
Line 232: Line 250:
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
| style="background: red;"    | Crashes
+
| style="background: red;"    | {{tooltip|Crashes|Crashes occasionally on files with extremely large VORBISCOMMENT}}
 
| 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" | VLC 3.0.16 on testbench revision 5
 
|-
 
|-
 
! Winamp 5.8
 
! Winamp 5.8
Line 240: Line 258:
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
| style="background: red;"    | Freezes
+
| style="background: red;"    | {{tooltip|Freezes|Freezes on 12 bit file}}
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
| style="background: red;"    | Freezes
+
| style="background: red;"    | {{tooltip|Freezes|Freezes on 384kHz}}
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
| style="background: red;" colspan="2" | Freezes
+
| style="background: red;" colspan="2" | {{tooltip|Freezes|Freezes on 3.0, 5.0, 6.1 and 7.1 files}}
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| 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" | Winamp 5.8 build 3660, testbench revision 5
 
|-
 
|-
 
! Windows Media Player
 
! Windows Media Player
Line 257: Line 275:
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
| style="background: yellow;" | Rejects
+
| style="background: yellow;" | {{tooltip|Rejects|Rejects 12 bit file}}
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
Line 263: Line 281:
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
| style="background: yellow;" | Rejects
+
| style="background: yellow;" | {{tooltip|Rejects|Rejects 20 bit file}}
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
 
| style="background: lime;"  | Plays
| style="background: yellow;" | Rejects
+
| style="background: yellow;" | {{tooltip|Rejects|Rejects all}}
 +
| style="background: lime;"  | Plays
 +
| class="mw-collapsible mw-collapsed" | Tested version 12.0.19041.1288 on testbench revision 5
 +
|-
 +
! mpv
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: red;"    | {{tooltip|Hangs|Hangs on files with 1000x repeating vorbiscomments}}
 +
| style="background: lime;"  | Plays
 +
| class="mw-collapsible mw-collapsed" | 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;"    | {{tooltip|Crashes|Crashes on 12-bit file}}
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: orange;" | {{tooltip|Silence|Plays silence on 20-bit file}}
 +
| style="background: orange;" | {{tooltip|Breaks|Only plays first 2 seconds of all spoken multichannel files}}
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: red;"    | {{tooltip|Unresp.|GUI becomes unresponsive on (and after) playing files with 1000x repeating vorbiscomments}}
 +
| style="background: lime;"  | Plays
 +
| class="mw-collapsible mw-collapsed" | Version 5.0.1.2433 with testbench revision 5
 +
|-
 +
! Mplayer (Windows)
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| 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|Stuck at beginning of 384 kHz file, but one can skip with arrow button to play last part}}
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: red;"    | {{tooltip|Unresp.|Took over a minute before starting to playing the '55 - file 48-53 combined.flac'}}
 +
| style="background: lime;"  | Plays
 +
| class="mw-collapsible mw-collapsed" | Version Redxii-SVN-r37955-6.2.0 (x86_64) (using ffmpeg N-87137-g6ccd32c367) with testbench revision 5
 +
|-
 +
! ffplay (Windows)
 +
| style="background: orange;"  | {{tooltip|Fails|Wrong speed on blocksize 16}}
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: red;"    | {{tooltip|Unresp.|Took over a minute before starting to playing the '55 - file 48-53 combined.flac'}}
 +
| style="background: lime;"  | Plays
 +
| class="mw-collapsible mw-collapsed" | version 4.4.1-essentials_build-www.gyan.dev with testbench revision 5
 +
|-
 +
! Spotify (Windows)
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: yellow;" | {{tooltip|Skips|Skips 12 bits per sample}}
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: yellow;"  | {{tooltip|Skips|Skips 384 kHz}}
 +
| style="background: yellow;"  | {{tooltip|Skips|Skips 20 bits}}
 +
| style="background: yellow;"  | {{tooltip|Skips (?)|Skips all multi-channel}}
 +
| style="background: yellow;"  | {{tooltip|Skips (?)|Skips all multi-channel}}
 +
| style="background: lime;"  | Plays
 +
| style="background: yellow;"    | {{tooltip|Rejects|Does not index any of the 'extremely large' 48-52 & 55}}
 +
| style="background: lime;"  | Plays
 +
| class="mw-collapsible mw-collapsed" | Spotify for Windows version 1.1.72.439.gc253025e tested a stereo soundcard only (hence the question mark on multichannel), with testbench revision 5
 +
|-
 +
! JRiver Media Center
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | {{tooltip|Plays|lowers volume on 12 bit and 8 bit}}
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: yellow;" | {{tooltip|Rejects|rejects (with error message) extremely large VORBISCOMMENT. Still plays the all-combined 55.}}
 +
| style="background: lime;"  | Plays
 +
| class="mw-collapsible mw-collapsed" | version 28.0.88 64-bit with testbench revision 5
 +
|-
 +
! Amarok (Windows)
 +
| style="background: orange;"  | {{tooltip|Fails|Plays silence on blocksizes 16, 254, 725, 1000, 1937, 2304. (Could be provoked to play a split second of one.)}}
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: red;"  | {{tooltip|Crashes|Crashes on 8 bits. And plays silence on 12 bits}}
 +
| style="background: lime;"  | Plays
 +
| style="background: orange;"  | {{tooltip|Fails|Silence on blocksize 13456}}
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: yellow;"  | {{tooltip|Skips|Skips 384 kHz}}
 +
| style="background: yellow;"  | {{tooltip|Skips|Skips 20 bits}}
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| class="mw-collapsible mw-collapsed" | Amarok version 2.8.0 with testbench revision 5
 +
|-
 +
! Exaile (Windows)
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: yellow;"    | {{tooltip|Rejects|Skips all variable blocksize files, except: stops upon the old format flake 0.11 (but can resume playback on different file)}}
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| class="mw-collapsible mw-collapsed" | version 4.1.1  (GStreamer: 1.18.4) with testbench revision 5
 +
|-
 +
! Quod Libet (Windows)
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: orange;"    | {{tooltip|Fails|Chirp sounds on old-format 0.11.  Other variable blocksize files makes player skip subsequent file(s) in the playlist.}}
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: yellow;"  | {{tooltip|Skips|Skips 384 kHz}}
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| class="mw-collapsible mw-collapsed" | version 4.4.0 (portable version) with testbench revision 5
 +
|-
 +
! Cog
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | {{tooltip|Plays|Versions before 1630 will reject the 12 bit file, because they did not properly handle files with bit depths that aren't a multiple of 8.}}
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | {{tooltip|Plays|Versions before 1630 will reject this 20 bit file, because they did not properly handle files with bit depths that aren't a multiple of 8.}}
 +
| style="background: lime;"  | {{tooltip|Plays|Versions before 1647 will downmix 8 channel files such as test 43 incorrectly, but they will decode properly, and play back properly if the sound output device supports 8 channels directly.}}
 +
| style="background: lime;"  | {{tooltip|Plays|Versions before 1647 will downmix 8 channel files such as this test incorrectly, but they will decode properly, and play back properly if the sound output device supports 8 channels directly.}}
 +
| style="background: lime;"  | Plays
 +
| style="background: lime;"  | Plays
 
| 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" | version 1755 (1755-g92d29e7a) with testbench revision 5
 
|}
 
|}
  

Latest revision as of 07:19, 14 January 2022

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 Plays Skips Plays Plays Plays Plays Fails Fails Skips Plays Plays Plays Android 11 with Google Play updates of 1st of August 2021 on Samsung XCover 5
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 Heavy stutter with blocksize 16. Mangles non-standard samplerates. Doesn't start playing on old variable blocksize format, blocksizes 16384 and 13456, predictor order 32, 384kHz. Skips multichannel and image/avif. Crashes on file with 1000x repeating VORBISCOMMENT
Cowon iAudio 7 Fails Plays Fails Rejects Rejects Rejects Rejects Rejects Rejects Rejects Freezes - - - Freezes on blocksizes 254, 725; skips file with blocksize 1937. 38457Hz and 41kHz are speeded up; 22050 Plays. All files with bitdepth other than 16 are skipped. Files with variable block size are skipped. 3.0 plays as silence, others 16/44 MCH files make freeze.
JVC KD-R871BT Fails Plays Fails Plays Rejects Plays Freezes Reboots Fails Rejects Rejects Rejects Reboots Rejects Heavy stutter with blocksize 16. Stretches non-standard samplerates. Samplerates above 96kHz, variable blocksize files and multichannel files 'not supported'. Freezes on blocksize 16384 and 13456. 192kHz is played back very slow. Skips all multichannel, files with cover image, extreme metadata. Reboot loop on extreme large VORBISCOMMENT
Kenwood KMM-BT304 Fails Plays Rejects Plays Rejects Plays Rejects Rejects Rejects Plays Rejects Rejects Plays Reboots Plays File 03 plays extremely noisily, barely recognizable. File 51 produces a "NO DEVICE" error and a reboot. File 54 produces a reboot with no message. These files produce a "NA FILE" error and the player skips to the next: 19 21 24 25 26 27 29 30 31 34 35 36 38 39 40 41 42 43 44 45 46 48 55. (firmware: te1706k.krm from 2020-03-05)
Onkyo TX-NR686 Fails Plays Rejects Plays Rejects Plays Plays Plays Fails Plays Rejects Plays Reboots Plays Tested with revision 5, firmware version 1071-2000-1070-0011.
Panasonic TX-60CX750E Plays Plays Fails Plays Plays Plays Plays Plays Fails Plays Plays Fails Plays Fails Plays Based on libFLAC 1.2.1, according to copyright notice. Firmware version 3.228, testbench revision 5
Pioneer BDP-150 Freezes Fails Fails Plays Freezes Plays Freezes Fails Fails Plays Freezes Freezes Freezes Plays Firmware v1.08, testbench revision 5
Rockbox Plays Plays Plays Plays Plays Plays Skips Skips Plays Plays Freezes Freezes Fails Plays Tested with Rockbox 3.15 (latest stable) on Sansa Fuze with testbench revision 5
Software players
Foobar 2000 Plays Plays Plays Plays Plays Plays Plays Plays Plays Plays Plays Plays Plays Plays Plays Foobar2000 version 1.6.8 with testbench revision 5
VLC Plays Plays Plays Plays Fails Plays Plays Plays Plays Plays Plays Plays Plays Crashes Plays VLC 3.0.16 on testbench revision 5
Winamp 5.8 Plays Plays Plays Freezes Plays Plays Plays Plays Freezes Plays Freezes Plays Plays Plays Winamp 5.8 build 3660, testbench revision 5
Windows Media Player Plays Plays Plays Rejects Plays Plays Plays Plays Plays Rejects Plays Plays Plays Rejects Plays Tested version 12.0.19041.1288 on testbench revision 5
mpv Plays Plays Plays Plays Plays Plays Plays Plays Plays Plays Plays Plays Plays Hangs Plays mpv-x86_64-20211031-git-4a80de9 on Windows, testbench revision 5
Mediamonkey 5 Plays Plays Plays Crashes Plays Plays Plays Plays Plays Silence Breaks Plays Plays Unresp. Plays Version 5.0.1.2433 with testbench revision 5
Mplayer (Windows) Plays Plays Plays Plays Plays Plays Plays Plays Plays Fails Plays Plays Plays Unresp. Plays Version Redxii-SVN-r37955-6.2.0 (x86_64) (using ffmpeg N-87137-g6ccd32c367) with testbench revision 5
ffplay (Windows) Fails Plays Plays Plays Plays Plays Plays Plays Plays Plays Plays Plays Plays Unresp. Plays version 4.4.1-essentials_build-www.gyan.dev with testbench revision 5
Spotify (Windows) Plays Plays Plays Skips Plays Plays Plays Plays Skips Skips Skips (?) Skips (?) Plays Rejects Plays Spotify for Windows version 1.1.72.439.gc253025e tested a stereo soundcard only (hence the question mark on multichannel), with testbench revision 5
JRiver Media Center Plays Plays Plays Plays Plays Plays Plays Plays Plays Plays Plays Plays Plays Rejects Plays version 28.0.88 64-bit with testbench revision 5
Amarok (Windows) Fails Plays Plays Crashes Plays Fails Plays Plays Skips Skips Plays Plays Plays Plays Plays Amarok version 2.8.0 with testbench revision 5
Exaile (Windows) Plays Plays Plays Plays Rejects Plays Plays Plays Plays Plays Plays Plays Plays Plays Plays version 4.1.1 (GStreamer: 1.18.4) with testbench revision 5
Quod Libet (Windows) Plays Plays Plays Plays Fails Plays Plays Plays Skips Plays Plays Plays Plays Plays Plays version 4.4.0 (portable version) with testbench revision 5
Cog Plays Plays Plays Plays Plays Plays Plays Plays Plays Plays Plays Plays Plays Plays Plays version 1755 (1755-g92d29e7a) with testbench revision 5
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