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