Add ImageEncodeTask to encode a disk image to a different profile
and directory.
* morituri/common/encode.py:
Add lossy encoding profiles for mp3 and vorbis.
Rename muxer to tagger since that's what we use it for.
Do progress probe after level to make sure we get samples for
offsets.
* morituri/rip/image.py:
Add rip image encode command.
Note unicode handling.
* morituri/test/test_image_image.py:
* morituri/image/table.py:
* morituri/program/cdparanoia.py:
* morituri/common/checksum.py:
Use unicode for paths.
Use repr for path representation.
* morituri/test/test_common_checksum.py:
Add test for unicode audio file name.
* morituri/image/toc.py:
* morituri/test/test_image_cue.py:
* morituri/test/test_image_toc.py:
Read input file as utf-8. Fix logging of paths.
* morituri/image/image.py:
Document and add asserts for unicodeness of paths.
Encode path in launch lines as utf-8
* morituri/test/Makefile.am:
* morituri/test/test_common_checksum.py (added):
Add a check to make sure that checksumming an empty file doesn't
hang. Fix the hang.
Fix getting AccurateRip results for albums with a HTOA.
* morituri/test/Makefile.am:
* morituri/test/test_common_program.py:
* morituri/test/silentalarm.result.pickle (added):
Add testcase for it, Bloc Party's Silent Alarm.
Parse version number.
* morituri/rip/cd.py:
Warn about cdrdao versions with a bug.
* morituri/test/test_program_cdrdao.py:
Test that we can parse the version.
* morituri/common/program.py:
Extract a common method to get textual representation of
AccurateRip results, and test it.
* morituri/rip/cd.py:
* morituri/rip/image.py:
Use the method.
* morituri/common/program.py:
Break verifyImage into two so we can test it.
Test it using an AccurateRip result for Luke Haines Is Dead
which had a wrongly ripped track 10.
Add max confidence from database.
* morituri/common/program.py:
* morituri/rip/cd.py:
Move AccurateRip checking to program.py
Re-rip if verification failed when continuing a rip.
Move getPath to Program.
Remove arguments to ripTrack that can be gotten from
trackResult.
* morituri/rip/cd.py:
Continue without musicbrainz metadata.
Unify htoa and normal track ripping.
* morituri/result/result.py:
Add getTrackResult so it's easier to look up track results
when there's a HTOA.
Change toctable to table since it's a full index table.
* morituri/common/Makefile.am:
* morituri/common/program.py (added):
Add module and class for program state.
* morituri/rip/cd.py:
Use the program state to clean up the do() function.
Add getPregap() method.
* morituri/rip/cd.py:
Use artist.name, not getUniqueName, to avoid monstruous names for
Muse.
Pass mbdiscid to getPath, so Unknown Disc can be saved with it.
Don't set the date if the release doesn't have one.
Set pregap on trackResult using new Track.getPregap()
Write all log/cue/m3u files as utf-8.