This patch adds delayed encoding. This is desirable
when the user wants to allow the disc filter script to
modify all the wav files after ripping a CD, but before
encoding. I'm using this for normalization, but it's
concievable that others may have more uses.
When this option is disabled (by default, or by using
Config->Rip->Options->"Delay encoding until disc is
ripped" in the GUI), there are no changes to the
existing behavior. When the option is
enabled, rather than append the track to be encoded to
the ginfo->encode_list, it appends it to
ginfo->pending_list. pending_list is a new list that
exists to queue tracks to be encoded until after the
entire CD is ripped. In RipIsFinished(), the
pending_list is concatenated to the encode_list, the
pending_list is then set NULL, and while (MP3Encode());
is called, starting encoders on all free CPUs.
Delayed encoding patch against 3.0.7
Logged In: YES
user_id=804735
The permutations seen below are a result of my realizing
that if the user disables delayed encoding in mid-rip, then
the tracks ripped until then would be orphaned.
The updated patches take care of that.