1 /* -*- C++ -*- 2 * File: libraw_const.h 3 * Copyright 2008-2020 LibRaw LLC (info@libraw.org) 4 * Created: Sat Mar 8 , 2008 5 * LibRaw error codes 6 LibRaw is free software; you can redistribute it and/or modify 7 it under the terms of the one of two licenses as you choose: 8 9 1. GNU LESSER GENERAL PUBLIC LICENSE version 2.1 10 (See file LICENSE.LGPL provided in LibRaw distribution archive for details). 11 12 2. COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 13 (See file LICENSE.CDDL provided in LibRaw distribution archive for details). 14 15 */ 16 17 #ifndef _LIBRAW_ERRORS_H 18 #define _LIBRAW_ERRORS_H 19 20 #define LIBRAW_DEFAULT_ADJUST_MAXIMUM_THRESHOLD 0.75 21 #define LIBRAW_DEFAULT_AUTO_BRIGHTNESS_THRESHOLD 0.01 22 /* limit allocation size, default is 2Gb */ 23 #ifndef LIBRAW_MAX_ALLOC_MB_DEFAULT 24 #define LIBRAW_MAX_ALLOC_MB_DEFAULT 2048L 25 #endif 26 27 /* limit thumbnail size, default is 512Mb*/ 28 #ifndef LIBRAW_MAX_THUMBNAIL_MB 29 #define LIBRAW_MAX_THUMBNAIL_MB 512L 30 #endif 31 32 /* Check if enough file space exists before tag read */ 33 #ifndef LIBRAW_NO_IOSPACE_CHECK 34 #define LIBRAW_IOSPACE_CHECK 35 #endif 36 #ifndef LIBRAW_NO_CR3_MEMPOOL 37 #define LIBRAW_CR3_MEMPOOL 38 #endif 39 40 41 /* LibRaw uses own memory pool management, with LIBRAW_MSIZE (512) 42 entries. It is enough for parsing/decoding non-damaged files, but 43 may overflow on specially crafted files (eg. with many string values 44 like XMP blocks. 45 LIBRAW_MEMPOOL_CHECK define will result in error on pool overflow */ 46 #ifndef LIBRAW_NO_MEMPOOL_CHECK 47 #define LIBRAW_MEMPOOL_CHECK 48 #endif 49 50 #define LIBRAW_MAX_METADATA_BLOCKS 1024 51 #define LIBRAW_CBLACK_SIZE 4104 52 #define LIBRAW_IFD_MAXCOUNT 10 53 #define LIBRAW_CRXTRACKS_MAXCOUNT 16 54 55 #define LIBRAW_AHD_TILE 512 56 57 enum LibRaw_open_flags 58 { 59 LIBRAW_OPEN_BIGFILE=1, 60 LIBRAW_OPEN_FILE= 1<<1 61 }; 62 63 enum LibRaw_openbayer_patterns 64 { 65 LIBRAW_OPENBAYER_RGGB = 0x94, 66 LIBRAW_OPENBAYER_BGGR = 0x16, 67 LIBRAW_OPENBAYER_GRBG = 0x61, 68 LIBRAW_OPENBAYER_GBRG = 0x49 69 }; 70 71 enum LibRaw_dngfields_marks 72 { 73 LIBRAW_DNGFM_FORWARDMATRIX = 1, 74 LIBRAW_DNGFM_ILLUMINANT = 1 << 1, 75 LIBRAW_DNGFM_COLORMATRIX = 1 << 2, 76 LIBRAW_DNGFM_CALIBRATION = 1 << 3, 77 LIBRAW_DNGFM_ANALOGBALANCE = 1 << 4, 78 LIBRAW_DNGFM_BLACK = 1 << 5, 79 LIBRAW_DNGFM_WHITE = 1 << 6, 80 LIBRAW_DNGFM_OPCODE2 = 1 << 7, 81 LIBRAW_DNGFM_LINTABLE = 1 << 8, 82 LIBRAW_DNGFM_CROPORIGIN = 1 << 9, 83 LIBRAW_DNGFM_CROPSIZE = 1 << 10, 84 LIBRAW_DNGFM_PREVIEWCS = 1 << 11, 85 LIBRAW_DNGFM_ASSHOTNEUTRAL = 1 << 12, 86 LIBRAW_DNGFM_BASELINEEXPOSURE = 1 << 13, 87 LIBRAW_DNGFM_LINEARRESPONSELIMIT = 1 << 14 88 }; 89 90 enum LibRaw_As_Shot_WB_Applied_codes 91 { 92 LIBRAW_ASWB_APPLIED = 1, 93 LIBRAW_ASWB_CANON = 2, 94 LIBRAW_ASWB_NIKON = 4, 95 LIBRAW_ASWB_NIKON_SRAW = 8, 96 LIBRAW_ASWB_PENTAX = 16 97 }; 98 99 #define tagtypeIs(typex) (type == typex) 100 enum LibRaw_ExifTagTypes { 101 LIBRAW_EXIFTAG_TYPE_UNKNOWN = 0, 102 LIBRAW_EXIFTAG_TYPE_BYTE = 1, 103 LIBRAW_EXIFTAG_TYPE_ASCII = 2, 104 LIBRAW_EXIFTAG_TYPE_SHORT = 3, 105 LIBRAW_EXIFTAG_TYPE_LONG = 4, 106 LIBRAW_EXIFTAG_TYPE_RATIONAL = 5, 107 LIBRAW_EXIFTAG_TYPE_SBYTE = 6, 108 LIBRAW_EXIFTAG_TYPE_UNDEFINED = 7, 109 LIBRAW_EXIFTAG_TYPE_SSHORT = 8, 110 LIBRAW_EXIFTAG_TYPE_SLONG = 9, 111 LIBRAW_EXIFTAG_TYPE_SRATIONAL = 10, 112 LIBRAW_EXIFTAG_TYPE_FLOAT = 11, 113 LIBRAW_EXIFTAG_TYPE_DOUBLE = 12, 114 LIBRAW_EXIFTAG_TYPE_IFD = 13, 115 LIBRAW_EXIFTAG_TYPE_UNICODE = 14, 116 LIBRAW_EXIFTAG_TYPE_COMPLEX = 15, 117 LIBRAW_EXIFTAG_TYPE_LONG8 = 16, 118 LIBRAW_EXIFTAG_TYPE_SLONG8 = 17, 119 LIBRAW_EXIFTAG_TYPE_IFD8 = 18 120 }; 121 122 #define LIBRAW_EXIFTOOLTAGTYPE_int8u LIBRAW_EXIFTAG_TYPE_BYTE 123 #define LIBRAW_EXIFTOOLTAGTYPE_string LIBRAW_EXIFTAG_TYPE_ASCII 124 #define LIBRAW_EXIFTOOLTAGTYPE_int16u LIBRAW_EXIFTAG_TYPE_SHORT 125 #define LIBRAW_EXIFTOOLTAGTYPE_int32u LIBRAW_EXIFTAG_TYPE_LONG 126 #define LIBRAW_EXIFTOOLTAGTYPE_rational64u LIBRAW_EXIFTAG_TYPE_RATIONAL 127 #define LIBRAW_EXIFTOOLTAGTYPE_int8s LIBRAW_EXIFTAG_TYPE_SBYTE 128 #define LIBRAW_EXIFTOOLTAGTYPE_undef LIBRAW_EXIFTAG_TYPE_UNDEFINED 129 #define LIBRAW_EXIFTOOLTAGTYPE_binary LIBRAW_EXIFTAG_TYPE_UNDEFINED 130 #define LIBRAW_EXIFTOOLTAGTYPE_int16s LIBRAW_EXIFTAG_TYPE_SSHORT 131 #define LIBRAW_EXIFTOOLTAGTYPE_int32s LIBRAW_EXIFTAG_TYPE_SLONG 132 #define LIBRAW_EXIFTOOLTAGTYPE_rational64s LIBRAW_EXIFTAG_TYPE_SRATIONAL 133 #define LIBRAW_EXIFTOOLTAGTYPE_float LIBRAW_EXIFTAG_TYPE_FLOAT 134 #define LIBRAW_EXIFTOOLTAGTYPE_double LIBRAW_EXIFTAG_TYPE_DOUBLE 135 #define LIBRAW_EXIFTOOLTAGTYPE_ifd LIBRAW_EXIFTAG_TYPE_IFD 136 #define LIBRAW_EXIFTOOLTAGTYPE_unicode LIBRAW_EXIFTAG_TYPE_UNICODE 137 #define LIBRAW_EXIFTOOLTAGTYPE_complex LIBRAW_EXIFTAG_TYPE_COMPLEX 138 #define LIBRAW_EXIFTOOLTAGTYPE_int64u LIBRAW_EXIFTAG_TYPE_LONG8 139 #define LIBRAW_EXIFTOOLTAGTYPE_int64s LIBRAW_EXIFTAG_TYPE_SLONG8 140 #define LIBRAW_EXIFTOOLTAGTYPE_ifd64 LIBRAW_EXIFTAG_TYPE_IFD8 141 142 #define LIBRAW_LENS_NOT_SET 0xffffffffffffffffULL 143 144 enum LibRaw_whitebalance_code 145 { 146 // clang-format off 147 /* 148 EXIF light sources 149 12 = FL-D; Daylight fluorescent (D 5700K – 7100K) (F1,F5) 150 13 = FL-N; Day white fluorescent (N 4600K – 5400K) (F7,F8) 151 14 = FL-W; Cool white fluorescent (W 3900K – 4500K) (F2,F6, office, store, warehouse) 152 15 = FL-WW; White fluorescent (WW 3200K – 3700K) (F3, residential) 153 16 = FL-L; Soft/Warm white fluorescent (L 2600K - 3250K) (F4, kitchen, bath) 154 */ 155 //clang-format on 156 LIBRAW_WBI_Unknown = 0, 157 LIBRAW_WBI_Daylight = 1, 158 LIBRAW_WBI_Fluorescent = 2, 159 LIBRAW_WBI_Tungsten = 3, 160 LIBRAW_WBI_Flash = 4, 161 LIBRAW_WBI_FineWeather = 9, 162 LIBRAW_WBI_Cloudy = 10, 163 LIBRAW_WBI_Shade = 11, 164 LIBRAW_WBI_FL_D = 12, 165 LIBRAW_WBI_FL_N = 13, 166 LIBRAW_WBI_FL_W = 14, 167 LIBRAW_WBI_FL_WW = 15, 168 LIBRAW_WBI_FL_L = 16, 169 LIBRAW_WBI_Ill_A = 17, 170 LIBRAW_WBI_Ill_B = 18, 171 LIBRAW_WBI_Ill_C = 19, 172 LIBRAW_WBI_D55 = 20, 173 LIBRAW_WBI_D65 = 21, 174 LIBRAW_WBI_D75 = 22, 175 LIBRAW_WBI_D50 = 23, 176 LIBRAW_WBI_StudioTungsten = 24, 177 LIBRAW_WBI_Sunset = 64, 178 LIBRAW_WBI_Underwater = 65, 179 LIBRAW_WBI_FluorescentHigh = 66, 180 LIBRAW_WBI_HT_Mercury = 67, 181 LIBRAW_WBI_AsShot = 81, 182 LIBRAW_WBI_Auto = 82, 183 LIBRAW_WBI_Custom = 83, 184 LIBRAW_WBI_Auto1 = 85, 185 LIBRAW_WBI_Auto2 = 86, 186 LIBRAW_WBI_Auto3 = 87, 187 LIBRAW_WBI_Auto4 = 88, 188 LIBRAW_WBI_Custom1 = 90, 189 LIBRAW_WBI_Custom2 = 91, 190 LIBRAW_WBI_Custom3 = 92, 191 LIBRAW_WBI_Custom4 = 93, 192 LIBRAW_WBI_Custom5 = 94, 193 LIBRAW_WBI_Custom6 = 95, 194 LIBRAW_WBI_PC_Set1 = 96, 195 LIBRAW_WBI_PC_Set2 = 97, 196 LIBRAW_WBI_PC_Set3 = 98, 197 LIBRAW_WBI_PC_Set4 = 99, 198 LIBRAW_WBI_PC_Set5 = 100, 199 LIBRAW_WBI_Measured = 110, 200 LIBRAW_WBI_BW = 120, 201 LIBRAW_WBI_Kelvin = 254, 202 LIBRAW_WBI_Other = 255, 203 LIBRAW_WBI_None = 0xffff 204 }; 205 206 enum LibRaw_MultiExposure_related 207 { 208 LIBRAW_ME_NONE = 0, 209 LIBRAW_ME_SIMPLE = 1, 210 LIBRAW_ME_OVERLAY = 2, 211 LIBRAW_ME_HDR = 3 212 }; 213 214 enum LibRaw_dng_processing 215 { 216 LIBRAW_DNG_NONE = 0, 217 LIBRAW_DNG_FLOAT = 1, 218 LIBRAW_DNG_LINEAR = 2, 219 LIBRAW_DNG_DEFLATE = 4, 220 LIBRAW_DNG_XTRANS = 8, 221 LIBRAW_DNG_OTHER = 16, 222 LIBRAW_DNG_8BIT = 32, 223 /*LIBRAW_DNG_LARGERANGE=64,*/ /* more than 16 bit integer */ 224 LIBRAW_DNG_ALL = 225 LIBRAW_DNG_FLOAT | LIBRAW_DNG_LINEAR | LIBRAW_DNG_XTRANS | 226 LIBRAW_DNG_8BIT | LIBRAW_DNG_OTHER /* |LIBRAW_DNG_LARGERANGE */, 227 LIBRAW_DNG_DEFAULT = LIBRAW_DNG_FLOAT | LIBRAW_DNG_LINEAR | 228 LIBRAW_DNG_DEFLATE | LIBRAW_DNG_8BIT 229 }; 230 231 enum LibRaw_runtime_capabilities 232 { 233 LIBRAW_CAPS_RAWSPEED = 1, 234 LIBRAW_CAPS_DNGSDK = 2, 235 LIBRAW_CAPS_GPRSDK = 4, 236 LIBRAW_CAPS_UNICODEPATHS = 8, 237 LIBRAW_CAPS_X3FTOOLS = 16, 238 LIBRAW_CAPS_RPI6BY9 = 32 239 }; 240 241 enum LibRaw_colorspace { 242 LIBRAW_COLORSPACE_NotFound = 0, 243 LIBRAW_COLORSPACE_sRGB, 244 LIBRAW_COLORSPACE_AdobeRGB, 245 LIBRAW_COLORSPACE_WideGamutRGB, 246 LIBRAW_COLORSPACE_ProPhotoRGB, 247 LIBRAW_COLORSPACE_ICC, 248 LIBRAW_COLORSPACE_Uncalibrated, // Tag 0x0001 InteropIndex containing "R03" + LIBRAW_COLORSPACE_Uncalibrated = Adobe RGB 249 LIBRAW_COLORSPACE_CameraLinearUniWB, 250 LIBRAW_COLORSPACE_CameraLinear, 251 LIBRAW_COLORSPACE_CameraGammaUniWB, 252 LIBRAW_COLORSPACE_CameraGamma, 253 LIBRAW_COLORSPACE_MonochromeLinear, 254 LIBRAW_COLORSPACE_MonochromeGamma, 255 LIBRAW_COLORSPACE_Unknown = 255 256 }; 257 258 enum LibRaw_cameramaker_index 259 { 260 LIBRAW_CAMERAMAKER_Unknown = 0, 261 LIBRAW_CAMERAMAKER_Agfa, 262 LIBRAW_CAMERAMAKER_Alcatel, 263 LIBRAW_CAMERAMAKER_Apple, 264 LIBRAW_CAMERAMAKER_Aptina, 265 LIBRAW_CAMERAMAKER_AVT, 266 LIBRAW_CAMERAMAKER_Baumer, 267 LIBRAW_CAMERAMAKER_Broadcom, 268 LIBRAW_CAMERAMAKER_Canon, 269 LIBRAW_CAMERAMAKER_Casio, 270 LIBRAW_CAMERAMAKER_CINE, 271 LIBRAW_CAMERAMAKER_Clauss, 272 LIBRAW_CAMERAMAKER_Contax, 273 LIBRAW_CAMERAMAKER_Creative, 274 LIBRAW_CAMERAMAKER_DJI, 275 LIBRAW_CAMERAMAKER_DXO, 276 LIBRAW_CAMERAMAKER_Epson, 277 LIBRAW_CAMERAMAKER_Foculus, 278 LIBRAW_CAMERAMAKER_Fujifilm, 279 LIBRAW_CAMERAMAKER_Generic, 280 LIBRAW_CAMERAMAKER_Gione, 281 LIBRAW_CAMERAMAKER_GITUP, 282 LIBRAW_CAMERAMAKER_Google, 283 LIBRAW_CAMERAMAKER_GoPro, 284 LIBRAW_CAMERAMAKER_Hasselblad, 285 LIBRAW_CAMERAMAKER_HTC, 286 LIBRAW_CAMERAMAKER_I_Mobile, 287 LIBRAW_CAMERAMAKER_Imacon, 288 LIBRAW_CAMERAMAKER_JK_Imaging, 289 LIBRAW_CAMERAMAKER_Kodak, 290 LIBRAW_CAMERAMAKER_Konica, 291 LIBRAW_CAMERAMAKER_Leaf, 292 LIBRAW_CAMERAMAKER_Leica, 293 LIBRAW_CAMERAMAKER_Lenovo, 294 LIBRAW_CAMERAMAKER_LG, 295 LIBRAW_CAMERAMAKER_Logitech, 296 LIBRAW_CAMERAMAKER_Mamiya, 297 LIBRAW_CAMERAMAKER_Matrix, 298 LIBRAW_CAMERAMAKER_Meizu, 299 LIBRAW_CAMERAMAKER_Micron, 300 LIBRAW_CAMERAMAKER_Minolta, 301 LIBRAW_CAMERAMAKER_Motorola, 302 LIBRAW_CAMERAMAKER_NGM, 303 LIBRAW_CAMERAMAKER_Nikon, 304 LIBRAW_CAMERAMAKER_Nokia, 305 LIBRAW_CAMERAMAKER_Olympus, 306 LIBRAW_CAMERAMAKER_OmniVison, 307 LIBRAW_CAMERAMAKER_Panasonic, 308 LIBRAW_CAMERAMAKER_Parrot, 309 LIBRAW_CAMERAMAKER_Pentax, 310 LIBRAW_CAMERAMAKER_PhaseOne, 311 LIBRAW_CAMERAMAKER_PhotoControl, 312 LIBRAW_CAMERAMAKER_Photron, 313 LIBRAW_CAMERAMAKER_Pixelink, 314 LIBRAW_CAMERAMAKER_Polaroid, 315 LIBRAW_CAMERAMAKER_RED, 316 LIBRAW_CAMERAMAKER_Ricoh, 317 LIBRAW_CAMERAMAKER_Rollei, 318 LIBRAW_CAMERAMAKER_RoverShot, 319 LIBRAW_CAMERAMAKER_Samsung, 320 LIBRAW_CAMERAMAKER_Sigma, 321 LIBRAW_CAMERAMAKER_Sinar, 322 LIBRAW_CAMERAMAKER_SMaL, 323 LIBRAW_CAMERAMAKER_Sony, 324 LIBRAW_CAMERAMAKER_ST_Micro, 325 LIBRAW_CAMERAMAKER_THL, 326 LIBRAW_CAMERAMAKER_VLUU, 327 LIBRAW_CAMERAMAKER_Xiaomi, 328 LIBRAW_CAMERAMAKER_XIAOYI, 329 LIBRAW_CAMERAMAKER_YI, 330 LIBRAW_CAMERAMAKER_Yuneec, 331 LIBRAW_CAMERAMAKER_Zeiss, 332 // Insert additional indexes here 333 LIBRAW_CAMERAMAKER_TheLastOne 334 }; 335 336 enum LibRaw_camera_mounts 337 { 338 LIBRAW_MOUNT_Unknown = 0, 339 LIBRAW_MOUNT_Alpa, 340 LIBRAW_MOUNT_C, /* C-mount */ 341 LIBRAW_MOUNT_Canon_EF_M, 342 LIBRAW_MOUNT_Canon_EF_S, 343 LIBRAW_MOUNT_Canon_EF, 344 LIBRAW_MOUNT_Canon_RF, 345 LIBRAW_MOUNT_Contax_N, 346 LIBRAW_MOUNT_Contax645, 347 LIBRAW_MOUNT_FT, /* original 4/3 */ 348 LIBRAW_MOUNT_mFT, /* micro 4/3 */ 349 LIBRAW_MOUNT_Fuji_GF, /* Fujifilm GFX cameras, G mount */ 350 LIBRAW_MOUNT_Fuji_GX, /* Fujifilm GX680 */ 351 LIBRAW_MOUNT_Fuji_X, 352 LIBRAW_MOUNT_Hasselblad_H, /* Hasselblad Hn cameras, HC & HCD lenses */ 353 LIBRAW_MOUNT_Hasselblad_V, 354 LIBRAW_MOUNT_Hasselblad_XCD, /* Hasselblad Xn cameras, XCD lenses */ 355 LIBRAW_MOUNT_Leica_M, /* Leica rangefinder bayonet */ 356 LIBRAW_MOUNT_Leica_R, /* Leica SLRs, 'R' for reflex */ 357 LIBRAW_MOUNT_Leica_S, /* LIBRAW_FORMAT_LeicaS 'MF' */ 358 LIBRAW_MOUNT_Leica_SL, /* lens, mounts on 'L' throat, FF */ 359 LIBRAW_MOUNT_Leica_TL, /* lens, mounts on 'L' throat, APS-C */ 360 LIBRAW_MOUNT_LPS_L, /* Leica/Panasonic/Sigma camera mount, takes L, SL and TL lenses */ 361 LIBRAW_MOUNT_Mamiya67, /* Mamiya RB67, RZ67 */ 362 LIBRAW_MOUNT_Mamiya645, 363 LIBRAW_MOUNT_Minolta_A, 364 LIBRAW_MOUNT_Nikon_CX, /* used in 'Nikon 1' series */ 365 LIBRAW_MOUNT_Nikon_F, 366 LIBRAW_MOUNT_Nikon_Z, 367 LIBRAW_MOUNT_Pentax_645, 368 LIBRAW_MOUNT_Pentax_K, 369 LIBRAW_MOUNT_Pentax_Q, 370 LIBRAW_MOUNT_RicohModule, 371 LIBRAW_MOUNT_Rollei_bayonet, /* Rollei Hy-6: Leaf AFi, Sinar Hy6- models */ 372 LIBRAW_MOUNT_Samsung_NX_M, 373 LIBRAW_MOUNT_Samsung_NX, 374 LIBRAW_MOUNT_Sigma_X3F, 375 LIBRAW_MOUNT_Sony_E, 376 LIBRAW_MOUNT_LF, 377 LIBRAW_MOUNT_DigitalBack, 378 LIBRAW_MOUNT_FixedLens, 379 LIBRAW_MOUNT_IL_UM, /* Interchangeable lens, mount unknown */ 380 LIBRAW_MOUNT_TheLastOne 381 }; 382 383 enum LibRaw_camera_formats 384 { 385 LIBRAW_FORMAT_Unknown = 0, 386 LIBRAW_FORMAT_APSC, 387 LIBRAW_FORMAT_FF, 388 LIBRAW_FORMAT_MF, 389 LIBRAW_FORMAT_APSH, 390 LIBRAW_FORMAT_1INCH, 391 LIBRAW_FORMAT_1div2p3INCH, /* 1/2.3" */ 392 LIBRAW_FORMAT_1div1p7INCH, /* 1/1.7" */ 393 LIBRAW_FORMAT_FT, /* sensor size in FT & mFT cameras */ 394 LIBRAW_FORMAT_CROP645, /* 44x33mm */ 395 LIBRAW_FORMAT_LeicaS, /* 'MF' Leicas */ 396 LIBRAW_FORMAT_645, 397 LIBRAW_FORMAT_66, 398 LIBRAW_FORMAT_69, 399 LIBRAW_FORMAT_LF, 400 LIBRAW_FORMAT_Leica_DMR, 401 LIBRAW_FORMAT_67, 402 LIBRAW_FORMAT_SigmaAPSC, /* DP1, DP2, SD15, SD14, SD10, SD9 */ 403 LIBRAW_FORMAT_SigmaMerrill, /* SD1, 'SD1 Merrill', 'DP1 Merrill', 'DP2 Merrill' */ 404 LIBRAW_FORMAT_SigmaAPSH, /* 'sd Quattro H' */ 405 LIBRAW_FORMAT_3648, /* DALSA FTF4052C (Mamiya ZD) */ 406 LIBRAW_FORMAT_68, /* Fujifilm GX680 */ 407 LIBRAW_FORMAT_TheLastOne 408 }; 409 410 enum LibRawImageAspects 411 { 412 LIBRAW_IMAGE_ASPECT_UNKNOWN = 0, 413 LIBRAW_IMAGE_ASPECT_3to2 = 1, 414 LIBRAW_IMAGE_ASPECT_1to1 = 2, 415 LIBRAW_IMAGE_ASPECT_4to3 = 3, 416 LIBRAW_IMAGE_ASPECT_16to9 = 4, 417 LIBRAW_IMAGE_ASPECT_5to4 = 5, 418 LIBRAW_IMAGE_ASPECT_OTHER = 6 419 }; 420 421 enum LibRaw_lens_focal_types 422 { 423 LIBRAW_FT_UNDEFINED = 0, 424 LIBRAW_FT_PRIME_LENS = 1, 425 LIBRAW_FT_ZOOM_LENS = 2, 426 LIBRAW_FT_ZOOM_LENS_CONSTANT_APERTURE = 3, 427 LIBRAW_FT_ZOOM_LENS_VARIABLE_APERTURE = 4 428 }; 429 430 enum LibRaw_Canon_RecordModes { 431 LIBRAW_Canon_RecordMode_UNDEFINED = 0, 432 LIBRAW_Canon_RecordMode_JPEG, 433 LIBRAW_Canon_RecordMode_CRW_THM, 434 LIBRAW_Canon_RecordMode_AVI_THM, 435 LIBRAW_Canon_RecordMode_TIF, 436 LIBRAW_Canon_RecordMode_TIF_JPEG, 437 LIBRAW_Canon_RecordMode_CR2, 438 LIBRAW_Canon_RecordMode_CR2_JPEG, 439 LIBRAW_Canon_RecordMode_UNKNOWN, 440 LIBRAW_Canon_RecordMode_MOV, 441 LIBRAW_Canon_RecordMode_MP4, 442 LIBRAW_Canon_RecordMode_CRM, 443 LIBRAW_Canon_RecordMode_CR3, 444 LIBRAW_Canon_RecordMode_CR3_JPEG, 445 LIBRAW_Canon_RecordMode_HEIF, 446 LIBRAW_Canon_RecordMode_CR3_HEIF, 447 LIBRAW_Canon_RecordMode_TheLastOne 448 }; 449 450 enum LibRaw_sony_cameratypes 451 { 452 LIBRAW_SONY_DSC = 1, 453 LIBRAW_SONY_DSLR = 2, 454 LIBRAW_SONY_NEX = 3, 455 LIBRAW_SONY_SLT = 4, 456 LIBRAW_SONY_ILCE = 5, 457 LIBRAW_SONY_ILCA = 6 458 }; 459 460 enum LibRaw_KodakSensors 461 { 462 LIBRAW_Kodak_UnknownSensor = 0, 463 LIBRAW_Kodak_M1 = 1, 464 LIBRAW_Kodak_M15 = 2, 465 LIBRAW_Kodak_M16 = 3, 466 LIBRAW_Kodak_M17 = 4, 467 LIBRAW_Kodak_M2 = 5, 468 LIBRAW_Kodak_M23 = 6, 469 LIBRAW_Kodak_M24 = 7, 470 LIBRAW_Kodak_M3 = 8, 471 LIBRAW_Kodak_M5 = 9, 472 LIBRAW_Kodak_M6 = 10, 473 LIBRAW_Kodak_C14 = 11, 474 LIBRAW_Kodak_X14 = 12, 475 LIBRAW_Kodak_M11 = 13 476 }; 477 478 enum LibRaw_HasselbladFormatCodes { 479 LIBRAW_HF_Unknown = 0, 480 LIBRAW_HF_3FR, 481 LIBRAW_HF_FFF, 482 LIBRAW_HF_Imacon, 483 LIBRAW_HF_HasselbladDNG, 484 LIBRAW_HF_AdobeDNG, 485 LIBRAW_HF_AdobeDNG_fromPhocusDNG 486 }; 487 488 enum LibRaw_processing_options 489 { 490 LIBRAW_PROCESSING_SONYARW2_NONE = 0, 491 LIBRAW_PROCESSING_SONYARW2_BASEONLY = 1, 492 LIBRAW_PROCESSING_SONYARW2_DELTAONLY = 1 << 1, 493 LIBRAW_PROCESSING_SONYARW2_DELTAZEROBASE = 1 << 2, 494 LIBRAW_PROCESSING_SONYARW2_DELTATOVALUE = 1 << 3, 495 LIBRAW_PROCESSING_SONYARW2_ALLFLAGS = 496 LIBRAW_PROCESSING_SONYARW2_BASEONLY + 497 LIBRAW_PROCESSING_SONYARW2_DELTAONLY + 498 LIBRAW_PROCESSING_SONYARW2_DELTAZEROBASE + 499 LIBRAW_PROCESSING_SONYARW2_DELTATOVALUE, 500 LIBRAW_PROCESSING_DP2Q_INTERPOLATERG = 1 << 4, 501 LIBRAW_PROCESSING_DP2Q_INTERPOLATEAF = 1 << 5, 502 LIBRAW_PROCESSING_PENTAX_PS_ALLFRAMES = 1 << 6, 503 LIBRAW_PROCESSING_CONVERTFLOAT_TO_INT = 1 << 7, 504 LIBRAW_PROCESSING_SRAW_NO_RGB = 1 << 8, 505 LIBRAW_PROCESSING_SRAW_NO_INTERPOLATE = 1 << 9, 506 LIBRAW_PROCESSING_ARQ_SKIP_CHANNEL_SWAP = 1 << 10, 507 LIBRAW_PROCESSING_NO_ROTATE_FOR_KODAK_THUMBNAILS = 1 << 11, 508 LIBRAW_PROCESSING_USE_DNG_DEFAULT_CROP = 1 << 12, 509 LIBRAW_PROCESSING_USE_PPM16_THUMBS = 1 << 13, 510 LIBRAW_PROCESSING_SKIP_MAKERNOTES = 1 << 14, 511 LIBRAW_PROCESSING_DONT_CHECK_DNG_ILLUMINANT = 1 << 15, 512 LIBRAW_PROCESSING_DNGSDK_ZEROCOPY = 1 << 16, 513 LIBRAW_PROCESSING_ZEROFILTERS_FOR_MONOCHROMETIFFS = 1 << 17, 514 LIBRAW_PROCESSING_DNG_ADD_ENHANCED = 1 << 18, 515 LIBRAW_PROCESSING_DNG_ADD_PREVIEWS = 1 << 19, 516 LIBRAW_PROCESSING_DNG_PREFER_LARGEST_IMAGE = 1 << 20, 517 LIBRAW_PROCESSING_DNG_STAGE2 = 1 << 21, 518 LIBRAW_PROCESSING_DNG_STAGE3 = 1 << 22, 519 LIBRAW_PROCESSING_DNG_ALLOWSIZECHANGE = 1 << 23, 520 LIBRAW_PROCESSING_DNG_DISABLEWBADJUST = 1 << 24, 521 LIBRAW_PROCESSING_PROVIDE_NONSTANDARD_WB = 1 << 25, 522 LIBRAW_PROCESSING_CAMERAWB_FALLBACK_TO_DAYLIGHT = 1 << 26 523 }; 524 525 enum LibRaw_decoder_flags 526 { 527 LIBRAW_DECODER_HASCURVE = 1 << 4, 528 LIBRAW_DECODER_SONYARW2 = 1 << 5, 529 LIBRAW_DECODER_TRYRAWSPEED = 1 << 6, 530 LIBRAW_DECODER_OWNALLOC = 1 << 7, 531 LIBRAW_DECODER_FIXEDMAXC = 1 << 8, 532 LIBRAW_DECODER_ADOBECOPYPIXEL = 1 << 9, 533 LIBRAW_DECODER_LEGACY_WITH_MARGINS = 1 << 10, 534 LIBRAW_DECODER_3CHANNEL = 1 << 11, 535 LIBRAW_DECODER_SINAR4SHOT = 1 << 11, 536 LIBRAW_DECODER_FLATDATA = 1 << 12, 537 LIBRAW_DECODER_FLAT_BG2_SWAPPED = 1<<13, 538 LIBRAW_DECODER_NOTSET = 1 << 15 539 }; 540 541 #define LIBRAW_XTRANS 9 542 543 enum LibRaw_constructor_flags 544 { 545 LIBRAW_OPTIONS_NONE = 0, 546 LIBRAW_OPIONS_NO_MEMERR_CALLBACK = 1, 547 LIBRAW_OPIONS_NO_DATAERR_CALLBACK = 1 << 1 548 }; 549 550 enum LibRaw_warnings 551 { 552 LIBRAW_WARN_NONE = 0, 553 LIBRAW_WARN_BAD_CAMERA_WB = 1 << 2, 554 LIBRAW_WARN_NO_METADATA = 1 << 3, 555 LIBRAW_WARN_NO_JPEGLIB = 1 << 4, 556 LIBRAW_WARN_NO_EMBEDDED_PROFILE = 1 << 5, 557 LIBRAW_WARN_NO_INPUT_PROFILE = 1 << 6, 558 LIBRAW_WARN_BAD_OUTPUT_PROFILE = 1 << 7, 559 LIBRAW_WARN_NO_BADPIXELMAP = 1 << 8, 560 LIBRAW_WARN_BAD_DARKFRAME_FILE = 1 << 9, 561 LIBRAW_WARN_BAD_DARKFRAME_DIM = 1 << 10, 562 LIBRAW_WARN_NO_JASPER = 1 << 11, 563 LIBRAW_WARN_RAWSPEED_PROBLEM = 1 << 12, 564 LIBRAW_WARN_RAWSPEED_UNSUPPORTED = 1 << 13, 565 LIBRAW_WARN_RAWSPEED_PROCESSED = 1 << 14, 566 LIBRAW_WARN_FALLBACK_TO_AHD = 1 << 15, 567 LIBRAW_WARN_PARSEFUJI_PROCESSED = 1 << 16, 568 LIBRAW_WARN_DNGSDK_PROCESSED = 1 << 17, 569 LIBRAW_WARN_DNG_IMAGES_REORDERED = 1 << 18, 570 LIBRAW_WARN_DNG_STAGE2_APPLIED = 1 << 19, 571 LIBRAW_WARN_DNG_STAGE3_APPLIED = 1 << 20, 572 }; 573 574 enum LibRaw_exceptions 575 { 576 LIBRAW_EXCEPTION_NONE = 0, 577 LIBRAW_EXCEPTION_ALLOC = 1, 578 LIBRAW_EXCEPTION_DECODE_RAW = 2, 579 LIBRAW_EXCEPTION_DECODE_JPEG = 3, 580 LIBRAW_EXCEPTION_IO_EOF = 4, 581 LIBRAW_EXCEPTION_IO_CORRUPT = 5, 582 LIBRAW_EXCEPTION_CANCELLED_BY_CALLBACK = 6, 583 LIBRAW_EXCEPTION_BAD_CROP = 7, 584 LIBRAW_EXCEPTION_IO_BADFILE = 8, 585 LIBRAW_EXCEPTION_DECODE_JPEG2000 = 9, 586 LIBRAW_EXCEPTION_TOOBIG = 10, 587 LIBRAW_EXCEPTION_MEMPOOL = 11 588 }; 589 590 enum LibRaw_progress 591 { 592 LIBRAW_PROGRESS_START = 0, 593 LIBRAW_PROGRESS_OPEN = 1, 594 LIBRAW_PROGRESS_IDENTIFY = 1 << 1, 595 LIBRAW_PROGRESS_SIZE_ADJUST = 1 << 2, 596 LIBRAW_PROGRESS_LOAD_RAW = 1 << 3, 597 LIBRAW_PROGRESS_RAW2_IMAGE = 1 << 4, 598 LIBRAW_PROGRESS_REMOVE_ZEROES = 1 << 5, 599 LIBRAW_PROGRESS_BAD_PIXELS = 1 << 6, 600 LIBRAW_PROGRESS_DARK_FRAME = 1 << 7, 601 LIBRAW_PROGRESS_FOVEON_INTERPOLATE = 1 << 8, 602 LIBRAW_PROGRESS_SCALE_COLORS = 1 << 9, 603 LIBRAW_PROGRESS_PRE_INTERPOLATE = 1 << 10, 604 LIBRAW_PROGRESS_INTERPOLATE = 1 << 11, 605 LIBRAW_PROGRESS_MIX_GREEN = 1 << 12, 606 LIBRAW_PROGRESS_MEDIAN_FILTER = 1 << 13, 607 LIBRAW_PROGRESS_HIGHLIGHTS = 1 << 14, 608 LIBRAW_PROGRESS_FUJI_ROTATE = 1 << 15, 609 LIBRAW_PROGRESS_FLIP = 1 << 16, 610 LIBRAW_PROGRESS_APPLY_PROFILE = 1 << 17, 611 LIBRAW_PROGRESS_CONVERT_RGB = 1 << 18, 612 LIBRAW_PROGRESS_STRETCH = 1 << 19, 613 /* reserved */ 614 LIBRAW_PROGRESS_STAGE20 = 1 << 20, 615 LIBRAW_PROGRESS_STAGE21 = 1 << 21, 616 LIBRAW_PROGRESS_STAGE22 = 1 << 22, 617 LIBRAW_PROGRESS_STAGE23 = 1 << 23, 618 LIBRAW_PROGRESS_STAGE24 = 1 << 24, 619 LIBRAW_PROGRESS_STAGE25 = 1 << 25, 620 LIBRAW_PROGRESS_STAGE26 = 1 << 26, 621 LIBRAW_PROGRESS_STAGE27 = 1 << 27, 622 623 LIBRAW_PROGRESS_THUMB_LOAD = 1 << 28, 624 LIBRAW_PROGRESS_TRESERVED1 = 1 << 29, 625 LIBRAW_PROGRESS_TRESERVED2 = 1 << 30 626 }; 627 #define LIBRAW_PROGRESS_THUMB_MASK 0x0fffffff 628 629 enum LibRaw_errors 630 { 631 LIBRAW_SUCCESS = 0, 632 LIBRAW_UNSPECIFIED_ERROR = -1, 633 LIBRAW_FILE_UNSUPPORTED = -2, 634 LIBRAW_REQUEST_FOR_NONEXISTENT_IMAGE = -3, 635 LIBRAW_OUT_OF_ORDER_CALL = -4, 636 LIBRAW_NO_THUMBNAIL = -5, 637 LIBRAW_UNSUPPORTED_THUMBNAIL = -6, 638 LIBRAW_INPUT_CLOSED = -7, 639 LIBRAW_NOT_IMPLEMENTED = -8, 640 LIBRAW_UNSUFFICIENT_MEMORY = -100007, 641 LIBRAW_DATA_ERROR = -100008, 642 LIBRAW_IO_ERROR = -100009, 643 LIBRAW_CANCELLED_BY_CALLBACK = -100010, 644 LIBRAW_BAD_CROP = -100011, 645 LIBRAW_TOO_BIG = -100012, 646 LIBRAW_MEMPOOL_OVERFLOW = -100013 647 }; 648 649 #define LIBRAW_FATAL_ERROR(ec) ((ec) < -100000) 650 651 enum LibRaw_thumbnail_formats 652 { 653 LIBRAW_THUMBNAIL_UNKNOWN = 0, 654 LIBRAW_THUMBNAIL_JPEG = 1, 655 LIBRAW_THUMBNAIL_BITMAP = 2, 656 LIBRAW_THUMBNAIL_BITMAP16 = 3, 657 LIBRAW_THUMBNAIL_LAYER = 4, 658 LIBRAW_THUMBNAIL_ROLLEI = 5 659 }; 660 661 enum LibRaw_image_formats 662 { 663 LIBRAW_IMAGE_JPEG = 1, 664 LIBRAW_IMAGE_BITMAP = 2 665 }; 666 667 #endif 668