CHANGES
author Sam Lantinga <slouken@libsdl.org>
Wed, 27 Feb 2008 07:31:03 +0000
changeset 382 50501e45c57b
parent 381 2064088ea781
child 387 17d75f6b82c3
permissions -rw-r--r--
Austen Dicken - Tue Feb 26 23:28:27 PST 2008

Ok, here is the patch I made for FLAC support.

I have tested it relatively thoroughly and currently the patch allows:
1. Pre-loading FLAC files and playing them via LoadWAV
2. The patch allows for FLAC support in the LoadMUS setting as well as:
* Pause / Resume
* Volume control
* Seeking

I also did a little benchmarking by comparing memory/cpu usage of playmus to
that of mplayer, and the results were very good. playmus typically took about
half the RAM as mplayer, though that may be attributed to mplayer being a more
"bulky" program. As such I would say that the two are probably about equal in
efficiency.

Also, it is important to note that, similar to the OGG support currently
built-in, my FLAC patch only supports 16 bit stereo-encoded sound. Also, it
is only for Native FLAC (standard) and not the derivative, Ogg-FLAC.

I have tried to find a simple way to detect Ogg-FLAC files, as the only
difference between Ogg-FLAC and Native FLAC support is changing the init_
function call, but after digging a little deeper it seems that Ogg-FLAC is
basically FLAC wrapped in an Ogg transport layer, so it would be better to have
a way to read the Ogg transport layer which then reads the inner audio files
according to the proper codec.

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