Cleanup
[external/libsndfile.git] / ChangeLog
1 2009-12-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2
3     * src/ogg.c
4     When decoding to short or int, clip the decoded signal to [-1.0, 1.0] if
5     its too hot. Thanks to Dmitry Baikov for suggesting this.
6
7     * NEWS README doc/*.html
8     Updates for 1.0.21.
9
10 2009-12-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
11
12     * programs/sndfile-jackplay.c man/sndfile-jackplay.1
13     Remove these which will now be in found in the sndfile-tools package.
14
15     * programs/Makefile.am man/Makefile.am
16     Remove build rules for sndfile-jackplay.
17
18     * configure.ac
19     Remove detection of JACK Audio Connect Kit.
20
21     * programs/sndfile-concat.c man/sndfile-concat.1
22     Add new program with man page.
23
24     * man/Makefile.am programs/Makefile.am
25     Hook sndfile-concat into build system.
26
27 2009-12-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
28
29     * tests/error_test.c
30     Don't terminate when sf_close() returns zero in error_close_test().
31     It seems that Windows 7 behaves differently from earlier versions of
32     Windows.
33
34 2009-12-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
35
36     * configure.ac M4/*.m4
37     Rename all custom macros from AC_* to MN_*.
38
39     * programs/sndfile-interleave.c
40     Make it actually work.
41
42 2009-12-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
43
44     * doc/*.html configure.ac
45     Corrections and clarifications courtesy of Robin Forder.
46
47     * programs/sndfile-convert.c programs/common.[ch]
48     Move some code from convert to common for reuse.
49
50     * programs/sndfile-interleave.c programs/sndfile-interleave.c
51     Add new programs sndfile-interleave and sndfile-deinterleave.
52
53     * programs/Makefile.am
54     Hook new programs into build.
55
56 2009-12-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
57
58     * src/create_symbols_file.py tests/stdio_test.c tests/win32_test.c
59     Minor OS/2 tweaks as suggested by David Yeo.
60
61     * tests/multi_file_test.c
62     Fix file creation flags on windows. Thanks to Bruce Sharpe.
63
64     * src/sf_unistd.h
65     Set all group and other file create permssions to zero.
66
67     * tests/win32_test.c
68     Add a new test.
69
70 2009-11-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
71
72     * doc/print.css doc/*.html
73     Add a print stylesheet and update all HTML documents to reference it.
74     Thanks to Aditya Bhargava for suggesting this.
75
76     * doc/index.html
77     Minor corrections.
78
79 2009-11-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
80  
81     * sndfile.pc.in
82     Add a Libs.private entry to assist with static linking.
83
84 2009-11-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
85  
86     * src/make-static-lib-hidden-privates.sh src/Makefile.am
87     Add a script to hide all non-public symbols in the libsndfile.a static
88     library.
89
90 2009-11-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
91  
92     * tests/locale_test.c
93     Correct usage of ENABLE_SNDFILE_WINDOWS_PROTOTYPES.
94
95 2009-11-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
96
97     * src/windows.c
98     Correct usage of ENABLE_SNDFILE_WINDOWS_PROTOTYPES.
99
100 2009-11-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
101
102     * programs/sndfile-convert.c
103     Allow the program to read from stdin by specifying '-' on the command line
104     as the input file.
105
106     * src/sndfile.h.in
107     Hash define ENABLE_SNDFILE_WINDOWS_PROTOTYPES to 1 for greater safety.
108
109     * tests/virtual_io_test.c
110     Add a PAF/PCM_24 test and verify the file length is not negative
111     immediately after openning the file for write.
112
113 2009-10-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
114
115     * src/wav.c
116     When writing loop lengths, adjust the end position by one to make up for
117     Microsoft's screwed up spec. Thanks to Olivier Tristan for the patch.
118
119 2009-10-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
120
121     * src/flac.c
122     Apply patch from Uli Franke allowing FLAC files to be encoded at any sample
123     rate.
124
125 2009-10-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
126
127     * src/nist.c
128     Fix parsing of odd ulaw encoded file provided by Jan Silovsky.
129
130     * configure.ac
131     Insist on libvorbis >= 1.2.3. Earlier verions have bugs that cause the
132     libsndfile test suite to fail on MIPS, PowerPC and others.
133     See: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=549899
134
135 2009-10-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
136
137     * man/sndfile-convert.1
138     Fix warning from Debian's lintian checks.
139
140     * man/sndfile-cmp.1 man/sndfile-jackplay.1 man/sndfile-metadata-get.1
141         man/Makefile.am
142     Add three new minimal manpages and hook into build.
143
144 2009-10-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
145
146     * tests/test_wrapper.sh.in
147     Don't run cpp_test on x86_64-w64-mingw32.
148
149 2009-09-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
150
151     * tests/utils.tpl
152     On windows, make sure the open() function doesn't get called with a third
153     parameter of 0 which fails for no good reason. Also make sure this third
154     parameter doesn't get called with S_IRGRP when compiling for windows because
155     Wine complains.
156
157     * src/sndfile.hh
158     Add a SndfileHandle constructor for windows that takes a 'const wchar_t *'
159     string.
160
161     * doc/FAQ.html
162     Add Q/A : I'm cross compiling libsndfile for another platform. How can I
163     run the test suite?
164
165     * src/create_symbols_file.py src/Makefile.am
166     Add Symbols.static target, a list of symbols, one per line.
167
168 2009-09-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
169
170     * tests/test_wrapper.sh.in
171     Update to allow all tests to be gathered up into a testsuite tarball and
172     then be run using this script.
173
174     * build-test-tarball.mk.in
175     Add a Make script to build a tarball of all the test binaries and the test
176     wrapper script. This is useful for cross compiling; you can build the
177     binaries, build test test tarball and transfer the test tarball to the
178     target machine for testing.
179
180 2009-09-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
181
182     * src/common.h src/*.c
183     Modify SF_FILE struct to allow it to carry either 8-bit or 16-bit strings
184     for the file path, directory and name. Fixes for this change throughout.
185
186     * src/windows.c src/Makefile.am
187     New file defining new windows only public function sf_wchar_open() which
188     takes a 'const wchar_t *' string (LPCWSTR) for the file name parameter.
189
190     * src/sndfile.h.in
191     Add SF_CHANNEL_MAP_ABISONIC_* entries.
192     Add windows only defintion for sf_wchar_open().
193
194     * src/create_symbols_file.py
195     Add sf_wchar_open() to the list of public symbols (windows only).
196
197     * tests/locale_test.c
198     Add a wchar_test() to test sf_wchar_open().
199  
200 2009-09-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
201
202     * src/common.h src/*.c
203     Split file stuff into PSF_FILE struct within the SF_PRIVATE struct.
204
205 2009-09-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
206
207     * src/aiff.c src/voc.c
208     When a byte is needed, use unsigned char.
209
210     * src/ima_oki_adpcm.c src/broadcast.c src/test_ima_oki_adpcm.c
211     Include sfconfig.h to prevent compile errors with MinGW compilers.
212
213     * configure.ac
214     Remove AM_CONFIG_HEADER due to warnings from autoconf 2.64.
215
216     * tests/locale_test.c
217     Update to work with xx_XX.UTF-8 style locales. Refactoring.
218
219 2009-09-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
220
221     * configure.ac
222     Set __USE_MINGW_ANSI_STDIO to 1 when compiling using MinGW compilers.
223     Remove unneeded AC_SUBST.
224     Report Host CPU/OS/vendor.
225
226 2009-09-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
227
228     * src/sndfile.c
229     Fix error message string.
230
231     * src/flac.c
232     Add 88200 to the list of supported sample rates.
233
234     * src/ogg.c
235     Fix compiler warning when using gcc-4.5.0.
236
237     * programs/sndfile-info.c tests/utils.tpl
238     Remove WIN32 snprintf #define.
239
240     * src/ima_adpcm.c
241     Fix minor bug in aiff_ima_encode_block. Thanks to Denis Fileev for finding
242     this.
243
244 2009-09-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
245
246     * src/caf.c
247     Use the correct C99 format specifier for int64_t.
248
249     * M4/endian.m4
250     Fix detection of CPU endian-ness when cross compiling. Thanks to Pierre
251     Ossman for the bug report.
252
253     * src/caf.c src/sndfile.c
254     Fix reading and writing of PEAK chunks in CAF files.
255
256     * tests/peak_chunk_test.c tests/test_wrapper.sh.in
257     Run peak_chunk_test on CAF files.
258
259 2009-09-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
260
261     * src/aiff.c src/wav.c
262     Use the correct C99 format specifier for int64_t.
263
264 2009-08-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
265
266     * src/rf64.c src/sndfile.c src/wav.c src/wav_w64.h
267     Apply a patch (massaged slightly) from Uli Franke adding handling of the
268     BEXT chunk in RF64 files.
269
270     * tests/command_test.c
271     Update channel_map_test() function so WAV test passes.
272
273     * src/rf64.c
274     Add channel mapping and ambisonic support.
275
276     * src/sndfile.h
277     Add comments showing correspondance between libsndfile channel map
278     defintiions and those used by Apple and MS.
279
280     Add handling of reading/writing channel map info.
281
282     * tests/command_test.c tests/test_wrapper.sh.in
283     Update channel map tests.
284
285 2009-07-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
286
287     * src/common.h
288     Add function psf_isprint() a replacement for the standard C isprint()
289     function which ignores any locale settings and treats all input as ASCII.
290
291     * src/(aiff|common|rf64|sd2|strings|svx|wav).c
292     Use psf_isprint() instead of isprint().
293
294 2009-07-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
295
296     * src/command.c
297     Add string descriptions for SF_FORMAT_RF64 and SF_FORMAT_MPC2K.
298
299 2009-06-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
300
301     * programs/sndfile-play.c
302     Allow use of Open Sound System audio output under FreeBSD.
303
304 2009-06-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
305
306     * configure.ac
307     Add patch from Conrad Parker to add --disable-jack.
308
309 2009-05-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
310
311     * src/alaw.c src/float32.c src/htk.c src/pcm.c src/sds.c src/ulaw.c
312     Fix bugs where invalid files can cause a divide by zero error (SIGFPE).
313     Thanks to Sami Liedes for reporting this a Debian bug #530831.
314
315 2009-05-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
316
317     * src/chanmap.[ch]
318     New files for channel map decoding/encoding.
319
320 2009-05-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
321
322     * configure.ac src/sndfile.h.in
323     Fix MSVC definition of sf_count_t.
324
325 2009-05-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
326
327     * src/wav_w64.[ch]
328     Add wavex_channelmask to WAV_PRIVATE struct and add a function to convert
329     an array of SF_CHANNEL_MASK_* values into a bit mask for use in WAV files.
330
331     * src/wav.c
332     Add ability to write the channel mask.
333
334 2009-05-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
335
336     * programs/sndfile-info.c
337     Add -c command line option to dump the channel map information.
338
339     * src/wav_w64.c
340     Don't bail from parser if channel map bitmask is faulty.
341
342     * src/common.h src/sndfile.c
343     Remove error code SFE_W64_BAD_CHANNEL_MAP which is not needed any more.
344
345     * src/sndfile.c
346     On SFC_SET_CHANNEL_MAP_INFO pass the channel map command down to container's
347     command handler.
348
349 2009-05-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
350
351     * src/sndfile.h.in src/common.h src/sndfile.c src/wav_w64.c
352     Apply a patch from Lennart Poettering (PulseAudio) to allow reading of
353     channel data in WAV and W64 files.
354     Add a test for the above.
355
356 2009-05-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
357
358     * src/FAQ.html
359     Update the section about pre-compiled binaries for Win64.
360
361 2009-05-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
362
363     * src/common.h src/test_conversions.c
364     Be more careful when including <stdint.h> so compiling on pre-C99 platforms
365     (hello Slowlaris) might actually work.
366
367     * NEWS README doc/*.html
368     Updates for 1.0.20.
369
370 2009-04-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
371
372     * src/voc.c
373     Fix a bug whereby opening a specially crafted VOC file could result in a
374     heap overflow. Thanks to Tobias Klein (http://www.trapkit.de) for reporting
375     this issue.
376
377     * src/aiff.c
378     Fix potential (heap) buffer overflow when parsing 'MARK' chunk.
379
380 2009-04-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
381
382     * tests/stdin_test.c
383     Check psf->error after opening file.
384
385     * src/file_io.c
386     Fix obscure seeking bug reported by Hugh Secker-Walker.
387
388     * tests/utils.tpl
389     Add check of sf_error to test_open_file_or_die().
390
391     * src/sndfile.c
392     Clear error if opening resource fork fails.
393
394 2009-04-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
395
396     * tests/alaw_test.c tests/locale_test.c tests/ulaw_test.c
397     Cleanup output.
398
399 2009-03-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
400
401     * src/float32.c
402     Fix f2s_clip_array.
403
404 2009-03-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
405
406     * src/float32.c
407     In host_read_f2s call convert instead of f2s_array.
408
409     * src/ima_adpcm.c
410     Remove dead code.
411
412     * src/test_ima_oki_adpcm.c examples/generate.c tests/dither_test.c
413         tests/dwvw_test.c tests/fix_this.c tests/generate.c
414         tests/multi_file_test.c
415     Minor fixes.
416
417 2009-03-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
418
419     * M4/shave.m4 shave.in
420     Pulled update from upstream.
421
422 2009-03-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
423
424     * doc/api.html
425     Add pointers to example programs in source code tarball.
426
427 2009-03-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
428
429     * src/common.h
430     Define SF_PLATFORM_S64 for non-gcc compilers with 'long long' type.
431
432     * configure.ac
433     Add documentation for --disable-external-libs and improve error handling
434     for that option.
435
436     * src/sndfile.c src/sndfile.h.in src/create_symbols_file.py
437     Add public function sf_version_string.
438
439     * tests/sfversion.c
440     Test function sf_version_string.
441
442     * M4/shave.m4 shave-libtool.in shave.in
443     Add new files from 'git clone git://git.lespiau.name/shave'.
444
445     * configure.ac
446     Enable shave.
447
448     * src/Makefile.am src/binheader_writef_check.py Octave/*
449     Shave related tweaks.
450
451 2009-03-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
452
453     * src/common.h src/caf.c src/sndfile.c
454     Add SF_MAX_CHANNELS (set to 256) and use it.
455
456     * src/sndfile.h.in
457     Check for either _MSCVER or _MSC_VER being defined.
458
459 2009-03-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
460
461     * tests/vorbis_test.c
462     Relax test slighly to allow test to pass on more CPUs etc.
463
464 2009-03-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
465
466     * configure.ac
467     Detect vorbis_version_string() correctly.
468
469 2009-03-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
470
471     * doc/index.html
472     Add a 'See Also' section with a link to sndfile-tools.
473
474     * NEWS README doc/*.html
475     Updates for 1.0.19 release.
476
477     * configure.ac
478     Fix --enable-external-libs logic.
479
480 2009-03-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
481
482     * src/aiff.c
483     Fix resource leak and potential read beyond end of buffer.
484
485     * src/nist.c
486     Fix reading of header value sample_n_bytes.
487
488     * src/sd2.c src/wav.c
489     Fix potential read beyond end of buffer.
490
491     * src/sndfile.c src/svx.c
492     Check return values of file_io functions.
493
494     * tests/win32_test.c
495     Fix resource leak.
496
497     * configure.ac
498     Detect the presence/absence of vorbis_version_string() in libvorbis.
499
500     * src/ogg.c
501     Only call vorbis_version_string() from libvorbis if present.
502
503 2009-02-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
504
505     * tests/win32_test.c
506     Don't use sprintf, even on windows.
507
508     * src/aiff.c src/rf64.c src/wav.c
509     Eliminate dead code, more validation of data read from file.
510
511 2009-02-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
512
513     * src/ima_adpcm.c
514     Clamp values to a valid range before indexing ima_step_size array.
515
516     * src/GSM610/*.c tests/*c programs/*.c src/audio_detect.c
517     Don't include un-needed headers.
518
519     * programs/sndfile-info.c
520     Remove dead code.
521
522     * tests/test_wrapper.sh.in
523     Add 'set -e' so the script exits on error.
524
525     * src/test_ima_oki_adpcm.c
526     Fix read beyond end of array.
527
528     * tests/win32_test.c
529     Add missing close on file descriptor.
530
531     * src/nist.c programs/sndfile-metadata-set.c
532     Fix 'unused variable' warnings.
533
534     * src/aiff.c
535     Fix potential memory leak in handling of 'MARK' chunk.
536     Remove un-needed test (unsigned > 0).
537
538     * src/sd2.c
539     Improve handling of heap allocated buffer.
540
541     * src/sndfile.c
542     Remove un-needed test (always true).
543
544     * src/wav.c src/rf64.c
545     Ifdef out dead code that will be resurected some time in the future.
546
547     * src/wav.c src/w64.c src/xi.c
548     Handle error return values from psf_ftell.
549
550     * src/wav_w64.c
551     Fix handling and error checking of MSADPCM coefficient arrays.
552
553     * regtest/*.c
554     Bunch of fixes.
555
556     * src/test_file_io.c
557     Use snprintf instead of strncpy in test program.
558
559 2009-02-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
560
561     * src/sd2.c
562     Validate data before using.
563
564     * src/caf.c
565     Validate channels per frame value before using, fixing a possible integer
566     overflow bug, leading to a possible heap overflow. Found by Alin Rad Pop of
567     Secunia Research (CVE-2009-0186).
568
569 2009-02-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
570
571     * Octave/octave_test.sh
572     Unset TERM environment variable and export LD_LIBRARY_PATH.
573
574 2009-02-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
575
576     * src/file_io.c
577     In windows code, cast LPVOID to 'char*' in printf.
578
579 2009-02-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
580
581     * M4/octave.m4
582     Clear the TERM environment before evaluating anything in Octave. This works
583     around problems that might occur if a users TERM settings are incorrect.
584     Thanks to Rob Til Freedmen for helping to debug this.
585
586     * src/wav.c
587     Handle four zero bytes as a marker within a LIST or INFO chunk.
588     Thanks to Rogério Brito for supplying an example file.
589
590 2009-02-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
591
592     * src/common.h src/*.c
593     Use C99 snprintf everywhere.
594
595 2009-02-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
596
597     * tests/test_wrapper.sh.in
598     New file to act as the template for the test wrapper script.
599
600     * configure.ac
601     Generate tests/test_wrapper.sh from the template.
602
603     * tests/Makefile.am
604     Replace all tests with a single invocation of the test wrapper script.
605
606 2009-02-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
607
608     * src/ogg.c
609     Record vorbis library version string.
610
611     * configure.ac
612     Require libvorbis >= 1.2.2.
613
614     * M4/endian.m4
615     Fix bracketing of function for autoconf 2.63. Thanks to Richard Ash.
616
617     * M4/octave.m4 M4/mkoctfile_version.m4
618     Clean up AC_WITH_ARG usage using AC_HELP_STRING.
619
620 2009-02-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
621
622     * Octave/Makefile.am
623     Use $(top_buildir) instead of $(builddir) which may not be defined.
624
625     * M4/octave.m4
626     Improve logic and status reporting.
627
628 2009-02-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
629
630     * configure.ac  AUTHORS NEWS README doc/*.html
631     Final tweaks for 1.0.18 release.
632
633 2009-02-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
634
635     * programs/sndfile-convert.c
636     Add 'htk' to the list of convert formats.
637
638     * programs/sndfile-info.c
639     Simplify get_signal_max using SFC_CALC_SIGNAL_MAX command.
640     Increase size of files for which signal max will be calculated.
641
642 2009-01-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
643
644     * doc/index.html
645     Fix links for SoX and WavPlay. Thanks to Daniel Griscom.
646
647 2009-01-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
648
649     * programs/sndfile-metadata-get.c
650     Make valgrind clean.
651     Clean up temp string array usage.
652     Error out if trying to update coding history in RDWR mode.
653
654 2009-01-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
655
656     * doc/index.html
657     Fix links to versions of the LGPL.
658
659 2008-12-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
660
661     * tests/string_test.c
662     Add test for RDWR mode where the file ends up shorter than when it was
663     opened.
664
665     * src/wav.c
666     Truncate the file on close for RDWR mode where the file ends up shorter
667     than when it was opened.
668
669 2008-11-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
670
671     * M4/add_cflags.m4
672     Fix problem with quoting of '#include'.
673
674     * M4/add_cxxflags.m4 configure.ac
675     Add new file M4/add_cxxflags.m4 and use it in configure.ac.
676
677 2008-11-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
678
679     * programs/sndfile-info.c
680     Apply patch from Conrad Parker to calculate and display total duration when
681     more than one file is dumped.
682
683 2008-11-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
684
685     * configure.ac src/Makefile.am
686     Tweaks to generation of Symbols files.
687
688     * tests/win32_ordinal_test.c
689     Update tests for above changes.
690
691 2008-11-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
692
693     * programs/common.c
694     When merging broadcast info, make sure to clear the destination field
695     before copying in the new data.
696
697     * programs/test-sndfile-metadata-set.py
698     Add test for the above.
699
700     * src/broadcast.c
701     Fix checking of required coding_history_size.
702
703 2008-10-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
704
705     * tests/command_test.c
706     Add test to detect if coding history is truncated.
707
708     * src/broadcast.c
709     Fix truncation of coding history.
710
711 2008-10-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
712
713     * tests/command_test.c
714     Add broadcast_coding_history_size test.
715
716     * programs/*.[ch]
717     Use SF_BROADCAST_INFO_VAR to manipulate larger 'bext' chunks.
718
719     * src/rf64.c
720     Add code to prevent infinite loop on malformed file.
721
722     * src/common.h src/sndfile.c src/w64.c src/wav_w64.c
723     Rationalize and improve error handling when parsing 'fmt ' chunk.
724
725     * M4/octave.m4
726     Simplify and remove cruft.
727     Check for correct Octave version.
728
729     * Octave/*
730     Reduce 3 C++ files to one, fix build for octave 3.0, fix build.
731
732     * Octave/sndfile.cc Octave/PKG_ADD
733     Add Octave function sfversion which returns the libsndfile version that the
734     module is linked against.
735
736     * Octave/Makefile.am
737     Bunch of build and 'make distcheck' fixes.
738
739 2008-10-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
740
741     * programs/common.c
742     Return 1 if SFC_SET_BROADCAST_INFO fails.
743
744     * programs/test-sndfile-metadata-set.py
745     Update for new programs directory, exit on any error.
746
747     * tests/error_test.c
748     Fix failure behaviour in error_number_test.
749
750     * src/common.h src/sndfile.c
751     Add error number SFE_BAD_BROADCAST_INFO_SIZE.
752
753     * src/*
754     Reimplement handling of broadcast extentioon chunk in WAV/WAVEX files.
755
756     * src/broadcast.c
757     Fix generation of added coding history.
758
759 2008-10-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
760
761     * programs/sndfile-metadata-get.c programs/sndfile-info.c
762     Exit with non-zero on errors.
763
764 2008-10-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
765
766     * examples/sndfile-to-text.c examples/Makefile.am
767     Add a new example program and hook it into the build.
768
769     * examples/ programs/
770     Add a new directory programs and move sndfile-info, sndfile-play and other
771     real programs to the new directory, leaving example programs where they
772     were.
773
774 2008-10-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
775
776     * tests/Makefile.am
777     Automake 1.10 MinGW cross compiling fixes.
778
779 2008-10-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
780
781     * examples/sndfile-play.c
782     Remove call to deprecated function snd_pcm_sw_params_get_xfer_align.
783     Fix gcc-4.3 compiler warnings.
784
785     * tests/command_test.c
786     Fix a valgrind warning.
787
788     * tests/error_test.c tests/multi_file_test.c tests/peak_chunk_test.c
789         tests/pipe_test.tpl tests/stdio_test.c tests/win32_test.c
790     Fix gcc-4.3 compiler warnings.
791
792 2008-10-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
793
794     * src/broadcast.c
795     Fix termination of desitination string in strncpy_crlf.
796     When copying BROADCAST_INFO chunk, make sure destination gets correct line
797     endings.
798
799     * examples/common.c
800     Fix copying of BROADCAST_INFO coding_history field.
801
802 2008-10-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
803
804     * tests/command_test.c
805     Add test function instrument_rw_test, but don't hook it into the testing
806     yet.
807
808     * src/common.h src/command.c src/sndfile.c src/flac.c
809     Error code rationalization.
810
811     * src/common.h src/sndfile.c
812     Set psf->error to SFE_CMD_HAS_DATA when adding metadata via sf_command()
813     fails due to psf->have_written being true.
814
815     * doc/command.html
816     Document the SFC_GET/SET_BROADCAST_INFO comamnds.
817
818 2008-10-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
819
820     * tests/command_test.c
821     Improve error reporting when '\0' is found in coding history.
822     Fix false failure.
823
824 2008-10-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
825
826     * src/broadcast.c
827     Convert all coding history line endings to \r\n.
828
829     * tests/command_test.c
830     Add test to make sure all line endings are converted to \r\n.
831
832 2008-10-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
833
834     * src/broadcast.c
835     Changed the order of coding history fields.
836
837     * tests/command_test.c
838     Update bextch test to cope with previous change.
839
840     * examples/common.c
841     Add extra length check when copying broadcast info data.
842
843 2008-10-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
844
845     * tests/utils.tpl tests/pcm_test.tpl
846     Update check_file_hash_or_die to use 64 bit hash.
847
848     * tests/checksum_test.c tests/Makefile.am
849     Add new checksum_test specifically for lossy compression of headerless
850     files.
851
852 2008-10-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
853
854     * src/gsm610.c
855     Seek to psf->dataoffset before decoding first block.
856
857     * src/sndfile.c
858     Fix detection of mpc2k files on big endian systems.
859
860 2008-10-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
861
862     * src/broadcast.c
863     Use '\r\n' newlines in Coding History as required by spec.
864
865 2008-10-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
866
867     * src/test_conversions.c
868     Use int64_t instead of 'long long'.
869
870 2008-10-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
871
872     * examples/sndfile-metadata-set.c
873     Remove --bext-coding-history-append command line option because it didn't
874     really make sense.
875
876     * examples/sndfile-metadata-(get|set).c
877     Add usage messages.
878
879     * examples/test-sndfile-metadata-set.py
880     Start work on test coding history.
881
882 2008-09-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
883
884     * README doc/win32.html
885     Bring these up to date.
886
887     * src/aiff.c
888     Fix parsing of REX files.
889
890 2008-09-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
891
892     * src/file_io.c
893     Use intptr_t instead of long for return value of _get_osfhandle.
894
895     * src/test_conversions.c src/test_endswap.tpl
896     Fix printing of int64_t values.
897
898     * examples/sndfile-play.c
899     Fix win64 issues.
900
901     * tests/win32_ordinal_test.c
902     Fix calling of GetProcAddress with ordinal under win64.
903
904     * tests/utils.tpl
905     Fix win64 issues.
906
907 2008-09-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
908
909     * examples/*
910     Rename copy_data.[ch] to common.[ch]. Fix build.
911     Move code from sndfile-metadata-set.c to common.c.
912
913     * examples/Makefile.am tests/Makefile.am regtest/Makefile.am
914     Clean paths.
915
916 2008-09-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
917
918     * doc/tutorial.html doc/Makefile.am
919     Add file doc/tutorial.html and hook into build/dist system.
920
921 2008-09-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
922
923     * examples/sndfile-metadata-set.c
924     Clean up handling of bext command line params.
925
926 2008-09-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
927
928     * src/w64.c
929     Add handling/skipping of a couple of new chunk types.
930
931 2008-09-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
932
933     * configure.ac
934     Add -funsigned-char to CFLAGS if the compiler supports it.
935
936     * examples/sndfile-metadata-(get|set).c
937     Add handling for more metadata types.
938
939 2008-09-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
940
941     * src/common.h
942     Add macros SF_CONTAINER, SF_CODEC and SF_ENDIAN useful for splitting format
943     field of SF_INFO into component parts.
944
945     * src/*.c
946     Use new macros everywhere it is appropriate.
947
948 2008-09-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
949
950     * examples/sndfile-bwf-set.c
951     Massive reworking.
952
953 2008-08-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
954
955     * examples/sndfile-bwf-set.c
956     Add --info-auto-create-date command line option.
957
958     * examples/sndfile-metadata-set.c examples/sndfile-metadata-get.c
959         examples/Makefile.am examples/test-sndfile-bwf-set.py
960     Rename sndfile-bwf-(set|get).c to sndfile-metadata-(set|get).c.
961     Change command line args.
962
963 2008-08-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
964
965     * src/wav.c
966     Allow 'PAD ' chunk to be modified in RDWR mode.
967
968     * src/sndfile.h.in src/sndfile.c
969     Add handling (incomplete) for SFC_SET_ADD_HEADER_PAD_CHUNK.
970
971     * tests/Makefile.am tests/write_read_test.tpl tests/header_test.tpl
972         tests/misc_test.c
973     Add tests for RF64.
974
975     * src/rf64.c
976     Fixes to make sure all tests pass.
977
978     * tests/Makefile.am tests/string_test.c
979     Add string tests (not yet passing).
980
981 2008-08-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
982
983     * src/rf64.c
984     First pass at writing RF64 now working.
985
986 2008-08-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
987
988     * examples/sndfile-convert.c
989     Add SF_FORMAT_RF64 to format_map.
990
991     * src/common.h src/sndfile.c
992     More RF64 support code.
993
994     * examples/sndfile-bwf-set.c
995     Fix the month number in autogenerated date string and use hypen in date
996     instead of slash.
997
998     * examples/test-sndfile-bwf-set.py
999     Update tests.
1000
1001     * examples/sndfile-info.c
1002     When called with -i or -b option, operate on all files on command line, not
1003     just the first.
1004
1005 2008-08-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1006
1007     * src/rf64.c
1008     New file to handle RF64 (WAV like format supportting > 4Gig files).
1009
1010     * src/sndfile.h.in src/common.h src/sndfile.c src/Makefile.am
1011     Hook the above into build so hacking can begin.
1012
1013     * src/pcm.c
1014     Improve log message when pcm_init fails.
1015
1016     * src/sndfile-info.c
1017     Only calculate and print 'Signal Max' if file is less than 10 megabytes in
1018     length.
1019
1020 2008-08-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1021
1022     * tests/string_test.c
1023     Polish string_multi_set_test.
1024
1025     * src/wav.c
1026     In RDWR mode, pad the header if necessary (ie LIST chunk has moved or
1027     length has changed).
1028     Minor fixes in wav_write_strings.
1029     Write PAD chunk with default endian-ness, not a specific endian-ness.
1030
1031     * examples/test-sndfile-bwf-set.py
1032     Add Python script to test sndfile-bwf-set/get.
1033
1034     * examples/sndfile-bwf-set.c
1035     Clean up and fixes.
1036
1037     * src/wav.c
1038     Merge function wavex_write_header into wav_write_header, deleting about 70
1039     lines of code.
1040
1041     * src/common.h
1042     Double value of SF_MAX_STRINGS.
1043
1044     * tests/string_test.c
1045     Add string tests for WAVEX and RIFX files.
1046
1047     * tests/command_test.c
1048     Add broadcast test for WAVEX files.
1049
1050 2008-08-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1051
1052     * tests/string_test.c
1053     Add a new string_rdwr_test (currently failing for WAV).
1054     Add a new string_multi_set_test (currently failing).
1055
1056     * tests/command_test.c
1057     Add new broadcast_rdwr_test (currently failing).
1058
1059     * src/wav.c
1060     Fix to WAV parser to allow 'bext' chunk to be updated in place.
1061     In wav_write_tailer, seek to psf->dataend if its greater than zero.
1062
1063     * src/sndfile.c
1064     Make sure psf->have_written gets set correctly in mode SFM_RDWR.
1065
1066     * configure.ac
1067     Test for <sys/time.h> and gettimeofday.
1068
1069     * src/common.c
1070     Use gettimeofday() to initialize psf_rand_int32.
1071
1072     * src/common.h src/sndfile.c
1073     Add unique_id field to SF_PRIVATE struct.
1074
1075     * src/common.h src/sndfile.c src/wav.c src/wav_w64.[ch]
1076     Move wavex_ambisonic field from SF_PRIVATE struct to WAV_PRIVATE struct.
1077
1078     * src/common.h src/strings.c
1079     Add function psf_location_string_count.
1080
1081 2008-08-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1082
1083     * configure.ac
1084     Test for localtime and localtime_r.
1085
1086     * examples/sndfile-convert.c
1087     In function copy_metadata(), copy broadcast info if present.
1088
1089     * examples/copy_data.[ch] examples/Makefile.am
1090     Break some functionality out of sndfile-convert.c so it can be used in
1091     examples/sndfile-bwf-set.c.
1092
1093     * tests/utils.tpl
1094     Add new function create_short_sndfile().
1095
1096     * examples/sndfile-bwf-set.c examples/sndfile-bwf-get.c
1097         examples/Makefile.am
1098     Add new files and hook into build.
1099
1100 2008-08-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1101
1102     * src/sndfile.h.in
1103     Fix comments. Patch from Mark Glines.
1104
1105 2008-07-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1106
1107     * tests/misc_test.c
1108     Use zero_data_test on Ogg/Vorbis files.
1109
1110     * src/ogg.c
1111     Fix segfault when closing an Ogg/Vorbis file that has been opened for write
1112     but had no actual data written to it. Bug reported by Chinoy Gupta.
1113
1114     * tests/Makefile.am
1115     Make sure to run mist_test on Ogg/Vorbis files.
1116
1117 2008-07-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1118
1119     * regtest/Makefile.am
1120     Use SQLITE3_CFLAGS to locate sqlite headers.
1121
1122 2008-07-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1123
1124     * doc/index.html doc/FAQ.html
1125     Add notes about which versions of windows libsndfile works on.
1126
1127 2008-07-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1128
1129     * tests/misc_test.c
1130     Add a test for correct handling of Ambisonic files. Thanks to Fons
1131     Adriaensen for the test.
1132
1133     * src/wav.c src/wav_w64.c
1134     Fix handling of Ambisonic files. Thanks to Fons Adriaensen for the patch.
1135
1136 2008-06-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1137
1138     * configure.ac
1139     Fix detection/enabling of external libs.
1140
1141     * M4/extra_pkg.m4 M4/Makefile.am
1142     Add m4 macro PKG_CHECK_MOD_VERSION which is a hacked version
1143     PKG_CHECK_MODULES. The new macro prints the version number of the package
1144     it is searching for.
1145
1146 2008-06-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1147
1148     * src/aiff.c
1149     Apply a fix from Axel Roebel where if the second loop in the instrument
1150     chunk is none, the loop mode is written into the first loop.
1151
1152 2008-05-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1153
1154     * src/test_float.c src/test_main.(c|h) src/Makefile.am
1155     Add new file to test functions float32_(le|be)_(read|write) and
1156     double64_(le|be)_(read|write). Hook into build and testsuite.
1157
1158     * src/double64.c src/float32.c
1159     Fix bugs in functions found by test added above. Thanks to Nicolas Castagne
1160     for reporting this bug.
1161
1162     * src/sndfile.h.in
1163     Change time_reference_(low|high) entries of SF_BROADCAST_INFO struct to
1164     unsigned.
1165
1166     * examples/sndfile-info.c
1167     Print out the BEXT time reference in a sensible format.
1168
1169 2008-05-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1170
1171     * src/*.c
1172     Fuzz fixes.
1173
1174     * src/ogg.c
1175     Add call to ogg_stream_clear to fix valgrind warning.
1176
1177     * src/aiff.c
1178     Fix x86_64 compile issue.
1179
1180     * configure.ac src/Makefile.am src/flac.c src/ogg.c
1181     Link to external versions of FLAC, Ogg and Vorbis.
1182
1183     * tests/lossy_comp_test.c tests/ogg_test.c tests/string_test.c
1184         tests/vorbis_test.c tests/write_read_test.tpl
1185     Fix tests when configured with --disable-external-libs.
1186
1187     * tests/external_libs_test.c tests/Makefile.am
1188     Add new test and hook into build and test suite.
1189
1190     * src/command.c
1191     Use HAVE_EXTERNAL_LIBS to ensure that the SFC_GET_FORMAT_* commands return
1192     the right data when external libs are disabled.
1193
1194 2008-05-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1195
1196     * tests/write_read_test.tpl
1197     Add a test for extending a file during write by seeking past the current
1198     end of file.
1199
1200     * src/sndfile.c
1201     Allow seeking past end of file during write.
1202
1203 2008-05-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1204
1205     * doc/api.html doc/command.html
1206     Move all information about the sf_command function to command.html and add
1207     a link from documentation of the sf_read/write_raw function to the
1208     SFC_RAW_NEEDS_ENDSWAP command.
1209
1210     * doc/index.html doc/FAQ.html doc/libsndfile.css
1211     Minor documentation tweaks.
1212
1213 2008-05-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1214
1215     * configure.ac
1216     Add AM_PROG_CC_C_O.
1217
1218 2008-04-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1219
1220     * tests/error_test.c
1221     Add a test to make sure if file opened with sf_open_fd, and then the file
1222     descriptor is closed, then sf_close will return an error code. Thanks to
1223     Dave Flogeras for the bug report.
1224
1225     * src/sndfile.c
1226     Make sf_close return an error is the file descriptor is already closed.
1227
1228 2008-04-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1229
1230     * configure.ac
1231     Set object format to aout for OS/2. Thanks to David Yeo.
1232
1233     * src/mpc2k.c src/sndfile.c src/sndfile.h.in src/common.h src/Makefile.am
1234     Add ability to read MPC 2000 file.
1235
1236     * tests/write_read_test.tpl tests/misc_test.c tests/header_test.tpl
1237         tests/Makefile.am
1238     Add tests for MPC 2000 file format.
1239
1240     * examples/sndfile-convert.c
1241     Allow conversion to MPC 2000 file format.
1242
1243 2008-04-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1244
1245     * src/VORBIS/lib/codebook.c
1246     Sync from upstream SVN.
1247
1248     * autogen.sh configure.ac
1249     Minor tweaks.
1250
1251 2008-04-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1252
1253     * src/ogg.c
1254     Add a patch that fixes finding the length in samples of an Ogg/Vorbis file.
1255     The patch as supplied segfaulted and required many hours of debugging.
1256
1257     * src/OGG/bitwise.c
1258     Sync from upstream SVN.
1259
1260 2008-04-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1261
1262     * src/aiff.c
1263     Fix up handling of 'APPL' chunk. Thanks to Axel Roebel for bringing up
1264     this issue.
1265
1266 2008-04-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1267
1268     * tests/*.c
1269     Add calls to sf_close() where needed.
1270
1271     * tests/utils.tpl tests/multi_file_test.c
1272     Always pass 0 as the third argument to open when OS_IS_WIN32.
1273
1274 2008-04-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1275
1276     * src/test_*
1277     Add files test_main.[ch].
1278     Collapse all tests into a single executable.
1279
1280 2008-03-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1281
1282     * src/FLAC
1283     Sync to upstream CVS.
1284
1285 2008-03-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1286
1287     * src/common.h
1288     Make SF_MIN and SF_MAX macros MinGW friendly.
1289
1290     * examples/sndfile-(info|play).c
1291     Use Sleep function from <windows.h> instead of _sleep.
1292
1293     * tests/locale_test.c
1294     Disable some tests when OS_IS_WIN32.
1295
1296     * src/FLAC/src/share/replaygain_anal/replaygain_analysis.c
1297         src/FLAC/src/share/utf8/utf8.c
1298     MinGW fixes.
1299
1300 2008-03-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1301
1302     * doc/FAQ.html
1303     Tweaks to pcm16 <-> float conversion answer.
1304
1305 2008-02-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1306
1307     * src/OGG
1308     Sync to SVN upstream.
1309
1310     * Makefile.am
1311     Add 'DISTCHECK_CONFIGURE_FLAGS = --enable-gcc-werror'.
1312
1313 2008-02-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1314
1315     * examples/sndfile-jackplay.c
1316     Minor tweaks to warning message printed when compiled without libjack.
1317
1318 2008-01-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1319
1320     * tests/peak_chunk_test.c
1321     Improve read_write_peak_test to find more errors. Inspired by example
1322     provided by Nicolas Castagne.
1323
1324     * src/aiff.c
1325     Another SFM_RDWR fix shown up by above test.
1326
1327 2008-01-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1328
1329     * src/aiff.c
1330     Fix reading of COMM encoding string.
1331
1332     * src/chunk.c src/common.h src/Makefile.am
1333     New file for storing and retrieving info about header chunks. Hook into
1334     build.
1335
1336     * src/aiff.c
1337     Use new chunk logging to fix problem with AIFF in RDWR mode.
1338
1339 2008-01-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1340
1341     * src/command.c
1342     Add WVE to the list of major formats.
1343
1344     * tests/aiff_rw_test.c
1345     Fix error reporting.
1346
1347 2008-01-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1348
1349     * src/common.[ch]
1350     Add internal functions str_of_major_format, str_of_minor_format,
1351     str_of_open_mode and str_of_endianness.
1352
1353     * tests/write_read_test.tpl
1354     Fix reporting of errors in new_rdwr_XXXX_test.
1355
1356 2008-01-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1357
1358     * examples/sndfile-play.c
1359     Apply patch from Yair K. to fix compiles with OSS v4.
1360
1361     * src/common.h src/float32.c src/double64.c
1362     Rename psf->float_enswap to psf->data_endswap.
1363
1364     * src/sndfile.h.in src/sndfile.c src/pcm.c
1365     Add command SFC_RAW_NEEDS_ENDSWAP.
1366
1367     * tests/command.c
1368     Add test for SFC_RAW_NEEDS_ENDSWAP.
1369
1370     * doc/command.html
1371     Document SFC_RAW_NEEDS_ENDSWAP.
1372
1373     * tests/peak_chunk_test.c
1374     Add test function read_write_peak_test. Thanks to Nicolas Castagne for the
1375     bug report.
1376
1377 2008-01-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1378
1379     * examples/sndfile-cmp.c
1380     Add new example program contributed by Conrad Parker.
1381
1382     * examples/Makefile.am
1383     Hook into build.
1384
1385     * doc/development.html
1386     Change use or reconfigure.mk to autogen.sh.
1387
1388 2008-01-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1389
1390     * tests/win32_test.c
1391     Add another win32 test.
1392
1393     * tests/util.tpl
1394     Add function file_length_fd which wraps fstat.
1395
1396     * tests/Makefile.am
1397     Run the multi_file_test on AU files.
1398
1399     * tests/multi_file_test.c
1400     Use function file_length_fd() instead of file_length() to overcome stupid
1401     win32 bug. Fscking hell Microsoft sucks so much.
1402
1403 2008-01-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1404
1405     * src/sd2.c
1406     Fix a rsrc parsing bug. Example file supplied by Uli Franke.
1407
1408 2007-12-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1409
1410     * doc/index.html
1411     Allow use of either LGPL v2.1 or LGPL v3.
1412
1413     * tests/header_test.tpl
1414     Add header_shrink_test from Axel Roebel.
1415
1416     * src/wav.c
1417     Add fix from Axel Roebel for writing files with float data but no peak
1418     chunk (ie peak chunk gets removed after the file is opened).
1419
1420     * src/aiff.c tests/header_test.tpl
1421     Apply similar fix to above for AIFF files.
1422
1423     * src/wav.c tests/header_test.tpl
1424     Apply similar fix to above for WAVEX files.
1425
1426     * src/command.c
1427     Add Ogg/Vorbis to 'get format' commands.
1428
1429 2007-12-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1430
1431     * src/ogg.c
1432     Fix seeking on multichannel Ogg Vorbis files. Reported by Bodo.
1433     Set the default encoding quality to 0.4 instead of 4.0 (Bodo again).
1434
1435     * tests/ogg_test.c
1436     Add stereo seek tests.
1437
1438 2007-12-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1439
1440     * tests/ogg_test.c
1441     Add a test (currently failing) for stereo seeking on Ogg Vorbis files. Test
1442     case supplied by Bodo.
1443
1444     * tests/utils.(def|tpl)
1445     Add compare_XXX_or_die functions.
1446
1447 2007-12-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1448
1449     * src/aiff.c
1450     Fix a bug where ignoring ssnd_fmt.offset and ssnd_fmt.blocksize caused
1451     misaligned reading of 24 bit data. Thanks to Uli Franke for reporting this.
1452
1453 2007-12-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1454
1455     * src/vox_adpcm.c src/ima_oki_adpcm.[ch] src/Makefile.am
1456     Merge in code from the vox-patch branch. Thanks to Robs for the patch
1457     which fixes a long standing bug in the VOX codec.
1458
1459 2007-12-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1460
1461     * examples/sndfile-convert.c
1462     Fix handling of -override-sample-rate=X option.
1463
1464 2007-11-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1465
1466     * src/ogg.c src/VORBIS
1467     Merge in Ogg Vorbis support from John ffitch of the Csound project.
1468
1469 2007-11-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1470
1471     * src/sndfile.c
1472     Recognise files with 'vox6' extension as 6kHz OKI VOX ADPCM files. Also
1473     recognise 'vox8' as and 'vox' as 8kHz files.
1474
1475     * configure.ac
1476     Detect libjack (JACK Audio Connect Kit).
1477
1478     * examples/sndfile-jackplay.c examples/Makefile.am
1479     Add new example program to play sound files using the JACK audio server.
1480     Thanks to Jonatan Liljedahl for allowing this to be included.
1481
1482 2007-11-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1483
1484     * doc/index.html
1485     Update support table with SD2 and FLAC.
1486
1487 2007-11-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1488
1489     * src/sndfile.c
1490     Fix calculation of internal value psf->read_current when attempting to read
1491     past end of audio data.
1492     Remove redundant code.
1493
1494     * tests/lossy_comp_test.c
1495     Add read_raw_test to check that raw reads do not go past the end of the
1496     audio data section.
1497     Clean up error output messages.
1498
1499     * src/sndfile.c
1500     Add code to prevent sf_read_raw from reading past the end of the audio data.
1501
1502     * tests/Makefile.am
1503     Add the wav_pcm lossy_comp_test.
1504
1505 2007-11-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1506
1507     * configure.ac src/Makefile.am src/create_symbols_file.py
1508     More OS/2 fixes from David Yeo.
1509
1510 2007-11-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1511
1512     * src/file_io.c tests/utils.tpl tests/benchmark.tpl
1513     Improve handling of requirements for O_BINARY as suggested by Ed Schouten.
1514
1515 2007-11-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1516
1517     * src/common.h
1518     Fix symbol class when SF_MIN is nested inside SF_MAX or vice versa.
1519
1520     * src/create_symbols_file.py
1521     Add support for OS/2 contributed by David Yeo.
1522
1523 2007-11-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1524
1525     * M4/gcc_version.m4
1526     Add macro AC_GCC_VERSION to detect GCC_MAJOR_VERSION and GCC_MINOR_VERSION.
1527
1528     * configure.ac
1529     Use AC_GCC_VERSION to work around gcc-4.2 inline warning stupidity.
1530     See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33995
1531     Use -fgnu-inline to prevent stupid warnings.
1532
1533 2007-11-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1534
1535     * tests/util.tpl
1536     Increase the printing width for print_test_name().
1537
1538     * tests/command_test.c tests/Makefile.am
1539     Add tests for correct updating of broadcast WAV coding history.
1540
1541     * examples/sndfilehandle.cc examples/Makefile.am
1542     Add example program using the C++ SndfileHandle class.
1543
1544 2007-10-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1545
1546     * src/common.h src/sndfile.c
1547     Add error codes SFE_ZERO_MAJOR_FORMAT and SFE_ZERO_MINOR_FORMAT.
1548
1549 2007-10-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1550
1551     * src/sd2.c
1552     Identify sample-rate/sample-size/channels by resource id.
1553
1554 2007-10-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1555
1556     * src/broadcast.c src/common.h src/sndfile.c
1557     Improvements to handling of broadcast info in WAV files. Thanks to Frederic
1558     Cornu and other for their input.
1559
1560 2007-10-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1561
1562     * src/FLAC/include/share/alloc.h
1563     Mingw fix for SIZE_T_MAX from Uli Franke.
1564
1565 2007-10-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1566
1567     * tests/open_fail_test.c tests/error_test.c tests/Makefile.am
1568     Move tests from open_fail_test.c to error_test.c and remove the former.
1569
1570 2007-10-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1571
1572     * tests/scale_clip_test.(def|tpl)
1573     Add tests for SFC_SET_INT_FLOAT_WRITE command.
1574
1575     * doc/command.html
1576     Add docs for SFC_SET_INT_FLOAT_WRITE command.
1577
1578     * examples/sndfile-play.c tests/dft_cmp.c
1579     Fix gcc-4.2 warning messages.
1580
1581 2007-10-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1582
1583     * src/sndfile.h.in src/sndfile.c
1584     Add command SFC_GET_CURRENT_SF_INFO.
1585
1586     * src/sndfile.h.in src/sndfile.c src/create_symbols_file.py
1587     Remove function sf_get_info (only ever in pre-release code).
1588
1589     * tests/command_test.c
1590     Add test for SFC_GET_CURRENT_SF_INFO.
1591
1592 2007-10-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1593
1594     * src/wav.c
1595     Add parsing of 'exif' chunks. Originally coded by Trent Apted.
1596
1597     * configure.ac
1598     Put config stuff in Cfg directory.
1599     Remove check for inttypes.h.
1600
1601 2007-10-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1602
1603     * src/w64.c
1604     Fix writing of 'riff' chunk length and check for correct value in parser.
1605
1606 2007-09-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1607
1608     * doc/index.html
1609     Link to MP3 FAQ entry.
1610
1611 2007-09-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1612
1613     * src/flac.c
1614     Move the blocksize check to an earlier stage of flac_buffer_copy.
1615
1616 2007-09-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1617
1618     * src/FLAC
1619     Huge merge from FLAC upstream.
1620
1621 2007-09-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1622
1623     * examples/*.c
1624     Change license to all example programs to BSD.
1625
1626 2007-09-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1627
1628     * src/FLAC/include/FLAC/metadata.h
1629     Include <sys/types.h> to prevent compile error on OSX.
1630
1631     * Octave/octave_test.sh
1632     Disable test on OSX. Can't get it to work.
1633
1634     * src/flac.c
1635     Check the blocksize returned from the FLAC decoder to prevent buffer
1636     overruns. Reported by Jeremy Friesner. Thanks.
1637
1638 2007-09-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1639
1640     * Makefile.am M4/octave.m4
1641     Fix build when Octave headers are not present.
1642
1643 2007-08-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1644
1645     * doc/development.html
1646     Add note about bzr repository directory looking empty.
1647
1648 2007-08-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1649
1650     * configure.ac Octave/* M4/octave_*
1651     Bunch of changes to add ability to build GNU Octave modules to read/write
1652     sound files using libsndfile from Octave.
1653
1654 2007-08-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1655
1656     * acinclude.m4 configure.ac ...
1657     Get rid of acinclude.m4 and replace it with an M4 directory.
1658
1659 2007-08-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1660
1661     * src/sndfile.h.in
1662     Remove crufty Metrowerks compiler support. Allow header file to be compiled
1663     on windows with both GCC and microsoft compiler.
1664
1665 2007-08-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1666
1667     * tests/dft_cmp.[ch] tests/floating_point_test.tpl
1668     Clean up floating point tests.
1669
1670 2007-08-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1671
1672     * src/aiff.c
1673     Fix segfault when COMM chunk length is byte swapped.
1674
1675 2007-08-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1676
1677     * src/common.h src/mat4.c src/mat5.c src/sndfile.c
1678     Add a generic SFE_CHANNEL_COUNT_ZERO error, remove format specific errors.
1679
1680     * src/au.c
1681     Fix crash on AU files with zero channel count. Reported by Ben Alison.
1682
1683 2007-08-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1684
1685     * src/voc.c
1686     Fix bug in handling file supplied by Matt Olenik.
1687
1688 2007-07-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1689
1690     * src/OGG
1691     Merge from OGG upstream sources.
1692
1693 2007-07-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1694
1695     * src/FLAC
1696     Merge from FLAC upstream sources.
1697
1698 2007-07-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1699
1700     * src/flac.c
1701     Fix memory leak; set copy parameter to FALSE in call to
1702     FLAC__metadata_object_vorbiscomment_append_comment.
1703
1704     * src/common.[ch]
1705     Add function psf_rand_int32().
1706
1707 2007-07-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1708
1709     * src/FLAC
1710     Merge from FLAC upstream sources.
1711
1712     * src/strings.c tests/string_test.c tests/Makefile.am
1713     Make sure string tests for SF_STR_LICENSE actually works.
1714
1715 2007-07-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1716
1717     * tests/string_test.c
1718     Add ability to test strings stored in metadata secion of FLAC files.
1719
1720     * src/string.c
1721     Fix logic for testing if audio data has been written and string is added.
1722     Make sure SF_STR_ALBUM actually works.
1723
1724     * src/flac.c
1725     Finalize reading/writing string metadata. Tests pass.
1726
1727     * src/sndfile.h.in tests/string_test.c src/flac.c
1728     Add string type SF_STR_LICENSE, update test and use for FLAC files.
1729
1730     * src/sndfile.h.in
1731     Add definition for SFC_SET_SCALE_FLOAT_INT_WRITE command.
1732
1733     * src/common.h src/double64.c src/float32.c src/sndfile.c
1734     Add support for SFC_SET_SCALE_FLOAT_INT_WRITE (still needs testing).
1735
1736 2007-07-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1737
1738     * src/flac.c
1739     Apply patch from Ed Schouten to read artist and title metadata from FLAC
1740     files.
1741     Improve reporting of FLAC metadata.
1742
1743     * src/sndfile.h.in tests/string_test.c src/flac.c
1744     Add string type SF_STR_ALBUM, update test and use for FLAC files.
1745
1746 2007-06-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1747
1748     * src/FLAC/*
1749     Merge from upstream CVS.
1750
1751 2007-06-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1752
1753     * src/FLAC/*
1754     Update from upstream CVS.
1755
1756 2007-06-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1757
1758     * tests/cpp_test.cc
1759     Add extra tests for when the SndfileHandle constructor fails.
1760
1761     * src/sndfile.hh
1762     Make sure failure to open the file in the constructor does not allow later
1763     calls to other methods to fail.
1764
1765 2007-06-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1766
1767     * tests/util.tpl
1768     Add function write_mono_file.
1769
1770     * tests/generate.[ch] tests/Makefile.am
1771     Add files generate.[ch] and hook into build.
1772
1773     * tests/write_read_test.tpl
1774     Add multi_seek_test.
1775
1776     * src/flac.c
1777     Fix buffer overflow bug. Test provided by Jeremy Friesner and fix provided
1778     by David Viens.
1779
1780 2007-06-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1781
1782     * doc/FAQ.html
1783     Minor update.
1784
1785     * configure.ac src/FLAC/src/libFLAC/ia32/Makefile.am src/Makefile.am
1786     Apply patch from Trent Apted make it compile on Intel MacOSX. Thanks Trent.
1787
1788 2007-05-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1789
1790     * src/wav.c
1791     Fix writing of MSGUID subtypes. Thanks to Bruce Sharpe.
1792
1793 2007-05-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1794
1795     * src/wav.c
1796     Fix array indexing bug raised by Bruce Sharpe.
1797
1798 2007-05-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1799
1800     * src/FLAC/src/share/getopt/getopt.c
1801     Fix Mac OSX / PowerPC compile warnings.
1802
1803     * configure.ac
1804     Make sure WORDS_BIGENDIAN gets correctly defined for FLAC code.
1805
1806 2007-05-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1807
1808     * doc/FAQ.html
1809     Add Q/A about MP3 support.
1810
1811 2007-05-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1812
1813     * doc/new_file_type.HOWTO
1814     Minor updates.
1815
1816 2007-05-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1817
1818     * src/wve.c
1819     Fix a couple bad parameters with psf_log_printf.
1820
1821     * src/pcm.c
1822     Improve error reporting.
1823
1824     * src/common.h src/common.c
1825     Constify psf_hexdump.
1826
1827 2007-04-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1828
1829     * src/FLAC
1830     Ditch and re-import required FLAC code.
1831
1832     * configure.ac
1833     Force FLAC__HAS_OGG variable to 1.
1834
1835     * src/FLAC/src/libFLAC/stream_encoder.c
1836     Fix compiler warnings.
1837
1838 2007-04-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1839
1840     * configure.ac tests/win32_ordinal_test.c
1841     Detect if win32 DLL is beging generated and only run win32_ordinal_test if
1842     true.
1843
1844     * src/G72x/Makefile.am src/Makefile.am
1845     Use $(EXEEXT) where possible.
1846
1847 2007-04-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1848
1849     * src/wve.c src/common.h src/sndfile.c
1850     Complete definition of SfE_WVE_NO_WVE error message.
1851
1852     * src/wve.c
1853     Fix error in files generated on big endian systems. Robustify parsing.
1854
1855 2007-04-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1856
1857     * src/double64.c
1858     Fix clipping of double to short conversions on 64 bit systems.
1859
1860     * src/flac.c regtest/database.c tests/cpp_test.cc
1861     Fix compile warnings for 64 bit systems.
1862
1863 2007-04-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1864
1865     * src/wav.c src/wav_w64.c
1866     Use audio detect function when 'fmt ' chunk data is suspicious.
1867
1868     * configure.ac
1869     Add ugly hack to remove -Werror from some Makefiles.
1870
1871 2007-04-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1872
1873     * src/GSM610/long_term.c src/macbinary3.c tests/cpp_test.cc
1874     Add patch from André Pang to clean up compiles on OSX.
1875
1876     * src/wve.c src/common.h src/sndfile.c src/sndfile.h.in
1877         examples/sndfile-convert.c
1878     Merge changes from Reuben Thomas to improve WVE support.
1879
1880     * tests/lossy_comp_test.c tests/Makefile.am
1881     Add tests for WVE files.
1882
1883 2007-04-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1884
1885     * src/sndfile.hh
1886     Add a static SndfileHandle::formatCheck method as suggested by Jorge
1887     Jiménez.
1888
1889 2007-04-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1890
1891     * src/sndfile.c
1892     Fixed a bug in sf_error() where the function itself was being compared
1893     against zero. Add a check for a NULL return from peak_info_calloc. Fix a
1894     possible NULL dereference.
1895
1896 2007-04-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1897
1898     * src/flac.c
1899     Turn off seekable flag when writing, return SFE_BAD_RDWR_FORMAT when
1900     opening file for RDWR.
1901
1902     * src/sndfile.c
1903     Improve error message for SFE_BAD_RDWR_FORMAT.
1904
1905     * src/mat4.c
1906     Fix array indexing issue. Thanks to Ben Allison (Nullsoft) for alerting me.
1907
1908 2007-03-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1909
1910     * doc/FAQ.html
1911     Add Q/A 19 on project files.
1912
1913 2007-03-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1914
1915     * src/sndfile.c
1916     Guard agains MacOSX universal binary compiles.
1917
1918     * doc/FAQ.html
1919     Add Q/A 18 and clean up Q3.
1920
1921 2007-02-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1922
1923     * src/aiff.c
1924     Add support for 'in24' files.
1925
1926 2007-02-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1927
1928     * src/wav.c src/wav_w64.c src/wav_w64.h
1929     Start work towards detecting ausio codec type from the actual audio data.
1930
1931     * src/audio_detect.c src/test_audio_detect.c
1932     Add new file and its unit test.
1933
1934 2007-02-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1935
1936     * examples/cooledit-fixer.c examples/Makefile.am
1937     Remove old broken example program.
1938
1939 2007-02-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1940
1941     * src/sndfile.c src/sndfile.h.in src/create_symbols_file.py
1942     Add function sf_get_info.
1943
1944 2007-01-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1945
1946     * examples/sndfile-play.c
1947     For ALSA, use the 'default' device instead of 'plughw:0'.
1948
1949 2007-01-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1950
1951     * src/sndfile.c
1952     Allow writing of WAV/WAVEX 'BEXT' chunks in SFM_RDWR mode.
1953
1954 2007-01-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1955
1956     * doc/development.html doc/embedded_files.html man/sndfile-play.1
1957     Minor documentation fixes. Thanks Reuben Thomas.
1958
1959 2006-12-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1960
1961     * examples/sndfile-convert.c
1962     Add -override-sample-rate command line option.
1963
1964 2006-11-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1965
1966     * tests/misc_test.c
1967     Force errno to zero at start of some tests.
1968
1969     * src/sndfile.c
1970     Minor clean up of error handling.
1971
1972     * configure.ac
1973     Remove an assembler test which was failing on OSX.
1974
1975 2006-11-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1976
1977     * src/common.h
1978     Fix the definition of SF_PLATFORM_S64 for MinGW.
1979
1980     * src/FLAC/Makefile.am src/FLAC/share/grabbag/Makefile.am
1981     Fix path problems for MinGW.
1982
1983 2006-11-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1984
1985     * src/sfendian.h
1986     Add include guard.
1987
1988     * src/Makefile.am src/flac.c
1989     Clean up include paths.
1990
1991     * src/test_conversions.c
1992     New file to test psf_binheader_readf/writef functions.
1993
1994     * src/Makefile.am src/test_file_io.c src/test_log_printf.c src/common.c
1995     Clean up unit testing.
1996
1997     * src/common.c
1998     Fix a bug reading/writing 64 bit header fields. Thanks to Jonathan Woithe
1999     for reporting this.
2000
2001     * src/test_conversions.c
2002     Complete unit test for above fix.
2003
2004 2006-11-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2005
2006     * src/sndfile.c
2007     More refactoring to clean up psf_open_file() and vairous sf_open()
2008     functions.
2009
2010 2006-11-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2011
2012     * src/wav.c
2013     Apply a patch from Jonathan Woithe to allow opening of (malformed) WAV
2014     files of over 4 gigabytes.
2015
2016 2006-11-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2017
2018     * src/sndfile.c
2019     Refactor function psf_open_file() to provide a single return point.
2020
2021     * tests/misc_test.c
2022     Fix permission_test to ensure that read only file can be created.
2023
2024 2006-11-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2025
2026     * src/common.h
2027     Add SF_PLATFORM_S64 macro as a platform independant way of doing signed 64
2028     bit integers.
2029
2030     * src/aiff.c src/svx.c src/wav.c
2031     Add warning in log if files are larger than 4 gigabytes in size.
2032
2033 2006-11-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2034
2035     * src/FLAC src/OGG confgure.ac src/Makefile.am
2036     Pull in all required FLAC and OGG code so external libraries are not
2037     needed. This makes compiling on stupid fscking Windoze easier.
2038
2039 2006-10-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2040
2041     * src/sd2.c
2042     Add workaround for switched sample rate and sample size.
2043
2044     * src/wav.c
2045     Add workaround for excessively long coding history in the 'bext' chunk.
2046
2047 2006-10-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2048
2049     * src/sndfile.h.in src/sndfile.c src/wav.c doc/command.html
2050     Use SF_AMBISONIC_* instead of SF_TRUE/SF_FALSE.
2051
2052 2006-10-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2053
2054     * src/sndfile.h.in src/wav.c src/wav_w64.c src/common.h doc/command.html
2055     Apply a patch from Fons Adriaensen to allow writing on WAVEX Ambisonic
2056     files. Still needs a little tweaking before its ready for release.
2057
2058     * src/*.c
2059     Use the UNUSED macro to prevent compiler warnings.
2060
2061 2006-10-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2062
2063     * src/aiff.c
2064     Fix a bug in parsing AIFF files with a slightly unusual 'basc' chunk. Thanks
2065     to David Viens for providing two example files.
2066
2067     * src/common.(c|h) src/aiff.c
2068     Add a function psf_sanitize_string and use it in aiff.c.
2069
2070 2006-10-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2071
2072     * src/wav_w64.c
2073     Apply a patch from Fons Adriaensen which fixes a minor WAVEX GUID issue.
2074
2075 2006-10-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2076
2077     * src/Makefile.am
2078     Fix problem related to recent test coverage changes.
2079
2080 2006-10-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2081
2082     * configure.ac tests/Makefile.am
2083     Add --enable-test-coverage configure option.
2084
2085 2006-10-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2086
2087     * src/sndfile.hh
2088     Add an std::string SndfileHandle constructor.
2089
2090     * tests/scale_clip_test.tpl
2091     Fix the 'make distcheck' target.
2092
2093 2006-10-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2094
2095     * src/double64.c src/float32.c
2096     Add optional clipping on float file data to int read data conversions.
2097
2098     * tests/tests/scale_clip_test.(def|tpl)
2099     Add test for above new code.
2100
2101 2006-09-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2102
2103     * tests/aiff_rw_test.c
2104     Add 'MARK' chunks to make sure they are parsed correctly.
2105
2106 2006-09-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2107
2108     * src/aiff.c
2109     Fix parsing of MARK chunks. Many thanks to Sciss for generating files to
2110     help debug the problem.
2111
2112 2006-09-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2113
2114     * src/common.h
2115     Make the SF_MIN and SF_MAX macros at least partially type safe.
2116
2117     * tests/lossy_comp_test.c
2118     Fix overflow problems when ensuring that signalis not zero.
2119
2120 2006-08-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2121
2122     * configure.ac docs/*.html
2123     Changes for release 1.0.17.
2124
2125 2006-08-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2126
2127     * src/flac.c
2128     Remove inline from functions called by pointer. Thanks to Sampo Savolainen
2129     for notifying me of this.
2130
2131 2006-07-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2132
2133     * src/sndfile.hh
2134     Add writeSync method.
2135     Add copy constructor and assignment operator (thanks Daniel Schmitt).
2136     Add methods readRaw and writeRaw.
2137     Make read/write/readf/writef simple overlaods instead of templates (thanks
2138     to Trent Apted for suggesting this).
2139
2140     * tests/cpp_test.cc
2141     Cleanup. Add tests.
2142
2143 2006-07-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2144
2145     * src/sndfile.hh
2146     Templatize the read/write/readf/writef methods as suggested by Lars Luthman.
2147     Prevent the potential leak of SNDFILE* pointers in the openRead/openWrite/
2148     openReadWrite methods.
2149     Add const to SF_INFO pointer in Sndfile constructor.
2150     Make the destrictor call the close() method.
2151
2152     * tests/cpp_test.cc
2153     Add more tests.
2154
2155 2006-07-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2156
2157     * tests/cpp_test.cc
2158     Remove the generated file so "make distcheck" passes.
2159
2160     * src/Makefile.am
2161     Add sndfile.hh to distributed header files.
2162
2163     * src/sndfile.hh
2164     Change the license for the C++ wrapper to modified BSD.
2165
2166 2006-07-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2167
2168     * src/sndfile.hh
2169     Complete it.
2170
2171     * tests/cpp_test.cc
2172     Add more tests.
2173
2174 2006-07-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2175
2176     * tests/utils.tpl
2177     Add extern C to generated header file.
2178
2179     * src/sndfile.hh
2180     Work towards completing this.
2181
2182     * tests/cpp_test.cc tests/Makefile.am
2183     Add a C++ test and hook into build.
2184
2185     * configure.ac
2186     Add appropriate CXXFLAGS.
2187
2188 2006-07-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2189
2190     * configure.ac
2191     Test if compiler supports -Wpointer-arith.
2192
2193     * src/common.c
2194     Fix a warning resulting from -Wpointer-arith.
2195
2196 2006-07-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2197
2198     * examples/sndfile-play.c
2199     Explicitly set endian-ness as well as setting 16 bit output.
2200
2201     * examples/sndfile-info.c
2202     Make sure to parse info if file fails to open.
2203
2204     * src/sndfile.c
2205     Handle parse error a little better.
2206
2207     * src/wav_w64.[ch]
2208     Minor clean up, add detection of IPP ITU G723.1.
2209
2210 2006-06-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2211
2212     * src/sndfile.c
2213     Make sure psf->dataoffset gets reset to zero when openning headersless
2214     files based on the file name extension.
2215
2216 2006-06-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2217
2218     * tests/(command|lossy_comp|pcm|scale_clip)_test.c tests/fix_this.c
2219         tests/write_read_test.(tpl|def)
2220     Fix gcc-4.1 compiler warnings about "dereferencing type-punned pointer will
2221     break strict-aliasing rules".
2222
2223     * examples/cooledit-fixer.c
2224     More fixes like above.
2225
2226 2006-06-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2227
2228     * src/file_io.c
2229     Fix a windows bug where the syserr string of SF_PRIVATE was not being set
2230     correctly.
2231
2232     * src/sndfile.c
2233     Fixed a logic bug in sf_seek(). Thanks to Paul Davis for finding this.
2234
2235 2006-06-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2236
2237     * configure.ac
2238     Fixed detection of S_IRGRP.
2239
2240 2006-05-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2241
2242     * sndfile-convert.c
2243     Add conversion SF_INSTRUMENT data when present.
2244
2245 2006-05-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2246
2247     * doc/development.html
2248     Removed references to tla on windows.
2249
2250     * src/common.h src/sndfile.c
2251     Add separate void pointers for file containter and file codec data to
2252     SF_PRIVATE struct. Still need to move all existing fdata pointers.
2253
2254     * tests/write_read_test.tpl
2255     Change the order of some tests.
2256
2257     * src/aiff.c
2258     When writing 'AIFC' files, make sure get an 'FVER' gets added.
2259
2260     * src/common.h src/(dwvw|flac|g72x|gsm610|ima_adpcm|ms_adpcm|paf|sds).c
2261         src/(sndfile|voc|vox_adpcm|xi).c
2262     Remove fdata field from SF_PRIVATE struct and replace it with codec_data.
2263
2264 2006-05-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2265
2266     * Win32/testprog.c Win32/Makefile.am
2267     Add a minimal win32 test program.
2268
2269     * Win32/README-precompiled-dll.txt Mingw-make-dist.sh
2270     Update readme and Mingw build script.
2271
2272 2006-05-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2273
2274     * configure.ac acinclude.m4
2275     Minor fixes for Solaris.
2276
2277 2006-05-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2278
2279     * src/test_endswap.(def|tpl)
2280     Fix printf formatting for int64_t on 64 bit machines.
2281
2282 2006-05-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2283
2284     * src/binhead_check.py
2285     New file to check for bad parameters passed to psf_binheader_writef().
2286
2287     * src/Makefile.am
2288     Hook into test suite.
2289
2290     * src/voc.c src/caf.c src/wav.c src/mat5.c src/mat4.c
2291     Fix bugs found by new test program.
2292
2293     * src/double64.c
2294     Clean up double64_get_capability().
2295
2296 2006-05-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2297
2298     * src/wav_w64.c
2299     Fix a bug on x86_64 where an int was being passed via stdargs and being
2300     read using size_t which is 64 bits. Thenks to John ffitch for giving me a
2301     login on his box.
2302
2303 2006-05-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2304
2305     * src/caf.c src/double64.c examples/sndfile-info.c tests/virtual_io_test.c
2306             tests/utils.tpl
2307     Fix a couple of signed/unsigned problems.
2308
2309 2006-05-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2310
2311     * tests/command_test.c
2312     Add channel map tests.
2313
2314     * src/common.h src/sndfile.c
2315     Add a pointer the the SF_PRIVATE struct and make sure it gets freed in
2316     sf_close().
2317
2318 2006-04-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2319
2320     * configure.ac doc/(command|index|api).html NEWS README
2321     Updates for 1.0.16 release.
2322
2323     * src/sndfile.h.in
2324     Define enums for channel mapping.
2325
2326     * examples/sndfile-info.c
2327     Clean up usage of SF_INFO struct.
2328
2329 2006-04-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2330
2331     * tests/util.tpl
2332     Add function testing function exit_if_true().
2333
2334     * tests/floating_point_test.tpl
2335     Fix a problem where the test program was not exiting when the test failed.
2336
2337 2006-04-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2338
2339     * src/sndfile.h.in src/sndfile.c src/common.h src/command.c
2340     Implement new commands SFC_GET_SIGNAL_MAX and SFC_GET_MAX_ALL_CHANNELS.
2341
2342     * doc/commands.html
2343     Document new commands. Other minor updates.
2344
2345     * tests/peak_chunk_test.c
2346     Update tests for new commands.
2347
2348 2006-04-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2349
2350     * tests/peak_chunk_test.c
2351     Add test for RIFX and WAVEX files.
2352     Try and confuse the PEAK chunk writing by enabling and disabling it.
2353
2354     * src/sndfile.c
2355     Fix a bug where enabling and disabling PEAK chunk was screwing up.
2356
2357 2006-03-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2358
2359     * src/sndfile.h.in
2360     Add the block of 190 reserved bytes into this struct to allow for
2361     future expansion.
2362
2363     * src/wav.c src/sndfile.c src/broadcast.c
2364     Significant cleanup of broadcast wave stuff.
2365
2366     * examples/sndfile-info.c
2367     Fix print message.
2368
2369     * tests/command_test.c tests/Makefile.am
2370     Complete bext tests, hook test in test suite.
2371
2372 2006-03-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2373
2374     * src/sndfile.h.in
2375     Make coding_history field of SF_BROADCAST_INFO struct a char array instead
2376     of a char pointer.
2377
2378     * src/sndfile.c src/common.h src/wav.c
2379     Clean up knock on effects of above chnage.
2380
2381     * examples/sndfile-info.c
2382     Add -b command line option to usage message.
2383     Clean up output of broadcast wave info.
2384
2385     * src/wav.c
2386     Ignore and skip the 'levl' chunk.
2387
2388 2006-03-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2389
2390     * configure.ac
2391     Fix handling of --enable and --disable configure args. Thanks to Diego
2392     'Flameeyes' Pettenò who sent the patch.
2393
2394 2006-03-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2395
2396     * doc/win32.html
2397     Make it really clear that although the MSVC++ cannot compile libsndfile,
2398     the precompiled DLL can be used in C++ programs compiled with MSVC++.
2399
2400 2006-03-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2401
2402     * src/aiff.c
2403     Fix bug in writing of INST chunk in AIFF files.
2404     Fix potential bug in writing MARK chunks.
2405
2406     * src/sndfile.c
2407     Make sure the instrument chunk can only be written at the start of the file.
2408
2409     * tests/command_test.c
2410     Add check of log buffer.
2411
2412     * tests/utils.tpl
2413     Add usage of space character to psf_binheader_writef.
2414
2415 2006-03-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2416
2417     * src/Makefile.am tests/Makefile.am
2418     Remove --source-time argument from autogen command lines.
2419
2420     * src/broadcast.c
2421     New file for EBU Broadcast chunk in WAV files.
2422
2423     * src/sndfile.c src/sndfile.h.in src/wav.c src/common.h
2424     Add patch from Paul Davis implementing read/write of the BEXT chunk.
2425
2426 2006-03-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2427
2428     * Win32/README-precompiled-dll.txt
2429     New file descibing how to use the precompiled DLL.
2430
2431     * Win32/Makefile.am
2432     Add Win32/README-precompiled-dll.txt to EXTRA_DIST files.
2433
2434     * configure.ac
2435     Bump version to 1.0.15.
2436
2437 2006-03-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2438
2439     * src/wav.c
2440     On read, only add the endian flag if the file is big endian.
2441
2442     * src/ms_adpcm.c
2443     Fixed writing of APDCM coeffs in RIFX files.
2444
2445     * tests/write_read_test.tpl tests/lossy_comp_test.c
2446     Add tests for RIFX files.
2447
2448 2006-03-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2449
2450     * Mingw-make-dist.sh
2451     Bunch of improvements.
2452
2453     * doc/win32.html
2454     Update MinGW program versions.
2455
2456 2006-03-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2457
2458     * src/create_symbols_file.py
2459     Fix the library name in created win32 DEF file. Add correct DLL name for
2460     Cygwin DLL.
2461
2462     * Win32/Makefile.am tests/Makefile.am
2463     Remove redundant files, add win32_ordinal_test to test suite.
2464
2465     * tests/win32_ordinal_test.c
2466     Update to do test in cygsndfile-1.dll as well.
2467
2468     * doc/win32.html
2469     Fix typo, mention that -mno-cygwin with the Cygwin compiler does not work.
2470
2471     * src/wav.c src/wav_w64.c src/sndfile.c src/sndfile.h.in
2472     Apply large patch from Jesse Chappell which adds support for RIFX files.
2473
2474 2006-03-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2475
2476     * Makefile.am
2477     Add Mingw-make-dist.sh to the extra dist files.
2478
2479     * configure.ac
2480     Fix setting SHLIB_VERSION_ARG for MinGW.
2481
2482     * tests/win32_ordinal_test.c
2483     New test program to test that the win32 DLL ordinals agree with the DEF
2484     file.
2485
2486 2006-03-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2487
2488     * src/common.h
2489     Add a static inline function to convert an int to a size_t. This will be
2490     a compile to nothing on 32 bit CPUs and a sign extension on 64 bit CPUs.
2491
2492     * src/aiff.c src/avr.c src/common.c src/xi.c src/gsm610.c
2493     Fix an ia64 problem where a varargs function was being passed an int in
2494     some places and a size_t in other places.
2495
2496     * src/sd2.c
2497     Add a workaround for situations where OSX seems to add an extra 0x52 bytes
2498     to the start of the resource fork.
2499
2500 2006-02-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2501
2502     * Mingw-make-dist.sh
2503     Add a shell script to build the windows binary/source ZIP file.
2504
2505     * doc/index.html
2506     Add download link for windows binary/source ZIP file. Add links for GPG
2507     signatures.
2508
2509     * doc/win32.html
2510     Remove info about building using microsoft compiler.
2511
2512     * configure.ac
2513     Bump version to 1.0.14.
2514
2515 2006-02-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2516
2517     * src/sd2.c
2518     Improve logging of errors in resource fork parser.
2519
2520 2006-01-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2521
2522     * Win32/Makefile.msvc
2523     Replace au_g72x.* with g72x.*. Thanks to ussell Borogove.
2524
2525 2006-01-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2526
2527     * src/common.c
2528     Make sure return values are initialised header buffer is full.
2529
2530     * src/wav.c
2531     Add workarounds for messed up WAV files.
2532
2533 2006-01-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2534
2535     * Win32/config.h
2536     Undef HAVE_INTTYPES_H for win32.
2537
2538     * tests/command_test.c
2539     Don't exit on error in instrument test for XI files.
2540
2541     * configure.ac
2542     Bump version to 1.0.13.
2543
2544     * doc/*.html NEWS README
2545     Update version numbers.
2546
2547 2006-01-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2548
2549     * src/xi.c
2550     Start work on add read/write of instrument chunks.
2551
2552     * src/command_test.c
2553     Add tests for XI instrument chunk.
2554
2555     * tests/largefile_test.c tests/Makefile.am
2556     Add new test and hook it into the build system. This test will not be run
2557     automatically because it requires 3 Gig of disk space and takes 3 minutes
2558     to run.
2559
2560 2006-01-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2561
2562     * examples/sndfile-play.c
2563     Fix calculation of samples remaining in win32 code. Thanks Axel Roebel.
2564
2565     * src/common.h
2566     Make sure length of header buffer can hold header plus strings. Thanks Axel
2567     Roebel.
2568
2569 2006-01-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2570
2571     * src/sndfile.h.in src/aiff.c src/wav.c
2572     Apply a patch from John ffitch (Csound project).
2573     Add detune field to SF_INSTRUMENT struct.
2574     Add reading/writing instrument chunks to WAV files.
2575
2576     * tests/command_test.c
2577     Update SF_INSTRUMENT tests.
2578
2579     * tests/Makefile.am
2580     Hook instrument tests into test suite.
2581
2582 2006-01-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2583
2584     * configure.ac
2585     Check for <inttypes.h> because some broken systems (like Solaris) don't have
2586     <stdint.h> which is the 1999 ISO C standard file containing int64_t.
2587
2588     * src/sfendian.h src/common.h
2589     Use <inttypes.h> if <stdint.h> is not available.
2590
2591 2005-12-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2592
2593     * tests/peak_chunk_test.c
2594     Extend and clean up tests.
2595
2596     * src/sndfile.c
2597     Fix a bug that prevented the turning off of PEAK chunks.
2598
2599 2005-12-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2600
2601     * tests/error_test.c
2602     Make the test distclean correct.
2603
2604     * src/file_io.c
2605     Fix an SD2 MacOSX bug (reported by vince schwarzinger).
2606
2607 2005-12-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2608
2609     * src/aiff.c tests/command_test.c
2610     Apply a big patch from John ffitch (Csound project) to add reading and
2611     writing of instrument chunks to AIFF files. Also update the test.
2612
2613 2005-12-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2614
2615     * tests/aiff_rw_test.c tests/virtual_io_test.c tests/utils.tpl
2616     Move test function dump_data_to_file() to utils.tpl.
2617
2618     * tests/error_test.c tests/Makefile.am
2619     Updates, including a new test to test that sf_error() returns a valid error
2620     number.
2621
2622 2005-12-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2623
2624     * examples/list_formats.c
2625     Make sure the SF_INFO struct is memset to all zero before being used.
2626     Thanks to Stephen F. Booth.
2627
2628     * src/sndfile.c
2629     Make the return value of sf_error() match the API documentation.
2630
2631 2005-11-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2632
2633     * examples/sndfile-convert.c
2634     Allow conversion to raw gsm610.
2635
2636     * src/common.h src/sndfile.c src/au.c
2637     Remove au_nh_open() and all references to it (wasn't working anyway).
2638
2639     * tests/headerless_test.c
2640     Add new test for file extension based detection.
2641
2642     * src/sndfile.c
2643     Rejig file extension based file type detection.
2644
2645 2005-11-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2646
2647     * src/sndfile.c
2648     Add "gsm" as a recognised file extension when no magic number can be found.
2649
2650     * tests/lossy_comp_test.c tests/Makefile.am
2651     Test headerless GSM610.
2652
2653 2005-11-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2654
2655     * doc/api.html
2656     Fix a minor typo and a minor error. Thanks Christoph Kobe and John Pavel.
2657
2658 2005-10-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2659
2660     * src/wav_w64.c
2661     Add more reporting of 'fmt ' chunk for G721 encoded files.
2662
2663     * src/wav.c
2664     Gernerate a more correct 20 byte 'fmt ' chunk rather than a 16 byte one.
2665
2666 2005-10-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2667
2668     * src/G72x/g72x.[ch]
2669     Minor cleanup of interface.
2670
2671 2005-10-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2672
2673     * src/ogg.c
2674     Removed the horribly broken and non-functional OGG implementation when
2675     --enable-experimental was enabled. When OGG does finally work it will be
2676     merged.
2677
2678     * src/caf.c
2679     Fix a memory leak.
2680
2681 2005-10-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2682
2683     * src/g72x.c src/G72x/*.(c|h) src/common.h src/sndfile.c src/wav.c src/au.c
2684     Add support for G721 encoded WAV files.
2685
2686     * doc/index.html
2687     Update support matrix.
2688
2689     * tests/lossy_comp_test.c
2690     For file formats that support it, add string data after the audio data and
2691     make sure it isn't treated as audio data on read.
2692
2693     * src/gsm610.c
2694     Add code to ensure that the container close function (ie for WAV files) gets
2695     called after the codec's close function. This allows GSM610 encoded WAV files
2696     to have string data following the audio data.
2697     Add an AIFF specific check on psf->datalength.
2698
2699     * src/wav.c
2700     Simplify wav_close function.
2701
2702     * src/aiff.c
2703     Make sure the tailer data gets written at an even file offset. Pad if
2704     necessary.
2705
2706     * src/common.h
2707     Replace the close function pointer in SF_PRIVATE with separate functions
2708     codec_close and container_close. The former is always called first.
2709
2710     *  src/*.c
2711     Fix knock on effects of above.
2712
2713 2005-10-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2714
2715     * examples/sndfile-info.c
2716     Complete dumping SF_INSTRUMENT data.
2717
2718     * src/dwvw.c src/ima_adpcm.c src/gsm610.c src/ms_adpcm.c
2719     Add extra checks in *_init function.
2720
2721     * tests/lossy_comp_test.c
2722     Add a string comment to the end of the files to make sure that the decoder
2723     doesn't decode beyond the end of the audio data section.
2724
2725 2005-10-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2726
2727     * examples/sndfile-info.c
2728     Minor code cleanup.
2729     Start work on dumping SF_INSTRUMENT data.
2730
2731 2005-10-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2732
2733     * src/sndfile.h.in src/common.h src/common.c
2734     Update definition of SF_INSTRUMENT struct and create a function to allocate
2735     and initialize the struct (input from David Viens).
2736     Clean up definition of SF_INSTRUMENT struct.
2737
2738     * src/wav.c src/wav_w64.c
2739     Add support for Ambisoncs B WAVEX files (David Viens).
2740
2741     * src/aiff.c src/wav.c src/wav_w64.c
2742     Start work on reading/writing the SF_INSTRUMENT data.
2743
2744     * src/sndfile.c
2745     Add code to get and set SF_INSTRUMENT data.
2746
2747     * tests/command_test.* tests/Makefile.am
2748     Add test for set and getof SF_INSTRUMENT data.
2749     The file command_test.c is no longer autogen generated.
2750
2751 2005-10-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2752
2753     * src/gsm610.c
2754     Minor cleanup.
2755
2756 2005-10-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2757
2758     * tests/lossy_comp_test.c
2759     Minor cleanup.
2760
2761 2005-10-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2762
2763     * src/*.c
2764     Ensure sfconfig.h is included before any other header file.
2765
2766     * src/file_io.c
2767     Add comments documenting the three sections of the file.
2768
2769     * src/gsm610.c
2770     Make sure SF_FORMAT_WAVEX are handled correctly.
2771
2772 2005-10-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2773
2774     * configure.ac
2775     Add options to allow disabling of FLAC and ALSA. Suggested by Ben Greear.
2776
2777 2005-09-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2778
2779     * tests/locale_test.c
2780     Modify the way the unicode strings were encoded so that older compilers
2781     do not complain. Thanks Axel Roebel.
2782
2783     * configure.ac
2784     Bump the version to 1.0.12 for release.
2785
2786     * NEWS README Win32/config.h doc/(FAQ|index.html|command|api).html
2787     Update version numbers.
2788
2789 2005-09-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2790
2791     * src/flac.c
2792     Fix valgrind error and minor cleanup.
2793
2794 2005-09-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2795
2796     * src/(au|paf|aiff|w64|wav|svx).c
2797     Make sure structs are initialised.
2798
2799 2005-09-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2800
2801     * configure.ac
2802     Make -Wdeclaration-after-statement work with --enable-gcc-werror configure
2803     option.
2804     Add -std=gnu99 (C99 plus posix style stuff like gmtime_r) to CFLAGS if the
2805     compiler supports it.
2806
2807 2005-09-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2808
2809     * configure.ac acinclude.m4
2810     Add -Wdeclaration-after-statement to CFLAGS if the compilers supports it.
2811
2812 2005-09-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2813
2814     * tests/util.(tpl|def)
2815     Make the test_write_*_or_die() functions const safe.
2816
2817 2005-09-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2818
2819     * src/nist.c
2820     Make sure the data offset is read from the file header. Thanks to
2821     David A. van Leeuwen for a patch.
2822
2823 2005-09-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2824
2825     * configure.ac src/sfconfig.h
2826     Check for <locale.h> and the function setlocale().
2827     Set config variables to zero if not found.
2828
2829     * tests/locale_test.c tests/Makefile.am
2830     Add new test program and hook into build/test system.
2831
2832 2005-09-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2833
2834     * src/common.h src/file_io.c
2835     On windows, use windows specific types for file handles.
2836     Add functions psf_init_files() and psf_use_rsrc().
2837
2838     * src/sd2.c
2839     Make resource fork handling independant of file desciptor/handles.
2840
2841     * src/sndfile.c src/test_file_io.c
2842     Fix knock on effects.
2843
2844 2005-09-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2845
2846     * src/float_cast.h
2847     The lrint and lrintf implementations in Cygwin are both buggy and slow.
2848     Add replacements which were pulled from the Public Domain MinGW math.h
2849     header file.
2850
2851 2005-09-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2852
2853     * tests/(lossy_comp_test|virtual_io_test).c
2854     More Valgrind fixups.
2855
2856     * configure.ac
2857     Simplify and correct configuring for Cygwin.
2858
2859     * Win32/config.h Win32/sndfile.h Win32/Makefile.msvc
2860     Update build for MSVC.
2861
2862 2005-09-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2863
2864     * tests/lossy_comp_test.c
2865     Make sure to close SNDFILE when exiting test when file format is not seekable.
2866
2867     * tests/(aiff_rw_test|virtual_io_test).c
2868     Do a few valgrind fix ups.
2869
2870 2005-09-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2871
2872     * src/float32.c src/double64.c
2873     Replace floating point equality comparisons with greater/less comparisons.
2874     Found by John Pavel using the Intel compiler.
2875
2876     * src/sfconfig.h
2877     New file to clean up issues surrounding autoconf generated preprocessor
2878     symbols.
2879
2880     * src/*.(c|h) tests/*.(c|tpl) examples/*.c
2881     Fixed a bunch of other stuff found by John Pavel using the Intel compiler.
2882
2883     * src/file_io.c
2884     Remove Mac OS9 Metrowerks compiler specific hacks.
2885
2886 2005-08-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2887
2888     * src/w64.c
2889     Cast integer literal to sf_count_t in call to psf_binheader_writef() to
2890     prevent Valgrind error.
2891
2892 2005-08-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2893
2894     * doc/command.html
2895     Improve documentation of SF_GET_FORMAT_SUBTYPE.
2896
2897 2005-08-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2898
2899     * examples/sndfile-convert.c
2900     Allow files to be converted to SD2 format.
2901
2902     * src/sd2.c
2903     Fix a bug in reading and writing of SD2 files on little endian CPUs.
2904     Thanks to Matthew Willis for finding this.
2905
2906 2005-08-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2907
2908     * doc/api.html
2909     Update Note2 to point to SFC_SET_SCALE_FLOAT_INT_READ.
2910
2911 2005-08-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2912
2913     * configure.ac
2914     Use $host_os instead of $target_os (thanks to Mo De Jong).
2915
2916 2005-08-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2917
2918     * src/Makefile.am
2919     Apply a patch from Mo DeJong to allow building outside of the source dir.
2920
2921     * src/file_io.c
2922     Fix psf_fsync() for win32.
2923
2924     * src/wav.c src/wav_w64.(c|h)
2925     Move some code from wav.c to wav_w64.c to improve the log output of files of
2926     type WAVE_FORMAT_EXTENSIBLE.
2927
2928 2005-08-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2929
2930     * src/create_symbols_file.py
2931     Make sure sf_write_fsync is an exported symbol.
2932
2933     * examples/sndfile-convert.c
2934     Add support for writing VOX adpcm files.
2935
2936 2005-07-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2937
2938     * doc/api.html
2939     Document the new function sf_write_sync().
2940
2941     * doc/FAQ.html
2942     Do you plan to support XYZ codec.
2943
2944 2005-07-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2945
2946     * src/sndfile.h.in src/sndfile.c
2947     Add function sf_write_sync() to the API.
2948
2949     * src/common.h src/file_io.c
2950     Low level implementation (win32 not done yet).
2951
2952     * tests/write_read_test.tpl
2953     Use the new function in the tests.
2954
2955 2005-07-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2956
2957     * src/common.h src/double64.c src/float32.c src/sndfile.c
2958     Change the way PEAK chunk info is stored. Peaks now stored as an sf_count_t
2959     for position and a double as the value.
2960
2961     * src/aiff.c src/caf.c src/wav.c
2962     Fix knock on effects of above changes.
2963
2964     * src/caf.c
2965     Implement 'peak' chunk for file wuth data in SF_FORMAT_FLOAT or
2966     SF_FORMAT_DOUBLE format.
2967
2968 2005-07-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2969
2970     * src/nist.c
2971     Fix a bug where a variable was being used without being initialized.
2972
2973     * src/flac.c
2974     Add extra debug in sf_flac_meta_callback.
2975     Make a bunch of private functions static.
2976
2977     * src/aiff.c src/wav.c
2978     Fix allocation for PEAK_CHUNK (bug found using valgrind).
2979
2980 2005-07-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2981
2982     * src/common.h
2983     Move the peak_loc field of SF_PRIVATE to the PEAK_CHUNK struct.
2984     Remove had_peak field of SF_PRIVATE, use pchunk != NULL instead.
2985     Rename PEAK_CHUNK and PEAK_POS to PEAK_CHUNK_32 and PEAK_POS_32.
2986
2987     * src/aiff.c src/caf.c src/wav.c src/float32.c src/double64.c
2988     Fix knock on effects from above.
2989
2990 2005-07-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2991
2992     * src/wav.c
2993     Prevent files with unknown chunks from being opened read/write.
2994
2995 2005-07-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2996
2997     * src/flac.c
2998     Do not use psf->end_of_file because it never gets set to anything.
2999
3000     * src/common.h
3001     Remove unused SF_PRIVATE field end_of_file.
3002
3003 2005-07-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3004
3005     * src/common.c
3006     Change the 'S' format specifier of psf_binheader_writef() to write AIFF
3007     style strings (no terminating character).
3008
3009     * src/aiff.c
3010     Move to new (correct) AIFF string style. Thanks to Axel Roebel for being
3011     so persistent on this issue.
3012
3013 2005-07-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3014
3015     * src/sndfile.c
3016     Allow SFE_UNSUPPORTED_FORMAT as an error from sf_open().
3017
3018     * doc/api.html doc/command.html
3019     Documentation updates (thanks to Kyroz for promoting these updates).
3020
3021     * src/mat5.c
3022     Modify the way the header is written.
3023
3024 2005-07-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3025
3026     * src/caf.c
3027     Add a 'free' chunk to the written file so that the audio data starts at
3028     an offset of 0x1000.
3029
3030     * src/sndfile.c
3031     Allow SFE_UNSUPPORTED_FORMAT as an error from sf_open().
3032
3033 2005-07-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3034
3035     * src/caf.c src/sndfile.c
3036     Add support for signed 8 bit integers.
3037
3038     * tests/write_read_test.tpl
3039     Add test for signed 8 bit integers in CAF files.
3040
3041     * doc/index.html
3042     Update matrix for signed 8 bit integers in CAF files.
3043
3044 2005-07-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3045
3046     * src/sndfile.c
3047     Update sf_check_format() to support CAF.
3048
3049     * examples/sndfile-convert.c
3050     Add support for ".caf" file extension.
3051
3052     * doc/index.html
3053     Add Apple CAF to the support matrix.
3054
3055     * src/caf.c
3056     Add file write support.
3057
3058     * src/common.c
3059     Fix printing of Frames.
3060
3061     * tests/Makefile.am tests/write_read_test.tpl tests/lossy_comp_test.c
3062         tests/header_test.tpl misc_test.c
3063     Add tests for CAF files.
3064
3065 2005-07-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3066
3067     * doc/FAQ.html
3068     Fix Q/A about reading/writing memory buffers.
3069
3070     * src/caf.c
3071     Bunch of work to support reading of CAF files.
3072
3073 2005-07-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3074
3075     * src/(aiff|ima_adpcm|mat4|mat5|ms_adpcm).c examples/sndfile-play.c
3076     Fix sign conversion errors reported by gcc-4.0.
3077
3078     * src/caf.c
3079     New file for Apple's Core Audio File format.
3080
3081     * src/sndfile.c src/common.h src/sndfile.h.in src/Makefile.am
3082     Hook new file into build system.
3083
3084 2005-06-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3085
3086     * src_wav_w64.c
3087     Fix handling of stupidly large 'fmt ' chunks. Thanks to Vadim Berezniker
3088     for supplying an example file.
3089
3090     * src/common.h src/sndfile.c
3091     Remove redundant error code SFE_WAV_FMT_TOO_BIG.
3092
3093 2005-06-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3094
3095     * src/sndfile.h.in src/common.h src/sndfile.c
3096     Add public error value SF_ERR_MALFORMED_FILE.
3097
3098     * src/sndfile.c
3099     When parsing a file header fails and we don't have a system error, then set
3100     the error number to SF_ERR_MALFORMED_FILE (suggested by Kyroz).
3101
3102     * configure.ac
3103     Allow sqlite support to be disabled in configure script.
3104
3105     * regtest/database.c regtest/sndfile-regtest.c
3106     Fix compiling when sqlite is missing.
3107
3108 2005-06-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3109
3110     * src/file_io.c
3111     Fix psf_is_pipe() and return value of psf_fread() when using virtual i/o.
3112
3113     * src/sndfile.c
3114     Fix VALIDATE_AND_ASSIGN_PSF macro for virtual i/o.
3115
3116     * tests/virtual_io_test.c
3117     Fill in skeleton test program.
3118
3119     * tests/Makefile.am
3120     Move virtual i/o tests to end of tests with stdio/pipe tests.
3121
3122     * src/(sndfile.h.in|file_io.c|common.h|sndfile.c) tests/virtual_io_test.c
3123     Rename some of the virtual i/o functions and data types.
3124
3125 2005-06-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3126
3127     * src/sndfile.c
3128     Fix the return values of sf_commands : SFC_SET_NORM_DOUBLE,
3129     SFC_SET_NORM_FLOAT, SFC_GET_LIB_VERSION and SFC_GET_LOG_INFO. Thanks to
3130     Kyroz for pointing out these errors.
3131
3132     * doc/command.html
3133     Correct documented return values for SFC_SET_NORM_DOUBLE and
3134     SFC_SET_NORM_FLOAT. Thanks to Kyroz again.
3135
3136 2005-05-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3137
3138     * regtest/*
3139     Add new files for sndfile-regtest program.
3140
3141     * configure.ac Makefile.am
3142     Hook regetest into build.
3143
3144     * src/wav.c src/common.c
3145     Fix a regression where long ICMT chunks were causing the WAV parser
3146     to exit.
3147
3148 2005-05-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3149
3150     * libsndfile.spec.in
3151     Add html docs to the files section as suggested by Karsten Jeppesen.
3152
3153     * src/aiff.c
3154     Fix parsing of odd length ANNO chunks.
3155
3156 2005-05-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3157
3158     * src/common.h
3159     Change the include guard to prevent clashes with other code.
3160
3161 2005-05-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3162
3163     * examples/sndfile-play.c
3164     Improve error handling in code for playback under Linux/ALSA.
3165
3166 2005-05-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3167
3168     * src/ircam.c
3169     Fix writing of IRCAM files on big endian systems (thanks to Axel Roebel).
3170
3171     * src/wav.c
3172     Add workaround for files created by the Peak audio editor on Mac which can
3173     produce files with very short LIST chunks (thanks to Jonathan Segel who
3174     supplied the file).
3175
3176 2005-04-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3177
3178     * src/aiff.c
3179     Apply a patch From David Viens to make the parsing of basc chunks more
3180     robust.
3181
3182     * src/wav.c
3183     Another patch from David Viens to write correct wavex channel masks for
3184     the most common channel configurations.
3185
3186 2005-04-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3187
3188     * src/command.c
3189     Only allow FLAC in the format arrays if FLAC is enabled. Thanks to
3190     Leigh Smith.
3191
3192 2005-03-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3193
3194     * src/common.h
3195     Add a directory field for storing the file directory to the SF_PRIVATE
3196     struct.
3197
3198     * src/sndfile.c
3199     Grab the directory name when copying the file path.
3200
3201     * src/file_io.c
3202     Cleanup psf_open_rsrc() and also check for resource fork in
3203     .AppleDouble/filename.
3204
3205 2005-03-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3206
3207     * src/svx.c
3208     Fix a bug in the printing of the channel count. Bug reported by Michael
3209     Schwendt. Thanks.
3210
3211 2005-01-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3212
3213     * src/paf.c
3214     Fix a seek bug for 24 bit PAF files.
3215
3216     * tests/write_read_test.tpl
3217     Update write_read_test to trigger the previously hidden PAF seek bug.
3218
3219 2005-01-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3220
3221     * src/aiff.c src/w64.c src/wav.c
3222     Do not return a header parse error when the log buffer overflows.
3223     Continuing parsing works even on files where the log buffer does overflow.
3224     This avoids a bug on some weirdo WAV (and other) files.
3225
3226     * src/common.h src/sndfile.c
3227     Remove SFE_LOG_OVERRIN error and its associated error message.
3228
3229     * src/file_io.c
3230     Fix a rsrc fork problem on MacOSX.
3231
3232 2004-12-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3233
3234     * src/sndfile-play.c
3235     In the ALSA output code, added call to snd_pcm_drain() just before
3236     snd_pcm_close() as suggested by Thomas Kaeding.
3237     In the OSS output code, added two ioctls (SNDCTL_DSP_POST and
3238     SNDCTL_DSP_SYNC) just before the close of the audio device.
3239
3240     * tests/virtual_io_test.c tests/Makefile.am
3241     Add a new test program (currently empty) and add it to the build.
3242
3243 2004-12-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3244
3245     * src/sndfile.h.in src/sndfile.h src/common.h src/file_io.c
3246       src/create_symbols_file.py
3247     Apply patch from Steve Baker which is the beginnings of a virtual
3248     I/O interface.
3249
3250 2004-12-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3251
3252     * src/*.c src/sndfile.h.in
3253     Const-ify the write path throughout the library.
3254
3255 2004-12-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3256
3257     * doc/development.html
3258     Minor improvements.
3259
3260 2004-11-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3261
3262     * doc/bugs.html
3263     Minor improvements.
3264
3265 2004-11-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3266
3267     * src/aiff.c
3268     Add workaround for Logic Platinum AIFF files with broken COMT chunks.
3269
3270 2004-11-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3271
3272     * doc/FAQ.html
3273     Remove some ambiguities in the SD2 FAQ answer.
3274
3275 2004-11-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3276
3277     * Win32/sndfile.h Win32/config.h MacOS9/sndfile.h MacOS9/config.h
3278     Updates from autoconfig versions.
3279
3280 2004-11-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3281
3282     * src/aiff.c
3283     Fix parsing of COMT chunks. Store SF_STR_COMMENT data in ANNO chunks
3284     instead of COMT chunk.
3285
3286 2004-11-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3287
3288     * src/file_io.c src/common.h
3289     Change the ptr argument to psf_write() from "void*" to a "const void*".
3290     Thanks to Tobias Gehrig for suggesting this.
3291
3292 2004-10-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3293
3294     * src/file_io.c src/common.h
3295     Add functions psf_close_rsrc() and read length of resourse fork into
3296     rsrclength field of SF_PRIVATE.
3297
3298     * src/sd2.c
3299     Make sure resource fork gets closed.
3300
3301     * tests/util.tpl
3302     Add functions to check for file descriptor leakage.
3303
3304     * src/write_read_test.tpl
3305     Use the file descriptor leak checks.
3306
3307     * src/sndfile.h.in
3308     Add SFC_GET_LOOP_INFO and SF_LOOP_INFO struct.
3309
3310     * src/common.h
3311     Add SF_LOOP_INFO pointer to SF_PRIVATE.
3312
3313     * src/wav.c src/aiff.c
3314     Improve and add parsing of 'ACID' and 'basc' chunks, filling in
3315     SF_LOOP_INFO data in SF_PRIVATE.
3316
3317 2004-10-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3318
3319     * src/sd2.c
3320     Further cleanup: remove printfs, change snprintf to LSF_SNPRINTF.
3321
3322     * Win32/config.h Win32/sndfile.h
3323     Updates.
3324
3325     * tests/util.tpl
3326     Add win32 macro for snprintf.
3327
3328 2004-10-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3329
3330     * src/sfendian.h
3331     Add macros : H2BE_SHORT, H2BE_INT, H2LE_SHORT and H2LE_INT.
3332
3333     * src/sd2.c
3334     Use macros to make sure writing SD2 files on little endian machines works
3335     correctly.
3336
3337     * tests/util.tpl
3338     Add a delete_file() function which also deletes the resource fork of SD2
3339     files.
3340
3341     * tests/write_read_test.tpl
3342     Use delete_file() so that "make distcheck" works.
3343
3344 2004-10-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3345
3346     * src/sndfile.c src/file_io.c
3347     Move resource filename construction and testing to psf_open_rsrc().
3348
3349     * src/common.h src/sndfile.c
3350     Add error SFE_SD2_FD_DISALLOWED.
3351
3352     * tests/util.tpl tests/*.(c|tpl)
3353     Add and allow_fd parameter to test_open_file_or_die() so that use of
3354     sf_open_fd() can be avoided when opening SD2 files.
3355
3356 2004-10-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3357
3358     * src/wav.c
3359     Update ACID chunk parsing.
3360
3361     * src/sd2.c
3362     More fixes for files with large resource forks.
3363
3364 2004-10-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3365
3366     * src/common.h src/sndfile.c
3367     Add error numbers and messages for sd2 files.
3368
3369     * src/sd2.c
3370     Reading of sd2 (resource fork version) now seems to be working.
3371
3372 2004-10-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3373
3374     * src/file_io.h
3375     Update file_io.c to include win32 psf_rsrc_open().
3376
3377     * tests/floating_point_test.tpl
3378     Remove use of __func__ in test programs (MSVC++ doesn't grok this).
3379
3380     * Win32/(config|sndfile).h MacOS9/(config|sndfile).h
3381     Updates.
3382
3383 2004-10-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3384
3385     * src/sfendian.h
3386     Fix endswap_int64_t_(array|copy).
3387
3388     * src/test_endswap.(tpl|def)
3389     Add tests for above and inprove all tests.
3390
3391 2004-10-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3392
3393     * src/sfendian.h
3394     Improve type safety, add endswap_double_array().
3395
3396     * src/double64.c
3397     Use endswap_double_array() instead of endswap_long_array().
3398
3399     * src/test_endswap.(tpl|def) src/Makefile.am
3400     Add preliminary endswap tests and hook into build system.
3401
3402 2004-10-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3403
3404     * src/configure.ac src/makefile.am
3405     Finally fix the bulding of DLLs on Win32/MinGW.
3406
3407     * tests/makefile.am
3408     Fix running of tests on Win32/MinGW.
3409
3410 2004-10-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3411
3412     * src/sndfile.h.in src/sndfile.c tests/floating_point_test.tpl
3413     Rename SFC_SET_FLOAT_INT_MULTIPLIER to SFC_SET_SCALE_FLOAT_INT_READ.
3414
3415     * doc/command.html
3416     Document SFC_SET_SCALE_FLOAT_INT_READ.
3417
3418 2004-09-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3419
3420     * tests/floating_point_test.(tpl|def)
3421     Derived from floating_point_test.c.
3422     Add (float|double)_(short|int)_test functions.
3423
3424     * tests/util.(tpl|def)
3425     Make separate float and double versions of gen_windowed_sine().
3426
3427     * tests/write_read_test.tpl
3428     Fix after changes to gen_windowed_sine().
3429
3430     * src/(float32|double64).c
3431     Implement SFC_SET_FLOAT_INT_MULTIPPLIER.
3432
3433 2004-09-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3434
3435     * acinclude.m4
3436     Fix warnings from automake 1.8 and later.
3437
3438     * examples/sndfile-info.c
3439     Add a "fflush (stdout)" after printing Win32 message.
3440
3441 2004-09-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3442
3443     * Win32/Makefile.mingw.in
3444     Add a "make install" target.
3445
3446 2004-09-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3447
3448     * src/sndfile.h.in src/common.h src/sndfile.c src/command.c
3449     Start work on adding command SFC_SET_FLOAT_INT_MULTIPLIER.
3450
3451 2004-09-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3452
3453     * examples/sndfile-convert.c
3454     Fix a bug converting stereo integer PCM files to float.
3455
3456 2004-09-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3457
3458     * examples/sndfile-play.c
3459     Appy patch from Conrad Parker to make Mac OSX error messages more
3460     consistent and informative.
3461
3462     * doc/api.html
3463     Fix a HTML HREF which was wrong.
3464
3465     * doc/win32.html
3466     Add information about when nmake fails.
3467
3468 2004-09-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3469
3470     * examples/sndfile-play.c
3471     Another patch from Denis Cote to prevent race conditions.
3472
3473 2004-09-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3474
3475     * src/common.h src/ms_adpcm.c src/ima_adpcm.c
3476     Fix alternative to ISO standard flexible struct array feature for broken
3477     compilers.
3478
3479 2004-08-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3480
3481     * src/common.h src/string.c src/sndfile.c
3482     Make sf_set_string() return an error if trying to set a string when in
3483     read mode.
3484
3485 2004-08-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3486
3487     * src/common.h
3488     Change the unnamed union into a named union so gcc-2.95 will compile it.
3489
3490     * src/*.c
3491     Fixes to allow for the above change.
3492
3493 2004-08-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3494
3495     * examples/sndfile-play.c
3496     Fixes for Win32. Thanks to Denis Cote.
3497
3498     * Win32/Win32/Makefile.(msvc|mingw.in)
3499     Fix build system after removal of sfendian.h.
3500     Build sndfile-convert.
3501
3502     * src/Makefile.am
3503     Remove sfendian.c from dependancies.
3504
3505 2004-08-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3506
3507     * src/sndfile.h.in
3508     Fix typo in comments (thanks Tommi Sakari Uimonen).
3509
3510 2004-07-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3511
3512     * tests/(a|u)law_test.c
3513     Minor cleanup.
3514
3515 2004-07-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3516
3517     * src/(pcm|float|double64|ulaw|alaw|xi).c
3518     Optimise read/write loops by removing a redundant variable.
3519
3520 2004-07-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3521
3522     * src/file_io.c
3523     Remove call to fsync() in psf_close().
3524
3525 2004-07-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3526
3527     * src/pcm.c
3528     Inline x2y_array() functions where possible.
3529
3530     * configure.ac
3531     Detect presence of type int64_t.
3532
3533     * src/sfendian.c src/sfendian.h
3534     Move functions in the first file to the sfendian.h as static inline
3535     functions.
3536     Improve endswap_long_*() where possible.
3537
3538 2004-07-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3539
3540     * src/pcm.c
3541     When converting from unsigned char to float or double, subtract 128 before
3542     converting to float/double rather than after to save a floating point
3543     operation as suggested by Stefan Briesenick.
3544
3545     * src/(pcm|sfendian|alaw|ulaw|double64|float32).c
3546     Optimize inner loops by changing the loop counting slightly as suggested
3547     by Stefan Briesenick.
3548
3549     * configure.ac
3550     Detect presence of <byteswap.h>.
3551
3552     * src/sfendian.h
3553     Use <byteswap.h> if present as suggested by Stefan Briesenick.
3554
3555     * src/pcm.c
3556     Update bytewapping.
3557
3558 2004-07-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3559
3560     * src/common.h src/*.c
3561     Change the psf->buffer field of SF_PRIVATE into a more type safe union with
3562     double, float, int etc elements.
3563
3564 2004-06-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3565
3566     * examples/sndfile-play.c
3567     Merge slightly modifed patch from Stanko Juzbasic which allows playback of
3568     mono files on MacOSX.
3569
3570 2004-06-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3571
3572     * examples/sndfile-convert.c
3573     Move copy_metadata() after the second sf_open().
3574
3575 2004-06-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3576
3577     * examples/sndfile-convert.c
3578     Fix a bug which caused the program to go into an infinite loop if the source
3579     file has no meta-data. Thanks to Ron Parker for reporting this.
3580
3581     * src/sndfile.h.in
3582     Add SF_STR_FIRST and SF_STR_LAST to allow enumeration of string types.
3583
3584     * Win32/sndfile.h MacOS9/sndfile.h
3585     Update these as per the above file.
3586
3587 2004-06-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3588
3589     * configure.ac src/common.h src/ogg.c src/sndfile.c src/sndfile.h.in
3590       src/Makefile.am
3591     Apply large patch from Conrad Parker implementing Ogg Vorbis, Ogg Speex and
3592     Annodex support via liboggz and libfishsound. Thanks Conrad.
3593
3594 2004-06-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3595
3596     * src/avr.c src/ircam.c src/nist.c src/paf.c src/xi.c
3597     Add cast to size_t for some parameters passed to psf_binheader_writef. This
3598     is Debian bug number 253490. Thanks to Anand Kumria and Andreas Jochens.
3599
3600     * src/w64.c
3601     Found and fixed a bug resulting from use of size_t when writing W64 'fmt '
3602     chunk.
3603
3604 2004-06-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3605
3606     * configure.ac
3607     Bump version to 1.0.10 ready for release.
3608
3609     * Makefile.am
3610     Remove redundant files (check_libsndfile.py libsndfile_version_convert.py)
3611     from distribution tarball.
3612
3613     * tests/header_test.tpl
3614     Fix uninitialised variable.
3615
3616     * src/GSM610/short_term.c
3617     Fix compiler warning on MSVC++.
3618
3619 2004-05-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3620
3621     * src/wav.c
3622     Improve record keeping of chunks seen and return an error if a file with
3623     unusual chunks is opened in mode SFM_RDWR.
3624
3625     * src/mmreg.h
3626     This file not needed so remove it.
3627
3628 2004-05-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3629
3630     * tests/header_test.tpl
3631     Add extra_header_test().
3632
3633     * src/common.h src/sndfile.c
3634     Add SFE_RDWR_BAD_HEADER error number and string.
3635
3636 2004-05-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3637
3638     * tests/utils.tpl tests/*.c tests/*.tpl
3639     Add a line number argument to check_log_buffer_or_die() and update all
3640     files that use that function.
3641
3642     * tests/header_test.tpl
3643     Modify/update tests for files opened SFM_RDWR and SFC_UPDATE_HEADER_AUTO.
3644
3645     * src/aiff.c src/wav.c
3646     Fix another bug in AIFF and WAV files opened in SFM_RDWR and using
3647     SFC_UPDATE_HEADER_AUTO.
3648
3649     * src/test_file_io.c
3650     Add a test for psf_ftruncate() function.
3651
3652 2004-05-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3653
3654     * src/sndfile.c
3655     Fix another  weird corner case bug found by Martin Rumori. Thanks.
3656
3657     * tests/header_test.(tpl|def)
3658     Two new files to test for the absence of the above bug and include tests
3659     moved from tests/misc_test.c.
3660
3661     * tests/Makefile.am
3662     Hook new tests into build/test system.
3663
3664     * tests/misc_test.c
3665     Remove update_header_test() which has been moved to the new files above.
3666
3667 2004-05-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3668
3669     * src/aiff.c
3670     Fixed a bug reported by Martin Rumori on the LAD list. If a file created
3671     with a format of SF_FORMAT_FLOAT and then closed before any data is written
3672     to it, the header can get screwed up (PEAK chunk gets overwritten).
3673
3674     * tests/write_read_test.tpl
3675     Add a test (empty_file_test) for the above bug.
3676
3677 2004-05-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3678
3679     * Win32/Makefile.mingw.in
3680     Added a Makefile for MinGW (needs to be processed by configure).
3681
3682     * src/mmsystem.h src/mmreg.h
3683     Add files from the Wine project (under the LGPL) to allow build of
3684     sndfile-play.exe under MinGW.
3685
3686 2004-05-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3687
3688     * src/GSM610/gsm610_priv.h
3689     Replace ugly macros with inline functions.
3690
3691     * src/GSM610/*.c
3692     Remove temporary variables used by macros and other minor fixes required by
3693     above change.
3694
3695 2004-05-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3696
3697     * tests/pipe_test.tpl tests/stdio_test.c Win32/Makefile.msvc
3698     Make sure these programs compile (even though they do nothing) on Win32
3699     and add them to the "make check" target.
3700
3701     * src/sfendian.h
3702     Fix warning on Sparc CPU and code cleanup.
3703
3704 2004-05-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3705
3706     * src/file_io.c
3707     Fix warning messages when compiling under MinGW.
3708
3709 2004-05-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3710
3711     * configure.ac
3712     Set HAVE_FLEXIBLE_ARRAY in src/config.h depending on whether the compiler
3713     accepts the flexible array struct member as per 1999 ISO C standard.
3714
3715     * src/common.h src/ima_adpcm.c src/paf.c src/ms_adpcm.c
3716     Added ugly #if HAVE_FLEXIBLE_ARRAY and provided a non-standards compliant
3717     hack for non 1999 ISO C compliant compilers.
3718
3719 2004-04-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3720
3721     * src/strings.c
3722     If adding an SF_STR_SOFTWARE string, only append libsndfile-X.Y.Z if the
3723     string does not already have libsndfile in the string. Thanks to Conrad
3724     Parker.
3725
3726     * tests/string_test.c
3727     Add test to verify the above.
3728
3729     * examples/sndfile-convert.c
3730     Add ability to transcode meta data as well (Conrad Parker).
3731
3732 2004-04-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3733
3734     * doc/command.html
3735     Fix minor error. Thanks to Simon Burton.
3736
3737     * doc/win32.html
3738     Started adding instructions for compiling libsndfile under MinGW.
3739
3740     * configure.ac
3741     Add --enable-bow-docs to enable black text on a white background HTML docs.
3742
3743     * doc/libsndfile.css.in
3744     This is now a template file for configure which sets the foreground and
3745     background colours.
3746
3747 2004-04-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3748
3749     * configure.ac
3750     Do some MinGW fixes.
3751
3752     * configure.ac doc/Makefile.am
3753     Install HTML docs when doing make install.
3754
3755 2004-04-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3756
3757     * examples/sndfile-info.c
3758     Print out the dB level with the signal max.
3759
3760 2004-04-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3761
3762     * src/file_io.c
3763     Define S_ISSOCK in src/file_io.c if required.
3764
3765 2004-04-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3766
3767     * configure.ac
3768     Improve printout configuration summary (as suggested by Axel Röbel).
3769
3770     * doc/index.html
3771     Add link to pre-release location.
3772
3773     * src/sndfile.h.in
3774     Remove comma after last element of enum.
3775
3776     * src/float32.c src/double64.c
3777     Fix read/write of float/double encoded raw files to/from pipes.
3778
3779     * tests/pipe_test.c tests/pipe_test.tpl tests/pipe_test.def
3780     Turn pipe_test.c into an autogenerated file and add tests for reading/
3781     writing floats and doubles.
3782
3783     * tests/Makefile.am
3784     Hook tests/pipe_test.* into build system.
3785
3786 2004-04-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3787
3788     * configure.ac acinclude.m4
3789     Rename AC_C_STRUCT_HACK macro to AC_C99_FLEXIBLE_ARRAY.
3790
3791 2004-03-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3792
3793     * tests/misc_test.c
3794     Perform update_header_test in RDWR mode as well.
3795
3796     * src/aiff.c
3797     Fix problems when updating header in RDWR mode.
3798
3799 2004-03-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3800
3801     * src/wav.c src/w64.c src/wav_w64.c
3802     Integrate code supplied by David Viens for supporting microsoft's
3803     WAVEFORMATEXTENSIBLE stuff. Thanks David for supplying this.
3804
3805     * configure.ac doc/*.html
3806     Bump version to 1.0.9.
3807
3808 2004-03-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3809
3810     * src/command.c src/sndfile.c src/sndfile.h.in src/wav.c
3811     Started work on supporting microsoft's WAVEFORMATEXTENSIBLE gunk.
3812
3813 2004-03-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3814
3815     * src/avr.c
3816     New file to handle Audio Visual Resaerch files.
3817
3818     * src/sndfile.h.in src/common.h src/sndfile.c src/command.c
3819     Hook AVR into everything else.
3820
3821     * tests/Makefile.am tests/write_read_test.tpl tests/misc_test.c
3822     Add testing for AVR files.
3823
3824 2004-03-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3825
3826     * src/file_io.c
3827     Fix psf_set_file() for win32. Thanks to Vincent Trussart (Plogue Art et
3828     Technologie) for coming up with the solution.
3829
3830 2004-03-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3831
3832     * tests/write_read_test.tpl
3833     Fixed a bug that was causing valgrind to report a memory leak. The bug was
3834     in the test code itself, not the library.
3835
3836 2004-03-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3837
3838     * examples/generate.cs
3839     An example showing how to use libsndfile from C#. Thanks to James Robson
3840     for providing this.
3841
3842 2004-03-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3843
3844     * src/common.c
3845     Fix problems with WAV files containing large chunks after the 'data'
3846     chunk. Thanks to Koen Tanghe for providing a sample file.
3847
3848 2004-03-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3849
3850     * configure.ac
3851     Detect presense of ALSA (Advanced Linux Sound Architecture).
3852
3853     * examples/sndfile-play.c
3854     Add ALSA output support.
3855
3856     * examples/Makefile.am
3857     Add ALSA_LIBS to link line of sndfile-play.c.
3858
3859 2004-03-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3860
3861     * acinclude.m4
3862     Add new macro (AC_C_STRUCT_HACK) to detect whether the C compiler allows
3863     the use of the what is known as the struct hack introduced by the 1999 ISO
3864     C Standard.
3865
3866     * configure.ac
3867     The last release would not compile with gcc-2.95 due to the use of features
3868     (ie struct hack) introduced by the 1999 ISO C Standard.
3869     Add check to make sure compiler handles this and bomb out if it doesn't.
3870
3871 2004-03-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3872
3873     * tests/write_read_test.tpl
3874     Fix compiler warning on Win32.
3875
3876     * src/file_io.c
3877     Fix use of an un-initialised variable in Win32 stuff.
3878
3879     * Win32/config.h examples/sndfile-play.c
3880     Win32 fixes.
3881
3882 2004-03-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3883
3884     * configure.ac
3885     Fix bug which occurres when configuring for MinGW.
3886     If compiler is gcc and cross compiling use -nostdinc.
3887
3888 2004-03-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3889
3890     * src/common.h src/aiff.c src/wav.c src/float32.c src/double64.c
3891       src/sndfile.c
3892     Fix a bug with PEAK chunk handling for files with more than 16 channels.
3893     Thanks to Remy Bruno for finding this.
3894
3895 2004-03-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3896
3897     * src/common.c
3898     Fix a bug which was preventing WAV files being openned correctly if the
3899     file had a very large header. Thanks to Eldad Zack for finding this.
3900
3901 2004-03-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3902
3903     * configure.ac src/file_io.c
3904     Fix cross-compiling from Linux to Win32 using the MinGW tools.
3905
3906 2004-03-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3907
3908     * src/create_symbols_file.sh
3909     Christian Weisgerber pointed out that the shell script did not run on a
3910     real Bourne shell although it did run under Bash in Bourne shell mode.
3911
3912     * src/create_symbols_file.py
3913     Rewrite of above in Python. Also add support for writing Win32 .def files.
3914     The Python script generates Symbols.linux, Symbols.darwin and
3915     libsndfile.def (Win32 version). These files get shipped with the tarball
3916     so there should not be necessary to run the Python script when building
3917     the code from the tarball.
3918
3919     * configure.ac src/Makefile.am Win32/Makefile.am
3920     Hook new Python script into the build system.
3921
3922 2004-02-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3923
3924     * src/configure.ac
3925     Add --enable-gcc-werror option and move GCC specific stuff down.
3926
3927 2004-02-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3928
3929     * acinclude.m4 configure.ac
3930     Fix clip mode detection (tested in one of HP's testdrive Itanium II boxes).
3931
3932     * src/file_io.c
3933     Added check for sizeof (off_t) != sizeof (sf_count_t) to prevent recurrence
3934     of missing large file support on Linux and Solaris.
3935
3936 2004-02-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3937
3938     * examples/sndfile-play.c
3939     Fix a MacOSX specific bug which was caused by a space being inserted in
3940     the middle of a file name.
3941
3942     * configure.ac src/Makefile.am examples/Makefile.am
3943     Fix a couple of MacOSX build issues.
3944
3945 2004-02-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3946
3947     * doc/command.html
3948     Document SFC_SET_CLIPPING and SFC_GET_CLIPPING.
3949
3950 2004-02-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3951
3952     * doc/*.html
3953     Applied patch from Frank Neumann (author of lakai) which fixes many minor
3954     typos in documentation. Thanks Frank.
3955
3956 2004-02-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3957
3958     * ChangeLog
3959     Changed my email address throughout source and docs.
3960
3961 2004-02-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3962
3963     * src/file_io.c
3964     Make sure config.h is included before stdio.h to make sure large file
3965     support is enabled on Linux (and Solaris).
3966
3967     * tests/misc_test.c
3968     Disable update_header test on Win32. This should work but doesn't and
3969     I'm not sure why.
3970
3971     * Make.bat Win32/Makefile.msvc
3972     Updates.
3973
3974 2004-01-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3975
3976     * src/common.h
3977     Changed logindex, headindex and headend files of SF_PRIVATE from unsigned
3978     int to int to prevent weird arithmetic bugs.
3979
3980     * src/common.c src/aiff.c src/wav.c src/w64.c
3981     Fixed compiler warnings resulting from above change.
3982
3983 2004-01-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3984
3985     * src/common.c
3986     Fixed a bug in header reader for some files with data after the sample data.
3987
3988 2003-12-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3989
3990     * tests/lossy_comp_test.c tests/Makefile.am
3991     Add tests for AIFF/IMA files.
3992
3993 2003-12-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3994
3995     * src/macbinary3.c src/macos.c
3996     Two new files required for handling SD2 files.
3997
3998     * src/common.h
3999     Add prototypes for functions in above two files.
4000
4001     * src/Makefile.am
4002     Hook new files into build system.
4003
4004 2003-12-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4005
4006     * configure.ac
4007     Add checks for mmap() and getpagesize() which might be used at some time
4008     for faster file reads.
4009     Add detection of MacOSX.
4010
4011 2003-12-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4012
4013     * doc/FAQ.html
4014     Minor mods to pkg-config section.
4015
4016 2003-12-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4017
4018     * src/create_symbols_file.sh
4019     Andre Pang (also known as Ozone) pointed out that on MacOSX, all non
4020     static symbols are exported causing troubles when trying to link
4021     libsndfile with another library which has any of the same symbols.
4022     He fixed this by supplying the MacOSX linker with a file containing
4023     all the public symbols so that only they would be exported and then
4024     supplied a patch for libsndfile.
4025     This wasn't quite ideal, because I would have to maintain two (3 if
4026     you include Win32) separate files containing the exported symbols.
4027     A better solution was to create this script which can generate a
4028     Symbols file for Linux, MacoSX and any other OS that supports
4029     minimising the number of exported symbols.
4030
4031     * configure.ac src/Makefile.am
4032     Hook the new script into the build process.
4033
4034 2003-12-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4035
4036     * doc/index.html
4037     Added comments about Steve Dekorte's SoundConverter scam.
4038
4039 2003-12-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4040
4041     * src/file_io.c
4042     Axel Roebel pointed out that on Mac OSX a pipe is not considered a fifo
4043     (S_ISFIFO (st.st_mode) is false) but a socket (S_ISSOCK (st.st_mode) is
4044     true). The test has therefore been changed to is S_ISREG and anything
4045     which which does not return true for S_ISREG is considered a pipe.
4046
4047 2003-11-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4048
4049     * tests/misc_test.c
4050     Fix update_header_test to pass SDS.
4051
4052     * src/sds.c
4053     More minor fixes.
4054
4055     * tests/floating_point_test.c
4056     Add test for SDS files.
4057
4058     * src/command.c
4059     Add SDS to major_formats array.
4060
4061 2003-11-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4062
4063     * tests/write_read_test.tpl tests/misc_test.c
4064     Add tests for SDS files.
4065
4066     * src/sds.c
4067     Fix a bug in header update code.
4068
4069 2003-11-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4070
4071     * src/sds.c
4072     Get file write working.
4073
4074     * src/paf.c
4075     Fix a potential bug in paf24_seek().
4076
4077 2003-11-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4078
4079     * doc/FAQ.html
4080     Add Q/A about u-law encoded WAV files.
4081
4082     * Win32/*.h
4083     Updated so it compiles on Win32.
4084
4085 2003-11-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4086
4087     * examples/sndfile-convert.c
4088     Add -alaw and -ulaw command line arguments.
4089
4090     * configure.ac
4091     Add library versioning comments.
4092     Add arguments to AC_INIT.
4093
4094 2003-10-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4095
4096     * src/file_io.c
4097     Ross Bencina has contributed code to replace all of the (mostly broken)
4098     Win32 POSIX emulation calls with calls the native Win32 file I/O API.
4099     This code still needs testing but is likely to be a huge improvemnt
4100     of support for Win32. Thanks Ross.
4101
4102 2003-10-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4103
4104     * src/dwvw.c
4105     Removed filedes field from the DWVW_PRIVATE struct.
4106
4107     * src/file_io.c
4108     Change psf_fopen() so it returns psf->error instead of the file descriptor.
4109     Add new functions psf_set_stdio() and psf_set_file().
4110
4111     * src/sndfile.c
4112     Change these to work with changed psf_fopen() return value.
4113     Remove all uses of psf->filedes from sndfile, making it easier to slot native
4114     Win32 API file handling functions.
4115
4116     * src/test_file_io.c
4117     Minor changes to make it compile with new file_io.c stuff.
4118
4119 2003-10-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4120
4121     * src/gsm610.h
4122     Rename a variable from true to true_flag. As Ross Bencina points out,
4123     true is defined in the C99 header <stdbool.h>.
4124
4125     * src/file_io.c
4126     If fstat() fails, return SF_TRUE instead of -1 (Ross Bencina).
4127
4128 2003-10-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4129
4130     * src/common.h
4131     Increase the size of SF_BUFFER_LEN and SF_HEADER_LEN.
4132
4133     * src/sndfile.c
4134     Fix sf_read/write_raw which were dividing by psf->bytwidth and
4135     psf->blockwidth which can both be zero.
4136
4137     * examples/sndfile-info.c
4138     Increase size of BUFFER_LEN.
4139
4140 2003-09-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4141
4142     * configure.ac
4143     Add checks for <sys/wait.h> and ssize_t.
4144     Other Win32/MinGW checks.
4145
4146     * src/aiff.c src/au_g72x.c src/file_io.c src/gsm610.c src/interleave.c
4147       src/paf.c src/sds.c src/svx.c src/voc.c src/w64.c src/wav.c src/xi.c
4148     Fix compiler warnings.
4149
4150 2003-09-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4151
4152     * tests/scale_clip_test.tpl
4153     Add definition of M_PI if needed.
4154
4155 2003-09-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4156
4157     * configure.ac
4158     Detect if S_IRGRP is declared in <unistd.h>.
4159
4160     * src/file_io.c tests/*.tpl tests/*.c
4161     More fixes for Win32/MSVC++ and MinGW. MinGW does have <unistd.h> but that
4162     file doesn't declare S_IRGRP.
4163
4164 2003-10-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4165
4166     * src/config.h.in
4167     Add comment stating that the sf_count_t typedef is determined when
4168     libsndfile is being compiled.
4169
4170     * tests/utils.tpl
4171     Modified so that utils.c gets one copy of the GPL and not two.
4172
4173
4174 2003-09-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4175
4176     * Win32/unistd.h src/sf_unistd.h
4177     Move first file to the second. This will help for Win32/MSVC++ and MinGW.
4178
4179     * Win32/Makefile.am src/Makefile.am
4180     Changed in line with above.
4181
4182     * Win32/Makefile.msvc
4183     Removed "/I Win32" which is no longer required.
4184
4185     * src/file_io.c src/test_file_io.c tests/*.tpl tests/*.c
4186     If HAVE_UNISTD_H include <unistd.h> else include <sf_unistd.h>. This should
4187     work for Win32, MinGW and other fakes Unix-like OSes.
4188
4189     * src/*.c
4190     Removed #include <unistd.h> from files which didn't need it.
4191
4192 2003-09-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4193
4194     * libsndfile.spec.in
4195     Apply fix from Andrew Schultz.
4196
4197 2003-09-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4198
4199     * src/vox_adpcm.c
4200     Only set psf->sf.samplerate if the existing value is invalid.
4201
4202 2003-09-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4203
4204     * examples/sndfile-play.c
4205     Started adding support for ALSA output.
4206
4207 2003-09-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4208
4209     * src/sndfile.h.in
4210     Removed <stdlib.h> from sndfile.h.
4211
4212     * src/*.c examples/*.c tests/*.c tests/*.tpl
4213     Added <stdlib.h> where needed.
4214
4215 2003-09-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4216
4217     * src/common.h
4218     Added ARRAY_LEN, SF_MAX and SF_MIN macros.
4219
4220 2003-08-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4221
4222     * doc/index.html
4223     Remove statements about alternative licensing arrangements.
4224
4225 2003-08-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4226
4227     * MacOS MacOS9 Makefile.am configure.ac
4228     Change directory name from MacOS to MacOS9
4229
4230     * MacOS9/MacOS9-readme.txt
4231     Change name to make it really obvious, add text to top of file to make it
4232     still more obvious again.
4233
4234 2003-08-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4235
4236     * src/test_log_printf.c
4237     Add tests for %u conversions.
4238
4239     * src/common.c
4240     Fix psf_log_printf() %u conversions.
4241
4242 2003-08-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4243
4244     * src/aiff.c
4245     Fixed a bug where opening a file with a non-trival header in SFM_RDWR mode
4246     would over-write part of the header. Thanks to Axel Roebel for pointing
4247     this out. Axel also provided a patch to fix this but I came up with a
4248     neater and more general solution.
4249     Return error when openning an AIFF file with data after the SSND chunk
4250     (Thanks Axel Roebel).
4251
4252     * tests/aiff_rw_test.c
4253     Improvements to test program which will later allow it to be generalised to
4254     test WAV, SVX and others as required.
4255
4256 2003-08-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4257
4258     * tests/pipe_test.c
4259     Add useek_pipe_rw_test() submitted by Russell Francis.
4260
4261     * src/sndfile.c
4262     In sf_open_fd(), check if input file descriptor is a pipe.
4263
4264     * src/sndfile.[ch]
4265     Fix typo in variable name do_not_close_descriptor.
4266
4267 2003-08-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4268
4269     * src/test_log_printf.c
4270     Improve the tests for %d and %s conversions.
4271
4272     * src/common.c
4273     Fixed a few problems in psf_log_printf() found using new tests.
4274
4275 2003-08-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4276
4277     * configure.ac
4278     Add -Wwrite-strings warning to CFLAGS if the compiler is GCC. Thanks to
4279     Peter Miller (Aegis author) for suggesting this and supplying a patch.
4280
4281     * src/*.c examples/*.c tests/*.c
4282     Fix all compiler warnings arising from the above.
4283
4284 2003-08-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4285
4286     * tests/aiff_rw_test.c tests/Makefile.am
4287     New test program to check for errors re-writing the headers of AIFC files
4288     opened in mode SFM_RDWR.
4289
4290 2003-07-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4291
4292     * examples/sndfile-play.c
4293     Applied a patch from Tero Pelander to allow this program to run on systems
4294     using devfs which used /dev/sound/dsp instead of /dev/dsp.
4295
4296 2003-07-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4297
4298     * doc/new_file_type.HOWTO
4299     Updated document. Still incomplete.
4300
4301 2003-06-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4302
4303     * src/sndfile.c
4304     Fix VALIDATE_SNDFILE_AND_ASSIGN_PSF which was returning an error rather
4305     than saving it and returning zero.
4306
4307 2003-06-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4308
4309     * src/file_io.c
4310     Two fixes for Mac OS9.
4311     Fix all casts from sf_count_t to ssize_t (not size_t).
4312
4313 2003-06-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4314
4315     * src/wav.c
4316     Fix for reading files with RIFF length of 8 and data length of 0.
4317
4318 2003-06-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4319
4320     * src/*.c tests/*.c tests/*.tpl
4321     Added comments to mark code for removal when make Lite version of
4322     libsndfile.
4323
4324 2003-06-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4325
4326     * examples/sndfile-convert.c
4327     Add extra error checking for unrecognised arguments.
4328
4329 2003-06-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4330
4331     * src/ima_adpcm.c
4332     Started adding code to write IMA ADPCM encoded AIFF files.
4333
4334     * src/test_log_printf.c src/Makefile.am
4335     New file to test psf_log_printf() function and add hooks into build system.
4336
4337     * src/common.c
4338     Move psf_log_printf() function to top of the file and only compile the rest
4339     of the file if if PSF_LOG_PRINTF_ONLY is not defined.
4340
4341 2003-06-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4342
4343     * Win32/config.h Win32/sndfile.h
4344     Updated with new config variables.
4345
4346     * Win32/unistd.h src/file_io.c
4347     Added implementation of S_ISFIFO macro which Win32 seems to lack and is
4348     used in src/file_io.c.
4349
4350     * tests/utils.tpl
4351     Added #include <unitstd.h> to pull in Win32/unistd.h so it compiles for
4352     Win32.
4353
4354     * src/Makefile.msvc
4355     Added src\test_file_io.exe build target and run this as the very first
4356     test.
4357
4358     * tests/win32_test.c
4359     Add support for testing Cygwin32.
4360
4361     * configure.ac
4362     Detect POSIX fsync() and fdatasync() functions.
4363
4364     * src/file_io.c
4365     If compiling for Cygwin, call fsync() before calling fstat() to retrieve
4366     file length.
4367
4368     * tests/pcm_test.tpl
4369     Add a test for lrintf() function. This was required to detect a really
4370     broken lrint() and lrintf() on Cygwin.
4371
4372     * tests/misc_test.c
4373     Don't run permission test when compiling under Cygwin.
4374
4375     * src/float_cast.h
4376     Fix fallback macro for lrint() and lrintf() to cast to long instead of int
4377     to match official function prototypes.
4378
4379 2003-06-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4380
4381     * examples/sndfile-convert.c
4382     Modifications to improve accuracy of conversions; use double data for
4383     floating point and int for everything else.
4384
4385     * src/ima_apdcm.c
4386     Completed work on decoding IMA ADPCM encoded AIFF files. Still need to
4387     get encoding working.
4388
4389 2003-05-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4390
4391     * src/aiff.c src/ima_adpcm.c
4392     Start working on getting IMA ADPCM encoded AIFF files working.
4393
4394 2003-05-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4395
4396     * configure.ac
4397     Fixed the touch command for when the autogen program is not found (Matt
4398     Flax).
4399
4400     * src/ulaw.c src/alaw.c
4401     Made these pipe-able.
4402
4403 2003-05-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4404
4405     * src/paf.c src/ircam.c
4406     Fixed writing to pipe.
4407
4408     * src/wav.c src/aiff.c src/nist.c src/mat*.c src/svx.c src/w64.c
4409     Return SFE_NO_PIPE_WRITE if an attempt is made to write to a pipe.
4410
4411 2003-05-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4412
4413     * examples/sndfile-info.c
4414     Modified to detect unknown file lengths.
4415
4416     * src/mat4.c
4417     Fix reading from a pipe.
4418
4419 2003-05-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4420
4421     * tests/pipe_test.c
4422     Add more file types to tests.
4423
4424     * src/mat4.c
4425     Removed explicit setting of psf->sf.seekable to SF_TRUE.
4426
4427     * tests/utils.tpl
4428     Add macro for generating and check data in the stdio and pipe tests.
4429
4430     * tests/stdout_test.c tests/stdin_test.c
4431     Use the above macro to generate known data on output and check data on
4432     input.
4433
4434     * src/voc.c src/htk.c common.h sndfile.c
4435     Disallow reading/writing VOC and HTK files from/to pipes be returning new
4436     error values.
4437
4438     * src/w64.c
4439     Fixes to allow reading from a pipe.
4440
4441 2003-05-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4442
4443     * configure.ac src/sndfile.h.in
4444     When the configure script determines the sizeof (sf_count_t), also set the
4445     value of SF_COUNT_MAX in sndfile.h.
4446
4447     * configure.ac
4448     Remove -pedantic flag from default GCC compiler flags.
4449
4450     * tests/pipe_test.c
4451     Add a pipe_read_test() before doing pipe_write_test().
4452
4453     * tests/scale_clip_test.c
4454     Add test to make sure non-normalized values also clip in the right way.
4455
4456 2003-05-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4457
4458     * configure.ac
4459     Add test to detect processor clipping capabilities.
4460
4461     * tests/stdin_test.c tests/stdout_test.c
4462     Fix a pair of compiler warnings.
4463
4464     * src/common.h
4465     Add new pipeoffset field to SF_PRIVATE. This will contain the current file
4466     offset when operating on a pipe.
4467
4468     * src/common.c
4469     Removed direct calls to psf_fread()/psf_fseek()/psf_fgets() etc from
4470     psf_binheader_readf and redirect them to new buffered versions
4471     header_read(), header_seek() and header_gets().
4472     Add "G" format specifier to emulate fgets() functionality with buffering.
4473     This will allow reading some file types from pipes.
4474
4475     * src/file_io.c
4476     When the file descriptor is a pipe, manintain psf->pipeoffset.
4477
4478     * src/pvf.c
4479     Change use of psf_fgets() to psf_binheader_readf() as required but changes to header re
4480
4481     * src/au.c
4482     Fix reading from a pipe.
4483
4484 2003-05-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4485
4486     * src/pcm.c
4487     Add clipping versions of the f2XXX_array() functions to allow option of
4488     clipping data that would otherwise overflow.
4489
4490     * tests/scale_clip_test.tpl tests/scale_clip_test.def
4491     New files test that clipping option does actually work.
4492
4493 2003-05-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4494
4495     * doc/index.html
4496     Fixed a typo ("OS(" instead of "OS9").
4497
4498 2003-05-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4499
4500     * tests/open_fail_test.c
4501     Include <string.h> to prevent warning message of missing declaration of
4502     memset().
4503
4504 2003-05-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4505
4506     * src/common.h
4507     Add new "add_clipping" field to SF_PRIVATE.
4508
4509     * src/sndfile.h.in src/sndfile.c
4510     Add command SFC_SET_CLIPPING which sets/resets add_clipping field.
4511
4512 2003-05-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4513
4514     * doc/api.html
4515     Add docs for sf_set_string() and sf_get_string().
4516
4517     * src/common.h src/sndfile.c
4518     Add new SFE_STR_BAD_STRING error.
4519
4520     * tests/stdin_test.c tests/stdout_test.c
4521     Removed all non-error print statements.
4522
4523     * tests/stdio_test.c tests/pipe_test.c tests/Makefile.am
4524     Add print statements removed from two files above.
4525
4526 2003-05-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4527
4528     * libsndfile.spec.in
4529     Fixed a coulpe of minor errors discovered by someone calling themselves
4530     Agent Smith.
4531
4532     * src/common.c src/common.h src/file_io.h
4533     Added is_pipe field to SF_PRIVATE and declaration of psf_is_pipe()
4534     function. (Axel Roebel)
4535
4536     * src/sndfile.c
4537     Fixed determination of whether the file is a pipe. (Axel Roebel)
4538
4539     * src/paf.c
4540     Force paf24 to start with undefined mode. (Axel Roebel)
4541
4542     * tests/pipe_test.c
4543     Mods to make this test work and actually do the test on RAW files. (Axel
4544     Roebel).
4545
4546 2003-05-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4547
4548     * src/sndfile.c
4549     Fixed a potential bug where psf->sf.seekable was being set to FALSE when
4550     operating on stdin or stdout but then the default initialiser was reseting
4551     it to TRUE. Thanks to Axel Roebel.
4552
4553     * src/aiff.c
4554     Fixed a bug in the header parser where it was not handling an odd length
4555     COMM chunk correctly. Thanks to Axel Roebel.
4556
4557     * src/test_file_io.c
4558     Add more tests.
4559
4560     * tests/win32_test.c
4561     New file for showing the bugs in the Win32 implementation of the POSIX API.
4562     It also runs on Linux for sanity checking.
4563
4564     * tests/Makefile.am Win32/Makefile.msvc
4565     Hook the new test program into the build system.
4566
4567 2003-05-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4568
4569     * src/test_file_io.c
4570     New test program to test operation of functions defined in file_io.c. This
4571     should make supporting win32 significantly easier.
4572
4573     * src/Makefile.am
4574     Hook new test program into the build system.
4575
4576     * src/file_io.c
4577     Add compile/run time check that sizeof statbuf.st_size and sf_count_t are
4578     the same.
4579
4580     * src/common.h src/sndfile.c
4581     Added new error code and error message for new check.
4582
4583     * tests/benchmark.tpl
4584     Fix to use frames instead of samples in SF_INFO.
4585
4586 2003-05-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4587
4588     * src/file_io.c
4589     More stuffing about working around PLAIN OLD-FASHIONED **BUGS** in Win32.
4590
4591     * examples/sndfile-info.c
4592     Applied patch from Conrad Parker to add "--help" and "-h" options as
4593     well as an improved usage message.
4594
4595 2003-05-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4596
4597     * src/au.c
4598     Added embedded file support.
4599
4600     * tests/multi_file_test.c
4601     Added tests for embedded AU files.
4602     Added verbose testing mode.
4603
4604     * src/common.h src/sndfile.c
4605     Added an embedded AU specific error code and message.
4606
4607     * src/wav.c
4608     Added patch from Conrad Parker which filled in a little more information
4609     about ACIDized WAV files.
4610
4611 2003-04-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4612
4613     * src/file_io.c
4614     Fixed Win32 version of psf_fseek() which was calling psf_get_filelen()
4615     which was in turn calling psf_fseek() which in the end blew the stack.
4616     Now of course this would have been easy to find on Linux, but this blow
4617     up was happening in kernel32.dll and the fscking MSVC++ debugger couldn't
4618     figure out what call caused this (it couldn't even tell me the stack had
4619     overflowed) and was absolutley useless for this debugging exercise.
4620     On top of that, the reason I got into this mess was that windoze doesn't
4621     have a working fstat() function which can return file lengths > 2 Gig. It
4622     HAS a fscking _fstati64() but the file length value is only updated AFTER
4623     the bloody file is closed. That makes it completely useless.
4624     How the hell do people stand working on this crap excuse of an OS?
4625
4626 2003-04-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4627
4628     * Win32/unistd.h src/file_io.c
4629     Moved definitions of S_IGRP etc from file_io.c to unistd.h so that these
4630     can be used in the test programs.
4631
4632     * Win32/libsndfile.def
4633     Added sf_open_fd.
4634
4635     * Win32/sndfile.h
4636     Updated to match src/sndfile.h.in.
4637
4638     * Win32/Makefile.msvc
4639     Added dither.c and htk.c to libsndfile.dll target.
4640
4641 2003-04-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4642
4643     * src/file_io.c
4644     First attempt at getting the Win32 versions of the these functions working.
4645     They still need to be tested.
4646
4647 2003-04-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4648
4649     * src/strings.c
4650     Found and fixed a bug which was causing psf_store_string() to fail on
4651     Motorola 68k processors. Many thanks fo Joshua Haberman (Debian maintainer
4652     of libsndfile) for compiling and running debug code to help me debug the
4653     problem.
4654
4655 2003-04-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4656
4657     * src/sndfile.c src/file_io.c src/wav.c src/aiff.c
4658     Much hacking to get reading and writing of embedded files working (ie sound
4659     files at a non-zero files offset).
4660
4661     * doc/embedded_files.html
4662     First pass atempt at documenting reading/writing embedded files.
4663
4664 2003-04-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4665
4666     * doc/FAQ.html
4667     Updated answer to "Why doesn't libsndfile do interleaving/de-interleaving?"
4668
4669 2003-04-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4670
4671     * src/wav.c src/aiff.c
4672     Fix retrieving and storing of string data from files. Need to be careful
4673     about using psf->buffer for strings.
4674
4675 2003-04-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4676
4677     * src/file_io.c
4678     Fix psf_fseek() for seeks withing embedded files.
4679
4680 2003-04-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4681
4682     * src/sndfile.h.in
4683     Changed the definition of SNDFILE slightly to produce warnings when it isn't
4684     used correctly. This should have zero affect in code which uses the SNDFILE
4685     type correctly.
4686
4687     * src/sndfile.c
4688     Fixed a few compiler warnings cause by the changes to the SNDFILE type.
4689
4690 2003-04-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4691
4692     * doc/FAQ.html
4693     Added question and answer to the question "How about adding the ability
4694     to write/read sound files to/from memory buffers?".
4695
4696 2003-04-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4697
4698     * tests/write_read_test.tpl
4699     Removed un-needed enums declaring TRUE and FALSE and replaced usage of
4700     these with SF_TRUE and SF_FALSE.
4701
4702     * tests/multi_file_test.c
4703     New test program to test sf_open_fd() on files containing data other than
4704     a single sound file.
4705
4706 2003-04-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4707
4708     * src/file_io.c
4709     When creating files, set the readable by others flag. This still allows
4710     further restrictions to be enforced by use of the user's umask. Fix
4711     suggested by Eric Lyon.
4712
4713 2003-04-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4714
4715     * src/sndfile.h.in src/sndfile.c
4716     Changed sf_open_fd(). Dropped offset parameter and added a close_desc
4717     parameter. If close desc is TRUE, the file descritpor passed into the
4718     library will be closed when sf_close() is called.
4719
4720     * tests/utils.tpl
4721     Modified call to sf_open_fd() to set close_desc parameter to SF_TRUE.
4722
4723 2003-04-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4724
4725     * tests/write_read_test.tpl
4726     Add a string (using sf_set_string() function) before and after data section
4727     of all files. This will make sure that if string data can be added, it
4728     doesn't overwrite real audio data.
4729
4730 2003-04-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4731
4732     * src/sndfile.c
4733     Started work on supporting a non-zero offset parameter for sf_open_fd ().
4734
4735     * src/<file header parsers>.c
4736     Removed many uses of psf_fseek (SEEK_END) which to allow for future use of
4737     sf_open_fd() with non-zero offset.
4738     Associated refactoring.
4739
4740     * src/aiff.c
4741     Implemented functionality required to get sf_get_string() and
4742     sf_set_string() working for AIFF files.
4743
4744 2003-04-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4745
4746     * tests/utils.tpl
4747     Modified test_open_file_or_die() to alternately use sf_open() and
4748     sf_open_fd().
4749
4750     * src/svx.c
4751     Fixed a bug which occurred when openning an existing file for read/write
4752     using sf_open_fd(). In this case, the existing NAME chunk needs to be
4753     read into psf->filename.
4754     Fixed printing of sf_count_t types to logbuffer.
4755
4756 2003-03-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4757
4758     * src/sndfile.h.in
4759     Added prototype for new function sf_open_fd().
4760
4761     * src/sndfile.c
4762     Moved most of the code in sf_open() to a new function psf_open_file().
4763     Created new function sf_open_fd() which also uses psf_open_file() but
4764     does not currently support the offset parameter.
4765
4766     * doc/api.html
4767     Document sf_open_fd().
4768
4769 2003-03-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4770
4771     * src/sndfile.c
4772     Fixed a memory leak reported by Evgeny Karpov. Memory leak only occurred
4773     when an attempt was made to read and the open() call fails.
4774
4775 2003-03-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4776
4777     * tests/open_fail_test.c
4778     New test program to check for memory leaks when sf_open fails on a valid
4779     file. Currently this must be run manually under valgrid.
4780
4781     * tests/Makefile.am
4782     Hook new test program into build.
4783
4784 2003-03-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4785
4786     * Octave/sndfile_save.m Octave/sndfile_play.m
4787     Added a -mat-binary option to the octave save command to force the output
4788     to binary mode even if the user has set ascii data as the default. Found
4789     by Christopher Moore.
4790
4791 2003-02-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4792
4793     * doc/dither.html
4794     New file which will document the interface which allows the addition of
4795     audio dither when sample word sizes are being reduced.
4796
4797     * src/dither.c
4798     More work.
4799
4800 2003-02-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4801
4802     * tests/misc_test.c
4803     In update_header_test(), make HTK files a special case.
4804
4805     * doc/index.html
4806     Added HTK to the feature matrix.
4807
4808 2003-02-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4809
4810     * src/htk.c
4811     New file for reading/writing HMM Tool Kit files.
4812
4813     * src/sndfile.h.in src/sndfile.c src/command.c src/Makefile.am
4814     Hook in htk.c
4815
4816     * tests/write_read_test.tpl tests/misc_test.c tests/Makefile.am
4817     Add tests for HTK files.
4818
4819 2003-02-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4820
4821     * src/wav.c
4822     Fixed a bug where the LIST chunk length was being written incorrectly.
4823
4824     * tests/string_test.c
4825     Added call to check_log_buffer().
4826     Minor cleanups.
4827
4828 2003-02-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4829
4830     * src/wav_w64.h
4831     Applied patch from Antoine Mathys to add extra WAV format definitions and
4832     a G72x_ADPCM_WAV_FMT struct definition.
4833
4834     * src/wav_w64.c
4835     Applied patch from Antoine Mathys which converts wav_w64_format_str() from
4836     one huge inefficient switch statement to a binary search.
4837
4838     * tests/string_test.c
4839     Dump log buffer if tests fail.
4840
4841 2003-02-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4842
4843     * tests/string_test.c
4844     David Viens supplied some modifications to this file which showed up a bug
4845     when using sf_set_string() and the sf_writef_float() functions.
4846
4847     * src/sndfile.c
4848     Fixed the above bug.
4849
4850 2003-02-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4851
4852     * doc/FAQ.html
4853     Added Q and A on how to detect libsndfile in configure.in (at the suggestion
4854     of Davy Durham).
4855
4856 2003-02-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4857
4858     * src/sndfile.h.in
4859     Add enums and typedefs for dither.
4860     Deprecate SFC_SET_ADD_DITHER_ON_WRITE and SFC_SET_ADD_DITHER_ON_READ, to be
4861     replaced with SFC_SET_DITHER_ON_WRITE and SFC_SET_DITHER_ON_READ which will
4862     allow different dither algorithms to be enabled.
4863     Added SFC_GET_DITHER_INFO_COUNT and SFC_GET_DITHER_INFO.
4864
4865     * src/sndfile.h.in src/Version_script.in Win32/libsndfile.def.
4866     Added public sf_dither_*() functions.
4867
4868     * src/sndfile.c
4869     Implement commands above.
4870
4871     * src/dither.c
4872     More work. Framework and external hooks into dither algorithms complete.
4873
4874 2003-02-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4875
4876     * doc/version-1.html libsndfile_version_convert.py
4877     Remove redundant files.
4878
4879     * doc/index.html doc/api.html
4880     Remove links to version-1.html.
4881
4882     * src/dither.c
4883     New file to allow the addition of audio dither on input and output.
4884
4885     * src/common.h
4886     Add prototype for dither_init() function.
4887
4888     * Makefile.am doc/Makefile.am
4889     Changes for added and removed files.
4890
4891 2003-02-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4892
4893     * Win32/Makefile.msvc
4894     Changes to force example binaries to be placed in the top level directory
4895     instead of the examples/ directory.
4896     Add src/strings.c and src/xi.c to the build.
4897     Add string_test to build and to tests on WAV files.
4898
4899     * doc/index.html
4900     Added XI to support matrix.
4901
4902 2003-01-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4903
4904     * src/sndfile.h.in
4905     Added prototypes for sf_get_string() and sf_set_string() and SF_STR_*
4906     enum values.
4907
4908     * src/sndfile.c
4909     Added public interface to sf_get_string() and sf_set_string().
4910
4911     * src/wav.c
4912     Added code for setting and getting strings in WAV files.
4913
4914     * tests/string_test.c
4915     New test program for sf_get_string() and sf_set_string() functionality.
4916
4917     * tests/Makefile.am
4918     Hook new test program into build and test framework.
4919
4920 2003-01-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4921
4922     * src/common.h
4923     Added fields to SF_PRIVATE for string data needed to implement
4924     sf_get_string() and sf_set_string().
4925
4926     * src/strings.c
4927     New file for storing and retrieving strings to/from files.
4928
4929     * src/Makefile.am
4930     Added strings.c to build.
4931
4932 2003-01-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4933
4934     * src/xi.c
4935     Read seems to be working so looking at write.
4936
4937     * src/sndfile.h.in
4938     Added SF_FORMAT_XI, SF_FORMAT_DPCM_8 and SF_FORMAT_DPCM_16 enum values.
4939
4940     * tests/floating_point_test.c tests/lossy_comp_test.c tests/Makefile.am
4941     Added test for 8 and 16 bit XI format files.
4942
4943 2003-01-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4944
4945     * doc/index.html
4946     Added a non-lawyer readable summary of the licensing provisions as
4947     suggested by Steve Dekorte.
4948
4949 2003-01-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4950
4951     * src/wav.c
4952     Fixed a compiler warning found by Alexander Lerch.
4953
4954 2003-01-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4955
4956     * configure.ac
4957     Fixed the multiple linking of libm.
4958
4959 2003-01-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4960
4961     * Win32/Makefile.mcvs
4962     Added comments on the correct way to set up the MSVCDir environment
4963     variable.
4964
4965     * doc/win32.html
4966     Add on how to set up the MSVCDir environment variable.
4967
4968 2003-01-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4969
4970     * examples/sndfile-play.c examples/sndfile-info.c
4971     When run on Win32 without any command line parameters print a message and
4972     then sleep for 5 seconds. This means the when somebody double clicks on
4973     these programs in explorer the user will actually see the message.
4974
4975 2003-01-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4976
4977     * tests/misc_test.c
4978     Bypass permission test if running as root because root is allowed to open
4979     a readonly file for write.
4980
4981 2003-01-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4982
4983     * Win32/Makefile.msvc
4984     Added pvf.c and xi.c source files to project.
4985
4986     * src/sndfile.h
4987     Updated for PVF files.
4988
4989 2003-01-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4990
4991     * src/sndfile.c
4992     Modified validate_sfinfo() to force samplerate, channels and sections
4993     to be >= 1.
4994     In format_from_extension() replaced calls to does_extension_match()
4995     with strcmp().
4996
4997     * src/xi.c
4998     More work.
4999
5000 2003-01-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5001
5002     * doc/Makefile.am
5003     Added octave.html which had been left out. Found by Jan Weil.
5004
5005 2003-01-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5006
5007     * src/pvf.c src/common.h src/sndfile.c
5008     Fixed error handling for PVF files.
5009
5010     * src/xi.c
5011     New file for handling Fasttracker 2 Extended Instrument files. Not working
5012     yet and included when configured with --enable-experimental.
5013
5014     * src/sndfile.c src/common.h
5015     Hooked in new file xi.c.
5016
5017 2002-12-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5018
5019     * src/rx2.c
5020     Added a patch from Marek Peteraj which sheds a little more light on the
5021     slices within an RX2 file. Still need to find out data encoding.
5022
5023 2002-12-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5024
5025     * src/wav.c
5026     Started work on decoding 'acid' and 'strc' chunks.
5027
5028 2002-12-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5029
5030     * tests/peak_check_test.c
5031     Minor cleanup.
5032
5033 2002-12-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5034
5035     * tests/write_read_test.tpl
5036     Added check to make sure no error was generated when an attempt was made to
5037     read past the end of the file.
5038
5039 2002-12-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5040
5041     * doc/lists.html
5042     Added "mailto" links for all three lists.
5043
5044     * src/pvf.c
5045     New file for Portable Voice Format files.
5046
5047     * src/sndfile.h.in src/sndfile.c src/common.h src/command.c src/Makefile.am
5048     Added hooks for SF_FORMAT_PVF format files.
5049
5050     * tests/write_read_test.tpl tests/std*.c
5051     Add tests for SF_FORMAT_PVF.
5052
5053     * doc/index.html
5054     Add PVF to the compatibility matrix.
5055
5056     * src/pcm.c src/alaw.c src/ulaw.c src/float32.c src/double64.c
5057     Previously, attempts to read beyond the end of a file would set psf->error
5058     to SFE_SHORT_ERROR. This behaviour diverged from the behaviour of the POSIX
5059     read() call but has now been fixed.
5060     Attempts to read beyond the end of the file will return a short read count
5061     but will not longer set any error.
5062
5063 2002-12-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5064
5065     * src/sndfile.c
5066     Add more sanity checking when opening a RAW file for read. When format is
5067     not RAW, zero out all members of the SF_INFO struct.
5068
5069     * tests/raw_test.c
5070     Add bad_raw_test() to check for above problem.
5071
5072     * tests/stdin_test.c examples/sndfile-info.c
5073     Set the format field of the SF_INFO struct to zero before calling
5074     sf_open().
5075
5076     * doc/api.html
5077     Add information about the need to set the format field of the SF_INFO struct
5078     to zero when opening non-RAW files for read.
5079
5080     * configure.ac
5081     Removed use of conversion script on Solaris. Not all Solaris versions
5082     support it.
5083
5084     * doc/lists.html
5085     New file containg details of the mailing lists.
5086
5087     * doc/index.html
5088     Add a link to the above new file.
5089
5090 2002-12-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5091
5092     * tests/dft_cmp.c
5093     Fixed a SIGFPE on Alpha caused by a log10 (0.0). Thanks to Joshua Haberman
5094     for providing the gdb traceback.
5095
5096 2002-11-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5097
5098     * src/wav.c
5099     Added more capabilities to 'smpl' chunk parser.
5100
5101     * src/sndfile.c
5102     Fixed some (not all) possible problems found with Flawfinder.
5103
5104 2002-11-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5105
5106     * src/sndfile.c
5107     Fixed a bug in sf_seek(). This bug could only occur when an attempt was
5108     made to read beyond the end and then sf_seek() was called with a whence
5109     parameter of SEEK_CUR.
5110
5111     * src/file_io.c
5112     Win32's _fstati64() does not work, it returns BS. Re-implemented
5113     psf_get_filelen() in terms of psf_fseek().
5114
5115     * tests/write_read_test.tpl
5116     Add a test to detect above bug.
5117
5118     * src/float_cast.h
5119     Modification to prevent compiler warnings on Mac OS X.
5120
5121     * src/file_io.c
5122     Fixes for windows (what a f**ked OS).
5123
5124 2002-11-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5125
5126     * configure.ac
5127     Disable use of native lrint()/lrintf() on Mac OSX. These functions exist on
5128     Mac OSX 10.2 but not on 10.1. Forcing the use of the versions in
5129     src/float_cast.h means that a library compiled on 10.2 will still work on
5130     10.1.
5131
5132 2002-11-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5133
5134     * configure.in configure.ac
5135     Renamed configure.in to configure.ac as expected by later versions of
5136     autoconf.
5137     Slight hacking of configure.ac to work with version 2.54 of autoconf.
5138     Changed to using -dumpversion instead of --version for determining GCC
5139     version numer as suggested by Anand Kumria.
5140
5141     * src/G72x/Makefile.am
5142     Slight hacking required for operation with automake 1.6.3.
5143
5144 2002-11-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5145
5146     * src/common.c
5147     In psf_binheader_readf() changed type parameter type "b" type from size_t
5148     to int to prevent errors on IA64 CPU where sizeof (size_t) != sizeof (int).
5149     Thanks to Enrique Robledo Arnuncio for debugging this.
5150
5151 2002-11-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5152
5153     * test/command_test.tpl
5154     Changed test value so test would pass on Solaris.
5155
5156     * src/Version_script.in
5157     Modified version numbering so that later versions of 1.0.X can replace
5158     earlier versions without recompilation.
5159
5160     * src/vox_adpcm.c
5161     Fixed bug causing short reads.
5162
5163 2002-11-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5164
5165     * test/floating_point_test.c
5166     Code cleanup using functions from util.c.
5167     Add test for IEEE replacement floats and doubles.
5168
5169 2002-11-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5170
5171     * src/wav.c
5172     Fixed a possible divide by zero error when read the 'smpl' chunk. Thanks to
5173     Serg Repalov for the example file.
5174
5175     * tests/pcm_test.tpl
5176     Used sf_command (SFC_TEST_IEEE_FLOAT_REPLACE) to test IEEE replacement code.
5177     Clean up pcm_double_test().
5178
5179     * src/float32.c src/double64.c
5180     Force use of IEEE replacement code using psf->ieee_replace is TRUE,
5181     Print message to log_buffer as well.
5182     Rename all broken_read_* and broken_write* functions to replace_read_* and
5183     replace_write_*.
5184
5185     * tests/util.tpl
5186     Added string_in_log_buffer().
5187
5188     * tests/pcm_test.tpl
5189     Use string_in_log_buffer() to ensure that IEEE replacement code has been
5190     used.
5191
5192     * configure.in
5193     Removed --enable-force-broken-float option. IEEE replacement code is now
5194     always tested.
5195
5196 2002-10-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5197
5198     * src/double64.c
5199     Implement code for read/writing IEEE doubles on platforms where the native
5200     double format is not IEEE.
5201
5202     * src/float32.c src/common.h
5203     Remove float32_read() and float32_write(). Replace with float32_le_read(),
5204     float32_be_read(), float32_le_write() and float32_be_write() to match stuff
5205     in src/double64.c.
5206
5207     * src/common.c
5208     Fix all usage of float32_write().
5209
5210     * src/sndfile.h.in
5211     Added SFC_TEST_IEEE_FLOAT_REPLACE command (testing only).
5212
5213     * src/common.h
5214     Added SF_PRIVATE field ieee_replace.
5215
5216     * src/sndfile.c
5217     In sf_command() set/reset psf->ieee_replace.
5218
5219 2002-10-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5220
5221     * tests/pcm_test.tpl
5222     Fixed a problem when testing with --enable-force-broken-float. The test was
5223     generating a value of negative zero and the broken float code is not able
5224     to write negative zero. Removing the negative zero fixed the test.
5225
5226 2002-10-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5227
5228     * src/file_io.c
5229     Added fix for Cygwin (suggested by Maros Michalik).
5230
5231 2002-10-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5232
5233     * src/file_io.c
5234     Improved error detection and handling.
5235
5236     * src/file_io.c src/common.h
5237     Removed functions psf_ferror() and psf_clearerr() which were redundant
5238     after above improvements.
5239
5240     * src/aiff.c src/svx.c src/w64.c src/wav.c
5241     Removed all use of psf_ferror() and psf_clearerr().
5242
5243     * src/sndfile.c
5244     Removed #include of <stdio.h>, <unistd.h>, <fcntl.h> and <math.h> which
5245     are no longer needed.
5246
5247     * tests/misc_test.c
5248     Added test to make sure the correct error message is returned with an
5249     existing read-only file is openned for write.
5250
5251 2002-10-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5252
5253     * doc/index.html doc/api.html
5254     Updated for OKI Dialogic ADPCM files.
5255
5256     * src/command.c
5257     Added VOX ADPCM to sub_fomats.
5258
5259 2002-10-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5260
5261     * src/vox_adpcm.c src/Makefile.am
5262     New file for handling OKI Dialogic ADPCM files.
5263
5264     * src/sndfile.h
5265     Add new subtype SF_FORMAT_VOX_ADPCM.
5266
5267     * src/sndfile.c
5268     Renamed function is_au_snd_file () to format_from_extenstion () and expanded
5269     its functionality to detect headerless VOX files.
5270
5271     * src/raw.c
5272     Added hooks for SF_FORMAT_VOX_ADPCM.
5273
5274     * examples/sndfile-info.c
5275     Print out file duration (suggested by Conrad Parker).
5276
5277     * libsndfile.spec.in
5278     Force installation of sndfile.pc file (found by John Thompson).
5279
5280     * tests/Makefile.am tests/lossy_comp_test.c tests/floating_point_test.c
5281     Add tests for SF_FORMAT_VOX_ADPCM.
5282
5283 2002-10-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5284
5285     * tests/misc_test.c
5286     Add test which attempts to write to /dev/full (on Linux anyway) to check
5287     for correct handling of writing to a full filesystem.
5288
5289     * src/sndfile.c
5290     Return correct error message if the header cannot be written because the
5291     filesystem is full.
5292
5293     * tests/util.tpl
5294     Corrected printing of file mode in error reporting.
5295
5296     * src/mat5.c
5297     Fixed a bug where a MAT5 file written by libsndfile could not be opened by
5298     Octave 2.1.36.
5299
5300 2002-10-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5301
5302     * src/common.h src/file_io.c
5303     All low level file I/O have been modified to be better able to report
5304     system errors resulting from calling system level open/read/write etc.
5305
5306     * src/*.c
5307     Updated for compatibility with above changes.
5308
5309     * examples/cooledit-fixer.c
5310     New example program which fixes badly broken file created by Syntrillium's
5311     Cooledit which are marked as containing PCM samples but actually contain
5312     floating point data.
5313
5314     * examples/Makefile.am
5315     Hooked cooledit-fixer into the build system.
5316
5317 2002-10-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5318
5319     * doc/command.html
5320     Document SFC_GET_FORMAT_INFO.
5321
5322 2002-10-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5323
5324     * examples/wav32_aiff24.c examples/sndfile2oct.c examples/sfhexdump.c
5325         examples/sfdump.c
5326     Removed these files because they weren't interesting.
5327
5328     * examples/sfconvert.c examples/sndfile-convert.c
5329     Renamed the first to the latter.
5330
5331     * examples/Makefile.am
5332     Added sndfile-convert to the bin_PROGRAMS, so it is installed when the lib
5333     is installed.
5334     Removed old programs wav32_aiff24 and sndfile2oct.
5335
5336     * man/sndfile-convert.1
5337     New man page.
5338
5339     * examples/sndfile-convert.c
5340     Added some gloss now that sndfile-convert.c is an installed program.
5341
5342     * src/sndfile.h.in src/sndfile.c src/common.h src/command.h
5343     Added command SFC_GET_FORMAT_INFO.
5344
5345     * tests/command_test.c
5346     Added tests form SFC_GET_FORMAT_INFO.
5347
5348 2002-10-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5349
5350     * src/sndfile.c
5351     In sf_format_check() return error if samplerate < 0.
5352
5353 2002-10-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5354
5355     * src/aiff.c
5356     Fixed bug in handling of COMM chunks with a 4 byte encoding byte but no
5357     encoding string.
5358
5359 2002-10-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5360
5361     * src/sndfile.c
5362     Fixed repeated word in an error message.
5363
5364 2002-10-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5365
5366     * doc/index.html
5367     Improved advertising in Features section.
5368
5369 2002-10-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5370
5371     * src/wav.c
5372     Added decoding of 'labl' chunks within 'LIST' chunks.
5373
5374     * src/common.h
5375     Added (experimental only) SF_FORMAT_OGG and SF_FORMAT_VORBIS and definition
5376     of ogg_open(). This is nowhere near working yet.
5377
5378     * src/sndfile.c
5379     Added detection of 'OggS' file marker and added call to ogg_open() to
5380     switch statement.
5381
5382     * src/ogg.c
5383     New file. Very early start of Ogg Vorbis support.
5384
5385     * src/wav.c
5386     Added handling of brain-damaged and broken Cooledit "32 bit 24.0 float
5387     type 1" files. These files are marked as being 24 bit WAVE_FORMAT_PCM with
5388     a block alignment of 4 times the numbers of channels but are in fact 32 bit
5389     floating point.
5390
5391 2002-10-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5392
5393     * configure.in
5394     Modified option --enable-experimental to set ENABLE_EXPERIMENTAL_CODE in
5395     config.h to either 0 or 1.
5396
5397     * src/sndfile.c
5398     Modify sf_command (SFC_GET_LIB_VERSION) to append "-exp" to the version
5399     string if experimental code has been enabled.
5400
5401 2002-10-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5402
5403     * src/Makefile.am
5404     Added -lm to libsndfile_la_LIBADD. This means that -lm is not longer needed
5405     in the link line when linking something to libsndfile.
5406
5407     * tests/Makefile.am examples/Makefile.am
5408     Removed -lm from all link lines.
5409
5410     * sndfile.pc.in
5411     Removed -lm from Libs line.
5412
5413 2002-09-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5414
5415     * src/file_io.c
5416     Removed all perror() calls.
5417
5418     * src/nist.c
5419     Removed calls to exit() function.
5420     Added check to detect NIST files dammaged from Unix CR -> Win32 CRLF
5421     conversion process.
5422
5423 2002-09-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5424
5425     * src/sndfile.h.in src/sndfile.c
5426     New function sf_strerror() which will eventually replace functions
5427     sf_perror() and sf_error_str().
5428     Function sf_error_number() has also been changed, but this was documented
5429     as being for testing only.
5430
5431     * doc/api.html
5432     Documented above changes.
5433
5434     * tests/*.c examples/*.c
5435     Changed to new error functions.
5436
5437 2002-09-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5438
5439     * configure.in
5440     Detect GCC version, and print a warning message about writeable strings
5441     it GCC major version number is less than 3.
5442
5443 2002-09-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5444
5445     * src/sndfile.h.in doc/api.html
5446     Documentation fixes.
5447
5448 2002-09-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5449
5450     * src/Version_script.in src/Makefile.am configure.in
5451     Use the version script to prevent the exporting of all non public symbols.
5452     This currently only works with Linux. Will test on Solaris as well.
5453
5454     * src/float_cast.h
5455     Added #ifndef to prevent the #warning directives killing the SGI MIPSpro
5456     compiler.
5457
5458     * src/au_g72x.c src/double64.c src/float32.c src/gsm610.c src/ima_adpcm.c
5459         src/ms_adpcm.c
5460     Fix benign compiler warnings arising from previously added compiler
5461     flags.
5462
5463 2002-09-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5464
5465     * src/sndfile.c
5466     Fixed a bug in sf_error_str() where errnum was used as the index instead
5467     of k. Found by Tim Hockin.
5468
5469     * examples/sndfile-play.c
5470     Fixed a compiler warning resulting from a variable shadowing a previously
5471     defined local.
5472
5473 2002-09-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5474
5475     * src/sndfile.h.in src/sndfile.c
5476     Added command SFC_SET_RAW_START_OFFSET.
5477
5478     * doc/command.html
5479     Document SFC_SET_RAW_START_OFFSET.
5480
5481     * tests/raw_test.c tests/Makefile.am
5482     Add new file for for testing SF_FORMAT_RAW specific functionality.
5483
5484     * tests/dwvw_test.c
5485     Updates.
5486
5487 2002-09-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5488
5489     * src/wav.c
5490     Modified reading of 'smpl' chunk to take account of the sampler data field.
5491
5492     * tests/utils.tpl tests/utils.h
5493     Added function print_test_name().
5494
5495     * tests/misc_test.c tests/write_read_test.tpl tests/lossy_comp_test.c
5496         tests/pcm_test.tpl tests/command_test.tpl tests/floating_point_test.c
5497     Convert to use function print_test_name().
5498
5499 2002-09-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5500
5501     * doc/octave.html
5502     Added a link to some other Octave scripts for reading and writing sound
5503     files.
5504
5505     * src/paf.c
5506     Change type of dummy data field to int. This should fix a benign compiler
5507     warning on some CPUs.
5508     Removed superfluous casts resulting from the above change.
5509
5510     * src/rx2.c
5511     More hacking.
5512
5513 2002-09-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5514
5515     * src/mat5.c src/common.c
5516     Changed usage of snprintf() to LSF_SNPRINTF().
5517
5518     * Win32/Makefile.msvc
5519     Updated to include new files and add new tests.
5520
5521     * Win32/config.h Win32/sndfile.h
5522     Updated.
5523
5524     * doc/api.html
5525     Added note about the possibility of "missing" features actually being
5526     implemented as an sf_command().
5527
5528 2002-09-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5529
5530     * tests/misc_test.c
5531     Added previously missing update_header_test and zero_data_tests for PAF,
5532     MAT4 and MAT5 formats.
5533
5534     * src/paf.c src/mat4.c src/mat5.c
5535     Fixed bugs uncovered by new tests above.
5536
5537     * src/mat5.c
5538     Generalised parsing of name fields of MAT5 files.
5539
5540     * src/mat5.c src/sndfile.c
5541     Added support for unsigned 8 bit PCM MAT5 files.
5542
5543     * tests/write_read_test.tpl
5544     Added test for unsigned 8 bit PCM MAT5 files.
5545
5546     * doc/index.html
5547     Added unsigned 8 bit PCM MAT5 to capabilities matrix.
5548
5549 2002-09-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5550
5551     * test/update_header_test.c tests/misc_test.c
5552     Renamed update_header_test.c to misc_test.c.
5553     Added zero_data_test() to check for case where file is opened for write and
5554     closed immediately. The resulting file can be left in a state where
5555     libsndfile cannot open it. Problem reported by Werner Schweer, the author
5556     of Muse.
5557
5558     * src/aiff.c
5559     Removed superfluous cast.
5560
5561     * src/wav.c src/svx.c
5562     Fixed case of file generated with no data.
5563     Removed superfluous cast.
5564
5565     * src/sndfile.c
5566     Fixed error on IA64 platform caused by incorrect termination of
5567     SndfileErrors struct array. This problem was found in the Debian buildd
5568     logs (http://buildd.debian.org/).
5569
5570     * configure.in
5571     Added Octave directory.
5572
5573     * Octave/Makefile.ma
5574     New Makfile.am for Octave directory.
5575
5576     * Octave/sndfile_load.m Octave/sndfile_save.m Octave/sndfile_play.m
5577     New files for working with Octave.
5578
5579     * doc/octave.html
5580     Document explaining the use of the above three Octave scripts.
5581
5582 2002-09-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5583
5584     * src/sndfile.c
5585     Fixed bug in RDWR mode.
5586
5587 2002-09-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5588
5589     * src/common.c
5590     Fixed psf_get_date_str() for systems which don't have gmtime_r() or
5591     gmtime().
5592
5593     * src/file_io.c
5594     Added #include <io.h> for Win32. Reported by Koen Tanghe.
5595
5596 2002-09-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5597
5598     * src/common.c
5599     Added 'S' format specifier for psf_binheader_writef() which writes a C
5600     string, including single null terminator to the header.
5601     Added 'j' format specifier to allow jumping forwards or backwards in the
5602     header.
5603     Added function psf_get_date_str().
5604
5605     * src/mat5.c
5606     Complete read and write support.
5607
5608     * doc/index.html
5609     Added entries for MAT4 and MAT5 in capabilities matrix.
5610
5611 2002-09-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5612
5613     * src/mat4.c
5614     Completed read and write support.
5615
5616     * src/common.h src/sndfile.c
5617     Added MAT4 and MAT5 specific error messages.
5618
5619     * tests/write_read_test.tpl tests/Makefile.am
5620     Added tests for MAT4 and MAT5 files.
5621
5622     * tests/stdio_test.c tests/stdout_test.c tests/stdin_test.c
5623     Added tests for MAT4 and MAT5 files.
5624
5625 2002-09-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5626
5627     * src/command.c
5628     Added elements for SF_FORMAT_MAT4 and SF_FORMAT_MAT5 to major_formats
5629     array.
5630
5631     * examples/sfconvert.c
5632     Added mat4 and mat5 output targets.
5633
5634 2002-09-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5635
5636     * src/sndfile.c
5637     Added check to prevent errors openning read only formats for read/write.
5638
5639     * src/interleave.c
5640     New file for interleaving non-interleaved data. Non-interleaved data is
5641     only supported on read.
5642
5643     * src/Makefile.am
5644     Added src/interleave.c to build.
5645
5646 2002-09-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5647
5648     * src/double64.c src/common.h
5649     Added double64_be_read(), double64_le_read(), double64_be_write() and
5650     double64_le_write() which replace double64_read() and double64_write().
5651
5652     * src/common.c
5653     Cleanup of psf_binheader_readf() and add ability to read big and little
5654     endian doubles (required by mat4.c and mat5.c).
5655     Add ability for psf_binheader_writef() to write doubles to sound file
5656     headers.
5657
5658 2002-09-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5659
5660     * src/mat5.c
5661     New file for reading Matlab (tm) version 5 data files. This is also the
5662     native binary file format for version 2.1.X of GNU Octave which will be
5663     used for testing.
5664     Not complete yet.
5665
5666     * src/mat4.c
5667     New file for reading Matlab (tm) version 4.2 data files. This is also the
5668     native binary file format for version 2.0.X of GNU Octave which will be
5669     used for testing.
5670     Not complete yet.
5671
5672     * src/sndfile.h.in src/sndfile.c src/common.h src/command.c src/Makefile.am
5673     Mods to add Matlab files.
5674
5675     * src/common.[ch]
5676     Added readf_endian field to SF_PRIVATE struct allowing endianness to
5677     remembered across calls to sf_binheader_readf().
5678     Fixed bug in width_specifier behaviour for printing hex values.
5679
5680 2002-08-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5681
5682     * src/file_io.c
5683     Check return value of close() call in psf_fclose().
5684
5685 2002-08-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5686
5687     * src/ms_adpcm.c
5688     Commented out some code where 0x10000 was being subtracted from a short
5689     and the result assigned to a short again. Andrew Zaja found this.
5690
5691 2002-08-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5692
5693     * doc/command.html
5694     Fixed typo found by Tommi Ilmonen.
5695
5696     * src/ima_adpcm.c
5697     Changed type of diff from short to int to prevent errors which can occur
5698     during very rare circumstances. Thanks to FUWAFUWA.
5699
5700 2002-08-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5701
5702     * tests/floating_point_test.c
5703     Disable testing on machines without lrintf().
5704
5705     * Win32/Makefile.msvc
5706     Added dwd.c and wve.c to build.
5707
5708     * configure.in
5709     Bumped version to 1.0.0.
5710
5711 2002-08-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5712
5713     * src/file_io.c
5714     Add a #include for Mac OS 9. Thanks to Stephane Letz.
5715
5716     * src/wav.c
5717     Changed an snprintf to LSF_SNPRINTF.
5718
5719     * doc/Makefile.am
5720     Added version-1.html.
5721
5722 2002-08-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5723
5724     * configure.in
5725     Bumped version to 1.0.rc6.
5726
5727     * src/*.c
5728     Modified scaling of normalised floats and doubles to integers. Until now
5729     this has been done by multiplying by 0x8000 for short output, 0x80000000
5730     for 32 bit ints and so on. Unfortunately this can cause an overflow and
5731     wrap around in the target value. All thes values have therefore been
5732     reduced to 0x7FFF, 0x7FFFFFFF and so on. The conversion from ints to
5733     normalised floats and doubles remains unchanged. This does mean that for
5734     repeated conversions normalised float -> pcm16 -> normalised float would
5735     result in a decrease in amplitude of 0x7FFF/0x8000 on every round trip.
5736     This is undesirable but less undesireable than the wrap around I am trying
5737     to avoid.
5738
5739     * tests/floating_point_test.c
5740     Removed file hash checking because new float scaling procedure introduced
5741     above prevented the ability to crate a has on both x86 and PowerPC systems.
5742
5743 2002-08-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5744
5745     * src/txw.c
5746     Completed reading of TXW files. Seek doesn't work yet.
5747
5748     * src/file_io.c
5749     Added a MacOS 9 replacement for ftruncate().
5750
5751     * MacOS/sndfile.h
5752     Added MacOS 9 header file. This should be copied into src/ to compile
5753     libsndfile for MacOS9.
5754
5755 2002-08-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5756
5757     * src/sndfile.c
5758     Fixed commands SF_SET_NORM_DOUBLE and SFC_SET_NORM_FLOAT to return their
5759     values after being set. Reported by Jussi Laako.
5760
5761     * configure.in
5762     If autogen is not found, touch all .c and .h files in tests/.
5763
5764     * src/common.c
5765     Added format width specifier to psf_log_printf() for %u, %d, %D and %X.
5766
5767     * src/dwd.c
5768     Completed implementation of read only access to these files.
5769
5770     * src/common.h src/*.c src/pcm.c
5771     Removed redundant field chars from SF_PRIVATE struct and modified
5772     pcm_init() to do without it.
5773
5774 2002-08-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5775
5776     * src/wve.c
5777     New file implementing read of Psion Alaw files. This will be a read only
5778     format. Implementation complete.
5779
5780     * src/dwd/c
5781     Started implementation of DiamondWare Digitized files. Also read only, not
5782     complete.
5783
5784     * src/wav.c
5785     Add parsing of 'smpl' chunk.
5786
5787     * src/paf.c
5788     Fixed reading on un-normalized doubles and floats from 24 bit PAF files.
5789     This brings it into line with the reading of 8 bit files into
5790     un-normalized doubles which returns values in the range [-128, 127].
5791
5792     * src/common.c
5793     Modified psf_log_printf() to accept the %% conversion specifier to allow
5794     printing of a single '%'.
5795
5796     * src/sds.c
5797     Read only of 16 bit samples is working. Need to build a test harness for
5798     this and other read only formats.
5799
5800 2002-08-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5801
5802     * configure.in
5803     Added --enable-experimental configure option.
5804     Removed pkg-config message at the end of the configure process.
5805
5806     * src/sds.c src/txw.c src/rx2.c src/sd2.c
5807     Moved all the code in these files inside #if ENABLE_EXPERIMENTAL_CODE
5808     blocks and added new *_open() function for the case where experimental is
5809     not enabled. These new functions just return SFE_UNIMPLMENTED.
5810
5811     * Win32/sndfile.h src/sndfile.h.in src/common.h
5812     Removed un-necessary #pragma pack commands.
5813
5814     * src/file_io.c
5815     Implemented psf_ftruncate() and much other hacking for Win32.
5816
5817     * Win32/Makefile.msvc
5818     Updated.
5819
5820     * doc/win32.html
5821     Updated to include the copying of the sndfile.h file from the Win32/
5822     directory to the src/ directory.
5823
5824     * Make.bat
5825     Batch file to make compiling on Wi32 a little easier. Implements "make" and
5826     "make check".
5827
5828 2002-08-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5829
5830     * src/file_io.c
5831     Add place holder for ftruncate() on Win32 which doesn't have ftruncate().
5832     This will need to be fixed later.
5833
5834     * src/sndfile.h.in
5835     New file (copy of sndfile.h) with sets up @TYPEOF_SF_COUNT_T@ which will be
5836     replaced by the correct type during configure.
5837
5838     * configure.in
5839     Modified to find a good type for TYPEOF_SF_COUNT_T.
5840
5841     * src/aiff.c
5842     Fixed a bug when reading malformed headers.
5843
5844     * src/common.c
5845     Set read values to zero before performing read.
5846
5847 2002-08-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5848
5849     * doc/command.html
5850     Fixed some HTML tags which were not allowing jumps to links within the
5851     page.
5852
5853     * src/sds.c
5854     Massive hacking on this.
5855
5856     * src/wav.c
5857     Added recognition of 'clm ' tag.
5858
5859 2002-08-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5860
5861     * doc/index.html
5862     Added beginning of a capabilities list beyond simple file formats which
5863     can be read/written.
5864
5865     * src/aiff.c
5866     Added parsing of INST and MARK chunks of AIFF files. At the moment this
5867     data is simply recorded in the log buffer. Later it will be possible to
5868     read this data from an application using sf_command().
5869
5870     * src/wav.c
5871     Added parsing of 'cue ' chunk which contains loop information in WAV files.
5872
5873     * exampes/sndfile-info.c
5874     Changed reporting of Samples to Frames.
5875
5876     * src/wav.c src/w64.c src/aiff.c src/wav_w64.h
5877     Moved from a samples to a frames nomenclature to avoid confusion.
5878
5879     * doc/FAQ.html
5880     What's the best format for storing temporary files?
5881
5882     * src/sds.c
5883     New file for reading/writing Midi Sample Dump Standard files.
5884
5885     * src/Makefile.am src/sndfile.c src/common.[ch]
5886     Added hooks for sds.c.
5887
5888     * examples/sndfile-info.c
5889     Changed from using sf_perror() to using sf_error_str().
5890
5891 2002-08-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5892
5893     * doc/api.html
5894     Added explanation of mode parameter for sf_open().
5895     Added explanation of usage of SFM_* values in sf_seek().
5896
5897     * src/sndfile.[ch] src/command.c src/file_io.c src/common.h
5898     Implemented SFC_FILE_TRUNCATE to allow a file to be truncated. File
5899     truncation was suggested by James McCartney.
5900
5901     * src/command.html
5902     Documented SFC_FILE_TRUNCATE.
5903
5904     * tests/command_test.c
5905     Add tests for SFC_FILE_TRUNCATE.
5906
5907     * src/sndfile.c
5908     Added a thrid parameter to the VALIDATE_SNDFILE_AND_ASSIGN_PSF macro to
5909     make resetting the error number optional. All uses of the macro other than
5910     in error reporting functions were changed to reset the error number.
5911
5912     * src/pcm.c
5913     Fixed a bug were sf_read_* was logging an SFE_SHORT_READ even when no error
5914     occurred.
5915
5916     * tests/write_read_test.tpl
5917     Added tests of internal error state.
5918
5919 2002-08-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5920
5921     * src/GSM610/private.h src/GSM610/*.c src/GSM610/Makefile.am
5922     Renamed private.h to gsm610_priv.h to prevent clash with other headers
5923     named private.h in other directories. (Probably only a problem on MacOS 9).
5924
5925     * src/G72x/private.h src/G72x/*.c src/G72x/Makefile.am
5926     Renamed private.h to g72x_priv.h to prevent clash with other headers
5927     named private.h in other directories. (Probably only a problem on MacOS 9).
5928
5929     * MacOS/config.h
5930     Changed values of HAVE_LRINT and HAVE_LRINTF to force use of code in
5931     float_cash.h.
5932
5933     * src/sndfile.h
5934     Changes the name of samples field of the SF_INFO to frames. The old name
5935     had caused too much confusion and it simply had to be changed. There will
5936     be at least one more pre-release.
5937
5938 2002-08-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5939
5940     * doc/index.html
5941     Updated formats matrix to include RAW (header-less) GSM 6.10.
5942     Fix specificaltion of table and spelling mistakes.
5943
5944     * src/sndfile.c src/command.c
5945     Fixed bug in SFC_CALC_MAX_SIGNAL family and psf_calc_signal_max ().
5946
5947     * tests/command.c
5948     Removed cruft.
5949     Added test for SFC_CALC_MAX_SIGNAL and SFC_CALC_NORM_MAX_SIGNAL.
5950
5951     * configure.in
5952     Update version to 1.0.0rc5.
5953
5954     * sfendian.h
5955     Removed inclusion of un-necessary header.
5956
5957 2002-08-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5958
5959     * src/aiff.c
5960     Minor fixes of info written to log buffer.
5961
5962     * src/float_cast.h
5963     Add definition of HAVE_LRINT_REPLACEMENT.
5964
5965     * tests/floating_point_test.c
5966     Fix file hash check on systems without lrint/lrintf.
5967
5968     * tests/dft_cmp.c
5969     Limit SNR to less than -500.0dB.
5970
5971     * examples/sndfile2oct.c
5972     Fixed compiler warnings.
5973
5974     * doc/api.html
5975     Fixed error where last parameter of sf_error_str() was sf_count_t instead
5976     of size_t.
5977
5978 2002-08-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5979
5980     * doc/FAQ.html
5981     Why doesn't libsndfile do interleaving/de-interleaving.
5982
5983     * tests/pcm_test.tpl
5984     On Win32 do not perform hash check on files containing doubles.
5985
5986 2002-08-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5987
5988     * src/common.h
5989     Defined SF_COUNT_MAX_POSITIVE() macro, a portable way of setting variables
5990     of type sf_count_t to their maximum positive value.
5991
5992     * src/dwvw.c src/w64.c
5993     Used SF_COUNT_MAX_POSITIVE().
5994
5995 2002-07-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5996
5997     * src/paf.c
5998     Fixed bug in reading/writing of 24 bit PCM PAF files on big endian systems.
5999
6000     * tests/floating_point_tests.c
6001     Fixed hash values for 24 bit PCM PAF files.
6002     Disabled file has check if lrintf() function is not available and added
6003     warning.
6004     Decreased level of signal from a peak of 1.0 to a value of 0.95 to prevent
6005     problems on platforms without lrintf() ie Solaris.
6006
6007 2002-07-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6008
6009     * src/wav.c
6010     Fixed a problem with two different kinds of mal-formed WAV file header. The
6011     first had the 'fact' chunk before the 'fmt ' chunk, the other had an
6012     incomplete 'INFO' chunk at the end of the file.
6013
6014     * src/w64.c
6015     Added fix to allow differentiation between W64 files and ACID files.
6016
6017     * src/au_g72x.c src/common.h src/sndfile.c
6018     Added error for G72x encoded files with more than one channel.
6019
6020     * tests/pcm_test.tpl tests/utils.tpl
6021     Moved function check_file_hash_or_die() to utils.tpl. Function was then
6022     modified to calculate the has of the whole file.
6023
6024     * src/wav.c
6025     Fixed problem writing the 'fact' chunk on big endian systems.
6026
6027     * tests/sfconvert.c
6028     Fixed bug where .paf files were being written as Sphere NIST.
6029
6030 2002-07-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6031
6032     * src/voc.c
6033     Fix for reading headers generated using SFC_UPDATE_HEADER_NOW.
6034
6035     * doc/command.html
6036     Add docs for SFC_UPDATE_HEADER_NOW and SFC_SET_UPDATE_HEADER_AUTO.
6037
6038 2002-07-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6039
6040     * man/sndfile-info.1 man/sndfile-play.1
6041     Added manpages supplied by Joshua Haberman the Debian maintainer for
6042     libsndfile. Additional tweaks by me.
6043
6044     * configure.in man/Makefile.am
6045     Hooked manpages into autoconf/automake system.
6046
6047     * src/sndfile.c
6048     Added hooks for SFC_SET_UPDATE_HEADER_AUTO.
6049
6050     * tests/update_header_test.c
6051     Improved rigor of testing.
6052
6053     * src/*.c
6054     Fixed problem with *_write_header() functions.
6055
6056 2002-07-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6057
6058     * doc/*.html
6059     Updates to documentation to fix problems found by wdg-html-validator.
6060
6061     * src/common.h src/command.c
6062     Added normalize parameter to calls to psf_calc_signal_max() and
6063     psf_calc_max_all_channels().
6064
6065     * src/sndfile.c
6066     Added handling for commands SFC_CALC_NORM_SIGNAL_MAX and
6067     SFC_CALC_NORM_MAX_ALL_CHANNELS.
6068
6069     * doc/command.html
6070     Added entry for SFC_CALC_NORM_SIGNAL_MAX and SFC_CALC_NORM_MAX_ALL_CHANNELS.
6071
6072 2002-07-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6073
6074     * examples/sndfile-play.c Win32/Makefile.msvc
6075     Get sndfile-play program working on Win32. The Win32 PCM sample I/O API
6076     sucks. The sndfile-play program now works on Linux, MacOSX, Solaris and
6077     Win32.
6078
6079 2002-07-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6080
6081     * doc/FAQ.html
6082     New file for frequently asked questsions.
6083
6084 2002-07-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6085
6086     * doc/api.html
6087     Documentation fixes.
6088
6089     * src/au.[ch] src/au_g72x.c src/G72x/g72x.h
6090     Add support of 40kbps G723 ADPCM encoding.
6091
6092     * tests/lossy_comp_test.c tests/floating_point_test.c
6093     Add tests for 40kbps G723 ADPCM encoding.
6094
6095     * doc/index.html
6096     Update support matrix.
6097
6098 2002-07-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6099
6100     * doc/command.html
6101     Documented SFC_GET_SIMPLE_FORMAT_COUNT, SFC_GET_SIMPLE_FORMAT,
6102     SFC_GET_FORMAT_* and SFC_SET_ADD_PEAK_CHUNK.
6103
6104     * src/sndfile.c src/pcm.c
6105     Add ability to turn on and off the addition of a PEAK chunk for floating
6106     point WAV and AIFF files.
6107
6108     * src/sndfile.[ch] src/common.h src/command.c
6109     Added sf_command SFC_CALC_MAX_ALL_CHANNELS. Implemented by Maurizio Umberto
6110     Puxeddu.
6111
6112     * doc/command.html
6113     Docs for SFC_CALC_MAX_ALL_CHANNELS (assisted by Maurizio Umberto Puxeddu).
6114
6115 2002-07-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6116
6117     * src/sndfile.c src/gsm610.c
6118     Finalised support for GSM 6.10 AIFF files and added support for GSM 6.10
6119     encoded RAW (header-less) files.
6120
6121     * src/wav.c
6122     Add support for IBM_FORMAT_MULAW and IBM_FORMAT_ALAW encodings.
6123
6124     * src/api.html
6125     Fixed more documentation bugs.
6126
6127 2002-07-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6128
6129     * src/sndfile.h src/common.h
6130     Moved some yet-to-be-implelmented values for SF_FORMAT_* from the public
6131     header file sndfile.h to the private header file common.h to avoid
6132     confusion about the actual capabilities of libsndfile.
6133
6134 2002-07-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6135
6136     * src/aiff.c src/wav.c
6137     Fixed file parsing for WAV and AIFF files containing non-audio data after
6138     the data chunk.
6139
6140     * src/aiff.c src/sndfile.c
6141     Add support for GSM 6.10 encoded AIFF files.
6142
6143     * tests/lossy_comp_test.c tests/Makefile.am
6144     Add tests for GSM 6.10 encoded AIFF files.
6145
6146     * src/*.c
6147     Fix compiler warnings.
6148
6149 2002-07-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6150
6151     * tests/command_test.c
6152     For SFC_SET_NORM_* tests, change the file format from SF_FORMAT_WAV to
6153     SF_FORMAT_RAW.
6154
6155     * src/sndfile.c
6156     Added sf_command(SFC_TEST_ADD_TRAILING_DATA) to allow testing of reading
6157     from AIFF and WAV files with non-audio data after the audio chunk.
6158
6159     * src/common.h
6160     Add test commands SFC_TEST_WAV_ADD_INFO_CHUNK and
6161     SFC_TEST_AIFF_ADD_INST_CHUNK. When these commands are working, they will be
6162     moved to src/sndfile.h
6163
6164     * src/aiff.c src/wav.c
6165     Begin implementation of XXXX_command() hook for sf_command().
6166
6167     * tests/write_read_test.tpl
6168     Added sf_command (SFC_TEST_ADD_TRAILING_DATA) to ensure above new code was
6169     working.
6170
6171 2002-07-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6172
6173     * tests/update_header_test.c
6174     Allow read sample count == write sample count - 1 to fix problems with VOC
6175     files.
6176
6177     * tests/write_read_test.tpl tests/pcm_test.tpl
6178     Fixed some problems in the test suite discovered by using Valgrind.
6179
6180 2002-07-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6181
6182     * tests/utils.[ch] tests/*.c
6183     Renamed check_log_buffer() to check_log_buffer_or_die().
6184
6185     * src/sndfile.c
6186     SFC_UPDATE_HEADER_NOW and SFC_SETUPDATE_HEADER_AUTO almost finished. Works
6187     for all file formats other than VOC.
6188
6189 2002-07-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6190
6191     * src/sndfile.[ch] src/common.h
6192     Started adding functionality to allow the file header to be updated before
6193     the file is closed on files open for SFM_WRITE. This was requested by
6194     Maurizio Umberto Puxeddu who is using libsndfile for file I/O in iCSound.
6195
6196     * tests/update_header_test.c
6197     New test program to test that the above functionality is working correctly.
6198
6199     * tests/peak_chunk_test.c tests/floating_point_test.c
6200     Cleanups.
6201
6202 2002-07-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6203
6204     * src/sfendian.[ch]
6205     Changed length count parameters for all endswap_XXX() functions from
6206     sf_count_t (which can be 64 bit even on 32 bit architectures) to int. These
6207     functions are only called frin inside the library, are always called with
6208     integer parameters and doing the actual calculation on 64 bit values is
6209     slow in comparision to doing it on ints.
6210
6211     * examples/sndfile-play.c
6212     More playback hacking for Win32.
6213
6214 2002-07-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6215
6216     * src/common.c
6217     In psf_log_printf(), changed %D format conversion specifier to %M (marker) and
6218     added %D specifier for printing the sf_count_t type.
6219
6220     * src/*.c
6221     Changed all usage of psf_log_printf() with %D format conversion specifiers
6222     to use %M conversion instead.
6223
6224     * tests/pcm_test.tpl tests/pcm_test.def
6225     New files to autogen pcm_test.c.
6226
6227     * src/pcm.c
6228     Fixed bug in scaling floats and doubles to 24 bit PCM and vice versa.
6229
6230 2002-07-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6231
6232     * configure.in
6233     Fix setup of $ac_cv_sys_largefile_CFLAGS so that sndfile.pc gets valid
6234     values for CFLAGS.
6235
6236     * examples/sndfile-play.c
6237     Start adding playback support for Win32.
6238
6239 2002-07-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6240
6241     * src/*.c
6242     Worked to removed compiler warnings.
6243     Extensive refactoring.
6244
6245     * src/common.[ch]
6246     Added function psf_memset() which works like the standard C function memset
6247     but takes and sf_count_t as the length parameter.
6248
6249     * src/sndfile.c
6250     Replaced calls to memset(0 with calls to psf_memset() as required.
6251
6252 2002-07-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6253
6254     * src/sndfile.c
6255     Added "libsndfile : " to the start of all error messages. This was suggested
6256     by Conrad Parker author of Sweep ( http://sweep.sourceforge.net/ ).
6257
6258     * src/sfendian.[ch]
6259     Added endswap_XXXX_copy() functions.
6260
6261     * src/pcm.c src/float32.c src/double64.c
6262     Use endswap_XXXX_copy() functions and removed dead code.
6263     Cleanups and optimisations.
6264
6265 2002-07-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6266
6267     * src/sndfile.c src/sndfile.h
6268     Gave values to all the SFC_* enum values to allow better control of the
6269     interface as commands are added and removed.
6270     Added new command SFC_SET_ADD_PEAK_CHUNK.
6271
6272     * src/wav.c src/aiff.c
6273     Modified wav_write_header and aiff_write_header to make addition of a PEAK
6274     chunk optional, even on floating point files.
6275
6276     * tests/benchmark.tpl
6277     Added call to sf_command(SFC_SET_ADD_PEAK_CHUNK) to turn off addition of a
6278     PEAK chunk for the benchmark where we are trying to miximize speed.
6279
6280     * src.pcm.c
6281     Changed tribyte typedef to something more sensible.
6282     Further conversion speed ups.
6283
6284 2002-07-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6285
6286     * src/command.c
6287     In major_formats rename "Sphere NIST" to "NIST Sphere".
6288
6289     * src/common.c src/sfendian.c
6290     Moved all endswap_XXX_array() functions to sfendian.c. These functions will
6291     be tweaked to provide maximum performance. Since maximum performance on one
6292     platform does not guarantee maximum performance on another, a small set of
6293     functions will be written and the optimal one chosen at compile time.
6294
6295     * src/common.h src/sfendian.h
6296     Declarations of all endswap_XXX_array() functions moved to sfendian.h.
6297
6298     * src/Makefile.am
6299     Add sfendian.c to build targets.
6300
6301 2002-07-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6302
6303     * src/pcm.c src/sfendian.h
6304     Re-coded PCM encoders and decoders to match or better the speed of
6305     libsndfile version 0.0.28.
6306
6307 2002-06-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6308
6309     * src/wav.c
6310     Add checking for WAVPACK data in standard PCM WAV file. Return error if
6311     found. This WAVPACK is *WAY* broken. It uses the same PCM WAV file header
6312     and then stores non-PCM data.
6313
6314     * tests/benchmark.tpl
6315     Added more tests.
6316
6317 2002-06-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6318
6319     * tests/benchmark.tpl
6320     Added conditional definition of M_PI.
6321     For Win32, set WRITE_PERMS to 0777.
6322
6323     * Win32/Makefile.msvc
6324     Added target to make generate program on Win32.
6325
6326     * src/samplitude.c
6327     Removed handler for Samplitude RAP file format. This file type seems rarer
6328     than hens teeth and is completely undocumented.
6329
6330     * src/common.h src/sndfile.c src/Makefile.am Win32/Makefile.msvc
6331     Removed references to sampltiude RAP format.
6332
6333     * tests/benchmark.tpl
6334     Benchmark program now prints the libsndfile version number when run. This
6335     program was also backported to version 0 to compare results. Version
6336     1.0.0rc2 is faster than version 0.0.28 on most conversions but slower on
6337     some. The slow ones need to be fixed before final release.
6338
6339 2002-06-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6340
6341     * tests/benchmark.def tests/benchmark.tpl
6342     New files which generate tests/benchmark.c using Autogen. Added int ->
6343     SF_FORMAT_PCM_24 test.
6344
6345     * tests/benchmark.c
6346     Now and Autogen output file.
6347
6348     * tests/Makefile.am
6349     Updated for above changes.
6350
6351 2002-06-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6352
6353     * tests/benchmark.c
6354     Basic benchmark program complete. Need to convert it to Autogen.
6355
6356     * Win32/Makefile.msvc
6357     Added benchmark.exe target.
6358
6359 2002-06-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6360
6361     * examples/generate.c
6362     New program to generate a number of different output file formats from a
6363     single input file. This allows testing of the created files.
6364
6365     * tests/benchmark.c
6366     New test program to benchmark libsndfile. Nowhere near complete yet.
6367
6368     * examples/Makefile.am tests/Makefile.am
6369     New make rules for the two new programs.
6370
6371 2002-06-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6372
6373     * Win32/libsndfile.def
6374     Removed definition for sf_signal_max().
6375
6376     * src/sndfile.c
6377     Removed cruft.
6378
6379     * doc/index.html
6380     A number of documentation bugs were fixed. Thanks to Anand Kumria.
6381
6382     * doc/version-1.html
6383     Minor doc updates.
6384
6385     * configure.in
6386     Bumped version to 1.0.0rc2.
6387
6388     * src/sf_command.h src/Makefile.am
6389     Removed the header file as it was no longer being used. Thanks to Anand
6390     Kunria for spotting this.
6391
6392     * doc/index.html
6393     A number of documentation bugs were fixed. Thanks to Anand Kumria.
6394
6395 2002-06-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6396
6397     * src/common.h
6398     Test for Win32 before testing SIZEOF_OFF_T so that it works correctly
6399     on Win32..
6400
6401     * src/file_io.c
6402     Win32 fixes to ensure O_BINARY is used for file open.
6403
6404     * doc/win32.html
6405     New file documenting the building libsndfile on Win32.
6406
6407     * doc/*.html
6408     Updating of documentation.
6409
6410 2002-06-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6411
6412     * tests/pcm_test.c
6413     Minor changes to allow easier determination of test file name.
6414
6415     * src/sndfile.[ch]
6416     Removed function sf_signal_max().
6417
6418     * examples/sndfile-play.c
6419     Changed call to sf_signal_max() to a call to sf_command().
6420
6421 2002-06-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6422
6423     * src/format.c src/command.c
6424     Renamed format.c to command.c which will now include code for sf_command()
6425     calls to perform operations other than format commands.
6426
6427     * src/sndfile.c src/sndfile.h
6428     Removed function sf_get_signal_max() which is replaced by commands passed
6429     to sf_command().
6430
6431     * src/command.c
6432     Implement commands SFC_CALC_SIGNAL_MAX.
6433
6434     * doc/command.html
6435     Documented SFC_CALC_SIGNAL_MAX.
6436
6437 2002-06-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6438
6439     * examples/sndfile-play.c
6440     Mods to make sndfile-play work on Solaris. The program sndfile-play now
6441     runs on Linux, MaxOSX and Solaris. Win32 to come.
6442
6443     * src/format.c
6444     Added SF_FORMAT_DWVW_* to subtype_formats array.
6445
6446     * src/nist.c
6447     Added support for 8 bit NIST Sphere files. Example file supplied by Anand
6448     Kumria.
6449
6450 2002-06-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6451
6452     * examples/sndfile-info.c
6453     Tidy up of output format.
6454
6455     * examnples/sndfile-play.c
6456     Mods to make sndfile-play work on MacOSX using Apple's CoreAudio API.
6457
6458     * configure.in
6459     Add new variables OS_SPECIFIC_INCLUDES and OS_SPECIFIC_LINKS which were
6460     required to supply extra include paths and link parameters to get
6461     sndfile-play working on MacOSX.
6462
6463     * examples/Makefile.am
6464     Use OS_SPOECIFIC_INCLUDES and OS_SPECIFIC_LINKS to build commands for
6465     sndfile-play.
6466
6467 2002-06-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6468
6469     * src/nist.c
6470     Added ability to read/write new NIST Sphere file types (A-law, u-law).
6471     Header parser was re-written from scratch. Example files supplied by Anand
6472     Kumria.
6473
6474     * src/sndfile.c
6475     Support for A-law and u-law NIST files.
6476
6477     * tests/Makefile.am tests/lossy_comp_test.c
6478     Tests for A-law and u-law NIST files.
6479
6480 2002-06-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6481
6482     * tests/utils.c
6483     Fixed an error in error string.
6484
6485 2002-06-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6486
6487     * acinclude.m4
6488     Removed exit command to allow cross-compiling.
6489
6490     * Win32/unistd.h src/file_io.c
6491     Moved contents of first file into the second file (enclosed in #ifdef).
6492     Win32/unistd.h is now an empty file but still must be there for libsndfile
6493     to compile on Win32.
6494
6495     * src/sd2.c, src/sndfile.c:
6496     Fixes for Sound Designer II files on big endian systems.
6497
6498 2002-06-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6499
6500     * configure.in
6501     Modified to work around problems with crappy MacOSX version of sed.
6502     Added sanity check for proper values for CFLAGS.
6503
6504 2002-06-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6505
6506     * src/sndfile.c
6507     Code clean up in sf_open ().
6508
6509     * Win32/Makefile.msvc
6510     Michael Fink's contributed MSVC++ makefile was hacked to bits and put back
6511     together in a new improved form.
6512
6513     * src/file_io.c
6514     Fixes for Win32; _lseeki64() returns an invalid argument for calls like
6515     _lseeki64(fd, 0, SEEK_CUR) so need to use _telli64 (fd) instead.
6516
6517     * src/common.h src/sndfile.c src/wav.c src/aiff.c
6518     Added SFE_LOG_OVERRUN error.
6519     Added termination for potential infinite loop when parsing file headers.
6520
6521     * src/wav.c src/w64.c
6522     Fixed bug casuing incorrect header generation when opening file read/write.
6523
6524 2002-06-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6525
6526     * doc/api.html
6527     Improved the documentation to make it clearer that the file read method
6528     and the underlying file format are completely disconnected. Suggested
6529     by Josh Green.
6530
6531     * doc/command.html
6532     Started correcting docs to take into account changes made to the
6533     operations of the sf_command () function. Not complete yet.
6534
6535     * src/sndfile.c
6536     Reverted some changes which had broken the partially working SDII header
6537     parsing. Now have access to an iBook with OS X so reading and writing SDII
6538     files on all platforms should be a reality in the near future. On Mac this
6539     will involve reading the resource fork via the standard MacOS API. To move
6540     a file from Mac to another OS, the resource and data forks will need to be
6541     combined before transfer. The combined file will be read on both Mac and
6542     other OSes like any other file.
6543
6544 2002-06-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6545
6546     * ltmain.sh
6547     Applied a patch from http://fink.sourceforge.net/doc/porting/libtool.php
6548     which allows libsndfile to compile on MacOSX 10.1. This patch should not
6549     interfere with compiling on other OSes.
6550
6551     * src/GSM610/private.h
6552     Changes to fix compile problems on MacOSX (see src/GSM610/ChangeLog).
6553
6554     * src/float_cast.h
6555     Added MacOSX replacements for lrint() and lrintf().
6556
6557 2002-06-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6558
6559     * src/sndfile.c
6560     Replaced the code to print the filename to the log buffer when a file is
6561     opened. This code seems to have been left out during the merge of
6562     sf_open_read() and sf_open_write() to make a single  functions sf_open().
6563
6564 2002-06-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6565
6566     * src/wav.c
6567     Fixed a bug where the WAV header parser was going into an infinite loop
6568     on a badly formed LIST chunk. File supplied by David Viens.
6569
6570 2002-05-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6571
6572     * configure.in
6573     Added a message at the end of the configuration process to warn about the
6574     need for the use of pkg-config when linking programs against version 1 of
6575     libsndfile.
6576
6577     * doc/pkg-config.html
6578     New documentation file containing details of how to use pkg-config to
6579     retrieve settings for CFLAGS and library locations for linking files
6580     against version 1 of libsndfile.
6581
6582 2002-05-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6583
6584     * src/wav.c
6585     Fixed minor bug in handling of so-called ACIDized WAV files.
6586
6587 2002-05-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6588
6589     * Win32/libsndfile.def Win32/Makefile.msvc
6590     Two new files contributed by Michael Fink (from the winLAME project)
6591     which allows libsndfile to be built on windows in a MSDOS box by doing
6592     "nmake -f Makefile.msvc". Way cool!
6593
6594 2002-05-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6595
6596     * configure.in
6597     MacOSX is SSSOOOOOOO screwed up!!! I can't believe how hard it is to
6598     generate a tarball which will configure and compile on that platform.
6599     Joined the libtool mailing list to try and get some answers.
6600
6601 2002-05-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6602
6603     * configure.in
6604     Changed to autoconf version 2.50. MacOSX uses autoconf version 2.53 which
6605     is incompatible with with version 2.13 which had been using until now.
6606     The AC_SYS_LARGE_FILE macro distributed withe autoconf 2.50 is missing a
6607     few features so AC_SYS_EXTRA_LARGE file was defined to replace it.
6608
6609     * configure.in
6610     Changed to automake version 1.5 to try and make a tarball which will
6611     work on MacOSX.
6612
6613 2002-05-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6614
6615     * src/wav_gsm610.c
6616     Changed name to gsm610.c. Added reading/writing of headerless files.
6617
6618     * src/sndfile.c src/raw.c
6619     Added ability to read/write headerless (SF_FORMAT_RAW) GSM 6.10 files.
6620
6621 2002-05-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6622
6623     * tests/lossy_comp_test.c
6624     Clean up in preparation for Autogen-ing this file.
6625
6626     * src/GSM610/*.[ch]
6627     Code cleanup and prepartion forgetting file seek working. Details in
6628     src/GSM610/ChangeLog.
6629
6630     * sndfile.pc.in
6631     Testing complete. Is sndfile.m4 still needed?
6632
6633 2002-05-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6634
6635     * tests/write_read_test.tpl tests/rdwr_test.tpl
6636     Merged tests from these two programs into write_read_test.tpl and deleted
6637     rdwr_test.tpl.
6638
6639 2002-05-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6640
6641     * src/w64.c src/svx.c src/paf.c
6642     Fixed bugs in read/write mode.
6643
6644 2002-05-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6645
6646     * examples/Makefile.am
6647     Renamed sfplay.c to sndfile-play.c and sndfile_info.c to sndfile-info.c for
6648     consistency when these programs become part of the Debian package
6649     sndfile-programs.
6650
6651     * sndfile.pc.in
6652     New file to replace sndfile-config.in. Libsndfile now uses the pkg-config
6653     model for providing installation parameters to dependant programs.
6654
6655     * src/sndfile.c
6656     Cleanup of code in sf_open().
6657
6658 2002-05-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6659
6660     * tests/utils.tpl tests/write_read_test.tpl
6661     More conversion to Autogen fixes and enchancements.
6662
6663     * src/*.c
6664     Read/write mode is now working for 16, 24 and 32 bit PCM as well as 32
6665     bit float and 64 bit double data. More tests still required.
6666
6667     * src/Makefile.am
6668     Added DISTCLEANFILES target to remove config.status and config.last.
6669
6670     * Win32/Makefile.am MacOS/Makefile.am
6671     Added DISTCLEANFILES target to remove Makefile.
6672
6673 2002-05-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6674
6675     * src/*.[ch] tests/rdwr_test.c
6676     More verifying workings of read/write mode. Fixing bugs found.
6677
6678     * tests/utils.[ch]
6679     Made these files Autogen generated files.
6680
6681     * tests/util.tpl tests/util.def
6682     New Autogen files to generate utils.[ch]. Moved some generic test functions
6683     into this file. Autogen is such a great tool!
6684
6685 2002-05-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6686
6687     * src/pcm.c src/float_cast.h Win32/config.h
6688     Fixed a couple of Win32 specific bugs pointed out by Michael Fink
6689     (maintainer of WinLAME) and David Viens.
6690
6691     * tests/check_log_buffer.[ch] tests/utils.[ch]
6692     Moved check_log_buffer() to utils.[ch] and deleted old file.
6693
6694 2002-05-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6695
6696     * src/common.[ch] src/sndfile.c
6697     New function psf_default_seek() which will be the default seek function
6698     for things like PCM and floating point data. This default is set for
6699     both read and write in sf_open() but can be over-ridden by any codec
6700     during it's initialisation.
6701
6702 2002-05-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6703
6704     * src/au.c
6705     AU files use a data size value of -1 to mean unknown. Fixed au_open_read()
6706     to allow opening files like this.
6707
6708     * tests/rdwr_test .c
6709     Added more tests.
6710
6711     * src/sndfile.c
6712     Fixed bugs in read/write mode found due to improvements in the test
6713     program.
6714
6715 2002-04-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6716
6717     * tests/rdwr_test .c
6718     New file for testing read/write mode.
6719
6720 2002-04-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6721
6722     * m4/*
6723     Removed all m4 macros from this directory as they get concatenated to form
6724     the file aclocal.m4 anyway.
6725
6726     * sndfile.m4
6727     Moved this from the m4 directory to the root directory asn this is part of
6728     the distribution and is installed during "make install".
6729
6730 2002-04-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6731
6732     * src/float32.c
6733     Removed logging of peaks for all file formats other than AIFF and WAV.
6734
6735     * tests/write_read_test.tpl tests/write_read_test.def
6736     New files which autogen uses to generate write_read_test.c. Doing it this
6737     way makes write_read_test.c far easier to maintain. Other test programs
6738     will be converted to autogen in the near future.
6739
6740     * src/*.c
6741     Fixed a few bugs found when testing on Sparc (bug endian) Solaris.
6742
6743 2002-04-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6744
6745     * doc/*.html
6746     Fixed documention versioning.
6747
6748     * configure.in
6749     Fixed a bug in the routines which search for Large File Support on systems
6750     which have large file support by defualt.
6751
6752 2002-04-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6753
6754     * src/*.[ch]
6755     Found and fixed an issue which can cause a bug in other software (I was
6756     porting Conrad Parker's Sweep program from version 0 of the library to
6757     version 1). When opening a file for write, the libsndfile code would
6758     set the sfinfo.samples field to a maximum value.
6759
6760     * tests/write_read_test.c
6761     Added tests to detect the above problem.
6762
6763 2002-04-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6764
6765     * src/*.[ch]
6766     Finished base implementation of read/write mode. Much more testing still
6767     needed.
6768
6769     * m4/largefile.m4
6770     Macro for detecting Large File Standard capabilities. This macro was ripped
6771     out of the aclocal.m4 file of GNU tar-1.13.
6772
6773     * configure.in
6774     Added detection of large file support. Files larger than 2 Gigabytes should
6775     now be supported on 64 bit platforms and many 32 bit platforms including
6776     Linux (2.4 kernel, glibc-2.2), *BSD, MacOS, Win32.
6777
6778     * libsndfile_convert_version.py
6779     A Python script which attempts to autoconvert code written to use version 0
6780     to version 1.
6781
6782 2002-04-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6783
6784     * src/*.[ch]
6785     Finished base implementation of read/write mode. Much more testing still
6786     needed.
6787
6788     * tests/write_read_test.c
6789     Preliminary tests for read/write mode added. More needed.
6790
6791 2002-04-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6792
6793     * src/sndfile.[ch]
6794     Removed sf_open_read() and sf_open_write() functions,replacting them with
6795     sf_open() which takes an extra mode parameter (SF_OPEN_READ, SF_OPEN_WRITE,
6796     or SF_OPEN_RDWR). This new function sf_open can now be modified to allow
6797     opening a file formodification (RDWR).
6798
6799 2002-04-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6800
6801     * src/*.c
6802     Completed merging of separate xxx_open_read() and xxx_open_write()
6803     functions. All tests pass.
6804
6805 2002-04-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6806
6807     * src/au.c
6808     Massive refactoring required to merge au_open_read() with au_open_write()
6809     to create au_open().
6810
6811 2002-04-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6812
6813     * src/*.c
6814     Started changes required to allow a sound file to be opened in read/write
6815     mode, with separate file pointers for read and write. This involves merging
6816     of encoder/decoder functions like pcm_read_init() and pcm_write_init()
6817     int a new function pcm_init() as well as doing something similar for all
6818     the file type specific functions ie aiff_open_read() and aiff_open_write()
6819     were merged to make the function aiff_open().
6820
6821 2002-04-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6822
6823     * src/file_io.c
6824     New file containing psf_fopen(), psf_fread(), psf_fwrite(), psf_fseek() and
6825     psf_ftell() functions. These function will replace use of fopen/fread/fwrite
6826     etc and allow access to files larger than 2 gigabytes on a number of 32 bit
6827     OSes (Linux on x86, 32 bit Solaris user space apps, Win32 and MacOS).
6828
6829     * src/*.c
6830     Replaced all instances of fopen with psf_open, fread with psd_read, fwrite
6831     with psf_write and so on.
6832
6833 2002-03-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6834
6835     * src/dwvw.c
6836     Finally fixed all known problems with 12, 16 and 24 bit DWVW encoding.
6837
6838     * tests/floating_point_test.c
6839     Added tests for 12, 16 and 24 bit DWVW encoding.
6840
6841 2002-03-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6842
6843     * m4/endian.m4
6844     Defines a new m4 macro AC_C_FIND_ENDIAN, for determining the endian-ness of
6845     the target CPU. It first checks for the definition of BYTE_ORDER in
6846     <endian.h>, then in <sys/types.h> and <sys/param.h>. If none of these work
6847     and the C compiler is not a cross compiler it compiles and runs a program
6848     to test for endian-ness. If the compiler is a cross compiler it makes a
6849     guess based on $target_cpu.
6850
6851     * configure.in
6852     Modified to use AC_C_FIND_ENDIAN.
6853
6854     * src/sfendian.h
6855     Simplified.
6856
6857 2002-02-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6858
6859     * tests/floating_point_test.c
6860     Tests completely rewritten using the dft_cmp function. Now able to
6861     calculate a quick guesstimate of the Signal to Noise Ratio of the encoder.
6862
6863 2002-02-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6864
6865     * tests/dft_cmp.[ch]
6866     New files containing functions for comparing pre and post lossily
6867     compressed data using a quickly hacked DFT.
6868
6869     * tests/utils.[ch]
6870     New files containing functions for saving pre and post encoded data in a
6871     file readable by the GNU Octave package.
6872
6873 2002-02-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6874
6875     * m4/lrint.m4 m4/lrintf.m4
6876     Fixed m4 macros to define HAVE_LRINT and HAVE_LRINTF even when the test
6877     is cached.
6878
6879 2002-02-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6880
6881     * tests/floating_point_test.c
6882     Fixed improper use of strncat ().
6883
6884 2002-02-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6885
6886     * tests/headerless_test.c
6887     New test program to test the ability to open and read a known file type as a
6888     RAW header-less file.
6889
6890 2002-02-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6891
6892     * tests/losy_comp_test.c
6893     Added a test to ensure that the data read from a file is not all zeros.
6894
6895     * examples/sfconvert.c
6896     Added "-gsm610" encoding types.
6897
6898 2002-01-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6899
6900     * examples/sfconvert.c
6901     Added "-dwvw12", "-dwvw16" and "-dwvw24" encoding types.
6902
6903     * tests/dwvw_test.c
6904     New file for testing DWVW encoder/decoder.
6905
6906 2002-01-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6907
6908     * src/dwvw.c
6909     Implemented writing of DWVW. 12 bit seems to work, 16 and 24 bit still broken.
6910
6911     * src/aiff.c
6912     Improved reporting of encoding types.
6913
6914     * src/voc.c
6915     Clean up.
6916
6917 2002-01-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6918
6919     * src/dwvw.c
6920     New file implementing lossless Delta Word Variable Width (DWVW) encoding.
6921     Reading 12 bit DWVW is now working.
6922
6923     * src/aiff.c common.h sndfile.c
6924     Added hooks for DWVW encoded AIFF and RAW files.
6925
6926 2002-01-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6927
6928     * src/w64.c
6929     Robustify header parsing.
6930
6931     * src/wav_w64.h
6932     Header file wav.h was renamed to wav_w64.h to signify sharing of
6933     definitions across the two file types.
6934
6935     * src/wav.c src/w64.c src/wav_w64.c
6936     Refactoring.
6937     Modified and moved functions with a high degree of similarity between
6938     wav.c and w64.c to wav_w64.c.
6939
6940 2002-01-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6941
6942     * src/w64.c
6943     Completed work on getting read and write working.
6944
6945     * examples/sfplay.c
6946     Added code to scale floating point data so it plays at a reasonable volume.
6947
6948     * tests/Makefile.am tests/write_read_test.c
6949     Added tests for W64 files.
6950
6951 2002-01-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6952
6953     * src/*.c
6954     Modded all code in file header writing routines to use
6955     psf_new_binheader_writef().
6956     Removed psf_binheader_writef() from src/common.c.
6957     Globally replaced psf_new_binheader_writef with psf_binheader_writef.
6958
6959 2002-01-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6960
6961     * src/*.c
6962     Modded all code in file parsing routines to use psf_new_binheader_readf().
6963     Removed psf_binheader_readf() from src/common.c.
6964     Globally replaced psf_new_binheader_readf with psf_binheader_readf.
6965
6966     * src/common.[ch]
6967     Added new function psf_new_binheader_writef () which will soon replace
6968     psf_binheader_writef (). The new function has basically the same function
6969     as the original but has a more flexible and capable interface. It also
6970     allows the writing of 64 bit integer values for files contains 64 bit file
6971     offsets.
6972
6973 2002-01-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6974
6975     * src/formats.c src/sndfile.c src/sndfile.h
6976     Added code allowing full enumeration of supported file formats via the
6977     sf_command () interface.
6978     This feature will allow applications to avoid needing recompilation when
6979     support for new file formats are added to libsndfile.
6980
6981     * tests/command_test.c
6982     Added test code for the above feature.
6983
6984     * examples/list_formats.c
6985     New file. An example of the use of the supported file enumeration
6986     interface. This program lists all the major formats and for each major
6987     format the supported subformats.
6988
6989 2002-01-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6990
6991     * src/*.[ch] tests/*.c
6992     Changed command parameter of sf_command () function from a test string to
6993     an int. The valid values for the command parameter begin with SFC_ and are
6994     listed in src/sndfile.h.
6995
6996 2001-12-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6997
6998     * src/formats.c src/sndfile.c
6999     Added an way of enumerating a set of common file formats using the
7000     sf_command () interface. This interface was suggested by Dominic Mazzoni,
7001     one of the main authors of Audacity (http://audacity.sourceforge.net/).
7002
7003 2001-12-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7004
7005     * src/sndfile.c
7006     Added checking of filename parameter in sf_open_read (). Previousy, if a
7007     NULL pointer was passed the library would segfault.
7008
7009 2001-12-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7010
7011     * src/common.c src/common.h
7012     Changed the len parameter of the endswap_*_array () functions from type
7013     int to type long.
7014
7015     * src/pcm.c
7016     Fixed a problem which
7017
7018 2001-12-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7019
7020     * src/sndfile.c
7021     Added conditional #include <sys/types.h> for EMX/gcc on OS/2. Thanks to
7022     Paul Hartman for pointing this out.
7023
7024     * tests/lossy_comp_test.c tests/floating_point_test.c
7025     Added definitions for M_PI for when it isn't defined in <math.h>.
7026
7027 2001-11-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7028
7029     * src/ircam.c
7030     Re-implemented the header reader. Old version was making incorrect
7031     assumptions about the endian-ness of the file from the magic number at the
7032     start of the file. The new code looks at the integer which holds the
7033     number of channels and determines the endian-ness from that.
7034
7035 2001-11-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7036
7037     * src/aiff.c
7038     Added support for other AIFC types ('raw ', 'in32', '23ni').
7039     Further work on IMA ADPCM encoding.
7040
7041 2001-11-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7042
7043     * src/ima_adpcm.c
7044     Renamed from wav_ima_adpcm.c. This file will soon handle IMA ADPCM
7045     encodings for both WAV and AIFF files.
7046
7047     * src/aiff.c
7048     Started adding IMA ADPCM support.
7049
7050 2001-11-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7051
7052     * src/double.c
7053     New file for handling double precision floating point (SF_FORMAT_DOUBLE)
7054     data.
7055
7056     * src/wav.c src/aiff.c src/au.c src/raw.c
7057     Added support for SF_FORMAT_DOUBLE data.
7058
7059     * src/common.[ch]
7060     Addition of endswap_long_array () for endian swapping 64 bit integers. This
7061     function will work correctly on processors with 32 bit and 64 bit longs.
7062     Optimised endswap_short_array () and endswap_int_array ().
7063
7064     * tests/pcm_test.c
7065     Added and extra check. After the first file of each type is written to disk
7066     a checksum is performed of the first 64 bytes and checked against a pre-
7067     calculated value. This will work whatever the endian-ness of the host
7068     machine.
7069
7070 2001-11-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7071
7072     * src/aiff.c
7073     Added handling of u-law, A-law encoded AIFF files. Thanks to Tom Erbe for
7074     supplying example files.
7075
7076     * tests/lossy_comp_test.c
7077     Added tests for above.
7078
7079     * src/common.h src/*.c
7080     Removed function typedefs from common.h and function pointer casting in all
7081     the other files. This allows the compiler to perform proper type checking.
7082     Hopefully this will prevernt problems like the sf_seek bug for OpenBSD,
7083     BeOS etc.
7084
7085     * src/common.[ch]
7086     Added new function psf_new_binheader_readf () which will eventually replace
7087     psf_binheader_readf (). The new function has basically the same function as
7088     the original but has a more flexible and capable interface. It also allows
7089     the reading of 64 bit integer values for files contains 64 bit file
7090     offsets.
7091
7092 2001-11-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7093
7094     * src/voc.c
7095     Completed implementation of VOC file handling. Can now handle 8 and 16 bit
7096     PCM, u-law and A-law files with one or two channels.
7097
7098     * src/write_read_test.c tests/lossy_comp_test.c
7099     Added tests for VOC files.
7100
7101 2001-11-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7102
7103     * src/float_cast.h
7104     Added inline asm version of lrint/lrintf for MacOS. Solution provided by
7105     Stephane Letz.
7106
7107     * src/voc.c
7108     More work on this braindamaged format. The VOC files produced by SoX also
7109     have a number of inconsistencies.
7110
7111 2001-11-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7112
7113     * src/paf.c
7114     Added support for 8 bit PCM PAF files.
7115
7116     * tests/write_read_test.c
7117     Added tests for 8 bit PAF files.
7118
7119 2001-11-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7120
7121     * tests/pcm_test.c
7122     New test program to test for correct scaling of integer values between
7123     different sized integer containers (ie short -> int).
7124     The new specs for libsndfile state that when the source and destination
7125     containers are of a different size, the most significant bit of the source
7126     value becomes the most significant bit of the destination container.
7127
7128     * src/pcm.c src/paf.c
7129     Modified to pass the above test program.
7130
7131     * tests/write_read_test.c tests/lossy_comp_test.c
7132     Modified to work with the new scaling rules.
7133
7134 2001-11-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7135
7136     * src/raw.c tests/write_read_test.c tests/write_read_test.c
7137     Added ability to do raw reads/writes of float, u-law and A-law files.
7138
7139     * src/*.[ch] examples/*.[ch] tests/*.[ch]
7140     Removed dependance on pcmbitwidth field of SF_INFO struct and moved to new
7141     SF_FORMAT_* types and use of SF_ENDIAN_BIG/LITTLE/CPU.
7142
7143 2001-11-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7144
7145     * src/*.[ch]
7146     Started implmentation of major changes documented in doc/version1.html.
7147
7148     Removed all usage of off_t which is not part of the ISO C standard. All
7149     places which were using it are now using type long which is the type of
7150     the offset parameter for the fseek function.
7151     This should fix problems on BeOS, MacOS and *BSD like systems which were
7152     failing "make check" because sizeof (long) != sizeof (off_t).
7153
7154 --------------------------------------------------------------------------------
7155 This is the boundary between version 1 of the library above and version 0 below.
7156 --------------------------------------------------------------------------------
7157
7158 2001-11-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7159
7160     * examples/sfplay_beos.cpp
7161     Added BeOS version of sfplay.c. This needs to be compiled using a C++
7162     compiler so is therefore not built by default. Thanks to Marcus Overhagen
7163     for providing this.
7164
7165 2001-11-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7166
7167     * examples/sfplay.c
7168     New example file showing how libsndfile can be used to read and play a
7169     sound file.
7170     At the moment on Linux is supported. Others will follow in the near future.
7171
7172 2001-11-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7173
7174     * src/pcm.c
7175     Fixed problem with normalisation code where a value of 1.0 could map to
7176     a value greater than MAX_SHORT or MAX_INT. Thanks to Roger Dannenberg for
7177     pointing this out.
7178
7179 2001-11-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7180
7181     * src/pcm.c
7182     Fixed scaling issue when reading/writing 8 bit files using
7183     sf_read/sf_write_short ().
7184     On read, values are scaled so that the most significant bit in the char
7185     ends up in the most significant bit of the short. On write, values are
7186     scaled so that most significant bit in the short ends up as the most
7187     significant bit in the char.
7188
7189 2001-11-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7190
7191     * src/au.c src/sndfile.c
7192     Added support for 32 bit float data in big and little endian AU files.
7193
7194     * tests/write_read_test.c
7195     Added tests for 32 bit float data in AU files.
7196
7197 2001-11-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7198
7199     * tests/lossy_comp_test.c
7200     Finalised testing of stereo files where possible.
7201
7202 2001-11-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7203
7204     * src/wav_ms_adpcm.c
7205     Fixed bug in writing stereo MS ADPCM WAV files. Thanks to Xu Xin for
7206     pointing out this problem.
7207
7208 2001-10-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7209
7210     * src/wav_ms_adpcm.c
7211     Modified function srate2blocksize () to handle 44k1Hz stereo files.
7212
7213 2001-10-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7214
7215     * src/w64.c
7216     Added support for Sonic Foundry 64 bit WAV format. As Linux (my main
7217     development platform) does not yet support 64 bit file offsets by default,
7218     current handling of this file format treats everything as 32 bit and fails
7219     openning the file, if it finds anything that goes beyond 32 bit values.
7220
7221     * src/sndfile.[hc] src/common.h src/Makefile.am
7222     Added hooks for W64 support.
7223
7224 2001-10-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7225
7226     * configure.in
7227     Added more warnings options to CFLAGS when the gcc compiler is detected.
7228
7229     * src/*.[ch] tests/*.c examples/*.c
7230     Started fixing the warning messages due to the new CFLASG.
7231
7232     * src/voc.c
7233     More work on VOC file read/writing.
7234
7235     * src/paf.c
7236     Found that PAF files were not checking the normalisation flag when reading
7237     or writing floats and doubles. Fixed it.
7238
7239     * tests/floating_point_test.c
7240     Added specific test for the above problem.
7241
7242     * src/float_cast.h src/pcm.c
7243     Added a section for Win32 to define lrint () and lrintf () in the header
7244     and implement it in the pcm.c
7245
7246 2001-10-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7247
7248     * sndfile-config.in m4/sndfile.m4
7249     These files were donated by Conrad Parker who also provided instructions
7250     on how to install them using autoconf/automake.
7251
7252     * src/float_cast.h
7253     Fiddled around with this file some more. On Linux and other gcc supported
7254     OSes use the C99 functions lrintf() and lrint() for casting from floating
7255     point to int without incurring the huge perfromance penalty (particularly
7256     on the i386 family) caused by the regular C cast from float to int.
7257     These new C99 functions replace the FLOAT_TO_* and DOUBLE_TO_* macros which
7258     I had been playing with.
7259
7260     * configure.in m4/lrint.m4 m4/lrintf.m4
7261     Add detection of these functions.
7262
7263 2001-10-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7264
7265     * src/voc.c
7266     Completed code for reading VOC files containing a single audio data
7267     segment.
7268     Started implementing code to handle files with multiple VOC_SOUND_DATA
7269     segments but couldn't be bothered finishing it. Multiple segment files can
7270     have different sample rates for different sections and other nasties like
7271     silence and repeat segments.
7272
7273 2001-10-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7274
7275     * src/common.h src/*.c
7276     Removed SF_PRIVATE struct field fdata and replaced it with extra_data.
7277
7278     * src/voc.c
7279     Further development of the read part of this woefult file format.
7280
7281 2001-10-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7282
7283     * src/float_cast.h
7284     Implemented gcc and i386 floating point to int cast macros. Standard cast
7285     will be used when not on gcc for i385.
7286
7287     * src/pcm.c
7288     Modified all uses of FLOAT/DOUBLE_TO_INT and FLOAT/DOUBLE_TO_SHORT casts to
7289     comply with macros in float_cast.h.
7290
7291 2001-10-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7292
7293     * src/voc.c
7294     Changed the TYPE_xxx enum names to VOC_TYPE_xxx to prevent name clashes
7295     on MacOS with CodeWarrior 6.0.
7296
7297     * MacOS/MacOS-readme.txt
7298     Updated the compile instructions. Probably still need work as I don't have
7299     access to a Mac.
7300
7301 2001-10-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7302
7303     * src/wav.c src/aiff.c common.c
7304     Changed all references to snprintf to LSF_SNPRINTF and all vsnprintf to
7305     LSF_VSNPRINTF. LSF_VSNPRINTF and LSF_VSNPRINTF are defined in common.h.
7306
7307     * src/common.h
7308     Added checking of HAVE_SNPRINTF and HAVE_VSNPRINTF and defining
7309     LSF_VSNPRINTF and LSF_VSNPRINTF to appropriate values.
7310
7311     * src/missing.c
7312     New file containing a minimal implementation of snprintf and vsnprintf
7313     functions named missing_snprintf and missing_vsnprintf respectively. These
7314     are only compliled into the binary if snprintf and/or vsnprintf are not
7315     available.
7316
7317 2001-09-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7318
7319     * src/ircam.c
7320     New file to handle Berkeley/IRCAM/CARL files.
7321
7322     * src/sndfile.c src/common.h
7323     Modified for IRCAM handling.
7324
7325     * tests/*.c
7326     Added tests for IRCAM files.
7327
7328 2001-09-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7329
7330     * src/wav.c
7331     Apparently microsoft windows (tm) doesn't like ulaw and Alaw WAV files with
7332     20 byte format chunks (contrary to ms's own documentation). Fixed the WAV
7333     header writing code to generate smaller ms compliant ulaw and Alaw WAV
7334     files.
7335
7336 2001-09-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7337
7338     * tests/stdio_test.sh tests/stdio_test.c
7339     Shell script was rewritten as a C program due to incompatibilities of the
7340     sh shell on Linux and Solaris.
7341
7342 2001-09-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7343
7344     * tests/stdio_test.sh tests/stdout_test.c tests/stdin_test.c
7345     New test programs to verify the correct operation of reading from stdin and
7346     writing to stdout.
7347
7348     * src/sndfile.c wav.c au.c nist.c paf.c
7349     Fixed a bugs uncovered by the new test programs above.
7350
7351 2001-09-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7352
7353     * src/sndfile.c wav.c
7354     Fixed a bug preventing reading a file from stdin. Found by T. Narita.
7355
7356 2001-09-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7357
7358     * src/common.h
7359     Fixed a problem on OpenBSD 2.9 which was causing sf_seek() to fail on IMA
7360     WAV files. Root cause was the declaration of the func_seek typedef not
7361     matching the functions it was actually being used to point to. In OpenBSD
7362     sizeof (off_t) != sizeof (int). Thanks to Heikki Korpela for allowing me
7363     to log into his OpenBSD machine to debug this problem.
7364
7365 2001-09-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7366
7367     * src/sndfile.c
7368     Implemented sf_command ("norm float").
7369
7370     * src/*.c
7371     Implemented handling of sf_command ("set-norm-float"). Float normalization
7372     can now be turned on and off.
7373
7374     * tests/double_test.c
7375     Renamed to floating_point_test.c. Modified to include tests for all scaled
7376     reads and writes of floats and doubles.
7377
7378     * src/au_g72x.c
7379     Fixed bug in normalization code found with improved floating_point_test
7380     program.
7381
7382     * src/wav.c
7383     Added code for parsing 'INFO' and 'LIST' chunks. Will be used for extract
7384     text annotations from WAV files.
7385
7386     * src/aiff.c
7387     Added code for parsing '(c) ' and 'ANNO' chunks. Will be used for extract
7388     text annotations from WAV files.
7389
7390 2001-09-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7391
7392     * examples/sf_info.c example/Makefile.am
7393     Renamed to sndfile_info.c. The program sndfile_info will now be installed
7394     when the library is installed.
7395
7396     * src/float_cast.h
7397     New file defining floating point to short and int casts. These casts will
7398     eventually replace all flot and double casts to short and int. See comments
7399     at the top of the file for the reasoning.
7400
7401     * src/*.c
7402     Changed all default float and double casts to short or int with macros
7403     defined in floatcast.h. At the moment these casts do nothing. They will be
7404     replaced with faster float to int cast operations in the near future.
7405
7406 2001-08-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7407
7408     * tests/command_test.c
7409     New file for testing sf_command () functionality.
7410
7411     * src/sndfile.c
7412     Revisiting of error return values of some functions.
7413     Started implementing sf_command () a new function will allow on-the-fly
7414     modification of library behaviour, or instance, sample value scaling.
7415
7416     * src/common.h
7417     Added hook for format specific sf_command () calls to SNDFILE struct.
7418
7419     * doc/api.html
7420     Updated and errors corrected.
7421
7422     * doc/command.html
7423     New documentation file explaining new sf_command () function.
7424
7425 2001-08-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7426
7427     * src/sndfile.c
7428     Fixed error return values from sf_read*() and sf_write*(). There were
7429     numerous instances of -1 being returned through size_t. These now all set
7430     error int the SF_PRIVATE struct and return 0. Thanks to David Viens for
7431     spotting this.
7432
7433 2001-08-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7434
7435     * src/common.c
7436     Fixed use of va_arg() calls that were causing warning messages with the
7437     latest version of gcc (thanks Maurizio Umberto Puxeddu).
7438
7439 2001-07-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7440
7441     * src/*.c src/sfendian.h
7442     Moved definition of MAKE_MARKER macro to sfendian.h
7443
7444 2001-07-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7445
7446     * src/sndfile.c
7447     Modified sf_get_lib_version () so that version string will be visible using
7448     the Unix strings command.
7449
7450     * examples/Makefile.am examples/sfinfo.c
7451     Renamed sfinfo program and source code to sf_info. This prevents a name
7452     clash with the program included with libaudiofile.
7453
7454 2001-07-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7455
7456     * tests/read_seek_test.c tests/lossy_comp_test.c
7457     Added tests for sf_read_float () and sf_readf_float ().
7458
7459     * src/voc.c
7460     New files for handling Creative Voice files (not complete).
7461
7462     * src/samplitude.c
7463     New files for handling Samplitude files (not complete).
7464
7465 2001-07-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7466
7467     * src/aiff.c src/au.c src/paf.c src/svx.c src/wav.c
7468     Converted these files to using psf_binheader_readf() function. Will soon be
7469     ready to attempt to make reading writing from pipes work reliably.
7470
7471     * src/*.[ch]
7472     Added code for sf_read_float () and sf_readf_float () methods of accessing
7473     file data.
7474
7475 2001-07-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7476
7477     * src/paf.c src/wav_gsm610.c
7478     Removed two printf()s which had escaped notice for some time (thanks
7479     Sigbjørn Skjæret).
7480
7481 2001-07-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7482
7483     * src/wav_gsm610.c
7484     Fixed a bug which prevented GSM 6.10 encoded WAV files generated by
7485     libsndfile from being played in Windoze (thanks klay).
7486
7487 2001-07-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7488
7489     * src/common.[ch]
7490     Implemented psf_binheader_readf() which will do for file header reading what
7491     psf_binheader_writef() did for writing headers. Will eventually allow
7492     libsndfile to read and write from pipes, including named pipes.
7493
7494 2001-07-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7495
7496     * MacOS/config.h Win32/config.h
7497     Attempted to bring these two files uptodate with src/config.h. As I don't
7498     have access to either of these systems support for them may be completely
7499     broken.
7500
7501 2001-06-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7502
7503     * src/float32.c
7504     Fixed bug for big endian processors that can't read 32 bit IEEE floats. Now
7505     tested on Intel x86 and UltraSparc processors.
7506
7507 2001-06-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7508
7509     * src/aiff.c
7510     Modified to allow REX files (from Propellorhead's Recycle and Reason
7511     programs) to be read.
7512     REX files are basically an AIFF file with slightly unusual sequence of
7513     chunks (AIFF files are supposed to allow any sequence) and some extra
7514     application specific information.
7515     Not yet able to write a REX file as the details of the application specific
7516     data is unknown.
7517
7518 2001-06-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7519
7520     * src/wav.c
7521     Fixed endian bug when reading PEAK chunk on big endian machines.
7522
7523     * src/common.c
7524     Fixed endian bug when reading PEAK chunk on big endian machines with
7525     --enable-force-broken-float configure option.
7526     Fix psf_binheader_writef for (FORCE_BROKEN_FLOAT ||______)
7527
7528 2001-06-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7529
7530     * configure.in src/config.h.in
7531     Removed old CAN_READ_WRITE_x86_IEEE configure variable now that float
7532     capabilities are detected at run time.
7533     Added FORCE_BROKEN_FLOAT to allow testing of broken float code on machines
7534     where the processor can in fact handle floats correctly.
7535
7536     * src/float32.c
7537     Rejigged code reading and writing of floats on broken processors.
7538
7539     * m4/
7540     Removed this directory and all its files as they are no longer needed.
7541
7542 2001-06-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7543
7544     * tests/peak_chunk_test.c
7545     New test to validate reading and writing of peak chunk.
7546
7547     * examples/sfconvert
7548     Added -float32 option.
7549
7550     * src/*.c
7551     Changed all error return values to negative values (ie the negative of what
7552     they were).
7553
7554     * src/sndfile.c tests/error_test.c
7555     Modified to take account of the previous change.
7556
7557 2001-06-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7558
7559     * src/float32.c
7560     File renamed from wav_float.c and renamed function to something more
7561     general.
7562     Added runtime detection of floating point capabilities.
7563     Added recording of peaks during write for generation of PEAK chunk.
7564
7565     * src/wav.c src/aiff.c
7566     Added handing for PEAK chunk for floating point files. PEAK is read when the
7567     file headers are read and generated when the file is closed. Logic is in
7568     place for adding PEAK chunk to end of file when writing to a pipe (reading
7569     and writing from/to pipe to be implemented soon).
7570
7571     * src/sndfile.c
7572     Modified sf_signal_max () to use PEAK values if present.
7573
7574 2001-06-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7575
7576     * src/*.c
7577     Added pcm_read_init () and pcm_write_init () to src/pcm.c and removed all
7578     other calls to functions in this file from the filetype specific files.
7579
7580     * src/*.c
7581     Added alaw_read_init (), alaw_write_int (), ulaw_read_init () and
7582     ulaw_write_init () and removed all other calls to functions in alaw.c and
7583     ulaw.c from the filetype specific files.
7584
7585     * tests/write_read_test.c
7586     Added tests to validate sf_seek () on all file types.
7587
7588     * src/raw.c
7589     Implemented raw_seek () function to fix a bug where
7590     sf_seek (file, 0, SEEK_SET) on a RAW file failed.
7591
7592     * src/paf.c
7593     Fixed a bug in paf24_seek () found due to added seeks tests in
7594     tests/write_read_test.c
7595
7596 2001-06-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7597
7598     * tests/read_seek_test.c
7599     Fixed a couple of broken binary files.
7600
7601     * src/aiff.c src/wav.c
7602     Added handling of PEAK chunks on file read.
7603
7604 2001-05-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7605
7606     * check_libsndfile.py
7607     New file for the regression testing of libsndfile.
7608     check_libsndfile.py is a Python script which reads in a file containing
7609     filenames of audio files. Each file is checked by running the examples/sfinfo
7610     program on them and checking for error or warning messages in the libsndfile
7611     log buffer.
7612
7613     * check_libsndfile.list
7614     This is an example list of audio files for use with check_libsndfile.py
7615
7616     * tests/lossy_comp_test.c
7617     Changed the defined value of M_PI for math header files which don't have it.
7618     This fixed validation test failures on MetroWerks compilers. Thanks to Lord
7619     Praetor Satanus of Acheron for bringing this to my attention.
7620
7621 2001-05-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7622
7623     * src/common.[ch]
7624     Removed psf_header_setf () which was no longer required after refactoring
7625     and simplification of header writing.
7626     Added 'z' format specifier to psf_binheader_writef () for zero filling header
7627     with N bytes. Used by paf.c and nist.c
7628
7629     * tests/check_log_buffer.c
7630     New file implementing check_log_buffer () which reads the log buffer of a
7631     SNDFILE* object and searches for error and warning messages. Calls exit ()
7632     if any are found.
7633
7634     * tests/*.c
7635     Added calls to check_log_buffer () after each call to sf_open_XXX ().
7636
7637 2001-05-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7638
7639     * src/wav.c src/wav_ms_adpcm.c src/wav_gsm610.c
7640     Major rehack of header writing using psf_binheader_writef ().
7641
7642 2001-05-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7643
7644     * src/wav.c src/wav_ima_adpcm.c
7645     Major rehack of header writing using psf_binheader_writef ().
7646
7647 2001-05-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7648
7649     * src/wav.c
7650     Changed return type of get_encoding_str () to prevent compiler warnings on
7651     Mac OSX.
7652
7653     * src/aiff.c src/au.c
7654     Major rehack of header writing using psf_binheader_writef ().
7655
7656 2001-05-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7657
7658     * src/common.h src/common.c
7659     Added comments.
7660     Name of log buffer changed from strbuffer to logbuffer.
7661     Name of log buffer index variable changed from strindex to logindex.
7662
7663     * src/*.[ch]
7664     Changed name of internal logging function from psf_sprintf () to
7665     psf_log_printf ().
7666     Changed name of internal header generation functions from
7667     psf_[ab]h_printf () to psf_asciiheader_printf () and
7668     psf_binheader_writef ().
7669     Changed name of internal header manipulation function psf_hsetf () to
7670     psf_header_setf ().
7671
7672 2001-05-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7673
7674     * src/nist.c
7675     Fixed reading and writing of sample_byte_format header. "01" means little
7676     endian and "10" means big endian regardless of bit width.
7677
7678     * configure.in
7679     Detect Mac OSX and disable -Wall and -pedantic gcc options. Mac OSX is
7680     way screwed up and spews out buckets of warning messages from the system
7681     headers.
7682     Added --disable-gcc-opt configure option (sets gcc optimisation to -O0 ) for
7683     easier debugging.
7684     Made decision to harmonise source code version number and .so library
7685     version number. Future releases will stick to this rule.
7686
7687     * doc/new_file_type.HOWTO
7688     New file to document the addition of new file types to libsndfile.
7689
7690 2001-05-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7691
7692     * src/nist.c
7693     New file for reading/writing Sphere NIST audio file format.
7694     Originally requested by Elis Pomales in 1999.
7695     Retrieved from unstable (and untouched for 18 months) branch of libsndfile.
7696     Some vital information gleaned from the source code to Bill Schottstaedt's
7697     sndlib library : ftp://ccrma-ftp.stanford.edu/pub/Lisp/sndlib.tar.gz
7698     Currently reading and writing 16, 24 and 32 bit, big-endian and little
7699     endian, stereo and mono files.
7700
7701     * src/common.h src/common.c
7702     Added psf_ah_printf () function to help construction of ASCII headers (ie NIST).
7703
7704     * configure.in
7705     Added test for vsnprintf () required by psf_ah_printf ().
7706
7707     * tests/write_read_test.c
7708     Added tests for supported NIST files.
7709
7710 2001-05-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7711
7712     * tests/write_read_test.c
7713     Added tests for little endian AIFC files.
7714
7715     * src/aiff.c
7716     Minor re-working of aiff_open_write ().
7717     Added write support for little endian PCM encoded AIFC files.
7718
7719 2001-05-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7720
7721     * src/aiff.c
7722     Minor re-working of aiff_open_read ().
7723     Added read support for little endian PCM encoded AIFC files from the Mac
7724     OSX CD ripper program. Guillaume Lessard provided a couple of sample files
7725     and a working patch.
7726     The patch was not used as is but gave a good guide as to what to do.
7727
7728 2001-05-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7729
7730     * src/sndfile.h
7731     Fixed comments about endian-ness of WAV and AIFF files. Guillaume Lessard
7732     pointed out the error.
7733
7734 2001-04-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7735
7736     * examples/make_sine.c
7737     Re-write of this example using sample rate and required frequency in Hz.
7738
7739 2001-02-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7740
7741     * src/sndfile.c
7742     Fixed bug that prevented known file types from being read as RAW PCM data.
7743
7744 2000-12-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7745
7746     * src/aiff.c
7747     Added handing of COMT chunk.
7748
7749 2000-11-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7750
7751     * examples/sfconvert.c
7752     Fixed bug in normalisatio code. Pointed out by Johnny Wu.
7753
7754 2000-11-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7755
7756     * Win32/config.h
7757     Fixed the incorrect setting of HAVE_ENDIAN_H parameter. Win32 only issue.
7758
7759 2000-10-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7760
7761     * tests/Makefile.am
7762     Added -lm for write_read_test_LDADD.
7763
7764 2000-10-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7765
7766     * src/sndfile.c src/au.c
7767     Fixed bug which prevented writing of G723 24kbps AU files.
7768
7769     * tests/lossy_comp_test.c
7770     Corrrection to options for G723 tests.
7771
7772     * configure.in
7773     Added --disable-gcc-pipe option for DJGPP compiler (gcc on MS-DOS) which
7774     doesn't allow gcc -pipe option.
7775
7776 2000-09-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7777
7778     * src/ulaw.c src/alaw.c src/wav_imaadpcm.c src/msadpcm.c src/wav_gsm610.c
7779     Fixed normailsation bugs shown up by new double_test program.
7780
7781 2000-08-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7782
7783     * src/pcm.c
7784     Fixed bug in normalisation code (spotted by Steve Lhomme).
7785
7786     * tests/double_test.c
7787     New file to test scaled and unscaled sf_read_double() and sf_write_double()
7788     functions.
7789
7790 2000-08-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7791
7792     * COPYING
7793     Changed to the LGPL COPYING file (spotted by H. S. Teoh).
7794
7795 2000-08-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7796
7797     * src/sndfile.h
7798     Removed prototype of unimplemented function sf_get_info(). Added prototype
7799     for sf_error_number() Thanks to Sigbjørn Skjæret for spotting these.
7800
7801 2000-08-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7802
7803     * src/newpcm.h
7804     New file to contain a complete rewrite of the PCM data handling.
7805
7806 2000-08-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7807
7808     * src/sndfile.c
7809     Fixed a leak of FILE* pointers in sf_open_write(). Thanks to Sigbjørn
7810     Skjæret for spotting this one.
7811
7812 2000-08-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7813
7814     * src/au_g72x.c src/G72x/g72x.c
7815     Added G723 encoded AU file support.
7816
7817     * tests/lossy_comp_test.c
7818     Added tests for G721 and G723 encoded AU files.
7819
7820 2000-08-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7821
7822     * all files
7823     Changed the license to LGPL. Albert Faber who had copyright on
7824     Win32/unistd.h gave his permission to change the license on that file. All
7825     other files were either copyright erikd AT mega-nerd DOT com or copyright
7826     under a GPL/LGPL compatible license.
7827
7828 2000-08-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7829
7830     * tests/lossy_comp_test.c
7831     Fixed incorrect error message.
7832
7833     * src/au_g72x.c src/G72x/*
7834     G721 encoded AU files now working.
7835
7836     * Win32/README-Win32.txt
7837     Replaced this file with a new one which gives a full explanation
7838     of how to build libsndfile under Win32. Thanks to Mike Ricos.
7839
7840 2000-08-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7841
7842     * src/*.[ch]
7843     Removed double leading underscores from the start of all variable and
7844     function names. Identifiers with a leading underscores are reserved
7845     for use by the compiler.
7846
7847     * src/au_g72x.c src/G72x/*
7848     Continued work on G721 encoded AU files.
7849
7850 2000-07-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7851
7852     * src/G72x/*
7853     New files for reading/writing G721 and G723 ADPCM audio. These files
7854     are from a Sun Microsystems reference implementation released under a
7855     free software licence.
7856     Extensive changes to this code to make it fit in with libsndfile.
7857     See the ChangeLog in this directory for details.
7858
7859     * src/au_g72x.c
7860     New file for G721 encoded AU files.
7861
7862 2000-07-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7863
7864     * libsndfile.spec.in
7865     Added a spec file for making RPMs. Thanks to Josh Green for supplying this.
7866
7867 2000-06-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7868
7869     * src/sndfile.c src/sndfile.h
7870     Add checking for and handling of header-less u-law encoded AU/SND files.
7871     Any file with a ".au" or ".snd" file extension and without the normal
7872     AU file header is treated as an 8kHz, u-law encoded file.
7873
7874     * src/au.h
7875     New function for opening a headerless u-law encoded file for read.
7876
7877 2000-06-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7878
7879     * src/paf.c
7880     Add checking for files shorter than minimal PAF file header length.
7881
7882 2000-06-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7883
7884     * tests/write_read_test.c
7885     Added extra sf_perror() calls when sf_write_XXXX fails.
7886
7887 2000-05-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7888
7889     * src/common.c
7890     Modified usage of va_arg() macro to work correctly on PowerPC
7891     Linux. Thanks to Kyle Wheeler for giving me ssh access to his
7892     machine while I was trying to track this down.
7893
7894     * configure.in src/*.[ch]
7895     Sorted out some endian-ness issues brought up by PowerPC Linux.
7896
7897     * tests/read_seek_test.c
7898     Added extra debugging for when tests fail.
7899
7900 2000-05-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7901
7902     * src/wav.c
7903     Fixed bug in GSM 6.10 handling for big-endian machines. Thanks
7904     to Sigbjørn Skjæret for reporting this.
7905
7906 2000-04-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7907
7908     * src/sndfile.c src/wav.c src/wav_gsm610.c
7909     Finallised writing of GSM 6.10 WAV files.
7910
7911     * tests/lossy_comp_test.c
7912     Wrote new test code for GSM 6.10 files.
7913
7914     * examples/sfinfo.c
7915     Fixed incorrect format in printf() statement.
7916
7917 2000-04-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7918
7919     * src/sndfile.h.in
7920     Fixed comments about sf_perror () and sf_error_str ().
7921
7922 2000-03-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7923
7924     * configure.in
7925     Fixed --enable-justsrc option.
7926
7927 2000-03-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7928
7929     * wav.c
7930     Fixed checking of bytespersec field of header. Still some weirdness
7931     with some files.
7932
7933 2000-03-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7934
7935     * tests/lossy_comp_test.c
7936     Added option to test PCM WAV files (sanity check).
7937     Fixed bug in sf_seek() tests.
7938
7939 2000-02-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7940
7941     * src/sndfile.c src/wav.c
7942     Minor changes to allow writing of GSM 6.10 WAV files.
7943
7944 2000-02-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7945
7946     * configure.in Makefile.am src/Makefile.am
7947     Finally got around to figuring out how to build a single library from
7948     multiple source directories.
7949     Reading GSM 6.10 files now seems to work.
7950
7951 2000-01-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7952
7953     * src/wav.c
7954     Added more error reporting in read_fmt_chunk().
7955
7956 1999-12-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7957
7958     * examples/sfinfo.c
7959     Modified program to accept multiple filenames from the command line.
7960
7961 1999-11-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7962
7963     * src/wav_ima_adpcm.c
7964     Moved code around in preparation to adding ability to read/write IMA ADPCM
7965     encoded AIFF files.
7966
7967 1999-11-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7968
7969     * src/common.c
7970     Fixed put_int() and put_short() macros used by _psf_hprintf() which were
7971     causing seg. faults on Sparc Solaris.
7972
7973 1999-11-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7974
7975     * src/common.c
7976     Added string.h to includes. Thanks to Sigbjxrn Skjfret.
7977
7978     * src/svx.c
7979     Fixed __svx_close() function to ensure FORM and BODY chunks are correctly
7980     set.
7981
7982 1999-10-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7983
7984     * src/au.c
7985     Fixed handling of incorrect size field in AU header on read. Thanks to
7986     Christoph Lauer for finding this problem.
7987
7988 1999-09-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7989
7990     * src/aiff.c
7991     Fixed a bug with incorrect SSND chunk length being written. This also lead
7992     to finding an minor error in AIFF header parsing. Thanks to Dan Timis for
7993     pointing this out.
7994
7995 1999-09-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
7996
7997     * src/paf.c
7998     Fixed a bug with reading and writing 24 bit stereo PAF files. This problem
7999     came to light when implementing tests for the new functions which operate
8000     in terms of frames rather than items.
8001
8002 1999-09-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8003
8004     * src/sndfile.c
8005     Modified file type detection to use first 12 bytes of file rather than
8006     file name extension. Required this because NIST files use the same
8007     filename extension as Microsoft WAV files.
8008
8009     * src/sndfile.c src/sndfile.h
8010     Added short, int and double read/write functions which work in frames
8011     rather than items. This was originally suggested by Maurizio Umberto
8012     Puxeddu.
8013
8014 1999-09-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8015
8016     * src/svx.c
8017     Finished off implementation of write using __psf_hprintf().
8018
8019 1999-09-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8020
8021     * src/common.h
8022     Added a buffer to SF_PRIVATE for writing the header. This is required
8023     to make generating headers for IFF/SVX files easier as well as making
8024     it easier to do re-write the headers which will be required when
8025     sf_rewrite_header() is implemented.
8026
8027     * src/common.c
8028     Implemented __psf_hprintf() function. This is an internal function
8029     which is documented briefly just above the code.
8030
8031 1999-09-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8032
8033     * src/sndfile.c
8034     Fixed a bug in sf_write_raw() where it was returning incorrect values
8035     (thanks to Richard Dobson for finding this one). Must put in a test
8036     routine for sf_read_raw and sf_write_raw.
8037
8038     * src/aiff.c
8039     Fixed default FORMsize in __aiff_open_write ().
8040
8041     * src/sndfile.c
8042     Added copy of filename to internal data structure. IFF/SVX files
8043     contain a NAME header chunk. Both sf_open_read() and sf_open_write()
8044     copy the file name (less the leading path information) to the
8045     filename field.
8046
8047     * src/svx.c
8048     Started implementing writing of files.
8049
8050 1999-08-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8051
8052     * src/svx.c
8053     New file for reading/writing 8SVX and 16SVX files.
8054
8055     * src/sndfile.[ch] src/common.h
8056     Changes for SVX files.
8057
8058     * src/aiff.c
8059     Fixed header parsing when unknown chunk is found.
8060
8061 1999-08-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8062
8063     * src/paf.c
8064     New file for reading/writing Ensoniq PARIS audio file format.
8065
8066     * src/sndfile.[ch] src/common.h
8067     Changes for PAF files.
8068
8069     * src/sndfile.[ch]
8070     Added stuff for sf_get_lib_version() function.
8071
8072
8073 1999-07-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8074
8075     * src/sndfile.h MacOS/config.h
8076     Fixed minor MacOS configuration issues.
8077
8078 1999-07-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8079
8080     * MacOS/
8081     Added a new directory for the MacOS config.h file and the
8082     readme file.
8083
8084     * src/aiff.c
8085     Fixed calculation of datalength when reading SSND chunk. Thanks to
8086     Sigbjørn Skjæret for pointing out this error.
8087
8088 1999-07-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8089
8090     * src/sndfile.c src/sndfile.h src/raw.c
8091     Further fixing of #includes for MacOS.
8092
8093 1999-07-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8094
8095     * src/wav.c src/aiff.c
8096     Added call to ferror () in main header parsing loop of __XXX_open_read
8097     functions. This should fix problems on platforms (MacOS, AmigaOS) where
8098     fseek()ing or fread()ing beyond the end of the file puts the FILE*
8099     stream in an error state until clearerr() is called.
8100
8101     * tests/write_read_test.c
8102     Added tests for RAW header-less PCM files.
8103
8104     * src/common.h
8105     Moved definition of struct tribyte to pcm.c which is the only place
8106     which needs it.
8107
8108     * src/pcm.c
8109     Modified all code which assumed sizeof (struct tribyte) == 3. This code
8110     did not work on MacOS. Thanks to Ben "Jacobs" for pointing this out.
8111
8112     * src/au.c
8113     Removed <sys/stat.h> from list of #includes (not being used).
8114
8115     * src/sndfile.c
8116     Added MacOS specific #ifdef to replace <sys/stat.h>.
8117
8118     * src/sndfile.h
8119     Added MacOS specific #ifdef to replace <sys/stat.h>.
8120
8121     * src/sndfile.h
8122     Added MacOS specific typedef for off_t.
8123
8124     * MacOS-readme.txt
8125     New file with instructions for building libsndfile under MacOS. Thanks
8126     to Ben "Jacobs" for supplying these instructions.
8127
8128 1999-07-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8129
8130     * configure.in
8131     Removed sndfile.h from generated file list as there were no longer
8132     any autoconf substitutions being made.
8133
8134     * src/raw.c
8135     New file for handling raw header-less PCM files. In order to open these
8136     for read, the user must specify format, pcmbitwidth and channels in the
8137     SF_INFO struct when calling sf_open_read ().
8138
8139     * src/sndfile.c
8140     Added support for raw header-less PCM files.
8141
8142 1999-07-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8143
8144     * examples/sfinfo.c
8145     Removed options so the sfinfo program always prints out all the information.
8146
8147 1999-07-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8148
8149     * src/alaw.c
8150     New file for A-law encoding (similar to u-law).
8151
8152     * tests/alaw_test.c
8153     New test program to test the A-law encode/decode lookup tables.
8154
8155     * tests/lossy_comp_test.c
8156     Added tests for a-law encoded WAV, AU and AULE files.
8157
8158 1999-07-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8159
8160     * src/sndfile.c src/au.c
8161     Removed second "#include <unistd.h>". Thanks to Ben "Jacobs" for pointing
8162     this out.
8163
8164 1999-07-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8165
8166     * tests/ulaw_test.c
8167     New test program to test the u-law encode/decode lookup tables.
8168
8169 1999-07-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8170
8171     * src/sndfile.h
8172     Made corrections to comments on the return values from sf_seek ().
8173
8174     * src/sndfile.c
8175     Fixed boundary condition checking bug and accounting bug in sf_read_raw ().
8176
8177 1999-07-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8178
8179     * src/au.c src/ulaw.c
8180     Finished implementation of u-law encoded AU files.
8181
8182     * src/wav.c
8183     Implemented reading and writing of u-law encoded WAV files.
8184
8185     * tests/
8186     Changed name of adpcm_test.c to lossy_comp_test.c. This test program
8187     will now be used to test Ulaw and Alaw encoding as well as APDCM.
8188     Added tests for Ulaw encoded WAV files.
8189
8190 1999-07-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8191
8192     * tests/adpcm_test.c
8193     Initialised amp variable in gen_signal() to remove compiler warning.
8194
8195 1999-07-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8196
8197     * src/aiff.c
8198     In __aiff_open_read () prevented fseek()ing beyond end of file which
8199     was causing trouble on MacOS with the MetroWerks compiler. Thanks to
8200     Ben "Jacobs" for pointing this out.
8201
8202     *src/wav.c
8203     Fixed as above in __wav_open_read ().
8204
8205 1999-07-01    Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8206
8207     * src/wav_ms_adpcm.c
8208     Implemented MS ADPCM encoding. Code cleanup of decoder.
8209
8210     * tests/adpcm_test.c
8211     Added tests for MS ADPCM WAV files.
8212
8213     * src/wav_ima_adpcm.c
8214     Fixed incorrect parameter in call to srate2blocksize () from
8215     __ima_writer_init ().
8216
8217 1999-06-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8218
8219     * tests/read_seek_test.c
8220     Added test for 8 bit AIFF files.
8221
8222 1999-06-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8223
8224     * tests/write_read_test.c
8225     Removed test for IMA ADPCM WAV files which is now done in adpcm_test.c
8226
8227     * configure.in
8228     Added -Wconversion to CFLAGS.
8229
8230     * src/*.c tests/*.c examples/*.c
8231     Fixed all warnings resulting from use of -Wconversion.
8232
8233 1999-06-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8234
8235     * src/wav.c
8236     Added fact chunk handling on read and write for all non WAVE_FORMAT_PCM
8237     WAV files.
8238
8239     * src/wav_ima.c
8240     Changed block alignment to be dependant on sample rate. This should make
8241     WAV files created with libsndfile compatible with the MS Windows media
8242     players.
8243
8244     * tests/adpcm_test.c
8245     Reimplemented adpcm_test_short and implemented adpcm_test_int and
8246     adpcm_test_double.
8247     Now have full testing of IMA ADPCM WAV file read, write and seek.
8248
8249 1999-06-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8250
8251     * src/wav_float.c
8252     Fixed function prototype for x86f2d_array () which was causing ocassional
8253     seg. faults on Sparc Solaris machines.
8254
8255 1999-06-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8256
8257     * src/aiff.c
8258     Fixed bug in __aiff_close where the length fields in the header were
8259     not being correctly calculated before writing.
8260
8261     * tests/write_read_test.c
8262     Modified to detect the above bug in WAV, AIFF and AU files.
8263
8264 1999-06-12    Erik de Castro Lopo     <erikd AT mega-nerd DOT com>
8265
8266     * Win32/*
8267     Added a contribution from Albert Faber to allow libsndfile to compile
8268     under Win32 systems. libsndfile will now be used as part of LAME the
8269     the MPEG 1 Layer 3 encoder (http://internet.roadrunner.com/~mt/mp3/).
8270
8271 1999-06-11    Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8272
8273     * configure.in
8274     Changed to reflect previous changes.
8275
8276     * src/wav_ima_adpcm.c
8277     Fixed incorrect calculation of bytespersec header field (IMA ADPCM only).
8278
8279     Fixed bug when writing from int or double data to IMA ADPCM file. Will need
8280     to write test code for this.
8281
8282     Fixed bug in __ima_write () whereby the length of the current block was
8283     calculated incorrectly. Thanks to Jongcheon Park for pointing this out.
8284
8285 1999-03-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8286
8287     * src/*.c
8288     Changed all read/write/lseek function calls to fread/fwrite/
8289     fseek/ftell and added error checking of return values from
8290     fread and fwrite in critical areas of the code.
8291
8292     * src/au.c
8293     Fixed incorrect datasize element in AU header on write.
8294
8295     * tests/error_test.c
8296     Add new test to check all error values have an associated error
8297     string. This will avoid embarrassing real world core dumps.
8298
8299 1999-03-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8300
8301     * src/wav.c src/aiff.c
8302     Added handling for unknown chunk markers in the file.
8303
8304 1999-03-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8305
8306     * src/sndfile.c
8307     Filled in missing error strings in SndfileErrors array. Missing entries
8308     can cause core dumps when calling sf_error-str (). Thanks to Sam
8309     <mrsam at-sign geocities.com> for finding this problem.
8310
8311 1999-03-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8312
8313     * src/wav_ima_adpcm.c
8314     Work on wav_ms_adpcm.c uncovered a bug in __ima_read () when reading
8315     stereo files. Caused by not adjusting offset into buffer of decoded
8316     samples for 2 channels. A similar bug existed in __ima_write ().
8317     Need a test for stereo ADPCM files.
8318
8319     * src/wav_ms_adpcm.c
8320     Decoder working correctly.
8321
8322 1999-03-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8323
8324     * configure.in Makefile.am
8325     Added --enable-justsrc configuration variable sent by Sam
8326     <mrsam at-sign geocities.com>.
8327
8328     * src/wav_ima_adpcm.c
8329     Fixed bug when reading beyond end of data section due to not
8330     checking pima->blockcount.
8331     This uncovered __ima_seek () bug due to pima->blockcount being set
8332     before calling __ima_init_block ().
8333
8334 1999-03-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8335
8336     * src/wav.c
8337     Started implementing MS ADPCM decoder.
8338     If file is WAVE_FORMAT_ADPCM and length of data chunk is odd, this
8339     encoder seems to add an extra byte. Why not just give an even data
8340     length?
8341
8342 1999-03-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8343
8344     * src/wav.c
8345     Split code out of wav.c to create wav_float.c and wav_ima_adpcm.c.
8346     This will make it easier to add and debug other kinds of WAV files
8347     in future.
8348
8349 1999-03-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8350
8351     * tests/
8352     Added adpcm_test.c which implements test functions for
8353     IMA ADPCM reading/writing/seeking etc.
8354
8355     * src/wav.c
8356     Fixed many bugs in IMA ADPCM encoder and decoder.
8357
8358 1999-03-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8359
8360     * src/wav.c
8361     Finished implementing IMA ADPCM encoder and decoder (what a bitch!).
8362
8363 1999-03-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8364
8365     * src/wav.c
8366     Started implementing IMA ADPCM decoder.
8367
8368 1999-03-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8369
8370     * src/sndfile.c
8371     Fixed bug where the sf_read_XXX functions were returning a
8372     incorrect read count when reading past end of file.
8373     Fixed bug in sf_seek () when seeking backwards from end of file.
8374
8375     * tests/read_seek_test.c
8376     Added multiple read test to short_test(), int_test () and
8377     double_test ().
8378     Added extra chunk to all test WAV files to test that reading
8379     stops at end of 'data' chunk.
8380
8381 1999-02-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8382
8383     * tests/write_read_test.c
8384     Added tests for little DEC endian AU files.
8385
8386     * src/au.c
8387     Add handling for DEC format little endian AU files.
8388
8389 1999-02-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8390
8391     * src/aiff.c src/au.c src/wav.c
8392     Add __psf_sprintf calls during header parsing.
8393
8394     * src/sndfile.c src/common.c
8395     Implement sf_header_info (sndfile.c) function and __psf_sprintf (common.c).
8396
8397     * tests/write_read_test.c
8398     Added tests for 8 bit PCM files (WAV, AIFF and AU).
8399
8400     * src/au.c src/aiff.c
8401     Add handling of 8 bit PCM data format.
8402
8403     * src/aiff.c
8404     On write, set blocksize in SSND chunk to zero like everybody else.
8405
8406 1999-02-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8407
8408     * src/pcm.c:
8409     Fixed bug in let2s_array (cptr was not being initialised).
8410
8411     * src/sndfile.c:
8412     Fixed bug in sf_read_raw and sf_write_raw. sf_seek should
8413     now work when using these functions.
8414
8415 1999-02-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8416
8417     * tests/write_read_test.c:
8418     Force test_buffer array to be double aligned. Sparc Solaris
8419     requires this.
8420
8421 1999-02-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8422
8423     * src/pcm.c:
8424     Fixed a bug which was causing errors in the reading
8425     and writing of 24 bit PCM files.
8426
8427     * doc/api.html
8428     Finished of preliminary documentaion.
8429
8430 1999-02-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
8431
8432     * src/aiff.c:
8433     Changed reading of 'COMM' chunk to avoid reading an int
8434     which overlaps an int (4 byte) boundary.
8435