Changeset 1863


Ignore:
Timestamp:
05/19/12 23:00:51 (12 months ago)
Author:
philmoz
Message:

Add Artist/Owner? name and Copyright to the DNG header if set in the camera.
Requires new PARAM_xxx values in platform_camera.h.
Enabled for G12, SX30, SX40, IXUS310 and G1X.
If PARAM_ARTIST_NAME is defined the Artist tag is set from this value (G1X)
Otherwise if PARAM_OWNER_NAME is defined the Artist tag is set from this (G12, SX30, SX40, IXUS310)
If PARAM_COPYRIGHT is defined the Copyright tag is set from this (G1X)

Location:
trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/core/dng.c

    r1862 r1863  
    4444const int cam_LinearResponseLimit[]     = {1,1}; 
    4545const int cam_AnalogBalance[]           = {1,1,1,1,1,1}; 
    46 const char cam_name[32]; 
     46static char cam_name[32]                = ""; 
     47static char artist_name[64]             = ""; 
     48static char copyright[64]               = ""; 
    4749const short cam_PreviewBitsPerSample[]  = {8,8,8}; 
    4850const char cam_chdk_ver[]               = HDK_VERSION" ver. "BUILD_NUMBER; 
     
    102104#define THUMB_DATA_INDEX            9       // tag 0x111 
    103105#define ORIENTATION_INDEX           10      // tag 0x112 
    104 #define SUBIFDS_INDEX               17      // tag 0x14A 
    105 #define EXIF_IFD_INDEX              19      // tag 0x8769 
    106 #define GPS_IFD_INDEX               20      // tag 0x8825 
    107 #define DNG_VERSION_INDEX           22      // tag 0xC612 
    108 #define UNIQUE_CAMERA_MODEL_INDEX   23      // tag 0xC614 
     106#define ARTIST_NAME_INDEX           17      // tag 0x13B 
     107#define SUBIFDS_INDEX               18      // tag 0x14A 
     108#define COPYRIGHT_INDEX             19      // tag 0x8298 
     109#define EXIF_IFD_INDEX              20      // tag 0x8769 
     110#define GPS_IFD_INDEX               21      // tag 0x8825 
     111#define DNG_VERSION_INDEX           23      // tag 0xC612 
     112#define UNIQUE_CAMERA_MODEL_INDEX   24      // tag 0xC614 
    109113 
    110114struct dir_entry ifd0[]={ 
     
    126130    {0x131,  T_ASCII,      sizeof(cam_chdk_ver), (int)cam_chdk_ver},//Software 
    127131    {0x132,  T_ASCII,      20, (int)cam_datetime},                 // DateTime 
     132    {0x13B,  T_ASCII|T_PTR,64, (int)artist_name},                  // Artist: Filled at header generation. 
    128133    {0x14A,  T_LONG,       1,  0},                                 // SubIFDs offset 
    129     {0x8298, T_ASCII,      1,  0},                                 // Copyright 
     134    {0x8298, T_ASCII|T_PTR,64, (int)copyright},                    // Copyright 
    130135    {0x8769, T_LONG,       1,  0},                                 // EXIF_IFD offset 
    131136    {0x8825, T_LONG,       1,  0},                                 // GPS_IFD offset 
     
    312317 
    313318    ifd0[CAMERA_NAME_INDEX].count = ifd0[UNIQUE_CAMERA_MODEL_INDEX].count = strlen(cam_name) + 1; 
     319    ifd0[ARTIST_NAME_INDEX].count = strlen(artist_name) + 1; 
     320    ifd0[COPYRIGHT_INDEX].count = strlen(copyright) + 1; 
    314321    ifd0[ORIENTATION_INDEX].offset = get_orientation_for_exif(exif_data.orientation); 
    315322 
     
    546553    get_property_case(camera_info.props.orientation_sensor, &exif_data.orientation, sizeof(exif_data.orientation)); 
    547554    get_parameter_data(camera_info.params.camera_name, &cam_name, sizeof(cam_name)); 
     555    if (camera_info.params.artist_name) get_parameter_data(camera_info.params.artist_name, &artist_name, sizeof(artist_name)); 
     556    else if (camera_info.params.owner_name) get_parameter_data(camera_info.params.owner_name, &artist_name, 32); 
     557    if (camera_info.params.copyright) get_parameter_data(camera_info.params.copyright, &copyright, sizeof(copyright)); 
    548558    get_property_case(camera_info.props.flash_mode, &exif_data.flash_mode, sizeof(exif_data.flash_mode)); 
    549559    get_property_case(camera_info.props.flash_fire, &exif_data.flash_fired, sizeof(exif_data.flash_fired)); 
  • trunk/core/main.c

    r1862 r1863  
    8585#if defined(PARAM_CAMERA_NAME) 
    8686    PARAM_CAMERA_NAME, 
     87#else 
     88    0, 
     89#endif 
     90#if defined(PARAM_OWNER_NAME) 
     91    PARAM_OWNER_NAME, 
     92#else 
     93    0, 
     94#endif 
     95#if defined(PARAM_ARTIST_NAME) 
     96    PARAM_ARTIST_NAME, 
     97#else 
     98    0, 
     99#endif 
     100#if defined(PARAM_COPYRIGHT) 
     101    PARAM_COPYRIGHT, 
    87102#else 
    88103    0, 
  • trunk/include/camera.h

    r1862 r1863  
    158158 
    159159    #undef  PARAM_CAMERA_NAME                   // parameter number for GetParameterData to get camera name 
     160    #undef  PARAM_OWNER_NAME                    // parameter number for GetParameterData to get owner name 
     161    #undef  PARAM_ARTIST_NAME                   // parameter number for GetParameterData to get artist name 
     162    #undef  PARAM_COPYRIGHT                     // parameter number for GetParameterData to get copyright 
    160163    #undef  PARAM_DISPLAY_MODE1                 // param number for LCD display mode when camera in playback 
    161164    #undef  PARAM_DISPLAY_MODE2                 // param number for LCD display mode when camera in record view hold mode 
     
    288291    { 
    289292        int camera_name; 
     293        int owner_name; 
     294        int artist_name; 
     295        int copyright; 
    290296    } params; 
    291297    struct 
  • trunk/platform/g12/platform_camera.h

    r1698 r1863  
    5555 
    5656    // camera name 
    57     #define PARAM_CAMERA_NAME               4   // parameter number for GetParameterData 
     57    #define PARAM_CAMERA_NAME               4   // parameter number for GetParameterData - Camera Model name 
     58    #define PARAM_OWNER_NAME                7   // parameter number for GetParameterData - Owner name 
    5859    #define PARAM_DISPLAY_MODE1             59  // param number for LCD display mode when camera in playback 
    5960    #define PARAM_DISPLAY_MODE2             62  // param number for LCD display mode when camera in record view hold mode 
  • trunk/platform/g1x/platform_camera.h

    r1830 r1863  
    7474 
    7575    // camera name 
    76     #define PARAM_CAMERA_NAME                   4       // parameter number for GetParameterData 
     76    #define PARAM_CAMERA_NAME                   4       // parameter number for GetParameterData - Camera Model name 
     77    #define PARAM_OWNER_NAME                    7       // parameter number for GetParameterData - Owner name 
     78    #define PARAM_ARTIST_NAME                   157     // parameter number for GetParameterData - Artist name 
     79    #define PARAM_COPYRIGHT                     158     // parameter number for GetParameterData - Copyright 
    7780    #define PARAM_DISPLAY_MODE1                 59      // param number for LCD display mode when camera in playback 
    7881    #define PARAM_DISPLAY_MODE2                 62      // param number for LCD display mode when camera in record view hold mode 
     
    8790    #undef CAM_BITMAP_WIDTH 
    8891    #undef CAM_BITMAP_HEIGHT 
    89     #define CAM_BITMAP_WIDTH                960 // Actual width of bitmap screen in bytes 
    90     #define CAM_BITMAP_HEIGHT               270 // Actual height of bitmap screen in rows 
     92    #define CAM_BITMAP_WIDTH                    960    // Actual width of bitmap screen in bytes 
     93    #define CAM_BITMAP_HEIGHT                   270    // Actual height of bitmap screen in rows 
    9194 
    9295    #define CAM_ZEBRA_ASPECT_ADJUST             1 
  • trunk/platform/ixus310_elph500hs/platform_camera.h

    r1830 r1863  
    5353    #define CAM_HAS_ND_FILTER               1 
    5454 
    55     #undef  CAM_HAS_ERASE_BUTTON                    // No erase button 
    56     #undef  CAM_HAS_MANUAL_FOCUS                    // No manual focus mode 
     55    #undef  CAM_HAS_ERASE_BUTTON                // No erase button 
     56    #undef  CAM_HAS_MANUAL_FOCUS                // No manual focus mode 
    5757 
    58     #undef CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO     // Can already zoom in video, no need to unlock 
     58    #undef CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO // Can already zoom in video, no need to unlock 
    5959 
    6060    #undef  DEFAULT_RAW_EXT 
     
    6262 
    6363    #undef  CAM_MENU_BORDERWIDTH 
    64     #define CAM_MENU_BORDERWIDTH            70      // Need to leave this much border to avoid overlap with on screen buttons. 
     64    #define CAM_MENU_BORDERWIDTH            70  // Need to leave this much border to avoid overlap with on screen buttons. 
    6565    #undef  CAM_TS_BUTTON_BORDER 
    66     #define CAM_TS_BUTTON_BORDER            60      // Define this to leave a border on each side of the palette display. Used on the IXUS 310 to 
     66    #define CAM_TS_BUTTON_BORDER            60  // Define this to leave a border on each side of the palette display. Used on the IXUS 310 to 
    6767                                                // stop the palette from overlapping the on screen buttons on each side 
    68     #undef  CAM_DISP_ALT_TEXT                    // Turn off <ALT> at bottom of screen in Alt mode - changes button color instead 
     68    #undef  CAM_DISP_ALT_TEXT                   // Turn off <ALT> at bottom of screen in Alt mode - changes button color instead 
    6969 
    70     #define CAM_TOUCHSCREEN_UI              1       // Enable touch screen U/I 
     70    #define CAM_TOUCHSCREEN_UI              1   // Enable touch screen U/I 
    7171 
    7272    // camera name 
    73     #define PARAM_CAMERA_NAME               4 // parameter number for GetParameterData 
    74     #define PARAM_DISPLAY_MODE1             60 // param number for LCD display mode when camera in playback 
     73    #define PARAM_CAMERA_NAME               4   // parameter number for GetParameterData - Camera Model name 
     74    #define PARAM_OWNER_NAME                7   // parameter number for GetParameterData - Owner name 
     75    #define PARAM_DISPLAY_MODE1             60  // param number for LCD display mode when camera in playback 
    7576    #define PARAM_DISPLAY_MODE2             64  // param number for LCD display mode when camera in record view hold mode 
    7677    #undef  CAM_SENSOR_BITS_PER_PIXEL 
  • trunk/platform/sx30/platform_camera.h

    r1797 r1863  
    7272    #define CAM_ACTIVE_AREA_X2              (CAM_RAW_ROWPIX-72) 
    7373    #define CAM_ACTIVE_AREA_Y2              (CAM_RAW_ROWS-12) 
     74 
    7475    // camera name 
    75     #define PARAM_CAMERA_NAME               4   // parameter number for GetParameterData 
     76    #define PARAM_CAMERA_NAME               4   // parameter number for GetParameterData - Camera Model name 
     77    #define PARAM_OWNER_NAME                7   // parameter number for GetParameterData - Owner name 
    7678    #define PARAM_DISPLAY_MODE1             59  // param number for LCD display mode when camera in playback 
    7779    #define PARAM_DISPLAY_MODE2             62  // param number for LCD display mode when camera in record view hold mode 
  • trunk/platform/sx40hs/platform_camera.h

    r1830 r1863  
    7474 
    7575    // camera name 
    76     #define PARAM_CAMERA_NAME                   4       // parameter number for GetParameterData 
     76    #define PARAM_CAMERA_NAME                   4       // parameter number for GetParameterData - Camera Model name 
     77    #define PARAM_OWNER_NAME                    7       // parameter number for GetParameterData - Owner name 
    7778    #define PARAM_DISPLAY_MODE1                 59      // param number for LCD display mode when camera in playback 
    7879    #define PARAM_DISPLAY_MODE2                 62      // param number for LCD display mode when camera in record view hold mode 
Note: See TracChangeset for help on using the changeset viewer.