Changeset 1008 for trunk/core/raw.c


Ignore:
Timestamp:
01/01/11 22:51:22 (2 years ago)
Author:
reyalP
Message:

sx30 100e, 100h, 100l and g12 100c support from from philmoz in http://chdk.setepontos.com/index.php?topic=650.msg59036#msg59036
not added to autobuild yet

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/core/raw.c

    r979 r1008  
    4242 else return (char*) ((int)hook_raw_image_addr()&~CAM_UNCACHED_BIT); 
    4343} 
     44 
     45#if DNG_DOUBLE_BUF 
     46char* get_alt_raw_image_addr(void){     // return inactive buffer 
     47 if (!conf.raw_cache) return hook_alt_raw_image_addr(); 
     48 else return (char*) ((int)hook_alt_raw_image_addr()&~CAM_UNCACHED_BIT); 
     49} 
     50#endif     
    4451 
    4552//------------------------------------------------------------------- 
     
    6774 int i; 
    6875 if (gamma[255]) return; 
     76#if defined(CAMERA_sx30) || defined(CAMERA_g12) 
     77 for (i=0; i<12; i++) gamma[i]=255*pow(i/255.0, 0.5); 
     78 for (i=12; i<64; i++) gamma[i]=255*pow(i/255.0, 0.4); 
     79 for (i=64; i<=255; i++) gamma[i]=255*pow(i/255.0, 0.25); 
     80#else 
    6981 for (i=0; i<=255; i++) gamma[i]=255*pow(i/255.0, 0.5); 
     82#endif 
    7083} 
    7184 
     
    107120    if (state_kbd_script_run && shot_histogram_isenabled()) build_shot_histogram(); 
    108121 
     122#if DNG_DOUBLE_BUF 
     123        char* rawadr = get_raw_image_addr(); 
     124        char* altrawadr = get_alt_raw_image_addr(); 
     125#endif     
     126 
    109127    // ! ! ! exclusively for special script which creates badpixel.bin ! ! ! 
    110128    if (conf.save_raw==255) conf.save_raw=get_bad_count_and_write_file("A/CHDK/bad_tmp.bin"); 
     
    156174 
    157175        mkdir("A/DCIM"); 
     176#if defined(CAM_DATE_FOLDER_NAMING) 
     177                if (conf.raw_in_dir) 
     178                        get_target_dir_name(dir); 
     179                else 
     180                        sprintf(dir, RAW_TARGET_DIRECTORY, 100); 
     181#else 
    158182        sprintf(dir, RAW_TARGET_DIRECTORY, (conf.raw_in_dir)?get_target_dir_num():100); 
     183#endif 
    159184        mkdir(dir); 
    160185 
     
    178203               write(fd, get_dng_header(), get_dng_header_size()); 
    179204               write(fd, thumbnail_buf, DNG_TH_WIDTH*DNG_TH_HEIGHT*3); 
     205#if DNG_DOUBLE_BUF 
     206               reverse_bytes_order2(rawadr, altrawadr, hook_raw_size()); 
     207#else 
    180208               reverse_bytes_order(get_raw_image_addr(), hook_raw_size()); 
     209#endif 
    181210             } 
    182211            } 
    183212#endif 
     213#if DNG_DOUBLE_BUF 
     214            if (conf.dng_raw) { 
     215                        write(fd, (char*)(((unsigned long)altrawadr)|CAM_UNCACHED_BIT), hook_raw_size()); 
     216                        } 
     217                        else 
     218                        { 
     219                    write(fd, (char*)(((unsigned long)rawadr)|CAM_UNCACHED_BIT), hook_raw_size()); 
     220                        } 
     221#else 
    184222            write(fd, get_raw_image_addr(), hook_raw_size()); 
     223#endif 
    185224            close(fd); 
    186225            utime(fn, &t); 
     
    188227            if (conf.dng_raw) { 
    189228             if (get_dng_header() && thumbnail_buf) { 
     229#if !DNG_DOUBLE_BUF 
    190230              reverse_bytes_order(get_raw_image_addr(), hook_raw_size()); 
     231#endif 
    191232          //   unpatch_bad_pixels_b(); 
    192233              } 
Note: See TracChangeset for help on using the changeset viewer.