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