BASSWMA 2.4
Copyright (c) 2002-2010 Un4seen Developments Ltd. All rights reserved.
Files that you should have found in the BASSWMA package
=======================================================
BASSWMA.TXT This file
BASSWMA.DLL The BASSWMA module
BASSWMA.CHM BASSWMA documentation
C\ C/C++ API and examples...
BASSWMA.H BASSWMA C/C++ header file
BASSWMA.LIB BASSWMA import library
BASSWMA.DSW Visual C++ workspace for examples
MAKEFILE Makefile for all examples
NETRADIO\ Internet streaming example
NETRADIO.C
NETRADIO.RC
NETRADIO.DSP
MAKEFILE
WMALIVE\ WMA live broadcast example
WMALIVE.C
WMALIVE.RC
WMALIVE.DSP
MAKEFILE
BIN\ Precompiled examples
NETRADIO.EXE
WMALIVE.EXE
VB\ Visual Basic API and examples...
BASSWMA.BAS BASSWMA Visual Basic module
WMALIVE\ WMA live broadcast example
PRJWMALIVE.VBP
FRMWMALIVE.FRM
MODWMALIVE.BAS
DELPHI\ Delphi API and examples...
BASSWMA.PAS BASSWMA Delphi unit
WMALIVE\ WMA live broadcast example
WMALIVE.DPR
UNIT1.PAS
UNIT1.DFM
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 files and network streams. The audio tracks of WMV files can also
be played. WMA file encoding and network broadcasting functions are also
provided.
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.
To use BASSWMA with Borland C++ Builder, you'll first have to create a
Borland C++ Builder import library for it. This is done by using the
IMPLIB tool that comes with Borland C++ Builder. Simply execute this:
IMPLIB BASSWMABCB.LIB BASSWMA.DLL
... and then use BASSWMABCB.LIB in your projects to import BASSWMA.
To use BASSWMA with LCC-Win32, you'll first have to create a compatible
import library for it. This is done by using the PEDUMP and BUILDLIB
tools that come with LCC-Win32. Run these 2 commands:
PEDUMP /EXP BASSWMA.LIB > BASSWMALCC.EXP
BUILDLIB BASSWMALCC.EXP BASSWMALCC.LIB
... and then use BASSWMALCC.LIB in your projects to import BASSWMA.
For the BASS functions that return strings (char*), VB users should use
the VBStrFromAnsiPtr function to convert the returned pointer into a VB
string.
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.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.