Problem saving RAW - RAW Shooting and Processing - CHDK Forum  

Problem saving RAW

  • 4 Replies
  • 2791 Views
*

Offline igor

  • *
  • 21
Problem saving RAW
« on: 22 / September / 2008, 01:34:23 »
Advertisements
I might repeating someone, but on my TX1 somehow RAW files are not getting saved.
Not always, and with 1x zoom they are almost always saved.
However, when zoom increased, especially when camera goes into digital zoom => no RAWs.
In fact, I've rebuild CHDK and looks like capt_seq_hook_raw_here() (capt_seq.c) is not called in such cases.

WHat's going on?

*

Offline fe50

  • ******
  • 3134
  • IXUS50 & 860, SX10 Star WARs-Star RAWs
    • fe50
Re: Problem saving RAW
« Reply #1 on: 22 / September / 2008, 06:28:58 »
Hello & welcome Igor,

could be the "Sporadic RAW images on fast shutter press" issue, described here: Sporadic RAW images,.

Pls. test it a bit & report here if the behaviour can be reproduced...

*

Offline igor

  • *
  • 21
Re: Problem saving RAW
« Reply #2 on: 22 / September / 2008, 14:01:58 »
Hello fe50,
Thanx for welcoming.
Yes, the behaviour could be easily reporduced. Sequence:
1. Start the camera in Display mode;
2. Manualy Load CHDK from SD;
3. ENable RAW save from CHDK menu;
4. Switch to AUTO mode;
5. Go outdoor (where it's enough light)
6. Zoom to 10x or above (it might not work even with less the 10x, but 10x and above it always not working);
7. Take a shot.... No RAW... !!!!
8. Now using the same zoom goto bathroom (or perhaps any dark place);
9. Again take a shot => flash should fire and RAW will be saved...???
10. Now go back to outdoor (where it's enough light)
11. Unzoom to 1x
12. Now each time you take a shot with 1x (flash or no flash): RAWs are saved...

Only at 1x, I'm getting capt_seq_hook_raw_here()  called almost all the time independent of light/flash conditions. However, at some rear cases it fails too. I've managed to write a small program that endlessly takes shots and deletes output file, while reporting if capt_seq_hook_raw_here() has been called in between. And in some cases it has not been called at 1x, while only in some cases it is called at anything above 1x. Actually, it looks like the higher the magnification the less probability of capt_seq_hook_raw_here() being called. Again, when flash is not involved. WHen flash is involved, it looks like it is always getting called.

So, my humble conclusion: There is(are) possibly some other logic(s) that CANONs original firmware is(are) using in some circumstances (based on light/flash/who knows what...). So, our CHDK intercepts just one possible case (and most probably common for 1x, eventhough I had cases when even at 1x capt_seq_hook_raw_here()  was not called).
So, someone brave should look into that. Who knows, it might not be that outrageously difficult and the reason that has not been found is just because nobody was looking into that (which is realy strange, compared how easy it is reproducible on my TX1). Should be probably common for other cameras.


I would agree, that CCD capture of RAW while digital zoom is enforced might not be that important, as at any digital zoom CCD image is equal to current optical zoom anyway.
However, for TX1, with it great 10x optical zoom, not being able to reliably produce RAW means loss of very important feature.

Thnx


« Last Edit: 22 / September / 2008, 14:09:03 by igor »

*

Offline fe50

  • ******
  • 3134
  • IXUS50 & 860, SX10 Star WARs-Star RAWs
    • fe50
Re: Problem saving RAW
« Reply #3 on: 22 / September / 2008, 14:56:25 »
So i suppose it's the same issue as here...the solution should be the same...

BTW:
- have you tried whether it makes a different how fast the shutter is pressed (quick full-press / half-press + delay for focusing, then full-press) ?
- which firmware version do you have, 1.00G or 1.01B ?

With the results of your detailed tests a developer should have a look to capt_seq.c on the TX1, perhaps 'whoever' or ewavr, they solved it for the A630, A640 & for the Ixus950...



*

Offline igor

  • *
  • 21
Re: Problem saving RAW
« Reply #4 on: 22 / September / 2008, 18:33:06 »
OK, using your refference looks like I've fixed it.
I don't know, how guys did it on previous models, but for my TX1 101b I've changed capt_seq.c and tested it. It perfectly works now in any conditions.
Here what I did, so someone will take care of adding this to the source

#define RAWDATA_AVAILABLE (1)
#define RAWDATA_SAVED (2)
#define RAWDATA_UNKNOWN (0)
...
static long raw_save_stage = RAWDATA_UNKNOWN;
...
void capt_seq_hook_raw_here()
{
   if(raw_save_stage != RAWDATA_AVAILABLE)
   {
      raw_save_stage = RAWDATA_AVAILABLE;
      core_rawdata_available();
      while (raw_save_stage != RAWDATA_SAVED)
      {
         _SleepTask(10);
      }
      raw_save_stage = RAWDATA_UNKNOWN;
   }
}
....
....
                "BL      sub_FFB2BE40\n"
                "BL      shooting_expo_param_override\n"  // +
                "BL      sub_FFB28CF8\n"
                "LDR     R3, =0xB6FE0\n"
                "LDR     R2, [R3,#0x24]\n"
                "CMP     R2, #0\n"
                "BEQ     loc_FFB2B908\n"
                "BL      sub_FFB2B3BC\n"
                "BL      capt_seq_hook_raw_here\n" // igor: added second call here
                "B       loc_FFB2B908\n"
"loc_FFB2B82C:\n"
                "BL      sub_FFB2B154_my\n"   //-- ------------->

...

Thnx
« Last Edit: 22 / September / 2008, 18:52:26 by igor »

 

Related Topics