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