BASSWMA 2.4
Copyright (c) 2002-2021 Un4seen Developments Ltd. All rights reserved.
Files that you should have found in the BASSWMA package
=======================================================
BASSWMA.TXT This file
BASSWMA.DLL BASSWMA module
BASSWMA.CHM BASSWMA documentation
X64\
BASSWMA.DLL 64-bit BASSWMA module
C\ C/C++ API and examples...
BASSWMA.H BASSWMA C/C++ header file
BASSWMA.LIB BASSWMA import library
BASSWMA.SLN Visual Studio solution for examples
MAKEFILE Makefile for examples
MAKEFILE.IN Makefile helper macros
X64\
BASSWMA.LIB 64-bit BASSWMA import library
NETRADIO\ Internet streaming example
...
...
WMALIVE\ WMA live broadcast example
...
BIN\ Precompiled examples
NETRADIO.EXE
WMALIVE.EXE
VB\ Visual Basic API and examples...
BASSWMA.BAS BASSWMA Visual Basic module
WMALIVE\ WMA live broadcast example
...
DELPHI\ Delphi API and examples...
BASSWMA.PAS BASSWMA Delphi unit
WMALIVE\ WMA live broadcast example
...
NOTE: To run the example EXEs, first you will have to copy BASSWMA.DLL and
BASS.DLL into the same directory as them.
NOTE: To build the examples, you will need to copy the BASS API into the
same directory as the BASSWMA API.
What's the point?
=================
BASSWMA is an extension to the BASS audio library, enabling the playback of WMA
encoded files and streams. The audio tracks of WMV files can also be played.
WMA file encoding and network broadcasting functions are also provided.
NOTE: The WMA format is supported as standard by BASS on Windows Vista and
above, so BASSWMA is not required for WMA playback there.
Requirements
============
BASS 2.4 is required. The Windows Media Format modules (v9 or above) are also
required to be installed on the user's system. They are installed with Windows
Media player, so will already be on most users' systems, but they can also be
installed separately (WMFDIST.EXE is available from the BASS website).
Using BASSWMA
=============
The plugin system (see BASS_PluginLoad) can be used to add WMA support to
the standard BASS stream (and sample) creation functions. Dedicated WMA
stream creation functions are also provided by BASSWMA.
The usage information in the BASS.TXT file (from the BASS package) is also
applicable to BASSWMA and other add-ons.
TIP: The BASSWMA.CHM file should be put in the same directory as the BASS.CHM
file, so that the BASSWMA documentation can be accessed from within the
BASS documentation.
DRM
===
DRM support is available for commercial users that have a DRM stub library
from Microsoft. Get in touch for details (email: bass@un4seen.com).
Latest Version
==============
The latest versions of BASSWMA & BASS can be found at the BASS website:
www.un4seen.com
Licence
=======
BASSWMA is free to use with BASS.
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, BASSWMA 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 BASSWMA. YOU USE
BASSWMA ENTIRELY AT YOUR OWN RISK.
Usage of BASSWMA indicates that you agree to the above conditions.
All trademarks and other registered names contained in the BASSWMA
package are the property of their respective owners.
History
=======
These are the major (and not so major) changes at each version stage.
There are of course bug fixes and other little improvements made along
the way too! To make upgrading simpler, all functions affected by a
change to the BASSWMA interface are listed.
2.4.5.13 - 3/8/2021
-------------------
* Encoding with WMA voice codec
BASS_WMA_ENCODE_VOICE (BASS_WMA_EncodeOpen/File/Network/Publish flags)
BASS_WMA_ENCODE_VOICE_MIXED (BASS_WMA_EncodeOpen/File/Network/Publish flags)
* Prebuffering determined by BASS_CONFIG_NET_PREBUF_WAIT config option
BASS_CONFIG_WMA_PREBUF *removed*
* Fix to prevent non-WMA URLs being checked twice via plugin system
BASS_StreamCreateURL
2.4.5.1 - 4/4/2016
------------------
* Support for average bitrate retrieval
BASS_ATTRIB_BITRATE
2.4.5 - 20/10/2014
------------------
* Multi-channel encoding
BASS_WMA_EncodeOpen/File/Network/Publish
* BASS channel encoding
BASS_WMA_ENCODE_SOURCE (BASS_WMA_EncodeOpen/File/Network/Publish flag)
BASS_WMA_EncodeGetRates
* Asynchronous encoding
BASS_WMA_ENCODE_QUEUE (BASS_WMA_EncodeOpen/File flag)
2.4.4 - 17/9/2010
-----------------
* Codec information retrieval
BASS_TAG_WMA_CODEC (BASS_ChannelGetTags/BASS_WMA_GetTags type)
* PCM "encoding" support
BASS_WMA_ENCODE_PCM (BASS_WMA_EncodeOpen/File/Network/Publish flag)
* Support for Unicode URLs via plugin system
BASS_StreamCreateURL
2.4.3 - 30/10/2009
------------------
* Tag retrieval without a stream
BASS_WMA_GetTags
* WPL playlist processing
BASS_CONFIG_NET_PLAYLIST (BASS_SetConfig option)
* Detection of a publishing point initialization problem
BASS_WMA_EncodeOpenPublish/Multi
2.4.2 - 11/5/2009
-----------------
* DOWNLOADPROC support for streams in ASX files (requires BASS 2.4.3)
BASS_StreamCreateURL
* WMV audio playback is now optional
BASS_CONFIG_WMA_VIDEO (BASS_SetConfig option)
* NETRADIO example added
2.4 - 2/4/2008
--------------
* Support for buffered user file streaming
BASS_WMA_StreamCreateFileUser
* 64-bit file positioning
BASS_WMA_StreamCreateFile/Auth
* Separate sync for WMA mid-stream tags (instead of BASS_SYNC_META)
BASS_SYNC_WMA_META (BASS_ChannelSetSync type)
* Mid-stream tag retrieval
BASS_TAG_WMA_META (BASS_ChannelGetTag type)
* Tag name/value delimiter changed to '='
BASS_TAG_WMA (BASS_ChannelGetTags type)
BASS_TAG_WMA_META (BASS_ChannelGetTags type)
* ASX processing determined by BASS_CONFIG_NET_PLAYLIST config option
BASS_CONFIG_WMA_ASX *removed*
* Prebuffering is disabled by default
BASS_CONFIG_WMA_PREBUF (BASS_SetConfig option)
* Callback "user" parameters changed to pointers
BASS_WMA_StreamCreateFileUser
BASS_WMA_EncodeOpen / WMENCODEPROC
BASS_WMA_EncodeSetNotify / CLIENTCONNECTPROC
2.3.0.3 - 30/7/2007
-------------------
* Support for internet stream connection status retrieval
BASS_FILEPOS_CONNECTED (BASS_StreamGetFilePosition mode)
2.3.0.2 - 16/11/2006
--------------------
* WMA standard/Pro encoding specification
BASS_WMA_ENCODE_STANDARD/PRO (BASS_WMA_EncodeOpen/File/Network/Publish flags)
* 24-bit encoding
BASS_WMA_ENCODE_24BIT (BASS_WMA_EncodeOpen/File/Network/Publish flag)
* BASS file handling
BASS_CONFIG_WMA_BASSFILE (BASS_SetConfig option)
2.3.0.1 - 12/6/2006
-------------------
* ASX file processing
BASS_CONFIG_WMA_ASX (BASS_SetConfig option)
2.3 - 21/5/2006
---------------
* Plugin system support for URLs
BASS_StreamCreateURL
* Encoding support for 8-bit and 32-bit floating-point data
BASS_WMA_EncodeOpen/File/Network/Publish
* Multi-bitrate encoding/broadcasting
BASS_WMA_EncodeOpenNetworkMulti
BASS_WMA_EncodeOpenPublishMulti
* Tag setting in ANSI and Unicode (as well as UTF-8)
BASS_WMA_EncodeSetTag
* Header tag setting automatically ends when encoding begins
BASS_WMA_EncodeSetTag
BASS_WMA_ENCODE_TAGS (BASS_WMA_EncodeOpen/etc flag) *removed*
* Retrieval of encoder IWMWriter interface
BASS_WMA_GetWMObject (replaces BASS_WMA_GetIWMReader)
* Dynamic loading of WMVCORE (v9 or above required)
* CONTEST C example removed (didn't really add anything)
* Reduced DLL size
2.2 - 2/10/2005
---------------
* Support for new plugin system (BASS_PluginLoad)
* WMA tag type defined
BASS_TAG_WMA (BASS_StreamGetTags type)
* File verification option
BASS_CONFIG_WMA_PRECHECK (BASS_SetConfig option)
* Internet stream prebuffering delay option
BASS_CONFIG_WMA_PREBUF (BASS_SetConfig option)
* Internet stream buffering retrieval
BASS_FILEPOS_WMA_BUFFER (BASS_StreamGetFilePosition mode)
* Internet stream authentication
BASS_StreamCreateFileAuth
* The data is no longer copied when streaming from memory
BASS_WMA_StreamCreateFile
* Unicode support in publishing encoder
BASS_UNICODE (BASS_WMA_EncodeOpenPublish flag)
* Support for BASS_CONFIG_NET_TIMEOUT config option
2.1 - 28/11/2004
----------------
* Multi-channel encoding
BASS_WMA_EncodeOpen/File/Network/Publish
BASS_WMA_EncodeGetRates
* Tags are now in UTF-8 form
BASS_StreamGetTags
BASS_WMA_EncodeSetTags
* User file stream support
BASS_WMA_StreamCreateFileUser
* Support for server-side playlists
BASS_SYNC_WMA_CHANGE (BASS_ChannelSetSync type)
* More efficient WMA file processing with WM9 (and above) modules installed
* Support for the improved "mixtime" sync system (allows custom looping)
* C/C++ examples reorganised, with makefiles & VC++ projects
2.0 - 31/10/2003
----------------
* Support for multi-channel WMA
BASS_WMA_StreamCreateFile
* Syncing integrated into BASS.DLL
BASS_WMA_ChannelSetSync *removed*
* Encoding to a custom callback function
BASS_WMA_EncodeOpen
WMENCODEPROC
* Encoding to a publishing point on a Windows Media server
BASS_WMA_EncodeOpenPublish
* Synchronizer for completed download
BASS_SYNC_DOWNLOAD (BASS_ChannelSetSync type)
* Force channels to use software mixing
BASS_SAMPLE_SOFTWARE (BASS_WMA_StreamCreateFile flag)
* Support for Unicode filenames
BASS_UNICODE (BASS_WMA_StreamCreateFile/BASS_WMA_EncodeOpenFile flag)
1.8 - 9/3/2003
--------------
* More integrated with BASS.DLL
BASS_WMA_ErrorGetCode *removed* (use BASS_ErrorGetCode)
BASS_WMA_StreamFree *removed* (use BASS_StreamFree)
BASS_WMA_StreamPlay *removed* (use BASS_StreamPlay)
BASS_WMA_StreamGetLength *removed* (use BASS_StreamGetLength)
BASS_WMA_StreamGetTags *removed* (use BASS_StreamGetTags)
BASS_WMA_ChannelGetPosition *removed* (use BASS_ChannelGetPosition)
BASS_WMA_ChannelSetPosition *removed* (use BASS_ChannelSetPosition)
BASS_WMA_ChannelRemoveSync *removed* (use BASS_ChannelRemoveSync)
* 32-bit floating-point channels
BASS_SAMPLE_FLOAT (BASS_WMA_StreamCreateFile flag)
DSPTEST example updated
* Speaker assignment
BASS_SPEAKER_FRONT (BASS_WMA_StreamCreateFile flag)
BASS_SPEAKER_REAR "
BASS_SPEAKER_CENLFE "
BASS_SPEAKER_REAR2 "
BASS_SPEAKER_FRONTLEFT "
BASS_SPEAKER_FRONTRIGHT "
BASS_SPEAKER_REARLEFT "
BASS_SPEAKER_REARRIGHT "
BASS_SPEAKER_CENTER "
BASS_SPEAKER_LFE "
BASS_SPEAKER_REAR2LEFT "
BASS_SPEAKER_REAR2RIGHT "
* VBR and lossless encoding
BASS_WMA_ENCODE_RATES_VBR (BASS_WMA_EncodeGetRates flag)
BASS_WMA_EncodeOpenFile/Network
* Script (mid-stream tags) encoding
BASS_WMA_ENCODE_SCRIPT (BASS_WMA_EncodeOpenNetwork flag)
* File length and download progress retrieval support
BASS_StreamGetFilePosition
* Support for normal stopping & resuming at same place
BASS_ChannelStop
* Normal stalling (automatic stop/resume)
BASS_ACTIVE_STALLED (BASS_ChannelIsActive flag)
* Support for Windows message sync callbacks
BASS_SYNC_MESSAGE (BASS_WMA_ChannelSetSync flag)
* VB version of DSPTEST example added
* Improved documentation - integrated with BASS, search option added
1.7 - 27/10/2002
----------------
* Exact length available once whole file has been played
BASS_WMA_StreamGetLength
* Client connection notification
BASS_WMA_EncodeSetNotify
CLIENTCONNECTPROC
WMALIVE example updated
* Multi-instance support
MULTI example added
1.6 - 13/6/2002
---------------
* Connected clients count retrieval
BASS_WMA_EncodeGetClients
* 64-bit lengths and positions
BASS_WMA_StreamGetLength
BASS_WMA_ChannelGetPosition
BASS_WMA_ChannelSetPosition
BASS_WMA_ChannelSetSync
* Streaming via IStream objects
BASS_WMA_StreamCreateFile
* Auto-freeing WMA streams
BASS_STREAM_AUTOFREE (BASS_WMA_StreamCreateFile flag)
* Normal playback resuming after seeking while paused
BASS_ChannelResume
* WMA stream freeing integrated into BASS.DLL
BASS_StreamFree
BASS_Free
1.5a - 8/5/2002
---------------
* Encoding
BASS_WMA_EncodeGetRates
BASS_WMA_EncodeOpenFile
BASS_WMA_EncodeOpenNetwork
BASS_WMA_EncodeGetPort
BASS_WMA_EncodeSetTag
BASS_WMA_EncodeWrite
BASS_WMA_EncodeClose
BASS_WMA_ENCODE_TAGS (BASS_WMA_EncodeOpenFile/Network flag)
* Loading from a memory location
BASS_WMA_StreamCreateFile
* Faster file verification
BASS_WMA_StreamCreateFile
* Protected file error code
BASS_ERROR_WMA_LICENSE (BASS_WMA_StreamCreateFile error code)
1.5 - 16/4/2002
---------------
* First release
Bug reports, Suggestions, Comments, Enquiries, etc
==================================================
If you have any of the aforementioned please visit the BASS forum at the
website.