release 1.30
Fixed typo of --bits-per-sample(-b) option, and other option explanation.
Fixed/improved some minor Unicode handling.
release 1.29
Fixed chapter length of HE-AAC (they were all doubled from the correct value).
release 1.28
Fixed a bug of the tag processing for --concat on release 1.27.
release 1.27 (refalac 0.38)
--concat now insert chapters. Album-related tags are fetched from the first input, and chapters are generated from title tag of each track. If (one of) input is a cuesheet or has embedded cuesheet in it, tracks in the cuesheet are taken into account.
When input is a single cuesheet, --concat works the same as --concat-cuesheet.
release 1.26
Added --concat option. When qaac/refalac take multiple input files (tracks), qaac will encode each of them separately. When --concat is specified, it will encode into a single file.
Unicode console output. Now console message and log file is Unicode. Character encoding of log file and redirected stdout/stderr is UTF-8.
You don't have to change console code page with chcp command. You can stay default codepage, and you can still display unicode character in your console window, if your command prompt is configured to use truetype font.
Fixed a crash on reading bogus chapter file.
Check artwork image file type.
By the way, on HA qaac thread iTunSMPB of QuickTime HE-AAC was reported to be problematic/broken. iTunSMPB is a tag where encoder delay, actual length of content, and padding are described, and is essential for gapless playback. It's not fixable on qaac side.
release 1.25
Added --concat-cuesheet option.
By default, qaac/refalac encodes into multiple files for cuesheet input (one file per track). When this option is specified, qaac/refalac will now encode into single file, embedding chapter for tracks.
qaac/refalac has been able to handle cuesheet which refers to multiple input files. This remains the same for --concat-cuesheet.
release 1.24
Added --bits-per-sample(-b) option. Convert bits per sample to the specified value (16 or 24). Available for ALAC or WAV output.
Added named pipe support. When the pipe name such as "\\.\pipe\foo.wav" is specified as output filename with -o option, qaac now creates the named pipe, and wait for connection. On the other hand, when pipe name is specified as input filename, it's just simply opened (if it is really a named pipe, pipe will be connected by this). This is available for WAV or ADTS output.
More strict syntax sanity checking on cuesheet.
Fix some bug on option handling. --rate was usable but -r was not on refalac. Also, when multiple input file is specified, tagging options didn't work as intended.
In windows, named pipe is created via a special API, and must be created by an end point process ("server"). Name of pipe must start with "\\.\pipe\".
On the other hand, another endpoint ("client") can connect to the pipe by just opening it as if it were an ordinary file. Therefore, many software will be able to connect to it. You can use this feature like this:
At first, on one command prompt window, run qaac(or refalac):
qaac -D --matrix-preset=dpl2 5.1ch.flac -o \\.\pipe\foo.wav
On another command prompt window, run some client:
lame \\.\pipe\foo.wav -o foo.mp3
This is basically the same as just chaining with ordinary (anonymous) pipe. However, it will be useful when passing by named argument is preferred by the client software.
How well named pipe is supported depends on softwares. For example, it seems that mp4box cannot handle named pipe with -add argument.
Basically, if it needs seeking, or is doing some special things on passed file names, named pipe won't work.
release 1.23
Fixed bogus total number of samples printed to the console when sample rate conversion is done.
Refined error/warning messages.
Fixed to refuse files with invalid bits per sample for ALAC.
release 1.22
Fixed a regression on 1.10: qaac -D/refalac -D was writing corrupted channel mask on WAVEFORMATEXTENSIBLE header (when it is used), when input has no channel mask (or value of zero).
release 1.21
Fix: proper handling of zero-length input.
release 1.20 (refalac 0.31)
Improved text encoding detection.
mlang seems generally chooses single byte local charset in the first place even if it is actually encoded in UTF-8. Latin-1 case is already taken care of, but in this release I generalized it.
Changed --text-codepage behavior. It has been treated as a "hint", and passed to mlang encoding detector. Now qaac directly use it for converting to Unicode, without any detection/guess.
This is because I found a sample where mlang returns wrong guess even if given correct hint.
Generally speaking, text encoding detection will never be perfect, and sometimes fails. If you have trouble, use --text-codepage. Available codepages are listed at MSDN: http://msdn.microsoft.com/en-us/library/windows/desktop/dd317756(v=vs.85).aspx
If you don't get the point -- as long as you don't use any of --lyrics, --chapters, cuesheet input, or you are just working with ASCII alphabets, you won't have any troubles.
release 1.19
Fixed a crash on write error inside of destructor (Strictly speaking, abort() is called from C++ runtime, in unhandled exception handler).
Updated libsoxrate.dll to 0.1.2 (Not a functional change. It was just rewritten to be more portable).