Revision history for Perl extension Audio::Wav.
0.01 Fri Dec 11 05:54:22 1998
- original version; created by h2xs 1.18
0.02 Sat Sep 01 15:15:00 2001
- works on big endian machines!
- no need for Audio::Tools anymore
- added support for info & sampler blocks.
- now honours padding bytes
- read & read_raw no longer return non-audio data.
- added error handler.
- slight speed improvement for read & write methods
- some other fixes.
0.03 Fri Jun 11 13:29:00 2004
- minor bug fix to pass tests with Perl 5.8.3 (thanks to Jeremy Devenport).
0.04 Thu Dec 30 07:47:00 2004
- fixed a bug in Audio::Wav::Read::move_to, now adds where the data actually starts to the position given.
- Audio::Wav::Read::move_to now rereads data length to see if file has grown since this was last read.
- added method Audio::Wav::Read::reread_length, rereads the length of the file in case it is being written to as we are reading it.
- added method Audio::Wav::Read::read_raw_samples which will read X samples in raw format.
- added method Audio::Wav::Read::position_samples which returns the current audio data position in samples.
- in method Audio::Wav::Write::add_cue, if sample position supplied is undefined, then the position will be the current position (end of all data written so far).
- in method Audio::Wav::Write, moved the option of not caching data from the write_raw method to new.
0.05 Tue Oct 25 12:20:00 2005
- Audio::Wav::Read::position_samples should have divided by block_align, rather than multiplied (thanks David Brandt).
- Fixed bug where unknown blocks weren't skipped (thanks Robert Hiller).
0.06 Wed Mar 22 12:00:00 2006
- Fixed a circular reference in Audio::Wav::Write::Header that was causing memory to leak (thanks Sumitro Chowdhury).
- Tidied up bits and pieces.
- Added very basic support for WAVEFORMATEXTENSIBLE.
- When writing files, finish() will now be called by DESTROY if necessary.
0.07 Sun Feb 07 18:05:41 GMT 2010
- change API so you can call Audio::Wav->{read|write} w/o new() if preferred
- increase pure perl read speed by a factor of ~2.4
* remove unnecessary bounds check
* put block in closure, avoiding double hash lookup
* put $block assign in _init_read_sub, put read_sub in closure, too
* pull $handle into closure:
* get rid of closure, and get rid of read() - inline it with $read_sub
- use Inline::C (if available) to increase read speed by a factor of ~2.3
- experimental support for reading 24- and 32- bit data (suspected to
work on little endian machines that use Inline::C)