BASSFLAC 2.4
Copyright (c) 2004-2026 Un4seen Developments Ltd. All rights reserved.
BASSFLAC is an extension to the BASS audio library, enabling the playing of
FLAC (Free Lossless Audio Codec) encoded files and streams.
Requirements
============
BASS 2.4 is required.
Using BASSFLAC
==============
The plugin system (see BASS_PluginLoad) can be used to add FLAC support to the
standard BASS stream (and sample) creation functions. Dedicated FLAC stream
creation functions are also provided by BASSFLAC.
The usage information in the BASS.TXT file (from the BASS package) is also
applicable to BASSFLAC and other add-ons.
TIP: The BASSFLAC.CHM file should be put in the same directory as the BASS.CHM
file, so that the BASSFLAC documentation can be accessed from within the
BASS documentation.
Included files
==============
Win32 version
-------------
BASSFLAC.TXT This file
BASSFLAC.DLL 32-bit BASSFLAC module
BASSFLAC.CHM BASSFLAC documentation
X64\
BASSFLAC.DLL 64-bit BASSFLAC module
C\
BASSFLAC.H BASSFLAC C/C++ header file
BASSFLAC.LIB 32-bit BASSFLAC import library
X64\
BASSFLAC.LIB 64-bit BASSFLAC import library
DELPHI\
BASSFLAC.PAS BASSFLAC Delphi/Pascal unit
VB\
BASSFLAC.BAS BASSFLAC Visual Basic module
MacOS version
-------------
BASSFLAC.TXT This file
LIBBASSFLAC.DYLIB BASSFLAC module
BASSFLAC.CHM BASSFLAC documentation
C\
BASSFLAC.H BASSFLAC C/C++/Objective-C header file
DELPHI\
BASSFLAC.PAS BASSFLAC Delphi/Pascal unit
Linux version
-------------
BASSFLAC.TXT This file
BASSFLAC.CHM BASSFLAC documentation
LIBS\ BASSFLAC modules
...
C\
BASSFLAC.H BASSFLAC C/C++ header file
DELPHI\
BASSFLAC.PAS BASSFLAC Delphi/Pascal unit
Android version
---------------
BASSFLAC.TXT This file
BASSFLAC.CHM BASSFLAC documentation
LIBS\ BASSFLAC modules
...
C\ C/C++ API...
BASSFLAC.H BASSFLAC C/C++ header file
JAVA\COM\UN4SEEN\BASS\
BASSFLAC.JAVA BASSFLAC Java class
iOS version
-----------
BASSFLAC.TXT This file
BASSFLAC.XCFRAMEWORK BASSFLAC framework
BASSFLAC.CHM BASSFLAC documentation
BASSFLAC.H BASSFLAC C/C++/Objective-C header file
Latest Version
==============
The latest versions of BASSFLAC & BASS can be found at the BASS website:
www.un4seen.com
Licence
=======
BASSFLAC is free to use with BASS.
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, BASSFLAC IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND/OR FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS SHALL NOT BE HELD
LIABLE FOR ANY DAMAGE THAT MAY RESULT FROM THE USE OF BASSFLAC. YOU USE
BASSFLAC ENTIRELY AT YOUR OWN RISK.
Usage of BASSFLAC indicates that you agree to the above conditions.
All trademarks and other registered names contained in the BASSFLAC
package are the property of their respective owners.
Credits
=======
FLAC decoding is based on libFLAC, Copyright (c) 2000-2009 Josh Coalson,
Copyright (C) 2011-2025 Xiph.Org Foundation
History
=======
These are the major (and not so major) changes in each release, along with the
functions/options that are introduced/affected by them. There are other little
tweaks and fixes made along the way too.
2.4.6 - 2/3/2026
----------------
* Full length retrieval and seeking in chained Ogg FLAC files
BASS_ChannelGetLength
BASS_ChannelSetPosition
* Fixed length retrieval and seeking in internet stream rips
BASS_ChannelGetLength
BASS_ChannelSetPosition
* Files without a length header value are scanned to get the length
BASS_ChannelGetLength
* Bitstream seeking and count retrieval in chained Ogg FLAC files
BASS_POS_OGG (BASS_ChannelSetPosition/ChannelGetLength mode)
* Optional chained Ogg FLAC file pre-scanning
BASS_STREAM_PRESCAN (BASS_FLAC_StreamCreateFile/User flag)
BASS_CONFIG_OGG_PRESCAN (BASS_SetConfig option)
* Support for resetting of user file streams/decoders
BASS_POS_RESET (BASS_ChannelSetPosition flag)
* Each stream has a dedicated reading/decoding thread
* Updated to libFLAC 1.5.0
2.4.5.5 - 3/5/2024
------------------
* Fix for possible stalling with asynchronous file reading
BASS_ASYNCFILE (BASS_FLAC_StreamCreateFile/User flag)
2.4.5.4 - 12/10/2023
--------------------
* Updated to libFLAC 1.4.3
2.4.5.2 - 9/2/2023
------------------
* Updated to libFLAC 1.4.2
* Fix for possible delay/freeze when opening Opus streams
BASS_StreamCreateURL
2.4.5 - 19/10/2022
------------------
* Support for 32-bit encoding
BASS_FLAC_StreamCreateFile/User/URL
* Updated to libFLAC 1.4.1
2.4.4.7 - 24/2/2022
-------------------
* Updated to libFLAC 1.3.4
2.4.4.5 - 4/12/2020
-------------------
* Updated to libFLAC 1.3.3
2.4.4 - 28/10/2017
------------------
* Support for chained Ogg FLAC streams
BASS_FLAC_StreamCreateFile/User/URL
2.4.3 - 24/1/2017
-----------------
* Support for application metadata
BASS_TAG_FLAC_METADATA (BASS_ChannelGetTags type)
TAG_FLAC_METADATA structure
* Updated to libFLAC 1.3.2
2.4.2 - 28/11/2014
------------------
* Updated to libFLAC 1.3.1
2.4.1.4 - 1/8/2014
------------------
* Ogg FLAC support fix on 64-bit OSX
2.4.1 - 8/12/2009
-----------------
* Support for embedded images
BASS_TAG_FLAC_PICTURE (BASS_ChannelGetTags type)
TAG_FLAC_PICTURE structure
* Support for embedded cuesheets
BASS_TAG_FLAC_CUE (BASS_ChannelGetTags type)
TAG_FLAC_CUE/_TRACK/_INDEX structures
2.4 - 2/4/2008
--------------
* Support for updated user file stream system
BASS_FLAC_StreamCreateFileUser
* 64-bit file positioning
BASS_FLAC_StreamCreateFile
* Callback "user" parameters changed to pointers
BASS_FLAC_StreamCreateURL/FileUser
* Updated to libFLAC 1.2.1
2.3.0.4 - 30/7/2007
------------------
* Updated to libFLAC 1.2.0
2.3.0.3 - 4/3/2007
------------------
* Updated to libFLAC 1.1.4
2.3.0.1 - 10/7/2006
-------------------
* Ogg FLAC support
BASS_CTYPE_STREAM_FLAC_OGG (channel type)
2.3 - 21/5/2006
---------------
* No API changes
2.2 - 2/10/2005
---------------
* Support for new plugin system (BASS_PluginLoad)
* Support for internet streaming
BASS_FLAC_StreamCreateURL
BASS_StreamCreateURL (via plugin system)
* Support for buffered user file streaming
BASS_FLAC_StreamCreateFileUser
BASS_StreamCreateFileUser (via plugin system)
* Without the FLOAT flag, files above 16-bit will be decoded in 16-bit
BASS_FLAC_StreamCreateFile/User/URL
BASS_StreamCreateFile/User/URL (via plugin system)
* Vendor/encoder retrieval
BASS_TAG_VENDOR (BASS_StreamGetTags type)
* MacOSX port introduced
2.1 - 28/11/2004
----------------
* User file stream support
BASS_FLAC_StreamCreateFileUser
* Support for the improved "mixtime" sync system (allows custom looping)
2.0 - 2/10/2004
---------------
* First release
Bug reports, Suggestions, Comments, Enquiries, etc
==================================================
If you have any of the aforementioned, please visit the BASS forum at the
website.