DiskSample is an audio player module capable of playing multiple files or streams at once. The file formats supported are:
- Audio MPEG, with the help of the AudioMPEG module.
- AC3, with the help of the AC3 module. The source code of that module is based on Liba52 (GPL license) and distributed with the documentation of the modules.
- Flac (Free Audio Lossless Codec).
- Vorbis, with the help of the Vorbis module.
- WAVE files, limited to uncompressed PCM or Audio MPEG
For download of the modules and the documentation, refer to DigitalCD's download section.
Version 0.58, 2023-05-27
- Metadata, parse APETAGEX metadata.
- Metadata, parse some ID3v2 tags (when no unsynchronisation or decompression is required).
- DiskCvrt, save to WAVE file:
- use bits per sample specified (PCM, FLAC) instead of always 16-bit samples.
- add WAVEFORMATEXTENSIBLE if more than 2 channels (cf. channel layout) or if valid bits per sample does not match bits per sample (multiple of 8 bits).
- when possible add available metadata (title, ...) to the WAVE file.
- Stream, enlarge file loading chunk size for very large bit rates (ex: 24-bit at 192KHz with 8 channels) to avoid input buffer starvation (which can still occur if the input buffer itself is too small).
- Stream, fix spurious bitrates and durations while streaming.
- DiskCvrt, don't create output file if file can't be decoded.
- AAC, fix multi-channel mapping when saving as WAV file.
- AAC, synchronized with latest libfaad2.
- AAC, fix some confusing error reporting from libfaad2.
- AAC, add some extra channel configurations.
- AAC, libfaad2 has a faulty fixed point drc_decode() implementation.
- AAC, add/move a few huffman table offset checks in libfaad2.
- AAC, libfaad2 incorrectly assumes fill element (with sbr) imediatedly follows SCE/CPE element. Split SCE/CPE element decoding and reconstruction, remove special handling of fill element from the decoding and delay reconstruction till new element/end of frame. Now can play Fronhaufer's test file '7.1auditionOutLeader_v2_rtb.mp4'.
- FLAC, corrected 5.0, 5.1 WAVE mappings.
- FLAC, added 6.1 and 7.1 support.
- FLAC, fix incorrect position reported (occurs on loop on track, small total size and 4MB output buffers).
- FLAC, fix decoder sometimes doing nothing after a position change.
- FLAC, fix looping/seeking issues in the absence of seek table.
- FLAC, skip too large seek table instead of reporting the memory alloaction error.
- FLAC, fix failing to parse vorbis comments when large info like cue sheet is present.
- FLAC, provide minimal output buffer size to ensure that we can play file if the output buffer configuration is too small.
- FLAC, change bit reading function limit from 24-bit to 32-bit to cope with large residues on some of the conformance test files.
- WAVE, was skipping metadata with a single character (like a track number).
- WAVE, now read metadata located at the end of the file.
Version 0.57, 2022-09-17
- Codecs, support AAC-LC + SBR + PS in MP4 files or encapsulated in ADTS frames (.aac files, radio streaming).
- Http, preparatory work for IPv6 (untested and disabled till Resolver situation is clarified).
- Http, relinked with socklib5 instead of socklib.
Version 0.56, 2021-09-10
- Stream, extended StreamDecoding, 10 to timestamp input.
- Stream, force StreamParam R2 to 0 for numeric param even if returning an error (for the sake of callers not checking errors).
- DiscCvrt, if source filetype is data, use filename extension to try to determine codec to use.
- Http, downloading to a file (as used by DigialCD for the yellow pages) didn't stop once all the data was doanloaded.
- Vorbis, fix divide by 0 when trying to play an OggFlac.
- Vorbis, fix unaligned STRs when playing non-stereo files.
Version 0.55, 2018-08-16
- Plays RAW CD files (filetype 0CD).
- HTTP headers should be treated as case insensitive.
Version 0.54, 2017-06-05
- Call sub-modules processes directly instead of waiting for callbacks so that their CPU usage is taken into account.
- Faster skipping of unused metadata.
- Fixed rare case of stream signaling its completion while it is 'buffering'.
- Fixed incorrect position info sometimes returned at the very start of a stream.
Version 0.53, 2016-06-10
- Http, dereferences null pointer when URL contains no path.
- Http, end of fixed size streams was not detected anymore.
Version 0.52, 2016-05-08
- SWI Configure code 7, add 1<<31 to band number to read current params.
- New SWI Configure code 14 to select parallel or serial equalizer filters working mode.
- HTTP redirection was broken.
Version 0.51, 2014-08-12
- Config, Maximal input buffer size increase from 1MB to 2MB.
- SWIs, Added SWI StreamChain.
- Codecs, PCM, forgot to clear the output buffer after changing position in file.
Version 0.50, 2012-09-27
- FLAC, error while decoding RICE2 partitions.
Version 0.49, 2012-09-01
- WAV codec modified to cope with files where 'fmt ' chunk is not the first one in the file.
Version 0.48, 2012-03-05
- WAV PCM, recompiled for ARMv7 compatibility.
Version 0.47, 2011-09-27
- New code to SWI StreamParams returning album date.
- FLAC, error in applying LPC of order 1 (assembler version)
Version 0.46, 2010-04-20
- Plays WAV PCM with > 2 channels.
- Plays Ogg Vorbis with > 2 channels.
- WAV PCM, fix incorrect loop point.
- WAV PCM, keep account of WAVEEXTENSIBLE format.
Version 0.45, 2010-01-26
- MP3 without MPEG sync code would remain indefinitely as 'not ready'.
- Was attempting file reads from callback while still opening file.
- Ignore errors in file reads from callback to cope with some network FS.
Version 0.44, 2009-12-03
- Recompiled for ARMv7 compatibility.
- Altering position in a FLAC would store a temporary incorrect position value.
Version 0.43, 2009-02-21
- Mix With multiple streams, when end up restoring ourselves as previous handler in 8-bit mode, causing a background crash.
- Extract track number from ID3v1 tag
Version 0.42, 2008-05-25
- Bug in FLAC sync detection made 24-bit FLACs unplayable.
Version 0.41, 2008-01-26
- Decode files of type &A8F as AC3.
Version 0.40, 2008-01-12
- Support for FLAC and WAVE (PCM only).
- Fixes for Vorbis replay of files containg a succession of small independant streams
- Fixes in positionning to keep metadata into account.
Version 0.39, 2007-03-11
- Additional output info flag for KinoAMP.
- Better volume scaling.
- Return correct error code when WAVE sub-format is not supported.