/* * CHANGELOG. */ 04202008 - Upped version to 1.0.3 (brown paper bag release for soname bug). 04192008 - Apparently MICRO_VERSION in configure.in doesn't do what I think; reset for binary compatibility (thanks, Hans!). 04182008 - Include in shn.c. 04172008 - Look for Speex includes in new directory. Converted all text encoding from ISO-8859-1 to UTF-8. Fixed "make dist" script for dealing with Subversion instead of CVS. Added Speex to the README. Upped version to 1.0.2. 04112008 - Check if Speex header has bogus data (CVE-2008-1686). 08062007 - Updated my email address. 07152007 - Minor correction in Timidity resampling code (Thanks, Sam!). 07062007 - Fixed uninitialized buffer in mpglib. (Thanks, Phil!). 10292006 - Fixed bogus memory dereference when SMPEG fails init (thanks, Chris!) 10272006 - FLAC 1.1.3 breaks their API _again_, so we try to do the right thing at build time. (Thanks, Josh!). 05122006 - Patched to get mpglib compiling again (thanks, Sam!). 12172005 - Fixed gcc4 whining in playsound_simple.c. 12062005 - Trimmed a bunch of junk out of the build system, and now it works on Mac OS X again. 10122005 - Check for libmodplug headers in two possible places (thanks, Tyler!) 10012005 - Added playsound_simple.c. 05302005 - Backport from devtree: Fixed automake nonsense. 11122004 - Backport from devtree: fix .voc decoder crash on file open. 05082004 - Fixed "bootstrap" to work with MacOSX. 05072004 - Backed out some commits, converted repository to Subversion, and branched off to a 1.1.0 development tree. Changed MikMod URL...old one is now a porn site. :( 10252003 - VOC decoder was broken. Now it isn't. 10142003 - Build system fix: acinclude.m4 had some word wrapping badness. 10122003 - Fixed "make dist" behaviour to not packaged generated docs, and made sure other files are always packaged, regardless of config. Upped version to 1.0.1. 10102003 - Changed some SDL_Error()s to __Sound_SetError() in new DLS code to fix linking issues. 10052003 - Fixed memory corruption when freeing DLS instruments, and bug when timidity is initialized multiple times (Thanks, Sam!). 09252003 - Sam Lantinga added support for DLS instruments to the MIDI decoder. 09132003 - Happy September. Added Speex (.spx) decoder. 08052003 - Fixed MIDI decoder on bigendian systems. 03102003 - Never actually created samplelist_mutex (Thanks, Glenn Maynard!). 01302003 - Patches to make SDL_sound more Visual C happy (Thanks, Eric!). 01122003 - Fix to smpeg.c's rewinding code (Thanks, Eric). Put Visual C 6 project files in CVS, without external binaries (Thanks, Eric). 12212002 - Fixed ogg.c to decode a full buffer at a time instead of one ogg packet per call, and mikmod has a check during initialization to prevent a clash with SDL_mixer (Thanks, Eric). 12092002 - Changed Sound_Init()'s call to SDL_Init() to SDL_InitSubSystem(), to prevent unwanted use of the SDL parachute (thanks, Glenn). 10092002 - Fixed a "make dist" issue and upped version to 1.0.0! Woohoo! 09302002 - libFLAC broke their API (again!) for version 1.0.4. That was the last straw. I ripped the version detection and obsolete FLAC support out, so you need libFLAC 1.0.4 for that decoder now (and they'll probably break the API again for 1.0.5. Argh). 09262002 - Happy September. Fixed SDLCALL issues in SDL_sound.h, so it should work with Win32/WinCE builds again. I hope. Merged latest altcvt from Frank into CVS. 08222002 - Borland project files in CVS, thanks to Dominique Louis. There are project files for C++ Builder 6 (Windows), C++ Builder for Linux (aka Kylix 3) and Borland's C++ Command line compiler. 08172002 - Timidity memory leak cleanup by Torbjörn. 07292002 - Valgrind cleanups; memory leak patches, etc. 07212002 - done_flag was not being reset between files in playsound, so the first file would playback, and then any following tracks in a given run would "finish" immediately. Fixed. 07132002 - More altcvt fixes from Frank Ranostaj. 07122002 - Changed inline keyword to compile universally. 07102002 - Fixed a bug in command line handling in playsound.c. Fixes from Torbjörn and myself to get flac.c friendly between versions of libFLAC. Mutex'd a potential race condition in decoders/modplug.c. FIXME cleanups here and there. 07092002 - Fixed typo in documentation (SDL_sound.h). 07052002 - Cleaned up some stuff in playsound.c, removing some FIXMEs. Commandline validation is improved, too. FIXME removal in voc.c; should report i/o errors correctly now. Changed DECLSPEC to SNDDECLSPEC to prevent SDL conflict, and added SDLCALL support. Removed all instances of Sound_SetError()...now they are either __Sound_SetError or BAIL*_MACRO. 07022002 - Added WinCE support pack to website, updated INSTALL with CE info. More altcvt fixes from Frank Ranostaj. 07012002 - Fixed configure.in to work around bug in older autoconfs. Started merging Tyler's WinCE (PocketPC) port. Added checks for assert.h and signal.h to configure.in/config.h.in, and #if HAVE_*_H checks where appropriate in the code. Moved #include (along with the HAVE_ASSERT_H check) to SDL_sound_internal.h, and removed unnecessary #includes from the individual source files. Added "md_reverb = 1;" to MIKMOD_init(). Modplug got some WinCE-specific setting tweaks, and some settings maintanance code. configure.in checks if setbuf() is available. 06292002 - More altcvt fixes from Frank Ranostaj...mostly working now? 06252002 - More altcvt fixes from Frank Ranostaj. 06132002 - Patch from Torbjörn to fix stereo AIFF files. 06212002 - More altcvt fixes from Frank Ranostaj. 06132002 - Patch from Torbjörn to make the WAV decoder more tolerant. 06122002 - Committed some altcvt enhancements from Frank Ranostaj. 06112002 - Fixed some debug messages in smpeg.c and mpglib.c. 06072002 - Manpages! Finally installed Doxygen and scratched together a Doxyfile. After some revision to physfs.h, we've got a rather nice API reference. 06062002 - Added URLs for official and unofficial versions of ModPlug in decoders/modplug.c. Cleaned up some FIXMEs. 05222002 - Torbjörn sent in some more fixes for altcvt: mono to stereo conversion works, now. 05222002 - Torbjörn sent in some initial cleanups and fixes for altcvt, and fixed a bug in playsound when not all three of --rate, --channels and --format are specified. 05202002 - Some .cvsignores from Max and me. Added a seek implementations for the SMPEG, ogg, aiff, wav-adpcm, voc, and au decoders. Added a seek stub to quicktime.c. playsound now takes milliseconds in the seek lists: --seek "00:00:400" or whatnot. Corrected playsound's usage text. Other au.c cleanups for extra robustness. Added an experimental audio converter that Frank Ranostaj sent to the SDL mailing list about a month ago: enable it with --enable-altcvt at configure time, but be warned that it doesn't work very well right now. 04292002 - Darrell Walisser updated the Mac Classic and OS X project files, fixed some portability issues, and added an experimental decoder that uses Apple's QuickTime libraries (see decoders/quicktime.c). I've included the Mac project files in CVS, now. Removed all use of alloca() from playsound. 04242002 - Added --seek option and bugfixes to playsound.c. Torbjörn comes through with seek support for the FLAC, MIDI, and ModPlug decoders (and some stub code for MikMod), and a bugfix for sample flag manipulation in the base library (and his own --seek code for playsound, which unfortunately we're not using). 04232002 - Cleaned up the playsound command line handling. Most command line options (--rate, --format, --predecode, etc) are specified per-file and reset to their defaults after each sample is played back. --loop now takes a numeric argument: --loop 2 will playback the sample three times (one playback and two loops). Added Darrell to the playsound credits. 04212002 - Initial work to add a Sound_Seek() API. Removed the NEEDSEEK sample flag (replaced it with CANSEEK). Hack to change the internal Sound_SetError() function to __Sound_SetError(). Added internal function __Sound_convertMsToBytePos(). 04082002 - Cleaned up the archive support in playsound a little bit, and fixed a PhysicsFS bug in the process. 03252002 - Win32 patches and fixes from Tyler Montbriand: handled "inline" keyword, fixed SNDDBG macros in mpglib, and renamed a conflicting file (decoders/mpglib/common.c to decoders/mpglib/mpglib_common.c). 03172002 - Removed an unneeded #include in mpglib that broke build on BeOS. mpglib seems to work find on BeOS. Reworked some of mpglib.c so we can determine the audio format when accepting the data stream. Some other minor cleanups here and there. 03162002 - Tied the PhysicsFS code into the build system (code disabled if physfs not found or --disable-physfs passed to ./configure.) 03152002 - Added PhysicsFS support to playsound, so you can play sound files that are in ZIP files without unzipping them. Needs to be merged into build system (I was just testing my PhysFS->RWops glue code). 03142002 - Changed configure script's --enable-vorbis to --enable-ogg. Removed global state variable from mpglib, so it should be reentrant now (patches sent to mpglib's actual maintainer). playsound can now read from stdin. 03102002 - Added a FIXME note to decoders/mpglib.c. playsound now reports errors in the thread where they occured, which also fixes a double report of errors during predecoding. Removed all calls to exit() in mpglib. These calls now report errors correctly to SDL_sound, which passes them on to the application (patch also sent to mpglib's actual maintainer). Replaced all stderr chatter in mpglib with Sound_SetError() calls. 03072002 - decoders/mpglib.c now disregards ID3 tags instead of passing them on as valid MP3 data to mpglib. Added some (buggy) example code for adjusting an audio stream's volume (via the new --volume command line in playsound). 03032002 - Fixed mpglib's build configuration to include general build flags so that things like --enable-debug work as expected. 02212002 - Changed SMPEG's URL to point to the icculus.org site. Added an mpglib decoder (internal to SDL_sound; relies on no external libs) and changes mp3.c to smpeg.c (and other associated things). 02112002 - Committed a patch from Torbjörn to fix incorrect memory accesses in the Timidity code. Changed the magic number in the AU decoder to be bigendian (seems appropriate). Updated README for completeness, and TODO for accuracy. Darrell sent in updated MacOS X Project Builder files (on the website). 02072002 - Committed a patch Torbjörn sent in awhile ago for preventing confusion with Timidity++-specific stuff in the timidity.cfg file. Tyler Montbriand sent in an updated Visual C package. Updated SDL_sound.h's comments a little. Upped version to 0.1.5. 02052002 - Fixed a cleanup I broke last night. Added CWProject.sit to the EXTRA_DIST section of Makefile.am, and updated the README with MacOS (9/X) install instructions. 02042002 - Darrell Walisser submitted some cleanups and CodeWarrior project files for MacOS 9. Sweet! 01232002 - Max fixed decoders/Makefile.am to work with seperate build directories, and corrected some dates in this file. 01192002 - Torbjörn sent in patches implementing the rewind method for the rest of the decoders except shn.c, for which I added a kludged implementation. Added more info to the README. Hunted down the reason why SMPEG can't decode before calling SDL_OpenAudio(), and it can't be fixed without a change to SMPEG (not MY fault! :) ). Made ModPlug take priority over MikMod when selecting a decoder. Mutex-protected the internal samples list, and fixed some bugs in the management of that list. Changed some stuff to use uniform coding conventions. 01182002 - SDL_sound/playsound builds and runs on BeOS now. Fixed an assertion bug I introduced yesterday. 01172002 - Implemented Sound_Rewind(), and added a --loop command line to playsound for testing. Rewrote the audio callback to handle looping with both predecoded and streamed samples. Most of the decoders just have an assert(0) in their internal rewinding method at this point. I implemented the WAV, VOC, AU, AIFF, and RAW ones, for now. (...and skeleton.c, for what that's worth.) A few tweaks in the core API implementation to fix unlikely but possible leaks. 01112002 - Mattias Engdegård sent in an .AU decoder. Nice! He also tweaked playsound to try and wait until SDL has completed playing a given sound before closing the audio device. Changed a macro in decoders/shn.c to be more uniform with the other decoders. SDL_sound error messages are now maintained on a per-thread basis, and do not interfere with SDL_[GS]etError() anymore. 01112002 - Committed the rest of Torbjörn's MOD patches, to clean up file extension handling. 01092002 - Torbjörn comes through with a ModPlug-based decoder, which should work nicely for decoding multiple .MODs at once. Now we need to figure out what to do with two decoders that can decode the same file. For now, if you explicitly want either MikMod or ModPlug, you should explicitly enable one decoder and disable the other on the configure command line ("--enable-modplug --disable-mikmod", for example), otherwise configure will try to sort out the best one for your system. Choice is a wonderful thing. :) 01042002 - Forgot to bump playsound's version to match SDL_sound's. Fixed. Added some notes to the top of COPYING about other libraries, etc. A real MIDI decoder (using a hacked version of the hacked version of Timidity from SDL_mixer) is now in place and working well, thanks to Torbjörn. 01012002 - Happy New Year. Added some debug output to wav.c for future codecs (GSM comes to mind). Fixed the SMPEG decoder's URL to point to Loki's webpage. 12302001 - Upped version to 0.1.4. 12272001 - Added --audiobuf and --decodebuf options to playsound to make tracking down a bug in the ADPCM decoder easier (plus, it could help for benchmarking, etc later on...). Found a printf() bug in playsound (extra comma in there...). ADPCM decoder appears to be functional now. Tried to add ElectricFence support to configure.in, and failed. All this libtool/autoconf stuff makes my head hurt. 12262001 - Changed remaining references to the "LICENSE" file into "COPYING". Work progresses on the ADPCM-compressed .wav decoder. Updates to the documentation in SDL_sound.h. Hhmm...find_chunk() in wav.c was badly broken. Fixed. 12162001 - FLAC decoder now checks for the magic number unless the file extension is recognized. This was changed back because searching for metadata, while probably more effective, is VERY expensive (and useless) on non-FLAC streams. 12052001 - Put our names in a "--credits" option in playsound, and put the standard GNU disclaimers in there too, for good measure. Renamed LICENSE to COPYING to match GNU standards more closely (and to end Max's torment. :) ) Tweaks to wav.c, and work on aiff.c to make it easier to support multiple audio formats (for compression handling later down the road). 11302001 - Torbjörn and I make Sound_DecodeAll() more robust: checks for previous decoding failures and sets an appropriate error, handles decoders that change their buffers on the fly (such as the FLAC decoder), and deals with out-of-memory conditions more gracefully. 11252001 - (With thanks to Andreas Umbach for pointing it out) Fixed some problems with Sound_DecodeAll(). For local testing of this bug, added a --predecode command line to playsound. Minor fixes to theoretical bugs in Sound_FreeSample(). playsound no longer buffers stdout and stderr. Updated Sound_DecodeAll()'s comments in SDL_sound.h ... 11192001 - FLAC decoder cleanups from Torbjörn. 11092001 - Torbjörn fixes playsound's audio callback after I broke it, again. A bug in configure.in was preventing SMPEG from being used unless --enable-debug was set; fixed. Changed this file to list latest changes first. Torbjörn submitted a FLAC decoder that utilizes libFLAC (http://flac.sf.net/). Cool. 11012001 - API COMPATIBILITY BREAKAGE: Decoders can now list multiple file extensions each. Playsound has been updated to handle this. Playsound now registers a SIGINT handler, so you can skip tracks and/or abort the way that mpg123 does. 10232001 - Rewrote playsound.c's audio_callback() to no longer need the overflow buffer hack, which streamlines it a little and trims the memory requirements for playsound by about 16 kilobytes. 10172001 - Torbjörn catches a problem with the overflow buffer in playsound's audio callback. 10152001 - Torbjörn sends in a default sample format for the MIDI decoder, and the starts of the audio conversion funcitonality (ripped from SDL). Officially released 0.1.3. Added LICENSE and CHANGELOG to the distribution. (Again, from Torbjörn) added in the start of a tweaked audio converter. 10122001 - Torbjörn Andersson submitted command line enhancements to playsound, and I cleaned up the --help output. 10092001 - Patches to shn.c for Visual C compatibility. Visual C project files available from the website. Changed Corona688 to Tyler Montbriand in CREDITS. Upped version to 0.1.3. 10082001 - Restructured decoders/wav.c to allow for multiple formats, and put the start of a handler for the ADPCM format in place. 10072001 - Changed the way decoders/mod.c handles samplerate so that it should work universally. This isn't an ideal solution, but it's probably the best we can do without rewriting mikmod. Made a change to ogg.c for portability: changed an int64_t to ogg_int64_t. 10062001 - Made a change to SDL_sound.c for compiling on non-GNU toolchains. 10052001 - Removed #include "SDL_endian" from aiff.c. 10042001 - Changed some #if (defined SOUND_SUPPORTS_*) lines to #ifdef SOUND_SUPPORTS_* in voc.c and shn.c, for consistency with the other decoders. 10032001 - After hours of tracking down a bogus pointer, the SHN decoder works! I can die happy. :) Max placated me with an --enable-debug option so I could stop my whining. Other autoconf goodies (such as reenabling -Werror for debug builds, etc). Torbjörn brings in a MIDI decoder, which reads from a Timidity process through a pipe. Changed playsound to open the audio device to match the properties of each sound file, which results in less conversion (and therefore, more chance of correct playback). 10022001 - Changed a comment in mod.c to not refer to "the mikmod directory" anymore. Committed Torbjörn's patch for MP3 detection. (better late than never). __Sound_strcasecmp() now handles NULL strings gracefully, fixing the crash with "playsound bootstrap". More work on the SHN decoder. 10012001 - Fixed a memory leak that Torbjörn found in the MOD decoder. 09252001 - More autoconf work. Gave Max Horn write access to the CVS repository, so I don't drive him nuts tweaking this thing. :) Fixed a const complaint and some other stuff needed for compilation under Visual C++ 6.0 (no, it isn't ported yet). Put the SHN source in CVS, even though it isn't ready (and doesn't even compile). Do NOT enable it in your build! 09242001 - Thank goodness, Torbjörn came through with the MP3 fix. Apparently SMPEG mixes each chunk of decoded data with whatever is already in the buffer you give it. I hate that. I'm going to patch SMPEG to let the programmer enable and disable that behaviour in a given (SMPEG *), since it's just a CPU eater in this case. The _D(()) macro is now SNDDBG(()), since _D is taken on MacOS X's version of gcc (which was bound to happen on some platform sooner than later anyhow). Renamed test_sdlsound to playsound, and made it more robust in general: fixed potential overflow in audio_callback, made it chatter less, made it take multiple files and some other command lines. Initial autoconf support, thanks to Max Horn. 09222001 - Torbjörn Andersson strikes again, with a collection of patches. First, some cosmetic tweaks for decoders/aiff.c. Next, a MOD player based on MikMod. This inspired me to add two more methods to Sound_DecoderFunctions: init() and quit(). Third, a fix to decoders/mp3.c so that SMPEG won't claim every stream it sees, MP3 or not. I removed the multiple-streams-per-rwops code, after discussion on the mailing list. The init() and quit() methods led to the possibility that certain decoders will flag themselves as unavailable at runtime, and SDL_sound now handles this. Added [LIB|INC]PATH_[OGG|MOD]. Bigendian fixes; now works on PowerPC Linux. MikMod tweaks. Changed version to 0.1.2. 09202001 - Torbjörn Andersson submitted several patches: fixed a comment in the .WAV decoder (whoops...screwed up my own search-and-replace. Hah.), made an attempt at putting multiple sound streams behind one RWops (gotta think on that one first), and, most importantly, added an AIFF decoder, which is very cool. 09192001 - Added a skeleton decoder source file. Changed voc_read() to voc_read_waveform(), so it wouldn't be confused with VOC_read(). Fixed a byte ordering bug in voc.c (reported as AUDIO_S16LSB, but we were swapping byte order of data ourselves. Fixed). Added basic .WAV support. Fixed Makefile so that -I. is always first; otherwise, a previously installed header might get used for the compiles, which is not good. SDL_sound.h now includes SDL_endian.h, since SDL.h doesn't, for some reason. Moved version defines in SDL_sound.h to top of file so I can find them. :) Changed version to 0.1.1. Committed patch from Tsuyoshi Iguchi to fix a segfault (I forgot to put a NULL terminator at the end of the available_decoders array), fixing the only bug preventing the test program from running on FreeBSD 4.3. Sweet. Added Ogg Vorbis decoder. Rewrote the test program's SDL audio callback to be more robust (Ogg exposed a nasty bug in it). Fixed a byte-ordering issue in the VOC decoder. 09182001 - Implemented MP3 support through SMPEG (not working yet, though) and wrote the Reference Counting RWops wrapper. Added other little things like the _D(()) macro. Added VOC support, which went up with surprisingly little struggle, which means it MUST be leaking memory. :) 09172001 - Changed some overlooked "voice" to "sound". Implemented base API. So...tired. Everything's different. :) Also put in a RAW decoder and a simple test program. 09142001 - Changed name to SDL_sound, added Sound_DecodeAll() to spec. 09132001 - Initial spec proposed on SDL mailing list, under name "SDL_voice". --ryan. (icculus@icculus.org) /* end of CHANGELOG ... */