pulling trunk
[ardour.git] / libs / libsndfile / ChangeLog
1 2006-04-29 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2
3     * tests/util.tpl
4     Add function testing function exit_if_true().
5
6     * tests/floating_point_test.tpl
7     Fix a problem where the test program was not exiting when the test failed.
8
9 2006-04-15 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
10
11     * src/sndfile.h.in src/sndfile.c src/common.h src/command.c
12     Implement new commands SFC_GET_SIGNAL_MAX and SFC_GET_MAX_ALL_CHANNELS.
13
14     * doc/commands.html
15     Document new commands. Other minor updates.
16
17     * tests/peak_chunk_test.c
18     Update tests for new commands.
19
20 2006-04-02 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
21
22     * tests/peak_chunk_test.c
23     Add test for RIFX and WAVEX files.
24     Try and confuse the PEAK chunk writing by enabling and disabling it.
25
26     * src/sndfile.c
27     Fix a bug where enabling and disabling PEAK chunk was screwing up.
28
29 2006-03-31 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
30
31     * src/sndfile.h.in
32     Add the block of 190 reserved bytes into this struct to allow for
33     future expansion.
34
35     * src/wav.c src/sndfile.c src/broadcast.c
36     Significant cleanup of broadcast wave stuff.
37
38     * examples/sndfile-info.c
39     Fix print message.
40
41     * tests/command_test.c tests/Makefile.am
42     Complete bext tests, hook test in test suite.
43
44 2006-03-30 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
45
46     * src/sndfile.h.in
47     Make coding_history field of SF_BROADCAST_INFO struct a char array instead
48     of a char pointer.
49
50     * src/sndfile.c src/common.h src/wav.c
51     Clean up knock on effects of above chnage.
52
53     * examples/sndfile-info.c
54     Add -b command line option to usage message.
55     Clean up output of broadcast wave info.
56
57     * src/wav.c
58     Ignore and skip the 'levl' chunk.
59
60 2006-03-26 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
61
62     * configure.ac
63     Fix handling of --enable and --disable configure args. Thanks to Diego
64     'Flameeyes' Petten� who sent the patch.
65
66 2006-03-22 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
67
68     * doc/win32.html
69     Make it really clear that although the MSVC++ cannot compile libsndfile,
70     the precompiled DLL can be used in C++ programs compiled with MSVC++.
71
72 2006-03-18 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
73
74     * src/aiff.c
75     Fix bug in writing of INST chunk in AIFF files.
76     Fix potential bug in writing MARK chunks.
77
78     * src/sndfile.c
79     Make sure the instrument chunk can only be written at the start of the file.
80
81     * tests/command_test.c
82     Add check of log buffer.
83
84     * tests/utils.tpl
85     Add usage of space character to psf_binheader_writef.
86
87 2006-03-17 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
88
89     * src/Makefile.am tests/Makefile.am
90     Remove --source-time argument from autogen command lines.
91
92     * src/broadcast.c
93     New file for EBU Broadcast chunk in WAV files.
94
95     * src/sndfile.c src/sndfile.h.in src/wav.c src/common.h
96     Add patch from Paul Davis implementing read/write of the BEXT chunk.
97
98 2006-03-16 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
99
100     * Win32/README-precompiled-dll.txt
101     New file descibing how to use the precompiled DLL.
102
103     * Win32/Makefile.am
104     Add Win32/README-precompiled-dll.txt to EXTRA_DIST files.
105
106     * configure.ac
107     Bump version to 1.0.15.
108
109 2006-03-11 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
110
111     * src/wav.c
112     On read, only add the endian flag if the file is big endian.
113
114     * src/ms_adpcm.c
115     Fixed writing of APDCM coeffs in RIFX files.
116
117     * tests/write_read_test.tpl tests/lossy_comp_test.c
118     Add tests for RIFX files.
119
120 2006-03-10 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
121
122     * Mingw-make-dist.sh
123     Bunch of improvements.
124
125     * doc/win32.html
126     Update MinGW program versions.
127
128 2006-03-09 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
129
130     * src/create_symbols_file.py
131     Fix the library name in created win32 DEF file. Add correct DLL name for
132     Cygwin DLL.
133
134     * Win32/Makefile.am tests/Makefile.am
135     Remove redundant files, add win32_ordinal_test to test suite.
136
137     * tests/win32_ordinal_test.c
138     Update to do test in cygsndfile-1.dll as well.
139
140     * doc/win32.html
141     Fix typo, mention that -mno-cygwin with the Cygwin compiler does not work.
142
143     * src/wav.c src/wav_w64.c src/sndfile.c src/sndfile.h.in
144     Apply large patch from Jesse Chappell which adds support for RIFX files.
145
146 2006-03-08 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
147
148     * Makefile.am
149     Add Mingw-make-dist.sh to the extra dist files.
150
151     * configure.ac
152     Fix setting SHLIB_VERSION_ARG for MinGW.
153
154     * tests/win32_ordinal_test.c
155     New test program to test that the win32 DLL ordinals agree with the DEF
156     file.
157
158 2006-03-04 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
159
160     * src/common.h
161     Add a static inline function to convert an int to a size_t. This will be
162     a compile to nothing on 32 bit CPUs and a sign extension on 64 bit CPUs.
163
164     * src/aiff.c src/avr.c src/common.c src/xi.c src/gsm610.c
165     Fix an ia64 problem where a varargs function was being passed an int in
166     some places and a size_t in other places.
167
168     * src/sd2.c
169     Add a workaround for situations where OSX seems to add an extra 0x52 bytes
170     to the start of the resource fork.
171
172 2006-02-19 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
173
174     * Mingw-make-dist.sh
175     Add a shell script to build the windows binary/source ZIP file.
176
177     * doc/index.html
178     Add download link for windows binary/source ZIP file. Add links for GPG
179     signatures.
180
181     * doc/win32.html
182     Remove info about building using microsoft compiler.
183
184     * configure.ac
185     Bump version to 1.0.14.
186
187 2006-02-11 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
188
189     * src/sd2.c
190     Improve logging of errors in resource fork parser.
191
192 2006-01-31 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
193
194     * Win32/Makefile.msvc
195     Replace au_g72x.* with g72x.*. Thanks to ussell Borogove.
196
197 2006-01-29 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
198
199     * src/common.c
200     Make sure return values are initialised header buffer is full.
201
202     * src/wav.c
203     Add workarounds for messed up WAV files.
204
205 2006-01-21 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
206
207     * Win32/config.h
208     Undef HAVE_INTTYPES_H for win32.
209
210     * tests/command_test.c
211     Don't exit on error in instrument test for XI files.
212
213     * configure.ac
214     Bump version to 1.0.13.
215
216     * doc/*.html NEWS README
217     Update version numbers.
218
219 2006-01-19 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
220
221     * src/xi.c
222     Start work on add read/write of instrument chunks.
223
224     * src/command_test.c
225     Add tests for XI instrument chunk.
226
227     * tests/largefile_test.c tests/Makefile.am
228     Add new test and hook it into the build system. This test will not be run
229     automatically because it requires 3 Gig of disk space and takes 3 minutes
230     to run.
231
232 2006-01-10 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
233
234     * examples/sndfile-play.c
235     Fix calculation of samples remaining in win32 code. Thanks Axel Roebel.
236
237     * src/common.h
238     Make sure length of header buffer can hold header plus strings. Thanks Axel
239     Roebel.
240
241 2006-01-09 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
242
243     * src/sndfile.h.in src/aiff.c src/wav.c
244     Apply a patch from John Fitch (Csound project).
245     Add detune field to SF_INSTRUMENT struct.
246     Add reading/writing instrument chunks to WAV files.
247
248     * tests/command_test.c
249     Update SF_INSTRUMENT tests.
250
251     * tests/Makefile.am
252     Hook instrument tests into test suite.
253
254 2006-01-05 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
255
256     * configure.ac
257     Check for <inttypes.h> because some broken systems (like Solaris) don't have
258     <stdint.h> which is the 1999 ISO C standard file containing int64_t.
259
260     * src/sfendian.h src/common.h
261     Use <inttypes.h> if <stdint.h> is not available.
262
263 2005-12-30 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
264
265     * tests/peak_chunk_test.c
266     Extend and clean up tests.
267
268     * src/sndfile.c
269     Fix a bug that prevented the turning off of PEAK chunks.
270
271 2005-12-29 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
272
273     * tests/error_test.c
274     Make the test distclean correct.
275
276     * src/file_io.c
277     Fix an SD2 MacOSX bug (reported by vince schwarzinger).
278
279 2005-12-28 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
280
281     * src/aiff.c tests/command_test.c
282     Apply a big patch from John ffitch (Csound project) to add reading and
283     writing of instrument chunks to AIFF files. Also update the test.
284
285 2005-12-10 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
286
287     * tests/aiff_rw_test.c tests/virtual_io_test.c tests/utils.tpl
288     Move test function dump_data_to_file() to utils.tpl.
289
290     * tests/error_test.c tests/Makefile.am
291     Updates, including a new test to test that sf_error() returns a valid error
292     number.
293
294 2005-12-07 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
295
296     * examples/list_formats.c
297     Make sure the SF_INFO struct is memset to all zero before being used.
298     Thanks to Stephen F. Booth.
299
300     * src/sndfile.c
301     Make the return value of sf_error() match the API documentation.
302
303 2005-11-19 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
304
305     * examples/sndfile-convert.c
306     Allow conversion to raw gsm610.
307
308     * src/common.h src/sndfile.c src/au.c
309     Remove au_nh_open() and all references to it (wasn't working anyway).
310
311     * tests/headerless_test.c
312     Add new test for file extension based detection.
313
314     * src/sndfile.c
315     Rejig file extension based file type detection.
316
317 2005-11-16 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
318
319     * src/sndfile.c
320     Add "gsm" as a recognised file extension when no magic number can be found.
321
322     * tests/lossy_comp_test.c tests/Makefile.am
323     Test headerless GSM610.
324
325 2005-11-13 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
326
327     * doc/api.html
328     Fix a minor typo and a minor error. Thanks Christoph Kobe and John Pavel.
329
330 2005-10-30 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
331
332     * src/wav_w64.c
333     Add more reporting of 'fmt ' chunk for G721 encoded files.
334
335     * src/wav.c
336     Gernerate a more correct 20 byte 'fmt ' chunk rather than a 16 byte one.
337
338 2005-10-29 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
339
340     * src/G72x/g72x.[ch]
341     Minor cleanup of interface.
342
343 2005-10-28 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
344
345     * src/ogg.c
346     Removed the horribly broken and non-functional OGG implementation when
347     --enable-experimental was enabled. When OGG does finally work it will be
348     merged.
349
350     * src/caf.c
351     Fix a memory leak.
352
353 2005-10-27 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
354
355     * src/g72x.c src/G72x/*.(c|h) src/common.h src/sndfile.c src/wav.c src/au.c
356     Add support for G721 encoded WAV files.
357
358     * doc/index.html
359     Update support matrix.
360
361     * tests/lossy_comp_test.c
362     For file formats that support it, add string data after the audio data and
363     make sure it isn't treated as audio data on read.
364
365     * src/gsm610.c
366     Add code to ensure that the container close function (ie for WAV files) gets
367     called after the codec's close function. This allows GSM610 encoded WAV files
368     to have string data following the audio data.
369     Add an AIFF specific check on psf->datalength.
370
371     * src/wav.c
372     Simplify wav_close function.
373
374     * src/aiff.c
375     Make sure the tailer data gets written at an even file offset. Pad if
376     necessary.
377
378     * src/common.h
379     Replace the close function pointer in SF_PRIVATE with separate functions
380     codec_close and container_close. The former is always called first.
381
382     *  src/*.c
383     Fix knock on effects of above.
384
385 2005-10-26 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
386
387     * examples/sndfile-info.c
388     Complete dumping SF_INSTRUMENT data.
389
390     * src/dwvw.c src/ima_adpcm.c src/gsm610.c src/ms_adpcm.c
391     Add extra checks in *_init function.
392
393     * tests/lossy_comp_test.c
394     Add a string comment to the end of the files to make sure that the decoder
395     doesn't decode beyond the end of the audio data section.
396
397 2005-10-25 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
398
399     * examples/sndfile-info.c
400     Minor code cleanup.
401     Start work on dumping SF_INSTRUMENT data.
402
403 2005-10-23 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
404
405     * src/sndfile.h.in src/common.h src/common.c
406     Update definition of SF_INSTRUMENT struct and create a function to allocate
407     and initialize the struct (input from David Viens).
408     Clean up definition of SF_INSTRUMENT struct.
409
410     * src/wav.c src/wav_w64.c
411     Add support for Ambisoncs B WAVEX files (David Viens).
412
413     * src/aiff.c src/wav.c src/wav_w64.c
414     Start work on reading/writing the SF_INSTRUMENT data.
415
416     * src/sndfile.c
417     Add code to get and set SF_INSTRUMENT data.
418
419     * tests/command_test.* tests/Makefile.am
420     Add test for set and getof SF_INSTRUMENT data.
421     The file command_test.c is no longer autogen generated.
422
423 2005-10-15 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
424
425     * src/gsm610.c
426     Minor cleanup.
427
428 2005-10-14 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
429
430     * tests/lossy_comp_test.c
431     Minor cleanup.
432
433 2005-10-13 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
434
435     * src/*.c
436     Ensure sfconfig.h is included before any other header file.
437
438     * src/file_io.c
439     Add comments documenting the three sections of the file.
440
441     * src/gsm610.c
442     Make sure SF_FORMAT_WAVEX are handled correctly.
443
444 2005-10-07 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
445
446     * configure.ac
447     Add options to allow disabling of FLAC and ALSA. Suggested by Ben Greear.
448
449 2005-09-30 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
450
451     * tests/locale_test.c
452     Modify the way the unicode strings were encoded so that older compilers
453     do not complain. Thanks Axel Roebel.
454
455     * configure.ac
456     Bump the version to 1.0.12 for release.
457
458     * NEWS README Win32/config.h doc/(FAQ|index.html|command|api).html
459     Update version numbers.
460
461 2005-09-26 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
462
463     * src/flac.c
464     Fix valgrind error and minor cleanup.
465
466 2005-09-25 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
467
468     * src/(au|paf|aiff|w64|wav|svx).c
469     Make sure structs are initialised.
470
471 2005-09-24 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
472
473     * configure.ac
474     Make -Wdeclaration-after-statement work with --enable-gcc-werror configure
475     option.
476     Add -std=gnu99 (C99 plus posix style stuff like gmtime_r) to CFLAGS if the
477     compiler supports it.
478
479 2005-09-23 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
480
481     * configure.ac acinclude.m4
482     Add -Wdeclaration-after-statement to CFLAGS if the compilers supports it.
483
484 2005-09-22 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
485
486     * tests/util.(tpl|def)
487     Make the test_write_*_or_die() functions const safe.
488
489 2005-09-21 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
490
491     * src/nist.c
492     Make sure the data offset is read from the file header. Thanks to
493     David A. van Leeuwen for a patch.
494
495 2005-09-20 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
496
497     * configure.ac src/sfconfig.h
498     Check for <locale.h> and the function setlocale().
499     Set config variables to zero if not found.
500
501     * tests/locale_test.c tests/Makefile.am
502     Add new test program and hook into build/test system.
503
504 2005-09-18 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
505
506     * src/common.h src/file_io.c
507     On windows, use windows specific types for file handles.
508     Add functions psf_init_files() and psf_use_rsrc().
509
510     * src/sd2.c
511     Make resource fork handling independant of file desciptor/handles.
512
513     * src/sndfile.c src/test_file_io.c
514     Fix knock on effects.
515
516 2005-09-06 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
517
518     * src/float_cast.h
519     The lrint and lrintf implementations in Cygwin are both buggy and slow.
520     Add replacements which were pulled from the Public Domain MinGW math.h
521     header file.
522
523 2005-09-05 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
524
525     * tests/(lossy_comp_test|virtual_io_test).c
526     More Valgrind fixups.
527
528     * configure.ac
529     Simplify and correct configuring for Cygwin.
530
531     * Win32/config.h Win32/sndfile.h Win32/Makefile.msvc
532     Update build for MSVC.
533
534 2005-09-04 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
535
536     * tests/lossy_comp_test.c
537     Make sure to close SNDFILE when exiting test when file format is not seekable.
538
539     * tests/(aiff_rw_test|virtual_io_test).c
540     Do a few valgrind fix ups.
541
542 2005-09-03 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
543
544     * src/float32.c src/double64.c
545     Replace floating point equality comparisons with greater/less comparisons.
546     Found by John Pavel using the Intel compiler.
547
548     * src/sfconfig.h
549     New file to clean up issues surrounding autoconf generated preprocessor
550     symbols.
551
552     * src/*.(c|h) tests/*.(c|tpl) examples/*.c
553     Fixed a bunch of other stuff found by John Pavel using the Intel compiler.
554
555     * src/file_io.c
556     Remove Mac OS9 Metrowerks compiler specific hacks.
557
558 2005-08-31 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
559
560     * src/w64.c
561     Cast integer literal to sf_count_t in call to psf_binheader_writef() to
562     prevent Valgrind error.
563
564 2005-08-30 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
565
566     * doc/command.html
567     Improve documentation of SF_GET_FORMAT_SUBTYPE.
568
569 2005-08-26 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
570
571     * examples/sndfile-convert.c
572     Allow files to be converted to SD2 format.
573
574     * src/sd2.c
575     Fix a bug in reading and writing of SD2 files on little endian CPUs.
576     Thanks to Matthew Willis for finding this.
577
578 2005-08-25 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
579
580     * doc/api.html
581     Update Note2 to point to SFC_SET_SCALE_FLOAT_INT_READ.
582
583 2005-08-16 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
584
585     * configure.ac
586     Use $host_os instead of $target_os (thanks to Mo De Jong).
587
588 2005-08-15 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
589
590     * src/Makefile.am
591     Apply a patch from Mo DeJong to allow building outside of the source dir.
592
593     * src/file_io.c
594     Fix psf_fsync() for win32.
595
596     * src/wav.c src/wav_w64.(c|h)
597     Move some code from wav.c to wav_w64.c to improve the log output of files of
598     type WAVE_FORMAT_EXTENSIBLE.
599
600 2005-08-10 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
601
602     * src/create_symbols_file.py
603     Make sure sf_write_fsync is an exported symbol.
604
605     * examples/sndfile-convert.c
606     Add support for writing VOX adpcm files.
607
608 2005-07-31 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
609
610     * doc/api.html
611     Document the new function sf_write_sync().
612
613     * doc/FAQ.html
614     Do you plan to support XYZ codec.
615
616 2005-07-28 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
617
618     * src/sndfile.h.in src/sndfile.c
619     Add function sf_write_sync() to the API.
620
621     * src/common.h src/file_io.c
622     Low level implementation (win32 not done yet).
623
624     * tests/write_read_test.tpl
625     Use the new function in the tests.
626
627 2005-07-24 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
628
629     * src/common.h src/double64.c src/float32.c src/sndfile.c
630     Change the way PEAK chunk info is stored. Peaks now stored as an sf_count_t
631     for position and a double as the value.
632
633     * src/aiff.c src/caf.c src/wav.c
634     Fix knock on effects of above changes.
635
636     * src/caf.c
637     Implement 'peak' chunk for file wuth data in SF_FORMAT_FLOAT or
638     SF_FORMAT_DOUBLE format.
639
640 2005-07-23 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
641
642     * src/nist.c
643     Fix a bug where a variable was being used without being initialized.
644
645     * src/flac.c
646     Add extra debug in sf_flac_meta_callback.
647     Make a bunch of private functions static.
648
649     * src/aiff.c src/wav.c
650     Fix allocation for PEAK_CHUNK (bug found using valgrind).
651
652 2005-07-21 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
653
654     * src/common.h
655     Move the peak_loc field of SF_PRIVATE to the PEAK_CHUNK struct.
656     Remove had_peak field of SF_PRIVATE, use pchunk != NULL instead.
657     Rename PEAK_CHUNK and PEAK_POS to PEAK_CHUNK_32 and PEAK_POS_32.
658
659     * src/aiff.c src/caf.c src/wav.c src/float32.c src/double64.c
660     Fix knock on effects from above.
661
662 2005-07-19 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
663
664     * src/wav.c
665     Prevent files with unknown chunks from being opened read/write.
666
667 2005-07-14 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
668
669     * src/flac.c
670     Do not use psf->end_of_file because it never gets set to anything.
671
672     * src/common.h
673     Remove unused SF_PRIVATE field end_of_file.
674
675 2005-07-12 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
676
677     * src/common.c
678     Change the 'S' format specifier of psf_binheader_writef() to write AIFF
679     style strings (no terminating character).
680
681     * src/aiff.c
682     Move to new (correct) AIFF string style. Thanks to Axel Roebel for being
683     so persistent on this issue.
684
685 2005-07-11 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
686
687     * src/sndfile.c
688     Allow SFE_UNSUPPORTED_FORMAT as an error from sf_open().
689
690     * doc/api.html doc/command.html
691     Documentation updates (thanks to Kyroz for promoting these updates).
692
693     * src/mat5.c
694     Modify the way the header is written.
695
696 2005-07-10 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
697
698     * src/caf.c
699     Add a 'free' chunk to the written file so that the audio data starts at
700     an offset of 0x1000.
701
702     * src/sndfile.c
703     Allow SFE_UNSUPPORTED_FORMAT as an error from sf_open().
704
705 2005-07-09 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
706
707     * src/caf.c src/sndfile.c
708     Add support for signed 8 bit integers.
709
710     * tests/write_read_test.tpl
711     Add test for signed 8 bit integers in CAF files.
712
713     * doc/index.html
714     Update matrix for signed 8 bit integers in CAF files.
715
716 2005-07-08 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
717
718     * src/sndfile.c
719     Update sf_check_format() to support CAF.
720
721     * examples/sndfile-convert.c
722     Add support for ".caf" file extension.
723
724     * doc/index.html
725     Add Apple CAF to the support matrix.
726
727     * src/caf.c
728     Add file write support.
729
730     * src/common.c
731     Fix printing of Frames.
732
733     * tests/Makefile.am tests/write_read_test.tpl tests/lossy_comp_test.c
734         tests/header_test.tpl misc_test.c
735     Add tests for CAF files.
736
737 2005-07-07 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
738
739     * doc/FAQ.html
740     Fix Q/A about reading/writing memory buffers.
741
742     * src/caf.c
743     Bunch of work to support reading of CAF files.
744
745 2005-07-04 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
746
747     * src/(aiff|ima_adpcm|mat4|mat5|ms_adpcm).c examples/sndfile-play.c
748     Fix sign conversion errors reported by gcc-4.0.
749
750     * src/caf.c
751     New file for Apple's Core Audio File format.
752
753     * src/sndfile.c src/common.h src/sndfile.h.in src/Makefile.am
754     Hook new file into build system.
755
756 2005-06-21 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
757
758     * src_wav_w64.c
759     Fix handling of stupidly large 'fmt ' chunks. Thanks to Vadim Berezniker
760     for supplying an example file.
761
762     * src/common.h src/sndfile.c
763     Remove redundant error code SFE_WAV_FMT_TOO_BIG.
764
765 2005-06-20 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
766
767     * src/sndfile.h.in src/common.h src/sndfile.c
768     Add public error value SF_ERR_MALFORMED_FILE.
769
770     * src/sndfile.c
771     When parsing a file header fails and we don't have a system error, then set
772     the error number to SF_ERR_MALFORMED_FILE (suggested by Kyroz).
773
774     * configure.ac
775     Allow sqlite support to be disabled in configure script.
776
777     * regtest/database.c regtest/sndfile-regtest.c
778     Fix compiling when sqlite is missing.
779
780 2005-06-11 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
781
782     * src/file_io.c
783     Fix psf_is_pipe() and return value of psf_fread() when using virtual i/o.
784
785     * src/sndfile.c
786     Fix VALIDATE_AND_ASSIGN_PSF macro for virtual i/o.
787
788     * tests/virtual_io_test.c
789     Fill in skeleton test program.
790
791     * tests/Makefile.am
792     Move virtual i/o tests to end of tests with stdio/pipe tests.
793
794     * src/(sndfile.h.in|file_io.c|common.h|sndfile.c) tests/virtual_io_test.c
795     Rename some of the virtual i/o functions and data types.
796
797 2005-06-10 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
798
799     * src/sndfile.c
800     Fix the return values of sf_commands : SFC_SET_NORM_DOUBLE,
801     SFC_SET_NORM_FLOAT, SFC_GET_LIB_VERSION and SFC_GET_LOG_INFO. Thanks to
802     Kyroz for pointing out these errors.
803
804     * doc/command.html
805     Correct documented return values for SFC_SET_NORM_DOUBLE and
806     SFC_SET_NORM_FLOAT. Thanks to Kyroz again.
807
808 2005-05-17 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
809
810     * regtest/*
811     Add new files for sndfile-regtest program.
812
813     * configure.ac Makefile.am
814     Hook regetest into build.
815
816     * src/wav.c src/common.c
817     Fix a regression where long ICMT chunks were causing the WAV parser
818     to exit.
819
820 2005-05-15 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
821
822     * libsndfile.spec.in
823     Add html docs to the files section as suggested by Karsten Jeppesen.
824
825     * src/aiff.c
826     Fix parsing of odd length ANNO chunks.
827
828 2005-05-13 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
829
830     * src/common.h
831     Change the include guard to prevent clashes with other code.
832
833 2005-05-12 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
834
835     * examples/sndfile-play.c
836     Improve error handling in code for playback under Linux/ALSA.
837
838 2005-05-10 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
839
840     * src/ircam.c
841     Fix writing of IRCAM files on big endian systems (thanks to Axel Roebel).
842
843     * src/wav.c
844     Add workaround for files created by the Peak audio editor on Mac which can
845     produce files with very short LIST chunks (thanks to Jonathan Segel who
846     supplied the file).
847
848 2005-04-30 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
849
850     * src/aiff.c
851     Apply a patch From David Viens to make the parsing of basc chunks more
852     robust.
853
854     * src/wav.c
855     Another patch from David Viens to write correct wavex channel masks for
856     the most common channel configurations.
857
858 2005-04-08 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
859
860     * src/command.c
861     Only allow FLAC in the format arrays if FLAC is enabled. Thanks to
862     Leigh Smith.
863
864 2005-03-09 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
865
866     * src/common.h
867     Add a directory field for storing the file directory to the SF_PRIVATE
868     struct.
869
870     * src/sndfile.c
871     Grab the directory name when copying the file path.
872
873     * src/file_io.c
874     Cleanup psf_open_rsrc() and also check for resource fork in
875     .AppleDouble/filename.
876
877 2005-03-01 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
878
879     * src/svx.c
880     Fix a bug in the printing of the channel count. Bug reported by Michael
881     Schwendt. Thanks.
882
883 2005-01-26 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
884
885     * src/paf.c
886     Fix a seek bug for 24 bit PAF files.
887
888     * tests/write_read_test.tpl
889     Update write_read_test to trigger the previously hidden PAF seek bug.
890
891 2005-01-25 Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
892
893     * src/aiff.c src/w64.c src/wav.c
894     Do not return a header parse error when the log buffer overflows.
895     Continuing parsing works even on files where the log buffer does overflow.
896     This avoids a bug on some weirdo WAV (and other) files.
897
898     * src/common.h src/sndfile.c
899     Remove SFE_LOG_OVERRIN error and its associated error message.
900
901     * src/file_io.c
902     Fix a rsrc fork problem on MacOSX.
903
904 2004-12-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
905
906     * src/sndfile-play.c
907     In the ALSA output code, added call to snd_pcm_drain() just before
908     snd_pcm_close() as suggested by Thomas Kaeding.
909     In the OSS output code, added two ioctls (SNDCTL_DSP_POST and
910     SNDCTL_DSP_SYNC) just before the close of the audio device.
911
912     * tests/virtual_io_test.c tests/Makefile.am
913     Add a new test program (currently empty) and add it to the build.
914
915 2004-12-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
916
917     * src/sndfile.h.in src/sndfile.h src/common.h src/file_io.c
918       src/create_symbols_file.py
919     Apply patch from Steve Baker which is the beginnings of a virtual
920     I/O interface.
921
922 2004-12-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
923
924     * src/*.c src/sndfile.h.in
925     Const-ify the write path throughout the library.
926
927 2004-12-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
928
929     * doc/development.html
930     Minor improvements.
931
932 2004-11-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
933
934     * doc/bugs.html
935     Minor improvements.
936
937 2004-11-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
938
939     * src/aiff.c
940     Add workaround for Logic Platinum AIFF files with broken COMT chunks.
941
942 2004-11-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
943
944     * doc/FAQ.html
945     Remove some ambiguities in the SD2 FAQ answer.
946
947 2004-11-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
948
949     * Win32/sndfile.h Win32/config.h MacOS9/sndfile.h MacOS9/config.h
950     Updates from autoconfig versions.
951
952 2004-11-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
953
954     * src/aiff.c
955     Fix parsing of COMT chunks. Store SF_STR_COMMENT data in ANNO chunks
956     instead of COMT chunk.
957
958 2004-11-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
959
960     * src/file_io.c src/common.h
961     Change the ptr argument to psf_write() from "void*" to a "const void*".
962     Thanks to Tobias Gehrig for suggesting this.
963
964 2004-10-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
965
966     * src/file_io.c src/common.h
967     Add functions psf_close_rsrc() and read length of resourse fork into
968     rsrclength field of SF_PRIVATE.
969
970     * src/sd2.c
971     Make sure resource fork gets closed.
972
973     * tests/util.tpl
974     Add functions to check for file descriptor leakage.
975
976     * src/write_read_test.tpl
977     Use the file descriptor leak checks.
978
979     * src/sndfile.h.in
980     Add SFC_GET_LOOP_INFO and SF_LOOP_INFO struct.
981
982     * src/common.h
983     Add SF_LOOP_INFO pointer to SF_PRIVATE.
984
985     * src/wav.c src/aiff.c
986     Improve and add parsing of 'ACID' and 'basc' chunks, filling in
987     SF_LOOP_INFO data in SF_PRIVATE.
988
989 2004-10-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
990
991     * src/sd2.c
992     Further cleanup: remove printfs, change snprintf to LSF_SNPRINTF.
993
994     * Win32/config.h Win32/sndfile.h
995     Updates.
996
997     * tests/util.tpl
998     Add win32 macro for snprintf.
999
1000 2004-10-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1001
1002     * src/sfendian.h
1003     Add macros : H2BE_SHORT, H2BE_INT, H2LE_SHORT and H2LE_INT.
1004
1005     * src/sd2.c
1006     Use macros to make sure writing SD2 files on little endian machines works
1007     correctly.
1008
1009     * tests/util.tpl
1010     Add a delete_file() function which also deletes the resource fork of SD2
1011     files.
1012
1013     * tests/write_read_test.tpl
1014     Use delete_file() so that "make distcheck" works.
1015
1016 2004-10-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1017
1018     * src/sndfile.c src/file_io.c
1019     Move resource filename construction and testing to psf_open_rsrc().
1020
1021     * src/common.h src/sndfile.c
1022     Add error SFE_SD2_FD_DISALLOWED.
1023
1024     * tests/util.tpl tests/*.(c|tpl)
1025     Add and allow_fd parameter to test_open_file_or_die() so that use of
1026     sf_open_fd() can be avoided when opening SD2 files.
1027
1028 2004-10-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1029
1030     * src/wav.c
1031     Update ACID chunk parsing.
1032
1033     * src/sd2.c
1034     More fixes for files with large resource forks.
1035
1036 2004-10-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1037
1038     * src/common.h src/sndfile.c
1039     Add error numbers and messages for sd2 files.
1040
1041     * src/sd2.c
1042     Reading of sd2 (resource fork version) now seems to be working.
1043
1044 2004-10-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1045
1046     * src/file_io.h
1047     Update file_io.c to include win32 psf_rsrc_open().
1048
1049     * tests/floating_point_test.tpl
1050     Remove use of __func__ in test programs (MSVC++ doesn't grok this).
1051
1052     * Win32/(config|sndfile).h MacOS9/(config|sndfile).h
1053     Updates.
1054
1055 2004-10-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1056
1057     * src/sfendian.h
1058     Fix endswap_int64_t_(array|copy).
1059
1060     * src/test_endswap.(tpl|def)
1061     Add tests for above and inprove all tests.
1062
1063 2004-10-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1064
1065     * src/sfendian.h
1066     Improve type safety, add endswap_double_array().
1067
1068     * src/double64.c
1069     Use endswap_double_array() instead of endswap_long_array().
1070
1071     * src/test_endswap.(tpl|def) src/Makefile.am
1072     Add preliminary endswap tests and hook into build system.
1073
1074 2004-10-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1075
1076     * src/configure.ac src/makefile.am
1077     Finally fix the bulding of DLLs on Win32/MinGW.
1078
1079     * tests/makefile.am
1080     Fix running of tests on Win32/MinGW.
1081
1082 2004-10-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1083
1084     * src/sndfile.h.in src/sndfile.c tests/floating_point_test.tpl
1085     Rename SFC_SET_FLOAT_INT_MULTIPLIER to SFC_SET_SCALE_FLOAT_INT_READ.
1086
1087     * doc/command.html
1088     Document SFC_SET_SCALE_FLOAT_INT_READ.
1089
1090 2004-09-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1091
1092     * tests/floating_point_test.(tpl|def)
1093     Derived from floating_point_test.c.
1094     Add (float|double)_(short|int)_test functions.
1095
1096     * tests/util.(tpl|def)
1097     Make separate float and double versions of gen_windowed_sine().
1098
1099     * tests/write_read_test.tpl
1100     Fix after changes to gen_windowed_sine().
1101
1102     * src/(float32|double64).c
1103     Implement SFC_SET_FLOAT_INT_MULTIPPLIER.
1104
1105 2004-09-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1106
1107     * acinclude.m4
1108     Fix warnings from automake 1.8 and later.
1109
1110     * examples/sndfile-info.c
1111     Add a "fflush (stdout)" after printing Win32 message.
1112
1113 2004-09-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1114
1115     * Win32/Makefile.mingw.in
1116     Add a "make install" target.
1117
1118 2004-09-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1119
1120     * src/sndfile.h.in src/common.h src/sndfile.c src/command.c
1121     Start work on adding command SFC_SET_FLOAT_INT_MULTIPLIER.
1122
1123 2004-09-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1124
1125     * examples/sndfile-convert.c
1126     Fix a bug converting stereo integer PCM files to float.
1127
1128 2004-09-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1129
1130     * examples/sndfile-play.c
1131     Appy patch from Conrad Parker to make Mac OSX error messages more
1132     consistent and informative.
1133
1134     * doc/api.html
1135     Fix a HTML HREF which was wrong.
1136
1137     * doc/win32.html
1138     Add information about when nmake fails.
1139
1140 2004-09-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1141
1142     * examples/sndfile-play.c
1143     Another patch from Denis Cote to prevent race conditions.
1144
1145 2004-09-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1146
1147     * src/common.h src/ms_adpcm.c src/ima_adpcm.c
1148     Fix alternative to ISO standard flexible struct array feature for broken
1149     compilers.
1150
1151 2004-08-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1152
1153     * src/common.h src/string.c src/sndfile.c
1154     Make sf_set_string() return an error if trying to set a string when in
1155     read mode.
1156
1157 2004-08-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1158
1159     * src/common.h
1160     Change the unnamed union into a named union so gcc-2.95 will compile it.
1161
1162     * src/*.c
1163     Fixes to allow for the above change.
1164
1165 2004-08-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1166
1167     * examples/sndfile-play.c
1168     Fixes for Win32. Thanks to Denis Cote.
1169
1170     * Win32/Win32/Makefile.(msvc|mingw.in)
1171     Fix build system after removal of sfendian.h.
1172     Build sndfile-convert.
1173
1174     * src/Makefile.am
1175     Remove sfendian.c from dependancies.
1176
1177 2004-08-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1178
1179     * src/sndfile.h.in
1180     Fix typo in comments (thanks Tommi Sakari Uimonen).
1181
1182 2004-07-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1183
1184     * tests/(a|u)law_test.c
1185     Minor cleanup.
1186
1187 2004-07-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1188
1189     * src/(pcm|float|double64|ulaw|alaw|xi).c
1190     Optimise read/write loops by removing a redundant variable.
1191
1192 2004-07-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1193
1194     * src/file_io.c
1195     Remove call to fsync() in psf_close().
1196
1197 2004-07-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1198
1199     * src/pcm.c
1200     Inline x2y_array() functions where possible.
1201
1202     * configure.ac
1203     Detect presence of type int64_t.
1204
1205     * src/sfendian.c src/sfendian.h
1206     Move functions in the first file to the sfendian.h as static inline
1207     functions.
1208     Improve endswap_long_*() where possible.
1209
1210 2004-07-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1211
1212     * src/pcm.c
1213     When converting from unsigned char to float or double, subtract 128 before
1214     converting to float/double rather than after to save a floating point
1215     operation as suggested by Stefan Briesenick.
1216
1217     * src/(pcm|sfendian|alaw|ulaw|double64|float32).c
1218     Optimize inner loops by changing the loop counting slightly as suggested
1219     by Stefan Briesenick.
1220
1221     * configure.ac
1222     Detect presence of <byteswap.h>.
1223
1224     * src/sfendian.h
1225     Use <byteswap.h> if present as suggested by Stefan Briesenick.
1226
1227     * src/pcm.c
1228     Update bytewapping.
1229
1230 2004-07-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1231
1232     * src/common.h src/*.c
1233     Change the psf->buffer field of SF_PRIVATE into a more type safe union with
1234     double, float, int etc elements.
1235
1236 2004-06-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1237
1238     * examples/sndfile-play.c
1239     Merge slightly modifed patch from Stanko Juzbasic which allows playback of
1240     mono files on MacOSX.
1241
1242 2004-06-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1243
1244     * examples/sndfile-convert.c
1245     Move copy_metadata() after the second sf_open().
1246
1247 2004-06-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1248
1249     * examples/sndfile-convert.c
1250     Fix a bug which caused the program to go into an infinite loop if the source
1251     file has no meta-data. Thanks to Ron Parker for reporting this.
1252
1253     * src/sndfile.h.in
1254     Add SF_STR_FIRST and SF_STR_LAST to allow enumeration of string types.
1255
1256     * Win32/sndfile.h MacOS9/sndfile.h
1257     Update these as per the above file.
1258
1259 2004-06-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1260
1261     * configure.ac src/common.h src/ogg.c src/sndfile.c src/sndfile.h.in
1262       src/Makefile.am
1263     Apply large patch from Conrad Parker implementing Ogg Vorbis, Ogg Speex and
1264     Annodex support via liboggz and libfishsound. Thanks Conrad.
1265
1266 2004-06-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1267
1268     * src/avr.c src/ircam.c src/nist.c src/paf.c src/xi.c
1269     Add cast to size_t for some parameters passed to psf_binheader_writef. This
1270     is Debian bug number 253490. Thanks to Anand Kumria and Andreas Jochens.
1271
1272     * src/w64.c
1273     Found and fixed a bug resulting from use of size_t when writing W64 'fmt '
1274     chunk.
1275
1276 2004-06-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1277
1278     * configure.ac
1279     Bump version to 1.0.10 ready for release.
1280
1281     * Makefile.am
1282     Remove redundant files (check_libsndfile.py libsndfile_version_convert.py)
1283     from distribution tarball.
1284
1285     * tests/header_test.tpl
1286     Fix uninitialised variable.
1287
1288     * src/GSM610/short_term.c
1289     Fix compiler warning on MSVC++.
1290
1291 2004-05-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1292
1293     * src/wav.c
1294     Improve record keeping of chunks seen and return an error if a file with
1295     unusual chunks is opened in mode SFM_RDWR.
1296
1297     * src/mmreg.h
1298     This file not needed so remove it.
1299
1300 2004-05-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1301
1302     * tests/header_test.tpl
1303     Add extra_header_test().
1304
1305     * src/common.h src/sndfile.c
1306     Add SFE_RDWR_BAD_HEADER error number and string.
1307
1308 2004-05-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1309
1310     * tests/utils.tpl tests/*.c tests/*.tpl
1311     Add a line number argument to check_log_buffer_or_die() and update all
1312     files that use that function.
1313
1314     * tests/header_test.tpl
1315     Modify/update tests for files opened SFM_RDWR and SFC_UPDATE_HEADER_AUTO.
1316
1317     * src/aiff.c src/wav.c
1318     Fix another bug in AIFF and WAV files opened in SFM_RDWR and using
1319     SFC_UPDATE_HEADER_AUTO.
1320
1321     * src/test_file_io.c
1322     Add a test for psf_ftruncate() function.
1323
1324 2004-05-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1325
1326     * src/sndfile.c
1327     Fix another  weird corner case bug found by Martin Rumori. Thanks.
1328
1329     * tests/header_test.(tpl|def)
1330     Two new files to test for the absence of the above bug and include tests
1331     moved from tests/misc_test.c.
1332
1333     * tests/Makefile.am
1334     Hook new tests into build/test system.
1335
1336     * tests/misc_test.c
1337     Remove update_header_test() which has been moved to the new files above.
1338
1339 2004-05-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1340
1341     * src/aiff.c
1342     Fixed a bug reported by Martin Rumori on the LAD list. If a file created
1343     with a format of SF_FORMAT_FLOAT and then closed before any data is written
1344     to it, the header can get screwed up (PEAK chunk gets overwritten).
1345
1346     * tests/write_read_test.tpl
1347     Add a test (empty_file_test) for the above bug.
1348
1349 2004-05-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1350
1351     * Win32/Makefile.mingw.in
1352     Added a Makefile for MinGW (needs to be processed by configure).
1353
1354     * src/mmsystem.h src/mmreg.h
1355     Add files from the Wine project (under the LGPL) to allow build of
1356     sndfile-play.exe under MinGW.
1357
1358 2004-05-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1359
1360     * src/GSM610/gsm610_priv.h
1361     Replace ugly macros with inline functions.
1362
1363     * src/GSM610/*.c
1364     Remove temporary variables used by macros and other minor fixes required by
1365     above change.
1366
1367 2004-05-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1368
1369     * tests/pipe_test.tpl tests/stdio_test.c Win32/Makefile.msvc
1370     Make sure these programs compile (even though they do nothing) on Win32
1371     and add them to the "make check" target.
1372
1373     * src/sfendian.h
1374     Fix warning on Sparc CPU and code cleanup.
1375
1376 2004-05-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1377
1378     * src/file_io.c
1379     Fix warning messages when compiling under MinGW.
1380
1381 2004-05-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1382
1383     * configure.ac
1384     Set HAVE_FLEXIBLE_ARRAY in src/config.h depending on whether the compiler
1385     accepts the flexible array struct member as per 1999 ISO C standard.
1386
1387     * src/common.h src/ima_adpcm.c src/paf.c src/ms_adpcm.c
1388     Added ugly #if HAVE_FLEXIBLE_ARRAY and provided a non-standards compliant
1389     hack for non 1999 ISO C compliant compilers.
1390
1391 2004-04-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1392
1393     * src/strings.c
1394     If adding an SF_STR_SOFTWARE string, only append libsndfile-X.Y.Z if the
1395     string does not already have libsndfile in the string. Thanks to Conrad
1396     Parker.
1397
1398     * tests/string_test.c
1399     Add test to verify the above.
1400
1401     * examples/sndfile-convert.c
1402     Add ability to transcode meta data as well (Conrad Parker).
1403
1404 2004-04-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1405
1406     * doc/command.html
1407     Fix minor error. Thanks to Simon Burton.
1408
1409     * doc/win32.html
1410     Started adding instructions for compiling libsndfile under MinGW.
1411
1412     * configure.ac
1413     Add --enable-bow-docs to enable black text on a white background HTML docs.
1414
1415     * doc/libsndfile.css.in
1416     This is now a template file for configure which sets the foreground and
1417     background colours.
1418
1419 2004-04-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1420
1421     * configure.ac
1422     Do some MinGW fixes.
1423
1424     * configure.ac doc/Makefile.am
1425     Install HTML docs when doing make install.
1426
1427 2004-04-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1428
1429     * examples/sndfile-info.c
1430     Print out the dB level with the signal max.
1431
1432 2004-04-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1433
1434     * src/file_io.c
1435     Define S_ISSOCK in src/file_io.c if required.
1436
1437 2004-04-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1438
1439     * configure.ac
1440     Improve printout configuration summary (as suggested by Axel R�bel).
1441
1442     * doc/index.html
1443     Add link to pre-release location.
1444
1445     * src/sndfile.h.in
1446     Remove comma after last element of enum.
1447
1448     * src/float32.c src/double64.c
1449     Fix read/write of float/double encoded raw files to/from pipes.
1450
1451     * tests/pipe_test.c tests/pipe_test.tpl tests/pipe_test.def
1452     Turn pipe_test.c into an autogenerated file and add tests for reading/
1453     writing floats and doubles.
1454
1455     * tests/Makefile.am
1456     Hook tests/pipe_test.* into build system.
1457
1458 2004-04-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1459
1460     * configure.ac acinclude.m4
1461     Rename AC_C_STRUCT_HACK macro to AC_C99_FLEXIBLE_ARRAY.
1462
1463 2004-03-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1464
1465     * tests/misc_test.c
1466     Perform update_header_test in RDWR mode as well.
1467
1468     * src/aiff.c
1469     Fix problems when updating header in RDWR mode.
1470
1471 2004-03-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1472
1473     * src/wav.c src/w64.c src/wav_w64.c
1474     Integrate code supplied by David Viens for supporting microsoft's
1475     WAVEFORMATEXTENSIBLE stuff. Thanks David for supplying this.
1476
1477     * configure.ac doc/*.html
1478     Bump version to 1.0.9.
1479
1480 2004-03-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1481
1482     * src/command.c src/sndfile.c src/sndfile.h.in src/wav.c
1483     Started work on supporting microsoft's WAVEFORMATEXTENSIBLE gunk.
1484
1485 2004-03-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1486
1487     * src/avr.c
1488     New file to handle Audio Visual Resaerch files.
1489
1490     * src/sndfile.h.in src/common.h src/sndfile.c src/command.c
1491     Hook AVR into everything else.
1492
1493     * tests/Makefile.am tests/write_read_test.tpl tests/misc_test.c
1494     Add testing for AVR files.
1495
1496 2004-03-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1497
1498     * src/file_io.c
1499     Fix psf_set_file() for win32. Thanks to Vincent Trussart (Plogue Art et
1500     Technologie) for coming up with the solution.
1501
1502 2004-03-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1503
1504     * tests/write_read_test.tpl
1505     Fixed a bug that was causing valgrind to report a memory leak. The bug was
1506     in the test code itself, not the library.
1507
1508 2004-03-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1509
1510     * examples/generate.cs
1511     An example showing how to use libsndfile from C#. Thanks to James Robson
1512     for providing this.
1513
1514 2004-03-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1515
1516     * src/common.c
1517     Fix problems with WAV files containing large chunks after the 'data'
1518     chunk. Thanks to Koen Tanghe for providing a sample file.
1519
1520 2004-03-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1521
1522     * configure.ac
1523     Detect presense of ALSA (Advanced Linux Sound Architecture).
1524
1525     * examples/sndfile-play.c
1526     Add ALSA output support.
1527
1528     * examples/Makefile.am
1529     Add ALSA_LIBS to link line of sndfile-play.c.
1530
1531 2004-03-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1532
1533     * acinclude.m4
1534     Add new macro (AC_C_STRUCT_HACK) to detect whether the C compiler allows
1535     the use of the what is known as the struct hack introduced by the 1999 ISO
1536     C Standard.
1537
1538     * configure.ac
1539     The last release would not compile with gcc-2.95 due to the use of features
1540     (ie struct hack) introduced by the 1999 ISO C Standard.
1541     Add check to make sure compiler handles this and bomb out if it doesn't.
1542
1543 2004-03-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1544
1545     * tests/write_read_test.tpl
1546     Fix compiler warning on Win32.
1547
1548     * src/file_io.c
1549     Fix use of an un-initialised variable in Win32 stuff.
1550
1551     * Win32/config.h examples/sndfile-play.c
1552     Win32 fixes.
1553
1554 2004-03-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1555
1556     * configure.ac
1557     Fix bug which occurres when configuring for MinGW.
1558     If compiler is gcc and cross compiling use -nostdinc.
1559
1560 2004-03-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1561
1562     * src/common.h src/aiff.c src/wav.c src/float32.c src/double64.c
1563       src/sndfile.c
1564     Fix a bug with PEAK chunk handling for files with more than 16 channels.
1565     Thanks to Remy Bruno for finding this.
1566
1567 2004-03-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1568
1569     * src/common.c
1570     Fix a bug which was preventing WAV files being openned correctly if the
1571     file had a very large header. Thanks to Eldad Zack for finding this.
1572
1573 2004-03-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1574
1575     * configure.ac src/file_io.c
1576     Fix cross-compiling from Linux to Win32 using the MinGW tools.
1577
1578 2004-03-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1579
1580     * src/create_symbols_file.sh
1581     Christian Weisgerber pointed out that the shell script did not run on a
1582     real Bourne shell although it did run under Bash in Bourne shell mode.
1583
1584     * src/create_symbols_file.py
1585     Rewrite of above in Python. Also add support for writing Win32 .def files.
1586     The Python script generates Symbols.linux, Symbols.darwin and
1587     libsndfile.def (Win32 version). These files get shipped with the tarball
1588     so there should not be necessary to run the Python script when building
1589     the code from the tarball.
1590
1591     * configure.ac src/Makefile.am Win32/Makefile.am
1592     Hook new Python script into the build system.
1593
1594 2004-02-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1595
1596     * src/configure.ac
1597     Add --enable-gcc-werror option and move GCC specific stuff down.
1598
1599 2004-02-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1600
1601     * acinclude.m4 configure.ac
1602     Fix clip mode detection (tested in one of HP's testdrive Itanium II boxes).
1603
1604     * src/file_io.c
1605     Added check for sizeof (off_t) != sizeof (sf_count_t) to prevent recurrence
1606     of missing large file support on Linux and Solaris.
1607
1608 2004-02-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1609
1610     * examples/sndfile-play.c
1611     Fix a MacOSX specific bug which was caused by a space being inserted in
1612     the middle of a file name.
1613
1614     * configure.ac src/Makefile.am examples/Makefile.am
1615     Fix a couple of MacOSX build issues.
1616
1617 2004-02-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1618
1619     * doc/command.html
1620     Document SFC_SET_CLIPPING and SFC_GET_CLIPPING.
1621
1622 2004-02-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1623
1624     * doc/*.html
1625     Applied patch from Frank Neumann (author of lakai) which fixes many minor
1626     typos in documentation. Thanks Frank.
1627
1628 2004-02-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1629
1630     * ChangeLog
1631     Changed my email address throughout source and docs.
1632
1633 2004-02-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1634
1635     * src/file_io.c
1636     Make sure config.h is included before stdio.h to make sure large file
1637     support is enabled on Linux (and Solaris).
1638
1639     * tests/misc_test.c
1640     Disable update_header test on Win32. This should work but doesn't and
1641     I'm not sure why.
1642
1643     * Make.bat Win32/Makefile.msvc
1644     Updates.
1645
1646 2004-01-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1647
1648     * src/common.h
1649     Changed logindex, headindex and headend files of SF_PRIVATE from unsigned
1650     int to int to prevent weird arithmetic bugs.
1651
1652     * src/common.c src/aiff.c src/wav.c src/w64.c
1653     Fixed compiler warnings resulting from above change.
1654
1655 2004-01-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1656
1657     * src/common.c
1658     Fixed a bug in header reader for some files with data after the sample data.
1659
1660 2003-12-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1661
1662     * tests/lossy_comp_test.c tests/Makefile.am
1663     Add tests for AIFF/IMA files.
1664
1665 2003-12-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1666
1667     * src/macbinary3.c src/macos.c
1668     Two new files required for handling SD2 files.
1669
1670     * src/common.h
1671     Add prototypes for functions in above two files.
1672
1673     * src/Makefile.am
1674     Hook new files into build system.
1675
1676 2003-12-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1677
1678     * configure.ac
1679     Add checks for mmap() and getpagesize() which might be used at some time
1680     for faster file reads.
1681     Add detection of MacOSX.
1682
1683 2003-12-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1684
1685     * doc/FAQ.html
1686     Minor mods to pkg-config section.
1687
1688 2003-12-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1689
1690     * src/create_symbols_file.sh
1691     Andre Pang (also known as Ozone) pointed out that on MacOSX, all non
1692     static symbols are exported causing troubles when trying to link
1693     libsndfile with another library which has any of the same symbols.
1694     He fixed this by supplying the MacOSX linker with a file containing
1695     all the public symbols so that only they would be exported and then
1696     supplied a patch for libsndfile.
1697     This wasn't quite ideal, because I would have to maintain two (3 if
1698     you include Win32) separate files containing the exported symbols.
1699     A better solution was to create this script which can generate a
1700     Symbols file for Linux, MacoSX and any other OS that supports
1701     minimising the number of exported symbols.
1702
1703     * configure.ac src/Makefile.am
1704     Hook the new script into the build process.
1705
1706 2003-12-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1707
1708     * doc/index.html
1709     Added comments about Steve Dekorte's SoundConverter scam.
1710
1711 2003-12-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1712
1713     * src/file_io.c
1714     Axel Roebel pointed out that on Mac OSX a pipe is not considered a fifo
1715     (S_ISFIFO (st.st_mode) is false) but a socket (S_ISSOCK (st.st_mode) is
1716     true). The test has therefore been changed to is S_ISREG and anything
1717     which which does not return true for S_ISREG is considered a pipe.
1718
1719 2003-11-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1720
1721     * tests/misc_test.c
1722     Fix update_header_test to pass SDS.
1723
1724     * src/sds.c
1725     More minor fixes.
1726
1727     * tests/floating_point_test.c
1728     Add test for SDS files.
1729
1730     * src/command.c
1731     Add SDS to major_formats array.
1732
1733 2003-11-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1734
1735     * tests/write_read_test.tpl tests/misc_test.c
1736     Add tests for SDS files.
1737
1738     * src/sds.c
1739     Fix a bug in header update code.
1740
1741 2003-11-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1742
1743     * src/sds.c
1744     Get file write working.
1745
1746     * src/paf.c
1747     Fix a potential bug in paf24_seek().
1748
1749 2003-11-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1750
1751     * doc/FAQ.html
1752     Add Q/A about u-law encoded WAV files.
1753
1754     * Win32/*.h
1755     Updated so it compiles on Win32.
1756
1757 2003-11-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1758
1759     * examples/sndfile-convert.c
1760     Add -alaw and -ulaw command line arguments.
1761
1762     * configure.ac
1763     Add library versioning comments.
1764     Add arguments to AC_INIT.
1765
1766 2003-10-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1767
1768     * src/file_io.c
1769     Ross Bencina has contributed code to replace all of the (mostly broken)
1770     Win32 POSIX emulation calls with calls the native Win32 file I/O API.
1771     This code still needs testing but is likely to be a huge improvemnt
1772     of support for Win32. Thanks Ross.
1773
1774 2003-10-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1775
1776     * src/dwvw.c
1777     Removed filedes field from the DWVW_PRIVATE struct.
1778
1779     * src/file_io.c
1780     Change psf_fopen() so it returns psf->error instead of the file descriptor.
1781     Add new functions psf_set_stdio() and psf_set_file().
1782
1783     * src/sndfile.c
1784     Change these to work with changed psf_fopen() return value.
1785     Remove all uses of psf->filedes from sndfile, making it easier to slot native
1786     Win32 API file handling functions.
1787
1788     * src/test_file_io.c
1789     Minor changes to make it compile with new file_io.c stuff.
1790
1791 2003-10-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1792
1793     * src/gsm610.h
1794     Rename a variable from true to true_flag. As Ross Bencina points out,
1795     true is defined in the C99 header <stdbool.h>.
1796
1797     * src/file_io.c
1798     If fstat() fails, return SF_TRUE instead of -1 (Ross Bencina).
1799
1800 2003-10-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1801
1802     * src/common.h
1803     Increase the size of SF_BUFFER_LEN and SF_HEADER_LEN.
1804
1805     * src/sndfile.c
1806     Fix sf_read/write_raw which were dividing by psf->bytwidth and
1807     psf->blockwidth which can both be zero.
1808
1809     * examples/sndfile-info.c
1810     Increase size of BUFFER_LEN.
1811
1812 2003-09-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1813
1814     * configure.ac
1815     Add checks for <sys/wait.h> and ssize_t.
1816     Other Win32/MinGW checks.
1817
1818     * src/aiff.c src/au_g72x.c src/file_io.c src/gsm610.c src/interleave.c
1819       src/paf.c src/sds.c src/svx.c src/voc.c src/w64.c src/wav.c src/xi.c
1820     Fix compiler warnings.
1821
1822 2003-09-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1823
1824     * tests/scale_clip_test.tpl
1825     Add definition of M_PI if needed.
1826
1827 2003-09-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1828
1829     * configure.ac
1830     Detect if S_IRGRP is declared in <unistd.h>.
1831
1832     * src/file_io.c tests/*.tpl tests/*.c
1833     More fixes for Win32/MSVC++ and MinGW. MinGW does have <unistd.h> but that
1834     file doesn't declare S_IRGRP.
1835
1836 2003-10-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1837
1838     * src/config.h.in
1839     Add comment stating that the sf_count_t typedef is determined when
1840     libsndfile is being compiled.
1841
1842     * tests/utils.tpl
1843     Modified so that utils.c gets one copy of the GPL and not two.
1844
1845
1846 2003-09-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1847
1848     * Win32/unistd.h src/sf_unistd.h
1849     Move first file to the second. This will help for Win32/MSVC++ and MinGW.
1850
1851     * Win32/Makefile.am src/Makefile.am
1852     Changed in line with above.
1853
1854     * Win32/Makefile.msvc
1855     Removed "/I Win32" which is no longer required.
1856
1857     * src/file_io.c src/test_file_io.c tests/*.tpl tests/*.c
1858     If HAVE_UNISTD_H include <unistd.h> else include <sf_unistd.h>. This should
1859     work for Win32, MinGW and other fakes Unix-like OSes.
1860
1861     * src/*.c
1862     Removed #include <unistd.h> from files which didn't need it.
1863
1864 2003-09-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1865
1866     * libsndfile.spec.in
1867     Apply fix from Andrew Schultz.
1868
1869 2003-09-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1870
1871     * src/vox_adpcm.c
1872     Only set psf->sf.samplerate if the existing value is invalid.
1873
1874 2003-09-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1875
1876     * examples/sndfile-play.c
1877     Started adding support for ALSA output.
1878
1879 2003-09-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1880
1881     * src/sndfile.h.in
1882     Removed <stdlib.h> from sndfile.h.
1883
1884     * src/*.c examples/*.c tests/*.c tests/*.tpl
1885     Added <stdlib.h> where needed.
1886
1887 2003-09-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1888
1889     * src/common.h
1890     Added ARRAY_LEN, SF_MAX and SF_MIN macros.
1891
1892 2003-08-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1893
1894     * doc/index.html
1895     Remove statements about alternative licensing arrangements.
1896
1897 2003-08-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1898
1899     * MacOS MacOS9 Makefile.am configure.ac
1900     Change directory name from MacOS to MacOS9
1901
1902     * MacOS9/MacOS9-readme.txt
1903     Change name to make it really obvious, add text to top of file to make it
1904     still more obvious again.
1905
1906 2003-08-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1907
1908     * src/test_log_printf.c
1909     Add tests for %u conversions.
1910
1911     * src/common.c
1912     Fix psf_log_printf() %u conversions.
1913
1914 2003-08-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1915
1916     * src/aiff.c
1917     Fixed a bug where opening a file with a non-trival header in SFM_RDWR mode
1918     would over-write part of the header. Thanks to Axel Roebel for pointing
1919     this out. Axel also provided a patch to fix this but I came up with a
1920     neater and more general solution.
1921     Return error when openning an AIFF file with data after the SSND chunk
1922     (Thanks Axel Roebel).
1923
1924     * tests/aiff_rw_test.c
1925     Improvements to test program which will later allow it to be generalised to
1926     test WAV, SVX and others as required.
1927
1928 2003-08-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1929
1930     * tests/pipe_test.c
1931     Add useek_pipe_rw_test() submitted by Russell Francis.
1932
1933     * src/sndfile.c
1934     In sf_open_fd(), check if input file descriptor is a pipe.
1935
1936     * src/sndfile.[ch]
1937     Fix typo in variable name do_not_close_descriptor.
1938
1939 2003-08-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1940
1941     * src/test_log_printf.c
1942     Improve the tests for %d and %s conversions.
1943
1944     * src/common.c
1945     Fixed a few problems in psf_log_printf() found using new tests.
1946
1947 2003-08-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1948
1949     * configure.ac
1950     Add -Wwrite-strings warning to CFLAGS if the compiler is GCC. Thanks to
1951     Peter Miller (Aegis author) for suggesting this and supplying a patch.
1952
1953     * src/*.c examples/*.c tests/*.c
1954     Fix all compiler warnings arising from the above.
1955
1956 2003-08-02
1957
1958     * tests/aiff_rw_test.c tests/Makefile.am
1959     New test program to check for errors re-writing the headers of AIFC files
1960     opened in mode SFM_RDWR.
1961
1962 2003-07-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1963
1964     * examples/sndfile-play.c
1965     Applied a patch from Tero Pelander to allow this program to run on systems
1966     using devfs which used /dev/sound/dsp instead of /dev/dsp.
1967
1968 2003-07-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1969
1970     * doc/new_file_type.HOWTO
1971     Updated document. Still incomplete.
1972
1973 2003-06-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1974
1975     * src/sndfile.c
1976     Fix VALIDATE_SNDFILE_AND_ASSIGN_PSF which was returning an error rather
1977     than saving it and returning zero.
1978
1979 2003-06-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1980
1981     * src/file_io.c
1982     Two fixes for Mac OS9.
1983     Fix all casts from sf_count_t to ssize_t (not size_t).
1984
1985 2003-06-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1986
1987     * src/wav.c
1988     Fix for reading files with RIFF length of 8 and data length of 0.
1989
1990 2003-06-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1991
1992     * src/*.c tests/*.c tests/*.tpl
1993     Added comments to mark code for removal when make Lite version of
1994     libsndfile.
1995
1996 2003-06-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
1997
1998     * examples/sndfile-convert.c
1999     Add extra error checking for unrecognised arguments.
2000
2001 2003-06-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2002
2003     * src/ima_adpcm.c
2004     Started adding code to write IMA ADPCM encoded AIFF files.
2005
2006     * src/test_log_printf.c src/Makefile.am
2007     New file to test psf_log_printf() function and add hooks into build system.
2008
2009     * src/common.c
2010     Move psf_log_printf() function to top of the file and only compile the rest
2011     of the file if if PSF_LOG_PRINTF_ONLY is not defined.
2012
2013 2003-06-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2014
2015     * Win32/config.h Win32/sndfile.h
2016     Updated with new config variables.
2017
2018     * Win32/unistd.h src/file_io.c
2019     Added implementation of S_ISFIFO macro which Win32 seems to lack and is
2020     used in src/file_io.c.
2021
2022     * tests/utils.tpl
2023     Added #include <unitstd.h> to pull in Win32/unistd.h so it compiles for
2024     Win32.
2025
2026     * src/Makefile.msvc
2027     Added src\test_file_io.exe build target and run this as the very first
2028     test.
2029
2030     * tests/win32_test.c
2031     Add support for testing Cygwin32.
2032
2033     * configure.ac
2034     Detect POSIX fsync() and fdatasync() functions.
2035
2036     * src/file_io.c
2037     If compiling for Cygwin, call fsync() before calling fstat() to retrieve
2038     file length.
2039
2040     * tests/pcm_test.tpl
2041     Add a test for lrintf() function. This was required to detect a really
2042     broken lrint() and lrintf() on Cygwin.
2043
2044     * tests/misc_test.c
2045     Don't run permission test when compiling under Cygwin.
2046
2047     * src/float_cast.h
2048     Fix fallback macro for lrint() and lrintf() to cast to long instead of int
2049     to match official function prototypes.
2050
2051 2003-06-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2052
2053     * examples/sndfile-convert.c
2054     Modifications to improve accuracy of conversions; use double data for
2055     floating point and int for everything else.
2056
2057     * src/ima_apdcm.c
2058     Completed work on decoding IMA ADPCM encoded AIFF files. Still need to
2059     get encoding working.
2060
2061 2003-05-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2062
2063     * src/aiff.c src/ima_adpcm.c
2064     Start working on getting IMA ADPCM encoded AIFF files working.
2065
2066 2003-05-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2067
2068     * configure.ac
2069     Fixed the touch command for when the autogen program is not found (Matt
2070     Flax).
2071
2072     * src/ulaw.c src/alaw.c
2073     Made these pipe-able.
2074
2075 2003-05-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2076
2077     * src/paf.c src/ircam.c
2078     Fixed writing to pipe.
2079
2080     * src/wav.c src/aiff.c src/nist.c src/mat*.c src/svx.c src/w64.c
2081     Return SFE_NO_PIPE_WRITE if an attempt is made to write to a pipe.
2082
2083 2003-05-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2084
2085     * examples/sndfile-info.c
2086     Modified to detect unknown file lengths.
2087
2088     * src/mat4.c
2089     Fix reading from a pipe.
2090
2091 2003-05-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2092
2093     * tests/pipe_test.c
2094     Add more file types to tests.
2095
2096     * src/mat4.c
2097     Removed explicit setting of psf->sf.seekable to SF_TRUE.
2098
2099     * tests/utils.tpl
2100     Add macro for generating and check data in the stdio and pipe tests.
2101
2102     * tests/stdout_test.c tests/stdin_test.c
2103     Use the above macro to generate known data on output and check data on
2104     input.
2105
2106     * src/voc.c src/htk.c common.h sndfile.c
2107     Disallow reading/writing VOC and HTK files from/to pipes be returning new
2108     error values.
2109
2110     * src/w64.c
2111     Fixes to allow reading from a pipe.
2112
2113 2003-05-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2114
2115     * configure.ac src/sndfile.h.in
2116     When the configure script determines the sizeof (sf_count_t), also set the
2117     value of SF_COUNT_MAX in sndfile.h.
2118
2119     * configure.ac
2120     Remove -pedantic flag from default GCC compiler flags.
2121
2122     * tests/pipe_test.c
2123     Add a pipe_read_test() before doing pipe_write_test().
2124
2125     * tests/scale_clip_test.c
2126     Add test to make sure non-normalized values also clip in the right way.
2127
2128 2003-05-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2129
2130     * configure.ac
2131     Add test to detect processor clipping capabilities.
2132
2133     * tests/stdin_test.c tests/stdout_test.c
2134     Fix a pair of compiler warnings.
2135
2136     * src/common.h
2137     Add new pipeoffset field to SF_PRIVATE. This will contain the current file
2138     offset when operating on a pipe.
2139
2140     * src/common.c
2141     Removed direct calls to psf_fread()/psf_fseek()/psf_fgets() etc from
2142     psf_binheader_readf and redirect them to new buffered versions
2143     header_read(), header_seek() and header_gets().
2144     Add "G" format specifier to emulate fgets() functionality with buffering.
2145     This will allow reading some file types from pipes.
2146
2147     * src/file_io.c
2148     When the file descriptor is a pipe, manintain psf->pipeoffset.
2149
2150     * src/pvf.c
2151     Change use of psf_fgets() to psf_binheader_readf() as required but changes to header re
2152
2153     * src/au.c
2154     Fix reading from a pipe.
2155
2156 2003-05-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2157
2158     * src/pcm.c
2159     Add clipping versions of the f2XXX_array() functions to allow option of
2160     clipping data that would otherwise overflow.
2161
2162     * tests/scale_clip_test.tpl tests/scale_clip_test.def
2163     New files test that clipping option does actually work.
2164
2165 2003-05-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2166
2167     * doc/index.html
2168     Fixed a typo ("OS(" instead of "OS9").
2169
2170 2003-05-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2171
2172     * tests/open_fail_test.c
2173     Include <string.h> to prevent warning message of missing declaration of
2174     memset().
2175
2176 2003-05-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2177
2178     * src/common.h
2179     Add new "add_clipping" field to SF_PRIVATE.
2180
2181     * src/sndfile.h.in src/sndfile.c
2182     Add command SFC_SET_CLIPPING which sets/resets add_clipping field.
2183
2184 2003-05-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2185
2186     * doc/api.html
2187     Add docs for sf_set_string() and sf_get_string().
2188
2189     * src/common.h src/sndfile.c
2190     Add new SFE_STR_BAD_STRING error.
2191
2192     * tests/stdin_test.c tests/stdout_test.c
2193     Removed all non-error print statements.
2194
2195     * tests/stdio_test.c tests/pipe_test.c tests/Makefile.am
2196     Add print statements removed from two files above.
2197
2198 2003-05-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2199
2200     * libsndfile.spec.in
2201     Fixed a coulpe of minor errors discovered by someone calling themselves
2202     Agent Smith.
2203
2204     * src/common.c src/common.h src/file_io.h
2205     Added is_pipe field to SF_PRIVATE and declaration of psf_is_pipe()
2206     function. (Axel Roebel)
2207
2208     * src/sndfile.c
2209     Fixed determination of whether the file is a pipe. (Axel Roebel)
2210
2211     * src/paf.c
2212     Force paf24 to start with undefined mode. (Axel Roebel)
2213
2214     * tests/pipe_test.c
2215     Mods to make this test work and actually do the test on RAW files. (Axel
2216     Roebel).
2217
2218 2003-05-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2219
2220     * src/sndfile.c
2221     Fixed a potential bug where psf->sf.seekable was being set to FALSE when
2222     operating on stdin or stdout but then the default initialiser was reseting
2223     it to TRUE. Thanks to Axel Roebel.
2224
2225     * src/aiff.c
2226     Fixed a bug in the header parser where it was not handling an odd length
2227     COMM chunk correctly. Thanks to Axel Roebel.
2228
2229     * src/test_file_io.c
2230     Add more tests.
2231
2232     * tests/win32_test.c
2233     New file for showing the bugs in the Win32 implementation of the POSIX API.
2234     It also runs on Linux for sanity checking.
2235
2236     * tests/Makefile.am Win32/Makefile.msvc
2237     Hook the new test program into the build system.
2238
2239 2003-05-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2240
2241     * src/test_file_io.c
2242     New test program to test operation of functions defined in file_io.c. This
2243     should make supporting win32 significantly easier.
2244
2245     * src/Makefile.am
2246     Hook new test program into the build system.
2247
2248     * src/file_io.c
2249     Add compile/run time check that sizeof statbuf.st_size and sf_count_t are
2250     the same.
2251
2252     * src/common.h src/sndfile.c
2253     Added new error code and error message for new check.
2254
2255     * tests/benchmark.tpl
2256     Fix to use frames instead of samples in SF_INFO.
2257
2258 2003-05-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2259
2260     * src/file_io.c
2261     More stuffing about working around PLAIN OLD-FASHIONED **BUGS** in Win32.
2262
2263     * examples/sndfile-info.c
2264     Applied patch from Conrad Parker to add "--help" and "-h" options as
2265     well as an improved usage message.
2266
2267 2003-05-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2268
2269     * src/au.c
2270     Added embedded file support.
2271
2272     * tests/multi_file_test.c
2273     Added tests for embedded AU files.
2274     Added verbose testing mode.
2275
2276     * src/common.h src/sndfile.c
2277     Added an embedded AU specific error code and message.
2278
2279     * src/wav.c
2280     Added patch from Conrad Parker which filled in a little more information
2281     about ACIDized WAV files.
2282
2283 2003-04-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2284
2285     * src/file_io.c
2286     Fixed Win32 version of psf_fseek() which was calling psf_get_filelen()
2287     which was in turn calling psf_fseek() which in the end blew the stack.
2288     Now of course this would have been easy to find on Linux, but this blow
2289     up was happening in kernel32.dll and the fscking MSVC++ debugger couldn't
2290     figure out what call caused this (it couldn't even tell me the stack had
2291     overflowed) and was absolutley useless for this debugging exercise.
2292     On top of that, the reason I got into this mess was that windoze doesn't
2293     have a working fstat() function which can return file lengths > 2 Gig. It
2294     HAS a fscking _fstati64() but the file length value is only updated AFTER
2295     the bloody file is closed. That makes it completely useless.
2296     How the hell do people stand working on this crap excuse of an OS?
2297
2298 2003-04-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2299
2300     * Win32/unistd.h src/file_io.c
2301     Moved definitions of S_IGRP etc from file_io.c to unistd.h so that these
2302     can be used in the test programs.
2303
2304     * Win32/libsndfile.def
2305     Added sf_open_fd.
2306
2307     * Win32/sndfile.h
2308     Updated to match src/sndfile.h.in.
2309
2310     * Win32/Makefile.msvc
2311     Added dither.c and htk.c to libsndfile.dll target.
2312
2313 2003-04-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2314
2315     * src/file_io.c
2316     First attempt at getting the Win32 versions of the these functions working.
2317     They still need to be tested.
2318
2319 2003-04-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2320
2321     * src/strings.c
2322     Found and fixed a bug which was causing psf_store_string() to fail on
2323     Motorola 68k processors. Many thanks fo Joshua Haberman (Debian maintainer
2324     of libsndfile) for compiling and running debug code to help me debug the
2325     problem.
2326
2327 2003-04-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2328
2329     * src/sndfile.c src/file_io.c src/wav.c src/aiff.c
2330     Much hacking to get reading and writing of embedded files working (ie sound
2331     files at a non-zero files offset).
2332
2333     * doc/embedded_files.html
2334     First pass atempt at documenting reading/writing embedded files.
2335
2336 2003-04-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2337
2338     * doc/FAQ.html
2339     Updated answer to "Why doesn't libsndfile do interleaving/de-interleaving?"
2340
2341 2003-04-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2342
2343     * src/wav.c src/aiff.c
2344     Fix retrieving and storing of string data from files. Need to be careful
2345     about using psf->buffer for strings.
2346
2347 2003-04-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2348
2349     * src/file_io.c
2350     Fix psf_fseek() for seeks withing embedded files.
2351
2352 2003-04-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2353
2354     * src/sndfile.h.in
2355     Changed the definition of SNDFILE slightly to produce warnings when it isn't
2356     used correctly. This should have zero affect in code which uses the SNDFILE
2357     type correctly.
2358
2359     * src/sndfile.c
2360     Fixed a few compiler warnings cause by the changes to the SNDFILE type.
2361
2362 2003-04-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2363
2364     * doc/FAQ.html
2365     Added question and answer to the question "How about adding the ability
2366     to write/read sound files to/from memory buffers?".
2367
2368 2003-04-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2369
2370     * tests/write_read_test.tpl
2371     Removed un-needed enums declaring TRUE and FALSE and replaced usage of
2372     these with SF_TRUE and SF_FALSE.
2373
2374     * tests/multi_file_test.c
2375     New test program to test sf_open_fd() on files containing data other than
2376     a single sound file.
2377
2378 2003-04-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2379
2380     * src/file_io.c
2381     When creating files, set the readable by others flag. This still allows
2382     further restrictions to be enforced by use of the user's umask. Fix
2383     suggested by Eric Lyon.
2384
2385 2003-04-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2386
2387     * src/sndfile.h.in src/sndfile.c
2388     Changed sf_open_fd(). Dropped offset parameter and added a close_desc
2389     parameter. If close desc is TRUE, the file descritpor passed into the
2390     library will be closed when sf_close() is called.
2391
2392     * tests/utils.tpl
2393     Modified call to sf_open_fd() to set close_desc parameter to SF_TRUE.
2394
2395 2003-04-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2396
2397     * tests/write_read_test.tpl
2398     Add a string (using sf_set_string() function) before and after data section
2399     of all files. This will make sure that if string data can be added, it
2400     doesn't overwrite real audio data.
2401
2402 2003-04-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2403
2404     * src/sndfile.c
2405     Started work on supporting a non-zero offset parameter for sf_open_fd ().
2406
2407     * src/<file header parsers>.c
2408     Removed many uses of psf_fseek (SEEK_END) which to allow for future use of
2409     sf_open_fd() with non-zero offset.
2410     Associated refactoring.
2411
2412     * src/aiff.c
2413     Implemented functionality required to get sf_get_string() and
2414     sf_set_string() working for AIFF files.
2415
2416 2003-04-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2417
2418     * tests/utils.tpl
2419     Modified test_open_file_or_die() to alternately use sf_open() and
2420     sf_open_fd().
2421
2422     * src/svx.c
2423     Fixed a bug which occurred when openning an existing file for read/write
2424     using sf_open_fd(). In this case, the existing NAME chunk needs to be
2425     read into psf->filename.
2426     Fixed printing of sf_count_t types to logbuffer.
2427
2428 2003-03-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2429
2430     * src/sndfile.h.in
2431     Added prototype for new function sf_open_fd().
2432
2433     * src/sndfile.c
2434     Moved most of the code in sf_open() to a new function psf_open_file().
2435     Created new function sf_open_fd() which also uses psf_open_file() but
2436     does not currently support the offset parameter.
2437
2438     * doc/api.html
2439     Document sf_open_fd().
2440
2441 2003-03-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2442
2443     * src/sndfile.c
2444     Fixed a memory leak reported by Evgeny Karpov. Memory leak only occurred
2445     when an attempt was made to read and the open() call fails.
2446
2447 2003-03-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2448
2449     * tests/open_fail_test.c
2450     New test program to check for memory leaks when sf_open fails on a valid
2451     file. Currently this must be run manually under valgrid.
2452
2453     * tests/Makefile.am
2454     Hook new test program into build.
2455
2456 2003-03-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2457
2458     * Octave/sndfile_save.m Octave/sndfile_play.m
2459     Added a -mat-binary option to the octave save command to force the output
2460     to binary mode even if the user has set ascii data as the default. Found
2461     by Christopher Moore.
2462
2463 2003-02-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2464
2465     * doc/dither.html
2466     New file which will document the interface which allows the addition of
2467     audio dither when sample word sizes are being reduced.
2468
2469     * src/dither.c
2470     More work.
2471
2472 2003-02-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2473
2474     * tests/misc_test.c
2475     In update_header_test(), make HTK files a special case.
2476
2477     * doc/index.html
2478     Added HTK to the feature matrix.
2479
2480 2003-02-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2481
2482     * src/htk.c
2483     New file for reading/writing HMM Tool Kit files.
2484
2485     * src/sndfile.h.in src/sndfile.c src/command.c src/Makefile.am
2486     Hook in htk.c
2487
2488     * tests/write_read_test.tpl tests/misc_test.c tests/Makefile.am
2489     Add tests for HTK files.
2490
2491 2003-02-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2492
2493     * src/wav.c
2494     Fixed a bug where the LIST chunk length was being written incorrectly.
2495
2496     * tests/string_test.c
2497     Added call to check_log_buffer().
2498     Minor cleanups.
2499
2500 2003-02-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2501
2502     * src/wav_w64.h
2503     Applied patch from Antoine Mathys to add extra WAV format definitions and
2504     a G72x_ADPCM_WAV_FMT struct definition.
2505
2506     * src/wav_w64.c
2507     Applied patch from Antoine Mathys which converts wav_w64_format_str() from
2508     one huge inefficient switch statement to a binary search.
2509
2510     * tests/string_test.c
2511     Dump log buffer if tests fail.
2512
2513 2003-02-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2514
2515     * tests/string_test.c
2516     David Viens supplied some modifications to this file which showed up a bug
2517     when using sf_set_string() and the sf_writef_float() functions.
2518
2519     * src/sndfile.c
2520     Fixed the above bug.
2521
2522 2003-02-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2523
2524     * doc/FAQ.html
2525     Added Q and A on how to detect libsndfile in configure.in (at the suggestion
2526     of Davy Durham).
2527
2528 2003-02-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2529
2530     * src/sndfile.h.in
2531     Add enums and typedefs for dither.
2532     Deprecate SFC_SET_ADD_DITHER_ON_WRITE and SFC_SET_ADD_DITHER_ON_READ, to be
2533     replaced with SFC_SET_DITHER_ON_WRITE and SFC_SET_DITHER_ON_READ which will
2534     allow different dither algorithms to be enabled.
2535     Added SFC_GET_DITHER_INFO_COUNT and SFC_GET_DITHER_INFO.
2536
2537     * src/sndfile.h.in src/Version_script.in Win32/libsndfile.def.
2538     Added public sf_dither_*() functions.
2539
2540     * src/sndfile.c
2541     Implement commands above.
2542
2543     * src/dither.c
2544     More work. Framework and external hooks into dither algorithms complete.
2545
2546 2003-02-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2547
2548     * doc/version-1.html libsndfile_version_convert.py
2549     Remove redundant files.
2550
2551     * doc/index.html doc/api.html
2552     Remove links to version-1.html.
2553
2554     * src/dither.c
2555     New file to allow the addition of audio dither on input and output.
2556
2557     * src/common.h
2558     Add prototype for dither_init() function.
2559
2560     * Makefile.am doc/Makefile.am
2561     Changes for added and removed files.
2562
2563 2003-02-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2564
2565     * Win32/Makefile.msvc
2566     Changes to force example binaries to be placed in the top level directory
2567     instead of the examples/ directory.
2568     Add src/strings.c and src/xi.c to the build.
2569     Add string_test to build and to tests on WAV files.
2570
2571     * doc/index.html
2572     Added XI to support matrix.
2573
2574 2003-01-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2575
2576     * src/sndfile.h.in
2577     Added prototypes for sf_get_string() and sf_set_string() and SF_STR_*
2578     enum values.
2579
2580     * src/sndfile.c
2581     Added public interface to sf_get_string() and sf_set_string().
2582
2583     * src/wav.c
2584     Added code for setting and getting strings in WAV files.
2585
2586     * tests/string_test.c
2587     New test program for sf_get_string() and sf_set_string() functionality.
2588
2589     * tests/Makefile.am
2590     Hook new test program into build and test framework.
2591
2592 2003-01-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2593
2594     * src/common.h
2595     Added fields to SF_PRIVATE for string data needed to implement
2596     sf_get_string() and sf_set_string().
2597
2598     * src/strings.c
2599     New file for storing and retrieving strings to/from files.
2600
2601     * src/Makefile.am
2602     Added strings.c to build.
2603
2604 2003-01-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2605
2606     * src/xi.c
2607     Read seems to be working so looking at write.
2608
2609     * src/sndfile.h.in
2610     Added SF_FORMAT_XI, SF_FORMAT_DPCM_8 and SF_FORMAT_DPCM_16 enum values.
2611
2612     * tests/floating_point_test.c tests/lossy_comp_test.c tests/Makefile.am
2613     Added test for 8 and 16 bit XI format files.
2614
2615 2003-01-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2616
2617     * doc/index.html
2618     Added a non-lawyer readable summary of the licensing provisions as
2619     suggested by Steve Dekorte.
2620
2621 2003-01-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2622
2623     * src/wav.c
2624     Fixed a compiler warning found by Alexander Lerch.
2625
2626 2003-01-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2627
2628     * configure.ac
2629     Fixed the multiple linking of libm.
2630
2631 2003-01-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2632
2633     * Win32/Makefile.mcvs
2634     Added comments on the correct way to set up the MSVCDir environment
2635     variable.
2636
2637     * doc/win32.html
2638     Add on how to set up the MSVCDir environment variable.
2639
2640 2003-01-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2641
2642     * examples/sndfile-play.c examples/sndfile-info.c
2643     When run on Win32 without any command line parameters print a message and
2644     then sleep for 5 seconds. This means the when somebody double clicks on
2645     these programs in explorer the user will actually see the message.
2646
2647 2003-01-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2648
2649     * tests/misc_test.c
2650     Bypass permission test if running as root because root is allowed to open
2651     a readonly file for write.
2652
2653 2003-01-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2654
2655     * Win32/Makefile.msvc
2656     Added pvf.c and xi.c source files to project.
2657
2658     * src/sndfile.h
2659     Updated for PVF files.
2660
2661 2003-01-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2662
2663     * src/sndfile.c
2664     Modified validate_sfinfo() to force samplerate, channels and sections
2665     to be >= 1.
2666     In format_from_extension() replaced calls to does_extension_match()
2667     with strcmp().
2668
2669     * src/xi.c
2670     More work.
2671
2672 2003-01-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2673
2674     * doc/Makefile.am
2675     Added octave.html which had been left out. Found by Jan Weil.
2676
2677 2003-01-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2678
2679     * src/pvf.c src/common.h src/sndfile.c
2680     Fixed error handling for PVF files.
2681
2682     * src/xi.c
2683     New file for handling Fasttracker 2 Extended Instrument files. Not working
2684     yet and included when configured with --enable-experimental.
2685
2686     * src/sndfile.c src/common.h
2687     Hooked in new file xi.c.
2688
2689 2002-12-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2690
2691     * src/rx2.c
2692     Added a patch from Marek Peteraj which sheds a little more light on the
2693     slices within an RX2 file. Still need to find out data encoding.
2694
2695 2002-12-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2696
2697     * src/wav.c
2698     Started work on decoding 'acid' and 'strc' chunks.
2699
2700 2002-12-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2701
2702     * tests/peak_check_test.c
2703     Minor cleanup.
2704
2705 2002-12-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2706
2707     * tests/write_read_test.tpl
2708     Added check to make sure no error was generated when an attempt was made to
2709     read past the end of the file.
2710
2711 2002-12-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2712
2713     * doc/lists.html
2714     Added "mailto" links for all three lists.
2715
2716     * src/pvf.c
2717     New file for Portable Voice Format files.
2718
2719     * src/sndfile.h.in src/sndfile.c src/common.h src/command.c src/Makefile.am
2720     Added hooks for SF_FORMAT_PVF format files.
2721
2722     * tests/write_read_test.tpl tests/std*.c
2723     Add tests for SF_FORMAT_PVF.
2724
2725     * doc/index.html
2726     Add PVF to the compatibility matrix.
2727
2728     * src/pcm.c src/alaw.c src/ulaw.c src/float32.c src/double64.c
2729     Previously, attempts to read beyond the end of a file would set psf->error
2730     to SFE_SHORT_ERROR. This behaviour diverged from the behaviour of the POSIX
2731     read() call but has now been fixed.
2732     Attempts to read beyond the end of the file will return a short read count
2733     but will not longer set any error.
2734
2735 2002-12-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2736
2737     * src/sndfile.c
2738     Add more sanity checking when opening a RAW file for read. When format is
2739     not RAW, zero out all members of the SF_INFO struct.
2740
2741     * tests/raw_test.c
2742     Add bad_raw_test() to check for above problem.
2743
2744     * tests/stdin_test.c examples/sndfile-info.c
2745     Set the format field of the SF_INFO struct to zero before calling
2746     sf_open().
2747
2748     * doc/api.html
2749     Add information about the need to set the format field of the SF_INFO struct
2750     to zero when opening non-RAW files for read.
2751
2752     * configure.ac
2753     Removed use of conversion script on Solaris. Not all Solaris versions
2754     support it.
2755
2756     * doc/lists.html
2757     New file containg details of the mailing lists.
2758
2759     * doc/index.html
2760     Add a link to the above new file.
2761
2762 2002-12-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2763
2764     * tests/dft_cmp.c
2765     Fixed a SIGFPE on Alpha caused by a log10 (0.0). Thanks to Joshua Haberman
2766     for providing the gdb traceback.
2767
2768 2002-11-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2769
2770     * src/wav.c
2771     Added more capabilities to 'smpl' chunk parser.
2772
2773     * src/sndfile.c
2774     Fixed some (not all) possible problems found with Flawfinder.
2775
2776 2002-11-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2777
2778     * src/sndfile.c
2779     Fixed a bug in sf_seek(). This bug could only occur when an attempt was
2780     made to read beyond the end and then sf_seek() was called with a whence
2781     parameter of SEEK_CUR.
2782
2783     * src/file_io.c
2784     Win32's _fstati64() does not work, it returns BS. Re-implemented
2785     psf_get_filelen() in terms of psf_fseek().
2786
2787     * tests/write_read_test.tpl
2788     Add a test to detect above bug.
2789
2790     * src/float_cast.h
2791     Modification to prevent compiler warnings on Mac OS X.
2792
2793     * src/file_io.c
2794     Fixes for windows (what a f**ked OS).
2795
2796 2002-11-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2797
2798     * configure.ac
2799     Disable use of native lrint()/lrintf() on Mac OSX. These functions exist on
2800     Mac OSX 10.2 but not on 10.1. Forcing the use of the versions in
2801     src/float_cast.h means that a library compiled on 10.2 will still work on
2802     10.1.
2803
2804 2002-11-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2805
2806     * configure.in configure.ac
2807     Renamed configure.in to configure.ac as expected by later versions of
2808     autoconf.
2809     Slight hacking of configure.ac to work with version 2.54 of autoconf.
2810     Changed to using -dumpversion instead of --version for determining GCC
2811     version numer as suggested by Anand Kumria.
2812
2813     * src/G72x/Makefile.am
2814     Slight hacking required for operation with automake 1.6.3.
2815
2816 2002-11-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2817
2818     * src/common.c
2819     In psf_binheader_readf() changed type parameter type "b" type from size_t
2820     to int to prevent errors on IA64 CPU where sizeof (size_t) != sizeof (int).
2821     Thanks to Enrique Robledo Arnuncio for debugging this.
2822
2823 2002-11-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2824
2825     * test/command_test.tpl
2826     Changed test value so test would pass on Solaris.
2827
2828     * src/Version_script.in
2829     Modified version numbering so that later versions of 1.0.X can replace
2830     earlier versions without recompilation.
2831
2832     * src/vox_adpcm.c
2833     Fixed bug causing short reads.
2834
2835 2002-11-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2836
2837     * test/floating_point_test.c
2838     Code cleanup using functions from util.c.
2839     Add test for IEEE replacement floats and doubles.
2840
2841 2002-11-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2842
2843     * src/wav.c
2844     Fixed a possible divide by zero error when read the 'smpl' chunk. Thanks to
2845     Serg Repalov for the example file.
2846
2847     * tests/pcm_test.tpl
2848     Used sf_command (SFC_TEST_IEEE_FLOAT_REPLACE) to test IEEE replacement code.
2849     Clean up pcm_double_test().
2850
2851     * src/float32.c src/double64.c
2852     Force use of IEEE replacement code using psf->ieee_replace is TRUE,
2853     Print message to log_buffer as well.
2854     Rename all broken_read_* and broken_write* functions to replace_read_* and
2855     replace_write_*.
2856
2857     * tests/util.tpl
2858     Added string_in_log_buffer().
2859
2860     * tests/pcm_test.tpl
2861     Use string_in_log_buffer() to ensure that IEEE replacement code has been
2862     used.
2863
2864     * configure.in
2865     Removed --enable-force-broken-float option. IEEE replacement code is now
2866     always tested.
2867
2868 2002-10-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2869
2870     * src/double64.c
2871     Implement code for read/writing IEEE doubles on platforms where the native
2872     double format is not IEEE.
2873
2874     * src/float32.c src/common.h
2875     Remove float32_read() and float32_write(). Replace with float32_le_read(),
2876     float32_be_read(), float32_le_write() and float32_be_write() to match stuff
2877     in src/double64.c.
2878
2879     * src/common.c
2880     Fix all usage of float32_write().
2881
2882     * src/sndfile.h.in
2883     Added SFC_TEST_IEEE_FLOAT_REPLACE command (testing only).
2884
2885     * src/common.h
2886     Added SF_PRIVATE field ieee_replace.
2887
2888     * src/sndfile.c
2889     In sf_command() set/reset psf->ieee_replace.
2890
2891 2002-10-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2892
2893     * tests/pcm_test.tpl
2894     Fixed a problem when testing with --enable-force-broken-float. The test was
2895     generating a value of negative zero and the broken float code is not able
2896     to write negative zero. Removing the negative zero fixed the test.
2897
2898 2002-10-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2899
2900     * src/file_io.c
2901     Added fix for Cygwin (suggested by Maros Michalik).
2902
2903 2002-10-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2904
2905     * src/file_io.c
2906     Improved error detection and handling.
2907
2908     * src/file_io.c src/common.h
2909     Removed functions psf_ferror() and psf_clearerr() which were redundant
2910     after above improvements.
2911
2912     * src/aiff.c src/svx.c src/w64.c src/wav.c
2913     Removed all use of psf_ferror() and psf_clearerr().
2914
2915     * src/sndfile.c
2916     Removed #include of <stdio.h>, <unistd.h>, <fcntl.h> and <math.h> which
2917     are no longer needed.
2918
2919     * tests/misc_test.c
2920     Added test to make sure the correct error message is returned with an
2921     existing read-only file is openned for write.
2922
2923 2002-10-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2924
2925     * doc/index.html doc/api.html
2926     Updated for OKI Dialogic ADPCM files.
2927
2928     * src/command.c
2929     Added VOX ADPCM to sub_fomats.
2930
2931 2002-10-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2932
2933     * src/vox_adpcm.c src/Makefile.am
2934     New file for handling OKI Dialogic ADPCM files.
2935
2936     * src/sndfile.h
2937     Add new subtype SF_FORMAT_VOX_ADPCM.
2938
2939     * src/sndfile.c
2940     Renamed function is_au_snd_file () to format_from_extenstion () and expanded
2941     its functionality to detect headerless VOX files.
2942
2943     * src/raw.c
2944     Added hooks for SF_FORMAT_VOX_ADPCM.
2945
2946     * examples/sndfile-info.c
2947     Print out file duration (suggested by Conrad Parker).
2948
2949     * libsndfile.spec.in
2950     Force installation of sndfile.pc file (found by John Thompson).
2951
2952     * tests/Makefile.am tests/lossy_comp_test.c tests/floating_point_test.c
2953     Add tests for SF_FORMAT_VOX_ADPCM.
2954
2955 2002-10-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2956
2957     * tests/misc_test.c
2958     Add test which attempts to write to /dev/full (on Linux anyway) to check
2959     for correct handling of writing to a full filesystem.
2960
2961     * src/sndfile.c
2962     Return correct error message if the header cannot be written because the
2963     filesystem is full.
2964
2965     * tests/util.tpl
2966     Corrected printing of file mode in error reporting.
2967
2968     * src/mat5.c
2969     Fixed a bug where a MAT5 file written by libsndfile could not be opened by
2970     Octave 2.1.36.
2971
2972 2002-10-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2973
2974     * src/common.h src/file_io.c
2975     All low level file I/O have been modified to be better able to report
2976     system errors resulting from calling system level open/read/write etc.
2977
2978     * src/*.c
2979     Updated for compatibility with above changes.
2980
2981     * examples/cooledit-fixer.c
2982     New example program which fixes badly broken file created by Syntrillium's
2983     Cooledit which are marked as containing PCM samples but actually contain
2984     floating point data.
2985
2986     * examples/Makefile.am
2987     Hooked cooledit-fixer into the build system.
2988
2989 2002-10-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2990
2991     * doc/command.html
2992     Document SFC_GET_FORMAT_INFO.
2993
2994 2002-10-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
2995
2996     * examples/wav32_aiff24.c examples/sndfile2oct.c examples/sfhexdump.c
2997         examples/sfdump.c
2998     Removed these files because they weren't interesting.
2999
3000     * examples/sfconvert.c examples/sndfile-convert.c
3001     Renamed the first to the latter.
3002
3003     * examples/Makefile.am
3004     Added sndfile-convert to the bin_PROGRAMS, so it is installed when the lib
3005     is installed.
3006     Removed old programs wav32_aiff24 and sndfile2oct.
3007
3008     * man/sndfile-convert.1
3009     New man page.
3010
3011     * examples/sndfile-convert.c
3012     Added some gloss now that sndfile-convert.c is an installed program.
3013
3014     * src/sndfile.h.in src/sndfile.c src/common.h src/command.h
3015     Added command SFC_GET_FORMAT_INFO.
3016
3017     * tests/command_test.c
3018     Added tests form SFC_GET_FORMAT_INFO.
3019
3020 2002-10-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3021
3022     * src/sndfile.c
3023     In sf_format_check() return error if samplerate < 0.
3024
3025 2002-10-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3026
3027     * src/aiff.c
3028     Fixed bug in handling of COMM chunks with a 4 byte encoding byte but no
3029     encoding string.
3030
3031 2002-10-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3032
3033     * src/sndfile.c
3034     Fixed repeated word in an error message.
3035
3036 2002-10-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3037
3038     * doc/index.html
3039     Improved advertising in Features section.
3040
3041 2002-10-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3042
3043     * src/wav.c
3044     Added decoding of 'labl' chunks within 'LIST' chunks.
3045
3046     * src/common.h
3047     Added (experimental only) SF_FORMAT_OGG and SF_FORMAT_VORBIS and definition
3048     of ogg_open(). This is nowhere near working yet.
3049
3050     * src/sndfile.c
3051     Added detection of 'OggS' file marker and added call to ogg_open() to
3052     switch statement.
3053
3054     * src/ogg.c
3055     New file. Very early start of Ogg Vorbis support.
3056
3057     * src/wav.c
3058     Added handling of brain-damaged and broken Cooledit "32 bit 24.0 float
3059     type 1" files. These files are marked as being 24 bit WAVE_FORMAT_PCM with
3060     a block alignment of 4 times the numbers of channels but are in fact 32 bit
3061     floating point.
3062
3063 2002-10-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3064
3065     * configure.in
3066     Modified option --enable-experimental to set ENABLE_EXPERIMENTAL_CODE in
3067     config.h to either 0 or 1.
3068
3069     * src/sndfile.c
3070     Modify sf_command (SFC_GET_LIB_VERSION) to append "-exp" to the version
3071     string if experimental code has been enabled.
3072
3073 2002-10-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3074
3075     * src/Makefile.am
3076     Added -lm to libsndfile_la_LIBADD. This means that -lm is not longer needed
3077     in the link line when linking something to libsndfile.
3078
3079     * tests/Makefile.am examples/Makefile.am
3080     Removed -lm from all link lines.
3081
3082     * sndfile.pc.in
3083     Removed -lm from Libs line.
3084
3085 2002-09-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3086
3087     * src/file_io.c
3088     Removed all perror() calls.
3089
3090     * src/nist.c
3091     Removed calls to exit() function.
3092     Added check to detect NIST files dammaged from Unix CR -> Win32 CRLF
3093     conversion process.
3094
3095 2002-09-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3096
3097     * src/sndfile.h.in src/sndfile.c
3098     New function sf_strerror() which will eventually replace functions
3099     sf_perror() and sf_error_str().
3100     Function sf_error_number() has also been changed, but this was documented
3101     as being for testing only.
3102
3103     * doc/api.html
3104     Documented above changes.
3105
3106     * tests/*.c examples/*.c
3107     Changed to new error functions.
3108
3109 2002-09-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3110
3111     * configure.in
3112     Detect GCC version, and print a warning message about writeable strings
3113     it GCC major version number is less than 3.
3114
3115 2002-09-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3116
3117     * src/sndfile.h.in doc/api.html
3118     Documentation fixes.
3119
3120 2002-09-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3121
3122     * src/Version_script.in src/Makefile.am configure.in
3123     Use the version script to prevent the exporting of all non public symbols.
3124     This currently only works with Linux. Will test on Solaris as well.
3125
3126     * src/float_cast.h
3127     Added #ifndef to prevent the #warning directives killing the SGI MIPSpro
3128     compiler.
3129
3130     * src/au_g72x.c src/double64.c src/float32.c src/gsm610.c src/ima_adpcm.c
3131         src/ms_adpcm.c
3132     Fix benign compiler warnings arising from previously added compiler
3133     flags.
3134
3135 2002-09-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3136
3137     * src/sndfile.c
3138     Fixed a bug in sf_error_str() where errnum was used as the index instead
3139     of k. Found by Tim Hockin.
3140
3141     * examples/sndfile-play.c
3142     Fixed a compiler warning resulting from a variable shadowing a previously
3143     defined local.
3144
3145 2002-09-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3146
3147     * src/sndfile.h.in src/sndfile.c
3148     Added command SFC_SET_RAW_START_OFFSET.
3149
3150     * doc/command.html
3151     Document SFC_SET_RAW_START_OFFSET.
3152
3153     * tests/raw_test.c tests/Makefile.am
3154     Add new file for for testing SF_FORMAT_RAW specific functionality.
3155
3156     * tests/dwvw_test.c
3157     Updates.
3158
3159 2002-09-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3160
3161     * src/wav.c
3162     Modified reading of 'smpl' chunk to take account of the sampler data field.
3163
3164     * tests/utils.tpl tests/utils.h
3165     Added function print_test_name().
3166
3167     * tests/misc_test.c tests/write_read_test.tpl tests/lossy_comp_test.c
3168         tests/pcm_test.tpl tests/command_test.tpl tests/floating_point_test.c
3169     Convert to use function print_test_name().
3170
3171 2002-09-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3172
3173     * doc/octave.html
3174     Added a link to some other Octave scripts for reading and writing sound
3175     files.
3176
3177     * src/paf.c
3178     Change type of dummy data field to int. This should fix a benign compiler
3179     warning on some CPUs.
3180     Removed superfluous casts resulting from the above change.
3181
3182     * src/rx2.c
3183     More hacking.
3184
3185 2002-09-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3186
3187     * src/mat5.c src/common.c
3188     Changed usage of snprintf() to LSF_SNPRINTF().
3189
3190     * Win32/Makefile.msvc
3191     Updated to include new files and add new tests.
3192
3193     * Win32/config.h Win32/sndfile.h
3194     Updated.
3195
3196     * doc/api.html
3197     Added note about the possibility of "missing" features actually being
3198     implemented as an sf_command().
3199
3200 2002-09-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3201
3202     * tests/misc_test.c
3203     Added previously missing update_header_test and zero_data_tests for PAF,
3204     MAT4 and MAT5 formats.
3205
3206     * src/paf.c src/mat4.c src/mat5.c
3207     Fixed bugs uncovered by new tests above.
3208
3209     * src/mat5.c
3210     Generalised parsing of name fields of MAT5 files.
3211
3212     * src/mat5.c src/sndfile.c
3213     Added support for unsigned 8 bit PCM MAT5 files.
3214
3215     * tests/write_read_test.tpl
3216     Added test for unsigned 8 bit PCM MAT5 files.
3217
3218     * doc/index.html
3219     Added unsigned 8 bit PCM MAT5 to capabilities matrix.
3220
3221 2002-09-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3222
3223     * test/update_header_test.c tests/misc_test.c
3224     Renamed update_header_test.c to misc_test.c.
3225     Added zero_data_test() to check for case where file is opened for write and
3226     closed immediately. The resulting file can be left in a state where
3227     libsndfile cannot open it. Problem reported by Werner Schweer, the author
3228     of Muse.
3229
3230     * src/aiff.c
3231     Removed superfluous cast.
3232
3233     * src/wav.c src/svx.c
3234     Fixed case of file generated with no data.
3235     Removed superfluous cast.
3236
3237     * src/sndfile.c
3238     Fixed error on IA64 platform caused by incorrect termination of
3239     SndfileErrors struct array. This problem was found in the Debian buildd
3240     logs (http://buildd.debian.org/).
3241
3242     * configure.in
3243     Added Octave directory.
3244
3245     * Octave/Makefile.ma
3246     New Makfile.am for Octave directory.
3247
3248     * Octave/sndfile_load.m Octave/sndfile_save.m Octave/sndfile_play.m
3249     New files for working with Octave.
3250
3251     * doc/octave.html
3252     Document explaining the use of the above three Octave scripts.
3253
3254 2002-09-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3255
3256     * src/sndfile.c
3257     Fixed bug in RDWR mode.
3258
3259 2002-09-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3260
3261     * src/common.c
3262     Fixed psf_get_date_str() for systems which don't have gmtime_r() or
3263     gmtime().
3264
3265     * src/file_io.c
3266     Added #include <io.h> for Win32. Reported by Koen Tanghe.
3267
3268 2002-09-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3269
3270     * src/common.c
3271     Added 'S' format specifier for psf_binheader_writef() which writes a C
3272     string, including single null terminator to the header.
3273     Added 'j' format specifier to allow jumping forwards or backwards in the
3274     header.
3275     Added function psf_get_date_str().
3276
3277     * src/mat5.c
3278     Complete read and write support.
3279
3280     * doc/index.html
3281     Added entries for MAT4 and MAT5 in capabilities matrix.
3282
3283 2002-09-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3284
3285     * src/mat4.c
3286     Completed read and write support.
3287
3288     * src/common.h src/sndfile.c
3289     Added MAT4 and MAT5 specific error messages.
3290
3291     * tests/write_read_test.tpl tests/Makefile.am
3292     Added tests for MAT4 and MAT5 files.
3293
3294     * tests/stdio_test.c tests/stdout_test.c tests/stdin_test.c
3295     Added tests for MAT4 and MAT5 files.
3296
3297 2002-09-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3298
3299     * src/command.c
3300     Added elements for SF_FORMAT_MAT4 and SF_FORMAT_MAT5 to major_formats
3301     array.
3302
3303     * examples/sfconvert.c
3304     Added mat4 and mat5 output targets.
3305
3306 2002-09-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3307
3308     * src/sndfile.c
3309     Added check to prevent errors openning read only formats for read/write.
3310
3311     * src/interleave.c
3312     New file for interleaving non-interleaved data. Non-interleaved data is
3313     only supported on read.
3314
3315     * src/Makefile.am
3316     Added src/interleave.c to build.
3317
3318 2002-09-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3319
3320     * src/double64.c src/common.h
3321     Added double64_be_read(), double64_le_read(), double64_be_write() and
3322     double64_le_write() which replace double64_read() and double64_write().
3323
3324     * src/common.c
3325     Cleanup of psf_binheader_readf() and add ability to read big and little
3326     endian doubles (required by mat4.c and mat5.c).
3327     Add ability for psf_binheader_writef() to write doubles to sound file
3328     headers.
3329
3330 2002-09-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3331
3332     * src/mat5.c
3333     New file for reading Matlab (tm) version 5 data files. This is also the
3334     native binary file format for version 2.1.X of GNU Octave which will be
3335     used for testing.
3336     Not complete yet.
3337
3338     * src/mat4.c
3339     New file for reading Matlab (tm) version 4.2 data files. This is also the
3340     native binary file format for version 2.0.X of GNU Octave which will be
3341     used for testing.
3342     Not complete yet.
3343
3344     * src/sndfile.h.in src/sndfile.c src/common.h src/command.c src/Makefile.am
3345     Mods to add Matlab files.
3346
3347     * src/common.[ch]
3348     Added readf_endian field to SF_PRIVATE struct allowing endianness to
3349     remembered across calls to sf_binheader_readf().
3350     Fixed bug in width_specifier behaviour for printing hex values.
3351
3352 2002-08-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3353
3354     * src/file_io.c
3355     Check return value of close() call in psf_fclose().
3356
3357 2002-08-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3358
3359     * src/ms_adpcm.c
3360     Commented out some code where 0x10000 was being subtracted from a short
3361     and the result assigned to a short again. Andrew Zaja found this.
3362
3363 2002-08-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3364
3365     * doc/command.html
3366     Fixed typo found by Tommi Ilmonen.
3367
3368     * src/ima_adpcm.c
3369     Changed type of diff from short to int to prevent errors which can occur
3370     during very rare circumstances. Thanks to FUWAFUWA.
3371
3372 2002-08-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3373
3374     * tests/floating_point_test.c
3375     Disable testing on machines without lrintf().
3376
3377     * Win32/Makefile.msvc
3378     Added dwd.c and wve.c to build.
3379
3380     * configure.in
3381     Bumped version to 1.0.0.
3382
3383 2002-08-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3384
3385     * src/file_io.c
3386     Add a #include for Mac OS 9. Thanks to Stephane Letz.
3387
3388     * src/wav.c
3389     Changed an snprintf to LSF_SNPRINTF.
3390
3391     * doc/Makefile.am
3392     Added version-1.html.
3393
3394 2002-08-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3395
3396     * configure.in
3397     Bumped version to 1.0.rc6.
3398
3399     * src/*.c
3400     Modified scaling of normalised floats and doubles to integers. Until now
3401     this has been done by multiplying by 0x8000 for short output, 0x80000000
3402     for 32 bit ints and so on. Unfortunately this can cause an overflow and
3403     wrap around in the target value. All thes values have therefore been
3404     reduced to 0x7FFF, 0x7FFFFFFF and so on. The conversion from ints to
3405     normalised floats and doubles remains unchanged. This does mean that for
3406     repeated conversions normalised float -> pcm16 -> normalised float would
3407     result in a decrease in amplitude of 0x7FFF/0x8000 on every round trip.
3408     This is undesirable but less undesireable than the wrap around I am trying
3409     to avoid.
3410
3411     * tests/floating_point_test.c
3412     Removed file hash checking because new float scaling procedure introduced
3413     above prevented the ability to crate a has on both x86 and PowerPC systems.
3414
3415 2002-08-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3416
3417     * src/txw.c
3418     Completed reading of TXW files. Seek doesn't work yet.
3419
3420     * src/file_io.c
3421     Added a MacOS 9 replacement for ftruncate().
3422
3423     * MacOS/sndfile.h
3424     Added MacOS 9 header file. This should be copied into src/ to compile
3425     libsndfile for MacOS9.
3426
3427 2002-08-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3428
3429     * src/sndfile.c
3430     Fixed commands SF_SET_NORM_DOUBLE and SFC_SET_NORM_FLOAT to return their
3431     values after being set. Reported by Jussi Laako.
3432
3433     * configure.in
3434     If autogen is not found, touch all .c and .h files in tests/.
3435
3436     * src/common.c
3437     Added format width specifier to psf_log_printf() for %u, %d, %D and %X.
3438
3439     * src/dwd.c
3440     Completed implementation of read only access to these files.
3441
3442     * src/common.h src/*.c src/pcm.c
3443     Removed redundant field chars from SF_PRIVATE struct and modified
3444     pcm_init() to do without it.
3445
3446 2002-08-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3447
3448     * src/wve.c
3449     New file implementing read of Psion Alaw files. This will be a read only
3450     format. Implementation complete.
3451
3452     * src/dwd/c
3453     Started implementation of DiamondWare Digitized files. Also read only, not
3454     complete.
3455
3456     * src/wav.c
3457     Add parsing of 'smpl' chunk.
3458
3459     * src/paf.c
3460     Fixed reading on un-normalized doubles and floats from 24 bit PAF files.
3461     This brings it into line with the reading of 8 bit files into
3462     un-normalized doubles which returns values in the range [-128, 127].
3463
3464     * src/common.c
3465     Modified psf_log_printf() to accept the %% conversion specifier to allow
3466     printing of a single '%'.
3467
3468     * src/sds.c
3469     Read only of 16 bit samples is working. Need to build a test harness for
3470     this and other read only formats.
3471
3472 2002-08-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3473
3474     * configure.in
3475     Added --enable-experimental configure option.
3476     Removed pkg-config message at the end of the configure process.
3477
3478     * src/sds.c src/txw.c src/rx2.c src/sd2.c
3479     Moved all the code in these files inside #if ENABLE_EXPERIMENTAL_CODE
3480     blocks and added new *_open() function for the case where experimental is
3481     not enabled. These new functions just return SFE_UNIMPLMENTED.
3482
3483     * Win32/sndfile.h src/sndfile.h.in src/common.h
3484     Removed un-necessary #pragma pack commands.
3485
3486     * src/file_io.c
3487     Implemented psf_ftruncate() and much other hacking for Win32.
3488
3489     * Win32/Makefile.msvc
3490     Updated.
3491
3492     * doc/win32.html
3493     Updated to include the copying of the sndfile.h file from the Win32/
3494     directory to the src/ directory.
3495
3496     * Make.bat
3497     Batch file to make compiling on Wi32 a little easier. Implements "make" and
3498     "make check".
3499
3500 2002-08-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3501
3502     * src/file_io.c
3503     Add place holder for ftruncate() on Win32 which doesn't have ftruncate().
3504     This will need to be fixed later.
3505
3506     * src/sndfile.h.in
3507     New file (copy of sndfile.h) with sets up @TYPEOF_SF_COUNT_T@ which will be
3508     replaced by the correct type during configure.
3509
3510     * configure.in
3511     Modified to find a good type for TYPEOF_SF_COUNT_T.
3512
3513     * src/aiff.c
3514     Fixed a bug when reading malformed headers.
3515
3516     * src/common.c
3517     Set read values to zero before performing read.
3518
3519 2002-08-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3520
3521     * doc/command.html
3522     Fixed some HTML tags which were not allowing jumps to links within the
3523     page.
3524
3525     * src/sds.c
3526     Massive hacking on this.
3527
3528     * src/wav.c
3529     Added recognition of 'clm ' tag.
3530
3531 2002-08-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3532
3533     * doc/index.html
3534     Added beginning of a capabilities list beyond simple file formats which
3535     can be read/written.
3536
3537     * src/aiff.c
3538     Added parsing of INST and MARK chunks of AIFF files. At the moment this
3539     data is simply recorded in the log buffer. Later it will be possible to
3540     read this data from an application using sf_command().
3541
3542     * src/wav.c
3543     Added parsing of 'cue ' chunk which contains loop information in WAV files.
3544
3545     * exampes/sndfile-info.c
3546     Changed reporting of Samples to Frames.
3547
3548     * src/wav.c src/w64.c src/aiff.c src/wav_w64.h
3549     Moved from a samples to a frames nomenclature to avoid confusion.
3550
3551     * doc/FAQ.html
3552     What's the best format for storing temporary files?
3553
3554     * src/sds.c
3555     New file for reading/writing Midi Sample Dump Standard files.
3556
3557     * src/Makefile.am src/sndfile.c src/common.[ch]
3558     Added hooks for sds.c.
3559
3560     * examples/sndfile-info.c
3561     Changed from using sf_perror() to using sf_error_str().
3562
3563 2002-08-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3564
3565     * doc/api.html
3566     Added explanation of mode parameter for sf_open().
3567     Added explanation of usage of SFM_* values in sf_seek().
3568
3569     * src/sndfile.[ch] src/command.c src/file_io.c src/common.h
3570     Implemented SFC_FILE_TRUNCATE to allow a file to be truncated. File
3571     truncation was suggested by James McCartney.
3572
3573     * src/command.html
3574     Documented SFC_FILE_TRUNCATE.
3575
3576     * tests/command_test.c
3577     Add tests for SFC_FILE_TRUNCATE.
3578
3579     * src/sndfile.c
3580     Added a thrid parameter to the VALIDATE_SNDFILE_AND_ASSIGN_PSF macro to
3581     make resetting the error number optional. All uses of the macro other than
3582     in error reporting functions were changed to reset the error number.
3583
3584     * src/pcm.c
3585     Fixed a bug were sf_read_* was logging an SFE_SHORT_READ even when no error
3586     occurred.
3587
3588     * tests/write_read_test.tpl
3589     Added tests of internal error state.
3590
3591 2002-08-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3592
3593     * src/GSM610/private.h src/GSM610/*.c src/GSM610/Makefile.am
3594     Renamed private.h to gsm610_priv.h to prevent clash with other headers
3595     named private.h in other directories. (Probably only a problem on MacOS 9).
3596
3597     * src/G72x/private.h src/G72x/*.c src/G72x/Makefile.am
3598     Renamed private.h to g72x_priv.h to prevent clash with other headers
3599     named private.h in other directories. (Probably only a problem on MacOS 9).
3600
3601     * MacOS/config.h
3602     Changed values of HAVE_LRINT and HAVE_LRINTF to force use of code in
3603     float_cash.h.
3604
3605     * src/sndfile.h
3606     Changes the name of samples field of the SF_INFO to frames. The old name
3607     had caused too much confusion and it simply had to be changed. There will
3608     be at least one more pre-release.
3609
3610 2002-08-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3611
3612     * doc/index.html
3613     Updated formats matrix to include RAW (header-less) GSM 6.10.
3614     Fix specificaltion of table and spelling mistakes.
3615
3616     * src/sndfile.c src/command.c
3617     Fixed bug in SFC_CALC_MAX_SIGNAL family and psf_calc_signal_max ().
3618
3619     * tests/command.c
3620     Removed cruft.
3621     Added test for SFC_CALC_MAX_SIGNAL and SFC_CALC_NORM_MAX_SIGNAL.
3622
3623     * configure.in
3624     Update version to 1.0.0rc5.
3625
3626     * sfendian.h
3627     Removed inclusion of un-necessary header.
3628
3629 2002-08-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3630
3631     * src/aiff.c
3632     Minor fixes of info written to log buffer.
3633
3634     * src/float_cast.h
3635     Add definition of HAVE_LRINT_REPLACEMENT.
3636
3637     * tests/floating_point_test.c
3638     Fix file hash check on systems without lrint/lrintf.
3639
3640     * tests/dft_cmp.c
3641     Limit SNR to less than -500.0dB.
3642
3643     * examples/sndfile2oct.c
3644     Fixed compiler warnings.
3645
3646     * doc/api.html
3647     Fixed error where last parameter of sf_error_str() was sf_count_t instead
3648     of size_t.
3649
3650 2002-08-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3651
3652     * doc/FAQ.html
3653     Why doesn't libsndfile do interleaving/de-interleaving.
3654
3655     * tests/pcm_test.tpl
3656     On Win32 do not perform hash check on files containing doubles.
3657
3658 2002-08-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3659
3660     * src/common.h
3661     Defined SF_COUNT_MAX_POSITIVE() macro, a portable way of setting variables
3662     of type sf_count_t to their maximum positive value.
3663
3664     * src/dwvw.c src/w64.c
3665     Used SF_COUNT_MAX_POSITIVE().
3666
3667 2002-07-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3668
3669     * src/paf.c
3670     Fixed bug in reading/writing of 24 bit PCM PAF files on big endian systems.
3671
3672     * tests/floating_point_tests.c
3673     Fixed hash values for 24 bit PCM PAF files.
3674     Disabled file has check if lrintf() function is not available and added
3675     warning.
3676     Decreased level of signal from a peak of 1.0 to a value of 0.95 to prevent
3677     problems on platforms without lrintf() ie Solaris.
3678
3679 2002-07-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3680
3681     * src/wav.c
3682     Fixed a problem with two different kinds of mal-formed WAV file header. The
3683     first had the 'fact' chunk before the 'fmt ' chunk, the other had an
3684     incomplete 'INFO' chunk at the end of the file.
3685
3686     * src/w64.c
3687     Added fix to allow differentiation between W64 files and ACID files.
3688
3689     * src/au_g72x.c src/common.h src/sndfile.c
3690     Added error for G72x encoded files with more than one channel.
3691
3692     * tests/pcm_test.tpl tests/utils.tpl
3693     Moved function check_file_hash_or_die() to utils.tpl. Function was then
3694     modified to calculate the has of the whole file.
3695
3696     * src/wav.c
3697     Fixed problem writing the 'fact' chunk on big endian systems.
3698
3699     * tests/sfconvert.c
3700     Fixed bug where .paf files were being written as Sphere NIST.
3701
3702 2002-07-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3703
3704     * src/voc.c
3705     Fix for reading headers generated using SFC_UPDATE_HEADER_NOW.
3706
3707     * doc/command.html
3708     Add docs for SFC_UPDATE_HEADER_NOW and SFC_SET_UPDATE_HEADER_AUTO.
3709
3710 2002-07-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3711
3712     * man/sndfile-info.1 man/sndfile-play.1
3713     Added manpages supplied by Joshua Haberman the Debian maintainer for
3714     libsndfile. Additional tweaks by me.
3715
3716     * configure.in man/Makefile.am
3717     Hooked manpages into autoconf/automake system.
3718
3719     * src/sndfile.c
3720     Added hooks for SFC_SET_UPDATE_HEADER_AUTO.
3721
3722     * tests/update_header_test.c
3723     Improved rigor of testing.
3724
3725     * src/*.c
3726     Fixed problem with *_write_header() functions.
3727
3728 2002-07-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3729
3730     * doc/*.html
3731     Updates to documentation to fix problems found by wdg-html-validator.
3732
3733     * src/common.h src/command.c
3734     Added normalize parameter to calls to psf_calc_signal_max() and
3735     psf_calc_max_all_channels().
3736
3737     * src/sndfile.c
3738     Added handling for commands SFC_CALC_NORM_SIGNAL_MAX and
3739     SFC_CALC_NORM_MAX_ALL_CHANNELS.
3740
3741     * doc/command.html
3742     Added entry for SFC_CALC_NORM_SIGNAL_MAX and SFC_CALC_NORM_MAX_ALL_CHANNELS.
3743
3744 2002-07-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3745
3746     * examples/sndfile-play.c Win32/Makefile.msvc
3747     Get sndfile-play program working on Win32. The Win32 PCM sample I/O API
3748     sucks. The sndfile-play program now works on Linux, MacOSX, Solaris and
3749     Win32.
3750
3751 2002-07-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3752
3753     * doc/FAQ.html
3754     New file for frequently asked questsions.
3755
3756 2002-07-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3757
3758     * doc/api.html
3759     Documentation fixes.
3760
3761     * src/au.[ch] src/au_g72x.c src/G72x/g72x.h
3762     Add support of 40kbps G723 ADPCM encoding.
3763
3764     * tests/lossy_comp_test.c tests/floating_point_test.c
3765     Add tests for 40kbps G723 ADPCM encoding.
3766
3767     * doc/index.html
3768     Update support matrix.
3769
3770 2002-07-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3771
3772     * doc/command.html
3773     Documented SFC_GET_SIMPLE_FORMAT_COUNT, SFC_GET_SIMPLE_FORMAT,
3774     SFC_GET_FORMAT_* and SFC_SET_ADD_PEAK_CHUNK.
3775
3776     * src/sndfile.c src/pcm.c
3777     Add ability to turn on and off the addition of a PEAK chunk for floating
3778     point WAV and AIFF files.
3779
3780     * src/sndfile.[ch] src/common.h src/command.c
3781     Added sf_command SFC_CALC_MAX_ALL_CHANNELS. Implemented by Maurizio Umberto
3782     Puxeddu.
3783
3784     * doc/command.html
3785     Docs for SFC_CALC_MAX_ALL_CHANNELS (assisted by Maurizio Umberto Puxeddu).
3786
3787 2002-07-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3788
3789     * src/sndfile.c src/gsm610.c
3790     Finalised support for GSM 6.10 AIFF files and added support for GSM 6.10
3791     encoded RAW (header-less) files.
3792
3793     * src/wav.c
3794     Add support for IBM_FORMAT_MULAW and IBM_FORMAT_ALAW encodings.
3795
3796     * src/api.html
3797     Fixed more documentation bugs.
3798
3799 2002-07-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3800
3801     * src/sndfile.h src/common.h
3802     Moved some yet-to-be-implelmented values for SF_FORMAT_* from the public
3803     header file sndfile.h to the private header file common.h to avoid
3804     confusion about the actual capabilities of libsndfile.
3805
3806 2002-07-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3807
3808     * src/aiff.c src/wav.c
3809     Fixed file parsing for WAV and AIFF files containing non-audio data after
3810     the data chunk.
3811
3812     * src/aiff.c src/sndfile.c
3813     Add support for GSM 6.10 encoded AIFF files.
3814
3815     * tests/lossy_comp_test.c tests/Makefile.am
3816     Add tests for GSM 6.10 encoded AIFF files.
3817
3818     * src/*.c
3819     Fix compiler warnings.
3820
3821 2002-07-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3822
3823     * tests/command_test.c
3824     For SFC_SET_NORM_* tests, change the file format from SF_FORMAT_WAV to
3825     SF_FORMAT_RAW.
3826
3827     * src/sndfile.c
3828     Added sf_command(SFC_TEST_ADD_TRAILING_DATA) to allow testing of reading
3829     from AIFF and WAV files with non-audio data after the audio chunk.
3830
3831     * src/common.h
3832     Add test commands SFC_TEST_WAV_ADD_INFO_CHUNK and
3833     SFC_TEST_AIFF_ADD_INST_CHUNK. When these commands are working, they will be
3834     moved to src/sndfile.h
3835
3836     * src/aiff.c src/wav.c
3837     Begin implementation of XXXX_command() hook for sf_command().
3838
3839     * tests/write_read_test.tpl
3840     Added sf_command (SFC_TEST_ADD_TRAILING_DATA) to ensure above new code was
3841     working.
3842
3843 2002-07-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3844
3845     * tests/update_header_test.c
3846     Allow read sample count == write sample count - 1 to fix problems with VOC
3847     files.
3848
3849     * tests/write_read_test.tpl tests/pcm_test.tpl
3850     Fixed some problems in the test suite discovered by using Valgrind.
3851
3852 2002-07-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3853
3854     * tests/utils.[ch] tests/*.c
3855     Renamed check_log_buffer() to check_log_buffer_or_die().
3856
3857     * src/sndfile.c
3858     SFC_UPDATE_HEADER_NOW and SFC_SETUPDATE_HEADER_AUTO almost finished. Works
3859     for all file formats other than VOC.
3860
3861 2002-07-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3862
3863     * src/sndfile.[ch] src/common.h
3864     Started adding functionality to allow the file header to be updated before
3865     the file is closed on files open for SFM_WRITE. This was requested by
3866     Maurizio Umberto Puxeddu who is using libsndfile for file I/O in iCSound.
3867
3868     * tests/update_header_test.c
3869     New test program to test that the above functionality is working correctly.
3870
3871     * tests/peak_chunk_test.c tests/floating_point_test.c
3872     Cleanups.
3873
3874 2002-07-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3875
3876     * src/sfendian.[ch]
3877     Changed length count parameters for all endswap_XXX() functions from
3878     sf_count_t (which can be 64 bit even on 32 bit architectures) to int. These
3879     functions are only called frin inside the library, are always called with
3880     integer parameters and doing the actual calculation on 64 bit values is
3881     slow in comparision to doing it on ints.
3882
3883     * examples/sndfile-play.c
3884     More playback hacking for Win32.
3885
3886 2002-07-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3887
3888     * src/common.c
3889     In psf_log_printf(), changed %D format conversion specifier to %M (marker) and
3890     added %D specifier for printing the sf_count_t type.
3891
3892     * src/*.c
3893     Changed all usage of psf_log_printf() with %D format conversion specifiers
3894     to use %M conversion instead.
3895
3896     * tests/pcm_test.tpl tests/pcm_test.def
3897     New files to autogen pcm_test.c.
3898
3899     * src/pcm.c
3900     Fixed bug in scaling floats and doubles to 24 bit PCM and vice versa.
3901
3902 2002-07-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3903
3904     * configure.in
3905     Fix setup of $ac_cv_sys_largefile_CFLAGS so that sndfile.pc gets valid
3906     values for CFLAGS.
3907
3908     * examples/sndfile-play.c
3909     Start adding playback support for Win32.
3910
3911 2002-07-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3912
3913     * src/*.c
3914     Worked to removed compiler warnings.
3915     Extensive refactoring.
3916
3917     * src/common.[ch]
3918     Added function psf_memset() which works like the standard C function memset
3919     but takes and sf_count_t as the length parameter.
3920
3921     * src/sndfile.c
3922     Replaced calls to memset(0 with calls to psf_memset() as required.
3923
3924 2002-07-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3925
3926     * src/sndfile.c
3927     Added "libsndfile : " to the start of all error messages. This was suggested
3928     by Conrad Parker author of Sweep ( http://sweep.sourceforge.net/ ).
3929
3930     * src/sfendian.[ch]
3931     Added endswap_XXXX_copy() functions.
3932
3933     * src/pcm.c src/float32.c src/double64.c
3934     Use endswap_XXXX_copy() functions and removed dead code.
3935     Cleanups and optimisations.
3936
3937 2002-07-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3938
3939     * src/sndfile.c src/sndfile.h
3940     Gave values to all the SFC_* enum values to allow better control of the
3941     interface as commands are added and removed.
3942     Added new command SFC_SET_ADD_PEAK_CHUNK.
3943
3944     * src/wav.c src/aiff.c
3945     Modified wav_write_header and aiff_write_header to make addition of a PEAK
3946     chunk optional, even on floating point files.
3947
3948     * tests/benchmark.tpl
3949     Added call to sf_command(SFC_SET_ADD_PEAK_CHUNK) to turn off addition of a
3950     PEAK chunk for the benchmark where we are trying to miximize speed.
3951
3952     * src.pcm.c
3953     Changed tribyte typedef to something more sensible.
3954     Further conversion speed ups.
3955
3956 2002-07-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3957
3958     * src/command.c
3959     In major_formats rename "Sphere NIST" to "NIST Sphere".
3960
3961     * src/common.c src/sfendian.c
3962     Moved all endswap_XXX_array() functions to sfendian.c. These functions will
3963     be tweaked to provide maximum performance. Since maximum performance on one
3964     platform does not guarantee maximum performance on another, a small set of
3965     functions will be written and the optimal one chosen at compile time.
3966
3967     * src/common.h src/sfendian.h
3968     Declarations of all endswap_XXX_array() functions moved to sfendian.h.
3969
3970     * src/Makefile.am
3971     Add sfendian.c to build targets.
3972
3973 2002-07-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3974
3975     * src/pcm.c src/sfendian.h
3976     Re-coded PCM encoders and decoders to match or better the speed of
3977     libsndfile version 0.0.28.
3978
3979 2002-06-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3980
3981     * src/wav.c
3982     Add checking for WAVPACK data in standard PCM WAV file. Return error if
3983     found. This WAVPACK is *WAY* broken. It uses the same PCM WAV file header
3984     and then stores non-PCM data.
3985
3986     * tests/benchmark.tpl
3987     Added more tests.
3988
3989 2002-06-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
3990
3991     * tests/benchmark.tpl
3992     Added conditional definition of M_PI.
3993     For Win32, set WRITE_PERMS to 0777.
3994
3995     * Win32/Makefile.msvc
3996     Added target to make generate program on Win32.
3997
3998     * src/samplitude.c
3999     Removed handler for Samplitude RAP file format. This file type seems rarer
4000     than hens teeth and is completely undocumented.
4001
4002     * src/common.h src/sndfile.c src/Makefile.am Win32/Makefile.msvc
4003     Removed references to sampltiude RAP format.
4004
4005     * tests/benchmark.tpl
4006     Benchmark program now prints the libsndfile version number when run. This
4007     program was also backported to version 0 to compare results. Version
4008     1.0.0rc2 is faster than version 0.0.28 on most conversions but slower on
4009     some. The slow ones need to be fixed before final release.
4010
4011 2002-06-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4012
4013     * tests/benchmark.def tests/benchmark.tpl
4014     New files which generate tests/benchmark.c using Autogen. Added int ->
4015     SF_FORMAT_PCM_24 test.
4016
4017     * tests/benchmark.c
4018     Now and Autogen output file.
4019
4020     * tests/Makefile.am
4021     Updated for above changes.
4022
4023 2002-06-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4024
4025     * tests/benchmark.c
4026     Basic benchmark program complete. Need to convert it to Autogen.
4027
4028     * Win32/Makefile.msvc
4029     Added benchmark.exe target.
4030
4031 2002-06-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4032
4033     * examples/generate.c
4034     New program to generate a number of different output file formats from a
4035     single input file. This allows testing of the created files.
4036
4037     * tests/benchmark.c
4038     New test program to benchmark libsndfile. Nowhere near complete yet.
4039
4040     * examples/Makefile.am tests/Makefile.am
4041     New make rules for the two new programs.
4042
4043 2002-06-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4044
4045     * Win32/libsndfile.def
4046     Removed definition for sf_signal_max().
4047
4048     * src/sndfile.c
4049     Removed cruft.
4050
4051     * doc/index.html
4052     A number of documentation bugs were fixed. Thanks to Anand Kumria.
4053
4054     * doc/version-1.html
4055     Minor doc updates.
4056
4057     * configure.in
4058     Bumped version to 1.0.0rc2.
4059
4060     * src/sf_command.h src/Makefile.am
4061     Removed the header file as it was no longer being used. Thanks to Anand
4062     Kunria for spotting this.
4063
4064     * doc/index.html
4065     A number of documentation bugs were fixed. Thanks to Anand Kumria.
4066
4067 2002-06-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4068
4069     * src/common.h
4070     Test for Win32 before testing SIZEOF_OFF_T so that it works correctly
4071     on Win32..
4072
4073     * src/file_io.c
4074     Win32 fixes to ensure O_BINARY is used for file open.
4075
4076     * doc/win32.html
4077     New file documenting the building libsndfile on Win32.
4078
4079     * doc/*.html
4080     Updating of documentation.
4081
4082 2002-06-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4083
4084     * tests/pcm_test.c
4085     Minor changes to allow easier determination of test file name.
4086
4087     * src/sndfile.[ch]
4088     Removed function sf_signal_max().
4089
4090     * examples/sndfile-play.c
4091     Changed call to sf_signal_max() to a call to sf_command().
4092
4093 2002-06-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4094
4095     * src/format.c src/command.c
4096     Renamed format.c to command.c which will now include code for sf_command()
4097     calls to perform operations other than format commands.
4098
4099     * src/sndfile.c src/sndfile.h
4100     Removed function sf_get_signal_max() which is replaced by commands passed
4101     to sf_command().
4102
4103     * src/command.c
4104     Implement commands SFC_CALC_SIGNAL_MAX.
4105
4106     * doc/command.html
4107     Documented SFC_CALC_SIGNAL_MAX.
4108
4109 2002-06-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4110
4111     * examples/sndfile-play.c
4112     Mods to make sndfile-play work on Solaris. The program sndfile-play now
4113     runs on Linux, MaxOSX and Solaris. Win32 to come.
4114
4115     * src/format.c
4116     Added SF_FORMAT_DWVW_* to subtype_formats array.
4117
4118     * src/nist.c
4119     Added support for 8 bit NIST Sphere files. Example file supplied by Anand
4120     Kumria.
4121
4122 2002-06-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4123
4124     * examples/sndfile-info.c
4125     Tidy up of output format.
4126
4127     * examnples/sndfile-play.c
4128     Mods to make sndfile-play work on MacOSX using Apple's CoreAudio API.
4129
4130     * configure.in
4131     Add new variables OS_SPECIFIC_INCLUDES and OS_SPECIFIC_LINKS which were
4132     required to supply extra include paths and link parameters to get
4133     sndfile-play working on MacOSX.
4134
4135     * examples/Makefile.am
4136     Use OS_SPOECIFIC_INCLUDES and OS_SPECIFIC_LINKS to build commands for
4137     sndfile-play.
4138
4139 2002-06-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4140
4141     * src/nist.c
4142     Added ability to read/write new NIST Sphere file types (A-law, u-law).
4143     Header parser was re-written from scratch. Example files supplied by Anand
4144     Kumria.
4145
4146     * src/sndfile.c
4147     Support for A-law and u-law NIST files.
4148
4149     * tests/Makefile.am tests/lossy_comp_test.c
4150     Tests for A-law and u-law NIST files.
4151
4152 2002-06-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4153
4154     * tests/utils.c
4155     Fixed an error in error string.
4156
4157 2002-06-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4158
4159     * acinclude.m4
4160     Removed exit command to allow cross-compiling.
4161
4162     * Win32/unistd.h src/file_io.c
4163     Moved contents of first file into the second file (enclosed in #ifdef).
4164     Win32/unistd.h is now an empty file but still must be there for libsndfile
4165     to compile on Win32.
4166
4167     * src/sd2.c, src/sndfile.c:
4168     Fixes for Sound Designer II files on big endian systems.
4169
4170 2002-06-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4171
4172     * configure.in
4173     Modified to work around problems with crappy MacOSX version of sed.
4174     Added sanity check for proper values for CFLAGS.
4175
4176 2002-06-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4177
4178     * src/sndfile.c
4179     Code clean up in sf_open ().
4180
4181     * Win32/Makefile.msvc
4182     Michael Fink's contributed MSVC++ makefile was hacked to bits and put back
4183     together in a new improved form.
4184
4185     * src/file_io.c
4186     Fixes for Win32; _lseeki64() returns an invalid argument for calls like
4187     _lseeki64(fd, 0, SEEK_CUR) so need to use _telli64 (fd) instead.
4188
4189     * src/common.h src/sndfile.c src/wav.c src/aiff.c
4190     Added SFE_LOG_OVERRUN error.
4191     Added termination for potential infinite loop when parsing file headers.
4192
4193     * src/wav.c src/w64.c
4194     Fixed bug casuing incorrect header generation when opening file read/write.
4195
4196 2002-06-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4197
4198     * doc/api.html
4199     Improved the documentation to make it clearer that the file read method
4200     and the underlying file format are completely disconnected. Suggested
4201     by Josh Green.
4202
4203     * doc/command.html
4204     Started correcting docs to take into account changes made to the
4205     operations of the sf_command () function. Not complete yet.
4206
4207     * src/sndfile.c
4208     Reverted some changes which had broken the partially working SDII header
4209     parsing. Now have access to an iBook with OS X so reading and writing SDII
4210     files on all platforms should be a reality in the near future. On Mac this
4211     will involve reading the resource fork via the standard MacOS API. To move
4212     a file from Mac to another OS, the resource and data forks will need to be
4213     combined before transfer. The combined file will be read on both Mac and
4214     other OSes like any other file.
4215
4216 2002-06-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4217
4218     * ltmain.sh
4219     Applied a patch from http://fink.sourceforge.net/doc/porting/libtool.php
4220     which allows libsndfile to compile on MacOSX 10.1. This patch should not
4221     interfere with compiling on other OSes.
4222
4223     * src/GSM610/private.h
4224     Changes to fix compile problems on MacOSX (see src/GSM610/ChangeLog).
4225
4226     * src/float_cast.h
4227     Added MacOSX replacements for lrint() and lrintf().
4228
4229 2002-06-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4230
4231     * src/sndfile.c
4232     Replaced the code to print the filename to the log buffer when a file is
4233     opened. This code seems to have been left out during the merge of
4234     sf_open_read() and sf_open_write() to make a single  functions sf_open().
4235
4236 2002-06-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4237
4238     * src/wav.c
4239     Fixed a bug where the WAV header parser was going into an infinite loop
4240     on a badly formed LIST chunk. File supplied by David Viens.
4241
4242 2002-05-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4243
4244     * configure.in
4245     Added a message at the end of the configuration process to warn about the
4246     need for the use of pkg-config when linking programs against version 1 of
4247     libsndfile.
4248
4249     * doc/pkg-config.html
4250     New documentation file containing details of how to use pkg-config to
4251     retrieve settings for CFLAGS and library locations for linking files
4252     against version 1 of libsndfile.
4253
4254 2002-05-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4255
4256     * src/wav.c
4257     Fixed minor bug in handling of so-called ACIDized WAV files.
4258
4259 2002-05-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4260
4261     * Win32/libsndfile.def Win32/Makefile.msvc
4262     Two new files contributed by Michael Fink (from the winLAME project)
4263     which allows libsndfile to be built on windows in a MSDOS box by doing
4264     "nmake -f Makefile.msvc". Way cool!
4265
4266 2002-05-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4267
4268     * configure.in
4269     MacOSX is SSSOOOOOOO screwed up!!! I can't believe how hard it is to
4270     generate a tarball which will configure and compile on that platform.
4271     Joined the libtool mailing list to try and get some answers.
4272
4273 2002-05-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4274
4275     * configure.in
4276     Changed to autoconf version 2.50. MacOSX uses autoconf version 2.53 which
4277     is incompatible with with version 2.13 which had been using until now.
4278     The AC_SYS_LARGE_FILE macro distributed withe autoconf 2.50 is missing a
4279     few features so AC_SYS_EXTRA_LARGE file was defined to replace it.
4280
4281     * configure.in
4282     Changed to automake version 1.5 to try and make a tarball which will
4283     work on MacOSX.
4284
4285 2002-05-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4286
4287     * src/wav_gsm610.c
4288     Changed name to gsm610.c. Added reading/writing of headerless files.
4289
4290     * src/sndfile.c src/raw.c
4291     Added ability to read/write headerless (SF_FORMAT_RAW) GSM 6.10 files.
4292
4293 2002-05-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4294
4295     * tests/lossy_comp_test.c
4296     Clean up in preparation for Autogen-ing this file.
4297
4298     * src/GSM610/*.[ch]
4299     Code cleanup and prepartion forgetting file seek working. Details in
4300     src/GSM610/ChangeLog.
4301
4302     * sndfile.pc.in
4303     Testing complete. Is sndfile.m4 still needed?
4304
4305 2002-05-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4306
4307     * tests/write_read_test.tpl tests/rdwr_test.tpl
4308     Merged tests from these two programs into write_read_test.tpl and deleted
4309     rdwr_test.tpl.
4310
4311 2002-05-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4312
4313     * src/w64.c src/svx.c src/paf.c
4314     Fixed bugs in read/write mode.
4315
4316 2002-05-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4317
4318     * examples/Makefile.am
4319     Renamed sfplay.c to sndfile-play.c and sndfile_info.c to sndfile-info.c for
4320     consistency when these programs become part of the Debian package
4321     sndfile-programs.
4322
4323     * sndfile.pc.in
4324     New file to replace sndfile-config.in. Libsndfile now uses the pkg-config
4325     model for providing installation parameters to dependant programs.
4326
4327     * src/sndfile.c
4328     Cleanup of code in sf_open().
4329
4330 2002-05-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4331
4332     * tests/utils.tpl tests/write_read_test.tpl
4333     More conversion to Autogen fixes and enchancements.
4334
4335     * src/*.c
4336     Read/write mode is now working for 16, 24 and 32 bit PCM as well as 32
4337     bit float and 64 bit double data. More tests still required.
4338
4339     * src/Makefile.am
4340     Added DISTCLEANFILES target to remove config.status and config.last.
4341
4342     * Win32/Makefile.am MacOS/Makefile.am
4343     Added DISTCLEANFILES target to remove Makefile.
4344
4345 2002-05-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4346
4347     * src/*.[ch] tests/rdwr_test.c
4348     More verifying workings of read/write mode. Fixing bugs found.
4349
4350     * tests/utils.[ch]
4351     Made these files Autogen generated files.
4352
4353     * tests/util.tpl tests/util.def
4354     New Autogen files to generate utils.[ch]. Moved some generic test functions
4355     into this file. Autogen is such a great tool!
4356
4357 2002-05-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4358
4359     * src/pcm.c src/float_cast.h Win32/config.h
4360     Fixed a couple of Win32 specific bugs pointed out by Michael Fink
4361     (maintainer of WinLAME) and David Viens.
4362
4363     * tests/check_log_buffer.[ch] tests/utils.[ch]
4364     Moved check_log_buffer() to utils.[ch] and deleted old file.
4365
4366 2002-05-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4367
4368     * src/common.[ch] src/sndfile.c
4369     New function psf_default_seek() which will be the default seek function
4370     for things like PCM and floating point data. This default is set for
4371     both read and write in sf_open() but can be over-ridden by any codec
4372     during it's initialisation.
4373
4374 2002-05-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4375
4376     * src/au.c
4377     AU files use a data size value of -1 to mean unknown. Fixed au_open_read()
4378     to allow opening files like this.
4379
4380     * tests/rdwr_test .c
4381     Added more tests.
4382
4383     * src/sndfile.c
4384     Fixed bugs in read/write mode found due to improvements in the test
4385     program.
4386
4387 2002-04-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4388
4389     * tests/rdwr_test .c
4390     New file for testing read/write mode.
4391
4392 2002-04-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4393
4394     * m4/*
4395     Removed all m4 macros from this directory as they get concatenated to form
4396     the file aclocal.m4 anyway.
4397
4398     * sndfile.m4
4399     Moved this from the m4 directory to the root directory asn this is part of
4400     the distribution and is installed during "make install".
4401
4402 2002-04-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4403
4404     * src/float32.c
4405     Removed logging of peaks for all file formats other than AIFF and WAV.
4406
4407     * tests/write_read_test.tpl tests/write_read_test.def
4408     New files which autogen uses to generate write_read_test.c. Doing it this
4409     way makes write_read_test.c far easier to maintain. Other test programs
4410     will be converted to autogen in the near future.
4411
4412     * src/*.c
4413     Fixed a few bugs found when testing on Sparc (bug endian) Solaris.
4414
4415 2002-04-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4416
4417     * doc/*.html
4418     Fixed documention versioning.
4419
4420     * configure.in
4421     Fixed a bug in the routines which search for Large File Support on systems
4422     which have large file support by defualt.
4423
4424 2002-04-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4425
4426     * src/*.[ch]
4427     Found and fixed an issue which can cause a bug in other software (I was
4428     porting Conrad Parker's Sweep program from version 0 of the library to
4429     version 1). When opening a file for write, the libsndfile code would
4430     set the sfinfo.samples field to a maximum value.
4431
4432     * tests/write_read_test.c
4433     Added tests to detect the above problem.
4434
4435 2002-04-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4436
4437     * src/*.[ch]
4438     Finished base implementation of read/write mode. Much more testing still
4439     needed.
4440
4441     * m4/largefile.m4
4442     Macro for detecting Large File Standard capabilities. This macro was ripped
4443     out of the aclocal.m4 file of GNU tar-1.13.
4444
4445     * configure.in
4446     Added detection of large file support. Files larger than 2 Gigabytes should
4447     now be supported on 64 bit platforms and many 32 bit platforms including
4448     Linux (2.4 kernel, glibc-2.2), *BSD, MacOS, Win32.
4449
4450     * libsndfile_convert_version.py
4451     A Python script which attempts to autoconvert code written to use version 0
4452     to version 1.
4453
4454 2002-04-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4455
4456     * src/*.[ch]
4457     Finished base implementation of read/write mode. Much more testing still
4458     needed.
4459
4460     * tests/write_read_test.c
4461     Preliminary tests for read/write mode added. More needed.
4462
4463 2002-04-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4464
4465     * src/sndfile.[ch]
4466     Removed sf_open_read() and sf_open_write() functions,replacting them with
4467     sf_open() which takes an extra mode parameter (SF_OPEN_READ, SF_OPEN_WRITE,
4468     or SF_OPEN_RDWR). This new function sf_open can now be modified to allow
4469     opening a file formodification (RDWR).
4470
4471 2002-04-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4472
4473     * src/*.c
4474     Completed merging of separate xxx_open_read() and xxx_open_write()
4475     functions. All tests pass.
4476
4477 2002-04-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4478
4479     * src/au.c
4480     Massive refactoring required to merge au_open_read() with au_open_write()
4481     to create au_open().
4482
4483 2002-04-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4484
4485     * src/*.c
4486     Started changes required to allow a sound file to be opened in read/write
4487     mode, with separate file pointers for read and write. This involves merging
4488     of encoder/decoder functions like pcm_read_init() and pcm_write_init()
4489     int a new function pcm_init() as well as doing something similar for all
4490     the file type specific functions ie aiff_open_read() and aiff_open_write()
4491     were merged to make the function aiff_open().
4492
4493 2002-04-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4494
4495     * src/file_io.c
4496     New file containing psf_fopen(), psf_fread(), psf_fwrite(), psf_fseek() and
4497     psf_ftell() functions. These function will replace use of fopen/fread/fwrite
4498     etc and allow access to files larger than 2 gigabytes on a number of 32 bit
4499     OSes (Linux on x86, 32 bit Solaris user space apps, Win32 and MacOS).
4500
4501     * src/*.c
4502     Replaced all instances of fopen with psf_open, fread with psd_read, fwrite
4503     with psf_write and so on.
4504
4505 2002-03-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4506
4507     * src/dwvw.c
4508     Finally fixed all known problems with 12, 16 and 24 bit DWVW encoding.
4509
4510     * tests/floating_point_test.c
4511     Added tests for 12, 16 and 24 bit DWVW encoding.
4512
4513 2002-03-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4514
4515     * m4/endian.m4
4516     Defines a new m4 macro AC_C_FIND_ENDIAN, for determining the endian-ness of
4517     the target CPU. It first checks for the definition of BYTE_ORDER in
4518     <endian.h>, then in <sys/types.h> and <sys/param.h>. If none of these work
4519     and the C compiler is not a cross compiler it compiles and runs a program
4520     to test for endian-ness. If the compiler is a cross compiler it makes a
4521     guess based on $target_cpu.
4522
4523     * configure.in
4524     Modified to use AC_C_FIND_ENDIAN.
4525
4526     * src/sfendian.h
4527     Simplified.
4528
4529 2002-02-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4530
4531     * tests/floating_point_test.c
4532     Tests completely rewritten using the dft_cmp function. Now able to
4533     calculate a quick guesstimate of the Signal to Noise Ratio of the encoder.
4534
4535 2002-02-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4536
4537     * tests/dft_cmp.[ch]
4538     New files containing functions for comparing pre and post lossily
4539     compressed data using a quickly hacked DFT.
4540
4541     * tests/utils.[ch]
4542     New files containing functions for saving pre and post encoded data in a
4543     file readable by the GNU Octave package.
4544
4545 2002-02-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4546
4547     * m4/lrint.m4 m4/lrintf.m4
4548     Fixed m4 macros to define HAVE_LRINT and HAVE_LRINTF even when the test
4549     is cached.
4550
4551 2002-02-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4552
4553     * tests/floating_point_test.c
4554     Fixed improper use of strncat ().
4555
4556 2002-02-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4557
4558     * tests/headerless_test.c
4559     New test program to test the ability to open and read a known file type as a
4560     RAW header-less file.
4561
4562 2002-02-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4563
4564     * tests/losy_comp_test.c
4565     Added a test to ensure that the data read from a file is not all zeros.
4566
4567     * examples/sfconvert.c
4568     Added "-gsm610" encoding types.
4569
4570 2002-01-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4571
4572     * examples/sfconvert.c
4573     Added "-dwvw12", "-dwvw16" and "-dwvw24" encoding types.
4574
4575     * tests/dwvw_test.c
4576     New file for testing DWVW encoder/decoder.
4577
4578 2002-01-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4579
4580     * src/dwvw.c
4581     Implemented writing of DWVW. 12 bit seems to work, 16 and 24 bit still broken.
4582
4583     * src/aiff.c
4584     Improved reporting of encoding types.
4585
4586     * src/voc.c
4587     Clean up.
4588
4589 2002-01-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4590
4591     * src/dwvw.c
4592     New file implementing lossless Delta Word Variable Width (DWVW) encoding.
4593     Reading 12 bit DWVW is now working.
4594
4595     * src/aiff.c common.h sndfile.c
4596     Added hooks for DWVW encoded AIFF and RAW files.
4597
4598 2002-01-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4599
4600     * src/w64.c
4601     Robustify header parsing.
4602
4603     * src/wav_w64.h
4604     Header file wav.h was renamed to wav_w64.h to signify sharing of
4605     definitions across the two file types.
4606
4607     * src/wav.c src/w64.c src/wav_w64.c
4608     Refactoring.
4609     Modified and moved functions with a high degree of similarity between
4610     wav.c and w64.c to wav_w64.c.
4611
4612 2002-01-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4613
4614     * src/w64.c
4615     Completed work on getting read and write working.
4616
4617     * examples/sfplay.c
4618     Added code to scale floating point data so it plays at a reasonable volume.
4619
4620     * tests/Makefile.am tests/write_read_test.c
4621     Added tests for W64 files.
4622
4623 2002-01-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4624
4625     * src/*.c
4626     Modded all code in file header writing routines to use
4627     psf_new_binheader_writef().
4628     Removed psf_binheader_writef() from src/common.c.
4629     Globally replaced psf_new_binheader_writef with psf_binheader_writef.
4630
4631 2002-01-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4632
4633     * src/*.c
4634     Modded all code in file parsing routines to use psf_new_binheader_readf().
4635     Removed psf_binheader_readf() from src/common.c.
4636     Globally replaced psf_new_binheader_readf with psf_binheader_readf.
4637
4638     * src/common.[ch]
4639     Added new function psf_new_binheader_writef () which will soon replace
4640     psf_binheader_writef (). The new function has basically the same function
4641     as the original but has a more flexible and capable interface. It also
4642     allows the writing of 64 bit integer values for files contains 64 bit file
4643     offsets.
4644
4645 2002-01-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4646
4647     * src/formats.c src/sndfile.c src/sndfile.h
4648     Added code allowing full enumeration of supported file formats via the
4649     sf_command () interface.
4650     This feature will allow applications to avoid needing recompilation when
4651     support for new file formats are added to libsndfile.
4652
4653     * tests/command_test.c
4654     Added test code for the above feature.
4655
4656     * examples/list_formats.c
4657     New file. An example of the use of the supported file enumeration
4658     interface. This program lists all the major formats and for each major
4659     format the supported subformats.
4660
4661 2002-01-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4662
4663     * src/*.[ch] tests/*.c
4664     Changed command parameter of sf_command () function from a test string to
4665     an int. The valid values for the command parameter begin with SFC_ and are
4666     listed in src/sndfile.h.
4667
4668 2001-12-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4669
4670     * src/formats.c src/sndfile.c
4671     Added an way of enumerating a set of common file formats using the
4672     sf_command () interface. This interface was suggested by Dominic Mazzoni,
4673     one of the main authors of Audacity (http://audacity.sourceforge.net/).
4674
4675 2001-12-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4676
4677     * src/sndfile.c
4678     Added checking of filename parameter in sf_open_read (). Previousy, if a
4679     NULL pointer was passed the library would segfault.
4680
4681 2001-12-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4682
4683     * src/common.c src/common.h
4684     Changed the len parameter of the endswap_*_array () functions from type
4685     int to type long.
4686
4687     * src/pcm.c
4688     Fixed a problem which
4689
4690 2001-12-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4691
4692     * src/sndfile.c
4693     Added conditional #include <sys/types.h> for EMX/gcc on OS/2. Thanks to
4694     Paul Hartman for pointing this out.
4695
4696     * tests/lossy_comp_test.c tests/floating_point_test.c
4697     Added definitions for M_PI for when it isn't defined in <math.h>.
4698
4699 2001-11-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4700
4701     * src/ircam.c
4702     Re-implemented the header reader. Old version was making incorrect
4703     assumptions about the endian-ness of the file from the magic number at the
4704     start of the file. The new code looks at the integer which holds the
4705     number of channels and determines the endian-ness from that.
4706
4707 2001-11-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4708
4709     * src/aiff.c
4710     Added support for other AIFC types ('raw ', 'in32', '23ni').
4711     Further work on IMA ADPCM encoding.
4712
4713 2001-11-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4714
4715     * src/ima_adpcm.c
4716     Renamed from wav_ima_adpcm.c. This file will soon handle IMA ADPCM
4717     encodings for both WAV and AIFF files.
4718
4719     * src/aiff.c
4720     Started adding IMA ADPCM support.
4721
4722 2001-11-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4723
4724     * src/double.c
4725     New file for handling double precision floating point (SF_FORMAT_DOUBLE)
4726     data.
4727
4728     * src/wav.c src/aiff.c src/au.c src/raw.c
4729     Added support for SF_FORMAT_DOUBLE data.
4730
4731     * src/common.[ch]
4732     Addition of endswap_long_array () for endian swapping 64 bit integers. This
4733     function will work correctly on processors with 32 bit and 64 bit longs.
4734     Optimised endswap_short_array () and endswap_int_array ().
4735
4736     * tests/pcm_test.c
4737     Added and extra check. After the first file of each type is written to disk
4738     a checksum is performed of the first 64 bytes and checked against a pre-
4739     calculated value. This will work whatever the endian-ness of the host
4740     machine.
4741
4742 2001-11-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4743
4744     * src/aiff.c
4745     Added handling of u-law, A-law encoded AIFF files. Thanks to Tom Erbe for
4746     supplying example files.
4747
4748     * tests/lossy_comp_test.c
4749     Added tests for above.
4750
4751     * src/common.h src/*.c
4752     Removed function typedefs from common.h and function pointer casting in all
4753     the other files. This allows the compiler to perform proper type checking.
4754     Hopefully this will prevernt problems like the sf_seek bug for OpenBSD,
4755     BeOS etc.
4756
4757     * src/common.[ch]
4758     Added new function psf_new_binheader_readf () which will eventually replace
4759     psf_binheader_readf (). The new function has basically the same function as
4760     the original but has a more flexible and capable interface. It also allows
4761     the reading of 64 bit integer values for files contains 64 bit file
4762     offsets.
4763
4764 2001-11-26  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4765
4766     * src/voc.c
4767     Completed implementation of VOC file handling. Can now handle 8 and 16 bit
4768     PCM, u-law and A-law files with one or two channels.
4769
4770     * src/write_read_test.c tests/lossy_comp_test.c
4771     Added tests for VOC files.
4772
4773 2001-11-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4774
4775     * src/float_cast.h
4776     Added inline asm version of lrint/lrintf for MacOS. Solution provided by
4777     Stephane Letz.
4778
4779     * src/voc.c
4780     More work on this braindamaged format. The VOC files produced by SoX also
4781     have a number of inconsistencies.
4782
4783 2001-11-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4784
4785     * src/paf.c
4786     Added support for 8 bit PCM PAF files.
4787
4788     * tests/write_read_test.c
4789     Added tests for 8 bit PAF files.
4790
4791 2001-11-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4792
4793     * tests/pcm_test.c
4794     New test program to test for correct scaling of integer values between
4795     different sized integer containers (ie short -> int).
4796     The new specs for libsndfile state that when the source and destination
4797     containers are of a different size, the most significant bit of the source
4798     value becomes the most significant bit of the destination container.
4799
4800     * src/pcm.c src/paf.c
4801     Modified to pass the above test program.
4802
4803     * tests/write_read_test.c tests/lossy_comp_test.c
4804     Modified to work with the new scaling rules.
4805
4806 2001-11-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4807
4808     * src/raw.c tests/write_read_test.c tests/write_read_test.c
4809     Added ability to do raw reads/writes of float, u-law and A-law files.
4810
4811     * src/*.[ch] examples/*.[ch] tests/*.[ch]
4812     Removed dependance on pcmbitwidth field of SF_INFO struct and moved to new
4813     SF_FORMAT_* types and use of SF_ENDIAN_BIG/LITTLE/CPU.
4814
4815 2001-11-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4816
4817     * src/*.[ch]
4818     Started implmentation of major changes documented in doc/version1.html.
4819
4820     Removed all usage of off_t which is not part of the ISO C standard. All
4821     places which were using it are now using type long which is the type of
4822     the offset parameter for the fseek function.
4823     This should fix problems on BeOS, MacOS and *BSD like systems which were
4824     failing "make check" because sizeof (long) != sizeof (off_t).
4825
4826 --------------------------------------------------------------------------------
4827 This is the boundary between version 1 of the library above and version 0 below.
4828 --------------------------------------------------------------------------------
4829
4830 2001-11-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4831
4832     * examples/sfplay_beos.cpp
4833     Added BeOS version of sfplay.c. This needs to be compiled using a C++
4834     compiler so is therefore not built by default. Thanks to Marcus Overhagen
4835     for providing this.
4836
4837 2001-11-10  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4838
4839     * examples/sfplay.c
4840     New example file showing how libsndfile can be used to read and play a
4841     sound file.
4842     At the moment on Linux is supported. Others will follow in the near future.
4843
4844 2001-11-09  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4845
4846     * src/pcm.c
4847     Fixed problem with normalisation code where a value of 1.0 could map to
4848     a value greater than MAX_SHORT or MAX_INT. Thanks to Roger Dannenberg for
4849     pointing this out.
4850
4851 2001-11-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4852
4853     * src/pcm.c
4854     Fixed scaling issue when reading/writing 8 bit files using
4855     sf_read/sf_write_short ().
4856     On read, values are scaled so that the most significant bit in the char
4857     ends up in the most significant bit of the short. On write, values are
4858     scaled so that most significant bit in the short ends up as the most
4859     significant bit in the char.
4860
4861 2001-11-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4862
4863     * src/au.c src/sndfile.c
4864     Added support for 32 bit float data in big and little endian AU files.
4865
4866     * tests/write_read_test.c
4867     Added tests for 32 bit float data in AU files.
4868
4869 2001-11-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4870
4871     * tests/lossy_comp_test.c
4872     Finalised testing of stereo files where possible.
4873
4874 2001-11-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4875
4876     * src/wav_ms_adpcm.c
4877     Fixed bug in writing stereo MS ADPCM WAV files. Thanks to Xu Xin for
4878     pointing out this problem.
4879
4880 2001-10-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4881
4882     * src/wav_ms_adpcm.c
4883     Modified function srate2blocksize () to handle 44k1Hz stereo files.
4884
4885 2001-10-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4886
4887     * src/w64.c
4888     Added support for Sonic Foundry 64 bit WAV format. As Linux (my main
4889     development platform) does not yet support 64 bit file offsets by default,
4890     current handling of this file format treats everything as 32 bit and fails
4891     openning the file, if it finds anything that goes beyond 32 bit values.
4892
4893     * src/sndfile.[hc] src/common.h src/Makefile.am
4894     Added hooks for W64 support.
4895
4896 2001-10-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4897
4898     * configure.in
4899     Added more warnings options to CFLAGS when the gcc compiler is detected.
4900
4901     * src/*.[ch] tests/*.c examples/*.c
4902     Started fixing the warning messages due to the new CFLASG.
4903
4904     * src/voc.c
4905     More work on VOC file read/writing.
4906
4907     * src/paf.c
4908     Found that PAF files were not checking the normalisation flag when reading
4909     or writing floats and doubles. Fixed it.
4910
4911     * tests/floating_point_test.c
4912     Added specific test for the above problem.
4913
4914     * src/float_cast.h src/pcm.c
4915     Added a section for Win32 to define lrint () and lrintf () in the header
4916     and implement it in the pcm.c
4917
4918 2001-10-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4919
4920     * sndfile-config.in m4/sndfile.m4
4921     These files were donated by Conrad Parker who also provided instructions
4922     on how to install them using autoconf/automake.
4923
4924     * src/float_cast.h
4925     Fiddled around with this file some more. On Linux and other gcc supported
4926     OSes use the C99 functions lrintf() and lrint() for casting from floating
4927     point to int without incurring the huge perfromance penalty (particularly
4928     on the i386 family) caused by the regular C cast from float to int.
4929     These new C99 functions replace the FLOAT_TO_* and DOUBLE_TO_* macros which
4930     I had been playing with.
4931
4932     * configure.in m4/lrint.m4 m4/lrintf.m4
4933     Add detection of these functions.
4934
4935 2001-10-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4936
4937     * src/voc.c
4938     Completed code for reading VOC files containing a single audio data
4939     segment.
4940     Started implementing code to handle files with multiple VOC_SOUND_DATA
4941     segments but couldn't be bothered finishing it. Multiple segment files can
4942     have different sample rates for different sections and other nasties like
4943     silence and repeat segments.
4944
4945 2001-10-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4946
4947     * src/common.h src/*.c
4948     Removed SF_PRIVATE struct field fdata and replaced it with extra_data.
4949
4950     * src/voc.c
4951     Further development of the read part of this woefult file format.
4952
4953 2001-10-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4954
4955     * src/float_cast.h
4956     Implemented gcc and i386 floating point to int cast macros. Standard cast
4957     will be used when not on gcc for i385.
4958
4959     * src/pcm.c
4960     Modified all uses of FLOAT/DOUBLE_TO_INT and FLOAT/DOUBLE_TO_SHORT casts to
4961     comply with macros in float_cast.h.
4962
4963 2001-10-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4964
4965     * src/voc.c
4966     Changed the TYPE_xxx enum names to VOC_TYPE_xxx to prevent name clashes
4967     on MacOS with CodeWarrior 6.0.
4968
4969     * MacOS/MacOS-readme.txt
4970     Updated the compile instructions. Probably still need work as I don't have
4971     access to a Mac.
4972
4973 2001-10-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4974
4975     * src/wav.c src/aiff.c common.c
4976     Changed all references to snprintf to LSF_SNPRINTF and all vsnprintf to
4977     LSF_VSNPRINTF. LSF_VSNPRINTF and LSF_VSNPRINTF are defined in common.h.
4978
4979     * src/common.h
4980     Added checking of HAVE_SNPRINTF and HAVE_VSNPRINTF and defining
4981     LSF_VSNPRINTF and LSF_VSNPRINTF to appropriate values.
4982
4983     * src/missing.c
4984     New file containing a minimal implementation of snprintf and vsnprintf
4985     functions named missing_snprintf and missing_vsnprintf respectively. These
4986     are only compliled into the binary if snprintf and/or vsnprintf are not
4987     available.
4988
4989 2001-09-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
4990
4991     * src/ircam.c
4992     New file to handle Berkeley/IRCAM/CARL files.
4993
4994     * src/sndfile.c src/common.h
4995     Modified for IRCAM handling.
4996
4997     * tests/*.c
4998     Added tests for IRCAM files.
4999
5000 2001-09-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5001
5002     * src/wav.c
5003     Apparently microsoft windows (tm) doesn't like ulaw and Alaw WAV files with
5004     20 byte format chunks (contrary to ms's own documentation). Fixed the WAV
5005     header writing code to generate smaller ms compliant ulaw and Alaw WAV
5006     files.
5007
5008 2001-09-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5009
5010     * tests/stdio_test.sh tests/stdio_test.c
5011     Shell script was rewritten as a C program due to incompatibilities of the
5012     sh shell on Linux and Solaris.
5013
5014 2001-09-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5015
5016     * tests/stdio_test.sh tests/stdout_test.c tests/stdin_test.c
5017     New test programs to verify the correct operation of reading from stdin and
5018     writing to stdout.
5019
5020     * src/sndfile.c wav.c au.c nist.c paf.c
5021     Fixed a bugs uncovered by the new test programs above.
5022
5023 2001-09-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5024
5025     * src/sndfile.c wav.c
5026     Fixed a bug preventing reading a file from stdin. Found by T. Narita.
5027
5028 2001-09-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5029
5030     * src/common.h
5031     Fixed a problem on OpenBSD 2.9 which was causing sf_seek() to fail on IMA
5032     WAV files. Root cause was the declaration of the func_seek typedef not
5033     matching the functions it was actually being used to point to. In OpenBSD
5034     sizeof (off_t) != sizeof (int). Thanks to Heikki Korpela for allowing me
5035     to log into his OpenBSD machine to debug this problem.
5036
5037 2001-09-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5038
5039     * src/sndfile.c
5040     Implemented sf_command ("norm float").
5041
5042     * src/*.c
5043     Implemented handling of sf_command ("set-norm-float"). Float normalization
5044     can now be turned on and off.
5045
5046     * tests/double_test.c
5047     Renamed to floating_point_test.c. Modified to include tests for all scaled
5048     reads and writes of floats and doubles.
5049
5050     * src/au_g72x.c
5051     Fixed bug in normalization code found with improved floating_point_test
5052     program.
5053
5054     * src/wav.c
5055     Added code for parsing 'INFO' and 'LIST' chunks. Will be used for extract
5056     text annotations from WAV files.
5057
5058     * src/aiff.c
5059     Added code for parsing '(c) ' and 'ANNO' chunks. Will be used for extract
5060     text annotations from WAV files.
5061
5062 2001-09-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5063
5064     * examples/sf_info.c example/Makefile.am
5065     Renamed to sndfile_info.c. The program sndfile_info will now be installed
5066     when the library is installed.
5067
5068     * src/float_cast.h
5069     New file defining floating point to short and int casts. These casts will
5070     eventually replace all flot and double casts to short and int. See comments
5071     at the top of the file for the reasoning.
5072
5073     * src/*.c
5074     Changed all default float and double casts to short or int with macros
5075     defined in floatcast.h. At the moment these casts do nothing. They will be
5076     replaced with faster float to int cast operations in the near future.
5077
5078 2001-08-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5079
5080     * tests/command_test.c
5081     New file for testing sf_command () functionality.
5082
5083     * src/sndfile.c
5084     Revisiting of error return values of some functions.
5085     Started implementing sf_command () a new function will allow on-the-fly
5086     modification of library behaviour, or instance, sample value scaling.
5087
5088     * src/common.h
5089     Added hook for format specific sf_command () calls to SNDFILE struct.
5090
5091     * doc/api.html
5092     Updated and errors corrected.
5093
5094     * doc/command.html
5095     New documentation file explaining new sf_command () function.
5096
5097 2001-08-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5098
5099     * src/sndfile.c
5100     Fixed error return values from sf_read*() and sf_write*(). There were
5101     numerous instances of -1 being returned through size_t. These now all set
5102     error int the SF_PRIVATE struct and return 0. Thanks to David Viens for
5103     spotting this.
5104
5105 2001-08-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5106
5107     * src/common.c
5108     Fixed use of va_arg() calls that were causing warning messages with the
5109     latest version of gcc (thanks Maurizio Umberto Puxeddu).
5110
5111 2001-07-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5112
5113     * src/*.c src/sfendian.h
5114     Moved definition of MAKE_MARKER macro to sfendian.h
5115
5116 2001-07-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5117
5118     * src/sndfile.c
5119     Modified sf_get_lib_version () so that version string will be visible using
5120     the Unix strings command.
5121
5122     * examples/Makefile.am examples/sfinfo.c
5123     Renamed sfinfo program and source code to sf_info. This prevents a name
5124     clash with the program included with libaudiofile.
5125
5126 2001-07-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5127
5128     * tests/read_seek_test.c tests/lossy_comp_test.c
5129     Added tests for sf_read_float () and sf_readf_float ().
5130
5131     * src/voc.c
5132     New files for handling Creative Voice files (not complete).
5133
5134     * src/samplitude.c
5135     New files for handling Samplitude files (not complete).
5136
5137 2001-07-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5138
5139     * src/aiff.c src/au.c src/paf.c src/svx.c src/wav.c
5140     Converted these files to using psf_binheader_readf() function. Will soon be
5141     ready to attempt to make reading writing from pipes work reliably.
5142
5143     * src/*.[ch]
5144     Added code for sf_read_float () and sf_readf_float () methods of accessing
5145     file data.
5146
5147 2001-07-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5148
5149     * src/paf.c src/wav_gsm610.c
5150     Removed two printf()s which had escaped notice for some time (thanks
5151     Sigbj�rn Skj�ret).
5152
5153 2001-07-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5154
5155     * src/wav_gsm610.c
5156     Fixed a bug which prevented GSM 6.10 encoded WAV files generated by
5157     libsndfile from being played in Windoze (thanks klay).
5158
5159 2001-07-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5160
5161     * src/common.[ch]
5162     Implemented psf_binheader_readf() which will do for file header reading what
5163     psf_binheader_writef() did for writing headers. Will eventually allow
5164     libsndfile to read and write from pipes, including named pipes.
5165
5166 2001-07-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5167
5168     * MacOS/config.h Win32/config.h
5169     Attempted to bring these two files uptodate with src/config.h. As I don't
5170     have access to either of these systems support for them may be completely
5171     broken.
5172
5173 2001-06-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5174
5175     * src/float32.c
5176     Fixed bug for big endian processors that can't read 32 bit IEEE floats. Now
5177     tested on Intel x86 and UltraSparc processors.
5178
5179 2001-06-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5180
5181     * src/aiff.c
5182     Modified to allow REX files (from Propellorhead's Recycle and Reason
5183     programs) to be read.
5184     REX files are basically an AIFF file with slightly unusual sequence of
5185     chunks (AIFF files are supposed to allow any sequence) and some extra
5186     application specific information.
5187     Not yet able to write a REX file as the details of the application specific
5188     data is unknown.
5189
5190 2001-06-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5191
5192     * src/wav.c
5193     Fixed endian bug when reading PEAK chunk on big endian machines.
5194
5195     * src/common.c
5196     Fixed endian bug when reading PEAK chunk on big endian machines with
5197     --enable-force-broken-float configure option.
5198     Fix psf_binheader_writef for (FORCE_BROKEN_FLOAT ||______)
5199
5200 2001-06-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5201
5202     * configure.in src/config.h.in
5203     Removed old CAN_READ_WRITE_x86_IEEE configure variable now that float
5204     capabilities are detected at run time.
5205     Added FORCE_BROKEN_FLOAT to allow testing of broken float code on machines
5206     where the processor can in fact handle floats correctly.
5207
5208     * src/float32.c
5209     Rejigged code reading and writing of floats on broken processors.
5210
5211     * m4/
5212     Removed this directory and all its files as they are no longer needed.
5213
5214 2001-06-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5215
5216     * tests/peak_chunk_test.c
5217     New test to validate reading and writing of peak chunk.
5218
5219     * examples/sfconvert
5220     Added -float32 option.
5221
5222     * src/*.c
5223     Changed all error return values to negative values (ie the negative of what
5224     they were).
5225
5226     * src/sndfile.c tests/error_test.c
5227     Modified to take account of the previous change.
5228
5229 2001-06-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5230
5231     * src/float32.c
5232     File renamed from wav_float.c and renamed function to something more
5233     general.
5234     Added runtime detection of floating point capabilities.
5235     Added recording of peaks during write for generation of PEAK chunk.
5236
5237     * src/wav.c src/aiff.c
5238     Added handing for PEAK chunk for floating point files. PEAK is read when the
5239     file headers are read and generated when the file is closed. Logic is in
5240     place for adding PEAK chunk to end of file when writing to a pipe (reading
5241     and writing from/to pipe to be implemented soon).
5242
5243     * src/sndfile.c
5244     Modified sf_signal_max () to use PEAK values if present.
5245
5246 2001-06-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5247
5248     * src/*.c
5249     Added pcm_read_init () and pcm_write_init () to src/pcm.c and removed all
5250     other calls to functions in this file from the filetype specific files.
5251
5252     * src/*.c
5253     Added alaw_read_init (), alaw_write_int (), ulaw_read_init () and
5254     ulaw_write_init () and removed all other calls to functions in alaw.c and
5255     ulaw.c from the filetype specific files.
5256
5257     * tests/write_read_test.c
5258     Added tests to validate sf_seek () on all file types.
5259
5260     * src/raw.c
5261     Implemented raw_seek () function to fix a bug where
5262     sf_seek (file, 0, SEEK_SET) on a RAW file failed.
5263
5264     * src/paf.c
5265     Fixed a bug in paf24_seek () found due to added seeks tests in
5266     tests/write_read_test.c
5267
5268 2001-06-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5269
5270     * tests/read_seek_test.c
5271     Fixed a couple of broken binary files.
5272
5273     * src/aiff.c src/wav.c
5274     Added handling of PEAK chunks on file read.
5275
5276 2001-05-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5277
5278     * check_libsndfile.py
5279     New file for the regression testing of libsndfile.
5280     check_libsndfile.py is a Python script which reads in a file containing
5281     filenames of audio files. Each file is checked by running the examples/sfinfo
5282     program on them and checking for error or warning messages in the libsndfile
5283     log buffer.
5284
5285     * check_libsndfile.list
5286     This is an example list of audio files for use with check_libsndfile.py
5287
5288     * tests/lossy_comp_test.c
5289     Changed the defined value of M_PI for math header files which don't have it.
5290     This fixed validation test failures on MetroWerks compilers. Thanks to Lord
5291     Praetor Satanus of Acheron for bringing this to my attention.
5292
5293 2001-05-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5294
5295     * src/common.[ch]
5296     Removed psf_header_setf () which was no longer required after refactoring
5297     and simplification of header writing.
5298     Added 'z' format specifier to psf_binheader_writef () for zero filling header
5299     with N bytes. Used by paf.c and nist.c
5300
5301     * tests/check_log_buffer.c
5302     New file implementing check_log_buffer () which reads the log buffer of a
5303     SNDFILE* object and searches for error and warning messages. Calls exit ()
5304     if any are found.
5305
5306     * tests/*.c
5307     Added calls to check_log_buffer () after each call to sf_open_XXX ().
5308
5309 2001-05-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5310
5311     * src/wav.c src/wav_ms_adpcm.c src/wav_gsm610.c
5312     Major rehack of header writing using psf_binheader_writef ().
5313
5314 2001-05-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5315
5316     * src/wav.c src/wav_ima_adpcm.c
5317     Major rehack of header writing using psf_binheader_writef ().
5318
5319 2001-05-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5320
5321     * src/wav.c
5322     Changed return type of get_encoding_str () to prevent compiler warnings on
5323     Mac OSX.
5324
5325     * src/aiff.c src/au.c
5326     Major rehack of header writing using psf_binheader_writef ().
5327
5328 2001-05-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5329
5330     * src/common.h src/common.c
5331     Added comments.
5332     Name of log buffer changed from strbuffer to logbuffer.
5333     Name of log buffer index variable changed from strindex to logindex.
5334
5335     * src/*.[ch]
5336     Changed name of internal logging function from psf_sprintf () to
5337     psf_log_printf ().
5338     Changed name of internal header generation functions from
5339     psf_[ab]h_printf () to psf_asciiheader_printf () and
5340     psf_binheader_writef ().
5341     Changed name of internal header manipulation function psf_hsetf () to
5342     psf_header_setf ().
5343
5344 2001-05-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5345
5346     * src/nist.c
5347     Fixed reading and writing of sample_byte_format header. "01" means little
5348     endian and "10" means big endian regardless of bit width.
5349
5350     * configure.in
5351     Detect Mac OSX and disable -Wall and -pedantic gcc options. Mac OSX is
5352     way screwed up and spews out buckets of warning messages from the system
5353     headers.
5354     Added --disable-gcc-opt configure option (sets gcc optimisation to -O0 ) for
5355     easier debugging.
5356     Made decision to harmonise source code version number and .so library
5357     version number. Future releases will stick to this rule.
5358
5359     * doc/new_file_type.HOWTO
5360     New file to document the addition of new file types to libsndfile.
5361
5362 2001-05-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5363
5364     * src/nist.c
5365     New file for reading/writing Sphere NIST audio file format.
5366     Originally requested by Elis Pomales in 1999.
5367     Retrieved from unstable (and untouched for 18 months) branch of libsndfile.
5368     Some vital information gleaned from the source code to Bill Schottstaedt's
5369     sndlib library : ftp://ccrma-ftp.stanford.edu/pub/Lisp/sndlib.tar.gz
5370     Currently reading and writing 16, 24 and 32 bit, big-endian and little
5371     endian, stereo and mono files.
5372
5373     * src/common.h src/common.c
5374     Added psf_ah_printf () function to help construction of ASCII headers (ie NIST).
5375
5376     * configure.in
5377     Added test for vsnprintf () required by psf_ah_printf ().
5378
5379     * tests/write_read_test.c
5380     Added tests for supported NIST files.
5381
5382 2001-05-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5383
5384     * tests/write_read_test.c
5385     Added tests for little endian AIFC files.
5386
5387     * src/aiff.c
5388     Minor re-working of aiff_open_write ().
5389     Added write support for little endian PCM encoded AIFC files.
5390
5391 2001-05-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5392
5393     * src/aiff.c
5394     Minor re-working of aiff_open_read ().
5395     Added read support for little endian PCM encoded AIFC files from the Mac
5396     OSX CD ripper program. Guillaume Lessard provided a couple of sample files
5397     and a working patch.
5398     The patch was not used as is but gave a good guide as to what to do.
5399
5400 2001-05-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5401
5402     * src/sndfile.h
5403     Fixed comments about endian-ness of WAV and AIFF files. Guillaume Lessard
5404     pointed out the error.
5405
5406 2001-04-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5407
5408     * examples/make_sine.c
5409     Re-write of this example using sample rate and required frequency in Hz.
5410
5411 2001-02-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5412
5413     * src/sndfile.c
5414     Fixed bug that prevented known file types from being read as RAW PCM data.
5415
5416 2000-12-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5417
5418     * src/aiff.c
5419     Added handing of COMT chunk.
5420
5421 2000-11-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5422
5423     * examples/sfconvert.c
5424     Fixed bug in normalisatio code. Pointed out by Johnny Wu.
5425
5426 2000-11-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5427
5428     * Win32/config.h
5429     Fixed the incorrect setting of HAVE_ENDIAN_H parameter. Win32 only issue.
5430
5431 2000-10-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5432
5433     * tests/Makefile.am
5434     Added -lm for write_read_test_LDADD.
5435
5436 2000-10-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5437
5438     * src/sndfile.c src/au.c
5439     Fixed bug which prevented writing of G723 24kbps AU files.
5440
5441     * tests/lossy_comp_test.c
5442     Corrrection to options for G723 tests.
5443
5444     * configure.in
5445     Added --disable-gcc-pipe option for DJGPP compiler (gcc on MS-DOS) which
5446     doesn't allow gcc -pipe option.
5447
5448 2000-09-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5449
5450     * src/ulaw.c src/alaw.c src/wav_imaadpcm.c src/msadpcm.c src/wav_gsm610.c
5451     Fixed normailsation bugs shown up by new double_test program.
5452
5453 2000-08-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5454
5455     * src/pcm.c
5456     Fixed bug in normalisation code (spotted by Steve Lhomme).
5457
5458     * tests/double_test.c
5459     New file to test scaled and unscaled sf_read_double() and sf_write_double()
5460     functions.
5461
5462 2000-08-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5463
5464     * COPYING
5465     Changed to the LGPL COPYING file (spotted by H. S. Teoh).
5466
5467 2000-08-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5468
5469     * src/sndfile.h
5470     Removed prototype of unimplemented function sf_get_info(). Added prototype
5471     for sf_error_number() Thanks to Sigbj�rn Skj�ret for spotting these.
5472
5473 2000-08-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5474
5475     * src/newpcm.h
5476     New file to contain a complete rewrite of the PCM data handling.
5477
5478 2000-08-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5479
5480     * src/sndfile.c
5481     Fixed a leak of FILE* pointers in sf_open_write(). Thanks to Sigbj�rn
5482     Skj�ret for spotting this one.
5483
5484 2000-08-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5485
5486     * src/au_g72x.c src/G72x/g72x.c
5487     Added G723 encoded AU file support.
5488
5489     * tests/lossy_comp_test.c
5490     Added tests for G721 and G723 encoded AU files.
5491
5492 2000-08-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5493
5494     * all files
5495     Changed the license to LGPL. Albert Faber who had copyright on
5496     Win32/unistd.h gave his permission to change the license on that file. All
5497     other files were either copyright erikd AT mega-nerd DOT com or copyright
5498     under a GPL/LGPL compatible license.
5499
5500 2000-08-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5501
5502     * tests/lossy_comp_test.c
5503     Fixed incorrect error message.
5504
5505     * src/au_g72x.c src/G72x/*
5506     G721 encoded AU files now working.
5507
5508     * Win32/README-Win32.txt
5509     Replaced this file with a new one which gives a full explanation
5510     of how to build libsndfile under Win32. Thanks to Mike Ricos.
5511
5512 2000-08-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5513
5514     * src/*.[ch]
5515     Removed double leading underscores from the start of all variable and
5516     function names. Identifiers with a leading underscores are reserved
5517     for use by the compiler.
5518
5519     * src/au_g72x.c src/G72x/*
5520     Continued work on G721 encoded AU files.
5521
5522 2000-07-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5523
5524     * src/G72x/*
5525     New files for reading/writing G721 and G723 ADPCM audio. These files
5526     are from a Sun Microsystems reference implementation released under a
5527     free software licence.
5528     Extensive changes to this code to make it fit in with libsndfile.
5529     See the ChangeLog in this directory for details.
5530
5531     * src/au_g72x.c
5532     New file for G721 encoded AU files.
5533
5534 2000-07-08  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5535
5536     * libsndfile.spec.in
5537     Added a spec file for making RPMs. Thanks to Josh Green for supplying this.
5538
5539 2000-06-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5540
5541     * src/sndfile.c src/sndfile.h
5542     Add checking for and handling of header-less u-law encoded AU/SND files.
5543     Any file with a ".au" or ".snd" file extension and without the normal
5544     AU file header is treated as an 8kHz, u-law encoded file.
5545
5546     * src/au.h
5547     New function for opening a headerless u-law encoded file for read.
5548
5549 2000-06-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5550
5551     * src/paf.c
5552     Add checking for files shorter than minimal PAF file header length.
5553
5554 2000-06-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5555
5556     * tests/write_read_test.c
5557     Added extra sf_perror() calls when sf_write_XXXX fails.
5558
5559 2000-05-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5560
5561     * src/common.c
5562     Modified usage of va_arg() macro to work correctly on PowerPC
5563     Linux. Thanks to Kyle Wheeler for giving me ssh access to his
5564     machine while I was trying to track this down.
5565
5566     * configure.in src/*.[ch]
5567     Sorted out some endian-ness issues brought up by PowerPC Linux.
5568
5569     * tests/read_seek_test.c
5570     Added extra debugging for when tests fail.
5571
5572 2000-05-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5573
5574     * src/wav.c
5575     Fixed bug in GSM 6.10 handling for big-endian machines. Thanks
5576     to Sigbj�rn Skj�ret for reporting this.
5577
5578 2000-04-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5579
5580     * src/sndfile.c src/wav.c src/wav_gsm610.c
5581     Finallised writing of GSM 6.10 WAV files.
5582
5583     * tests/lossy_comp_test.c
5584     Wrote new test code for GSM 6.10 files.
5585
5586     * examples/sfinfo.c
5587     Fixed incorrect format in printf() statement.
5588
5589 2000-04-06  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5590
5591     * src/sndfile.h.in
5592     Fixed comments about sf_perror () and sf_error_str ().
5593
5594 2000-03-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5595
5596     * configure.in
5597     Fixed --enable-justsrc option.
5598
5599 2000-03-07  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5600
5601     * wav.c
5602     Fixed checking of bytespersec field of header. Still some weirdness
5603     with some files.
5604
5605 2000-03-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5606
5607     * tests/lossy_comp_test.c
5608     Added option to test PCM WAV files (sanity check).
5609     Fixed bug in sf_seek() tests.
5610
5611 2000-02-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5612
5613     * src/sndfile.c src/wav.c
5614     Minor changes to allow writing of GSM 6.10 WAV files.
5615
5616 2000-02-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5617
5618     * configure.in Makefile.am src/Makefile.am
5619     Finally got around to figuring out how to build a single library from
5620     multiple source directories.
5621     Reading GSM 6.10 files now seems to work.
5622
5623 2000-01-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5624
5625     * src/wav.c
5626     Added more error reporting in read_fmt_chunk().
5627
5628 1999-12-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5629
5630     * examples/sfinfo.c
5631     Modified program to accept multiple filenames from the command line.
5632
5633 1999-11-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5634
5635     * src/wav_ima_adpcm.c
5636     Moved code around in preparation to adding ability to read/write IMA ADPCM
5637     encoded AIFF files.
5638
5639 1999-11-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5640
5641     * src/common.c
5642     Fixed put_int() and put_short() macros used by _psf_hprintf() which were
5643     causing seg. faults on Sparc Solaris.
5644
5645 1999-11-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5646
5647     * src/common.c
5648     Added string.h to includes. Thanks to Sigbjxrn Skjfret.
5649
5650     * src/svx.c
5651     Fixed __svx_close() function to ensure FORM and BODY chunks are correctly
5652     set.
5653
5654 1999-10-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5655
5656     * src/au.c
5657     Fixed handling of incorrect size field in AU header on read. Thanks to
5658     Christoph Lauer for finding this problem.
5659
5660 1999-09-28  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5661
5662     * src/aiff.c
5663     Fixed a bug with incorrect SSND chunk length being written. This also lead
5664     to finding an minor error in AIFF header parsing. Thanks to Dan Timis for
5665     pointing this out.
5666
5667 1999-09-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5668
5669     * src/paf.c
5670     Fixed a bug with reading and writing 24 bit stereo PAF files. This problem
5671     came to light when implementing tests for the new functions which operate
5672     in terms of frames rather than items.
5673
5674 1999-09-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5675
5676     * src/sndfile.c
5677     Modified file type detection to use first 12 bytes of file rather than
5678     file name extension. Required this because NIST files use the same
5679     filename extension as Microsoft WAV files.
5680
5681     * src/sndfile.c src/sndfile.h
5682     Added short, int and double read/write functions which work in frames
5683     rather than items. This was originally suggested by Maurizio Umberto
5684     Puxeddu.
5685
5686 1999-09-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5687
5688     * src/svx.c
5689     Finished off implementation of write using __psf_hprintf().
5690
5691 1999-09-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5692
5693     * src/common.h
5694     Added a buffer to SF_PRIVATE for writing the header. This is required
5695     to make generating headers for IFF/SVX files easier as well as making
5696     it easier to do re-write the headers which will be required when
5697     sf_rewrite_header() is implemented.
5698
5699     * src/common.c
5700     Implemented __psf_hprintf() function. This is an internal function
5701     which is documented briefly just above the code.
5702
5703 1999-09-05  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5704
5705     * src/sndfile.c
5706     Fixed a bug in sf_write_raw() where it was returning incorrect values
5707     (thanks to Richard Dobson for finding this one). Must put in a test
5708     routine for sf_read_raw and sf_write_raw.
5709
5710     * src/aiff.c
5711     Fixed default FORMsize in __aiff_open_write ().
5712
5713     * src/sndfile.c
5714     Added copy of filename to internal data structure. IFF/SVX files
5715     contain a NAME header chunk. Both sf_open_read() and sf_open_write()
5716     copy the file name (less the leading path information) to the
5717     filename field.
5718
5719     * src/svx.c
5720     Started implementing writing of files.
5721
5722 1999-08-04  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5723
5724     * src/svx.c
5725     New file for reading/writing 8SVX and 16SVX files.
5726
5727     * src/sndfile.[ch] src/common.h
5728     Changes for SVX files.
5729
5730     * src/aiff.c
5731     Fixed header parsing when unknown chunk is found.
5732
5733 1999-08-01  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5734
5735     * src/paf.c
5736     New file for reading/writing Ensoniq PARIS audio file format.
5737
5738     * src/sndfile.[ch] src/common.h
5739     Changes for PAF files.
5740
5741     * src/sndfile.[ch]
5742     Added stuff for sf_get_lib_version() function.
5743
5744
5745 1999-07-31  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5746
5747     * src/sndfile.h MacOS/config.h
5748     Fixed minor MacOS configuration issues.
5749
5750 1999-07-30  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5751
5752     * MacOS/
5753     Added a new directory for the MacOS config.h file and the
5754     readme file.
5755
5756     * src/aiff.c
5757     Fixed calculation of datalength when reading SSND chunk. Thanks to
5758     Sigbj�rn Skj�ret for pointing out this error.
5759
5760 1999-07-29  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5761
5762     * src/sndfile.c src/sndfile.h src/raw.c
5763     Further fixing of #includes for MacOS.
5764
5765 1999-07-25  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5766
5767     * src/wav.c src/aiff.c
5768     Added call to ferror () in main header parsing loop of __XXX_open_read
5769     functions. This should fix problems on platforms (MacOS, AmigaOS) where
5770     fseek()ing or fread()ing beyond the end of the file puts the FILE*
5771     stream in an error state until clearerr() is called.
5772
5773     * tests/write_read_test.c
5774     Added tests for RAW header-less PCM files.
5775
5776     * src/common.h
5777     Moved definition of struct tribyte to pcm.c which is the only place
5778     which needs it.
5779
5780     * src/pcm.c
5781     Modified all code which assumed sizeof (struct tribyte) == 3. This code
5782     did not work on MacOS. Thanks to Ben "Jacobs" for pointing this out.
5783
5784     * src/au.c
5785     Removed <sys/stat.h> from list of #includes (not being used).
5786
5787     * src/sndfile.c
5788     Added MacOS specific #ifdef to replace <sys/stat.h>.
5789
5790     * src/sndfile.h
5791     Added MacOS specific #ifdef to replace <sys/stat.h>.
5792
5793     * src/sndfile.h
5794     Added MacOS specific typedef for off_t.
5795
5796     * MacOS-readme.txt
5797     New file with instructions for building libsndfile under MacOS. Thanks
5798     to Ben "Jacobs" for supplying these instructions.
5799
5800 1999-07-24  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5801
5802     * configure.in
5803     Removed sndfile.h from generated file list as there were no longer
5804     any autoconf substitutions being made.
5805
5806     * src/raw.c
5807     New file for handling raw header-less PCM files. In order to open these
5808     for read, the user must specify format, pcmbitwidth and channels in the
5809     SF_INFO struct when calling sf_open_read ().
5810
5811     * src/sndfile.c
5812     Added support for raw header-less PCM files.
5813
5814 1999-07-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5815
5816     * examples/sfinfo.c
5817     Removed options so the sfinfo program always prints out all the information.
5818
5819 1999-07-19  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5820
5821     * src/alaw.c
5822     New file for A-law encoding (similar to u-law).
5823
5824     * tests/alaw_test.c
5825     New test program to test the A-law encode/decode lookup tables.
5826
5827     * tests/lossy_comp_test.c
5828     Added tests for a-law encoded WAV, AU and AULE files.
5829
5830 1999-07-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5831
5832     * src/sndfile.c src/au.c
5833     Removed second "#include <unistd.h>". Thanks to Ben "Jacobs" for pointing
5834     this out.
5835
5836 1999-07-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5837
5838     * tests/ulaw_test.c
5839     New test program to test the u-law encode/decode lookup tables.
5840
5841 1999-07-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5842
5843     * src/sndfile.h
5844     Made corrections to comments on the return values from sf_seek ().
5845
5846     * src/sndfile.c
5847     Fixed boundary condition checking bug and accounting bug in sf_read_raw ().
5848
5849 1999-07-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5850
5851     * src/au.c src/ulaw.c
5852     Finished implementation of u-law encoded AU files.
5853
5854     * src/wav.c
5855     Implemented reading and writing of u-law encoded WAV files.
5856
5857     * tests/
5858     Changed name of adpcm_test.c to lossy_comp_test.c. This test program
5859     will now be used to test Ulaw and Alaw encoding as well as APDCM.
5860     Added tests for Ulaw encoded WAV files.
5861
5862 1999-07-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5863
5864     * tests/adpcm_test.c
5865     Initialised amp variable in gen_signal() to remove compiler warning.
5866
5867 1999-07-12  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5868
5869     * src/aiff.c
5870     In __aiff_open_read () prevented fseek()ing beyond end of file which
5871     was causing trouble on MacOS with the MetroWerks compiler. Thanks to
5872     Ben "Jacobs" for pointing this out.
5873
5874     *src/wav.c
5875     Fixed as above in __wav_open_read ().
5876
5877 1999-07-01    Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5878
5879     * src/wav_ms_adpcm.c
5880     Implemented MS ADPCM encoding. Code cleanup of decoder.
5881
5882     * tests/adpcm_test.c
5883     Added tests for MS ADPCM WAV files.
5884
5885     * src/wav_ima_adpcm.c
5886     Fixed incorrect parameter in call to srate2blocksize () from
5887     __ima_writer_init ().
5888
5889 1999-06-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5890
5891     * tests/read_seek_test.c
5892     Added test for 8 bit AIFF files.
5893
5894 1999-06-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5895
5896     * tests/write_read_test.c
5897     Removed test for IMA ADPCM WAV files which is now done in adpcm_test.c
5898
5899     * configure.in
5900     Added -Wconversion to CFLAGS.
5901
5902     * src/*.c tests/*.c examples/*.c
5903     Fixed all warnings resulting from use of -Wconversion.
5904
5905 1999-06-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5906
5907     * src/wav.c
5908     Added fact chunk handling on read and write for all non WAVE_FORMAT_PCM
5909     WAV files.
5910
5911     * src/wav_ima.c
5912     Changed block alignment to be dependant on sample rate. This should make
5913     WAV files created with libsndfile compatible with the MS Windows media
5914     players.
5915
5916     * tests/adpcm_test.c
5917     Reimplemented adpcm_test_short and implemented adpcm_test_int and
5918     adpcm_test_double.
5919     Now have full testing of IMA ADPCM WAV file read, write and seek.
5920
5921 1999-06-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5922
5923     * src/wav_float.c
5924     Fixed function prototype for x86f2d_array () which was causing ocassional
5925     seg. faults on Sparc Solaris machines.
5926
5927 1999-06-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5928
5929     * src/aiff.c
5930     Fixed bug in __aiff_close where the length fields in the header were
5931     not being correctly calculated before writing.
5932
5933     * tests/write_read_test.c
5934     Modified to detect the above bug in WAV, AIFF and AU files.
5935
5936 1999-06-12    Erik de Castro Lopo     <erikd AT mega-nerd DOT com>
5937
5938     * Win32/*
5939     Added a contribution from Albert Faber to allow libsndfile to compile
5940     under Win32 systems. libsndfile will now be used as part of LAME the
5941     the MPEG 1 Layer 3 encoder (http://internet.roadrunner.com/~mt/mp3/).
5942
5943 1999-06-11    Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5944
5945     * configure.in
5946     Changed to reflect previous changes.
5947
5948     * src/wav_ima_adpcm.c
5949     Fixed incorrect calculation of bytespersec header field (IMA ADPCM only).
5950
5951     Fixed bug when writing from int or double data to IMA ADPCM file. Will need
5952     to write test code for this.
5953
5954     Fixed bug in __ima_write () whereby the length of the current block was
5955     calculated incorrectly. Thanks to Jongcheon Park for pointing this out.
5956
5957 1999-03-27  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5958
5959     * src/*.c
5960     Changed all read/write/lseek function calls to fread/fwrite/
5961     fseek/ftell and added error checking of return values from
5962     fread and fwrite in critical areas of the code.
5963
5964     * src/au.c
5965     Fixed incorrect datasize element in AU header on write.
5966
5967     * tests/error_test.c
5968     Add new test to check all error values have an associated error
5969     string. This will avoid embarrassing real world core dumps.
5970
5971 1999-03-23  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5972
5973     * src/wav.c src/aiff.c
5974     Added handling for unknown chunk markers in the file.
5975
5976 1999-03-22  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5977
5978     * src/sndfile.c
5979     Filled in missing error strings in SndfileErrors array. Missing entries
5980     can cause core dumps when calling sf_error-str (). Thanks to Sam
5981     <mrsam at-sign geocities.com> for finding this problem.
5982
5983 1999-03-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5984
5985     * src/wav_ima_adpcm.c
5986     Work on wav_ms_adpcm.c uncovered a bug in __ima_read () when reading
5987     stereo files. Caused by not adjusting offset into buffer of decoded
5988     samples for 2 channels. A similar bug existed in __ima_write ().
5989     Need a test for stereo ADPCM files.
5990
5991     * src/wav_ms_adpcm.c
5992     Decoder working correctly.
5993
5994 1999-03-18  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
5995
5996     * configure.in Makefile.am
5997     Added --enable-justsrc configuration variable sent by Sam
5998     <mrsam at-sign geocities.com>.
5999
6000     * src/wav_ima_adpcm.c
6001     Fixed bug when reading beyond end of data section due to not
6002     checking pima->blockcount.
6003     This uncovered __ima_seek () bug due to pima->blockcount being set
6004     before calling __ima_init_block ().
6005
6006 1999-03-17  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6007
6008     * src/wav.c
6009     Started implementing MS ADPCM decoder.
6010     If file is WAVE_FORMAT_ADPCM and length of data chunk is odd, this
6011     encoder seems to add an extra byte. Why not just give an even data
6012     length?
6013
6014 1999-03-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6015
6016     * src/wav.c
6017     Split code out of wav.c to create wav_float.c and wav_ima_adpcm.c.
6018     This will make it easier to add and debug other kinds of WAV files
6019     in future.
6020
6021 1999-03-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6022
6023     * tests/
6024     Added adpcm_test.c which implements test functions for
6025     IMA ADPCM reading/writing/seeking etc.
6026
6027     * src/wav.c
6028     Fixed many bugs in IMA ADPCM encoder and decoder.
6029
6030 1999-03-11  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6031
6032     * src/wav.c
6033     Finished implementing IMA ADPCM encoder and decoder (what a bitch!).
6034
6035 1999-03-03  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6036
6037     * src/wav.c
6038     Started implementing IMA ADPCM decoder.
6039
6040 1999-03-02  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6041
6042     * src/sndfile.c
6043     Fixed bug where the sf_read_XXX functions were returning a
6044     incorrect read count when reading past end of file.
6045     Fixed bug in sf_seek () when seeking backwards from end of file.
6046
6047     * tests/read_seek_test.c
6048     Added multiple read test to short_test(), int_test () and
6049     double_test ().
6050     Added extra chunk to all test WAV files to test that reading
6051     stops at end of 'data' chunk.
6052
6053 1999-02-21  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6054
6055     * tests/write_read_test.c
6056     Added tests for little DEC endian AU files.
6057
6058     * src/au.c
6059     Add handling for DEC format little endian AU files.
6060
6061 1999-02-20  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6062
6063     * src/aiff.c src/au.c src/wav.c
6064     Add __psf_sprintf calls during header parsing.
6065
6066     * src/sndfile.c src/common.c
6067     Implement sf_header_info (sndfile.c) function and __psf_sprintf (common.c).
6068
6069     * tests/write_read_test.c
6070     Added tests for 8 bit PCM files (WAV, AIFF and AU).
6071
6072     * src/au.c src/aiff.c
6073     Add handling of 8 bit PCM data format.
6074
6075     * src/aiff.c
6076     On write, set blocksize in SSND chunk to zero like everybody else.
6077
6078 1999-02-16  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6079
6080     * src/pcm.c:
6081     Fixed bug in let2s_array (cptr was not being initialised).
6082
6083     * src/sndfile.c:
6084     Fixed bug in sf_read_raw and sf_write_raw. sf_seek should
6085     now work when using these functions.
6086
6087 1999-02-15  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6088
6089     * tests/write_read_test.c:
6090     Force test_buffer array to be double aligned. Sparc Solaris
6091     requires this.
6092
6093 1999-02-14  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6094
6095     * src/pcm.c:
6096     Fixed a bug which was causing errors in the reading
6097     and writing of 24 bit PCM files.
6098
6099     * doc/api.html
6100     Finished of preliminary documentaion.
6101
6102 1999-02-13  Erik de Castro Lopo  <erikd AT mega-nerd DOT com>
6103
6104     * src/aiff.c:
6105     Changed reading of 'COMM' chunk to avoid reading an int
6106     which overlaps an int (4 byte) boundary.
6107