LibRaw Changelog

What's new in LibRaw 0.21.2

Dec 20, 2023
  • New compile-defined limit LIBRAW_MAX_PROFILE_SIZE_MB: limits allocation/read size for embedded color profile (default: 256Mb)
  • Embedded color profile allocation/read size: limited by input file size.
  • Multiple fixes (mostly inspired by oss-fuzz) to improve library stability and/or input checks.
  • raw-identify: use fallback if PATH_MAX not available
  • Disabled color conversion for Canon 16-bit thumbnails
  • docs/changelog: explained the case when no thumbnail is found in specific file
  • swapXX renamed to libraw_swapXX to avoid name conflict
  • better striped thumbnails handling

New in LibRaw 0.21.1 (Jan 5, 2023)

  • Fixed typo in Panasonic metadata parsing that prevents correct image decoding for some Panasonic cameras

New in LibRaw 0.21.0 (Dec 19, 2022)

  • Camera format support:
  • Phase One/Leaf IIQ-S v2 support
  • Canon CR3 filmrolls/RawBurst
  • Canon CRM (movie) files
  • Tiled bit-packed (and 16-bit unpacked) DNGs
  • (non-standard) Deflate-compressed integer DNG files are allowed
  • Camera support:
  • Canon EOS R3, R7 and R10
  • Fujifilm X-H2S, X-T30 II
  • OM System OM-1
  • Leica M11
  • Sony A7-IV (ILCE-7M4)
  • DJI Mavic 3
  • Nikon Z9: standard compression formats only
  • Multiple (resultion) thumbnails support:
  • New imgdata.thumbs_list data item with data fields:
  • int thumbcount: thumbnail count
  • libraw_thumbnail_item_t thumblist[LIBRAW_THUMBNAIL_MAXCOUNT]: list of thumbnails
  • libraw_thumbnail_item_t fields:
  • enum LibRaw_internal_thumbnail_formats tformat: internal thumbnail format (this is not PPM/JPEG, but internal type related to thumbnail reading/unpacking method)
  • ushort twidth, theight: thumbnail image size.
  • ushort tflip: image rotation (see notes below)
  • unsigned tlength: on-disk data size (not uncompressed for compressed formats)
  • unsigned tmisc: bit depth and channel count: (color INT64 toffset: Thumbnail data offset in file
  • Notes:
  • Only TIFF-based and CR3 files are parsed for thumbnail list, other formats will have thumbcount = 1 (or 0 if no thumbnail found in file).
  • Thumbnail image size may be unknown (not recorded in metadata), in this case twidth and theight are zero. Usually small(er) thumbnails will always have twidth/theight filled, while largest one may have these fields set to zero.
  • Thumbnail rotation (tflip) is filled only for TIFF-based RAWs (if Orientation tag is not present in IFD, default zero value is used) For non-tiff images, tflip is initialized to 0xffff (not known...)
  • 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 (see unpack_thumb_ex() call below)
  • If you want to get largest possible thumbnail: just use old unpack_thumb() call to get it.
  • new API call: LibRaw::unpack_thumb_ex(int i): Unpacks i-th thumbnail if it exists into imgdata.thumbnail structure i should be non-zero and less then imgdata.thumbs_list.thumbcount.
  • samples/simple_dcraw.cpp: new -E command line switch to extract all thumbnails from input file(s)
  • (Experimental) RawSpeed "version 3" (develop branch) support
  • Build with -DUSE_RAWSPEED3, see details in RawSpeed3/README.md
  • LibRaw::capabilities will set bit LIBRAW_CAPS_RAWSPEED3 if compiled w/ RawSpeed-v3 support
  • If file was processed (or tried to process) via RawSpeed-v3, these bits are rised in imgdata.process_warnings:
  • LIBRAW_WARN_RAWSPEED3_PROCESSED - processed via RawSpeed v3
  • LIBRAW_WARN_RAWSPEED3_PROBLEM - not processed (due to exception in RawSpeed library)
  • LIBRAW_WARN_RAWSPEED3_UNSUPPORTED - unsupported file
  • LIBRAW_WARN_RAWSPEED3_NOTLISTED - file not listed in cameras.xml data
  • RawSpeed-v3 support is controlled via libraw_decoder_info.t->flags (LIBRAW_DECODER_TRYRAWSPEED3 bit). The bit is set for:
  • lossless jpeg decoder
  • Canon sRAW decoder
  • lossless compressed and packed-compressed DNG decoders
  • Pentax decoder
  • Nikon (compressed) decoder
  • Phase One Compressed and Hasselblad/Compressed decoders
  • bitpacked decoder
  • Panasonic (old 12-bit compression) decoder
  • Olympus decoder
  • Sony ARW (v1 and v2) decoders
  • Samsung (version 1) decoder
  • (Experimental) Fine control of RawSpeed version selection/use
  • To enable, build LibRaw with -DUSE_RAWSPEED_BITS
  • LibRaw::capabilities will set bit LIBRAW_CAPS_RAWSPEED_BITS if compiled with this flag.
  • If enabled: imgdata.rawparams.use_rawspeed becomes bit-field (instead of 0/1 off/on) with bits:
  • LIBRAW_RAWSPEEDV1_USE - use RawSpeed Version 1 (if compiled with)
  • LIBRAW_RAWSPEEDV1_FAILONUNKNOWN - do not process unknown files (not listed in RawSpeed v1 camera definitions file)
  • LIBRAW_RAWSPEEDV1_IGNOREERRORS - ignore mirror decoding errors (out of range data,etc)
  • LIBRAW_RAWSPEEDV3_USE - Use RawSpeed Version 3 (if compiled with)
  • LIBRAW_RAWSPEEDV3_FAILONUNKNOWN - do not process unknown files
  • LIBRAW_RAWSPEEDV3_IGNOREERRORS - ignore minor decoding errors
  • Misc changes/improvements:
  • New compile time define LIBRAW_OWN_SWAB to use on platforms without swab() in C/C++ runtime
  • New imgdata.rawparams.options bit: LIBRAW_RAWOPTIONS_CANON_IGNORE_MAKERNOTES_ROTATION
  • If set: image orientation is set based on TIFF/IFD0:Orientation tag, makernotes orientation data is ignored
  • Nikon makernotes: read NEFCompression tag for HE/HE* files
  • Nikon orientation tag: more fixed offsets for known cameras
  • Adobe DNG SDK 1.6 support (meaning, just an additional patch for GPR SDK)
  • Removed LibRaw::memerr(), memory allocation failures are already handled in LibRaw_memmgr::*alloc w/ exception thrown
  • Removed memory error callback, out-of-memory error should be handled via returned error code check, all related parameters (e.g. LibRaw constructor option to not set such callback) is also removed
  • imgdata.params.adjust_maximum_thr is settable via C-API libraw_set_adjust_maximum_thr(..)
  • New rawoptions/processing flags for DNG processing if compiled with Adobe DNG SDK:
  • LIBRAW_RAWOPTIONS_DNG_STAGE2_IFPRESENT,LIBRAW_RAWOPTIONS_DNG_STAGE3_IFPRESENT If these flag(s) are set: Stage2/Stage3 processing will be performed only if OpcodeList2/OpcodeList3 tags are present in the input DNG file Old (hard) flags (LIBRAW_RAWOPTIONS_DNG_STAGE2 and LIBRAW_RAWOPTIONS_DNG_STAGE3) are not removed and will force Stage2/3 processing if set (regardless of input file tags)
  • New imgdata.rawparams.options bit: LIBRAW_RAWOPTIONS_DNG_ADD_MASKS If set: DNG Transparency Masks will be extracted (if selected via shot_select)
  • New decoder flag: LIBRAW_DECODER_UNSUPPORTED_FORMAT
  • Bugs fixed:
  • Fixed possible out-of-buffer read in Nikon orientation tag parser
  • Windows datastream: fixed logic errors (not showing up in real life)
  • Out-of-range read-only array access in postprocessing if output_color is set to 0 (raw color)
  • Minolta Z2 was not recognized correctly on 32-bit systems
  • Fixed possible buffer overflow in Kodak C330 decoder
  • dcraw_process(): check for buffer allocation results to avoid NULL deref
  • Multiple bugfixes inspired by oss-fuzz project

New in LibRaw 0.20.2 (Oct 16, 2020)

  • Reverted 0.20.1 change:
  • const buffer for open_buffer() and open_bayer() calls

New in LibRaw 0.20.1 (Oct 16, 2020)

  • Improvements:
  • exif callback is called on EXIF GPS and EXIF Interop IFDs
  • open_bayer call documented
  • Canon (ColorDatsSubver==32): parse Specular White instead of hardcoded value
  • Fixes for normal files processing:
  • Olympus XZ-1: do not provide linear_max (it is wrong in metadata)
  • Nikon Z cameras: added space in camera list
  • raw-identify: fixed wb-preset print
  • Pentax Optio 33WR: maker index was incorrect
  • dcraw_emu: corrected help line for -6 option.
  • raw-identify: corrected range check for color matrices print
  • use_camera_matrix option: fixed a bug introduced when making compiler more happy.
  • Fixes for damaged/special crafted files processing:
  • Fix for truncated CR3 files parsing
  • DNG metadata merger: all color loops are limited to MIN(4,colors)
  • Check for marings: should be less than raw image size
  • Check for xmpdata present in Samsung Lens ID assignment
  • Check for column range in leaf_hdr decoder
  • Additional checks in Hasselblad model parser
  • Fuji rotate: better limits check
  • DNG files: limit tiff_samples
  • Not fixes, but makes ASAN/compilers/etc happy:
  • corrected GPS EXIF output
  • const buffer for open_buffer() and open_bayer() calls

New in LibRaw 0.20.0 (Jul 24, 2020)

  • Camera Format support:
  • Canon CR3
  • GoPro (via GPR SDK)
  • Panasonic 14-bit
  • Fujifilm compressed/16bit
  • Rapsberry Pi RAW+JPEG format (if USE_6BY9RPI defined)
  • Foveon X3F support changed: it is supported only if USE_X3FTOOLS defined at build (see below for 'Imported code policy disclaimer')
  • Camera support (1133 total):
  • Canon: PowerShot G5 X Mark II, G7 X Mark III, SX70 HS, EOS R, EOS RP, EOS 90D, EOS 250D, EOS M6 Mark II, EOS M50, EOS M200, EOS 1DX Mark III (lossless files only)
  • DJI Mavic Air, Air2, Osmo Action
  • FujiFilm GFX 100, X-A7, X-Pro3, X100V, X-T4 (uncompressed and lossless compressed only), X-T200
  • GoPro Fusion, HERO5, HERO6, HERO7, HERO8
  • Hasselblad L1D-20c, X1D II 50C
  • Leica D-LUX7, Q-P, Q2, V-LUX5, C-Lux / CAM-DC25, SL2, M10 Monochrom
  • Nikon D780, Z50, P950
  • Olympus TG-6, E-M5 Mark III, E-PL10, E-M1 Mark III,
  • Panasonic DC-FZ1000 II, DC-G90, DC-S1, DC-S1R, DC-S1H, DC-TZ95
  • PhaseOne IQ4 150MP
  • Ricoh GR III
  • Sony A7R IV, A9 II, ILCE-6100, ILCE-6600, RX0 II, RX100 VII
  • Zenit M
  • also multiple smartphones (the tested ones are listed in LibRaw::cameraList)
  • Source code re-arranged:
  • dcraw.c is not used in the generation and build processes
  • dcraw_common.cpp and libraw_cxx.cpp are split into multiple code chunks placed in separate subfolders (decoders/ for raw data decoders, metadata/ for metadata parsers, etc)
  • dcraw_common.cpp and libraw_cxx.cpp remain to preserve existing build environments (these files are now just a bunch of #include directives).
  • It is possible to build LibRaw (It may be useful to reduce library memory/code footprint.)
  • without postprocessing functions (dcraw_process() and called function)
  • without postprocessing and LibRaw::raw2image() call (and called function).
  • See Makefile.devel.nopp and Makefile.devel.noppr2i for the list of source files needed to build reduced/stripped library.
  • Normalized make/model:
  • There is a huge number of identical cameras sold under different names, depending on the market (e.g. multiple Panasonic or Canon models) and even some identical cameras sold under different brands
  • (Panasonic -> Leica, Sony -> Hasselblad).
  • To reduce clutter, a normalization mechanism has been implemented in LibRaw:
  • In imgdata.idata:
  • char normalized_make[64]; - primary vendor name (e.g. Panasonic for Leica re-branded cameras)
  • char normalized_model[64]; - primary camera model name
  • unsigned maker_index; - primary vendor name in indexed form (enum LibRaw_cameramaker_index, LIBRAW_CAMERAMAKER_* constant).
  • These fields are always filled upon LibRaw::open_file()/open_buffer() calls.
  • const char* LibRaw::cameramakeridx2maker(int index): converts maker_index to normalized_make.
  • We recommend that you use these normalized names in a variety of data tables (color profiles, etc.) to reduce the number of duplicate entries.
  • New vendor index values will be added strictly to the end of the LibRaw_cameramaker_index table, ensuring that the numbers assigned to vendors that are already known to LibRaw will not change.
  • DNG frame selection (and other changes)
  • DNG frames selection code re-worked:
  • by default all frames w/ the NewSubfileType tag equal to 0 (high-res image) are added to the list of available images (selection performed via imgdata.params.shot_select field, as usual)
  • the special case for Fuju SuperCCD (SamplesPerPixel == 2) works as before: shot_select=1 will extract second sub-image.
  • Additional flags to imgdata.params.raw_processing_options:
  • LIBRAW_PROCESSING_DNG_ADD_ENHANCED - will add Enhanced DNG frame (NewSubfileType == 16) to the list of available frames
  • LIBRAW_PROCESSING_DNG_ADD_PREVIEWS - will add previews (NewSubfileType == 1) to the list.
  • By default, DNG frames are not reordered and are available in same order as in DNG (LibRaw traverses IFD/Sub-IFD trees in deep-first order). To prioritize the largest image, set LIBRAW_PROCESSING_DNG_PREFER_LARGEST_IMAGE bit in imgdata.params.raw_processing_options.
  • DNG Stage2/Stage3 processing via DNG SDK (request via flags in raw_processing_options)
  • Imported code policy disclaimer:
  • We've changed the policy regarding 3rd party code imported into LibRaw:
  • We (like other authors of open-source RAW parsers) gladly import support code for various RAW formats from other projects (if the license allows it).
  • This is done to expand camera support.
  • Unfortunately, not all imported code can tolerate truncated or otherwise damaged raw files, as well as arbitrary conditions or arbitrary data; not all authors handle rejecting unexpected input well.
  • LibRaw is now widely used in various projects, including ImageMagick, which, in turn, is often used on web sites to process any input images, including arbitrary data from unknown users. This opens up wide possibilities for exploiting the various vulnerabilities present in the code borrowed from other projects into LibRaw. In order to avoid such security risks, - the borrowed code will no longer compile by default.
  • We are not able to support it in general case, and the authors refuse to add code to reject unexpected input.
  • Thus, if you use some kind of camera for which the support is disabled by default, you need to recompile LibRaw for your specific case.
  • Formats currently affected:
  • X3F (Foveon) file format.
  • Code is imported from Kalpanika X3F tools: https://github.com/Kalpanika/x3f
  • To turn the support on, define USE_X3FTOOLS
  • Rapsberry Pi RAW+JPEG format.
  • Code is imported from https://github.com/6by9/dcraw/
  • To turn the support on, define USE_6BY9RPI
  • Format support is indicated via LibRaw::capabilities() call with flags:
  • LIBRAW_CAPS_X3FTOOLS - Foveon support
  • LIBRAW_CAPS_RPI6BY9 - RPi RAW+JPEG support
  • GoPro .gpr format support
  • GoPro format supported via open-source GPR SDK See README.GoPro.txt for details.
  • Windows support/Windows unicode (wchar_t*) filenames support
  • (old) LibRaw's WIN32 external define split into 3 defines to fine tune compiler/api compatibility:
  • LIBRAW_WIN32_DLLDEFS - use to compile DLLs (__dllimport/__dllexport attributes)
  • LIBRAW_WIN32_UNICODEPATHS - indicates that runtime has calls/datatypes for wchar_t filenames
  • LIBRAW_WIN32_CALLS - use Win32 calls where appropriative (binary mode for files, LibRaw_windows_datastream, _snprintf instead of snprintf, etc).
  • If the (old) WIN32 macro is defined at compile time, all three new defines are defined in libraw.h
  • If not, these defines are defined based on compiler version/libc++ defines
  • LibRaw::open_file(wchar_t*) is always compiled in under Windows, but if LIBRAW_WIN32_UNICODEPATHS (see above) is not defined, this call will return LIBRAW_NOT_IMPLEMENTED.
  • Use (LibRaw::capabilities() & LIBRAW_CAPS_UNICODEPATHS) on runtime to check that this call was really implemented (or check for #ifdef LIBRAW_WIN32_UNICODEPATHS after #include )
  • LibRaw*datastream simplified:
  • tempbuffer_open, subfile_open are not used, so removed from LibRaw_abstract_datastream and derived classes.
  • jpeg_src() call implemented using ->read() call and own buffering (16k buffer).
  • buffering_off() call added. It should be used in derived classes to switch from buffered reads to unbuffered.
  • Minor/unsorted changes:
  • new flag LIBRAW_WARN_DNGSDK_PROCESSED to indicate decoder used
  • LibRaw::open() call, max_buf_size special meaning:
  • 1 => open using bigfile_datastream
  • 2 => open using file_datastream
  • New processing flag LIBRAW_PROCESSING_PROVIDE_NONSTANDARD_WB If set (default is not), and when applicable, color.cam_mul[] and color.WB_Coeffs/WBCT_Coeffs will contain WB settings for a non-standard workflow. Right now only Sony DSC-F828 is affected: camera-recorded white balance can't be directly applied to raw data because WB is for RGB, while raw data is RGBE.
  • New processing flag: LIBRAW_PROCESSING_CAMERAWB_FALLBACK_TO_DAYLIGHT If set (default is not), LibRaw::dcraw_process() will fallback to daylight WB (excluding some very specific cases like Canon D30). This is how LibRaw 0.19 (and older) works. If not set: LibRaw::dcraw_process() will fallback to calculated auto WB if camera WB is requested, but appropriate white balance was not found in metadata.
  • Add support for zlib during configure
  • Fixed multiple problems found by OSS-Fuzz
  • Lots of changes in imgdata.makernotes (hope someone will document it)
  • DNG SDK could be used (if enabled) to unpack multi-image DNG files.
  • DNG whitelevel calculated via BitsPerSample if not set via tags.
  • DNG: support for LinearDNG w/ BlackLevelRepeat.. pattern
  • Generic Arri camera format replaced w/ list of specific camera models in supported cameras list.
  • new samples/rawtextdump sample: allows one to dump (small selection) of RAW data in text format.
  • samples/raw-identify:
  • +M/-M params (same as in dcraw_emu)
  • -L parameter to get file list from a file
  • -m paramerer to use mmap'ed IO.
  • -t parameter for timing
  • samples/dcraw_emu: fixed +M handling
  • better support for Nikon Coolscan 16-bit NEF files.
  • Visual Studio project files: re-generated to .vcxproj (Visual Studio 2019), different intermediate folders for different sub-projects to allow 1-step rebuild.
  • imgdata.makernotes...cameraspecific: removed the vendor name prefix from variables.
  • Bayer images: ensure that even margins have the same COLOR() for both the active sensor area and the full sensor area.
  • raw processing flag bit LIBRAW_PROCESSING_CHECK_DNG_ILLUMINANT inverted and renamed to LIBRAW_PROCESSING_DONT_CHECK_DNG_ILLUMINANT. If not set, DNG illuminant will be checked.
  • New libraw_decoder_t flags:
  • LIBRAW_DECODER_FLATDATA - in-file data could be used as is (if byte order matches), e.g. via mmap()
  • LIBRAW_DECODER_FLAT_BG2_SWAPPED - special flag for Sony ARQ: indicates R-G-G2-B channel order in 4-color data
  • Camera-recorded image crop data is parsed into imgdata.sizes.raw_inset_crop structure:
  • ctop,cleft,cwidth,cheight - crop size.
  • aspect - LibRawImageAspects enum (3to2, 4to3, etc)
  • New define LIBRAW_NO_WINSOCK2 to not include winsock2.h on compile
  • Google changes cherry-picked (thanks to Jamie Pinheiro)
  • speedup: ppg interpolate: const loop invariant
  • Bugs fixed
  • Fixed several UBs found by OSS Fuzz
  • Fixed several problems found by other fuzzers.
  • Thumbnail size range check (CVE-2020-15503). Thanks to Jennifer Gehrke of Recurity Labs GmbH for problem report.
  • fixed possible overflows in canon and sigma makernotes parsers
  • fixed possible buffer overrun in crx (cr3) decoder
  • fixed memory leak in crx decoder (if compiled with LIBRAW_NO_CR3_MEMPOOL)
  • fixed possible overrun in Sony SRF and SR2 metadata parsers
  • Fixed typo in longitude (member of parsed GPS structure), update required for code that uses it.

New in LibRaw 0.18.2 (Mar 24, 2017)

  • Fixed several errors (Secunia advisory SA75000)
  • ACES colorspace output option included in dcraw_emu help page
  • Avoided possible 32-bit overflows in Sony metadata parser
  • Phase One flat field code called even for half-size output

New in LibRaw 0.18.1 (Mar 5, 2017)

  • Camera Support: Sigma Quattro H
  • Fixed bug in FujiExpoMidPointShift parser
  • Fixed wrong black level in Sony A350
  • Added standard integer types for VisualStudio 2008 and earlier

New in LibRaw 0.18 Beta 1 (Oct 31, 2016)

  • Licensing changed: no 'LibRaw Software license', please select between LGPL 2.1 and CDDL 1.0
  • Camera support: 78 cameras added (relative to 0.17.2)
  • Floating point DNG support (native, no need for DNG SDK, see below)
  • LibRaw can be built with Adobe DNG SDK support to decode exotic DNG formats (e.g. 8-bit DNG)
  • Lot of getters/setters added to C-API
  • Libraw compilation flags are accessible on runtime via LibRaw::capabilities() call
  • More metadata parsed: white balance presets, DNG colordata, vendor specific metadata

New in LibRaw 0.17.1 (Nov 25, 2015)

  • fixed two errors found by AlphaFuzzer
  • phase_one_correct always returns value; handle P1 return codes in postprocessing

New in LibRaw 0.17.0 (Aug 17, 2015)

  • Fixed dcraw.c ljpeg_start possibly buffer overrun
  • fixed several bugs detected by using American Fuzzy Lop
  • C-API extension to support 3DLut Creator
  • Exif/Makernotes parser callback (called for each processed tag)
  • 224 camera models added to supported camera list.
  • Some of them are new (released since LibRaw 0.16 come out), some was supported before, but missed from the list.
  • Fujifilm F700/S20Pro second frame support
  • More metadata parsing/extraction:
  • XMP packet extracted (if exists)
  • DNG Color information parsed
  • GPS data (partially) parsed
  • EXIF/Makernotes parsed for used optics (for both RAW files and DNG converted by Adobe convertor).
  • Sony ARW2.3 decoder:
  • params.sony_arw2_hack removed, decoded data are always in 0...17k range (note the difference with dcraw!)
  • Additional processing options for Sony lossy compression techincal analysis.
  • Dcraw 9.26 imported (but some changes not approved because Libraw do it better) with some exceptions:
  • no Pentax K3-II frame selection code
  • no built-in JPEG decompressor
  • Many improvements in data decoding/processing:
  • Correct decoding of black level values from metadata for many formats, LibRaw do not rely on hardcoded black levels.
  • Added cameras are:
  • Alcatel 5035D
  • BlackMagic Pocket Cinema Camera, Production Camera 4k
  • 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
  • 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
  • Digital Bolex D16,D16M
  • DJI 4384x3288
  • Epson R-D1s, R-D1x
  • 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
  • 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
  • HTC UltraPixel
  • Imacon Ixpress 96, 96C, 384, 384C (single shot only),132C, 528C (single shot only)
  • ISG 2020x1520
  • Ikonoskop A-Cam dII Panchromatic, A-Cam dII
  • Kinefinity KineMINI, KineRAW Mini, KineRAW S35
  • Kodak DCS460D, S-1
  • Leaf Credo 50
  • Lenovo a820
  • 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
  • Matrix 4608x3288
  • 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
  • Nokia 1200x1600
  • 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
  • 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
  • Pentax GR, K110D, K-01, K-S1, Q, QS-1, 645Z, K-S2, K3 II
  • PhaseOne IQ250, IQ260, IQ260 Achromatic, IQ280, Achromatic+, P 20+, P 21, P 25+, P 30+, P 40+
  • 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
  • Samsung GX-1L, NX1, NX5, NX1000, NX1100, NX30, NX300, NX300M, NX3000, NX mini, Galaxy S3, Galaxy Nexus, NX500
  • Sigma dp1 Quattro, dp2 Quattro, dp3 Quattro, dp0 Quattro
  • Sinar eMotion 22, eMotion 54, eSpirit 65, eMotion 75, eVolution 75, Sinarback 54
  • 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

New in LibRaw 0.17.0 Beta 3 (Aug 3, 2015)

  • C-API extension to support 3DLut Creator Shared lib version incremented because of API extension
  • New Cameras:
  • Nikon D810A
  • Panasonic FZ300/330, GX8
  • Sony A7R-II, RX10-II

New in LibRaw 0.17.0 Beta 2 (Jul 9, 2015)

  • Fujifilm F700/S20Pro second frame support
  • Fixed Black level calculation for Nikon 1 S2
  • New cameras:
  • Canon G3 X
  • Sigma dp0 Quattro

New in LibRaw 0.17.0 Beta 1 (Jul 6, 2015)

  • More accurate input handling based on AFL checks.
  • strcmp(make,...) -> strncmp(make) to prevent running out of unterminated EXIF value
  • Canon_makernotes_t -> libraw_canon_makernotes_t
  • New cameras (813 total):
  • Fujifilm X-T10
  • Leica Q
  • Olympus AIR-A01
  • Pentax K3 II (standard mode only, 1-s subframe extracted for 4-shot images)
  • Sigma dp3 Quattro
  • Sony RX100-IV

New in LibRaw 0.16.2 (May 18, 2015)

  • Fixed several bugs detected by running American Fuzzy Lop

New in LibRaw 0.17.0 Alpha 4 (May 18, 2015)

  • Fixed several bugs detected by running American Fuzzy Lop
  • tiff-ifd field with tile length removed because it not needed anymore
  • ABI changed, recompile binary packages. Shlib version incremented too

New in LibRaw 0.17.0 Alpha 3 (May 18, 2015)

  • Fixes a vulnerability found in Dave Coffin's dcraw.c code.

New in LibRaw 0.16.1 / 0.17.0 Alpha 3 (May 11, 2015)

  • Fixes a vulnerability found in Dave Coffin's dcraw.c code.

New in LibRaw 0.17.0 Alpha 2 (May 9, 2015)

  • Fixed possible buffer overrun in metadata parser
  • Minor fixes to make old gcc happy
  • ABI changed, recompile binary packages. Shlib version incremented too
  • New cameras:
  • Canon: 5DS, 5DS R, 750D, 760D, M2, M3
  • Fujifilm: XQ2, X-A2
  • Leica: Monochrom (Typ 246)
  • Nikon: D7200, 1 J5
  • Olympus: SH-2, TG-4
  • Pentax: K-S2
  • Samsung: NX500

New in LibRaw 0.17.0 Alpha 1 (Mar 4, 2015)

  • Exif/Makernotes parser callback (called for each processed tag)
  • Dcraw 9.24 imported (but some changes not approved because Libraw do it better).
  • Many improvements in data decoding/processing.
  • Correct decoding of black level values from metadata for many formats
  • 196 camera models added to supported camera list.
  • Some of them are new (released since LibRaw 0.16 come out), some was supported before, but missed from the list.
  • More metadata parsing/extraction:
  • XMP packet extracted (if exists)
  • DNG Color information parsed
  • GPS data (partially) parsed
  • EXIF/Makernotes parsed for used optics (for both RAW files and DNG converted by Adobe convertor).
  • Sony ARW2.3 decoder:
  • params.sony_arw2_hack removed, decoded data are always in 0...17k range (note the difference with dcraw!)
  • Additional processing options for Sony lossy compression technical analysis.
  • Added cameras are:
  • Alcatel 5035D
  • BlackMagic Pocket Cinema Camera, Production Camera 4k
  • 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
  • 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
  • Digital Bolex D16,D16M
  • DJI 4384x3288,
  • Epson R-D1s, R-D1x
  • FujiFilm E505, S1, S205EXR, HS10, HS11, HS22EXR, HS33EXR, HS35EXR, F505EXR, F605EXR, F775EXR, F900EXR, X100T, X30, X-T1, X-T1 Graphite Silver
  • 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
  • HTC UltraPixel
  • Imacon Ixpress 96, 96C, 384, 384C (single shot only),132C, 528C (single shot only)
  • ISG 2020x1520
  • Ikonoskop A-Cam dII Panchromatic, A-Cam dII
  • Kinefinity KineMINI, KineRAW Mini, KineRAW S35
  • Kodak DCS460D, S-1
  • Leaf Credo 50
  • Lenovo a820
  • 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),
  • Matrix 4608x3288
  • Nikon D4s, D600, D610, D750, D800, D800E, D810, D3300, D5500, Df, 1 J4, 1 S2, 1 V3, Coolpix P340, Coolscan NEF
  • Nokia 1200x1600
  • Olympus E-450, E-600, E-PL6, E-PL7, E-M1, E-M10, E-M5 Mark II, SP565UZ, STYLUS1s
  • 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
  • Pentax GR, K110D, K-01, K-S1, Q, QS-1, 645Z
  • PhaseOne IQ250, IQ260, IQ260 Achromatic, IQ280, Achromatic+, P 20+, P 21, P 25+, P 30+, P 40+
  • 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
  • Samsung GX-1L, NX1, NX5, NX1000, NX1100, NX30, NX300, NX300M, NX3000, NX mini, Galaxy S3, Galaxy Nexus
  • Sigma dp1 Quattro, dp2 Quattro
  • Sinar eMotion 22, eMotion 54, eSpirit 65, eMotion 75, eVolution 75, Sinarback 54
  • 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

New in LibRaw 0.16.0 (Jan 20, 2014)

  • Support for new cameras:
  • Baumer TXG14
  • Blackmagic Cinema
  • Canon EOS 70D, C500, S120, G16
  • Fujifilm X-M1, X-A1, XE2, XQ1
  • Hasselblad Lunar, Stellar
  • Leica C, X VARIO
  • Nikon D5200, P7800, D5300, D610, Df, 1 AW1
  • Nokia Lumia 1020, 1520
  • Olympus E-P5,E-M1, STYLUS1
  • OmniVision OV5647 (Raspberry Pi)
  • Panasonic LF1, GX7, GF6, GM1
  • Pentax K-50, K-500, Q7,K-3
  • Richon GR
  • Samsung NX300, NX1100, NX2000, Galaxy NX (EK-GN120)
  • Sony RX100II, RX1R, NEX-3N,NEX-5T, RX10, A3000 (ILCE-3000), A7, A7R
  • Support for Foveon sensor based on X3F code by Roland Karlsson
  • BSD-like license, so included in main LibRaw code. No 'foveon intepolation', so no way to get good colors from old Sigma cameras (SD9, SD14, Polaroid x530). For modern Foveon cameras one may try to create ICC profile (not supplied).
  • Support for Medium resolution RAWs from DPx Merrill and SD1 cameras. RAW data extracted as is (4800x1600 pixels), aspect ratio is set to 0.5, so these RAWs are processed to full-size 4800x3200 RGB.
  • Support for Foveon thumbnail extraction. Only JPEG and bitmap thumbnails extracted, but 'foveon' (RAW) thumbnails are really not used in production cameras.
  • New imgdata.params.force_foveon_x3f flag Forces use of x3f-tools based code for Foveon processing if LibRaw compiled with demosaic-pack-GPL2 (and does nothing if LibRaw compiled without this pack). New flag -disadcf added to dcraw_emu sample to use this flag.
  • API Changes:
  • New parameters in imgdata.params:
  • imgdata.params.no_interpolation - disables interpolation step in LibRaw::dcraw_process() call.
  • imgdata.params.no_auto_scale - disables call to scale_colors() in LibRaw::dcraw_process() call.
  • imgdata.params.sraw_ycc - disables Canon sRAW YCbCr to RGB conversion in LibRaw::unpack() call (use for RAW analyzers
  • New Fuji X-Trans handling: - imgdata.iparams.filters value is now 9 for Fuji X-Trans (instead of 2) - imgdata.iparams.xtrans[6][6] matrix contains row/col to color mapping for Fuji X-Trans sensor.
  • LibRaw::setCancelFlag() - use for fast decoder termination
  • LibRaw_abstract_datastream::make_byte_buffer() call is not needed more.
  • Other Changes:
  • New demosaic code: DHT Demosaic by Anton Petrusevich
  • Set params.user_qual=11 to use.
  • New demosaic code: Modified AHD Demosaic by Anton Petrusevich
  • Set params.user_qual=12 to use.
  • New C-API call libraw_COLOR(libraw_data_t *t, int row,int col) (so LibRaw::COLOR(row,col) exposed to C-API users)
  • Removed faster lossless jpeg decoder ported from RawSpeed library some years ago. Build LibRaw with RawSpeed to get fast decoding.
  • Canon EOS model name normalized by unique ID table
  • DNG without Compression tag assumed uncompressed
  • Backported 0.15.4 input data checks
  • Support for CMake builds
  • Better EXIF parsing:
  • ISO values for new Nikon cameras (D4, D800)
  • black level extraction for Nikon D5300
  • correct Olympus color data conversion
  • Sony cameras model name is set by SonyModelID EXIF tag
  • Sony ARW2: black level and color matrix extracted from EXIF data
  • Samsung: black level and color matrix extracted from EXIF; Camera multipliers are now extracted correctly even if black is not 0

New in LibRaw 0.16 Beta 1 (Nov 18, 2013)

  • Better Visual Studio compatibility (esp. old versions)
  • Cmake build: added ws2_32 library for MinGW builds
  • New cameras supported:
  • Leica C, X VARIO
  • Nikon D5300, D610, Df, 1 AW1
  • Nokia Lumia 1020, 1520
  • Olympus STYLUS1
  • Pentax K-3
  • Sony RX10, A3000 (ILCE-3000),
  • Color data updated for cameras:
  • Canon S120
  • Nikon P7800, 1 J3
  • Olympus E-M1
  • Corrected image visible area sizes
  • Canon G16
  • Sigma pre-Merrill cameras: small and medium-sized RAWs
  • Better EXIF parsing:
  • ISO values for new Nikon cameras (D4, D800)
  • black level extraction for Nikon D5300
  • correct Olympus color data conversion

New in LibRaw 0.16 Alpha 3 (Nov 9, 2013)

  • Sony RX1R and RX100M2 color data updated.
  • Sony cameras model name is set by SonyModelID EXIF tag
  • Sony ARW2: black level and color matrix extracted from EXIF data
  • Samsung: black level and color matrix extracted from EXIF;
  • Camera multipliers are now extracted correctly even if black is not 0
  • Better source compatibility with Mac OS X compilation
  • Better source compatibility with Win32 compilation
  • DNG without Compression tag assumed uncompressed
  • API/ABI changed, so all code using LibRaw should be recompiled.
  • Support for new cameras:
  • Sony A7, A7R
  • Panasonic GM1
  • Better X3F-tools based Foveon support:
  • new Foveon metadata parser based on X3F-tools. So, if LibRaw compiled
  • without demosaic-pack-GPL2, then no dcraw Foveon code used.
  • Support for Medium resolution RAWs from DPx Merrill and SD1 cameras.
  • RAW data extracted as is (4800x1600 pixels), aspect ratio is set to
  • 0.5, so these RAWs are processed to full-size 4800x3200 RGB.
  • Support for Foveon thumbnail extraction. Only JPEG and bitmap
  • thumbnails extracted, but 'foveon' (RAW) thumbnails are really not used
  • in production cameras.
  • New imgdata.params.force_foveon_x3f flag
  • Forces use of x3f-tools based code for Foveon processing if LibRaw
  • compiled with demosaic-pack-GPL2 (and does nothing if LibRaw compiled
  • without this pack).
  • New flag -disadcf added to dcraw_emu sample to use this flag.
  • LibRaw do not calls exit() on broken Foveon files.

New in LibRaw 0.16 Alpha 1 (Sep 23, 2013)

  • Support for new cameras:
  • Baumer TXG14
  • Blackmagic Cinema
  • Canon EOS 70D, C500
  • Fujifilm X-M1
  • Nikon D5200
  • Olympus E-P5,E-M1
  • OmniVision OV5647 (Raspberry Pi)
  • Panasonic LF1, GX7, GF6
  • Richon GR
  • Samsung NX300, NX1100, NX2000
  • Sony RX100II, RX1R, NEX-3N
  • Removed faster lossless jpeg decoder ported from RawSpeed library some years ago. Build LibRaw with RawSpeed to get fast decoding.
  • Fixed decoding error for some Canon sRAW files.
  • Disabled RawSpeed's bad pixel processing if RawSpeed used.
  • EOS M and EOS 70D added to unique Canon ID table
  • Canon EOS model name normalized by unique ID table
  • Backported 0.15.4 input data checks
  • Support for CMake builds
  • Updated RawSpeed supported camera list
  • Internals changed, so all code using LibRaw should be recompiled.
  • Support for Foveon sensor based on X3F code by Roland Karlsson:
  • The code uses BSD-like license, so included in main LibRaw code. No 'foveon intepolation', so no way to get good colors from old Sigma cameras (SD9, SD14, Polaroid x530). For modern Foveon cameras one may try to create ICC profile (not supplied). Old foveon_*_load_raw (from dcraw) code is used if compiled with LIBRAW_DEMOSAIC_PACK_GPL2
  • API Changes:
  • New parameters in imgdata.params:
  • imgdata.params.no_interpolation - disables interpolation step in LibRaw::dcraw_process() call.
  • imgdata.params.no_auto_scale - disables call to scale_colors() in LibRaw::dcraw_process() call.
  • imgdata.params.sraw_ycc - disables Canon sRAW YCbCr to RGB conversion in LibRaw::unpack() call (use for RAW analyzers
  • New Fuji X-Trans handling:
  • imgdata.iparams.filters value is now 9 for Fuji X-Trans (instead of 2)
  • imgdata.iparams.xtrans[6][6] matrix contains row/col to color mapping for Fuji X-Trans sensor.
  • LibRaw::setCancelFlag() - use for fast decoder termination
  • LibRaw_abstract_datastream::make_byte_buffer() call is not needed more.
  • New demosaic code: DHT Demosaic by Anton Petrusevich Set params.user_qual=11 to use.
  • New demosaic code: Modified AHD Demosaic by Anton Petrusevich Set params.user_qual=12 to use.
  • New C-API call libraw_COLOR(libraw_data_t *t, int row,int col) (so LibRaw::COLOR(row,col) exposed to C-API users)

New in LibRaw 0.15.4 (Sep 5, 2013)

  • Additional checks to data to prevent broken file opening
  • New camera/format support:
  • Richon GR
  • Panasonic LF1
  • Canon EOS 70D
  • Sony RX100II, RX1R
  • Olympus E-P5

New in LibRaw 0.15.3 (Sep 5, 2013)

  • Fixed decoding error for some Canon sRAW files.
  • New camera/format support:
  • OmniVision OV5647 (Raspberry Pi)
  • Nikon D5200
  • Panasonic DMC-GF6

New in LibRaw 0.15.3 (Jul 5, 2013)

  • Fixed decoding error for some Canon sRAW files.
  • New camera/format support:
  • OmniVision OV5647 (Raspberry Pi)
  • Nikon D5200
  • Panasonic DMC-GF6

New in LibRaw 0.15.2 (May 27, 2013)

  • Fixed possible double-free() on error recovery on damaged full-color (Foveon, sRAW) files.
  • wchar_t* file interface disabled for MinGW32 compilation

New in LibRaw 0.15.1 (May 25, 2013)

  • fixed wrong data maximum calculation for Panasonic files
  • check for possible buffer overrun in exposure correction code

New in LibRaw 0.15.0 (May 23, 2013)

  • NEW CAMERA/FORMAT SUPPORT:
  • Adobe DNG: fast Load DNG (LightRoom 4.x), support for lossy-compressed DNG (LR 4.x, requires libjpeg 6+)
  • Canon: G1 X, SX220 HS, EOS 5D Mark III, EOS 650D, EOS 1D-X, 100D (Rebel SL1), 700D (Rebel T5i), 6D, EOS M, G15, S110, SX50
  • Casio: EX-ZR100,EX-Z8
  • Fujifilm: X-E1, X20, X100S, SL1000, HS50EXR, F800EXR, XF1, X-S1, HS30EXR, X1-Pro
  • Leica: D-LUX6 and V-LUX4
  • Nikon: D4, D3200, D800, D800E, 1 J2, 1 V2, D600, 1 J3, 1 S1, Coolpix A, Coolpix P330, Coolpix P7700, D7100
  • Olympus: E-M5, XZ-2, XZ-10, E-PL5, E-PM2
  • Panasonic: G5, G6, DMC-GF5, FZ200, GH3, LX7
  • Pentax: MX-1, K-5 II, K-5 IIs, K-30, Q10
  • Samsung: EX2F, NX20, NX210, support for the new firmware for NX100
  • Sigma: SD15, SD1, SD1 Merill, DP1, DP1S, DP1X, DP2, DP2S, DP2X (only with Demosaic-pack-GPL2)
  • Sony: SLT-A58, RX-1, SLT-A99, NEX-5R, NEX-6, NEX-F3, SLT-A37, SLT-A57
  • Multishot files: Imacon Ixpress 39Mpix
  • API CHANGES:
  • dcraw_process() can now be called several times with different parameters without re-opening and unpacking the file for second and consecutive calls to dcraw_process
  • Support for compiling with RawSpeed library, http://rawstudio.org/blog/?p=800 details are in README.RawSpeed
  • Suppression of banding
  • Deleted (nobody uses those):
  • LibRaw::dcraw_document_mode_processing (and respective C-API)
  • imgdata.color.color_flags data field
  • LibRaw::unpack() now decodes data into different buffers, the buffer depends on the raw data type:
  • imgdata.rawdata.raw_image - 1 color component per pixel, for b/w and Bayer type sensors
  • imgdata.rawdata.color3_image - 3 color components per pixel, sRAW/mRAW files, RawSpeed decoding
  • imgdata.rawdata.color4_image - 4 components per pixel, the 4th component can be void
  • New API calls:
  • recycle_datastream(),
  • open_file(wchar_t*) (Win32)

New in LibRaw 0.14.8 (May 22, 2013)

  • Fixes known incompatibilities with gcc 4.8 compiler

New in LibRaw 0.15.0 Beta 4 (Feb 15, 2013)

  • Fixed possible buffer overrun when RawSpeed library used
  • Added new C++ API Call LibRaw::recycle_datastream(), C API call libraw_recycle_datastream() and new errorcode LIBRAW_INPUT_CLOSED for unpack/unpack_thumb() calls. These new API calls may be used to free file handle (and associated file buffer) if your application will not call unpack*() on this LibRaw handle, so file may be unlocked.
  • Support for Imacon Ixpress 39Mpix Multi-shot files

New in LibRaw 0.15.0 Beta 3 (Dec 27, 2012)

  • Adds support for 11 new cameras:
  • Canon 6D and EOS M
  • Casio EX-ZR100
  • Fujifilm X-E1
  • Leica D-LUX6 and V-LUX4
  • Nikon P7700
  • Olympus XZ-2
  • Panasonic G5
  • Samsung EX2F
  • Sony RX-1

New in LibRaw 0.15.0 Beta 2 (Dec 4, 2012)

  • Preliminary support for new cameras:
  • Canon: G15, S110, SX50
  • Fujifilm: F800EXR, XF1
  • Nikon: 1 J2, 1 V2, D600
  • Olympus: E-PL5, E-PM2
  • Panasonic: FZ200, GH3, LX7
  • Pentax: K-5 II, K-5 IIs, K-30, Q10
  • Sony: SLT-A99, NEX-5R, NEX-6
  • New warning flag LIBRAW_WARN_RAWSPEED_PROCESSED:
  • not really a warning, but information that RawSpeed library was used for image decoding.
  • imgdata.rawdata.color_image is now split to two pointers:
  • ushort (*)[3] color3_image for 3-component RAW images (color DNGs, sRAW)
  • ushort (*)[4] color4_image for 4-component color raws (Sinar 4shot, Kodak RAWs and so on).
  • LibRaw::subtract_black() return type is now integer. Function returns errorcode according to libraw error conversion.
  • New processing stage LIBRAW_PROGRESS_RAW2_IMAGE (this flag is set by LibRaw::raw2image() call)
  • imgdata.idata.sizes.raw_pitch is now in *bytes* This value should be used for access rows in imgdata.rawdata.*_image buffers.
  • Enabled RawSpeed processing for non-bayer DNGs and sRAW. Note: there is a bug in RawStudio r499, 3-color (linear) uncompressed DNGs are read incorrectly. Filed to RawStudio bugzilla Use RawSpeed/rawspeed.uncompressed-color-dng.patch until this bug is not fixed in main RawSpeed source repository.
  • Removed OpenMP support for linear interpolation because of problems on some compilers.
  • Disabled wchar_t * interface if LibRaw compiled by MinGW because no wchar_t strings in MinGW STL

New in LibRaw 0.15.0 Beta 1 (Oct 15, 2012)

  • Corrected D800E visible area
  • Support for DNGs made from Fuji X-Pro1 RAWs
  • updated RawSpeed's camera list to r479
  • Win32/C-API: libraw_open_wfile/libraw_open_wfile_ex() calls
  • New warning flag LIBRAW_WARN_RAWSPEED_UNSUPPORTED, this bit in
  • process_warnings is set (with LIBRAW_WARN_RAWSPEED_PROBLEM) if
  • RawSpeed's checkSupported() fails.
  • Disabled RawSpeed processing of several RAW formats (incorrectly unpacked)

New in LibRaw 0.15.0 Alpha 4 (Sep 18, 2012)

  • Alpha-quality (i.e. untested) RawSpeed library support (http://rawstudio.org/blog/?p=800) Decoding (LibRaw::unpack()) of supported formats is 1.5-3x times faster.
  • OpenMP speedup for linear interpolation
  • Disabled decoding JPEG (lossy DNG) data from memory buffer for libjpeg version less than 8. Use -DUSE_JPEG8 if your jpeg is v8+
  • hotspots moved to virtual functions
  • is_phaseone_compressed() call
  • PhaseOne RAWs: for user-specified black level(s) black subtraction works as expected.
  • ABI and API changed, all programs using 0.15-Alpha1-3 should be recompiled!

New in LibRaw 0.15.0 Alpha 3 (Sep 5, 2012)

  • ABI changed, all programs using 0.15-Alpha2 should be recompiled
  • Backported improvements from LibRaw 0.14:
  • fast LJPEG decoder
  • OpenMP support for PPG and AHD interpolations and wavelet denoising
  • OpenMP support in raw2image_ex() call
  • LCMS1 compatibility patches
  • Better way to set compiler flags in Makefile.msvc

New in LibRaw 0.15.0 Alpha 2 (Aug 30, 2012)

  • subtract_black() works again
  • cropping works again (note: for Fuji SuperCCD files cropping is approximate)
  • color_data.channel_maximum[4] is replaced to color_data.data_maximum (max value from all image color channels). This value is calculated on subtract_black() call.
  • PhaseOne (compressed RAW): black level subtracted on postprocessing stage (or in raw2image() call). It requires addtional memory allocation.
  • Fixed minor problem in lossy DNG tone curve generation
  • Imported dcraw 1.452:
  • Changed color data for Canon 1D-X camera
  • New camera support: Samsung NX-1000, Sony DSC-RX100

New in LibRaw 0.15.0 Alpha 1 (Jul 4, 2012)

  • API Changes:
  • Removed, because as it seems no one uses it:
  • LibRaw::dcraw_document_mode_processing (and C-API call)
  • Data field imgdata.color.color_flags
  • Removed, because internal logic changed:
  • LIBRAW_DECODER_4COMPONENTS
  • Now unpack() unpacks RAW data to only two formats possible:
  • imgdata.rawdata.raw_image[] - flat buffer with bayer data (one value per pixel), including masked pixels.
  • imgdata.rawdata.color_image - 4-components array (similar to imgdata.image) with 3 or 4 components per pixel and without masked pixels.
  • Changed:
  • imgdata.color.cblack[4] instead of [8] - for now cblack[4..7] (count of pixels used for black level calculation) is not used, so removed
  • LibRaw::fc() renamed to LibRaw::fcol() to maintain compatibility with dcraw internals
  • Temporary not working properly or disabled:
  • imgdata.params.cropbox[] - cropping does not work as of now, so it is disabled
  • LibRaw::subtract_black() - doesn't works properly, so not used in LibRaw internals, to be restored in next Alpha
  • Added:
  • WF debanding code (banding suppression): int imgdata.params.wf_debanding - enables debanding float imgdata.params.wf_deband_threshold[4] - set threshold levels for debanding (in pixel values, so usual value is several units)
  • LibRaw::open_wfile(wchar_t *filename) (WIN32 only) - opens RAW filename passed using Windows unicode encoding.
  • imgdata.params.user_cblack[4] - allows to set per-channel black levels
  • User-provided data streams (derived from LibRaw_abstract_datastream) should implement jpeg_src() method to provide data source for JPEG decoder used in lossy DNG processing. See src/libraw_datastream.cpp for sample implementation.
  • Imported dcraw 9.16/1.450, added support for following:
  • Adobe DNG: Fast Load DNG (LightRoom 4.x),lossy-compressed DNG (LR 4.x, you need to compile with -DUSE_JPEG and link with libjpeg 8)
  • Canon: G1 X, SX220 HS, EOS 5D Mark III, EOS 650D, EOS 1D-X
  • Casio: EX-Z8
  • Fujifilm: X-S1, HS30EXR, X1-Pro
  • Nikon: D4, D3200, D800, D800E
  • Olympus: E-M5
  • Panasonic: DMC-GF5
  • Samsung: NX20, NX210, ?>445@6:0 =>2>3> firmware NX100
  • Sigma: SD15,SD1, SD1 Merill, DP1, DP1S, DP1X, DP2, DP2S, DP2X (in LibRaw-demosaic-pack-GPL2)
  • Sony: NEX-F3, SLT-A37, SLT-A57

New in LibRaw 0.14.6 (Apr 5, 2012)

  • Casio EX-Z500 support
  • (possible) I/O exceptions on file open catched in open_datastream
  • Fixed possible read-after-buffer in Sony ARW2 decoder
  • Fixed mingw32 errors when compiling LibRaw_windows_datastream
  • Makefile.msvc: support of OpenMP and LCMS (uncomment to use)
  • Fixed decoding of some Leaf Aptus II files

New in LibRaw 0.14.5 (Apr 5, 2012)

  • Fixed bug (uninitialized variable) in SMAL format decoding.
  • Imported new dcraw 9.12 (1.446): support for Leica V-LUX 3, updated color data for Canon S100, Fujifilm X10, Nikon 1 J1/V1, Panasonic GX1, Samsung NX200, Sony NEX-7

New in LibRaw 0.14.4 (Apr 5, 2012)

  • Fixes to Panasonic/Leica file parser to prevent crash on broken jpegs.
  • Fixes to include order in src/libraw_datastream.cpp to better compile with KDEWIN
  • Floating-point DNGs are rejected on early processing stage.
  • Support for new cameras: Canon S100, Fuji X10, Panasonic GX1, Samsung NX200, Sony NEX-7.

New in LibRaw 0.14.3 (Oct 28, 2011)

  • Bug fixes in black level subtraction code for PhaseOne files
  • New API call LibRaw::get_internal_data_pointer() for developers who need access to libraw_internal_data fields (i.e. Fuji SuperCCD layout).
  • doc/API-overview fixes to reflect 0.14 changes

New in LibRaw 0.14.2 (Oct 19, 2011)

  • Fixed bug in Canon 1D and 1Ds files decoding.
  • New decoder information bit DECODER_HASRAWCURVE

New in LibRaw 0.14.1 (Oct 12, 2011)

  • Imported dcraw 9.11/1.445:
  • Support for new cameras added: Fujifilm F600EXR, Nikon P7100, Olympus E-PL3 and E-PM1, Panasonic DMC-FZ150, Sony NEX-5N, A65 and A77.
  • Updated color data for: Olympus E-P3, Panasonic G3 and GF3, PhaseOne H25, P40 and P65, Sony NEX-C3, NEX-5, NEX-3, A35 and A55.
  • Support for dark frame extraction on Sony cameras.
  • DCB demosaicing: reserving 6 pixels instead of 3 to suppress colored image frame.

New in LibRaw 0.14.0 Beta 1 (Sep 3, 2011)

  • Cosmetic changes to LibRaw_file_datastream interface
  • OpenMP speedup of postprocessing steps (up to 50% for half mode and 4-core machine)

New in LibRaw 0.13.7 (Jul 18, 2011)

  • Changes in cropping code:
  • cropping is now works for Fuji files (instead of crash)
  • bad pixels map and dark frame subtraction is turned off if cropping enabled
  • for technical reasons, coordinates of top-left corner of crop box are rounded to multiple of 4 for Fuji files.
  • ./configure stuff fixes:
  • install static libraries only when --enable-static is set
  • compiled samples are dynamically linked if shared library not disabled.
  • OpenMP enabled for Visual Studio 2008 SP1+, but not for RTM

New in LibRaw 0.14.0 Alpha 2 (Jul 12, 2011)

  • New call LibRaw::free_image(), deallocates imgdata.image buffer. Use this call if current postprocessing results are not needed, but it is to early to call recycle() because dcraw_process() may be called later.
  • New C-API calls libraw_raw2image() - C API for LibRaw::raw2image() libraw_free_image() - C API for LibRaw::free_image() libraw_get_decoder_info() - C API for LibRaw::get_decoder_info()
  • Bugfix: change of params.user_flip after open()/unpack() calls should work.
  • Documentation changed to reflect 0.14 changes.

New in LibRaw 0.13.6 (Jul 4, 2011)

  • Cosmetic cleanup in Libraw_memmgr code
  • Permit OpenMP support on MS VS2008
  • More general mem_image interface:
  • New call get_mem_image_format returns bitmap size and bit depth
  • New call copy_mem_image can copy bitmap into buffer with different color order (RGB/BGR) and line stride
  • dcraw_make_mem_image() uses calls mentioned above
  • see documentation for info on these function parameters.
  • libraw/librawwindows.h implements LibRaw_datastream class based on Windows memory mapped files.Win32/64-only Thanks to Linc Brookes.
  • Fixed parallel make errors in configure/Makefile.am

New in LibRaw 0.13.2 (Mar 16, 2011)

  • Fixed broken camera white balance reading for some Sony cameras.
  • Sony A390 support (colordata from A380).
  • Leica D-LUX 4: fixed typo in camera name in colordata.
  • New -mem option for dcraw_emu: I/O via allocated buffer.
  • Preliminary shared library support via configure/libtool.
  • Added qmake .pro and Visual Studio 2008 sln/vcproj project files.

New in LibRaw 0.13.1 (Feb 15, 2011)

  • dcraw_emu documentation updated
  • ./configure stuff changed for correct linking on some systems
  • FBDD denoising is disabled for full-color images and 4-color bayer data (including forced 4-color via four_color_rgb option)

New in LibRaw 0.13.0 (Feb 7, 2011)

  • New low-level buffering code for Huffman decompression. Canon CR2 files are opened about 1.5x times faster than on LibRaw 0.12, other huffman-comressed files unpacks in 1.2-1.3 times faster.
  • New exposure correction code based on linear-cubic root combination. Correction range is from 0.25 (-2 stops) to 8 (+3 stops)
  • All 0.12.x features, including new cameras support and half-size/green-matching fixes.
  • Changes and additions in demosaic-pack-GPL3 (all imported from RawTherapee):
  • Banding suppression code.
  • High-frequency noise suppression.
  • Green channels local averaging to suppress maze artifacts.
  • OpenMP speed-up in median filters (demosaic pack GPL2)
  • OpenMP speed-up in green equilibration (demosaic pack GPL3)
  • Bug fixes and improvements:
  • Better parsing of unknown command-line params in dcraw_emu sample
  • Brigtness table in ahd_demosaic is calculated in reversed order to prevent possible (very unlikely) multithreaded app problem.
  • Fixed file extension in half_mt.c sample.
  • Fixed incomplete data fields reset in LibRaw::recycle()
  • Patches for ./configure system for better LCMS2 support
  • math.h included before any other includes to make KDE compile with Visual C++ happy
  • Fuji FinePix S5500 size adjusted to ignore (rare?) garbage at top of frame.

New in LibRaw 0.13 Beta 3 (Feb 3, 2011)

  • Fallback to old huffman decoder for Sony files with unspecified data length (Sony A100, may be others too)
  • Fixed incomplete data fields reset in LibRaw::recycle()

New in LibRaw 0.12.4 (Feb 3, 2011)

  • Imported dcraw 9.06/1.440:
  • Added camera support for: Canon S95, Casio EX-Z1080, Panasonic GF2 and GH2, Samsung NX100, Sony A-580
  • Updated color data for: Canon G12, Nikon D3100, D7000 and P7000, Olympus E-5, Pentax K-r and K-5, Samsung NX10 and WB2000

New in LibRaw 0.12.2 (Jan 5, 2011)

  • Patches for ./configure system
  • math.h included before any other includes to make KDE compile with Visual C++ happy
  • Fuji FinePix S5500 size adjusted to ignore (rare?) garbage at top of frame.

New in LibRaw 0.12.1 (Dec 21, 2010)

  • Disabled support of Sigma DPx cameras due to incompatible compression scheme and metadata format.

New in LibRaw 0.12.0 Beta 4 (Dec 10, 2010)

  • Fixed bug in add_masked_borders_to_bitmap() call for cameras with pixels border composed of odd number of pixels.
  • New command line options for unprocessed_raw sample: -B - subtract black level, -M - add masked pixels to bitmap.
  • Foveon-sensor cameras added to supported camera list if compiled with demosaic pack GPL2

New in LibRaw 0.12.0 Beta 3 (Dec 6, 2010)

  • Demosaic packs support in Makefile.dist
  • Foveon support in LibRaw demosaic pack GPL2

New in LibRaw 0.11.3 (Nov 18, 2010)

  • Nikon P7000: color matrix data and black level patch for ISO >=400
  • Support for several industrial cameras based on Sony ICX 625/655 sensor: JAI BB500CL/GE, SVS625CL, ptGrey GRAS-50S5C

New in LibRaw 0.11.2 (Nov 13, 2010)

  • OpenMP is completely disabled under Mac OS X if compiled with -pthread due to well-known MacOS bug.
  • Imported dcraw 9.05 (1.439), support for many cameras added:
  • Canon: G12, SX120, 60D
  • Hasselblad H4D, Nokia X2, Olympus E-5
  • Nikon: D3100, D7000, P7000
  • Panasonic: FZ40, FZ100, LX5
  • Pentax: K-r, K-5, 645D
  • Samsung GX20, WB2000

New in LibRaw 0.11.1 (Nov 11, 2010)

  • Fixed bug in dcraw_emu sample command line processing.

New in LibRaw 0.11.0 (Nov 10, 2010)

  • Processing pipeline has changed: black level is always subtracted on prostprocessing stage or by special subtract_black() call.
  • Cropping on postprocessing stage implemented.
  • New API call for clearing memory allocated by make_mem_image() call.
  • New iostreams based I/O layer, much faster on some systems (esp. Win32 and Linux).
  • Better exception handling code.
  • Secure FILE* I/O calls for Visual Studio 2008/2010.
  • Fixed bug with half_size processing.
  • Disabled OpenMP for wavelet_denoise under Mac OS X
  • Russian documentation re-coded to utf-8 from CP1251.

New in LibRaw 0.11 Beta 7 (Oct 18, 2010)

  • Disabled OpenMP for wavelet_denoise under Mac OS X
  • More Visual C++ 2003 warnings cleaned in libraw/*h files

New in LibRaw 0.11 Beta 6 (Oct 16, 2010)

  • internal/dcraw_fileio.c can be compiled with -DDCRAW_VERBOSE again
  • cosmetic fixes in comments in libraw_datastream.h>

New in LibRaw 0.11 Beta 4 (Oct 9, 2010)

  • Fixed bug in exception handling in OpenMP sections in AHD interpolation code.
  • LibRaw_datastreams are now C++ iostreams based instead of old plain FILE* calls. LibRaw::open_file() in multithreaded programs is WAY faster on many OSes (Linux, Windows, MacOSX) because of no extra locks.
  • all client code should be recompiled due to internals change.

New in LibRaw 0.11 Beta 1 (Sep 6, 2010)

  • It is now possible to crop output image on postprocessing stage (dcraw_process). Coordinates and size of the output box are set via imgdata.params.cropbox[4] parameter. Look into LibRaw documentation for more details.
  • Processing pipeline has changed: the black level is subtracted from data on postprocessing stage either automatically (on dcraw_process() stage) or by special LibRaw API call:
  • New ./configure script. Use ./configure -h for usage details.
  • New API cals static LibRaw::dcraw_clear_mem() (C++ API) and libraw_dcraw_clear_mem(..) (C API). This calls are used to free memory, allocated by dcraw_make_mem_image() and dcraw_make_mem_thumb() instead of free() call.
  • Many minor changes and bugfixes:
  • all client code should be recompiled due to structures size change

New in LibRaw 0.10.00 (Sep 6, 2010)

  • Imported dcraw versions 9.01-9.04 (1.434-1.438):
  • Separate black levels for each color channel.
  • Changes in tiff metadata parser.
  • New cameras: Canon SX20 and 550D, Nikon D3s, Olympus E-P2, Panasonic GF1, G2 and G10, Samsung EX1, NX-10 and WB550, Sony A450, NEX-3 and NEX-5, Casio EX-Z1050, Fuji HS10/HS11, Kodak Z981, Phase One P65.
  • Color data changed for some cameras
  • Fixed file descriptor leak in dark frame subtraction processing
  • Some patches by Johannes Hanika (darktable author):
  • OpenMP speedup for PPG-interpolation
  • green_matching - suppress of 'color maze' on cameras with different green channels. This option is controlled by the field with the respective name in imgdata.params
  • Small patch in Sony ARW2 unpacking code to make valgrind happy
  • New command-line switch -h in mem_image sample (half_size support)
  • all client code should be recompiled due to structures size change
  • LibRaw::free() is now public instead of private.

New in LibRaw 0.9.1 (May 15, 2010)

  • This release fixes a bug in 8-bit RAW unpacking code.

New in LibRaw 0.9.0 (Apr 27, 2010)

  • Finally fixed inconsistency in Fuji files processing
  • New COLOR(row,col) call to get bayer color index in image[] array
  • Old FC() call is deprecated and will be removed in future releases
  • unprocessed_raw sample switched to COLOR() call

New in LibRaw 0.9.0 Beta 5 (Apr 22, 2010)

  • Finally fixed inconsistency in Fuji files processing
  • New COLOR(row,col) call to get bayer color index in image[] array
  • Old FC() call is deprecated and will be removed in future releases
  • unprocessed_raw sample switched to COLOR() call

New in LibRaw 0.8.5 (Dec 30, 2009)

  • Fixed bug in simple_dcraw sample parameters processing
  • Imported dcraw 8.99 (1.432)

New in LibRaw 0.8.4 (Nov 23, 2009)

  • Fixed a bug in uncompressed PhaseOne files processing

New in LibRaw 0.8.3 (Oct 25, 2009)

  • Imported dcraw 8.98/1.431: new RAW formats supported: Canon 7D, Panasonic GF1, Sony A850 and A380, Casio Z850, Nikon D300s
  • Changes in libraw_datastream.h to make compilers more happy

New in LibRaw 0.8.2 (Oct 16, 2009)

  • Bug fixed in Hasselblad .3FR processing code
  • Imported dcraw 1.428: fixes for incorrect width set for Nikon D3000
  • Enum LibRaw_thumbnail_formats (LIBRAW_IMAGE_*) values changed to
  • match values in enum LibRaw_image_formats (LIBRAW_THUMBNAIL_*).
  • You need to recompile all sources using these constants.

New in LibRaw 0.8.1 (Aug 31, 2009)

  • Imported dcraw 8.97/1.427: new cameras: Canon A470, Canon G11 (without color data), Nikon D3000, Olympus E-P1, Panasonic DMC-FZ35/FZ38
  • Fixes for Microsoft Visual C++ 6.0 compatibility
  • C-API libraw_dcraw_make_mem_thumb() call finally exported in API

New in LibRaw 0.8.0 (Aug 27, 2009)

  • Large RAW files (more than 2Gb) supported.
  • Dcraw 8.86/1.426 imported: 23 new cameras; new color data for many cameras; new unpacking code for several formats.
  • LibRaw API changes: new gamma curve parameters.
  • Some C-API calls are implemented (was missed, but documented).
  • Many minor compatibility/cosmetic changes.

New in LibRaw 0.7.2 (Apr 23, 2009)

  • More accurate types conversion in libraw_datastream.h
  • New postprocessing parameter auto_bright_thr: set portion of clipped pixels for auto brightening code (instead of dcraw-derived hardcoded 1%)
  • -U option for dcraw_emu sample sets auto_bright_thr parameter
  • All client code should be recompiled due to structures size change

New in LibRaw 0.7.1 (Mar 23, 2009)

  • Fixed small mistype in OpenMP support code.
  • MinGW is officially supported, precompiled binaries also avaliable.
  • dcraw source is included in distribution.

New in LibRaw 0.6.13 (Feb 14, 2009)

  • Imported dcraw 8.91/1.419: changes in RIFF files parser. Also, some bugfixes in 4channels sample.

New in LibRaw 0.7.0 Beta 1 (Feb 10, 2009)

  • New sample application 4channels has been added to LibRaw. This program splits RAW file into 4 separate grayscale TIIFs, one for each color channel.
  • Command line options:
  • -s N selects N-th image from RAW with multiple images (such as Fuji SuperCCD files)
  • -g turns on gamma correction (gamma 2.2)
  • -A turns on values autoscaling by auto-calculated integer factor
  • -B turn off black subtraction
  • -N no RAW curve
  • There are no changes in LibRaw library itself.

New in LibRaw 0.6.12 (Feb 9, 2009)

  • Imported dcraw 8.91/1.418 with preliminary Hasselblad V96C digital back support.

New in LibRaw 0.7.0 Alpha 5 (Jan 30, 2009)

  • New data input framework created. It is possibly now to easy implement own data input interface for LibRaw (e.g. for reading RAW data from network data stream)
  • All old programs are compatible with new LibRaw at source code level
  • LibRaw can read RAW data from memory buffer via new LibRaw::open_buffer() API call (implemented on top of new input framework). This call used in sample application dcraw_emu and simple_dcraw (if -B command-line switch is given) to test new API.
  • Error handling callback functions now can be called with NULL filename passed (if underlying data stream object does not know file name). So, client error handling callbacks should work with NULL filename.
  • Imported dcraw 8.90/1.417:
  • Support for loading White Balance data from Sony ARW files edited with Sony IDC software.

New in LibRaw 0.6.11 (Jan 30, 2009)

  • Fixed serious bug in metadata loading from external JPEG file. All cameras with 'Diag RAW hack' are affected.

New in LibRaw 0.7.0 Alpha 3 (Jan 15, 2009)

  • Black mask extraction supported for all files with bayer data (one component per pixel). Black mask data not available for multi-component data (Foveon, Canon sRAW, Sinar 4-shot, Kodak YCC/YRGB).
  • Black level subtraction can be turned off for all bayer cameras (added support for PhaseOne backs).
  • Fujifilm camera processing model changed:
  • RAW data is extracted without 45-degree rotation
  • dcraw-compatible rotation is performed on postprocessing stage
  • it is possible to rotate RAW data without postprocessing by LibRaw::rotate_fuji_raw() call.
  • New filtering mode setting: LIBRAW_FILTERING_NOPOSTPROCESS This bits turns off RAW tone curve processing based on tone curve read from RAW metadata. This mode supported only for PhaseOne backs now (to be supported on all relevant cameras in nearest future releases)
  • Black level data (got from RAW data) are stored for PhaseOne backs.
  • Black level subtraction bug (derived from dcraw) fixed for PhaseOne files.
  • Fixed processing of -s parameter for dcraw_emu sample
  • Parameter -s N (select shot number) added to unprocessed_raw sample.
  • Imported dcraw 8.90/1.414:
  • changes in QuickTake 100 metadata processing
  • changes in external jpeg processing code
  • Samsung S85 support
  • All client code should be recompiled

New in LibRaw 0.6.8 (Jan 15, 2009)

  • Imported dcraw 8.90/1.414:
  • Changes in QuickTake 100 files processing

New in LibRaw 0.6.7 (Jan 12, 2009)

  • Imported dcraw 8.90/1.413
  • Added support for Samsung S85
  • Changes in external jpeg metadata processing

New in LibRaw 0.6.6 (Jan 8, 2009)

  • Imported dcraw 8.89/1.411
  • Changes in Panasonic FZ50 files processing

New in LibRaw 0.7.0 Alpha 0 (Jan 6, 2009)

  • It is possible to turn off RAW data filtration (black level subtraction, zero pixels averaging):
  • Supported on all cameras except Foveon and Phase One
  • Filtraction controlled by new parameter "filtering_mode"
  • It is possible to expand API by filtering procedures built for specific camera model.
  • Black border (masked pixels) extraction:
  • API (data structures) for storing black mask.
  • Black mask extraction supported only for limited list of data formats: Canon .CRW, .CR2 (with exception of sRAW),A600, A5; Adobe DNG (both converted RAW and native DNG); Nikon NEF (compressed only).

New in LibRaw 0.6.5 (Jan 6, 2009)

  • Imported dcraw 8.89/1.410 .
  • Fixes in Hasselblad .fff files unpacking.
  • Fixes in Imacon files unpacking.

New in LibRaw 0.6.3 (Dec 12, 2008)

  • Imported updated dcraw 8.89 (RCS id 1.409 from 2008-12-11)
  • Nikon .NEF unpacking code slightly changed

New in LibRaw 0.6.2 (Dec 5, 2008)

  • Imported dcraw 8.89:
  • Support for new cameras: Canon G10 and 5D Mark II, Leaf AFi 7, Leica D-LUX4, Panasonic FX150 and G1, Fujifilm IS Pro
  • Changed color data for some cameras: Canon 50D, Nikon D90 and P6000, Panasonic LX3 and FZ28, Sony A900.
  • Fixed bug in Panasonic .RW2 files processing (affects only thread-safe version)

New in LibRaw 0.6.1 (Sep 26, 2008)

  • Added new data field float LibRaw::imgdata.color.cam_xyz[4][3]. This field contains constant table (different for each camera) for Camera RGB->XYZ conversion.
  • All client code should be recompiled

New in LibRaw 0.6.0 (Sep 23, 2008)

  • dcraw 8.88 imported
  • new cameras (Canon 50D, Sony A900, Nikon D90 & P6000, Panasonic LX3 FZ28). Only A900 and D90 has ready color conversion tables, RAWS from other 4 cameras may produce slightly wrong colors.
  • new method of black point subtraction for Canon cameras, preliminary banding supression.
  • Stack memory usage lowered (some thread data moved to dynamic memo ry)
  • Some patches for MSVC compatibility.

New in LibRaw 0.6.0 Beta 1 (Sep 16, 2008)

  • Calls added: dcraw_make_mem_image() and dcraw_make_mem_thumb(). These calls are used for make 3-component RGB bitmap (rotated and so on) for later use in user application.
  • Added gamma-corrected 16-bit output.
  • Added input/output ICC profiles via LCMS library.
  • Added bad pixels map support (similar to dcraw)
  • Added dark frame subtraction (similar to dcraw)
  • samples/dcraw_emu supporrs icc profiles, bad pixels map and dark frame subtracton.
  • New processing stages (in progress_flags): LIBRAW_PROGRESS_BAD_PIXELS LIBRAW_PROGRESS_DARK_FRAME
  • Bug in adjust_sizes_info_only() fixed
  • Supported camera list calls: cameraList()/cameraCount()
  • LibRaw version info calls: version(), versionNumber(), LIBRAW_CHECK_VERSION().
  • Callback functions interface changes: calling application may supply pointer to private callback data section. If so, callbacks will be called with this pointer passed.
  • Added callback calls for progress indication and fast processing termination.
  • OpenMP support on Unix (gcc) systems. Up to 30% speedup on 2-core machines.

New in LibRaw 0.5.4 (Aug 29, 2008)

  • Imported support for six new cameras from latest dcraw 8.87. Cameras are: Canon 1000D, A720, SD300; Nikon D700, Olympus E-520,Kodak C603.
  • Mmaped I/O changed back to buffered FILE I/O. Mmap() uses more memory without significant performance advantages.
  • Licensing changed to 'GNU GPL v2 or later' (from 'GNU GPL v3 or later').