CHANGES
author Sam Lantinga <slouken@libsdl.org>
Sat, 31 Dec 2011 18:32:49 -0500
changeset 521 565549e046b0
parent 518 8bc9b5fd2aae
child 523 3214c1b0f0f4
permissions -rw-r--r--
Fixed bugs 1003, 1021, 1168 - fixed memory leak loading music

jjs@jjs.at 2011-03-11 11:37:57 PST
When using SDL_Mixer to play WAVE music, the call to Mix_FreeMusic does not
close the associated file handle.

There is a check in WAVStream_FreeSong() of wavestream.c like this:

if ( wave->freerw ) {
SDL_FreeRW(wave->rw);
}

But the variable freerw is not referenced anywhere else. SDL_FreeRW would also
not close the file from what I can tell.
     1 1.2.12:
     2 Sam Lantinga - Sat Dec 31 18:32:05 EST 2011
     3  * Fixed memory leak in SDL_LoadMUS()
     4 Sam Lantinga - Sat Dec 31 10:22:05 EST 2011
     5  * SDL_mixer is now under the zlib license
     6 James Le Cuirot - Mon Mar 21 16:54:11 PDT 2011
     7  * Added support for FluidSynth
     8 Scott MC - Tue Jan 18 11:06:47 PST 2011
     9  * Added support for native MIDI on Haiku OS
    10 Jon Atkins - Sat Nov 14 13:00:18 PST 2009
    11  * Added support for libmodplug (disabled by default)
    12 
    13 1.2.11:
    14 Sam Lantinga - Sat Nov 14 12:38:01 PST 2009
    15  * Fixed initialization error and crashes if MikMod library isn't available
    16 Sam Lantinga - Sat Nov 14 11:22:14 PST 2009
    17  * Fixed bug loading multiple music files
    18 
    19 1.2.10:
    20 Sam Lantinga - Sun Nov  8 08:34:48 PST 2009
    21  * Added Mix_Init()/Mix_Quit() to prevent constantly loading and unloading DLLs
    22 Mike Frysinger - 2009-11-05 09:11:43 PST
    23  * Check for fork/vfork on any platform, don't just assume it on UNIX
    24 Jon Atkins - Thu Nov 5 00:02:50 2009 UTC
    25  * Fixed export of Mix_GetNumChunkDecoders() and Mix_GetNumMusicDecoders()
    26 C.W. Betts - 2009-11-02 00:16:21 PST
    27  * Use newer MIDI API on Mac OS X 10.5+
    28 
    29 1.2.9:
    30 Ryan Gordon - Sun Oct 18 11:42:31 PDT 2009
    31  * Updated native MIDI support on Mac OS X for 10.6
    32 Ryan Gordon - Sun Oct 11 05:29:55 2009 UTC
    33  * Reset channel volumes after a fade out interrupts a fade in.
    34 Ryan Gordon - Sun Oct 11 02:59:12 2009 UTC
    35  * Fixed crash race condition with position audio functions
    36 Ryan Gordon - Sat Oct 10 17:05:45 2009 UTC
    37  * Fixed stereo panning in 8-bit mode
    38 Sam Lantinga - Sat Oct 10 11:07:15 2009 UTC
    39  * Added /usr/share/timidity to the default timidity.cfg locations
    40 Sam Lantinga - Sat Oct  3 13:33:36 PDT 2009
    41  * MOD support uses libmikmod and is dynamically loaded by default
    42  * A patched version of libmikmod is included in libmikmod-3.1.12.zip
    43  * The libmikmod patches fix security issues CVE-2007-6720 and CVE-2009-0179.
    44 Sam Lantinga - Sat Oct  3 02:49:41 PDT 2009
    45  * Added TIMIDITY_CFG environment variable to fully locate timidity.cfg
    46 Sam Lantinga - Fri Oct  2 07:15:35 PDT 2009
    47  * Implemented seamless looping for music playback
    48 Forrest Voight - 2009-06-13 20:31:38 PDT
    49  * ID3 files are now recognized as MP3 format
    50 Steven Noonan - 2008-05-13 13:31:36 PDT
    51  * Fixed native MIDI crash on 64-bit Windows
    52 Ryan Gordon - Fri Jun 5 16:07:08 2009 UTC
    53  * Added decoder enumeration API:
    54 	Mix_GetNumChunkDecoders(), Mix_GetChunkDecoder(),
    55 	Mix_GetNumMusicDecoders(), Mix_GetMusicDecoder()
    56 Austen Dicken - Tue Feb 26 23:28:27 PST 2008
    57  * Added support for FLAC audio both as chunks and streaming
    58 Tilman Sauerbeck - Tue Feb 26 03:44:47 PST 2008
    59  * Added support for streaming WAV files with Mix_LoadMUS_RW()
    60 Ryan Gordon - Mon Feb 4 17:10:08 UTC 2008
    61  * Fixed crash caused by not resetting position_channels
    62 
    63 1.2.8:
    64 Sam Lantinga - Wed Jul 18 09:45:54 PDT 2007
    65  * Improved detection of Ogg Vorbis and Tremor libraries
    66 Ryan Gordon - Sun Jul 15 12:03:54 EDT 2007
    67  * Fixed memory leaks in Effects API.
    68 David Rose - Sat Jul 14 22:16:09 PDT 2007
    69  * Added support for MP3 playback with libmad (for GPL projects only!)
    70 Sam Lantinga - Sat Jul 14 21:39:30 PDT 2007
    71  * Fixed the final loop of audio samples of a certain size
    72 Sam Lantinga - Sat Jul 14 21:05:09 PDT 2007
    73  * Fixed opening Ogg Vorbis files using different C runtimes on Windows
    74 Philippe Simons - Sat Jul 14 20:33:17 PDT 2007
    75  * Added support for Ogg Vorbis playback with Tremor (an integer decoder)
    76 Sam Lantinga - Sat Jul 14 07:02:09 PDT 2007
    77  * Fixed memory corruption in timidity resampling code
    78 Ryan Gordon - Tue Jul 3 10:44:29 2007 UTC
    79  * Fixed building SDL_mixer with SDL 1.3 pre-release
    80 Ryan Gordon - Tue Feb 13 08:11:54 2007 UTC
    81  * Fixed compiling both timidity and native midi in the same build
    82 Hans de Goede - Sun Aug 20 23:25:46 2006 UTC
    83  * Added volume control to playmus
    84 Jonathan Atkins - Thu Aug 10 15:06:40 2006 UTC
    85  * Fixed linking with system libmikmod
    86 David Ergo - Fri Jun 23 09:07:19 2006 UTC
    87  * Corrected no-op conditions in SetDistance(), SetPanning() and SetPosition()
    88  * Fixed copy/paste errors in channel amplitudes
    89 
    90 1.2.7:
    91 Sam Lantinga - Fri May 12 00:04:32 PDT 2006
    92  * Added support for dynamically loading SMPEG library
    93 Sam Lantinga - Thu May 11 22:22:43 PDT 2006
    94  * Added support for dynamically loading Ogg Vorbis library
    95 Sam Lantinga - Sun Apr 30 09:01:44 PDT 2006
    96  * Removed automake dependency, to allow Universal binaries on Mac OS X
    97  * Added gcc-fat.sh for generating Universal binaries on Mac OS X
    98 Sam Lantinga - Sun Apr 30 01:48:40 PDT 2006
    99  * Updated libtool support to version 1.5.22
   100 Patrice Mandin - Sat Jul 16 16:43:24 UTC 2005
   101  * Use SDL_RWops also for native midi mac and win32
   102 Patrice Mandin - Sat Jul 9 14:40:09 UTC 2005
   103  * Use SDL_RWops also for native midi gpl (todo: mac and win32)
   104 Ryan C. Gordon - Sat Jul  9 01:54:03 EDT 2005
   105  * Tweaked Mix_Chunk's definition to make predeclaration easier.
   106 Patrice Mandin - Mon Jul 4 19:45:40 UTC 2005
   107  * Search timidity.cfg also in /etc
   108  * Fix memory leaks in timidity player
   109  * Use also SDL_RWops to read midifiles for timidity
   110 Ryan C. Gordon - Mon Jun 13 18:18:12 EDT 2005
   111  * Patch from Eric Wing to fix native midi compiling on MacOS/x86.
   112 Sam Lantinga - Wed Dec 22 17:14:32 PST 2004
   113  * Disabled support for the system version of libmikmod by default
   114 Sam Lantinga - Tue Dec 21 09:51:29 PST 2004
   115  * Fixed building mikmod support on UNIX
   116  * Always build SDL_RWops music support
   117  * Added SDL_RWops support for reading MP3 files
   118 
   119 1.2.6:
   120 Jonathan Atkins - Wed, 15 Sep 2004 23:26:42 -0500
   121  * Added support for using the system version of libmikmod
   122 Martin_Storsjö -  Sun, 22 Aug 2004 02:21:14 +0300 (EEST)
   123  * Added SDL_RWops support for reading Ogg Vorbis files
   124 Greg Lee - Wed, 14 Jul 2004 05:13:14 -1000
   125  * Added 4 and 6 channel surround sound output support
   126  * Added support for RMID format MIDI files
   127  * Improved timidity support (reverb, chorus, Roland & Yamaha sysex dumps, etc.)
   128 Sam Lantinga - Wed Nov 19 00:23:44 PST 2003
   129  * Updated libtool support for new mingw32 DLL build process
   130 Ryan C. Gordon - Sun Nov  9 23:34:47 EST 2003
   131  * Patch from Steven Fuller to fix positioning effect on bigendian systems.
   132 Laurent Ganter - Mon, 6 Oct 2003 11:51:33 +0200
   133  * Fixed bug with MIDI volume in native Windows playback
   134 Andre Leiradella - Fri, 30 May 2003 16:12:03 -0300
   135  * Added SDL_RWops support for reading MOD files
   136 Kyle Davenport - Sat, 19 Apr 2003 17:13:31 -0500
   137  * Added .la files to the development RPM, fixing RPM build on RedHat 8
   138 
   139 1.2.5:
   140 Darrell Walisser - Tue Mar  4 09:24:01 PST 2003
   141  * Worked around MacOS X deadlock between CoreAudio and QuickTime
   142 Darrell Walisser - Fri, 14 Feb 2003 20:56:08 -0500
   143  * Fixed crash in native midi code with files with more than 32 tracks
   144 Marc Le Douarain - Sat, 15 Feb 2003 14:46:41 +0100
   145  * Added 8SVX format support to the AIFF loader
   146 Sam Lantinga Wed Feb 12 21:03:57 PST 2003
   147  * Fixed volume control on WAVE music chunks
   148 Ben Nason - Mon, 10 Feb 2003 11:50:27 -0800
   149  * Fixed volume control on MOD music chunks
   150 Patrice Mandin - Fri, 31 Jan 2003 15:17:30 +0100
   151  * Added support for the Atari platform
   152 Ryan C. Gordon - Fri Dec 27 10:14:07 EST 2002
   153  * Patch from Steven Fuller to fix panning effect with 8-bit sounds.
   154 Ryan C. Gordon - Thu Jan  2 12:31:48 EST 2003
   155  * Patch from guy on 3DRealms forums to fix native win32 midi volume.
   156 Ryan C. Gordon - Wed Oct 30 07:12:06 EST 2002
   157  * Small, looping music samples should now be able to fade out correctly.
   158 Sam Lantinga - Sun Oct 20 20:52:24 PDT 2002
   159  * Added shared library support for MacOS X
   160 Pete Shinners - Wed Oct 16 17:10:08 EDT 2002
   161  * Correctly report an error when using an unknown filetype
   162 Vaclav Slavik - Sun Sep  8 18:57:38 PDT 2002
   163  * Added support for loading Ogg Vorbis samples as an audio chunk
   164 Martin Storsjö - Tue Jul 16 10:38:12 PDT 2002
   165  * Fixed to start playing another sample immediately when one finishes
   166 Martin Storsjö - Tue May 28 13:08:29 PDT 2002
   167  * Fixed a volume bug when calling Mix_HaltChannel() on unused channel
   168 Xavier Wielemans - Wed Jun 12 14:28:14 EDT 2002
   169  * Fixed volume reset bug at end of channel fade.
   170 Ryan C. Gordon - Wed Jun 26 16:30:59 EDT 2002
   171  * Mix_LoadMUS() will now accept an MP3 by file extension, instead of relying
   172     entirely on the magic number.
   173 
   174 1.2.4:
   175 Sam Lantinga - Mon May 20 09:11:22 PDT 2002
   176  * Updated the CodeWarrior project files
   177 Sam Lantinga - Sun May 19 13:46:29 PDT 2002
   178  * Added a function to query the music format: Mix_GetMusicType()
   179 Sam Lantinga - Sat May 18 12:45:16 PDT 2002
   180  * Added a function to load audio data from memory: Mix_QuickLoad_RAW()
   181 Sam Lantinga - Thu May 16 11:26:46 PDT 2002
   182  * Cleaned up threading issues in the music playback code
   183 Ryan Gordon - Thu May  2 21:08:48 PDT 2002
   184  * Fixed deadlock introduced in the last release
   185 
   186 1.2.3:
   187 Sam Lantinga - Sat Apr 13 07:49:47 PDT 2002
   188  * Updated autogen.sh for new versions of automake
   189  * Specify the SDL API calling convention (C by default)
   190 Ryan Gordon - Sat Apr 13 07:33:37 PDT 2002
   191  * Fixed recursive audio lock in the mixing function
   192 jean-julien Filatriau - Sat Mar 23 18:05:37 PST 2002
   193  * Fixed setting invalid volume when querying mixer and music volumes
   194 Guillaume Cottenceau - Wed Feb 13 15:43:20 PST 2002
   195  * Implemented Ogg Vorbis stream rewinding
   196 Peter Kutak - Wed Feb 13 10:26:57 PST 2002
   197  * Added native midi support on Linux, using GPL code
   198 	--enable-music-native-midi-gpl
   199 Pete Shinners - Mon Jan 14 11:31:26 PST 2002
   200  * Added seek support for MP3 files
   201 Ryan Gordon - Mon Jan 14 11:30:44 PST 2002
   202  * Sample "finished" callbacks are now always called when a sample is stopped.
   203 
   204 1.2.2:
   205 Guillaume Cottenceau - Wed Dec 19 08:59:05 PST 2001
   206  * Added an API for seeking in music files (implemented for MOD and Ogg music)
   207 	Mix_FadeInMusicPos(), Mix_SetMusicPosition()
   208  * Exposed the mikmod synchro value for music synchronization
   209 	Mix_SetSynchroValue(), Mix_GetSynchroValue()
   210 
   211 1.2.1:
   212 Yi-Huang Han - Wed Oct 24 21:55:47 PDT 2001
   213  * Fixed MOD music volume when looping
   214 David Hedbor - Thu Oct 18 10:01:41 PDT 2001
   215  * Stop implicit looping, set fade out and other flags on MOD files
   216 Sam Lantinga - Tue Oct 16 11:17:12 PDT 2001
   217  * The music file type is now determined by extension as well as magic
   218 Ryan C. Gordon - Tue Sep 11 12:05:54 PDT 2001
   219  * Reworked playwave.c to make it more useful as a mixer testbed
   220  * Added a realtime sound effect API to SDL_mixer.h
   221  * Added the following standard sound effects:
   222 	panning, distance attenuation, basic positional audio, stereo reversal
   223  * Added API for mixer versioning: Mix_Linked_Version() and MIX_VERSION()
   224 Sam Lantinga - Tue Sep 11 11:48:53 PDT 2001
   225  * Updated MikMod code to version 3.1.9a
   226 Torbjörn Andersson - Tue Sep 11 11:22:29 PDT 2001
   227  * Added support for loading AIFF audio chunks
   228 Max Horn - Tue Sep  4 20:38:11 PDT 2001
   229  * Added native MIDI music support on MacOS and MacOS X
   230 Florian Schulze - Sun Aug 19 14:55:37 PDT 2001
   231  * Added native MIDI music support on Windows
   232 Sam Lantinga - Sun Aug 19 02:20:55 PDT 2001
   233  * Added Project Builder projects for building MacOS X framework
   234 Darrell Walisser - Sun Aug 19 00:47:22 PDT 2001
   235  * Fixed compilation problems with mikmod under MacOS X
   236 Torbjörn Andersson - Sun, 19 Aug 2001 16:03:30
   237  * Fixed AIFF music playing support
   238 Sam Lantinga - Sat Aug 18 04:14:13 PDT 2001
   239  * Fixed building Ogg Vorbis support on Windows
   240 Ryan C. Gordon - Thu, 7 Jun 2001 13:15:51
   241  * Added Mix_ChannelFinished() and Mix_GetChunk()
   242 Ryan C. Gordon - Tue, 5 Jun 2001 11:01:51
   243  * Added VOC sound file support
   244 Guillaume Cottenceau - Thu May 10 11:17:55 PDT 2001
   245  * Fixed crashes when API used with audio not initialized
   246 Paul Jenner - Sat, 14 Apr 2001 09:20:38 -0700 (PDT)
   247  * Added support for building RPM directly from tar archive
   248 
   249 1.2.0:
   250 Sam Lantinga - Wed Apr  4 12:42:20 PDT 2001
   251  * Synchronized release version with SDL 1.2.0
   252 
   253 1.1.1:
   254 John Hall - Tue Jan  2 13:46:54 PST 2001
   255  * Added support to playmus for track switching with Ctrl-C
   256  * Added support to playmus for multiple command line files
   257 
   258 1.1.0:
   259 Sam Lantinga - Wed Nov 29 20:47:13 PST 2000
   260  * Package specifically for SDL 1.1 (no real reason API-wise, but for clarity)
   261 
   262 1.0.7:
   263 Sam Lantinga - Tue Nov  7 10:22:09 PST 2000
   264  * Fixed hang in mikmod re-initialization
   265 Stephane Peter - Oct 17 13:07:32 PST 2000
   266  * Fixed music fading
   267 Ray Kelm - Fri, 04 Aug 2000 20:58:00 -0400
   268  * Added support for cross-compiling Windows DLL from Linux
   269 
   270 1.0.6:
   271 Sam Lantinga - Sun Jul  2 14:16:44 PDT 2000
   272  * Added support for the Ogg Vorbis music format: http://www.vorbis.org/
   273 Darrell Walisser - Wed Jun 28 11:59:40 PDT 2000
   274  * Added Codewarrior projects for MacOS
   275 Sam Lantinga - Mon Jun 26 12:01:11 PDT 2000
   276  * Fixed symbol aliasing problem with "channel"
   277 Matt - Wed, 12 Apr 2000 15:36:13 -0700
   278  * Added SDL_RWops support for mikmod loading (not hooked into music.c yet)
   279 
   280 1.0.5:
   281 Paul Furber - Fri Mar  3 14:58:50 PST 2000
   282  * Fixed MP3 detection with compilers that use signed char datatypes
   283 
   284 1.0.4:
   285 Sam Lantinga - Thu Feb 10 19:42:03 PST 2000
   286  * Ported the base mixer and mikmod libraries to MacOS
   287 Markus Oberhumer - Wed Feb  2 13:16:17 PST 2000
   288  * Fixed problem with short looping sounds
   289 Sam Lantinga - Tue Feb  1 13:25:44 PST 2000
   290  * Added Visual C++ project file
   291 Markus Oberhumer - Tue Feb  1 13:23:11 PST 2000
   292  * Cleaned up code for compiling with Visual C++
   293  * Don't hang in Mix_HaltMusic() if the music is paused
   294 Sam Lantinga - Fri Jan 28 08:54:56 PST 2000
   295  * Fixed looping WAVE chunks that are not aligned on sample boundaries
   296 
   297 1.0.3:
   298 Sam Lantinga - Mon Jan 17 19:48:09 PST 2000
   299  * Changed the name of the library from "mixer" to "SDL_mixer"
   300  * Instead of including "mixer.h", include "SDL_mixer.h",
   301  * Instead of linking with libmixer.a, link with libSDL_mixer.a
   302 
   303 1.0.2:
   304 Sam Lantinga - Fri Jan 14 11:06:56 PST 2000
   305  * Made the CHANGELOG entries Y2K compliant. :)
   306 MFX -	Updated the mikmod support to MikMod 3.1.8
   307 MFX -	Added Mix_HookMusicFinished() API function
   308 
   309 1.0.1:
   310 SOL -	Added a post-mixing callback
   311 SP  -	A few music-related bugfixes
   312 
   313 1.0.0:
   314 SOL -   Added autoconf support
   315 SP  -   Added MP3 support using SMPEG
   316 SP  -   Added fading in/out of music and samples
   317 SP  -   Added dynamic allocation of channels
   318 SP  -   Added channel grouping functions
   319 SP  -   Added expiration delay for samples
   320 
   321 Initial Key:
   322 SOL - Sam Lantinga (hercules@lokigames.com)
   323 SP  - Stephane Peter (megastep@lokigames.com)
   324 MFX - Markus Oberhumer (markus.oberhumer@jk.uni-linz.ac.at)