DigitalCD
*
Player
*
Modules
 
Skins
 
Plug-Ins
 Sound
 
Soundtracks
 
Utilities
 
Animations
 Image/Video
 
KinoAMP
 
NoPaint
 
Games
 
MissingModes
*
2024-03-24
#
2024-01-31
+
2023-12-22
 DigitalCD Related Modules
Introduction TimPlayer AudioMPEG # DiskSample DCDUtils

DiskSample 32-bit 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.
  • AAC, (ADTS or MP4).
  • 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.
  • ALAC (Apple Lossless Audio Codec).
  • Monkey's Audio (.ape files).
  • 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.62, 2024-01-31

Changes:

  • Https, support of https via AcornSSL. Some notes:
    AcornSSL hangs the desktop while negociating.
    AcornSSL hangs forever in case of sockets exhaustion.
    Works on ROD stack.
    On standard RISCOS 5 stack, for some domains, connections tends to fail to close which can lead to sockets exhaustion.
  • Http, support for IPv6 (tested with ROD stack).
  • DiscCvrt, allows decoding of http/https streams (press Escape to stop).
  • APE, add support for 32-bit and 32-float files.
  • WAVE, add support for 32-float files and Wave64 formats.

Version 0.61, 2023-12-22

Bugs Fixes:

  • SWIs, fix newly introduced StreamDecoding,12 to not read stream duration (to determine last section end) when stream is not ready yet.

Version 0.60, 2023-12-21

Changes:

  • Codecs, add support for Apple Lossless Audio Codec (ALAC).
  • Codecs, Add support for Monkey's Audio (.ape file).
    Old files from versions below 3.93 are not supported.
    Could only test with 16-bit stereo files from version 3.97 to 3.99.
    Compression level 'Insane' is playable on the Pi4.
    Compression level 'Extra High' is playable on the Pi3.
    Compression level 'Normal' may possibly be playable on a StrongARM machine.
  • Metadata, pParse cue files (extensions /cue /ascii/cue /utf8/cue) matching played filename (stripped or not of extension). These cue files are often present with CDs ripped as a single file and provides metadata/timing for each track in the file.
  • SWIs, add codes to StreamDecoding to obtain start/end positions of sections/subtracks within a file.
  • SWIs, add option to StreamParam to obtain info on section instead of stream.

Bugs Fixes:

  • Stream, fix issue with MP4 files (AAC and now ALAC) where the very beginning is played twice.
  • AAC, silence non-transmitted channels as the frame can contain less channels than configured. For example, Fronheufer's test file 'SBR_LFETest5_1.mp4' has a few frames with 5 decoded channels instead of 6.
  • AAC, modified libfaad2 to ensure frameLength is set even if frame is corrupted. This allows to silence it instead of skipping it ensuring better synchro in videos.
  • FLAC, allow for non standard bit depths like 15-bits.
  • DiscCvrt, fix crash while filling latge circular output buffers.

Version 0.58, 2023-05-27

Changes:

  • 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.

Bugs Fixes:

  • 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

Changes:

  • 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).

Bugs Fixes:

  • Http, relinked with socklib5 instead of socklib.

Version 0.56, 2021-09-10

Changes:

  • 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.

Bugs Fixes:

  • 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

Changes:

  • Plays RAW CD files (filetype 0CD).

Bugs Fixes:

  • HTTP headers should be treated as case insensitive.

Version 0.54, 2017-06-05

Changes:

  • Call sub-modules processes directly instead of waiting for callbacks so that their CPU usage is taken into account.
  • Faster skipping of unused metadata.

Bugs Fixes:

  • 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

Bugs Fixes:

  • 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

Changes:

  • 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.

Bugs Fixes:

  • HTTP redirection was broken.

Version 0.51, 2014-08-12

Changes:

  • Config, Maximal input buffer size increase from 1MB to 2MB.
  • SWIs, Added SWI StreamChain.

Bugs Fixes:

  • Codecs, PCM, forgot to clear the output buffer after changing position in file.

Version 0.50, 2012-09-27

Bugs Fixes:

  • FLAC, error while decoding RICE2 partitions.

Version 0.49, 2012-09-01

Bugs Fixes:

  • WAV codec modified to cope with files where 'fmt ' chunk is not the first one in the file.

Version 0.48, 2012-03-05

Bugs Fixes:

  • WAV PCM, recompiled for ARMv7 compatibility.

Version 0.47, 2011-09-27

Changes:

  • New code to SWI StreamParams returning album date.

Bugs Fixes:

  • FLAC, error in applying LPC of order 1 (assembler version)

Version 0.46, 2010-04-20

Changes:

  • Plays WAV PCM with > 2 channels.
  • Plays Ogg Vorbis with > 2 channels.

Bugs Fixes:

  • WAV PCM, fix incorrect loop point.
  • WAV PCM, keep account of WAVEEXTENSIBLE format.

Version 0.45, 2010-01-26

Bug Fixes:

  • 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

Changes:

  • Recompiled for ARMv7 compatibility.

Bugs Fixes:

  • Altering position in a FLAC would store a temporary incorrect position value.

Version 0.43, 2009-02-21

Changes:

  • 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

Changes:

  • Bug in FLAC sync detection made 24-bit FLACs unplayable.

Version 0.41, 2008-01-26

Changes:

  • Decode files of type &A8F as AC3.

Version 0.40, 2008-01-12

Changes:

  • 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

Changes:

  • Additional output info flag for KinoAMP.
  • Better volume scaling.
  • Return correct error code when WAVE sub-format is not supported.
Page updated the 2024-01-31.