2001-10-25 Michael Pruett * test/irixread.c: Improve error handling. Use proper conversion specifications in printf statements. * Released version 0.2.3 of the Audio File Library. 2001-10-10 Michael Pruett * test/error.c: Expanded the error test to include several more library functions. * libaudiofile/format.c: Improve error checking and add comments. 2001-09-20 Michael Pruett * test/irixread.c, test/irixtestloop.c, test/linuxtest.c: Always use virtual audio format in calculations regarding audio data in memory. 2001-09-18 Michael Pruett * configure.in: Bump version to 0.2.3 in anticipation of the upcoming release. 2001-09-08 Michael Pruett * test/sgi.c: Replace fixed-point shift with a call to the more elegant alDoubleToFixed. 2001-08-29 Michael Pruett * test/pipe.{c,sh}: Added simple test of Audio File Library operation on non-seekable file handles. 2001-08-28 Michael Pruett * libaudiofile/openclose.c: Applied Chris Wolf's patch invoking the macro SETBINARYMODE on all file pointers before handing them off to the AF VFS. This macro does nothing on non-Windows systems. 2001-08-27 Michael Pruett * win32/*: Added Chris Wolf's Windows port of the Audio File Library. 2001-08-24 Michael Pruett * libaudiofile/error.c: Include . * libaudiofile/modules.c: Replacing null macro arguments with the token NULLMODULEPARAM so that the module macros will work with bad preprocessors. 2001-08-23 Michael Pruett * libaudiofile/openclose.c: Include only if the system has this header file. * libaudiofile/modules/rebuffer.c: Don't define min and max if they've been defined already. 2001-08-23 Michael Pruett * libaudiofile/modules/Makefile.am, libaudiofile/units.[ch]: Added IMA and MS ADPCM compression modules. * libaudiofile/modules/msadpcm.[ch]: Checked in MS ADPCM compression module. * libaudiofile/modules/{ima,adpcm}.[ch]: Checked in IMA compression module and Stichting Mathematisch Centrum's IMA reference codec. * libaudiofile/afinternal.h: Declared new internal tokens for compression parameters in PV lists. * libaudiofile/audiofile.h: Declared constants for DV and MS ADPCM compression formats. * libaudiofile/wave.[ch]: Handle IMA and MS ADPCM compression in WAVE files. * libaudiofile/openclose.c: If a track has compression parameters, deallocate them before closing the file. * sfcommands/printinfo.c: Added support for compressed audio data to sound commands. 2001-08-07 Michael Pruett * libaudiofile/query.c: Added support for AF_QUERYTYPE_COMPRESSION. 2001-08-04 Michael Pruett * libaudiofile/util.c, libaudiofile/util.h: Add utility routines _af_pv_getlong, _af_pv_getdouble, and _af_pv_getptr. 2001-07-19 Michael Pruett * Released version 0.2.2 of the Audio File Library. 2001-07-19 Michael Pruett * libaudiofile/format.c: Add afSetChannelMatrix and afGetVirtualChannels. * libaudiofile/openclose.c: Add afIdentifyFD, afIdentifyNamedFD, afOpenFD, and afOpenNamedFD. 2001-07-18 Michael Pruett * sfcommands/sfconvert.c: Use a fixed-size buffer for reading and writing audio data, thus reducing memory usage when converting large sound files. Add float, integer, and channels keywords to sfconvert. * docs/sfconvert: Updated documentation to reflect new keywords. * libaudiofile/setup.c: Change the default file format for big-endian systems from AIFF to AIFF-C. * libaudiofile/{data.c,audiofile.h}: Change the type of the buffer parameter of afWriteFrames from void * to const void *. 2001-07-12 Michael Pruett * libaudiofile/{aiffwrite.c,wavewrite.c}: Since _af_format_frame_size takes compression into account, compute the extent of compressed and uncompressed audio data using _af_format_frame_size. * libaudiofile/wave.c: Add support for double-precision floating-point WAVE files. 2001-07-10 Michael Pruett * libaudiofile/util.[ch]: Make _af_format_sample_size and _af_format_frame_size consider compression. 2001-07-09 Michael Pruett * libaudiofile/aiffwrite.c: Make AIFF code handle compressed data formats more cleanly. * libaudiofile/{wave.h,wave.c,wavewrite.c}: Make WAVE code handle compressed data formats more cleanly. * test/query2.c: Print default value of instrument parameters if instrument parameters are supported. * test/{writeulaw.c,writealaw.c}: Update writeulaw and writealaw to test G.711 compression in AIFF-C and WAVE files in addition to NeXT .snd. 2001-07-08 Michael Pruett * libaudiofile/{aiff.c,aiffwrite.c}: Add support for floating-point AIFF-C files. * test/testfloat.c: Add a test for reading and writing floating-point audio files. * libaudiofile/af_vfs.[ch]: Change the virtual file read and write operations to use size_t and ssize_t as read(2) and write(2) do. 2001-07-07 Michael Pruett * configure.in, test/Makefile.am: Link against libaudio.so only for programs which use it. 2001-07-04 Michael Pruett * test/floatto24.c: Added program to test virtual sample format conversion from float to 24-bit signed integer. 2001-06-28 Michael Pruett * libaudiofile/pcm.c: Added afInitPCMMapping(), afGetPCMMapping(), and afGetVirtualPCMMapping(). 2001-06-28 Michael Pruett * libaudiofile/{wave.c,wavewrite.c}: Improved support for floating-point WAVE files. * libaudiofile/wave.c: Made error messages more informative for currently unsupported data formats such as ADPCM and MPEG audio. * libaudiofile/wave.h: Declared additional WAVE format tag constants. 2001-06-28 Mark Murnane * libaudiofile/{openclose.c,track.c}: Included string.h to ensure proper declaration of memset(). * libaudiofile/util.c: Ditto for memset(), strlen() and strcpy(). * libaudiofile/modules/g711.c: Ditto for strerror(). * sfcommands/sfconvert.c: Ditto for strcmp(). 2001-06-19 Michael Pruett * test/power.c: Adding a new example program which calculates the power and peak amplitudes of an audio file. This program is based on Chris Vaill's normalize. 2001-06-06 Michael Pruett * libaudiofile/modules.c: Fix conversion between 24-bit and 32-bit data formats on little-endian systems. Thanks to Axel Roebel for pointing out this problem. * libaudiofile/aiffwrite.c: Don't write a MARK chunk unless markers are present. Don't confuse the big-endian marker id used for writing to the file with its native-endian value used in calls to afGetMark*. * test/twentyfour.c: Add a new program to test the conversion between 24-bit signed integer data in a file and 32-bit signed integer data in memory. 2001-06-05 Michael Pruett * libaudiofile/af_vfs.c: Prevent division by zero in af_fread and af_fwrite when size is zero. * libaudiofile/aiff.c: Check that the number of markers in a MARK chunk is positive before allocating markers. Thanks to Axel Roebel for pointing out both of these problems. 2001-05-19 Michael Pruett * libaudiofile/nist.[ch]: Checked in support for recognizing NIST SPHERE files. 2001-05-16 Michael Pruett * libaudiofile/query.c: Backing out last change. The file format and instrument parameter selectors once again return arrays of type 'int' rather than arrays of type 'long'. Although the AUpv structure uses only long integers, the Audio File Library's API uses 'int' and not 'long' when describing file formats and instrument parameters. Furthermore all existing applications expect the affected query calls to return arrays of int. * test/query2.c: Expect arrays of int rather than arrays of long when querying on file formats and instrument parameters. 2001-05-09 Michael Pruett * libaudiofile/aiffwrite.c: Fix a memory leak in WriteMARK, and make WriteMARK use the afGetMark* calls rather than accessing track->markers directly. * libaudiofile/util.[ch]: Add _af_print_pvlist for debugging. 2001-05-04 Michael Pruett * libaudiofile/ircam.[ch]: Make a first pass at supporting the IRCAM file format. 2001-04-25 Michael Pruett * libaudiofile/query.c: Although the documentation states that certain selectors return an array of integers, the AUpv structure uses only long integers. I'm resolving the ambiguity in the documentation by making such selectors return an array of long integers. This change has no impact on platforms where sizeof (int) == sizeof (long), but it makes the query system consistent on platforms where the above is not the case. 2001-04-23 Michael Pruett * libaudiofile/wavewrite.c: Fixed a bug seen on 64-bit systems in which WAVE files would be created with zero-length RIFF and data chunks. (Thanks to Wayne Price for bringing this bug to my attention.) 2001-04-19 Michael Pruett * sfcommands/sfconvert.c: Make sfconvert use the sample rate of the input file. 2001-04-09 Michael Pruett * Include in source files which use string functions. (Thanks to Michael Madore for pointing out this omission.) * Fix calculation of file position for G.711 compression. (Thanks to Bruce Forsberg for pointing out this bug.) * configure.in: Check for int{8,16,32}_t and define them appropriately if they are missing. 2001-02-20 Michael Pruett * Released version 0.2.1. * Removed -release flag on library build. * libaudiofile/*: Added some lint-style comments to clean up some warnings pointed out by Jean-Francois Panisset. 2000-12-15 Michael Pruett * Released version 0.2. 2000-11-01 Michael Pruett * libaudiofile/*: Finished integrating the modules code. 2000-10-26 Michael Pruett * libaudiofile/raw.[ch]: Added support for raw file reading and writing. 2000-10-24 Michael Pruett * libaudiofile/*: Cleaned up the Audio File Library and improved error handling. 2000-10-09 Michael Pruett * libaudiofile/wave*.[ch]: WAVE format chunks can occur in any order. Processing of WAVE chunks now acts accordingly. (Thanks to Michael Krause for pointing out shortcomings in the previous implementation.) * libaudiofile/*.[ch]: The VFS layer doesn't handle SEEK_END as a valid mode for fseek; we must use af_flength instead. * Removed query from the test suite as it did not handle values of AU_NULL_PVLIST returned from afQuery. (It even crashes under IRIX.) 2000-10-04 Michael Pruett * libaudiofile/*.c: Added better error handling. * libaudiofile/*.c: Added the file format unit structure, updated querying accordingly. All queries except compression types are implemented. * Added query and query2 to the test suite. 2000-09-13 Michael Pruett * libaudiofile/*.c: Added support for G.711 a-law, thanks to Bruce Forsberg. 1999-11-20 Michael Pruett * libaudiofile/*.c: Cleaning up, added afOpenFD. 1999-08-21 Kjartan Maraas * */*c: Even more warning fixes - initialize vars, add 'int' as return type of a function, and include headers. 1999-08-20 Elliot Lee * */*.c: More warning fixes - remove unused variables, add 'int' as return type of main(), and include some more header files. 1999-08-18 Anders Carlsson * Fixed compiler warnings. 1999-08-16 Elliot Lee * libaudiofile/af_vfs.[ch]: Virtualize file access. * libaudiofile/*.[ch]: Use the new virtualized file access routines. 1999-05-09 Michael Pruett * bread.c, ulaw.c: If more sample frames are requested than remain in the file, limit the number of sample frames that can be returned. This bug was brought to my attention by Scott Heavner. * test/sgi.[ch]: These files contain SGI Audio Library routines used in SGI-specific test programs. * test/irixread.c, test/irixtest.c, test/irixtestloop.c: These programs now use the routines contained in sgi.[ch] and are more robust. 1999-05-23 Raja R Harinath * test/miscread.c: Include . * test/miscwrite.c: Likewise. * test/writeaiff.c: Likewise. * test/writenext.c: Likewise. * test/writeulaw.c: Likewise. * test/writewave.c: Likewise. 1999-05-09 Michael Pruett * Merge in Audio File Library version 0.1.7. * aiff.c: Fixed an obscure bug in AIFF parsing in the instrument chunk parsing code. Made AIFF parsing slightly cleaner by replacing multiple-character constant comparisons with memcmp and strings. * compression.[ch]: Added support for compressed audio. * au.c, auwrite.c, ulaw.c, g711.[ch]: Incorporated support for G.711 mu-law encoding. Currently this encoding is only available for NeXT/Sun .snd/.au format files. * audiofile.c: Virtual byte order is now set properly. * aiff.c, audiofile.c, auwrite.c, bread.c, bwrite.c, compression.c, instrument.c, loop.c, marker.c, misc.c, query.c, ulaw.c: Added more error checking. * docs/*: Documentation has been improved. * test/*: Several simple test programs have been added as a test suite. * sfcommands/*: Fix hard-coded virtual byte order since it's now set by the library. * configure.in: Fixed platform-specific tests and detect byte order at configuration time. 1999-04-11 James Henstridge * audiofile.spec.in: added %{prefix}/share/aclocal/* to files list for the devel package. 1999-02-24 Martin Baulig * configure.in (BUILD_STATIC_LIBS): New automake conditional. * sfcommands/Makefile.am, test/Makefile.am: Only link statically if we build static libraries. 1999-02-22 Raja R Harinath * libaudiofile/audiofile.h (extern "C"): Remove duplicated __cplusplus guards. 1999-02-22 Michael Fulbright * Fixed spec file to be autogenerated 1999-02-22 Michael Pruett Elliot Lee * */*: Merge in audiofile 0.1.6. 1999-01-20 Jeff Garzik * libaudiofile/wave.c: Fix newly-uncovered bug caught by Mike Bond . 1999-01-17 Jeff Garzik * aiff.c, wave.c: Replaced some [int == '1234'] comparisons with memcmp. * aiff.h: Replaced large enum value with 'const unsigned long' instead, to silence ANSI C compiler warning. * ulaw.c: Converted function declarations from K&R to ANSI C, silencing a (big surprise) ANSI C compiler warning. * libaudiofile/Makefile.am: Remove non-existent instrument.h, loop.h, marker.h * sfcommands/Makefile.am: Add README to EXTRA_DIST. * libaudiofile/aiff.c, libaudiofile/aiffwrite.c, libaudiofile/audiofile.c, libaudiofile/auwrite.c, libaudiofile/bread.c, libaudiofile/bwrite.c, libaudiofile/byteorder.c, libaudiofile/byteorder.h, libaudiofile/extended.c, libaudiofile/extended.h, libaudiofile/instrument.c, libaudiofile/loop.c, libaudiofile/marker.c, libaudiofile/misc.c, libaudiofile/swapblock.c, libaudiofile/swapblock.h, libaudiofile/ulaw.c, libaudiofile/ulaw.h: More namespace cleanups. Made a few functions static, several more renamed to add "_af_" prefix. * libaudiofile/instrument.h, libaudiofile/loop.h, libaudiofile/marker.h: Removed because they only contained prototypes of static funcs, and were included only by their implementation modules. 1999-01-16 Jeff Garzik * test/transparency.c: Change to unsigned short to avoid Sun CC warning. * libaudiofile/swapblock.c: Changed const long to a #define, Sun CC choked on the const. The definition of u_int16_t may be interfering with array definitions like this one, b/c u_int16_t is a macro instead of a typedef on Solaris platforms. * acconfig.h: Protected against multiple inclusion, using @TOP@ and @BOTTOM@. * libaudiofile/afinternal.h: Include config.h for u_int8_t and friends. * libaudiofile/audiofile.h, libaudiofile/aupvlist.h: Mark as extern 'c' if C++ compile. * libaudiofile/aiff.c, libaudiofile/aiffwrite.c, libaudiofile/au.c, libaudiofile/audiofile.c, libaudiofile/auwrite.c, libaudiofile/bread.c, libaudiofile/bwrite.c, libaudiofile/byteorder.c, libaudiofile/swapblock.c, libaudiofile/util.c, libaudiofile/wave.c, libaudiofile/wavewrite.c, test/miscread.c, test/miscwrite.c: s/#if HAVE_CONFIG_H/#ifdef HAVE_CONFIG_H/ 1999-01-16 Jeff Garzik * libaudiofile/afinternal.h, libaudiofile/aiff.c, libaudiofile/aiffwrite.c, libaudiofile/au.c, libaudiofile/audiofile.c, libaudiofile/auwrite.c, libaudiofile/bread.c, libaudiofile/bwrite.c, libaudiofile/error.c, libaudiofile/error.h, libaudiofile/instrument.c, libaudiofile/loop.c, libaudiofile/marker.c, libaudiofile/misc.c, libaudiofile/util.c, libaudiofile/util.h, libaudiofile/wave.c, libaudiofile/wavewrite.c: Major namespace cleanups: Made several functions static as warranted. Renamed a some exported private functions to _af_funcname to prevent collision. 1999-01-16 Jeff Garzik * autogen.sh configure.in acconfig.h: Added AM_CONFIG_HEADER and requisite support for it. * libaudiofile/aiff.c libaudiofile/aiffwrite.c libaudiofile/au.c libaudiofile/audiofile.c libaudiofile/auwrite.c libaudiofile/bread.c libaudiofile/bwrite.c libaudiofile/byteorder.c libaudiofile/swapblock.c libaudiofile/util.c libaudiofile/wave.c libaudiofile/wavewrite.c test/miscread.c test/miscwrite.c: Conditionally include config.h. 1999-01-16 Raja R Harinath * libaudiofile/error.c (afSetErrorHandler): Provide a better implementation which agrees with the semantics of the variable names, and usual "set_error_handler" type of functions. (Modifies a "fix" in commit: "1999-01-16 Jeff Garzik "). 1999-01-16 Jeff Garzik * libaudiofile/aes.c, libaudiofile/aiff.c, libaudiofile/aiffwrite.c, libaudiofile/au.c, libaudiofile/audiofile.c, libaudiofile/aupv.c, libaudiofile/auwrite.c, libaudiofile/bread.c, libaudiofile/bwrite.c, libaudiofile/error.c, libaudiofile/loop.c, libaudiofile/misc.c, libaudiofile/swapblock.c, libaudiofile/util.c, libaudiofile/wave.c, libaudiofile/wavewrite.c, sfcommands/printinfo.c, sfcommands/sfconvert.c, sfcommands/sfinfo.c: Corrected missing-default-case, unused-var, no-return-value, implicit-declaration, other gcc warnings. Fixing those warnings also fixed many bugs. * test/adddcoffset.c, test/copy.c, test/linuxtest.c, test/miscread.c, test/miscwrite.c, test/results.c, test/transparency.c: Changed main() declaration to standard one, fixed warnings. 1999-01-01 Jeff Garzik * libaudiofile/audiofile.h: Corrected comma-in-final-element warnings. 1998-12-10 Jeff Garzik * tests/miscwrite.c: include string.h to silence warning about strlen Tue Dec 8 21:38:08 PST 1998 Manish Singh * auto* fixes for make dist 1998-12-07 Jeff Garzik * LICENSE: Removed. Automake automatically adds the file COPYING to the distribution, so this file is redundant. 1998-12-01 Yo Ric Dude * libaudiofile/Makefile.am, au.c, audiofile.c, audiofile.h, bread.c, teach libaudiofile how to handle u-law encoded .au files. NOTE: only added routines for reading files. * libaudiofile/ulaw.c, libaudiofile/ulaw.h: u-law algorithms from http://www.itl.atr.co.jp/comp.speech/Section2/Q2.7.html. 1998-10-21 Bertrand Guiheneuf * added an audiofile-config and an audiofile.m4 1998-10-17 Raja R Harinath * configure.in (u_int_{8,16,32}_t): Define these to some "natural" C types if the typedefs are missing. * libaudiofile/Makefile.am (include_HEADERS): Remove spurious empty line. Wed Oct 7 02:13:34 PDT 1998 Manish Singh * auto* stuff fixes Wed Oct 7 02:08:30 CDT 1998 Frank Belew * added support for automake, and libtool 1998-07-16 Michael Pruett * Changes for the Audio File Library version 0.1.4. AES data functions are now implemented. They're only effective whenusing the AIFF/AIFF-C formats. Miscellaneous data functions are now implemented for the AIFF/AIFF-C file formats. The Audio File Library now uses GNU autoconf. The Audio File Library now builds shared libraries. Some rudimentary documentation is now included. 1998-06-22 Michael Pruett * Changes for the Audio File Library version 0.1.3 The Linux-specific test programs should work on all Linux platforms which support audio. (I believe this includes just Linux/i386, Linux/PowerPC, and Linux/Alpha. I may be wrong.) The function afReadFrames now returns the proper value. The afGetInstParams, afSetInstParams, afGetInstParamLong, and afSetInstParamLong calls are now implemented to the same extent that SGI's versions are. Instrument, marker, and loop data functions are now fully implemented. I'll eventually get around to the miscellaneous data functions. The AUpvlist functions have been implemented and tested. The afQuery calls are on my list of things to implement. A few minor bugs have been fixed.