Continued improvements to PCA; handle errors better, make number ofprocessing threads configurable, and reversed the "keep-orig" option to"delete-orig" which makes more sense.
Converted PCA to be multithreaded and use libpackjpg instead of callingthe old packjpg executable. This works much better! Need to handle a fewerror conditions and do some more testing with decompress.
Finished up the changes to make argv a std::vector instead of a regular array. I also implemented the changes to control the size of argv based on system configuration and potentially spawn packJPG multiple times in order to handle a very large number of files. I ran a test on my Photos library and it sort of worked but I ran into some issues that I still need to diagnose.
WIP commit. I started converting the argv list to a std::vector and adding logic to make sure it does not exceed the maximum argv size.
Adding some minor edits along with a bit of debug code.
Adding proper option parsing and some general improvements. I've added an option for decompression but I still need to implement it.
Well I fixed my bizzarre problem last night. It turns out that I was building the argv list for each forked process from the main input file list instead of from the sub list passed to each thread. Now PCA runs in a much more stable fashion. Next I'd like to add some sort of progress reporting and also decompress support. I had the idea of using inotify on the output files (since their names are known a priori) however inotify is Linux only and I haven't yet found a drop in replacement for Mac OS.
Adding my initial PCA work. This project depends on packJPG. I see intermittent issues and I'm not sure if it is caused by my code or by the packJPG code.