LibRaw 0.18 released
LibRaw 0.18 released and available on download page and in Github repository.
Changes (relative to 0.17)
Licensing changes:
- there is no 'LibRaw Software License 27032010' licensing anymore (and all signed agreements have expired)
- LibRaw now dual-licensed: LGPL 2.1 or CDDL 1.0
- Apple: iPad Pro, iPhone SE, iPhone 6s, iPhone 6 plus, iPhone 7, iPhone 7 plus
- BlackMagic Micro Cinema Camera, URSA, URSA Mini
- Canon PowerShot G5 X, PowerShot G7 X Mark II, PowerShot G9 X, IXUS 160 (CHDK hack), EOS 5D Mark IV, EOS 80D, EOS 1300D, EOS M10, EOS M5, EOS-1D X Mark II
- Casio EX-ZR4000/5000
- DXO One,
- FujiFilm X-Pro2, X70, X-E2S, X-T2
- Gione E7
- GITUP GIT2
- Google Pixel,Pixel XL
- Hasselblad X1D, True Zoom
- HTC MyTouch 4G, One (A9), One (M9), 10
- Huawei P9
- Leica M (Typ 262), M-D (Typ 262), S (Typ 007), SL (Typ 601), X-U (Typ 113), TL
- LG G3, G4
- Meizy MX4
- Nikon D5, D500, D3400
- Olympus E-PL8, E-M10 Mark II, Pen F, SH-3, E-M1-II
- Panasonic DMC-G8/80/81/85, DMC-GX80/85, DMC-TZ80/81/85/ZS60, DMC-TZ100/101/ZS100,DMC-LX9/10/15, FZ2000/FZ2500
- Pentax K-1, K-3 II, K-70
- PhaseOne IQ3 100MP
- RaspberryPi Camera, Camera V2
- Ricoh GR II
- Samsung Galaxy S7, S7 Edge
- Sigma sd Quattro
- Sony A7S II, ILCA-68 (A68),ILCE-6300,DSC-RX1R II,DSC-RX10III, DSC-RX100V,ILCA-99M2 (A99-II), a6500, IMX214, IMX219, IMX230, IMX298-mipi 16mp, IMX219-mipi 8mp, Xperia L
- PtGrey GRAS-50S5C
- YUNEEC CGO4
- Xiaomi MI3, RedMi Note3 Pro
- new data fields:
imgdata.rawdata.float_image - bayer float data
imgdata.rawdata.float3_image - 3-component float data
imgdata.rawdata.float4_image - 4-component float data
imgdata.color.fmaximum - float data maximum (calculated from real data, rounded to 1.0 if below 1.0) - new raw processing flag
LIBRAW_PROCESSING_CONVERTFLOAT_TO_INT - converts float data to 16-bit integer immediately after decoding with default parameters - new API Calls:
int LibRaw::is_floating_point() returns non-zero if RAW file contains floating point data
int LibRaw::have_fpdata() returns non-zero if rawdata.float*_image is not null (so FP data has been unpacked but not converted to integrer, see below).
LibRaw::convertFloatToInt(float dmin=4096.f, float dmax=32767.f, float dtarget = 16383.f) converts float/float3/float4_image to raw_image/color3/color4_image with or without scaling:
- if both real data maximum and metadata maximum are within the range ( >= dmin && <=dmax), float data is just converted to integer
- if data is out of the range given above, values are scaled so real data maximum becomes dtarget
- if data was rescaled (normalized), scale multiplier is stored in imgdata.color.fnorm
- LibRaw can be built with Adobe DNG SDK support to decode exotic DNG formats (e.g. 8 bit). See README.DNGSDK.txt for details
- New API calls
unsigned LibRaw::capabilities and C-API libraw_capabilities() allows developers to determine LibRaw compile flags at runtime.
Returns ORed bit fields:
LIBRAW_CAPS_RAWSPEED - LibRaw was compiled with RawSpeed Support
LIBRAW_CAPS_DNGSDK - LibRaw was compiled with Adobe DNG SDK
LIBRAW_CAPS_DEMOSAICSGPL2, LIBRAW_CAPS_DEMOSAICSGPL3 - LibRaw was compiled with demosaic packs (GPL2/GPL3) - More metadata parsed:
- White balance coefficients stored in the raw file are extracted into:
int imgdata.color.WBCoeffs[256][4] - array indexed by EXIF lightsource type for example, WBCoeffs[21][..] contains coefficients for D65 lightsource
float imgdata.color.WBCT_Coeffs[64][5] contains white balance data specified for given color temperature: WBCT_Coeffs[i][0] contains temperature value, and [1]..[4] are WB coefficients. - DNG analog balance, per-channel black/white level, and forward matrix
- vendor specific metadata stored in vendor-specific data structures
- White balance coefficients stored in the raw file are extracted into:
- new C-API calls:
void libraw_set_user_mul(libraw_data_t *lr,int index, float val);
void libraw_set_ca_correction(libraw_data_t *lr,int ca_correc, float ca_red, float ca_blue);
void libraw_set_cfalinenoise(libraw_data_t *lr,int cfaline, float linenoise);
void libraw_set_wf_debanding(libraw_data_t *lr, int wf_debanding, float wfd0, float wfd1, float wfd2, float wfd3);
void libraw_set_interpolation_passes(libraw_data_t *lr,int passes); - Existing API changes:
imgdata.params fields (all very specific purpose): sony_arw2_options, sraw_ycc, and params.x3f_flags replaced with single bit-field raw_processing_options See LIBRAW_PROCESSING_* bits in documentation. - zlib library is optional
Use -DUSE_ZLIB to compile with zlib (to provide deflate DNG support) - libjpeg version: jpeg_mem_src() is mandatory, so use libjpeg-turbo or libjpeg 8+
- Fixes in vng_intepolate to make modern compilers happy
- Fixed bug in Sony SR2 files black level
- DNG files with BlackLevel both in vendor makernotes and BlackLevel: BlackLevel tag always takes precedence
- strlen replaced with strnlen in most cases, added local version of strnlen
- ChannelBlackLevel added to canon makernotes
- unpack_thumb() data size/offset check against file size
Recent comments