Changelog:
- 7/4/2019: version 1.0.3
This is a binary compatible release.
* resize fixes for Nx1 sizes and the addition of non-opaque alpha values for
odd sizes (issues #418, #434)
* lossless encode/decode performance improvements
* lossy compression performance improvement at low quality levels with flat
content (issue #432)
* python swig files updated to support python 3
Tool updates:
vwebp will now preserve the aspect ratio of images that exceed monitor
resolution by scaling the image to fit (issue #433)
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
4.1.0 Release
Added new renders Alto, LSTMBox, WordStrBox.
Added character boxes in hOCR output.
Added python training scripts (experimental) as alternative shell scripts.
Better support AVX / AVX2 / SSE.
Disable OpenMP support by default.
Fix for bounding box problem.
Implemented support for whitelist/blacklist in LSTM engine.
Improved cmake configuration.
Code modernization and improvements.
A lot of bug fixes...
From David Weller-Fahy in PR pkg/54340.
Leather is the Python charting library for those who need charts now
and don't care if they're perfect.
Leather isn't picky. It's rough. It gets dirty. It looks sexy just
hanging on the back of a chair. Leather doesn't need your accessories.
Leather is how Snake Plissken would make charts.
Get it?
* Use 1024 instead of NAME_MAX. NAME_MAX is not defined OmniOS-derived OS
and MAXNAMELEN is not portable too, _POSIX_NAME_MAX is too short.
Discussed with tron@.
* Simplyfy my previous code to fix overrun
6.1.0:
- Deprecate Image.__del__
- Tiff: Add support for JPEG quality
- Respect the PKG_CONFIG environment variable when building
- Use explicit memcpy() to avoid unaligned memory accesses
- Improve encoding of TIFF tags
- Update Py_UNICODE to Py_UCS4
- Consider I;16 pixel size when drawing
- Add TIFFTAG_SAMPLEFORMAT to blocklist
- Create GIF deltas from background colour of GIF frames if disposal mode is 2
- Added ImageSequence all_frames
- Use unsigned int to store TIFF IFD offsets
- Include CPPFLAGS when searching for libraries
- Updated TIFF tile descriptors to match current decoding functionality
- Added an `image.entropy()` method (second revision)
- Pass the correct types to PyArg_ParseTuple
- Fixed crash when loading non-font bytes
- Fix SPARC memory alignment issues in Pack/Unpack functions
- Added CMYK;16B and CMYK;16N unpackers
- Fixed bugs in calculating text size
- Add __main__.py to output basic format and support information
- Added variation font support
- Do not down-convert if image is LA when showing with PNG format
- Improve handling of PSD frames
- Improved ICO and ICNS loading
- Changed Preview application path so that it is no longer static
- Corrected ttb text positioning
- Handle unexpected ICO image sizes
- Fixed bits value for RGB;16N unpackers
- Travis CI: Add Fedora 30, remove Fedora 28
- Added reading of CMYK;16L TIFF images
- Fixed dimensions of 1-bit PDFs
- Fixed opening mmap image through Path on Windows
- Fixed ImageDraw arc gaps
- Expand GIF to include frames with extents outside the image size
- Fixed ImageTk getimage
- Fixed bug in decoding large images
- Fixed reading APP13 marker without Photoshop data
- Added option to include layered windows in ImageGrab.grab on Windows
- Detect libimagequant when installed by pacman on MingW
- Fixed raqm layout bug
- Fixed loading font with non-Unicode path on Windows
- Travis CI: Upgrade PyPy from 6.0.0 to 7.1.1
- Depends: Updated openjpeg to 2.3.1
- Fix numpy bool bug
GCC 9 started implementing the OpenMP 4.0 and later behavior. When not using
default clause or when using default(shared), this makes no difference, but
if using default(none), previously the choice was not specify the const
qualified variables on the construct at all, or specify in firstprivate
clause. In GCC 9 as well as for OpenMP 4.0 compliance, those variables need
to be specified on constructs in which they are used, either in shared or
in firstprivate clause. Specifying them in firstprivate clause is one way to
achieve compatibility with both older GCC versions and GCC 9,
another option is to drop the default(none) clause.
This patch thus drops the default(none) clause.
See https://gcc.gnu.org/gcc-9/porting_to.html#ompdatasharing
patch from fedora.
ChangeLog:
AnsiLove/C 4.0.1 (2019-06-25)
- Fix a few typos in README and ansilove.1
- Simplify display of default font when no font option is specified
- Drop the leading dot when saving input file extension
- Fix the check for readComments() return value
AnsiLove/C 4.0.0 (2019-01-16)
- Switch to using libansilove
- Add a new switch (-d) to toggle DOS aspect ratio
- Add initial support for PabloDraw 24-bit ANSI sequences
- Ansilove now generates only one output file when -r or -R options
are used
- Display scale factor when -r or -R options are used
- Allow to specify the number of columns for ANSI and Tundra files
- Restrict maximum allowed number of columns to 4096
- Check asprintf() return value and error if allocation fails
- Bugfixes and improvements in the SAUCE parser
- Refactor font selection processing
- Refactor rendering mode processing
- Use OpenBSD style(9) for function prototypes and declaration
- Add missing headers and remove unnecessary ones
- Remove versionInfo(), simply print the header with version information
when invoked with -v
- Remove showHelp(), show synopsis instead when invoked with -h
- Add a new example ANSi (Thanks Nail)
- Remove -e switch, examples are now listed in the man page instead
- Make synopsis() only display SYNOPSIS, as it should be.
- Add an EXAMPLES section in ansilove.1
- PC fonts for code pages other than cp437 are now named using the cpNNN
scheme. Albeit not documented anymore, the previously used names will
keep working
OK kamil@
openimageio now uses qt5, not qt4.
This was causing blender to fail to build in bulk builds and on systems
where qt4 was not preinstalled.
XXX needs pullup?
Based on work in pkgsrc-wip.
The Irrlicht Engine is an open source high performance real-time
3D engine written and usable in C++ and also available for .NET
languages.
It is completely cross-platform, using D3D, OpenGL and its own
software renderer, and has all of the state-of-the-art features
which can be found in commercial 3d engines.
Library for converting ANSI, ASCII, and other formats to PNG, allowing
to render ANSI and artscene-related file formats into PNG images, and
supporting ANSI (.ANS), PCBoard (.PCB), Binary (.BIN), Artworx (.ADF),
iCE Draw (.IDF), Tundra (.TND) and XBin (.XB) formats.
It creates size optimized 4-bit PNG files and supports SAUCE (Standard
Architecture for Universal Comment Extentions), 80x25 and 80x50 PC fonts
(including all the 14 MS-DOS charsets), Amiga fonts, and iCE colors.
OK kamil@
Version 0.11
Add quiet argument to .render() and .pipe() methods of Graph,
Digraph, and Source objects, allowing to suppress stderr of the
layout subprocess (parity with stand-alone render() and pipe()
functions).
The rendering process for render() methods and stand-alone function is now
started from the directory of the renderred dot source file. This allows to
render graph descriptions that use relative paths inline (e.g. for referring to
image files to be included) by using paths relative to the source file
location. Previously, such relative paths would need to be given relative to
the directory from which render() was started, so this change is backwards
incompatible for code that relied on the previous behaviour.
Drop Python 3.4 support.