These packages are susceptible to bugs when confronted with non-ASCII
characters.
See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94182.
It takes some time to analyze and fix these individually, therefore they
are only marked as "needs work".
Changes:
* CRW/metadata loop prevention code is rolled back due to ABI incompatibility. To enable, use -DLIBRAW_METADATA_LOOP_PREVENTION=1 compile flag for LibRaw and ALL APPS.
* Fixed possible buffer underflow
2019-07-02 Alex Tutubalin <lexa@lexa.ru>
* Several fixes inspired by OSS-Fuzz
* LibRaw 0.19.3
* Note: ABI slightly changed, new variable added at end of class LibRaw
Generally, all old code should run w/o recompile, but you're warned...
2018-12-24 Alex Tutubalin <lexa@lexa.ru>
* Fixed possible buffer overrun at Fuji makernotes parser
* Fixed possible write to NULL pointer at raw2image/raw2image_ex calls.
Details:
a) Three different CVE numbers was assigned for single problem:
CVE-2018-20363, CVE-2018-20364, CVE-2018-20365
b) The POCs exploits inconsistency in Sinar-4Shot files handling.
LibRaw 0.19 does not support this files format, so it is not
subject of exactly same problem
c) However, additional checks for bayer raw data presence are
backported from LibRaw-master (development) branch.
* LibRaw 0.19.2
2018-11-22 Alex Tutubalin <lexa@lexa.ru>
* Finally: got Sinar 4shot sample, works fine now
* OpenMP critical sections for malloc/free; extra #ifdefs removed; bin/dcraw_dist could be built again using Makefile.devel
* additional checks in parse_phase_one()
* more checks on file offsets/tag len in parse_minolta
* more checks in parse_ciff
* Mempool check reworked
* Old Leaf (16bit/3color/TIFF) support
* Fix cameraWB->autoWB fallback
* Polaroid x530 channel swap; get metadata pointer for Foveon files
* Fixed Secunia Advisory SA86384
- possible infinite loop in unpacked_load_raw()
- possible infinite loop in parse_rollei()
- possible infinite loop in parse_sinar_ia()
Credits: Laurent Delosieres, Secunia Research at Flexera
* LibRaw 0.19.1-Release
2018-06-28 Alex Tutubalin <lexa@lexa.ru>
* changed wrong fix for Canon D30 white balance
* fixed possible stack overrun while reading zero-sized strings
* fixed possible integer overflow
* LibRaw 0.19.0-Release
2018-06-11 Alex Tutubalin <lexa@lexa.ru>
* Sony uncompressed/untiled DNGs: do not set bits-per-sample to 14 bit
* Do not change tiff_bps for DNG files
* Another possible stack overflow in kodak radc reader
* Secunia Advisory SA83507, credits Kasper Leigh Haabb,
Secunia Research at Flexera"
- parse_qt: possible integer overflow
- reject broken/crafted NOKIARAW files
* LibRaw 0.19-Beta6
2018-05-10 Alex Tutubalin <lexa@lexa.ru>
* Put rogue printf's behind #ifdef DCRAW_VERBOSE
* Exceptions was not caught in x3f_new_from_file resulting in x3f handle leak
* packed_load_raw(): EOF check on each row
* define LIBRAW_USE_CALLOC_INSTEAD_OF_MALLOC to use ::calloc instead of
::malloc in LibRaw_mem_mgr malloc calls;
Note: realloc is not changed, so only partial fix
* Fixed possible div by zero in EOS D30 WB data parse
* U-suffix for filter-var manipulation consts
* restored static specifier for utf2char() lost in previous bugfix
* Fixed stack overrun in kodak_radc_load_raw
* Secunia Advisory SA83050: possible infinite loop in parse_minolta()
* LibRaw 0.19-Beta5
2018-05-03 Alex Tutubalin <lexa@lexa.ru>
* CVE-2018-10529 fixed: out of bounds read in X3F parser
* CVE-2018-10528 fixed: possible stack overrun in X3F parser
* LibRaw 0.19-Beta4
2018-04-24 Alex Tutubalin <lexa@lexa.ru>
* LibRaw 0.19-Beta3
* fixed lot of bugs reported by ImageMagic/oss-fuzz
* fixed several bugs reported by Secunia team (adv 81800,
Credit: Laurent Delosieres, Secunia Research at Flexera)
2018-03-22 Alex Tutubalin <lexa@lexa.ru>
* LibRaw 0.19-Beta2
* Better handling of broken JPEG thumbnails
* Panasonic GH5S/G9-hires decoder, thanks to Alexey Danilchenko
Note: ABI has changed due to this patch, so shlib version increased
* Fujifilm X-A5/A20 metadata parsing fix
* New error code LIBRAW_TOO_BIG: image data size excess LIBRAW_MAX_ALLOC_MB
* winsock2 included before windows.h to make MinGW happy
2018-02-23 Alex Tutubalin <lexa@lexa.ru>
* LibRaw 0.19-Beta1
* 84 cameras added compared to 0.18 (1014 total):
Apple
iPhone 8(*), iPhone 8 plus, iPhone X
BlackMagic
URSA Mini 4k, URSA Mini 4.6k, URSA Mini Pro 4.6k
Canon CHDK hack
PowerShot A410, A540, D10, ELPH 130 IS, ELPH 160 IS, SD750,
SX100 IS,SX130 IS, SX160 IS, SX510 HS, SX10 IS, IXUS 900Ti
Canon
PowerShot G1 X Mark III, G9 X Mark II, EOS 6D Mark II, EOS 77D,
EOS 200D, EOS 800D, EOS M6, EOS M100
Casio EX-ZR4100/5100
DJI
Phantom4 Pro/Pro+, Zenmuse X5, Zenmuse X5R
FujiFilm
S6500fd, GFX 50S, X100f, X-A3, X-A5, X-A10, X-A20, X-E3, X-H1, X-T20
GITUP GIT2P
Hasselblad
H6D-100c, A6D-100c
Huawei
P9 (EVA-L09/AL00), Honor6a, Honor9, Mate10 (BLA-L29)
Leica
CL, M10, TL2
LG
V20 (F800K), VS995,
Nikon
D850, D5600, D7500, Coolpix B700
Olympus
E-PL9, E-M10 Mark III, TG-5
OnePlus
One, A3303, A5000
Panasonic
DMC-FZ45, DMC-FZ72, DC-FZ80/82, DC-G9 (std. res mode only), DC-GF10/GF90,
DC-GH5, DC-GX9, DC-GX800/850/GF9, DMC-LX1, DC-ZS70 (DC-TZ90/91/92, DC-T93),
DC-TZ100/101/ZS100, DC-TZ200/ZS200
PARROT
Bebop 2, Bebop Drone
Pentax KP
PhaseOne IQ3 100MP Trichromatic
Samsung
Galaxy Nexus, Galaxy S3, S6 (SM-G920F), S7, S7 Edge, S8 (SM-G950U),
Sony
A7R III, A9, DSC-RX0, DSC-RX10IV
Yi M1
YUNEEC
CGO3, CGO3P
Xiaoyi YIAC3 (YI 4k)
Note(*): for mobile phones with DNG format recording, only really tested cameras
are added to supported camera list. Really LibRaw should support any correct DNG.
* No more built-in support for LibRaw demosaic packs (GPL2/GPL3).
We're unable to support this (very old code), so we'll be happy to transfer this
code to some maintainer who wish to work with it.
In LibRaw 0.19 we provide extension API: user-settable callbacks to be called in
code points where demosaic pack code was called.
- int callbacks.pre_identify_cb(void *) => to be called in LibRaw::open_datastream
before call to (standard) identify() function. If this call returns 1, this means
that RAW file is identified and all metadata fields are set, so no need to run
standard identify code.
- void callbacks.post_identify_cb(void*) => called just after identify(), but before
any cleanup code;
- dcraw_process() callbacks are called before dcraw_process phases (name speaks for itself):
pre_subtractblack_cb, pre_scalecolors_cb, pre_preinterpolate_cb, pre_interpolate_cb,
interpolate_bayer_cb, interpolate_xtrans_cb, post_interpolate_cb, pre_converttorgb_cb,
post_converttorgb_cb
All these new callbacks are called with (this) as the only arg.
To continue LibRaw-demosaic-pack-GPLx support one need to subclass LibRaw, set needed
callbacks in (e.g.) constructor code, than these callbacks to be called
* Better DNG parser:
- support for DefaultCrop Origin/Size tags (add LIBRAW_PROCESSING_USE_DNG_DEFAULT_CROP to raw_processing_options to enable)
- better parsing for nested DNG tags (use tag from RAW IFD, fallback to IFD0 if no tag in current IFD)
- DNG PreviewColorspace extracted into dng_levels.preview_colorspace
* Metadata extraction:
- Better extraction of camera measured balance (LIBRAW_WBI_Auto and WBI_Measured),
this not the same as 'as shot' if some preset/manual tune is used.
- Extraction of camera custom balances (LIBRAW_WBI_CustomN)
- Nikon data compression tag extracted into makernotes.nikon.NEFCompression
- Hasselblad BaseISO and Gain extracted into makernotes.hasselblad
- Canon multishot params extracted into makernotes.canon.multishot
- lot of other vendor-specific makernotes data (see data structures definitions for details).
* New LibRaw::open_bayer call allows to pass sensor dump w/o metadata directly to LibRaw:
virtual int open_bayer(unsigned char *data, unsigned datalen,
ushort _raw_width, ushort _raw_height, ushort _left_margin, ushort _top_margin,
ushort _right_margin, ushort _bottom_margin,
unsigned char procflags, unsigned char bayer_pattern, unsigned unused_bits, unsigned otherflags,
unsigned black_level);
Parameters:
data, datalen - buffer passed
width/height/margins - speaks for itself
procflags:
for 10-bit format:
1: "4 pixels in 5 bytes" packing is used
0: "6 pixels in 8 bytes" packing is used
for 16-bit format:
1: Big-endian data
bayer_pattern: one of LIBRAW_OPENBAYER_RGGB,LIBRAW_OPENBAYER_BGGR,
LIBRAW_OPENBAYER_GRBG,LIBRAW_OPENBAYER_GBRG
unused_bits: count of upper zero bits
otherflags:
Bit 1 - filter (average neighbors) for pixels with values of zero
Bits 2-4 - the orientation of the image (0=do not rotate, 3=180, 5=90CCW, 6=90CW)
black_level: file black level (it also may be specified via imgdata.params)
see samples/openbayer_sample.cpp for usage sample (note, this sample is 'sample only', suited for
Kodak KAI-0340 sensor, you'll need change open_bayer() params for your data).
* Color data added/updated/fixed for many cameras
* Correct data maximum for Fuji X-* cameras
* Thumbnail processing:
- JPEG thumbnails: if compiled with libjpeg, color count is extracted into imgdata.thumbnail.tcolors
- PPM (bitmap) thumbnails: color count is set according to thumbnail IFD tag
- PPM16 thumbnails: if LIBRAW_PROCESSING_USE_PPM16_THUMBS set in raw_processing_options, than thumbnail will be extracted
as is, not converted to 8 bit. thumbnail.tformat is set to LIBRAW_THUMBNAIL_BITMAP16 in this case.
Untested, because it is hard to find RAWs with 16-bit bitmaps.
== Compatibility fixes
* struct tiff_tag renamed to libraw_tiff_tag
* pow64f renamed to libraw_pow64f
== Bugs fixed:
* COLOR(r,c) works correctly on X-Trans files
== Security fixes:
Secunia #81000:
Credit: Laurent Delosieres, Secunia Research at Flexera
* leaf_hdr_load_raw: check for image pointer for demosaiced raw
* NOKIARAW parser: check image dimensions readed from file
* quicktake_100_load_raw: check width/height limits
Secunia #79000:
Credit: Laurent Delosieres, Secunia Research at Flexera
* All legacy (RGB raw) image loaders checks for imgdata.image is not NULL
* kodak_radc_load_raw: check image size before processing
* legacy memory allocator: allocate max(widh,raw_width)*max(height,raw_height)
Secunia #76000:
* Fixed fuji_width handling if file is neither fuji nor DNG
* Fixed xtrans interpolate for broken xtrans pattern
* Fixed panasonic decoder
* LibRaw 0.18.6
Other fixes:
* Checks for width+left_margin/height+top_margin not larger than 64k
* LIBRAW_MAX_ALLOC_MB define limits maximum image/raw_image allocation
(default is 2048 so 2Gb per array)
* LibRaw::read_shorts item count is now unsigned
* Fixed possible out of bound access in Kodak 65000 loader
* CVE-2017-14348: Fix for possible heap overrun in Canon makernotes parser
Credit: Henri Salo from Nixu Corporation
* Fix for CVE-2017-13735
* CVE-2017-14265: Additional check for X-Trans CFA pattern data
* 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
2018-02-23 Alex Tutubalin <lexa@lexa.ru>
Secunia #81000:
Credit: Laurent Delosieres, Secunia Research at Flexera
* leaf_hdr_load_raw: check for image pointer for demosaiced raw
* NOKIARAW parser: check image dimensions readed from file
* quicktake_100_load_raw: check width/height limits
* LibRaw 0.18.8
2018-01-29 Alex Tutubalin <lexa@lexa.ru>
* Checks for width+left_margin/height+top_margin not larger than 64k
* LIBRAW_MAX_ALLOC_MB define limits maximum image/raw_image allocation
(default is 2048 so 2Gb per array)
* LibRaw::read_shorts item count is now unsigned
2018-01-19 Alex Tutubalin <lexa@lexa.ru>
Secunia #79000:
Credit: Laurent Delosieres, Secunia Research at Flexera
* All legacy (RGB raw) image loaders checks for imgdata.image is not NULL
* kodak_radc_load_raw: check image size before processing
* legacy memory allocator: allocate max(widh,raw_width)*max(height,raw_height)
* LibRaw 0.18.7
2017-12-06 Alex Tutubalin <lexa@lexa.ru>
Secunia #76000:
* Fixed fuji_width handling if file is neither fuji nor DNG
* Fixed xtrans interpolate for broken xtrans pattern
* Fixed panasonic decoder
* LibRaw 0.18.6
2017-09-22 Alex Tutubalin <lexa@lexa.ru>
* Fixed possible out of bound access in Kodak 6500 loader
* LibRaw 0.18.5
2017-09-12 Alex Tutubalin <lexa@lexa.ru>
* CVE-2017-14348: Fix for possible heap overrun in Canon makernotes parser
Credit: Henri Salo from Nixu Corporation
* LibRaw 0.18.4
2017-09-09 Alex Tutubalin <lexa@lexa.ru>
* Fix for CVE-2017-13735
* CVE-2017-14265: Additional check for X-Trans CFA pattern data
* LibRaw 0.18.3
2017-03-08 Alex Tutubalin <lexa@lexa.ru>
* 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-s
* LibRaw 0.18.2
2017-02-12 Alex Tutubalin <lexa@lexa.ru>
* Camera Support: Sigma Quatto H
* Fixed bug in FujiExpoMidPointShift parser
* Fixed wrong black level in Sony A350
* Added standard integer types for VisualStudio 2008 and earlier
* LibRaw 0.18.1
2016-12-27 Alex Tutubalin <lexa@lexa.ru>
* Licensing changes:
- there is no 'LibRaw Software License 27032010' licensing anymore (and all signed
agreements have expired)
- LibRaw is now dual-licensed: LGPL 2.1 or CDDL 1.0
* Camera support (+87):
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
* Floating point DNG support:
- 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
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:
* 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
* 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);
plus gcc6 fix to dcraw_common.cpp
LibRaw 0.17.2
* strncpy usage was not compatible with glibc bounds check
LibRaw 0.17.1
* fixed two errors found by AlphaFuzzer
* phase_one_correct always returns value; handle P1 return codes in
postprocessing
LibRaw 0.17.0
* Fixed dcraw.c ljpeg_start possibly buffer overrun
* fixed several bugs detected by using American Fuzzy Lop
* C-API extension to support 3DLut Creator
* 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).
* Exif/Makernotes parser callback (called for each processed tag)
* 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.
* 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
Problems found with existing digests:
Package fotoxx distfile fotoxx-14.03.1.tar.gz
ac2033f87de2c23941261f7c50160cddf872c110 [recorded]
118e98a8cc0414676b3c4d37b8df407c28a1407c [calculated]
Package ploticus-examples distfile ploticus-2.00/plnode200.tar.gz
34274a03d0c41fae5690633663e3d4114b9d7a6d [recorded]
da39a3ee5e6b4b0d3255bfef95601890afd80709 [calculated]
Problems found locating distfiles:
Package AfterShotPro: missing distfile AfterShotPro-1.1.0.30/AfterShotPro_i386.deb
Package pgraf: missing distfile pgraf-20010131.tar.gz
Package qvplay: missing distfile qvplay-0.95.tar.gz
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
This switches to the new major release.
The most significant change of this version is multiple rendering
of same RAW data without re-opening RAW file.
So, it is possible to implement near-realtime preview of entire image in
half-resolution mode and realtime preview of selected area (e.g. around
mouse pointer position) in full-resolution mode.
+Support for more cameras
Upstream changes:
LibRaw 0.14.2 (19-10-2011)
Fixed bug in Canon 1D and 1Ds files decoding.
New decoder information bit DECODER_HASRAWCURVE
LibRaw 0.14.1 (11-10-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.
LibRaw 0.14.0 (21-09-2011)
Multiple rendering (LibRaw::dcraw_process() calls) allowed without
re-opening RAW file thrfough the sequence of open()/unpack() calls.
You should be able to change any processing parameters (except
shot_select parameter) between dcraw_process() calls.
New sample in samples/multirender_test.cpp: renders data 4 times:
in half and full modes with different white balance settings.
Unprocessed RAW data is stored in separate data buffer: (2 bytes
per pixel for all Bayer-pattern images, 8 bytes per pixel for
Foveon, sRAW, and other full-color raw formats), so now LibRaw
uses 25% more memory for full processing of most common Bayer
images; while for just unpack memory is reduced 4 times.
New call LibRaw::raw2image() fills imgdata.image array with
fresh copy of data. There is no need to call raw2image()
separately if you use dcraw_process() or dcraw_document_mode_processing()
calls.
New call LibRaw::get_decoder_info() to determine raw data storage
layout. See samples/unprocessed_raw.cpp for an example of how to
use it.
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()
If your code uses usual open()/unpack()/dcraw_process() call sequence, then
NOTHING CHANGED: your program should produce same results. For interactive
programs you may skip open()/unpack() calls after adjusting processing parameters,
so user should see image refreshed much faster.
If your code uses raw data (open+unpack calls), you need to call
LibRaw::raw2image(), and imgdata.image will contain same bitmap as in LibRaw 0.13.x
If you code uses access to masked borders data, you need to rewrite it. See
samples/unprocessed_raw.cpp as a sample.
Other changes:
No separate imgdata.masked_pixels buffers, Bayer raw formats are read to
buffer with borders. So, no ugly add_masked_border_to_bitmap() call.
No filtering_mode parameter. Raw tone curve is applied at unpack() stage;
zero pixels removed on postprocesing stage.
unprocessed_raw and 4colors samples are adjusted to use new RAW data
storage layout.
OpenMP speedup of postprocessing steps (up to 50% for half mode and
4-core machine)
Most of LibRaw_datastream function bodies are moved to separate source file
LibRaw_windows_datastream is merged to main source tree
Imported dcraw 9.10 (1.444), support for new cameras added: ARRIRAW format,
Canon SX30 IS, Leica D-LUX 5 and V-LUX2, Olympus E-P3, Panasonic G3 and GF3,
Sony NEX-C3 and SLT-A35
Support for RedOne digital movie cameras (R3D format). To enable this
support you need to:
install libjasper JPEG2000 support library
compile LibRaw with -DUSE_JASPER compiler switch
(./configure will do it for you)
If you use own LibRaw_datastream implementation, you should implement
make_jas_stream() call for your datastream. See bottom of
src/libraw_cxx.cpp for implementations in datafile and mem-buffer LibRaw
streams.
Bugfix: green matching is turned off if output image is shrinked due to wavelet
filtering or aberration correction.
Removed imgdata.sizes.bottom_margin and right_margin data fields use
imgdata.sizes.raw_width - width - left_margin to get right one, the same
with bottom_margin.
Minor ./configure cleanup
Qmake files and Visual Studio Project files are updated.
New version check macroses.
Documentation changed to reflect 0.14 changes.
Removed LibRaw::rotate_fuji_raw() call and corresponding C-API call.
The LibRaw::adjust_sizes_info_only() call may be called repeated and mixed
with dcraw_process() calls.
Postprocessing speedup and optimization, especially if cropping set.
Cropping works for FujiCCD raws. For the technical reasons, the position of
top-left corner of crop area will be rounded to the nearest multiple of 4
(the corner is shifted top-left).
New sample samples/postprocessing_benchmark.cpp This sample measures
postprocessing speed. All demosaic methods, averaged white balance,
median filtering, wavelet filtration, highlight recovery, and cropping
are supported.
all client code should be recompiled due to internals change.
changes:
-Imported dcraw 9.10 (1.444)
-Bugfix: green matching is turned off if output image is shrinked due to
wavelet filtering or aberration correction
Upstream changes:
* Changes in cropping code:
o cropping is now works for Fuji files (instead of crash)
o bad pixels map and dark frame subtraction is turned off if cropping enable
o for technical reasons, coordinates of top-left corner of crop box are
rounded to multiple of 4 for Fuji files.
* ./configure stuff fixes:
o install static libraries only when --enable-static is set
o compiled samples are dynamically linked if shared library not disabled.
* OpenMP enabled for Visual Studio 2008 SP1+, but not for RTM
LibRaw 0.13.5 add supports for several new cameras.
Changelog:
* Imported new dcraw 9.08/1.443:
o New color data for Canon 600D and 1100D, Fuji S200EXR
o New cameras supported: Fuji HS20EXR and F550EXR, Kodak Z990, Nikon
D5100, Olympus E-PL1s and XZ-1, Samsung NX11, Sony A230 and 290.
Upstream changes:
LibRaw 0.13.1 (2011-02-08)
* 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)
LibRaw 0.13.0 (since 0.12.x) (2011-02-06)
* 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):
o Banding suppression code.
o High-frequency noise suppression.
o Green channels local averaging to suppress maze artifacts.
o OpenMP speed-up in median filters (demosaic pack GPL2)
o OpenMP speed-up in green equilibration (demosaic pack GPL3)
* Bug fixes and improvements:
o Better parsing of unknown command-line params in dcraw_emu sample
o Brigtness table in ahd_demosaic is calculated in reversed order to prevent
possible (very unlikely) multithreaded app problem.
o Fixed file extension in half_mt.c sample.
o Fixed incomplete data fields reset in LibRaw::recycle()
o Patches for ./configure system for better LCMS2 support
o math.h included before any other includes to make KDE compile with Visual
C++ happy
o Fuji FinePix S5500 size adjusted to ignore (rare?) garbage at top of frame.
LibRaw 0.12.4 (2011-02-05)
* Fixed green matching/half-size incompatibility.
Upstream changes:
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
Complete changelist:
* DCB interpolation and FBDD denoising integrated into main LibRaw.
* Two addtional demosaic packs:
o GPL2-licensed: AFD, LMMSE, VCD, Modified AHD and AHD+VCD interpolations.
Additional median filters from 'Modified DCRAW' package. Foveon support also
included in this pack.
o GPL3-licensed: AMaZE interpolation and chromatic aberrations correction from
RawTherapee
* LCMS 2.x support
* New ./configure script, based on GNU autotools.
* Bugfixes:
o Fix in green_matching code to support nonstandard Bayer pattern
o Fixed bug in add_masked_borders_to_bitmap() call for cameras with masked
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.
2010-11-17 Alex Tutubalin <lexa@lexa.ru>
* Nikon P7000: color matrix data and black level patch for ISO >=400
Thanks to Gunnar Thorburn
* Support for several industrial cameras based on Sony ICX 625/655
sensor: JAI BB500CL/GE, SVS625CL, ptGrey GRAS-50S5C
Thanks to kaare
* LibRaw 0.11.3
LibRaw is a library for reading RAW files obtained from digital photo
cameras (CRW/CR2, NEF, RAF, DNG, and others).
LibRaw is based on the source codes of the dcraw utility, where part of
drawbacks have already been eliminated and part will be fixed in future.
The users of the library are provided with API to be built into their
software programs.