Changeset 1040
- Timestamp:
- 01/10/11 02:27:32 (2 years ago)
- File:
-
- 1 edited
-
trunk/core/raw.c (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/core/raw.c
r1039 r1040 5 5 #include "console.h" 6 6 #if DNG_SUPPORT 7 #include "dng.h"8 #include "math.h"9 #include "keyboard.h"7 #include "dng.h" 8 #include "math.h" 9 #include "keyboard.h" 10 10 #include "action_stack.h" 11 11 #include "gui_draw.h" … … 14 14 #endif 15 15 #ifdef OPT_CURVES 16 #include "curves.h"16 #include "curves.h" 17 17 #endif 18 18 #include "shot_histogram.h" … … 51 51 } 52 52 53 char* get_alt_raw_image_addr(void){ // return inactive buffer for cameras with multiple RAW buffers (otherwise return active buffer)53 char* get_alt_raw_image_addr(void){ // return inactive buffer for cameras with multiple RAW buffers (otherwise return active buffer) 54 54 if (!conf.raw_cache) return hook_alt_raw_image_addr(); 55 55 else return (char*) ((int)hook_alt_raw_image_addr()&~CAM_UNCACHED_BIT); … … 126 126 if (state_kbd_script_run && shot_histogram_isenabled()) build_shot_histogram(); 127 127 128 // Get pointers to RAW buffers (will be the same on cameras that don't have two or more buffers)129 char* rawadr = get_raw_image_addr();130 char* altrawadr = get_alt_raw_image_addr();128 // Get pointers to RAW buffers (will be the same on cameras that don't have two or more buffers) 129 char* rawadr = get_raw_image_addr(); 130 char* altrawadr = get_alt_raw_image_addr(); 131 131 132 132 // ! ! ! exclusively for badpixel creation ! ! ! … … 174 174 state_shooting_progress = SHOOTING_PROGRESS_PROCESSING; 175 175 176 if (conf.save_raw && (!(shooting_get_prop(PROPCASE_RESOLUTION)==5)) && (!((movie_status > 1) && conf.save_raw_in_video )) && (!((m==MODE_SPORTS) && conf.save_raw_in_sports)) && (!((m==MODE_AUTO) && conf.save_raw_in_auto)) && (!(conf.edge_overlay_enable && conf.save_raw_in_edgeoverlay)) && (!((shooting_get_drive_mode()==1) && conf.save_raw_in_burst && !(m==MODE_SPORTS))) && (!((shooting_get_drive_mode()>=2) && conf.save_raw_in_timer)) && (!((shooting_get_prop(PROPCASE_BRACKET_MODE)==1) && conf.save_raw_in_ev_bracketing)) ) { 176 if (conf.save_raw 177 && (!(shooting_get_prop(PROPCASE_RESOLUTION)==5)) 178 && (!((movie_status > 1) && conf.save_raw_in_video)) 179 && (!((m==MODE_SPORTS) && conf.save_raw_in_sports)) 180 && (!((m==MODE_AUTO) && conf.save_raw_in_auto)) 181 && (!(conf.edge_overlay_enable && conf.save_raw_in_edgeoverlay)) 182 && (!((shooting_get_drive_mode()==1) && conf.save_raw_in_burst && !(m==MODE_SPORTS))) 183 && (!((shooting_get_drive_mode()>=2) && conf.save_raw_in_timer)) 184 && (!((shooting_get_prop(PROPCASE_BRACKET_MODE)==1) && conf.save_raw_in_ev_bracketing)) ) 185 { 177 186 long v; 178 int timer; char txt[30];187 int timer; char txt[30]; 179 188 180 189 started(); … … 184 193 mkdir("A/DCIM"); 185 194 #if defined(CAM_DATE_FOLDER_NAMING) 186 if (conf.raw_in_dir)187 get_target_dir_name(dir);188 else189 sprintf(dir, RAW_TARGET_DIRECTORY, 100);195 if (conf.raw_in_dir) 196 get_target_dir_name(dir); 197 else 198 sprintf(dir, RAW_TARGET_DIRECTORY, 100); 190 199 #else 191 200 sprintf(dir, RAW_TARGET_DIRECTORY, (conf.raw_in_dir)?get_target_dir_num():100); … … 194 203 195 204 sprintf(fn, "%s/", dir); 196 if(br_counter && conf.bracketing_add_raw_suffix && (shooting_get_drive_mode()!=0)) 197 sprintf(fn+strlen(fn), RAW_BRACKETING_FILENAME, img_prefixes[conf.raw_prefix], get_target_file_num(), br_counter,conf.dng_raw&&conf.raw_dng_ext ? ".DNG" : img_exts[conf.raw_ext]); 198 else 199 sprintf(fn+strlen(fn), RAW_TARGET_FILENAME, img_prefixes[conf.raw_prefix], get_target_file_num(), 200 conf.dng_raw&&conf.raw_dng_ext ? ".DNG" : img_exts[conf.raw_ext]); 205 if(br_counter && conf.bracketing_add_raw_suffix && (shooting_get_drive_mode()!=1)) { 206 sprintf(fn+strlen(fn), 207 RAW_BRACKETING_FILENAME, 208 img_prefixes[conf.raw_prefix], 209 get_target_file_num(), 210 br_counter, 211 conf.dng_raw&&conf.raw_dng_ext ? ".DNG" : img_exts[conf.raw_ext]); 212 } else { 213 sprintf(fn+strlen(fn), 214 RAW_TARGET_FILENAME, 215 img_prefixes[conf.raw_prefix], 216 get_target_file_num(), 217 conf.dng_raw&&conf.raw_dng_ext ? ".DNG" : img_exts[conf.raw_ext]); 218 } 201 219 fd = open(fn, O_WRONLY|O_CREAT, 0777); 202 220 if (fd>=0) { … … 217 235 #endif 218 236 if (conf.dng_raw) { 219 // Write alternate (inactive) buffer that we reversed the bytes into above (if only one buffer then it will be the active buffer instead)220 write(fd, (char*)(((unsigned long)altrawadr)|CAM_UNCACHED_BIT), hook_raw_size());221 }222 else223 {224 // Write active RAW buffer225 write(fd, (char*)(((unsigned long)rawadr)|CAM_UNCACHED_BIT), hook_raw_size());226 }237 // Write alternate (inactive) buffer that we reversed the bytes into above (if only one buffer then it will be the active buffer instead) 238 write(fd, (char*)(((unsigned long)altrawadr)|CAM_UNCACHED_BIT), hook_raw_size()); 239 } 240 else 241 { 242 // Write active RAW buffer 243 write(fd, (char*)(((unsigned long)rawadr)|CAM_UNCACHED_BIT), hook_raw_size()); 244 } 227 245 close(fd); 228 246 utime(fn, &t); … … 230 248 if (conf.dng_raw) { 231 249 if (get_dng_header() && thumbnail_buf) { 232 if (rawadr == altrawadr)// If only one RAW buffer then we have to swap the bytes back233 reverse_bytes_order2(rawadr, altrawadr, hook_raw_size());250 if (rawadr == altrawadr) // If only one RAW buffer then we have to swap the bytes back 251 reverse_bytes_order2(rawadr, altrawadr, hook_raw_size()); 234 252 // unpatch_bad_pixels_b(); 235 253 } … … 396 414 if (rcnt > 0) { 397 415 if (rcnt == PIXELS_BUF_SIZE) 398 buf[PIXELS_BUF_SIZE-1] = 0;416 buf[PIXELS_BUF_SIZE-1] = 0; 399 417 else 400 buf[rcnt] = 0;418 buf[rcnt] = 0; 401 419 } 402 420 close(fd);
Note: See TracChangeset
for help on using the changeset viewer.