Warning, /graphics/digikam/core/libs/rawengine/libraw/Changelog.txt is written in an unsupported language. File is not indexed.
0001 2023-12-19 Alex Tutubalin <lexa@lexa.ru> 0002 0003 LibRaw 0.21.2-Release 0004 0005 * New compile-defined limit LIBRAW_MAX_PROFILE_SIZE_MB: 0006 limits allocation/read size for embedded color profile (default: 256Mb) 0007 0008 * Embedded color profile allocation/read size: limited by input file size. 0009 0010 * Multiple fixes (mostly inspired by oss-fuzz) to improve library stability and/or input checks. 0011 0012 * raw-identify: use fallback if PATH_MAX not available 0013 0014 * Disabled color conversion for Canon 16-bit thumbnails 0015 0016 * docs/changelog: explained the case when no thumbnail is found in specific file 0017 0018 * swapXX renamed to libraw_swapXX to avoid name conflict 0019 0020 * better striped thumbnails handling 0021 0022 0023 2023-01-05 Alex Tutubalin <lexa@lexa.ru> 0024 LibRaw 0.21.1-Release 0025 * fixed typo in panasonic metadata parser 0026 0027 2022-12-18 Alex Tutubalin <lexa@lexa.ru> 0028 LibRaw 0.21-Release 0029 0030 * Multiple fixes inspired by oss-fuzz project 0031 0032 2022-07-01 Alex Tutubalin <lexa@lexa.ru> 0033 0034 LibRaw 0.21-Beta1 0035 0036 == Camera format support == 0037 * Phase One/Leaf IIQ-S v2 support 0038 * Canon CR3 filmrolls 0039 * Canon CRM (movie) files 0040 * Tiled bit-packed (and 16-bit unpacked) DNGs 0041 * (non-standard) Deflate-compressed integer DNG files are allowed 0042 0043 == Camera support == 0044 0045 * Canon EOS R3, R7 and R10 0046 * Fujifilm X-H2S, X-T30 II 0047 * OM System OM-1 0048 * Leica M11 0049 * Sony A7-IV (ILCE-7M4) 0050 * DJI Mavic 3 0051 * Nikon Z9: standard compression formats only 0052 0053 == Multiple (resolution) thumbnails support == 0054 0055 * New imgdata.thumbs_list data item with data fields: 0056 0057 int thumbcount: thumbnail count 0058 libraw_thumbnail_item_t thumblist[LIBRAW_THUMBNAIL_MAXCOUNT]: list of thumbnails 0059 0060 libraw_thumbnail_item_t fields: 0061 0062 enum LibRaw_internal_thumbnail_formats tformat: internal thumbnail format 0063 (this is not PPM/JPEG, but internal type related to thumbnail reading/unpacking method) 0064 0065 ushort twidth, theight: thumbnail image size. 0066 0067 ushort tflip: image rotation (see notes below) 0068 0069 unsigned tlength: on-disk data size (not uncompressed for compressed formats) 0070 0071 unsigned tmisc: bit depth and channel count: (color << 5) | bitsperpixel 0072 0073 INT64 toffset: Thumbnail data offset in file 0074 0075 Notes: 0076 - Only TIFF-based and CR3 files are parsed for thumbnail list, other formats will have 0077 thumbcount = 1. 0078 0079 - If no thumbnails are found in file: thumbcount will be set to 1 and 0080 thumblist[0] will be initialized with data from thumbnail fields, 0081 so LibRaw::unpack_thumb_ex(0) will do the same as LibRaw::unpack_thumb() 0082 0083 - Thumbnail image size may be unknown (not recorded in metadata), in this case twidth and theight are zero. 0084 Usually small(er) thumbnails will always have twidth/theight filled, while largest one may have these fields set to zero. 0085 0086 - Thumbnail rotation (tflip) is filled only for TIFF-based RAWs (if Orientation tag is not present in IFD, default zero value is used) 0087 For non-tiff images, tflip is initialized to 0xffff (not known...) 0088 0089 - There is no code to select thumbnail based on some criteria (e.g. minimal resolution), it is left to user to implement such a criteria, if needed 0090 (see unpack_thumb_ex() call below) 0091 0092 - If you want to get largest possible thumbnail: just use old unpack_thumb() call to get it. 0093 0094 * new API call: LibRaw::unpack_thumb_ex(int i): 0095 Unpacks i-th thumbnail if it exists into imgdata.thumbnail structure 0096 i should be non-zero and less then imgdata.thumbs_list.thumbcount. 0097 0098 * samples/simple_dcraw.cpp: new -E command line switch to extract all thumbnails from input file(s) 0099 0100 == (Experimental) RawSpeed "version 3" (develop branch) support. == 0101 0102 Build with -DUSE_RAWSPEED3, see details in RawSpeed3/README.md 0103 0104 LibRaw::capabilities will set bit LIBRAW_CAPS_RAWSPEED3 if compiled w/ 0105 RawSpeed-v3 support 0106 0107 If file was processed (or tried to process) via RawSpeed-v3, these bits 0108 are raised in imgdata.process_warnings: 0109 LIBRAW_WARN_RAWSPEED3_PROCESSED - processed via RawSpeed v3 0110 LIBRAW_WARN_RAWSPEED3_PROBLEM - not processed (due to exception in RawSpeed library) 0111 LIBRAW_WARN_RAWSPEED3_UNSUPPORTED - unsupported file 0112 LIBRAW_WARN_RAWSPEED3_NOTLISTED - file not listed in cameras.xml data 0113 0114 RawSpeed-v3 support is controlled via libraw_decoder_info.t->flags 0115 (LIBRAW_DECODER_TRYRAWSPEED3 bit). 0116 The bit is set for: 0117 - lossless jpeg decoder 0118 - Canon sRAW decoder 0119 - lossless compressed and packed-compressed DNG decoders 0120 - Pentax decoder 0121 - Nikon (compressed) decoder 0122 - Phase One Compressed and Hasselblad/Compressed decoders 0123 - bitpacked decoder 0124 - Panasonic (old 12-bit compression) decoder 0125 - Olympus decoder 0126 - Sony ARW (v1 and v2) decoders 0127 - Samsung (version 1) decoder 0128 0129 * (Experimental) Fine control of RawSpeed version selection/use. 0130 To enable, build LibRaw with -DUSE_RAWSPEED_BITS 0131 LibRaw::capabilities will set bit LIBRAW_CAPS_RAWSPEED_BITS if compiled 0132 with this flag. 0133 If enabled: 0134 imgdata.rawparams.use_rawspeed becomes bit-field (instead of 0/1 off/on) 0135 with bits: 0136 LIBRAW_RAWSPEEDV1_USE - use RawSpeed Version 1 (if compiled with) 0137 LIBRAW_RAWSPEEDV1_FAILONUNKNOWN - do not process unknown files 0138 (not listed in RawSpeed v1 camera definitions file) 0139 LIBRAW_RAWSPEEDV1_IGNOREERRORS - ignore mirror decoding errors (out of range data,etc) 0140 0141 LIBRAW_RAWSPEEDV3_USE - Use RawSpeed Version 3 (if compiled with) 0142 LIBRAW_RAWSPEEDV3_FAILONUNKNOWN - do not process unknown files 0143 LIBRAW_RAWSPEEDV3_IGNOREERRORS - ignore minor decoding errors 0144 0145 == Misc changes/improvements == 0146 * New compile time define LIBRAW_OWN_SWAB 0147 to use on platforms without swab() in C/C++ runtime 0148 0149 * New imgdata.rawparams.options bit: LIBRAW_RAWOPTIONS_CANON_IGNORE_MAKERNOTES_ROTATION 0150 If set: image orientation is set based on TIFF/IFD0:Orientation tag, 0151 makernotes orientation data is ignored 0152 0153 * Nikon makernotes: read NEFCompression tag for HE/HE* files 0154 0155 * Nikon orientation tag: more fixed offsets for known cameras 0156 0157 * Adobe DNG SDK 1.6 support (meaning, just an additional patch for GPR SDK) 0158 0159 * removed LibRaw::memerr(), memory allocation failures are already handled 0160 in LibRaw_memmgr::*alloc w/ exception thrown 0161 0162 * removed memory error callback, out-of-memory error should be handled via 0163 returned error code check, all related parameters (e.g. LibRaw constructor 0164 option to not set such callback) is also removed 0165 0166 * imgdata.params.adjust_maximum_thr is settable via C-API libraw_set_adjust_maximum_thr(..) 0167 0168 * New rawoptions/processing flags for DNG processing if compiled 0169 with Adobe DNG SDK: 0170 LIBRAW_RAWOPTIONS_DNG_STAGE2_IFPRESENT,LIBRAW_RAWOPTIONS_DNG_STAGE3_IFPRESENT 0171 If these flag(s) are set: Stage2/Stage3 processing will be performed 0172 only if OpcodeList2/OpcodeList3 tags are present in the input DNG file 0173 Old (hard) flags (LIBRAW_RAWOPTIONS_DNG_STAGE2 and 0174 LIBRAW_RAWOPTIONS_DNG_STAGE3) are not removed and will force Stage2/3 0175 processing if set (regardless of input file tags) 0176 0177 * New imgdata.rawparams.options bit: LIBRAW_RAWOPTIONS_DNG_ADD_MASKS 0178 If set: DNG Transparency Masks will be extracted (if selected via shot_select) 0179 0180 * New decoder flag: LIBRAW_DECODER_UNSUPPORTED_FORMAT 0181 0182 == Bugs fixed == 0183 0184 * Fixed possible out-of-buffer read in Nikon orientation tag parser 0185 0186 * Windows datastream: fixed logic errors (not showing up in real life) 0187 0188 * Out-of-range read-only array access in postprocessing if output_color is set to 0 (raw color) 0189 0190 * Minolta Z2 was not recognized correctly on 32-bit systems 0191 0192 * Fixed possible buffer overflow in Kodak C330 decoder 0193 0194 * dcraw_process(): check for buffer allocation results to avoid NULL deref 0195 0196 2021-10-11 Alex Tutubalin <lexa@lexa.ru> 0197 * Camera support: 0198 Apple iPhone 13 Pro 0199 GoPro HERO10 (if compiled w/ USE_GPR_SDK) 0200 Ricoh GR III 0201 Sony Xperia 1 III 0202 0203 * Fuji RAF files: XMP block extraction 0204 0205 * Fixed a typo in LIBRAW_OPTIONS_* flag names 0206 (was LIBRAW_OPIONS, old flags names not removed due to compatibility) 0207 0208 * samples/raw-identify.cpp: -v flag documented in usage print. 0209 0210 2021-09-14 Alex Tutubalin <lexa@lexa.ru> 0211 * Camera support: 0212 Fujifilm GFX 50S II 0213 Nikon Z fc 0214 Sony A7R-IIIA (ILCE-7RM3A), A7R-IVA (ILCE-7RM4A) 0215 0216 * API/datastruct Changes: 0217 - imgdata.params.shot_select moved to imgdata.rawparams.shot_select 0218 (because this is decode-time option, not postprocessing option) 0219 0220 - libraw_open_bayer(...) added to C-API 0221 0222 - imgdata.makernotes.canon: separate SensorLeftBorder,SensorTopBorder.... 0223 (and many other datafields) are united in libraw_area_t (rectangle) 0224 groups for crop areas and optical black areas. 0225 0226 * src/libraw_cxx.cpp completely removed from source tree to not confuse users. 0227 (also all mentions are removed from Makefiles) 0228 0229 * Better Olympus makernotes parsing: LiveND mode, Panorama mode tags. 0230 0231 * clang-cl compatibility: 0232 - defines _MSC_VER, but _forceinline is not supported 0233 - warnings eliminated in Windows buffered datastream 0234 0235 * Canon/12-bit files: adjust color.linear_max and makernotes.canon values 0236 to match data range. 0237 0238 2021-08-04 Alex Tutubalin <lexa@lexa.ru> 0239 * Camera support: 0240 Sony ZV-E10 0241 * DNG/Floating point: additional metadata check to refuse ambiguous/corrupted files. 0242 * DNG/Floating point: correct handling of striped files (never seen in wild) 0243 * Rawspeed support: disallow Nikon D6/Compressed processing 0244 * Bug fixed: raw_inset_crops[] ctop/cheight was not adjusted right if vendor-specified 0245 ctop equals to 1. 0246 0247 2021-07-20 Alex Tutubalin <lexa@lexa.ru> 0248 * Camera support: 0249 Olympus E-P7 0250 0251 2021-07-08 Alex Tutubalin <lexa@lexa.ru> 0252 * Camera support: 0253 Panasonic GH5 Mark II 0254 Pentax K3 Mark III 0255 several phones w/ DNG files (checked) 0256 0257 * Camera format support: Panasonic v6/12 bit 0258 * Compile-time raw size limits implemented: 0259 LIBRAW_MAX_NONDNG_RAW_FILE_SIZE - max file size for non-DNG files (default: 2GB - 1 byte) 0260 LIBRAW_MAX_DNG_RAW_FILE_SIZE - max DNG file size limit (4GB-1 if compiled w/ DNG SDK, 2GB-1 otherwise) 0261 0262 * ACES output: color conversion changed to provide D65 white point 0263 0264 * Fix for Canon 5D Mark II/sRAW1 incorrect camera provided crop 0265 0266 2021-05-07 Alex Tutubalin <lexa@lexa.ru> 0267 * Camera support: 0268 Fujifilm GFX 100S, X-E4: improved color data 0269 Canon EOS M50 Mark II was supported but not listed in camera list 0270 DJI Mavic Air 2S 0271 GOPRO Hero9 0272 * Support for RaspberryPi HQ camera (if compiled w/ USE_6BY9RPI) 0273 * Improved support for RPi V1/V2 cameras: 0274 - white balance data extraction 0275 - color matrix extracted to imgdata.color.cmatrix to use with 0276 use_camera_matrix. 0277 - full-size thumbnail/preview support for JPEG+RAW files (raspistill -r) 0278 * Fuji GFX100/GFX100S: PixelShift metadata extraction. 0279 * RawSpeed (master): fixed bug in old Samsung/compressed decoder, 0280 apply this patch to RawSpeed: RawSpeed/rawspeed.samsung-decoder.patch 0281 * DCI-P3 and Rec 2020 output colorspaces 0282 * Eliminated multiple signed/unsigned mismatch warnings (reported by gcc11) 0283 * fixed possible 1-byte stack underrun while handling text tags with zero length 0284 * XMP block size in CR3 files limited to 1MB 0285 * Preview block size in CR3 files limited to 100MB 0286 * Fixed wrong handling of linear DNG files created from Pentax out-of-camera 0287 DNGs 0288 0289 2021-02-18 Alex Tutubalin <lexa@lexa.ru> 0290 * Improved Phase One Compressed defects masking, thanks to Alexey Danilchenko 0291 * Sony ILCE-1/Lossless compressed support 0292 0293 2021-02-16 Alex Tutubalin <lexa@lexa.ru> 0294 * Additional fields in libraw_internal_data.unpacker_data: 0295 - INT64: exif_offset: base offset of 1st EXIF IFD in file 0296 - INT64: ifd0_offset: base offset of 1st TIFF IFD (IFD0) in file 0297 - unsigned cr3_exif_length, cr3_ifd0_lenght : CR3-specific length of 0298 exif and ifd0 sections. 0299 0300 2021-02-08 Alex Tutubalin <lexa@lexa.ru> 0301 * CRX (CR3) decoder: fixed typo in constant; this does not affect any 0302 known still photo (CR3) sample(s), but allows to use the decoder with 0303 some video (CRM) files. 0304 0305 * Imported user-contributed improvements to OpenMP postprocessing 0306 (AHD and X-Trans demosaic) 0307 0308 * Bugfix: overwrite (wrong) TIFF/Orientation tag value with Metadata/Camera Orientation 0309 value for EOS 40D only. 0310 0311 2021-02-04 Alex Tutubalin <lexa@lexa.ru> 0312 * imgdata.sizes.raw_inset_crop rearranged: 0313 now it is imgdata.sizes.raw_inset_crops[2]: 0314 - item at [0] is the same as imgdatra.sizes.raw_inset_crop in previous 0315 versions 0316 - item at [1] is 'user crop', in particular: 0317 -- set by DNG DefaultUserCrop tag 0318 -- or set via raw aspect ratio tags (e.g. 16:9 aspect on Fujifilm cameras) 0319 raw_inset_crops[1] is filled only if aspect ratio tags provides different 0320 aspect ratio compared to raw_inset_crops[0]. 0321 0322 There are no flags to check if raw_inset_crops[Nth] is filled; to see if it is filled check 0323 the values of: 0324 ctop/cleft < 0xffff (0xffff => standard values if not initialized) 0325 ctop+cheight <= sizes.raw_height 0326 cleft+cwidth <= sizes.raw_width 0327 0328 Note: raw_inset_crops may be fooled by metadata (makernotes), use some correctness check before use. 0329 0330 * LIBRAW_RAWOPTIONS_USE_DNG_DEFAULT_CROP processing flag removed, 0331 DNG DefaultCrop* tags are parsed into raw_inset_crops[0] 0332 0333 * new LibRaw call LibRaw::adjust_to_raw_inset_crop(unsigned mask, float maxcrop = 0.55f) 0334 Promotes imgdata.sizes.raw_inset_crops[] values to 0335 imgdata.sizes.*margin and imgdata.sizes.width/height fields 0336 0337 mask: if bit 1 is set: prefer raw_inset_crops[1] 0338 if bit 0 is set: prefer raw_inset_crops[0] 0339 0340 maxcrop: limits crop to not less than (original width/height)*maxcrop; if raw_inset_crops[i] 0341 data results in tighter crop, than this item is ignored. 0342 0343 return value: index in raw_inset_crops[] used increased by one, so 0344 0: no changes made 0345 1: [0]th data used 0346 2: [1]th data used 0347 0348 Note: this call SHOULD be used after LibRaw::unpack(), otherwise black level 0349 calculation from masked area may be fooled resulting in wrong black levels. 0350 0351 2021-01-21 Alex Tutubalin <lexa@lexa.ru> 0352 0353 == LibRaw snapshot 202101 == 0354 0355 = Camera format support: = 0356 Lossy compressed CR3 files 0357 Lossy compressed RAF files 0358 Uncompressed floating point DNG files (16-24-32 bit) 0359 Deflate compressed striped DNG files 0360 XMP and HEIF-preview extraction from CR3 files 0361 0362 = Camera support = 0363 Apple iPhone 12 Max, iPhone 12 Max Pro 0364 Canon EOS R5, EOS R6, EOS 850D, EOS-1D X Mark III (lossy compressed files) 0365 FujiFilm X-S10 0366 Hasselblad CFV II 50C", 0367 Leica M10-R, Q2 Monochrom, S3, SL2-S 0368 Nikon Z 5, Z 6 II, Z 7 II 0369 Olympus E-M10 Mark IV 0370 Panasonic DC-G100 / G110, DC-S5 0371 Sony ILCE-7C (A7C), ILCE-7SM3 (A7S III) 0372 Zeiss ZX1 0373 Plus multiple DNG-recording cameraphones/drones/etc. 0374 0375 = Almost dropped camera support: = 0376 Old/partially supported video/cinema cameras support is available only if 0377 LibRaw is compiled with USE_OLD_VIDEOCAMS defined (this #define is 0378 converted internally to LIBRAW_OLD_VIDEO_SUPPORT defined). 0379 This affects: 0380 Arri cameras 0381 Canon C500 0382 RED Cine cameras 0383 We plan to keep the support in LibRaw 0.21 (if compiled with define 0384 mentioned above) and completely drop the support after 0.21. 0385 If you're using LibRaw to decode RED Cine files, see LibRaw*datastreams 0386 section below (in short: you'll need to use old fstream-based datastream 0387 under Windows). 0388 Cinema DNG files are not affected by this. 0389 0390 = API/ABI changes = 0391 0392 * Decoding parameters 0393 imgdata.params is split into 0394 imgdata.rawparams: parameters used for metadata/raw data decoding 0395 imgdata.params: parameters used at postprocessing stage 0396 0397 imgdata.params.raw_processing options are split into two sub-options sets 0398 imgdata.rawparams.options: raw processing flags, useful for normal 0399 operations 0400 imgdata.rawparams.specials: special modes (e.g decoding only delta 0401 pixels from Sony ARW) 0402 0403 Old LIBRAW_PROCESSING_* flags are renamed to LIBRAW_RAWOPTIONS_* and 0404 LIBRAW_RAWSPECIAL* 0405 LIBRAW_PROCESSING_DP2Q_INTERPOLATE... flags are renamed to 0406 LIBRAW_RAWSPECIAL_NODP2Q_INTERPOLATE with inverted meaning (with the 0407 goal to have zero imgdata.rawparams.specials in normal use). 0408 0409 * New processing flag LIBRAW_RAWOPTIONS_PROVIDE_NONSTANDARD_WB 0410 If set (default is not), and when applicable, color.cam_mul[] and 0411 color.WB_Coeffs/WBCT_Coeffs will contain WB settings for a 0412 non-standard workflow. 0413 Right now only Sony DSC-F828 is affected: camera-recorded white balance 0414 can't be directly applied to raw data because WB is for RGB, while raw 0415 data is RGBE. 0416 0417 * New processing flag: LIBRAW_RAWOPTIONS_CAMERAWB_FALLBACK_TO_DAYLIGHT 0418 If set (default is not), LibRaw::dcraw_process() will fallback to 0419 daylight WB (excluding some very specific cases like Canon D30). 0420 This is how LibRaw 0.19 (and older) works. 0421 If not set: LibRaw::dcraw_process() will fallback to calculated auto WB if 0422 camera WB is requested, but appropriate white balance was not found in 0423 metadata. 0424 0425 * Removed LIBRAW_PROCESSING_SKIP_MAKERNOTES processing flag: with new 0426 Windows(-handle) datastreams metadata parsing performance is enough 0427 to not skip makernotes parsing. 0428 0429 * new output parameter: imgdata.params.output_flags and new 0430 enum LibRaw_output_flags 0431 Right now the only flag is implemented: LIBRAW_OUTPUT_FLAGS_PPMMETA 0432 setting it will result into metadata written to PPM/PGM output file 0433 0434 * LibRaw_*datastreams change and corresponding open_file() parameters change 0435 LibRaw_file_datastream (based on iostreams) is moved under 0436 #ifdef LIBRAW_USE_DEPRECATED_IOSTREAMS_DATASTREAM 0437 Standard datastreams are: 0438 LibRaw_bigfile_datastream (FILE* based) for POSIX systems 0439 LibRaw_bigfile_buffered_datastream - for use with Win32 syscalls 0440 API changes: 0441 if LIBRAW_USE_DEPRECATED_IOSTREAMS_DATASTREAM is NOT defined, than 0442 LibRaw::open_file() and similar calls drops the last INT64 max_buffered_sz 0443 parameter which defines automatic selection between iostreams and 0444 FILE* based datasteams. 0445 0446 Note: LibRaw_bigfile_buffered_datastream does NOT implements 0447 make_jas_stream() call, so RED Cine file decoding is not possible with 0448 this datastream. Use deprecaded iostreams implementation instead. 0449 0450 We plan to keep LIBRAW_USE_DEPRECATED_IOSTREAMS_DATASTREAM up to 0451 LibRaw 0.21 and drop in 0.22. 0452 0453 * Fuji decoder: 0454 fuji_decode_loop/fuji_decode_strip parameters has changed; look into source 0455 code for details if you're implementing your own fuji_decode_loop() 0456 call in subclass to provide parallel fuji decoding. 0457 0458 * Canon CR3 H265 (HEIF) preview limited support: 0459 - new format value: LIBRAW_THUMBNAIL_H265 0460 - this thumbnail is NOT extracted by LibRaw::make_mem_thumb() yet; 0461 0462 * LibRaw::capabilities 0463 Two bits added: 0464 LIBRAW_CAPS_ZLIB if compiled with USE_ZLIB 0465 LIBRAW_CAPS_JPEG if compiled with USE_JPEG 0466 0467 0468 * Windows datastreams: CreateFile2 is used if compiled for UWP. 0469 0470 * API-datastruct: clarified behavior with use_camera_wb=1 setting. 0471 0472 * identify(): restored the differentiation between fsize and flen. 0473 0474 * New compile-time LIBRAW_FORCE_OPENMP to skip compiler version check 0475 (if LibRaw user is absolutely sure that OpenMP is supported by compiler) 0476 0477 2020-10-14 Alex Tutubalin <lexa@lexa.ru> 0478 0479 * LibRaw 0.20.2 0480 Reverted 0.20.1 change: 0481 - const buffer for open_buffer() and open_bayer() calls 0482 Because of 0.20.0 ABI break 0483 0484 2020-10-14 Alex Tutubalin <lexa@lexa.ru> 0485 0486 * LibRaw 0.20.1 0487 * Improvements: 0488 - exif callback is called on EXIF GPS and EXIF Interop IFDs 0489 - open_bayer call documented 0490 - Canon (ColorDatsSubver==32): parse Specular White instead of hardcoded value 0491 * Fixes for normal files processing: 0492 - Olympus XZ-1: do not provide linear_max (it is wrong in metadata) 0493 - Nikon Z cameras: added space in camera list 0494 - raw-identify: fixed wb-preset print 0495 - Pentax Optio 33WR: maker index was incorrect 0496 - dcraw_emu: corrected help line for -6 option. 0497 - raw-identify: corrected range check for color matrices print 0498 - use_camera_matrix option: fixed a bug introduced when making 0499 compiler more happy. 0500 0501 * Fixes for damaged/special crafted files processing: 0502 - Fix for truncated CR3 files parsing 0503 - DNG metadata merger: all color loops are limited to MIN(4,colors) 0504 - Check for marings: should be less than raw image size 0505 - Check for xmpdata present in Samsung Lens ID assignment 0506 - Check for column range in leaf_hdr decoder 0507 - Additional checks in Hasselblad model parser 0508 - Fuji rotate: better limits check 0509 - DNG files: limit tiff_samples 0510 0511 * Not fixes, but makes ASAN/compilers/etc happy: 0512 - corrected GPS EXIF output 0513 - const buffer for open_buffer() and open_bayer() calls 0514 0515 0516 2020-07-23 Alex Tutubalin <lexa@lexa.ru> 0517 0518 * LibRaw 0.20 0519 0520 == Camera Format support == 0521 Canon CR3 0522 GoPro (via GPR SDK) 0523 Panasonic 14-bit 0524 Fujifilm compressed/16bit 0525 Rapsberry Pi RAW+JPEG format (if USE_6BY9RPI defined) 0526 Foveon X3F support changed: it is supported only if USE_X3FTOOLS defined 0527 at build (see below for 'Imported code policy changed') 0528 0529 == Camera support (+59, 1131 total) == 0530 Canon: PowerShot G5 X Mark II, G7 X Mark III, SX70 HS, 0531 EOS R, EOS RP, EOS 90D, EOS 250D, EOS M6 Mark II, EOS M50, EOS M200 0532 EOS 1DX Mark III (lossless files only) 0533 DJI Mavic Air, Osmo Action 0534 FujiFilm GFX 100, X-A7, X-Pro3, X100V, X-T4 (uncompressed/lossless compressed only), X-T200 0535 GoPro Fusion, HERO5, HERO6, HERO7, HERO8 0536 Hasselblad L1D-20c, X1D II 50C 0537 Leica D-LUX7, Q-P, Q2, V-LUX5, C-Lux / CAM-DC25, SL2, M10 Monochrom 0538 Nikon D780, Z50, P950 0539 Olympus TG-6, E-M5 Mark III, E-PL10, E-M1 Mark III, 0540 Panasonic DC-FZ1000 II, DC-G90, DC-S1, DC-S1R, DC-S1H, DC-TZ95 0541 PhaseOne IQ4 150MP 0542 Ricoh GR III 0543 Sony A7R IV, A9 II, ILCE-6100, ILCE-6600, RX0 II, RX100 VII 0544 Zenit M 0545 0546 also multiple smartphones (the tested ones are listed in LibRaw::cameraList) 0547 0548 == Source code re-arranged == 0549 * dcraw.c is not used in the generation and build processes 0550 * dcraw_common.cpp and libraw_cxx.cpp are split into multiple code chunks 0551 placed in separate subfolders (decoders/ for raw data decoders, 0552 metadata/ for metadata parsers, etc) 0553 * dcraw_common.cpp and libraw_cxx.cpp remain to preserve existing 0554 build environments (these files are now just a bunch of #include directives). 0555 * It is possible to build LibRaw 0556 a)without postprocessing functions (dcraw_process() and called function) 0557 b)without postprocessing and LibRaw::raw2image() call (and called function). 0558 It may be useful to reduce library memory/code footprint. 0559 See Makefile.devel.nopp and Makefile.devel.noppr2i for the list of source 0560 files needed to build reduced/stripped library. 0561 0562 == Normalized make/model == 0563 0564 There is a huge number of identical cameras sold under different names, 0565 depending on the market (e.g. multiple Panasonic or Canon models) 0566 and even some identical cameras sold under different brands 0567 (Panasonic -> Leica, Sony -> Hasselblad). 0568 0569 To reduce clutter, a normalization mechanism has been implemented in LibRaw: 0570 0571 In imgdata.idata: 0572 char normalized_make[64]; - primary vendor name (e.g. Panasonic for 0573 Leica re-branded cameras) 0574 char normalized_model[64]; - primary camera model name 0575 unsigned maker_index; - primary vendor name in indexed form (enum 0576 LibRaw_cameramaker_index, LIBRAW_CAMERAMAKER_* constant). 0577 These fields are always filled upon LibRaw::open_file()/open_buffer() calls. 0578 0579 const char* LibRaw::cameramakeridx2maker(int index): converts maker_index 0580 to normalized_make. 0581 0582 We recommend that you use these normalized names in a variety of data tables 0583 (color profiles, etc.) to reduce the number of duplicate entries. 0584 0585 New vendor index values will be added strictly to the end of the 0586 LibRaw_cameramaker_index table, ensuring that the numbers assigned to 0587 vendors that are already known to LibRaw will not change. 0588 0589 == DNG frame selection == 0590 0591 DNG frames selection code re-worked: 0592 - by default all frames w/ the NewSubfileType tag equal to 0 0593 (high-res image) are added to the list of available images (selection 0594 performed via imgdata.params.shot_select field, as usual) 0595 - the special case for Fuju SuperCCD (SamplesPerPixel == 2) works as 0596 before: shot_select=1 will extract second sub-image. 0597 - Additional flags to imgdata.params.raw_processing_options: 0598 LIBRAW_PROCESSING_DNG_ADD_ENHANCED - will add Enhanced DNG frame 0599 (NewSubfileType == 16) to the list of available frames 0600 LIBRAW_PROCESSING_DNG_ADD_PREVIEWS - will add previews 0601 (NewSubfileType == 1) to the list. 0602 0603 - By default, DNG frames are not reordered and are available in same order 0604 as in DNG (LibRaw traverses IFD/Sub-IFD trees in deep-first order). 0605 To prioritize the largest image, set LIBRAW_PROCESSING_DNG_PREFER_LARGEST_IMAGE 0606 bit in imgdata.params.raw_processing_options. 0607 0608 - DNG Stage2/Stage3 processing via DNG SDK (request via flags in 0609 raw_processing_options) 0610 0611 == Imported code policy disclaimer == 0612 0613 We've changed the policy regarding 3rd party code imported into LibRaw. 0614 0615 We (like other authors of open-source RAW parsers) gladly import support 0616 code for various RAW formats from other projects (if the license allows it). 0617 This is done to expand camera support. 0618 Unfortunately, not all imported code can tolerate truncated or otherwise 0619 damaged raw files, as well as arbitrary conditions or arbitrary data; 0620 not all authors handle rejecting unexpected input well. 0621 0622 LibRaw is now widely used in various projects, including ImageMagick, which, 0623 in turn, is often used on web sites to process any input images, including 0624 arbitrary data from unknown users. 0625 This opens up wide possibilities for exploiting the various vulnerabilities 0626 present in the code borrowed from other projects into LibRaw. In order to 0627 avoid such security risks, - the borrowed code will no longer compile 0628 by default. 0629 We are not able to support it in general case, and the authors refuse 0630 to add code to reject unexpected input. 0631 0632 Thus, if you use some kind of camera for which the support is disabled 0633 by default, you need to recompile LibRaw for your specific case. 0634 0635 Formats currently affected: 0636 X3F (Foveon) file format. 0637 Code is imported from Kalpanika X3F tools: https://github.com/Kalpanika/x3f 0638 To turn the support on, define USE_X3FTOOLS 0639 0640 Rapsberry Pi RAW+JPEG format. 0641 Code is imported from https://github.com/6by9/dcraw/, 0642 To turn the support on, define USE_6BY9RPI 0643 Format support is indicated via LibRaw::capabilities() call with flags: 0644 LIBRAW_CAPS_X3FTOOLS - Foveon support 0645 LIBRAW_CAPS_RPI6BY9 - RPi RAW+JPEG support 0646 0647 == GoPro .gpr format support == 0648 GoPro format supported via open-source GPR SDK 0649 See README.GoPro.txt for details. 0650 0651 == Windows support/Windows unicode (wchar_t*) filenames support == 0652 0653 * (old) LibRaw's WIN32 external define split into 3 defines to fine tune 0654 compiler/api compatibility: 0655 LIBRAW_WIN32_DLLDEFS - use to compile DLLs (__dllimport/__dllexport attributes) 0656 LIBRAW_WIN32_UNICODEPATHS - indicates that runtime has calls/datatypes for wchar_t filenames 0657 LIBRAW_WIN32_CALLS - use Win32 calls where appropriative (binary mode for files, LibRaw_windows_datastream, _snprintf instead of snprintf, etc). 0658 0659 If the (old) WIN32 macro is defined at compile time, all three new defines are defined in libraw.h 0660 If not, these defines are defined based on compiler version/libc++ defines 0661 0662 * LibRaw::open_file(wchar_t*) is always compiled in under Windows, but 0663 if LIBRAW_WIN32_UNICODEPATHS (see above) is not defined, this call will 0664 return LIBRAW_NOT_IMPLEMENTED. 0665 Use (LibRaw::capabilities() & LIBRAW_CAPS_UNICODEPATHS) on runtime 0666 to check that this call was really implemented (or check for #ifdef LIBRAW_WIN32_UNICODEPATHS after #include <libraw.h>) 0667 0668 == LibRaw*datastream simplified == 0669 0670 * tempbuffer_open, subfile_open are not used, so removed from 0671 LibRaw_abstract_datastream and derived classes. 0672 0673 * jpeg_src() call implemented using ->read() call and own buffering 0674 (16k buffer). 0675 * buffering_off() call added. It should be used in derived classes 0676 to switch from buffered reads to unbuffered. 0677 0678 == minor/unsorted changes == 0679 * new flag LIBRAW_WARN_DNGSDK_PROCESSED to indicate decoder used 0680 * LibRaw::open() call, max_buf_size special meaning: 0681 == 1 => open using bigfile_datastream 0682 == 2 => open using file_datastream 0683 * Add support for zlib during configure 0684 * Fixed multiple problems found by OSS-Fuzz 0685 * Lots of changes in imgdata.makernotes (hope someone will document it) 0686 * DNG SDK could be used (if enabled) to unpack multi-image DNG files. 0687 * DNG whitelevel calculated via BitsPerSample if not set via tags. 0688 * DNG: support for LinearDNG w/ BlackLevelRepeat.. pattern 0689 * Generic Arri camera format replaced w/ list of specific camera models in supported cameras list. 0690 * new samples/rawtextdump sample: allows one to dump (small selection) of RAW data in text format. 0691 * samples/raw-identify: 0692 * +M/-M params (same as in dcraw_emu) 0693 * -L <file-w-filelist> parameter to get file list from a file 0694 * -m paramerer to use mmap'ed IO. 0695 * -t parameter for timing 0696 * samples/dcraw_emu: fixed +M handling 0697 * better support for Nikon Coolscan 16-bit NEF files. 0698 * Visual Studio project files: re-generated to .vcxproj (Visual Studio 2019), different 0699 intermediate folders for different sub-projects to allow 1-step rebuild. 0700 * imgdata.makernotes...cameraspecific: removed the vendor name prefix from variables. 0701 * Bayer images: ensure that even margins have the same COLOR() for both the active sensor area and the full sensor area. 0702 * raw processing flag bit LIBRAW_PROCESSING_CHECK_DNG_ILLUMINANT inverted and renamed to 0703 LIBRAW_PROCESSING_DONT_CHECK_DNG_ILLUMINANT. If not set, DNG illuminant will be checked. 0704 * New libraw_decoder_t flags: 0705 LIBRAW_DECODER_FLATDATA - in-file data could be used as is (if byte order matches), e.g. via mmap() 0706 LIBRAW_DECODER_FLAT_BG2_SWAPPED - special flag for Sony ARQ: indicates R-G-G2-B channel 0707 order in 4-color data 0708 * Camera-recorded image crop data is parsed into imgdata.sizes.raw_inset_crop structure: 0709 ctop,cleft,cwidth,cheight - crop size. 0710 aspect - LibRawImageAspects enum (3to2, 4to3, etc) 0711 * New define LIBRAW_NO_WINSOCK2 to not include winsock2.h on compile 0712 0713 * New processing flag LIBRAW_PROCESSING_PROVIDE_NONSTANDARD_WB 0714 If set (default is not), and when applicable, color.cam_mul[] and 0715 color.WB_Coeffs/WBCT_Coeffs will contain WB settings for a non-standard 0716 workflow. 0717 Right now only Sony DSC-F828 is affected: camera-recorded white balance 0718 can't be directly applied to raw data because WB is for RGB, while raw 0719 data is RGBE. 0720 0721 * New processing flag: LIBRAW_PROCESSING_CAMERAWB_FALLBACK_TO_DAYLIGHT 0722 If set (default is not), LibRaw::dcraw_process() will fallback to 0723 daylight WB (excluding some very specific cases like Canon D30). 0724 This is how LibRaw 0.19 (and older) works. 0725 If not set: LibRaw::dcraw_process() will fallback to calculated auto WB if 0726 camera WB is requested, but appropriate white balance was not found in 0727 metadata. 0728 0729 * Google changes cherry-picked (thanks to Jamie Pinheiro) 0730 * speedup: ppg interpolate: const loop invariant 0731 0732 * Bugs fixed 0733 -Fixed several UBs found by OSS Fuzz 0734 -Fixed several problems found by other fuzzers. 0735 - Thumbnail size range check (CVE-2020-15503) 0736 Thanks to Jennifer Gehrke of Recurity Labs GmbH for problem report. 0737 - fixed possible overflows in canon and sigma makernotes parsers 0738 - fixed possible buffer overrun in crx (cr3) decoder 0739 - fixed memory leak in crx decoder (if compiled with LIBRAW_NO_CR3_MEMPOOL) 0740 - fixed possible overrun in Sony SRF and SR2 metadata parsers 0741 0742 * Fixed typo in longitude (member of parsed GPS structure), update required for code that uses it. 0743 0744 0745 2019-03-05 Alex Tutubalin <lexa@lexa.ru> 0746 * Camera support 0747 Canon A560 (CHDK hack) 0748 FujiFilm X-T30 0749 Nikon Coolpix A1000 0750 Olympus E-M1X 0751 Sony ILCE-6400 0752 Several dng files from phones and drones was tested 0753 and added to built-in camera list too. 0754 0755 * Multiple names for same Panasonic cameras are processed via 0756 aliaces mechanics, no multiple duplicate fields in adobe_coeffs() table 0757 0758 * Better makernotes parsing for many cameras 0759 0760 * Better parsing of makernotes embedded into DNG files created by 0761 Adobe DNG Converter 0762 0763 * New imgdata.params.raw_processing_options value: LIBRAW_PROCESSING_ZEROFILTERS_FOR_MONOCHROMETIFFS 0764 - If this bit is set 0765 - and TIFF file contains SamplesPerPixel == 1 0766 - and filters value was not guessed from metadata parsing 0767 LibRaw will assume the file is monochrome, not bayer. 0768 This option is needed for monochrome scan processing (Imacon X1 etc). 0769 This option may broke old TIF-like RAW files processing (Kodak 760,etc) 0770 use with care (it is better to let user choose). 0771 0772 2018-12-12 Alex Tutubalin <lexa@lexa.ru> 0773 * Camera support: 0774 Canon: PowerShot A480 (CHDK hack), EOS 2000D, EOS 4000D 0775 Eyedeas E1 0776 FujiFilm: GFX 50R, XF10, X-T3, X-T100, DBP680 0777 GITUP G3 DUO (16:9 mode only, use custom camera for 4:3) 0778 Kodak PIXPRO AZ901 0779 Leica M10-D, M10-P 0780 Nikon D3500, Z6, Z7, P1000 0781 Panasonic LX100M2 0782 Pentax K-1 II 0783 Sony A7 III, HX95, HX99, RX100-VA, RX100-VI 0784 0785 * Fixed long standing bug in remove_zeroes: first two rows/cols was unprocessed 0786 * Better parsing for NEF files modified (damaged) by NikonTransfer 0787 * Better parsing for floating point DNG black levels (into color.dnglevels.fblack and dng_fcblack[], similar 0788 to color.black and color.cblack[] for other formats). 0789 * More flexible limit for RAW decoding memory usage: 0790 imgdata.params.max_raw_memory_mb (default is LIBRAW_MAX_ALLOC_MB_DEFAULT) 0791 0792 * New flags for imgdata.params.raw_processing_options: 0793 LIBRAW_PROCESSING_CHECK_DNG_ILLUMINANT - will check DNG illuminant field when selecting color matrix 0794 (note: incompatibility with previous versions, so default is not set). 0795 LIBRAW_PROCESSING_DNGSDK_ZEROCOPY - will not copy data from Adobe DNG SDK decoded buffer, but use it as is 0796 0797 * Switched from auto_ptr to unique_ptr, to get back define LIBRAW_USE_AUTOPTR 0798 0799 * dcraw_emu: it is now possible to create output filename in a more flexible manner, via -Z switch: 0800 -Z - will output to stdout 0801 -Z ext will output into inputfilename.ext 0802 -Z .ext will output into inputfilename.inputext.ext 0803 0804 0805 2018-11-22 Alex Tutubalin <lexa@lexa.ru> 0806 * Finally: got Sinar 4shot sample, works fine now 0807 * OpenMP critical sections for malloc/free; extra #ifdefs removed; bin/dcraw_dist could be built again using Makefile.devel 0808 * additional checks in parse_phase_one() 0809 * more checks on file offsets/tag len in parse_minolta 0810 * more checks in parse_ciff 0811 * Mempool check reworked 0812 * Old Leaf (16bit/3color/TIFF) support 0813 * Fix cameraWB->autoWB fallback 0814 * Polaroid x530 channel swap; get metadata pointer for Foveon files 0815 * Fixed Secunia Advisory SA86384 0816 - possible infinite loop in unpacked_load_raw() 0817 - possible infinite loop in parse_rollei() 0818 - possible infinite loop in parse_sinar_ia() 0819 Credits: Laurent Delosieres, Secunia Research at Flexera 0820 0821 * LibRaw 0.19.1-Release 0822 0823 2018-06-28 Alex Tutubalin <lexa@lexa.ru> 0824 * changed wrong fix for Canon D30 white balance 0825 * fixed possible stack overrun while reading zero-sized strings 0826 * fixed possible integer overflow 0827 * LibRaw 0.19.0-Release 0828 0829 2018-06-11 Alex Tutubalin <lexa@lexa.ru> 0830 * Sony uncompressed/untiled DNGs: do not set bits-per-sample to 14 bit 0831 * Do not change tiff_bps for DNG files 0832 * Another possible stack overflow in kodak radc reader 0833 * Secunia Advisory SA83507, credits Kasper Leigh Haabb, 0834 Secunia Research at Flexera" 0835 - parse_qt: possible integer overflow 0836 - reject broken/crafted NOKIARAW files 0837 * LibRaw 0.19-Beta6 0838 0839 2018-05-10 Alex Tutubalin <lexa@lexa.ru> 0840 * Put rogue printf's behind #ifdef DCRAW_VERBOSE 0841 * Exceptions was not caught in x3f_new_from_file resulting in x3f handle leak 0842 * packed_load_raw(): EOF check on each row 0843 * define LIBRAW_USE_CALLOC_INSTEAD_OF_MALLOC to use ::calloc instead of 0844 ::malloc in LibRaw_mem_mgr malloc calls; 0845 Note: realloc is not changed, so only partial fix 0846 * Fixed possible div by zero in EOS D30 WB data parse 0847 * U-suffix for filter-var manipulation consts 0848 * restored static specifier for utf2char() lost in previous bugfix 0849 * Fixed stack overrun in kodak_radc_load_raw 0850 * Secunia Advisory SA83050: possible infinite loop in parse_minolta() 0851 * LibRaw 0.19-Beta5 0852 0853 2018-05-03 Alex Tutubalin <lexa@lexa.ru> 0854 * CVE-2018-10529 fixed: out of bounds read in X3F parser 0855 * CVE-2018-10528 fixed: possible stack overrun in X3F parser 0856 * LibRaw 0.19-Beta4 0857 0858 2018-04-24 Alex Tutubalin <lexa@lexa.ru> 0859 * LibRaw 0.19-Beta3 0860 * fixed lot of bugs reported by ImageMagic/oss-fuzz 0861 * fixed several bugs reported by Secunia team (adv 81800, 0862 Credit: Laurent Delosieres, Secunia Research at Flexera) 0863 0864 2018-03-22 Alex Tutubalin <lexa@lexa.ru> 0865 * LibRaw 0.19-Beta2 0866 * Better handling of broken JPEG thumbnails 0867 * Panasonic GH5S/G9-hires decoder, thanks to Alexey Danilchenko 0868 Note: ABI has changed due to this patch, so shlib version increased 0869 * Fujifilm X-A5/A20 metadata parsing fix 0870 * New error code LIBRAW_TOO_BIG: image data size excess LIBRAW_MAX_ALLOC_MB 0871 * winsock2 included before windows.h to make MinGW happy 0872 0873 2018-02-23 Alex Tutubalin <lexa@lexa.ru> 0874 0875 * LibRaw 0.19-Beta1 0876 0877 * 84 cameras added compared to 0.18 (1014 total): 0878 Apple 0879 iPhone 8(*), iPhone 8 plus, iPhone X 0880 BlackMagic 0881 URSA Mini 4k, URSA Mini 4.6k, URSA Mini Pro 4.6k 0882 Canon CHDK hack 0883 PowerShot A410, A540, D10, ELPH 130 IS, ELPH 160 IS, SD750, 0884 SX100 IS,SX130 IS, SX160 IS, SX510 HS, SX10 IS, IXUS 900Ti 0885 Canon 0886 PowerShot G1 X Mark III, G9 X Mark II, EOS 6D Mark II, EOS 77D, 0887 EOS 200D, EOS 800D, EOS M6, EOS M100 0888 Casio EX-ZR4100/5100 0889 DJI 0890 Phantom4 Pro/Pro+, Zenmuse X5, Zenmuse X5R 0891 FujiFilm 0892 S6500fd, GFX 50S, X100f, X-A3, X-A5, X-A10, X-A20, X-E3, X-H1, X-T20 0893 GITUP GIT2P 0894 Hasselblad 0895 H6D-100c, A6D-100c 0896 Huawei 0897 P9 (EVA-L09/AL00), Honor6a, Honor9, Mate10 (BLA-L29) 0898 Leica 0899 CL, M10, TL2 0900 LG 0901 V20 (F800K), VS995, 0902 Nikon 0903 D850, D5600, D7500, Coolpix B700 0904 Olympus 0905 E-PL9, E-M10 Mark III, TG-5 0906 OnePlus 0907 One, A3303, A5000 0908 Panasonic 0909 DMC-FZ45, DMC-FZ72, DC-FZ80/82, DC-G9 (std. res mode only), DC-GF10/GF90, 0910 DC-GH5, DC-GX9, DC-GX800/850/GF9, DMC-LX1, DC-ZS70 (DC-TZ90/91/92, DC-T93), 0911 DC-TZ100/101/ZS100, DC-TZ200/ZS200 0912 PARROT 0913 Bebop 2, Bebop Drone 0914 Pentax KP 0915 PhaseOne IQ3 100MP Trichromatic 0916 Samsung 0917 Galaxy Nexus, Galaxy S3, S6 (SM-G920F), S7, S7 Edge, S8 (SM-G950U), 0918 Sony 0919 A7R III, A9, DSC-RX0, DSC-RX10IV 0920 Yi M1 0921 YUNEEC 0922 CGO3, CGO3P 0923 Xiaoyi YIAC3 (YI 4k) 0924 0925 Note(*): for mobile phones with DNG format recording, only really tested cameras 0926 are added to supported camera list. Really LibRaw should support any correct DNG. 0927 0928 * No more built-in support for LibRaw demosaic packs (GPL2/GPL3). 0929 We're unable to support this (very old code), so we'll be happy to transfer this 0930 code to some maintainer who wish to work with it. 0931 0932 In LibRaw 0.19 we provide extension API: user-settable callbacks to be called in 0933 code points where demosaic pack code was called. 0934 0935 - int callbacks.pre_identify_cb(void *) => to be called in LibRaw::open_datastream 0936 before call to (standard) identify() function. If this call returns 1, this means 0937 that RAW file is identified and all metadata fields are set, so no need to run 0938 standard identify code. 0939 - void callbacks.post_identify_cb(void*) => called just after identify(), but before 0940 any cleanup code; 0941 - dcraw_process() callbacks are called before dcraw_process phases (name speaks for itself): 0942 pre_subtractblack_cb, pre_scalecolors_cb, pre_preinterpolate_cb, pre_interpolate_cb, 0943 interpolate_bayer_cb, interpolate_xtrans_cb, post_interpolate_cb, pre_converttorgb_cb, 0944 post_converttorgb_cb 0945 0946 All these new callbacks are called with (this) as the only arg. 0947 To continue LibRaw-demosaic-pack-GPLx support one need to subclass LibRaw, set needed 0948 callbacks in (e.g.) constructor code, than these callbacks to be called 0949 0950 * Better DNG parser: 0951 - support for DefaultCrop Origin/Size tags (add LIBRAW_PROCESSING_USE_DNG_DEFAULT_CROP to raw_processing_options to enable) 0952 - better parsing for nested DNG tags (use tag from RAW IFD, fallback to IFD0 if no tag in current IFD) 0953 - DNG PreviewColorspace extracted into dng_levels.preview_colorspace 0954 0955 * Metadata extraction: 0956 - Better extraction of camera measured balance (LIBRAW_WBI_Auto and WBI_Measured), 0957 this not the same as 'as shot' if some preset/manual tune is used. 0958 - Extraction of camera custom balances (LIBRAW_WBI_CustomN) 0959 - Nikon data compression tag extracted into makernotes.nikon.NEFCompression 0960 - Hasselblad BaseISO and Gain extracted into makernotes.hasselblad 0961 - Canon multishot params extracted into makernotes.canon.multishot 0962 - lot of other vendor-specific makernotes data (see data structures definitions for details). 0963 0964 * New LibRaw::open_bayer call allows to pass sensor dump w/o metadata directly to LibRaw: 0965 virtual int open_bayer(unsigned char *data, unsigned datalen, 0966 ushort _raw_width, ushort _raw_height, ushort _left_margin, ushort _top_margin, 0967 ushort _right_margin, ushort _bottom_margin, 0968 unsigned char procflags, unsigned char bayer_pattern, unsigned unused_bits, unsigned otherflags, 0969 unsigned black_level); 0970 Parameters: 0971 data, datalen - buffer passed 0972 width/height/margins - speaks for itself 0973 procflags: 0974 for 10-bit format: 0975 1: "4 pixels in 5 bytes" packing is used 0976 0: "6 pixels in 8 bytes" packing is used 0977 for 16-bit format: 0978 1: Big-endian data 0979 bayer_pattern: one of LIBRAW_OPENBAYER_RGGB,LIBRAW_OPENBAYER_BGGR, 0980 LIBRAW_OPENBAYER_GRBG,LIBRAW_OPENBAYER_GBRG 0981 unused_bits: count of upper zero bits 0982 otherflags: 0983 Bit 1 - filter (average neighbors) for pixels with values of zero 0984 Bits 2-4 - the orientation of the image (0=do not rotate, 3=180, 5=90CCW, 6=90CW) 0985 black_level: file black level (it also may be specified via imgdata.params) 0986 0987 see samples/openbayer_sample.cpp for usage sample (note, this sample is 'sample only', suited for 0988 Kodak KAI-0340 sensor, you'll need change open_bayer() params for your data). 0989 0990 * Color data added/updated/fixed for many cameras 0991 0992 * Correct data maximum for Fuji X-* cameras 0993 0994 * Thumbnail processing: 0995 - JPEG thumbnails: if compiled with libjpeg, color count is extracted into imgdata.thumbnail.tcolors 0996 - PPM (bitmap) thumbnails: color count is set according to thumbnail IFD tag 0997 - PPM16 thumbnails: if LIBRAW_PROCESSING_USE_PPM16_THUMBS set in raw_processing_options, than thumbnail will be extracted 0998 as is, not converted to 8 bit. thumbnail.tformat is set to LIBRAW_THUMBNAIL_BITMAP16 in this case. 0999 Untested, because it is hard to find RAWs with 16-bit bitmaps. 1000 1001 == Compatibility fixes 1002 1003 * struct tiff_tag renamed to libraw_tiff_tag 1004 * pow64f renamed to libraw_pow64f 1005 1006 == Bugs fixed: 1007 1008 * COLOR(r,c) works correctly on X-Trans files 1009 1010 == Security fixes: 1011 Secunia #81000: 1012 Credit: Laurent Delosieres, Secunia Research at Flexera 1013 * leaf_hdr_load_raw: check for image pointer for demosaiced raw 1014 * NOKIARAW parser: check image dimensions readed from file 1015 * quicktake_100_load_raw: check width/height limits 1016 1017 Secunia #79000: 1018 Credit: Laurent Delosieres, Secunia Research at Flexera 1019 * All legacy (RGB raw) image loaders checks for imgdata.image is not NULL 1020 * kodak_radc_load_raw: check image size before processing 1021 * legacy memory allocator: allocate max(widh,raw_width)*max(height,raw_height) 1022 1023 Secunia #76000: 1024 * Fixed fuji_width handling if file is neither fuji nor DNG 1025 * Fixed xtrans interpolate for broken xtrans pattern 1026 * Fixed panasonic decoder 1027 * LibRaw 0.18.6 1028 1029 Other fixes: 1030 * Checks for width+left_margin/height+top_margin not larger than 64k 1031 * LIBRAW_MAX_ALLOC_MB define limits maximum image/raw_image allocation 1032 (default is 2048 so 2Gb per array) 1033 * LibRaw::read_shorts item count is now unsigned 1034 * Fixed possible out of bound access in Kodak 65000 loader 1035 * CVE-2017-14348: Fix for possible heap overrun in Canon makernotes parser 1036 Credit: Henri Salo from Nixu Corporation 1037 * Fix for CVE-2017-13735 1038 * CVE-2017-14265: Additional check for X-Trans CFA pattern data 1039 * Fixed several errors (Secunia advisory SA75000) 1040 * ACES colorspace output option included in dcraw_emu help page 1041 * Avoided possible 32-bit overflows in Sony metadata parser 1042 * Phase One flat field code called even for half-size 1043 1044 1045 2016-12-27 Alex Tutubalin <lexa@lexa.ru> 1046 * Licensing changes: 1047 - there is no 'LibRaw Software License 27032010' licensing anymore (and all signed 1048 agreements have expired) 1049 - LibRaw is now dual-licensed: LGPL 2.1 or CDDL 1.0 1050 1051 * Camera support (+87): 1052 Apple: iPad Pro, iPhone SE, iPhone 6s, iPhone 6 plus, iPhone 7, iPhone 7 plus 1053 BlackMagic Micro Cinema Camera, URSA, URSA Mini 1054 Canon PowerShot G5 X, PowerShot G7 X Mark II, PowerShot G9 X, 1055 IXUS 160 (CHDK hack), EOS 5D Mark IV, EOS 80D, EOS 1300D, EOS M10, EOS M5, 1056 EOS-1D X Mark II 1057 Casio EX-ZR4000/5000 1058 DXO One, 1059 FujiFilm X-Pro2, X70, X-E2S, X-T2 1060 Gione E7 1061 GITUP GIT2 1062 Google Pixel,Pixel XL 1063 Hasselblad X1D, True Zoom 1064 HTC MyTouch 4G, One (A9), One (M9), 10 1065 Huawei P9 1066 Leica M (Typ 262), M-D (Typ 262), S (Typ 007), SL (Typ 601), X-U (Typ 113), TL 1067 LG G3, G4 1068 Meizy MX4 1069 Nikon D5, D500, D3400 1070 Olympus E-PL8, E-M10 Mark II, Pen F, SH-3, E-M1-II 1071 Panasonic DMC-G8/80/81/85, DMC-GX80/85, DMC-TZ80/81/85/ZS60, DMC-TZ100/101/ZS100,DMC-LX9/10/15, FZ2000/FZ2500 1072 Pentax K-1, K-3 II, K-70 1073 PhaseOne IQ3 100MP 1074 RaspberryPi Camera, Camera V2 1075 Ricoh GR II 1076 Samsung Galaxy S7, S7 Edge 1077 Sigma sd Quattro 1078 Sony A7S II, ILCA-68 (A68),ILCE-6300,DSC-RX1R II,DSC-RX10III, DSC-RX100V,ILCA-99M2 (A99-II), a6500 1079 IMX214, IMX219, IMX230, IMX298-mipi 16mp, IMX219-mipi 8mp, Xperia L 1080 PtGrey GRAS-50S5C 1081 YUNEEC CGO4 1082 Xiaomi MI3, RedMi Note3 Pro 1083 1084 * Floating point DNG support: 1085 - new data fields: 1086 imgdata.rawdata.float_image - bayer float data 1087 imgdata.rawdata.float3_image - 3-component float data 1088 imgdata.rawdata.float4_image - 4-component float data 1089 imgdata.color.fmaximum - float data maximum (calculated from real data, 1090 rounded to 1.0 if below 1.0) 1091 - new raw processing flag 1092 LIBRAW_PROCESSING_CONVERTFLOAT_TO_INT - converts float data to 16-bit 1093 integer immediately after decoding with default parameters 1094 - new API Calls: 1095 int LibRaw::is_floating_point() returns non-zero if RAW file contains 1096 floating point data 1097 int LibRaw::have_fpdata() returns non-zero if rawdata.float*_image is not 1098 null (so FP data has been unpacked but not converted to integrer, see below). 1099 LibRaw::convertFloatToInt(float dmin=4096.f, float dmax=32767.f, float dtarget = 16383.f) 1100 converts float/float3/float4_image to raw_image/color3/color4_image with or without scaling: 1101 - if both real data maximum and metadata maximum are within the range ( >= dmin && <=dmax), float 1102 data is just converted to integer 1103 - if data is out of the range given above, values are scaled so real data maximum becomes dtarget 1104 - if data was rescaled (normalized), scale multiplier is stored in imgdata.color.fnorm 1105 1106 * LibRaw can be built with Adobe DNG SDK support to decode exotic DNG formats (e.g. 8 bit). 1107 See README.DNGSDK.txt for details 1108 1109 * New API calls 1110 unsigned LibRaw::capabilities and C-API libraw_capabilities() 1111 allows developers to determine LibRaw compile flags at runtime. 1112 Returns ORed bit fields: 1113 LIBRAW_CAPS_RAWSPEED - LibRaw was compiled with RawSpeed Support 1114 LIBRAW_CAPS_DNGSDK - LibRaw was compiled with Adobe DNG SDK 1115 LIBRAW_CAPS_DEMOSAICSGPL2, LIBRAW_CAPS_DEMOSAICSGPL3 - LibRaw was compiled with demosaic packs (GPL2/GPL3) 1116 1117 * More metadata parsed: 1118 - White balance coefficients stored in the raw file are extracted into: 1119 int imgdata.color.WBCoeffs[256][4] - array indexed by EXIF lightsource type 1120 for example, WBCoeffs[21][..] contains coefficients for D65 lightsource 1121 float imgdata.color.WBCT_Coeffs[64][5] contains white balance data specified 1122 for given color temperature: WBCT_Coeffs[i][0] contains temperature value, 1123 and [1]..[4] are WB coefficients. 1124 - DNG analog balance, per-channel black/white level, and forward matrix 1125 - vendor specific metadata stored in vendor-specific data structures 1126 1127 * new C-API calls: 1128 void libraw_set_user_mul(libraw_data_t *lr,int index, float val); 1129 void libraw_set_ca_correction(libraw_data_t *lr,int ca_correc, float ca_red, float ca_blue); 1130 void libraw_set_cfalinenoise(libraw_data_t *lr,int cfaline, float linenoise); 1131 void libraw_set_wf_debanding(libraw_data_t *lr, int wf_debanding, float wfd0, float wfd1, float wfd2, float wfd3); 1132 void libraw_set_interpolation_passes(libraw_data_t *lr,int passes); 1133 1134 * Existing API changes: 1135 imgdata.params fields (all very specific purpose): sony_arw2_options, sraw_ycc, and params.x3f_flags 1136 replaced with single bit-field raw_processing_options 1137 See LIBRAW_PROCESSING_* bits in documentation. 1138 1139 * zlib library is optional 1140 Use -DUSE_ZLIB to compile with zlib (to provide deflate DNG support) 1141 * libjpeg version: jpeg_mem_src() is mandatory, so use libjpeg-turbo 1142 or libjpeg 8+ 1143 * Fixes in vng_interpolate to make modern compilers happy 1144 * Fixed bug in Sony SR2 files black level 1145 * DNG files with BlackLevel both in vendor makernotes and BlackLevel: 1146 BlackLevel tag always takes precedence 1147 * strlen replaced with strnlen in most cases, added local version of strnlen 1148 * ChannelBlackLevel added to canon makernotes 1149 * unpack_thumb() data size/offset check against file size 1150 1151 2015-08-15 Alex Tutubalin <lexa@lexa.ru> 1152 1153 * LibRaw 0.17 1154 1155 * Fixed dcraw.c ljpeg_start possibly buffer overrun 1156 1157 * fixed several bugs detected by using American Fuzzy Lop 1158 1159 * C-API extension to support 3DLut Creator 1160 1161 * More metadata parsing/extraction: 1162 - XMP packet extracted (if exists) 1163 - DNG Color information parsed 1164 - GPS data (partially) parsed 1165 - EXIF/Makernotes parsed for used optics (for both RAW files and DNG converted by Adobe convertor). 1166 1167 * Exif/Makernotes parser callback (called for each processed tag) 1168 1169 * Sony ARW2.3 decoder: 1170 - params.sony_arw2_hack removed, decoded data are always in 0...17k range (note the difference with dcraw!) 1171 - Additional processing options for Sony lossy compression technical analysis. 1172 1173 * Dcraw 9.26 imported (but some changes not approved because Libraw do it better) with some exceptions: 1174 - no Pentax K3-II frame selection code 1175 - no built-in JPEG decompressor 1176 1177 * Many improvements in data decoding/processing: 1178 - Correct decoding of black level values from metadata for many formats, LibRaw do not rely on hardcoded black levels. 1179 1180 * 224 camera models added to supported camera list. 1181 Some of them are new (released since LibRaw 0.16 come out), some was supported before, but missed from the list. 1182 Added cameras are: 1183 1184 Alcatel 5035D 1185 BlackMagic Pocket Cinema Camera, Production Camera 4k 1186 Canon PowerShot A550, A3300 IS, G1 X Mark II, G7 X, SD950, SX60 HS, EOS 7D Mark II, EOS 20Da, EOS 60Da, EOS 1200D, EOS-1D C, 5DS, 5DS R, 750D, 760D, M2, M3, G3 X 1187 Casio EX-FC300S, EX-FC400S, EX-Z1080, EX-ZR700, EX-ZR710, EX-ZR750, EX-ZR800, EX-ZR850, EX-ZR1000, EX-ZR1100, ZR1200, ZR1300, EX-ZR1500, EX-100, EX-10 1188 Digital Bolex D16,D16M 1189 DJI 4384x3288, 1190 Epson R-D1s, R-D1x 1191 FujiFilm E505,S1,S205EXR,HS10,HS11,HS22EXR,HS33EXR,HS35EXR,F505EXR,F605EXR,F775EXR,F900EXR,X100T,X30,X-T1,X-T1 Graphite Silver, XQ2, X-A2, X-T10 1192 Hasselblad H5D-60, H5D-50,H5D-50c,H5D-40,H4D-60,H4D-50,H4D-40,H4D-31,H3DII-22,H3DII-31,H3DII-39,H3DII-50,H3D-22,H3D-31,H3D-39,H2D-22,H2D-39,CF-22,CF-31,CF-39,Stellar II,HV 1193 HTC UltraPixel 1194 Imacon Ixpress 96, 96C, 384, 384C (single shot only),132C, 528C (single shot only) 1195 ISG 2020x1520 1196 Ikonoskop A-Cam dII Panchromatic, A-Cam dII 1197 Kinefinity KineMINI, KineRAW Mini, KineRAW S35 1198 Kodak DCS460D, S-1 1199 Leaf Credo 50 1200 Lenovo a820 1201 Leica Digital-Modul-R, D-Lux (Typ 109), M (Typ 240), Monochrom (Typ 240), M-E, M-P, R8, S, T (Typ 701), X (Typ 113), X2, X-E (Typ 102), V-Lux (Typ 114), Monochrom (Typ 246), Q 1202 Matrix 4608x3288 1203 Nikon D4s, D600, D610, D750, D800, D800E, D810, D3300, D5500, Df, 1 J4, 1 S2, 1 V3, Coolpix P340, Coolscan NEF, D7200, 1 J5,D810A 1204 Nokia 1200x1600 1205 Olympus E-450, E-600, E-PL6, E-PL7, E-M1, E-M10, E-M5 Mark II, SP565UZ, STYLUS1s, SH-2, TG-4, AIR-A01 1206 Panasonic DMC-CM1, DMC-FZ7, DMC-FZ70, DMC-FZ1000, DMC-GF7, DMC-GH4, AG-GH4, DMC-GM1s, DMC-GM5, DMC-LX100, DMC-TZ60/61/SZ40, DMC-TZ70, FZ300/330, GX8 1207 Pentax GR, K110D, K-01, K-S1, Q, QS-1, 645Z, K-S2, K3 II 1208 PhaseOne IQ250, IQ260, IQ260 Achromatic, IQ280, Achromatic+, P 20+, P 21, P 25+, P 30+, P 40+ 1209 Ricoh GXR MOUNT A12, GXR MOUNT A16 24-85mm F3.5-5.5, GXR, S10 24-72mm F2.5-4.4 VC, GXR, GR A12 50mm F2.5 MACRO, GXR, GR LENS A12 28mm F2.5, GXR, GXR P10 1210 Samsung GX-1L, NX1, NX5, NX1000, NX1100, NX30, NX300, NX300M, NX3000, NX mini, Galaxy S3, Galaxy Nexus, NX500 1211 Sigma dp1 Quattro, dp2 Quattro, dp3 Quattro, dp0 Quattro 1212 Sinar eMotion 22, eMotion 54, eSpirit 65, eMotion 75, eVolution 75, Sinarback 54 1213 Sony A7 II, A7S, ILCA-77M2 (A77-II), ILCE-3000, ILCE-5000, ILCE-5100, ILCE-6000, ILCE-QX1, DSC-RX100III, DSLR-A560, NEX-VG20, NEX-VG30, NEX-VG900, IMX135-mipi 13mp, IMX135-QCOM, IMX072-mipi, RX100-IV, A7R-II, RX10-II 1214 1215 * Fujifilm F700/S20Pro second frame support 1216 1217 2014-02-01 Alex Tutubalin <lexa@lexa.ru> 1218 * Updated Oly E-M10 & Panasonic TZ60/61 color data 1219 * Updated foveon SD9-14 white level 1220 * Support for 1x1 BlackLevelRepeatDim 1221 1222 2014-01-31 Alex Tutubalin <lexa@lexa.ru> 1223 * imported dcraw 1.461: fixed error in BlackLevelDim handling 1224 * Accurate work with pattern black-level (cblack[6+]) 1225 * Support for Olympus E-M10 and Fujifilm X-T1 1226 * Adjusted possible maximum value for Sigma SD9 small raws 1227 1228 2014-01-27 Alex Tutubalin <lexa@lexa.ru> 1229 * dcraw 1.460: Nikon D3300, Panasonic DMC-TZ61, Sony ILCE-5000 1230 2014-01-25 Alex Tutubalin <lexa@lexa.ru> 1231 * PhaseOne IQ250 support (both compressed and uncompressed) 1232 2014-01-21 Alex Tutubalin <lexa@lexa.ru> 1233 * imgdata.params.sony_arw2_hack removed. 1234 It always on for ARW2-files. 1235 * New imgdata.params.sony_arw2_options processing flags 1236 Values: 1237 LIBRAW_SONYARW2_NONE - normal processing 1238 LIBRAW_SONYARW2_BASEONLY - BASE pixels outputeed, delta pixels set to 0 1239 LIBRAW_SONYARW2_DELTAONLY - Delta pixels written to raw data, base pixels zeroed 1240 LIBRAW_SONYARW2_DELTAZEROBASE - Only deltas written without base offset 1241 1242 2014-01-20 Alex Tutubalin <lexa@lexa.ru> 1243 * Imported dcraw 9.20: 1244 - Support for DNG BlackLevelRepeatDim tags 1245 - imgdata.color.cblack[] holds variable BlackLevel for DNG files (up to ~4k values) 1246 - imgdata.params.use_camera_matrix is now ON by default. Set it to 3 if you want 1247 to force use of DNG embedded matrix. 1248 - Tone curve for Canon RMF format supported 1249 - Color data for Canon C500 1250 * Additional camera support: 1251 Alcatel 5035D 1252 DJI 4384x3288 1253 Fujifilm F900EXR 1254 Kodak 12MP 1255 Matrix 4608x3288 1256 Nokia 1200x1600 1257 Olympus E-PL6 1258 Panasonic DMC-FZ7 1259 1260 2014-01-17 Alex Tutubalin <lexa@lexa.ru> 1261 * Camera support: 1262 Added: Fujifilm XE2, XQ1 1263 Color data updated: Nikon D4 1 AW1/J3, Fuji X-M2 1264 Fixes: Nikon D610 visible image area, Canon A3300 bayer 1265 pattern 1266 * RawSpeed support: enabled processing for cameras, 1267 unknown to RawSpeed 1268 * Fixed error in LibRaw::unpack_thumb() 1269 * little improve performance in my_strcasestr 1270 * Fix compiler errors for VS2012/OpenMP 1271 * Fixed typo which prevents to use Demosaic Pack GPL2 1272 * LibRaw 0.16.0-Release 1273 1274 2013-11-15 Alex Tutubalin <lexa@lexa.ru> 1275 * New cameras supported 1276 Leica C, X VARIO 1277 Nikon D5300, D610, Df, 1 AW1 1278 Nokia Lumia 1020, 1520 1279 Olympus STYLUS1 1280 Pentax K-3 1281 Sony RX10, A3000 (ILCE-3000), 1282 * Color data updated: 1283 Canon S120 1284 Nikon P7800, 1 J3 1285 Olympus E-M1 1286 * Corrected image visible area sizes 1287 Canon G16 1288 Sigma pre-Merrill cameras: small and medium-sized RAWs 1289 1290 * Better EXIF parsing: 1291 - ISO values for new Nikon cameras (D4, D800) 1292 - black level extraction for Nikon D5300 1293 - correct Olympus color data conversion 1294 1295 * Better Visual Studio compatibility (esp. old versions) 1296 * Cmake build: added ws2_32 library for MinGW builds 1297 * LibRaw 0.16.0-Beta1 1298 1299 2013-10-22 Alex Tutubalin <lexa@lexa.ru> 1300 * Support for new cameras: 1301 Sony A7, A7R 1302 Panasonic GM1 1303 1304 * Sony RX1R and RX100M2 color data updated. 1305 1306 * Sony cameras model name is set by SonyModelID EXIF tag 1307 1308 * Sony ARW2: black level and color matrix extracted from EXIF data 1309 1310 * Samsung: black level and color matrix extracted from EXIF; 1311 Camera multipliers are now extracted correctly even if black is not 0 1312 1313 * Better source compatibility with Mac OS X compilation 1314 1315 * Better source compatibility with Win32 compilation 1316 1317 * DNG without Compression tag assumed uncompressed 1318 1319 * Better X3F-tools based Foveon support: 1320 - new Foveon metadata parser based on X3F-tools. So, if LibRaw compiled 1321 without demosaic-pack-GPL2, then no dcraw Foveon code used. 1322 - Support for Medium resolution RAWs from DPx Merrill and SD1 cameras. 1323 RAW data extracted as is (4800x1600 pixels), aspect ratio is set to 1324 0.5, so these RAWs are processed to full-size 4800x3200 RGB. 1325 - Support for Foveon thumbnail extraction. Only JPEG and bitmap 1326 thumbnails extracted, but 'foveon' (RAW) thumbnails are really not used 1327 in production cameras. 1328 - New imgdata.params.force_foveon_x3f flag 1329 Forces use of x3f-tools based code for Foveon processing if LibRaw 1330 compiled with demosaic-pack-GPL2 (and does nothing if LibRaw compiled 1331 without this pack). 1332 New flag -disadcf added to dcraw_emu sample to use this flag. 1333 - LibRaw do not calls exit() on broken Foveon files. 1334 1335 * API/ABI changed, so all code using LibRaw should be recompiled. 1336 1337 * LibRaw 0.16.0-Alpha3 1338 1339 1340 2013-10-16 Alex Tutubalin <lexa@lexa.ru> 1341 * Support for new cameras: 1342 Canon S120 (preliminary color data), G16 1343 Fujifilm X-A1 (preliminary color data) 1344 Hasselblad Lunar, Stellar 1345 Nikon P7800 (preliminary color data) 1346 Pentax K50, K500, Q7 1347 Samsung Galaxy NX (EK-GN120) 1348 Sony NEX-5T 1349 1350 * Updated color data for: 1351 Samsung NX300 1352 Sony RX1R 1353 Sigma SD1, SD1 Merrill, DPxx (only if non-GPL2 foveon decoder used) 1354 1355 * Image dimensions table for Foveon cameras (only if 1356 non-GPL2 foveon decoder used) 1357 1358 * Fixed memory leak in x3f-tools code (new Foveon decoder) 1359 * Fixed DHT-demosaic incompatibility with MS VisualStudio in OpenMP directives 1360 * Additional image size checks. 1361 * LibRaw 0.16-Alpha2 1362 1363 2013-09-22 Alex Tutubalin <lexa@lexa.ru> 1364 * Support for new cameras: 1365 Baumer TXG14 1366 Blackmagic Cinema 1367 Canon EOS 70D, C500 1368 Fujifilm X-M1 1369 Nikon D5200 1370 Olympus E-P5,E-M1 1371 OmniVision OV5647 (Raspberry Pi) 1372 Panasonic LF1, GX7, GF6 1373 Richon GR 1374 Samsung NX300, NX1100, NX2000 1375 Sony RX100II, RX1R, NEX-3N 1376 1377 * Support for Foveon sensor based on X3F code by Roland Karlsson 1378 BSD-like license, so included in main LibRaw code. 1379 No 'foveon interpolation', so no way to get good colors from 1380 old Sigma cameras (SD9, SD14, Polaroid x530). For modern Foveon cameras 1381 one may try to create ICC profile (not supplied). 1382 1383 TODO: thumbnail extraction, fast cancellation 1384 1385 Old foveon_*_load_raw (from dcraw) code is used if compiled with 1386 LIBRAW_DEMOSAIC_PACK_GPL2 1387 1388 * API Changes: 1389 1390 + New parameters in imgdata.params: 1391 - imgdata.params.no_interpolation - disables interpolation step in 1392 LibRaw::dcraw_process() call. 1393 - imgdata.params.no_auto_scale - disables call to scale_colors() in 1394 LibRaw::dcraw_process() call. 1395 - imgdata.params.sraw_ycc - disables Canon sRAW YCbCr to RGB conversion 1396 in LibRaw::unpack() call (use for RAW analyzers 1397 1398 + New Fuji X-Trans handling: 1399 - imgdata.iparams.filters value is now 9 for Fuji X-Trans (instead of 2) 1400 - imgdata.iparams.xtrans[6][6] matrix contains row/col to color mapping 1401 for Fuji X-Trans sensor. 1402 1403 + LibRaw::setCancelFlag() - use for fast decoder termination 1404 1405 + LibRaw_abstract_datastream::make_byte_buffer() call is not needed more. 1406 1407 + New demosaic code: DHT Demosaic by Anton Petrusevich 1408 Set params.user_qual=11 to use. 1409 1410 + New demosaic code: Modified AHD Demosaic by Anton Petrusevich 1411 Set params.user_qual=12 to use. 1412 1413 + New C-API call libraw_COLOR(libraw_data_t *t, int row,int col) 1414 (so LibRaw::COLOR(row,col) exposed to C-API users) 1415 1416 * Removed faster lossless jpeg decoder ported from RawSpeed library 1417 some years ago. Build LibRaw with RawSpeed to get fast decoding. 1418 1419 * Fixed decoding error for some Canon sRAW files. 1420 1421 * Disabled RawSpeed's bad pixel processing if RawSpeed used. 1422 1423 * EOS M and EOS 70D added to unique Canon ID table 1424 1425 * Canon EOS model name normalized by unique ID table 1426 1427 * Backported 0.15.4 input data checks 1428 1429 * Support for CMake builds 1430 1431 * Updated RawSpeed supported camera list 1432 1433 * Internals changed, so all code using LibRaw should be recompiled. 1434 1435 * LibRaw 0.16.0-Alpha1 1436 1437 2013-05-23 Alex Tutubalin <lexa@lexa.ru> 1438 1439 LibRaw 0.15-Release 1440 1441 New camera/format support: 1442 * Adobe DNG: fast Load DNG (LightRoom 4.x), support for 1443 lossy-compressed DNG (LR 4.x, requires libjpeg 6+) 1444 * Canon: G1 X, SX220 HS, EOS 5D Mark III, EOS 650D, EOS 1D-X, 1445 100D (Rebel SL1), 700D (Rebel T5i), 6D, EOS M, G15, S110, SX50 1446 * Casio: EX-ZR100,EX-Z8 1447 * Fujifilm: X-S1, HS30EXR, X1-Pro,X-E1, X20, X100S, SL1000, HS50EXR, 1448 F800EXR, XF1 1449 * Leica: D-LUX6 and V-LUX4 1450 * Nikon: D4, D3200, D800, D800E, 1 J2, 1 V2, D600, 1 J3, 1 S1, Coolpix A, 1451 Coolpix P330, Coolpix P7700, D7100 1452 * Olympus: E-M5, XZ-2, XZ-10, E-PL5, E-PM2 1453 * Panasonic: G5, G6, DMC-GF5, FZ200, GH3, LX7 1454 * Pentax: MX-1, K-5 II, K-5 IIs, K-30, Q10 1455 * Samsung: EX2F, NX20, NX210, support for the new firmware for NX100 1456 * Sigma: SD15, SD1, SD1 Merill, DP1, DP1S, DP1X, DP2, DP2S, DP2X 1457 (only with Demosaic-pack-GPL2) 1458 * Sony: SLT-A58, RX-1, SLT-A99, NEX-5R, NEX-6, NEX-F3, SLT-A37, SLT-A57 1459 * Multishot files: Imacon Ixpress 39Mpix 1460 1461 API changes: 1462 1. dcraw_process() can now be called several times with different parameters 1463 without re-opening and unpacking the file for second and consecutive 1464 calls to dcraw_process 1465 1466 2. deleted (nobody uses those) 1467 - LibRaw::dcraw_document_mode_processing (and respective C-API) 1468 - imgdata.color.color_flags data field 1469 1470 3. LibRaw::unpack() now decodes data into different buffers, the buffer 1471 depends on the raw data type 1472 - imgdata.rawdata.raw_image - 1 color component per pixel, 1473 for b/w and Bayer type sensors 1474 - imgdata.rawdata.color3_image - 3 color components per pixel, 1475 sRAW/mRAW files, RawSpeed decoding 1476 - imgdata.rawdata.color4_image - 4 components per pixel, the 4th 1477 component can be void 1478 1479 4. Support for compiling with RawSpeed library, http://rawstudio.org/blog/?p=800 1480 details are in README.RawSpeed 1481 1482 5. Suppression of banding 1483 1484 6. New API calls 1485 - recycle_datastream(), 1486 - open_file(wchar_t*) (Win32) 1487 1488 1489 2012-04-05 Alex Tutubalin <lexa@lexa.ru> 1490 * Casio EX-Z500 support 1491 * (possible) I/O exceptions on file open caught in open_datastream 1492 * Fixed possible read-after-buffer in Sony ARW2 decoder 1493 * Fixed mingw32 errors when compiling LibRaw_windows_datastream 1494 * Makefile.msvc: support of OpenMP and LCMS (uncomment to use) 1495 * Fixed decoding of some Leaf Aptus II files 1496 * LibRaw 0.14.6-Release 1497 1498 2011-12-24 Alex Tutubalin <lexa@lexa.ru> 1499 * Fixed bug (uninitialized variable) in SMAL format decoding. 1500 1501 * Imported new dcraw 9.12 (1.446): support for Leica V-LUX 3, 1502 updated color data for Canon S100, Fujifilm X10, Nikon 1 J1/V1, 1503 Panasonic GX1, Samsung NX200, Sony NEX-7 1504 1505 * LibRaw 0.14.5-Release 1506 1507 2011-12-12 Alex Tutubalin <lexa@lexa.ru> 1508 1509 * Fixes to Panasonic/Leica file parser to prevent crash 1510 on broken jpegs. 1511 1512 * Fixes to include order in src/libraw_datastream.cpp to 1513 better compile with KDEWIN 1514 1515 * Floating-point DNGs are rejected on early processing stage. 1516 1517 * Support for new cameras: Canon S100, Fuji X10, Panasonic GX1, 1518 Samsung NX200, Sony NEX-7. 1519 1520 * LibRaw 0.14.4-Release 1521 1522 1523 2011-10-26 Alex Tutubalin <lexa@lexa.ru> 1524 * Bug fixes in black level subtraction code for PhaseOne files 1525 1526 * New API call LibRaw::get_internal_data_pointer() for developers 1527 who need access to libraw_internal_data fields (i.e. 1528 Fuji SuperCCD layout). 1529 1530 * doc/API-overview fixes to reflect 0.14 changes 1531 1532 * LibRaw 0.14.3-Release 1533 1534 2011-10-19 Alex Tutubalin <lexa@lexa.ru> 1535 * Fixed bug in Canon 1D and 1Ds files decoding. 1536 * New decoder information bit DECODER_HASRAWCURVE 1537 * LibRaw 0.14.2-Release 1538 1539 2011-10-11 Alex Tutubalin <lexa@lexa.ru> 1540 * Imported dcraw 9.11/1.445: 1541 + Support for new cameras added: Fujifilm F600EXR, Nikon P7100, 1542 Olympus E-PL3 and E-PM1, Panasonic DMC-FZ150, Sony NEX-5N, 1543 A65 and A77. 1544 + Changed color data for: Olympus E-P3, Panasonic G3 and GF3, 1545 PhaseOne H25, P40 and P65, Sony NEX-C3, NEX-5, NEX-3, A35 and A55. 1546 + Support for dark frame extraction on Sony cameras. 1547 1548 * DCB demosaicing: reserving 6 pixels instead of 3 to suppress 1549 colored image frame. 1550 * LibRaw 0.14.1-Release 1551 1552 2011-09-21 Alex Tutubalin <lexa@lexa.ru> 1553 * Cosmetic changes to make Visual C++/OpenMP more happy 1554 * Fix megapixel calculation for postprocessing_benchmark in half mode 1555 * Shlib version number increment 1556 * LibRaw 0.14.0-Release 1557 1558 2011-09-04 Alex Tutubalin <lexa@lexa.ru> 1559 * Fixed bug with Kodak thumbnail extraction 1560 * raw2image_ex() always return value 1561 * LibRaw 0.14.0-Beta2 1562 1563 2011-09-02 Alex Tutubalin <lexa@lexa.ru> 1564 * Cosmetic changes to LibRaw_file_datastream interface 1565 1566 * OpenMP speedup of postprocessing steps (up to 50% for 1567 half mode and 4-core machine) 1568 1569 * LibRaw 0.14.0-Beta1 1570 1571 2011-08-20 Alex Tutubalin <lexa@lexa.ru> 1572 1573 * Patch to dcraw_emu for SunStudio compiler compatibility 1574 1575 * Fixed crash in unprocessed_raw sample due to uninitialized 1576 timestamp variable. 1577 1578 * Fixed crash in raw decoding if raw_width/raw_height is 1579 less than resulting image width/height. 1580 1581 * imgdata.sizes.flip is set from user_flip only on 1582 postprocessing and/or adjust_sizes_info_only() 1583 1584 * Fixed buffer overrun for some LJPEG-compressed files 1585 1586 * Most of LibRaw_datastream function bodies are moved to 1587 separate source file 1588 1589 * LibRaw_windows_datastream is merged to main sourcetree 1590 1591 * LibRaw 0.14.0-Alpha5 1592 1593 2011-08-11 Alex Tutubalin <lexa@lexa.ru> 1594 * Imported dcraw 9.10 (1.444), support for new cameras added: 1595 ARRIRAW format, Canon SX30 IS, Leica D-LUX 5 and V-LUX2, 1596 Olympus E-P3, Panasonic G3 and GF3, Sony NEX-C3 and SLT-A35 1597 1598 * Support for RedOne digital movie cameras (R3D format). 1599 To enable this support you should: 1600 + install libjasper JPEG2000 support library 1601 1602 + compile LibRaw with -DUSE_JASPER compiler switch (./configure 1603 will do it for you) 1604 1605 + If you use own LibRaw_datastream implementation, you should 1606 implement make_jas_stream() call for your datastream. See 1607 bottom of src/libraw_cxx.cpp for implementations in datafile 1608 and mem-buffer LibRaw streams. 1609 1610 * Bugfix: green matching is turned off if output image is shrinked 1611 due to wavelet filtering or aberration correction. 1612 1613 * fixed open_file()/adjust_sizes_info_only() code path 1614 1615 * Removed imgdata.sizes.bottom_margin and right_margin data fields 1616 use imgdata.sizes.raw_width - width - left_margin to get right one, 1617 the same with bottom_margin. 1618 1619 * minor ./configure cleanup 1620 1621 * Qmake files and Visual Studio Project files are updated. 1622 1623 * New version check macros: 1624 For use at runtime checks: 1625 LIBRAW_RUNTIME_CHECK_VERSION_EXACT() - checks that runtime 1626 major/minor version numbers are same with compile-time values. 1627 1628 LIBRAW_RUNTIME_CHECK_VERSION_NOTLESS() - checks that runtime 1629 version is not less that compile-time one. 1630 1631 For use at compile-time in preprocessor directives: 1632 LIBRAW_COMPILE_CHECK_VERSION_EXACT(major,minor) - Compile-time 1633 check that LibRaw version is exact major.minor. 1634 1635 LIBRAW_COMPILE_CHECK_VERSION_NOTLESS(major,minor) - Compile-time 1636 check that version is not less than major.minor. 1637 1638 * all client code should be recompiled due to internals change. 1639 1640 * LibRaw 0.14.0-Alpha4 1641 1642 2011-07-19 Alex Tutubalin <lexa@lexa.ru> 1643 * New sample samples/postprocessing_benchmark.cpp 1644 This sample measures postprocessing speed. 1645 All demosaic methods, averaged white balance, median 1646 filtering, wavelet filtration, highlight recovery, and 1647 cropping are supported. 1648 1649 * Removed LibRaw::rotate_fuji_raw() call and corresponding C-API call. 1650 1651 * The LibRaw::adjust_sizes_info_only() call may be called repeated 1652 and mixed with dcraw_process() call. 1653 1654 * Postprocessing speedup and optimization, especially if cropping set. 1655 1656 * Cropping works for FujiCCD raws. For the technical reasons, the position 1657 of top-left corner of crop area will be rounded to the nearest 1658 multiple of 4 (the corner is shifted top-left). 1659 1660 * LibRaw 0.14.0-Alpha3 1661 1662 2011-07-15 Alex Tutubalin <lexa@lexa.ru> 1663 * imported cropping code from 0.13 branch 1664 1665 2011-07-12 Alex Tutubalin <lexa@lexa.ru> 1666 * samples/multirender_test - check for different clip settings 1667 1668 2011-07-11 Alex Tutubalin <lexa@lexa.ru> 1669 * New call LibRaw::free_image(), deallocates imgdata.image buffer. 1670 Use this call if current postprocessing results are not 1671 needed, but it is to early to call recycle() because 1672 dcraw_process() may be called later. 1673 1674 * New C-API calls 1675 libraw_raw2image() - C API for LibRaw::raw2image() 1676 libraw_free_image() - C API for LibRaw::free_image() 1677 libraw_get_decoder_info() - C API for LibRaw::get_decoder_info() 1678 1679 * Bugfix: change of params.user_flip aftee open()/unpack() 1680 calls should work. 1681 1682 * LibRaw 0.14.0-Alpha2 1683 1684 2011-07-10 Alex Tutubalin <lexa@lexa.ru> 1685 * Multiple rendering (LibRaw::dcraw_process() calls) allowed 1686 without re-opening RAW file thrfough the sequence of open()/unpack() 1687 calls. 1688 You should be able to change any processing parameters (except 1689 shot_select parameter) between dcraw_process() calls. 1690 1691 + New sample in samples/multirender_test.cpp: renders data 4 times: 1692 in half and full modes with different white balance settings. 1693 1694 + Unprocessed RAW data is stored in separate data buffer: 1695 (2 bytes per pixel for all Bayer-pattern images, 1696 8 bytes per pixel for Foveon, sRAW, and other full-color raw 1697 formats), so now LibRaw uses 25% more memory for full processing of 1698 most common Bayer images; while for just unpack memory is reduced 1699 4 times. 1700 1701 + New call LibRaw::raw2image() fills imgdata.image array 1702 with fresh copy of data. 1703 There is no need to call raw2image() separately if you use 1704 dcraw_process() or dcraw_document_mode_processing() calls. 1705 1706 + New call LibRaw::get_decoder_info() to determine raw data 1707 storage layout. See samples/unprocessed_raw.cpp for an example 1708 of how to use it. 1709 1710 If your code uses usual open()/unpack()/dcraw_process() call 1711 sequence, then NOTHING CHANGED: your program should produce same 1712 results. For interactive programs you may skip open()/unpack() 1713 calls after adjusting processing parameters, so user should see 1714 image refreshed much faster. 1715 1716 If your code uses raw data (open+unpack calls), you need to call 1717 LibRaw::raw2image(), and imgdata.image will contain same bitmap 1718 as in LibRaw 0.13.x 1719 1720 If you code uses access to masked borders data, you need to 1721 rewrite it. See samples/unprocessed_raw.cpp as a sample. 1722 1723 Unfortunately, documentation is untouched yet. This problem will be 1724 fixed in next Alpha release. 1725 1726 Other changes: 1727 1728 * No separate imgdata.masked_pixels buffers, Bayer raw formats are read 1729 to buffer with borders. So, no ugly add_masked_border_to_bitmap() 1730 call. 1731 1732 * No filtering_mode parameter. Raw tone curve is applied 1733 at unpack() stage; zero pixels removed on postprocessing stage. 1734 1735 * unprocessed_raw and 4colors samples are adjusted to use 1736 new RAW data storage layout. 1737 1738 * all client code should be recompiled due to internals change. 1739 1740 * LibRaw 0.14.0-Alpha1 1741 1742 2011-07-03 Alex Tutubalin <lexa@lexa.ru> 1743 * Cosmetic cleanup in Libraw_memmgr code 1744 1745 * Permit OpenMP support on MS VS2008 1746 1747 * More general mem_image interface: 1748 + New call get_mem_image_format returns bitmap size and bit depth 1749 + New call copy_mem_image can copy bitmap into buffer with 1750 different color order (RGB/BGR) and line stride 1751 + dcraw_make_mem_image() uses calls mentioned above 1752 + see documentation for info on these function parameters. 1753 1754 * libraw/librawwindows.h implements LibRaw_datastream class based 1755 on Windows memory mapped files.Win32/64-only 1756 Thanks to Linc Brookes. 1757 1758 * Fixed parallel make errors in configure/Makefile.am 1759 1760 * LibRaw 0.13.6-Release 1761 1762 1763 2011-05-18 Alex Tutubalin <lexa@lexa.ru> 1764 * Imported new dcraw 9.08/1.443: 1765 + New color data for Canon 600D and 1100D, Fuji S200EXR 1766 + New camera supported: Fuji HS20EXR and F550EXR, Kodak Z990, 1767 Nikon D5100, Olympus E-PL1s and XZ-1, 1768 Samsung NX11, Sony A230 and 290. 1769 * LibRaw 0.13.5-Release 1770 1771 2011-04-02 Alex Tutubalin <lexa@lexa.ru> 1772 * Imported new dcraw 9.07/1.442: 1773 + Support for Canon 600D and 1100D, Hasselblad H4D-60, 1774 Olympus E-PL2 1775 * Color data for Leaf Aptus II and Canon Powershot S2 IS 1776 * LibRaw 0.13.4-Release 1777 1778 2011-03-30 Alex Tutubalin <lexa@lexa.ru> 1779 * Preliminary support for Leaf Aptus II cameras (no color data yet): 1780 Leaf Aptus II 6,7,8,10 and 12 are tested, Aptus II 5 should work. 1781 * Preliminary support for Fujifilm X100 camera (again, no color data). 1782 * Fixed possible after the end of buffer read when working with 1783 in-memory data. 1784 * Fixed possible loss of JPEG stream sync marks in LJPEG decoder 1785 (this bug was found only for Leaf Aptus II RAWs). 1786 * LibRaw 0.13.3-Release 1787 1788 2011-03-08 Alex Tutubalin <lexa@lexa.ru> 1789 * Fixed broken camera white balance reading for some Sony cameras 1790 * LibRaw 0.13.2-Release 1791 1792 2011-02-25 Alex Tutubalin <lexa@lexa.ru> 1793 * Sony A390 support (colordata from A380) 1794 * Leica D-LUX 4: fixed typo in camera name in colordata 1795 1796 2011-02-15 Alex Tutubalin <lexa@lexa.ru> 1797 * New -mem option for dcraw_emu: I/O via allocated buffer 1798 * Removed debug printf from LibRaw_memory_buffer code 1799 * Preliminary shared library support 1800 1801 2011-02-12 Alex Tutubalin <lexa@lexa.ru> 1802 * Added qmake .pro and Visual Studio 2008 sln/vcproj project files 1803 2011-02-07 Alex Tutubalin <lexa@lexa.ru> 1804 * dcraw_emu documentation updated 1805 * ./configure stuff changed for correct linking on some systems 1806 * FBDD denoising is disabled for full-color images and 4-color bayer 1807 data (including forced 4-color via four_color_rgb option) 1808 * LibRaw 0.13.1-Release 1809 1810 2011-02-05 Alex Tutubalin <lexa@lexa.ru> 1811 * ./configure fixes for PACKAGE_REQUIRES 1812 * Makefile.msvc: correct compiler flags for demosaic packs 1813 * dcraw.c 9.06/1.440 imported: 1814 + New camera support: Canon S95, Casio EX-Z1080, Panasonic GF2 1815 and GH2, Samsung NX100, Sony A-580 1816 + New color data for: Canon G12, Nikon D3100, D7000 and P7000, 1817 Olympus E-5, Pentax K-r and K-5, Samsung NX10 and WB2000 1818 * green_matching() code is disabled for half-size processing 1819 * LibRaw 0.13.0-Release 1820 1821 2011-01-15 Alex Tutubalin <lexa@lexa.ru> 1822 * Fallback to old huffman decoder for Sony files with unspecified 1823 data length (Sony A100) 1824 * Fixed incomplete data fields reset in LibRaw::recycle() 1825 * LibRaw 0.13.0-Beta3 1826 1827 2011-01-13 Alex Tutubalin <lexa@lexa.ru> 1828 * Better parsing of unknown command-line params in dcraw_emu sample 1829 * Brigtness table in ahd_demosaic is calculated in reversed order 1830 to prevent possible (very unlikely) multithreaded app problem. 1831 * New exposure correction code based on linear-cubic root combination. 1832 New working correction range is from 0.25 (-2 stops) to 8 (+3 stops) 1833 * LibRaw 0.13.0-Beta2 1834 1835 2011-01-10 Alex Tutubalin <lexa@lexa.ru> 1836 * Fixed file extension in half_mt.c sample 1837 1838 2011-01-10 Alex Tutubalin <lexa@lexa.ru> 1839 * Three patches provided by Jacques Desmis: 1840 - Exposure correction before demosaic (demosaic pack GPL3) 1841 - OpenMP speed-up in median filters (demosaic pack GPL2) 1842 - OpenMP speed-up in green equilibration (demosaic pack GPL3) 1843 * Merged 0.12.2-0.12.3 changes: 1844 - Patches for ./configure system for better LCMS2 support 1845 - Patches for ./configure system 1846 - math.h included before any other includes to make KDE compile 1847 with Visual C++ happy 1848 - Fuji FinePix S5500 size adjusted to ignore (rare?) garbage 1849 at top of frame. 1850 * all client code should be recompiled due to internals change. 1851 * LibRaw 0.13.0-Beta1 1852 1853 2010-12-22 Alex Tutubalin <lexa@lexa.ru> 1854 * Zero copy huffman buffer for LibRaw_buffer_datastream 1855 * Fixed memory leak in compressed NEFs handling 1856 * LibRaw 0.13.0-Alpha2 1857 1858 2010-12-20 Alex Tutubalin <lexa@lexa.ru> 1859 * Demosaic-pack-GPL3 changes: 1860 + New noise reduction methods before demosaic 1861 - Banding suppression 1862 - High-frequency noise suppression 1863 - Green channel equalization 1864 + New chromatic aberration correction. 1865 All three methods are written by Emil Martinec for Raw Therapee. 1866 Adapted to LibRaw by Jacques Desmis 1867 1868 * Merged Foveon code fix from LibRaw 0.12.1 1869 1870 * LJPEG decompressor speed-up (about 1.5 times for Canon cameras 1871 and slightly less for others). Some ideas are from RawSpeed library. 1872 1873 * all client code should be recompiled due to internals change. 1874 1875 * LibRaw 0.13.0-Alpha1 1876 1877 2010-12-12 Alex Tutubalin <lexa@lexa.ru> 1878 * Thread-safe and demosaic packs support for MinGW build 1879 * Demosaic packs support for MS VC build 1880 * LibRaw 0.12.0-Release 1881 1882 2010-12-09 Alex Tutubalin <lexa@lexa.ru> 1883 * Fixed bug in add_masked_borders_to_bitmap() call for cameras 1884 with odd pixels border. 1885 * New command line options for unprocessed_raw sample: 1886 -B - subtract black level, -M - add masked pixels to bitmap. 1887 * Foveon-sensor cameras added to supported camera list if 1888 compiled with demosaic pack GPL2 1889 * LibRaw 0.12.0-Beta4 1890 1891 2010-12-05 Alex Tutubalin <lexa@lexa.ru> 1892 * Demosaic packs support in Makefile.dist 1893 * Foveon support in LibRaw demosaic pack GPL2 1894 * all client code should be recompiled due to internals change. 1895 * LibRaw 0.12.0-Beta3 1896 1897 2010-11-27 Alex Tutubalin <lexa@lexa.ru> 1898 * Fixed allocation bug in lmmse_interpolation (demosaic-pack-GPL2) 1899 * In LMMSE and AMaZE interpolators allocation changed to calloc 1900 to make valgrind happy with uninitialized values 1901 * Changes in distribution-making scripts 1902 * LibRaw 0.12.0-Beta2 1903 1904 2010-11-21 Alex Tutubalin <lexa@lexa.ru> 1905 * Fixes to green_matching code by Sergey Pavlov 1906 1907 2010-11-20 Alex Tutubalin <lexa@lexa.ru> 1908 * Update for new demosaic-pack-GPL3 1909 * LibRaw 0.12.0-Beta1 1910 1911 2010-11-19 Alex Tutubalin <lexa@lexa.ru> 1912 * Demosaic pack(s) supported via ./configure 1913 1914 2010-11-17 Alex Tutubalin <lexa@lexa.ru> 1915 * LCMS2 support 1916 * afd_interpolate(2,1) instead of (5,0) 1917 * dcraw_emu sample command line keys added and reordered 1918 to reflect changes in LibRaw 0.12. 1919 * Nikon P7000: color matrix data and black level patch for ISO >=400 1920 Thanks to Gunnar Thorburn 1921 * Support for several industrial cameras based on Sony ICX 625/655 1922 sensor: JAI BB500CL/GE, SVS625CL, ptGrey GRAS-50S5C 1923 Thanks to kaare 1924 1925 2010-11-15 Alex Tutubalin <lexa@lexa.ru> 1926 1927 * Several demosaic algorithms, found in other open-source RAW processing 1928 packages are implemented in LibRaw. 1929 1930 1) DCB demosaic and FBDD denoise by Jacek Gozdz are included in 1931 main LibRaw source. 1932 2) GPL2 demosaic pack with these demosaic methods: 1933 * AFD and LMMSE implementations from PerfectRaw by Manuel Llorens 1934 * VCD, Modified AHD, post-demosaic refinemend and median 1935 filters by Paul Lee 1936 3) GPL3 demosaic pack with AMaZe interpolation by Emil Martinec 1937 1938 See more details in README.demosaic-packs 1939 1940 * Current implementation of dcraw_emu sample allows only selection 1941 of demosaic method (via -q) options. All other parameters change 1942 will be implemented later. 1943 1944 * LibRaw 0.12-alpha1 1945 1946 2010-11-11 Alex Tutubalin <lexa@lexa.ru> 1947 * Imported 0.11(2) version changes: 1948 + Fixed dcraw_emu command line processing code 1949 + OpenMP is completely disabled on MacOS X if compiled with -pthread 1950 due to well-known MacOS problem. 1951 + dcraw 9.05 (1.439) imported, many new cameras supported: 1952 Canon: G12, SX120, 60D, 1953 Hasselblad H4D, Nokia X2, Olympus E-5, 1954 Nikon: D3100, D7000, P7000, 1955 Panasonic: FZ40, FZ100, LX5, 1956 Pentax: K-r, K-5, 645D, 1957 Samsung GX20, WB2000 1958 * LibRaw 0.12-alpha0 1959 1960 2010-11-08 Alex Tutubalin <lexa@lexa.ru> 1961 * Fixes for Sun Studio compiler compatibility 1962 * Fixes for Visual Studio 2010 compatibility 1963 * All russian-language files are converted to UTF-8 1964 * LibRaw 0.11.0-Release 1965 1966 2010-10-18 Alex Tutubalin <lexa@lexa.ru> 1967 * Disabled OpenMP for wavelet_denoise under Mac OS X 1968 * More Visual C++ 2003 warnings cleaned in libraw/*h files 1969 * LibRaw 0.11-Beta7 1970 1971 2010-10-16 Alex Tutubalin <lexa@lexa.ru> 1972 * internal/dcraw_fileio.c can be compiled with -DDCRAW_VERBOSE again 1973 * fixed comment style in libraw_datastream.h 1974 * LibRaw 0.11-Beta6 1975 1976 2010-10-15 Alex Tutubalin <lexa@lexa.ru> 1977 1978 * New changes to I/O layer. Three LibRaw_*datastream clasees are 1979 exists: 1980 + LibRaw_buffer_datastream - buffer reaging 1981 + LibRaw_file_datastream - file reading using iostreams 1982 (large files are no supported on some systems) 1983 + LibRaw_bigfile_datastream - FILE*-based file I/O 1984 1985 * file/bigfile_datastream is selected automatically by 1986 LibRaw::open_file based on input file size. 1987 By default, files larger than 250Mb are opened using 1988 bigfile interface, you may change this behaviour 1989 by using second optional parameter of open_file() 1990 1991 * There is no way to use default parameter values in C API, 1992 so new call libraw_open_file_ex added with two parameters 1993 (file name and minimal file size for bigfile_datastream use). 1994 1995 * all client code should be recompiled due to internals change. 1996 1997 * All LibRaw_abstract_datastream functions are virtual again. You may 1998 (again) use your own I/O layer. 1999 2000 * new -d key for dcraw_emu sample: print timings of processing stages 2001 2002 * simple_dcraw sample simplified: no mmap code 2003 2004 * LibRaw 0.11-Beta5 2005 2006 2010-10-08 Alex Tutubalin <lexa@lexa.ru> 2007 * Fixed bug in exception handling in OpenMP sections in 2008 AHD interpolation code. 2009 2010 * LibRaw_datastreams are now C++ iostreams based instead of old 2011 plain FILE* calls. 2012 LibRaw::open_file() in multithreaded programs are WAY faster 2013 on many OSes (Linux, Windows, MacOSX) because of no extra locks. 2014 2015 * all client code should be recompiled due to internals change. 2016 2017 * LibRaw 0.11-Beta4 2018 2019 2020 2010-10-01 Alex Tutubalin <lexa@lexa.ru> 2021 * Fixed bug in LibRaw::dcraw_process() code: for half_size 2022 processing, params.four_color_rgb was set to 1 internally 2023 and not returned back after postprocessing. 2024 2025 * Several Visual Studio 2003 compatibility fixes 2026 2027 * AHD interpolation refactored. Now it is about 10% faster than 2028 dcraw in single-process mode and up to 1.5 times faster on 2029 4-core and OpenMP (total execution time counted, not AHD itself) 2030 Thanks to Adam Hooper 2031 * AHD interpolation refactored. Now it is about 10% faster than 2032 dcraw in single-process mode and up to 1.5 times faster on 2033 4-core and OpenMP (total execution time counted, not AHD itself) 2034 Thanks to Adam Hooper 2035 2036 * LibRaw 0.11-Beta3 2037 2038 2010-09-07 Alex Tutubalin <lexa@lexa.ru> 2039 * Phase One files: LibRaw::unpack() sets colordata.black to 2040 approximately correct value. 2041 2042 * Fixed minor error in setting colordata.maximum value 2043 for Phase One files. 2044 2045 * LibRaw::subtract_black() sets colordata.black and 2046 colordata.cblack[] to zero to preserve data integrity. 2047 2048 * LibRaw 0.11-Beta2 2049 2050 2051 2010-09-04 Alex Tutubalin <lexa@lexa.ru> 2052 2053 * It is now possible to crop output image on postprocessing 2054 stage (dcraw_process). Coordinates and size of the output box 2055 are set via imgdata.params.cropbox[4] parameter. Look into 2056 LibRaw documentation for more details. 2057 2058 + New fatal error code LIBRAW_BAD_CROP 2059 2060 + New dcraw_emu sample command line switch: -B x y w h 2061 (sets cropbox) 2062 2063 Thanks to Patrick and Jan. 2064 2065 * Processing pipeline has changed: the black level is subtracted 2066 from data on postprocessing stage either automatically 2067 (on dcraw_process() stage) or by special LibRaw API call: 2068 2069 + New API calls: LibRaw::subtract_black() (C++ API) and 2070 libraw_subtract_black (C API). 2071 If you use dcraw_process() or dcraw_document_mode_processing() 2072 calls YOU DON'T NEED to call subtract_black() directly. 2073 2074 + The raw preprocessing mode LIBRAW_FILTERING_NOBLACKS 2075 is deprecated and removed from LibRaw. 2076 2077 * New ./configure script. 2078 Use ./configure -h for usage details. 2079 Thanks to Siddhesh Poyarekar 2080 2081 * New API cals static LibRaw::dcraw_clear_mem() (C++ API) 2082 and libraw_dcraw_clear_mem(..) (C API). 2083 This calls are used to free memory, allocated by 2084 dcraw_make_mem_image() and dcraw_make_mem_thumb() instead 2085 of free() call. 2086 2087 In some cases LibRaw and calling process have different 2088 memory managers, so free() of make_mem_image() data 2089 results to program crash (especially in Win32/VisualStudio 2090 environment). 2091 2092 * LibRaw::free() is now private instead of public (again). 2093 2094 * Minor changes and bugfixes: 2095 2096 + Memory allocation exceptions (std::bad_alloc) are caught, 2097 so LibRaw API calls will return reasonable error codes 2098 instead of C++ exception (possibly unhandled). 2099 This problem is very unlikely to see in wild: if application 2100 cannot allocate small data for internal structure, it will 2101 always fail on allocation for RAW image data. 2102 2103 + WIN32/VisualStudio 2008/2010: fopen,fscanf and sscanf calls 2104 in Libraw_datastream code are changed to *_s (secure) ones. 2105 2106 + Debug print removed from fatal error handler. 2107 2108 + Mmaped I/O for dcraw_emu sample is turned on via -E switch 2109 now (because old -B switch is used for setting cropbox). 2110 2111 * all client code should be recompiled due to structures size change 2112 2113 * LibRaw 0.11-Beta1 2114 2115 2116 2010-07-31 Alex Tutubalin <lexa@lexa.ru> 2117 * dcraw 9.04 (1.438) imported: changes in tiff metadata parser, 2118 fixed a typo in Canon A720 model name 2119 * small patch in Sony ARW2 unpacking code to make valgrind happy 2120 * LibRaw 0.10.0-Beta3. 2121 2122 2010-07-05 Alex Tutubalin <lexa@lexa.ru> 2123 * dcraw 9.03 (1.437) imported: 2124 + New cameras: Canon SX20, Nikon D3s, Olympus E-P2, Panasoni DMC-GF1, 2125 Samsung EX1, Sony A450 2126 + Color data changed for some cameras 2127 2128 * LibRaw 0.10.0-Beta2. 2129 2130 2010-06-06 Alex Tutubalin <lexa@lexa.ru> 2131 * dcraw 9.01 (1.434) imported: 2132 + Separate black levels for each color channel. 2133 + New cameras: Canon 550D, Casio EX-Z1050, Fuji HS10/HS11, 2134 Kodak Z981, Panasonic G2 and G10, Phase One P65, 2135 Samsung NX-10 and WB550, Sony NEX-3 and NEX-5. 2136 + Fixed file descriptor leak in dark frame subtraction processing 2137 2138 * Fixed dcraw 9.01's bug in DNG black level processing 2139 2140 * Preliminary support for Sony A450 camera. 2141 2142 * New command-line switch -h in mem_image sample (half_size support) 2143 2144 * Some patches by Johannes Hanika (darktable author): 2145 + OpenMP speedup for PPG-interpolation 2146 + green_matching - suppress of 'color maze' on cameras with 2147 different green channel sensitivity. This option is turns on 2148 by filed with same name in imgdata.params 2149 2150 * all client code should be recompiled due to structures size 2151 change 2152 2153 * LibRaw::free() is now public instead of private. 2154 2155 * LibRaw 0.10.0-Beta1. 2156 2157 2010-05-15 Alex Tutubalin <lexa@lexa.ru> 2158 * Fixed bug in 8-bit RAW processing code 2159 * LibRaw 0.9.1-Release 2160 2161 2010-04-26 Alex Tutubalin <lexa@lexa.ru> 2162 * OpenMP support: OpenMP is possible under MinGW (untested) 2163 * LibRaw 0.9.0-Release 2164 2165 2010-04-21 Alex Tutubalin <lexa@lexa.ru> 2166 * Finally fixed inconsistency in Fuji files processing 2167 * New COLOR(row,col) call to get bayer color index in image[] array 2168 * Old FC() call is deprecated and will be removed in future releases 2169 * unprocessed_raw sample switched to COLOR() call 2170 * LibRaw 0.9.0-Beta5 2171 2172 2173 2010-04-10 Alex Tutubalin <lexa@lexa.ru> 2174 * Fixed bug in unpacking DNG files made from Fuji RAFs. 2175 * LibRaw 0.9.0-Beta4 2176 2177 2010-04-09 Alex Tutubalin <lexa@lexa.ru> 2178 2179 * Fixed typecast error (problem reported only on gcc 4.2.1/32bit) 2180 in CRW files processing. 2181 2182 * C++ API call LibRaw::adjust_maximum() is now deprecated and 2183 de-documented, use params.adjust_maximum_thr instead (on by default) 2184 2185 * C-API call libraw_adjust_maximum() removed. 2186 2187 * New postprocessing parameter params.adjust_maximum_thr 2188 This parameter replaces LibRaw::adjust_maximum(), but more flexible 2189 Defaults are reasonable (0.75, same as in old adjust_maximum), 2190 look into documentation for more details. 2191 2192 * Removed last OpenMP warning 2193 2194 * dcraw_emu's -c parameter now wants numeric (float) argument. This value 2195 is assigned to params.adjust_maximum_thr. 2196 Use -c 0.0 for dcraw compatibility. 2197 2198 * all client code should be recompiled due to structures size 2199 change 2200 2201 * LibRaw 0.9.0-Beta3 2202 2203 2204 2010-03-29 Alex Tutubalin <lexa@lexa.ru> 2205 * Fixed a bug in channel_maximum[] calculation for 2206 Panasonic cameras. 2207 * channel_maximum[] data now calculated for ALL cameras. 2208 * OpenMP warnings suppressed. 2209 * Documented the -c command-line switch for dcraw_emu sample. 2210 * Removed extra messages from dcraw_emu sample. 2211 * LibRaw 0.9.0-Beta2 2212 2213 2010-03-28 Alex Tutubalin <lexa@lexa.ru> 2214 2215 New licensing: 2216 2217 * Triple licensing (selected by LibRaw user): 2218 2219 + LGPL 2.1 (http://www.gnu.org/licenses/lgpl-2.1.html) 2220 + CDDL 1.0 (http://www.opensource.org/licenses/cddl1.txt) 2221 + LibRaw Software License (27 March 2010 version) 2222 (http://www.libraw.org/data/LICENSE.LibRaw.pdf) 2223 2224 * There is no separate LibRaw-Lite and LibRaw-Commercial versions, 2225 only single LibRaw. 2226 Current LibRaw-Lite and LibRaw-Commercial users should switch 2227 to LibRaw without loss of functionality. 2228 It is possible to change licensig too (e.g. from LGPL to CDDL 2229 for LibRaw-Lite users and from LibRaw License to LGPL or CDDL 2230 for LibRaw-Commercial users). 2231 2232 * No Foveon support :( 2233 It is not possible to get good color from Foveon sensors with 2234 *any* converter. So, there is no need to support these cameras. 2235 Dcraw's Foveon-processing code is too strict licensed (GPL), 2236 so we choose to drop it. 2237 2238 New Features: 2239 2240 * New data field colordata.channel_maximum[4] - per channel data 2241 maximum (calculated for most cameras, 0 for others). 2242 2243 * New call LibRaw::adjust_maximum() (and libraw_adjust_maximum() in C API). 2244 This call changes hardcoded colordata.maximum value to calculated 2245 at unpack stage. This helps suppress false color in highlights 2246 (magenta clouds and so). 2247 2248 * New command line parameter -c for dcraw_emu sample. Calls adjust_maximum() 2249 for each processed file. 2250 2251 * all client code should be recompiled due to structures size 2252 change 2253 2254 * LibRaw 0.9.0-Beta1 2255 2256 2010-02-06 Alex Tutubalin <lexa@lexa.ru> 2257 * Fixed ambiguity in pow/sqrt calls (to make Sun C++ compiler happy) 2258 * OpenMP is not supported under MS Visual Studio 2259 * Masked a bug in RIFF format parser 2260 * LibRaw 0.8.6 2261 2262 2009-12-30 Alex Tutubalin <lexa@lexa.ru> 2263 * Fixed bug in simple_dcraw sample parameters processing 2264 * Imported dcraw 8.99 (1.432): 2265 + New cameras: Canon: 1D mk IV, Canon S90; Casio Z750, 2266 Nikon D3S, Pentax K-x, Sony A-500/550, Fuji S200EXR 2267 + New color data for Canon G11 and Sony A850 2268 + Changes in Canon sRAW processing 2269 + Changes in Kodak metadata processing 2270 + Changes in uncompressed Fuji files processing (FinePix S5xxx) 2271 * LibRaw 0.8.5 2272 2273 2009-11-21 Alex Tutubalin <lexa@lexa.ru> 2274 + Fixed a bug in processing of uncompressed Phase One files 2275 * LibRaw 0.8.4 2276 2277 2009-10-24 Alex Tutubalin <lexa@lexa.ru> 2278 + Imported dcraw 8.98/1.431: 2279 * New Cameras: Canon 7D, Panasonic GF1, Sony A850 and A380, 2280 Casio Z850, Nikon D300s 2281 + changes in libraw_datastream.h to make compilers more happy 2282 * LibRaw 0.8.3 2283 2284 2009-09-02 Alex Tutubalin <lexa@lexa.ru> 2285 + Fixed bug in Hasselblad .3FR unpacking code 2286 * Imported dcraw 8.97/1.428: Nikon D3000 image width fix 2287 * LibRaw 0.8.2 2288 2289 2009-08-31 Alex Tutubalin <lexa@lexa.ru> 2290 + Enum LibRaw_thumbnail_formats (LIBRAW_IMAGE_*) values changed to 2291 match values in enum LibRaw_image_formats (LIBRAW_THUMBNAIL_*). 2292 You need to recompile all sources using these constants. 2293 2294 2009-08-30 Alex Tutubalin <lexa@lexa.ru> 2295 * Imported dcraw 8.97/1.427: 2296 + new cameras: Canon A470, Canon G11 (without color data), 2297 Nikon D3000, Olympus E-P1, Panasonic DMC-FZ35/FZ38 2298 + some changes in decoding code. 2299 * Fixes for Microsoft Visual C++ 6.0 compatibility 2300 * C-API dcraw_make_mem_thumb() call finally exported in API 2301 * LibRaw 0.8.1 2302 2303 2009-08-24 Alex Tutubalin <lexa@lexa.ru> 2304 * Imported dcraw 8.96/1.426 2305 + New cameras: Casio EX-Z60 and EX-Z75, Kodak Z980, 2306 Nikon D5000, Olympus X200, D560Z,C350Z,E620, 2307 Pentax K7, Sony A330. 2308 + New color data for many cameras 2309 + Generalized unpacker code for Canon and Casio P&S cameras 2310 * LibRaw 0.8.0-Release 2311 2312 2009-08-13 Alex Tutubalin <lexa@lexa.ru> 2313 * RAW files larger than 2Gb are supported on: 2314 - Unix (all supported: FreeBSD, MacOS X, Linux) 2315 - Windows (with C runtime version >= 8.0) 2316 * bzero replaced with memset to make Solaris users happy 2317 * All applications on 32-bit systems should be recompiled 2318 due to data structures size changes. 2319 * Minor fixes in windows makefile 2320 * LibRaw 0.8.0-Beta5 2321 2322 2009-07-21 Alex Tutubalin <lexa@lexa.ru> 2323 * Imported dcraw 8.95 (1.425): 2324 + new huffman tree code 2325 + New cameras supported: AGFAPHOTO DC-833m, Casio EX-S20, 2326 Phase One P65, Samsung S850 2327 + Removed hardcoded white-balance data for many P&S cameras. 2328 It is recommended to set params.use_camera_wb to 1 for 2329 safe WB. 2330 * Fixes for Nikon D5000 files: no pink stripe at 2331 right side of frame 2332 * C-wrapper: added missed calls 2333 libraw_dcraw_make_mem_image 2334 libraw_dcraw_ make_mem_thumb 2335 * Minor fixes to make non-gcc compilers more happy 2336 * Internal structures changed, full recompilation of all client 2337 code is needed. 2338 * LibRaw 0.8.0-Beta4 2339 2340 2009-06-08 Alex Tutubalin <lexa@lexa.ru> 2341 * Fixes: gamma curve processing was not performed in 2342 dcraw_write_mem_image() 2343 * Fixes: gamma curve processing was not performed for 2344 Kodak thumbnails 2345 * LibRaw 0.8.0-Beta3 2346 2347 2009-06-05 Alex Tutubalin <lexa@lexa.ru> 2348 * Fixes in documentation: params.gamm[] described more precisely 2349 * Fixes in version number, 0.8-beta1 was mistakenly 0.0.0-beta1 2350 * LibRaw 0.8.0-Beta2 2351 2352 2009-06-04 Alex Tutubalin <lexa@lexa.ru> 2353 * Imported dcraw 8.94 (1.423): 2354 + New camera support: 2355 Canon: SX1, 500D/Rebel T1i, A570, A590, SX110 2356 Kodak Z1015, Motorola PIXL, Olympus E30, Panasonic DMC-GH1 2357 + Improved color data for Nikon D3X 2358 + New gamma curve model 2359 + Many changes in RAW unpacking code 2360 + Canon cameras: black level is not subtracted if set 2361 params.document_mode > 1 2362 2363 * API changed: params.gamma_16bit field removed. Gamma curve is 2364 set via params.gamm[0]/gamm[1] values (see documentation and 2365 samples for details) 2366 * LibRaw::identify() split to avoid MS VS2008 bug (too many 2367 nested blocks) 2368 2369 * Samples: dcraw_emu and mem_image samples supports new dcraw 2370 16bit/gamma semantics: 2371 -6: set 16 bit output 2372 -4: set 16 bit output and linear gamma curve and no auto 2373 brightness 2374 * LibRaw 0.8.0-Beta1 2375 2376 2009-04-28 Alex Tutubalin <lexa@lexa.ru> 2377 * Identify sample renamed to raw-identify (name conflict 2378 with ImageMagic) 2379 * Copyright notice changes 2380 * Many compiler warnings removed 2381 2382 2009-04-07 Alex Tutubalin <lexa@lexa.ru> 2383 * More accurate types conversion in libraw_datastream.h 2384 * New postprocessing parameter auto_bright_thr: set portion of 2385 clipped pixels for auto brightening code (instead of 2386 dcraw-derived hardcoded 1%) 2387 * -U option for dcraw_emu sample sets auto_bright_thr parameter 2388 * all client code should be recompiled due to structures size 2389 change 2390 * LibRaw 0.7.2-Release 2391 2392 2009-03-22 Alex Tutubalin <lexa@lexa.ru> 2393 * Fixed typo in OpenMP support code 2394 * MinGW support 2395 * dcraw source is included in distribution 2396 * LibRaw 0.7.1-Release 2397 2398 2009-03-15 Alex Tutubalin <lexa@lexa.ru> 2399 * Fuji SuperCCD RAWs: color channels unshuffled on RAW 2400 read stage (moved from postprocessing stage) 2401 2402 * LibRaw 0.7.0-Release 2403 2404 2009-03-13 Alex Tutubalin <lexa@lexa.ru> 2405 * dcraw 8.93/1.421 imported: 2406 + more accurate pentax dSLR support 2407 + fixes in Kodak 620x/720x identification 2408 + faster identification procedure for some formats. 2409 * LibRaw 0.7.0-Beta5 2410 2411 2412 2009-03-08 Alex Tutubalin <lexa@lexa.ru> 2413 * dcraw 8.92/1.420 imported: 2414 + user-specified gamma curve 2415 + Pentax K2000/Km support 2416 + Changes in Canon sRAW processing (support for 5D2 fw 1.07) 2417 2418 * all client code should be recompiled 2419 2420 * LibRaw 0.7.0-Beta4 2421 2422 2009-02-13 Alex Tutubalin <lexa@lexa.ru> 2423 * bugfix: 4channels sample finally subtracts black by default 2424 * dcraw 8.91/1.419 imported: 2425 + fixes in RIFF files parsing 2426 2427 * LibRaw 0.7.0-Beta3 2428 2429 2009-02-12 Alex Tutubalin <lexa@lexa.ru> 2430 * Black level was not calculated for Canon RAWs in 2431 some filtering modes 2432 2433 * 4channels sample prints calculated black level 2434 (scaled if autoscaling used). 2435 Also output file names for this sample now includes 2436 color channel name (R/G/B/G2 or C/M/Y/G) 2437 2438 * LibRaw 0.7.0-Beta2 2439 2440 2009-02-09 Alex Tutubalin <lexa@lexa.ru> 2441 * New sample 4channels: splits RAW color channels into four 2442 separate TIFFs 2443 2444 * LibRaw 0.7.0-Beta1 2445 2446 2009-02-07 Alex Tutubalin <lexa@lexa.ru> 2447 * Fixed bug in external jpeg metadata reading code. 2448 2449 * Cleaned some C++ warnings 2450 2451 * dcraw 8.91/1.418 imported 2452 + Hasselblad V96C support 2453 2454 * You need to clean and recompile client code which 2455 uses LibRaw_*_datastream classes. 2456 2457 * LibRaw 0.7.0-Alpha6 2458 2459 2009-01-30 Alex Tutubalin <lexa@lexa.ru> 2460 2461 * New data input framework is created. It is possible now to 2462 easyly implement your own data input interface for LibRaw 2463 (e.g. for reading RAW data from network data stream) 2464 2465 * All older programs using previous LibRaw versions are 2466 compatible at source code level. 2467 2468 * LibRaw can read RAW data from memory buffer via 2469 new LibRaw::open_buffer() API call (implemented on top of 2470 new input framework). 2471 This call used in sample application dcraw_emu and simple_dcraw 2472 (with -B command-line switch) to test new API. 2473 2474 * Error handling callback functions now can be called with 2475 NULL filename passed (if underlying data stream object 2476 does not know file name). 2477 So, client error handling callbacks should work with NULL 2478 filename. 2479 2480 * All client code should be recompiled 2481 2482 * Imported dcraw 8.90/1.417: 2483 + Support for loading White Balance data from 2484 Sony ARW files edited with Sony IDC software. 2485 2486 * LibRaw 0.7.0-Alpha5 2487 2488 2009-01-17 Alex Tutubalin <lexa@lexa.ru> 2489 * Raw filtering mode LIBRAW_FILTERING_NOPOSTPROCESS has renamed 2490 to LIBRAW_FILTERING_NORAWCURVE for better reflect its purpose. 2491 This filtering_mode bit turns off tone curve applying on 2492 RAW data on bayer-pattern cameras with raw tone curve: 2493 + Adobe DNG (only RAW with bayer pattern) 2494 + Nikon compressed NEF 2495 + Some Kodak cameras 2496 + Sony A700/A900 (tone curve applied to 8-bit raws) 2497 2498 * unprocessed_raw sample: added command-line key -N, this key 2499 turns on LIBRAW_FILTERING_NORAWCURVE filtering mode. 2500 2501 * New scheme of Fuji RAW processing (introduced in 0.7-Alpha3) 2502 supports DNG files generated from Fuji RAF. 2503 2504 * Imported dcraw 8.90/1.416: 2505 + better support for Samsung S85 2506 + fixed possible integer overflow in wavelet denoising code 2507 2508 * LibRaw 0.7.0-Alpha4 2509 2510 2511 2009-01-14 Alex Tutubalin <lexa@lexa.ru> 2512 * Black mask extraction supported for all files with bayer data 2513 (one component per pixel). Black mask data not available 2514 for multi-component data (Foveon, Canon sRAW, Sinar 4-shot, 2515 Kodak YCC/YRGB). 2516 2517 * Black level subtraction can be turned off for all bayer 2518 cameras (added support for PhaseOne backs). 2519 2520 * Fujifilm camera processing model changed: 2521 + RAW data is extracted without 45-degree rotation 2522 + dcraw-compatible rotation is performed on postptocessing stage 2523 + it is possible to rotate RAW data without postprocessing 2524 by LibRaw::rotate_fuji_raw() call. 2525 2526 * New filtering mode setting: LIBRAW_FILTERING_NOPOSTPROCESS 2527 This bits turns off RAW tone curve processing based on tone curve 2528 readed from RAW metadata. 2529 This mode supported only for PhaseOne backs now (to be supported 2530 on all relevant cameras in nearest future releases) 2531 2532 * Black level data (got from RAW data) are stored for PhaseOne backs. 2533 2534 * Black level subtraction bug (derived from dcraw) fixed 2535 for PhaseOne files. 2536 2537 * Fixed processing of -s parameter for dcraw_emu sample 2538 2539 * Parameter -s N (select shot number) added to 2540 unprocessed_raw sample. 2541 2542 * Imported dcraw 8.90/1.414: 2543 + changes in QuickTake 100 metadata processing 2544 + changes in external jpeg processing code 2545 + Samsung S85 support 2546 2547 * All client code should be recompiled 2548 2549 * LibRaw 0.7.0-Alpha3 released 2550 2551 2009-01-10 Alex Tutubalin <lexa@lexa.ru> 2552 * Fixed bug in add_masked_borders: crash if output dimensions 2553 is already larger than raw dimensions 2554 * Fixed out of bounds in samples/unprocessed_raw.cpp for files 2555 with non-square pixels 2556 2557 * LibRaw 0.7.0-Alpha2 released 2558 2559 2009-01-08 Alex Tutubalin <lexa@lexa.ru> 2560 * Fixed bug in 0.7.0-a0: black frame size has not reset, 2561 so in batch processing there is an error in black frame 2562 size for files without black frame. 2563 2564 * Implemented reading of black/masked pixels data for 2565 near all cameras with masked pixels, exclding: 2566 + Canon sRAW, Leaf (MOS), Sinar 4-shot - more than one 2567 color component in black frame (redesign of black frame 2568 data structures required). 2569 + Fuji SuperCCD: need to design right methods of extraction 2570 (should we rotate and resize black pixels as active ones??) 2571 2572 * Tested for most dSLR data formats with masked pixels: 7 of 9 2573 untested formats are from old P&S cameras. 2574 2575 * New call LibRaw::unpack_function_name() returns unpack function name 2576 (useful for testers only) 2577 2578 * New identify sample parameters (useful for test-suite builders 2579 to check test coverage): 2580 -u - print unpack function name 2581 -f - print masked frame size 2582 These parameters works only for identify run without -v parameter 2583 2584 * Imported dcraw 8.89/1.411 2585 + changes in Panasonic FZ50 files parsing 2586 2587 * LibRaw 0.7.0-Alpha1 released 2588 2589 2590 2009-01-05 Alex Tutubalin <lexa@lexa.ru> 2591 * It is possible to turn off RAW data filtration (black level 2592 subtraction, zero pixels averaging): 2593 + supported on all cameras except Foveon and Phase One 2594 + filtraction controlled by new parameter "filtering_mode" 2595 + it is possible to expand API by filtering procedures 2596 built for specific camera model. 2597 2598 * Black border (masked pixels) extraction: 2599 + API (data structures) for storing black mask. 2600 + Black mask extraction supported only for limited list of 2601 data formats: 2602 - Canon .CRW, .CR2 (with exception of sRAW),A600, A5 2603 - Adobe DNG (both converted RAW and native DNG) 2604 - Nikon NEF (compressed only) 2605 this list to be expanded in future LibRaw versions 2606 * New call add_masked_borders_to_bitmap makes full bitmap 2607 'masked border' + image 2608 * Usage sample for functionality listed above: 2609 samples/unprocessed_raw 2610 * Imported dcraw 8.89/1.410: 2611 + fixed bugs in Hasselblad .fff decoding 2612 + fixes in Imacon metadata decoding 2613 * Documentation changes 2614 * All client code should be recompiled 2615 * LibRaw 0.7.0-Alpha0 2616 2617 2618 2009-01-01 Alex Tutubalin <lexa@lexa.ru> 2619 * Fixed a bug (filedescriptor and buffer memory leak) in thumbnail 2620 extraction when called before metadata analysis. 2621 Thanks to Albert Astalis Cid. 2622 * LibRaw 0.6.4 Release 2623 2624 2008-12-11 Alex Tutubalin <lexa@lexa.ru> 2625 * Imported new edition of dcraw 8.89 (version 1.409) 2626 * Nikon NEF decoding changed 2627 * LibRaw 0.6.3 Release 2628 2629 2008-12-03 Alex Tutubalin <lexa@lexa.ru> 2630 * fixed bug in Panasonic .RW2 processing (only for thread-safe version, 2631 single-threaded version was not affected) 2632 * All client code should be recompiled 2633 * LibRaw 0.6.2 Release 2634 2635 2008-12-03 Alex Tutubalin <lexa@lexa.ru> 2636 * Imported dcraw 8.89 (version 1.407) 2637 * New cameras: 2638 Canon G10 & 5D Mk2, Leaf AFi 7, Leica D-LUX4, Panasonic FX150 & G1, 2639 Fujifilm IS Pro, 2640 * Changed camera support (color conversion tables): 2641 Canon 50D, Nikon D90 & P6000, Panasonic LX3 & FZ28, Sony A900 2642 * LibRaw 0.6.2 beta 2643 2644 2008-09-25 Alex Tutubalin <lexa@lexa.ru> 2645 * Added new data field float LibRaw::imgdata.color.cam_xyz[4][3]. 2646 This field contains constant table (different for each camera) for 2647 Camera RGB->XYZ conversion. 2648 * All client code should be recompiled 2649 * LibRaw 0.6.1 Release 2650 2651 2008-09-18 Alex Tutubalin <lexa@lexa.ru> 2652 * dcraw 8.88 imported: 2653 - new cameras (Canon 50D, Sony A900, Nikon D90 & P6000, 2654 Panasonic LX3 FZ28) 2655 - new method of black point subtraction for Canon cameras, 2656 preliminary banding suppression. 2657 * Stack memory usage lowered (some thread data moved to dynamic 2658 memory) 2659 * some patches for MSVC compatibility 2660 * LibRaw 0.6.0 Release 2661 2662 2008-09-16 Alex Tutubalin <lexa@lexa.ru> 2663 * Enum definitions changed to make gcc -pedantic happy 2664 * Compiler/preprocessor flags does not affects LibRaw class field set 2665 (i.e. structure for thread local storage is always allocated) 2666 * Default library compilation mode (i.e. sources imported in another 2667 project) is thread-safe 2668 2669 2008-09-14 Alex Tutubalin <lexa@lexa.ru> 2670 * OpenMP support for most CPU consuming steps of processing: 2671 ahd_interpolation. wavelet_denoise 2672 10-30% speed-up of full processing pipe on 2-core CPU 2673 OpenMP supported only on gcc (Linux/FreeBSD and Mac OS X) 2674 2675 * LibRaw 0.6.0-Beta-1 2676 2677 2008-09-10 Alex Tutubalin <lexa@lexa.ru> 2678 * All set_**handler accepts additional void* pointer, which should point to 2679 callback private data. This pointer passed to user callback when it called. 2680 2681 * LibRaw 0.6.0-alpha5 2682 2683 * All client code should be recompiled 2684 2685 2008-09-10 Alex Tutubalin <lexa@lexa.ru> 2686 * New processing stages in enum LibRaw_progress: 2687 LIBRAW_PROGRESS_BAD_PIXELS LIBRAW_PROGRESS_DARK_FRAME 2688 (reserved stages LIBRAW_PROGRESS_RESERVED_PRE1-PRE2 has removed) 2689 * libraw_strprogress() - convert progress code into string 2690 2691 * Added progress/cancellation user callbacks 2692 + new fatal error code: CANCELLED_BY_CALLBACK 2693 + sample usage in samples/dcraw_emu.cpp (try run it with -v -v -v opts) 2694 2695 * LibRaw 0.6.0-alpha4 2696 2697 * All client code should be recompiled 2698 2699 2008-09-08 Alex Tutubalin <lexa@lexa.ru> 2700 * ICC-profiles support (same as in dcraw) 2701 + input/output profiles (specified as path to 'icc' file or 'embed' for 2702 embedded input profile) 2703 + additional warnings 2704 + LCMS library used 2705 2706 * support of bad pixel map (caller should specify path to bad pixel file 2707 in dcraw-compatible format) 2708 2709 * dark frame subtraction support (caller should supply path to 16-bit PGM 2710 map). samples/simple_dcraw.cpp - -4 option added for dark frame file 2711 generation 2712 2713 * support of bad pixeld map (dcraw-compatible format) 2714 2715 * the dcraw_emu sample supports all new features (ICC, dark frame, bad 2716 pixels) 2717 2718 * libraw/libraw_version.h, defines, calls and macros for version checks: 2719 + LibRaw::version(), LibRaw::versionNumber(), LIBRAW_CHECK_VERSION() 2720 2721 * List of supported cameras: 2722 + LibRaw::cameraCount() 2723 + LibRaw::cameraList() 2724 2725 * fixed error in adjust_sizes_info_only 2726 2727 * documentation changes 2728 2729 * LibRaw 0.6.0-alpha3 2730 2731 2008-09-07 Alex Tutubalin <lexa@lexa.ru> 2732 * samples/mem_image.c - bitwise equal output with dcraw -4 2733 (PPMs outputted with network byte order) 2734 * LibRaw 0.6.0-alpha2 2735 2736 2008-09-06 Alex Tutubalin <lexa@lexa.ru> 2737 * Added calls dcraw_make_mem_image and dcraw_make_mem_image: 2738 + functions (and supporting code) 2739 + documentation changed 2740 + new sample code samples/mem_image.cpp 2741 * Added processing parameter LibRaw::imgdata.params.gamma_16bit 2742 (set to 1 to make gamma correction for 16-bit output) 2743 * LibRaw 0.6.0-alpha1 2744 2745 2008-08-28 Alex Tutubalin <lexa@lexa.ru> 2746 * dcraw 1.404 (8.87) imported: 2747 - 6 new cameras supported (Canon 1000D, A720, SD300; 2748 Nikon D700, Oly E-520,Kodak C603) 2749 * Licensing changed to GPL v2 2750 2751 2008-05-02 Alex Tutubalin <lexa@lexa.ru> 2752 * mmap/malloc+read IO-layer removed due to no performance gain. 2753 FILE I/O returned 2754 2755 2008-05-02 Alex Tutubalin <lexa@lexa.ru> 2756 * dcraw 1.403 imported 2757 - changes in ljpeg decompression (index values cut to 12 bit) 2758 - changes in parse_foveon() jpeg thumbnail extraction 2759 * LibRaw 0.5.3 released 2760 2761 2008-04-24 Alex Tutubalin <lexa@lexa.ru> 2762 * Linux build of samples/identify fixed 2763 * documentation editorial 2764 * LibRaw 0.5.2 released 2765 2766 2008-04-21 Alex Tutubalin <lexa@lexa.ru> 2767 * All documentation translated to English 2768 * English changelog started :) 2769 * minor bug (include path) fixed in samples/half_mt 2770 * LibRaw 0.5.1 released