S90 TEST: 2s dcimdl delay, JPG+CanonCR2, 800 myshoots 1/8s PASSED, test terminated by me.
This is very encouraging but statistically not guaranteed. That is, unless the FAIL mechanism and the time (arbitrary 2s at present) and reason for the dcimdl delay are fully understood, I consider this unreliable (a real hack). And since CHDK is already a hack, we want to avoid hack-on-hack as much as possible.
Discussion
Quote "the S90 does not correctly implement the folder Canon firmware folder naming scheme for this camera. "
That shouldn't be a problem any more .. the solution I am in the process of testing is supposed to be generic. When I've got it understood, worked out and tuned, it should work on the SX110 & D10 w/o mods.
Quote "The commands in dcimdl will only return when they are actually complete."
Yes, I see that works OK.
Quote "What would "make a mess of" the downloads ? What "function return time description""
Here is your answer and what I was referring to >>> Quote "Shoot is a special case, because that's the camera firmware opening and writing files in ways that we aren't in direct control of."
Hence hypothesis .... I am myshooting simultaneous 2.5M JPGs and 10M CanonCR2s, which I measured to take ~4 seconds to write after image acquisition, much *less* than the 2s dcimdl and now the 1s dcimdl delays. If shoot did not wait for Canon write complete, the result would be a disastrous mess. That's my drift ..... because 2s < 4s and 1s << 4s (no FAIL under 100 myshoots), shoot is in fact waiting for completion to a large extent (welcome news). The CHDK behavior response I see in the camera LCD LL corner confirms the test results. What I am experiencing here ....... is shoot *only*needs a tail-end delay so listdir does not error out. From what I am seeing, that tail-end delay is completely independent of image file size and what image crunching Canon FW does (barrel distortion on JPEG, dark subt, bad pixel removal, and save to SD). Therefore the delay can be determined and for the S90 might be small (likely less than 1 second), and, I speculate it can be fixed as one value for all of the latest (Digic 3+) cameras.
Therefore next objective: find the minimum dcimdl delay that is reliable. It is known that 200 ms dcimdl causes errors in listdir under 50 myshoots. 2s is good to 800+ myshoots. By binary subdivision, determine the cut-off delay where errors no longer occur under 50 myshoots (ie PASS to 100 myshoots). Then, increase delay by 20% and test 1000 myshoots (the all-statistically-conclusive test, 10GB overnight). If it does not fail, then the delay value can be considered reliable and the solution not a hack. The same test will be done on the SX110, and the delay may need to be tuned. The standardized delay then will be the longer of the two.
Test: 1s dcimdl delay, 100 myshoots PASSED, test terminated by me.
NEXT TEST 400ms dcimdl delay, 100 myshoots