forked from LibRaw/LibRaw
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Changelog.txt
2254 lines (1789 loc) · 94.1 KB
/
Changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2020-07-23 Alex Tutubalin <[email protected]>
* LibRaw 0.20
== 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 changed')
== Camera support (+59, 1131 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, Osmo Action
FujiFilm GFX 100, X-A7, X-Pro3, X100V, X-T4 (uncompressed/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
a)without postprocessing functions (dcraw_process() and called function)
b)without postprocessing and LibRaw::raw2image() call (and called function).
It may be useful to reduce library memory/code footprint.
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 ==
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.h>)
== 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
* 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 <file-w-filelist> 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
* 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.
* 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.
2019-03-05 Alex Tutubalin <[email protected]>
* Camera support
Canon A560 (CHDK hack)
FujiFilm X-T30
Nikon Coolpix A1000
Olympus E-M1X
Sony ILCE-6400
Several dng files from phones and drones was tested
and added to built-in camera list too.
* Multiple names for same Panasonic cameras are processed via
aliaces mechanics, no multiple duplicate fields in adobe_coeffs() table
* Better makernotes parsing for many cameras
* Better parsing of makernotes embeded into DNG files created by
Adobe DNG Converter
* New imgdata.params.raw_processing_options value: LIBRAW_PROCESSING_ZEROFILTERS_FOR_MONOCHROMETIFFS
- If this bit is set
- and TIFF file contains SamplesPerPixel == 1
- and filters value was not guessed from metadata parsing
LibRaw will assume the file is monochrome, not bayer.
This option is needed for monochrome scan processing (Imacon X1 etc).
This option may broke old TIF-like RAW files processing (Kodak 760,etc)
use with care (it is better to let user choose).
2018-12-12 Alex Tutubalin <[email protected]>
* Camera support:
Canon: PowerShot A480 (CHDK hack), EOS 2000D, EOS 4000D
Eyedeas E1
FujiFilm: GFX 50R, XF10, X-T3, X-T100, DBP680
GITUP G3 DUO (16:9 mode only, use custom camera for 4:3)
Kodak PIXPRO AZ901
Leica M10-D, M10-P
Nikon D3500, Z6, Z7, P1000
Panasonic LX100M2
Pentax K-1 II
Sony A7 III, HX95, HX99, RX100-VA, RX100-VI
* Fixed long standing bug in remove_zeroes: first two rows/cols was unprocessed
* Better parsing for NEF files modified (damaged) by NikonTransfer
* Better parsing for floating point DNG black levels (into color.dnglevels.fblack and dng_fcblack[], similar
to color.black and color.cblack[] for other formats).
* More flexible limit for RAW decoding memory usage:
imgdata.params.max_raw_memory_mb (default is LIBRAW_MAX_ALLOC_MB_DEFAULT)
* New flags for imgdata.params.raw_processing_options:
LIBRAW_PROCESSING_CHECK_DNG_ILLUMINANT - will check DNG illuminant field when selecting color matrix
(note: incompatibility with previous versions, so default is not set).
LIBRAW_PROCESSING_DNGSDK_ZEROCOPY - will not copy data from Adobe DNG SDK decoded buffer, but use it as is
* Swtiched from auto_ptr to unique_ptr, to get back define LIBRAW_USE_AUTOPTR
* dcraw_emu: it is now possible to create output filename in a more flexible manner, via -Z switch:
-Z - will output to stdout
-Z ext will output into inputfilename.ext
-Z .ext will output into inputfilename.inputext.ext
2018-11-22 Alex Tutubalin <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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
2016-12-27 Alex Tutubalin <[email protected]>
* 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 (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
* 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
2015-08-15 Alex Tutubalin <[email protected]>
* LibRaw 0.17
* 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.
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
* Fujifilm F700/S20Pro second frame support
2014-02-01 Alex Tutubalin <[email protected]>
* Updated Oly E-M10 & Panasonic TZ60/61 color data
* Updated foveon SD9-14 white level
* Support for 1x1 BlackLevelRepeatDim
2014-01-31 Alex Tutubalin <[email protected]>
* imported dcraw 1.461: fixed error in BlackLevelDim handling
* Accurate work with pattern black-level (cblack[6+])
* Support for Olympus E-M10 and Fujifilm X-T1
* Adjusted possbile maximum value for Sigma SD9 small raws
2014-01-27 Alex Tutubalin <[email protected]>
* dcraw 1.460: Nikon D3300, Panasonic DMC-TZ61, Sony ILCE-5000
2014-01-25 Alex Tutubalin <[email protected]>
* PhaseOne IQ250 support (both compressed and uncompressed)
2014-01-21 Alex Tutubalin <[email protected]>
* imgdata.params.sony_arw2_hack removed.
It always on for ARW2-files.
* New imgdata.params.sony_arw2_options processing flags
Values:
LIBRAW_SONYARW2_NONE - normal processing
LIBRAW_SONYARW2_BASEONLY - BASE pixels outputeed, delta pixels set to 0
LIBRAW_SONYARW2_DELTAONLY - Delta pixels written to raw data, base pixels zeroed
LIBRAW_SONYARW2_DELTAZEROBASE - Only deltas written without base offset
2014-01-20 Alex Tutubalin <[email protected]>
* Imported dcraw 9.20:
- Support for DNG BlackLevelRepeatDim tags
- imgdata.color.cblack[] holds variable BlackLevel for DNG files (up to ~4k values)
- imgdata.params.use_camera_matrix is now ON by default. Set it to 3 if you want
to force use of DNG embedded matrix.
- Tone curve for Canon RMF format supported
- Color data for Canon C500
* Additional camera support:
Alcatel 5035D
DJI 4384x3288
Fujifilm F900EXR
Kodak 12MP
Matrix 4608x3288
Nokia 1200x1600
Olympus E-PL6
Panasonic DMC-FZ7
2014-01-17 Alex Tutubalin <[email protected]>
* Camera support:
Added: Fujifilm XE2, XQ1
Color data updated: Nikon D4 1 AW1/J3, Fuji X-M2
Fixes: Nikon D610 visible image area, Canon A3300 bayer
pattern
* RawSpeed support: enabled processing for cameras,
unknown to RawSpeed
* Fixed error in LibRaw::unpack_thumb()
* little improve performance in my_strcasestr
* Fix compiler errors for VS2012/OpenMP
* Fixed typo which prevents to use Demosaic Pack GPL2
* LibRaw 0.16.0-Release
2013-11-15 Alex Tutubalin <[email protected]>
* 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:
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
* Better Visual Studio compatibility (esp. old versions)
* Cmake build: added ws2_32 library for MinGW builds
* LibRaw 0.16.0-Beta1
2013-10-22 Alex Tutubalin <[email protected]>
* Support for new cameras:
Sony A7, A7R
Panasonic GM1
* 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
* 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.
* API/ABI changed, so all code using LibRaw should be recompiled.
* LibRaw 0.16.0-Alpha3
2013-10-16 Alex Tutubalin <[email protected]>
* Support for new cameras:
Canon S120 (preliminary color data), G16
Fujifilm X-A1 (preliminary color data)
Hasselblad Lunar, Stellar
Nikon P7800 (preliminary color data)
Pentax K50, K500, Q7
Samsung Galaxy NX (EK-GN120)
Sony NEX-5T
* Updated color data for:
Samsung NX300
Sony RX1R
Sigma SD1, SD1 Merrill, DPxx (only if non-GPL2 foveon decoder used)
* Image dimensions table for Foveon cameras (only if
non-GPL2 foveon decoder used)
* Fixed memory leak in x3f-tools code (new Foveon decoder)
* Fixed DHT-demosaic incompatibility with MS VisualStudio in OpenMP directives
* Additional image size checks.
* LibRaw 0.16-Alpha2
2013-09-22 Alex Tutubalin <[email protected]>
* 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
* 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).
TODO: thumbnail extraction, fast cancelation
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)
* 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.
* LibRaw 0.16.0-Alpha1
2013-05-23 Alex Tutubalin <[email protected]>
LibRaw 0.15-Release
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-S1, HS30EXR, X1-Pro,X-E1, X20, X100S, SL1000, HS50EXR,
F800EXR, XF1
* 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:
1. 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
2. deleted (nobody uses those)
- LibRaw::dcraw_document_mode_processing (and respective C-API)
- imgdata.color.color_flags data field
3. 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
4. Support for compiling with RawSpeed library, http://rawstudio.org/blog/?p=800
details are in README.RawSpeed
5. Suppression of banding
6. New API calls
- recycle_datastream(),
- open_file(wchar_t*) (Win32)
2012-04-05 Alex Tutubalin <[email protected]>
* 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
* LibRaw 0.14.6-Release
2011-12-24 Alex Tutubalin <[email protected]>
* 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
* LibRaw 0.14.5-Release
2011-12-12 Alex Tutubalin <[email protected]>
* 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.