head	1.2;
access;
symbols
	pkgsrc-2018Q1:1.1.0.18
	pkgsrc-2018Q1-base:1.1
	pkgsrc-2017Q4:1.1.0.16
	pkgsrc-2017Q4-base:1.1
	pkgsrc-2017Q3:1.1.0.14
	pkgsrc-2017Q3-base:1.1
	pkgsrc-2017Q2:1.1.0.10
	pkgsrc-2017Q2-base:1.1
	pkgsrc-2017Q1:1.1.0.8
	pkgsrc-2017Q1-base:1.1
	pkgsrc-2016Q4:1.1.0.6
	pkgsrc-2016Q4-base:1.1
	pkgsrc-2016Q3:1.1.0.4
	pkgsrc-2016Q3-base:1.1
	pkgsrc-2016Q2:1.1.0.2
	pkgsrc-2016Q2-base:1.1;
locks; strict;
comment	@// @;


1.2
date	2018.04.14.03.45.56;	author markd;	state dead;
branches;
next	1.1;
commitid	3ArmA02Otn14mmyA;

1.1
date	2016.06.19.05.04.57;	author markd;	state Exp;
branches;
next	;
commitid	POCMSs7H4frW82bz;


desc
@@


1.2
log
@libraw: update to 0.18.8

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);
@
text
@$NetBSD: patch-internal_dcraw__common.cpp,v 1.1 2016/06/19 05:04:57 markd Exp $

gcc6 fix

--- internal/dcraw_common.cpp.orig	2016-05-14 06:55:03.000000000 +0000
+++ internal/dcraw_common.cpp
@@@@ -4513,30 +4513,37 @@@@ void CLASS lin_interpolate()
  */
 void CLASS vng_interpolate()
 {
-  static const signed char *cp, terms[] = {
-    -2,-2,+0,-1,0,0x01, -2,-2,+0,+0,1,0x01, -2,-1,-1,+0,0,0x01,
-    -2,-1,+0,-1,0,0x02, -2,-1,+0,+0,0,0x03, -2,-1,+0,+1,1,0x01,
-    -2,+0,+0,-1,0,0x06, -2,+0,+0,+0,1,0x02, -2,+0,+0,+1,0,0x03,
-    -2,+1,-1,+0,0,0x04, -2,+1,+0,-1,1,0x04, -2,+1,+0,+0,0,0x06,
-    -2,+1,+0,+1,0,0x02, -2,+2,+0,+0,1,0x04, -2,+2,+0,+1,0,0x04,
-    -1,-2,-1,+0,0,0x80, -1,-2,+0,-1,0,0x01, -1,-2,+1,-1,0,0x01,
-    -1,-2,+1,+0,1,0x01, -1,-1,-1,+1,0,0x88, -1,-1,+1,-2,0,0x40,
-    -1,-1,+1,-1,0,0x22, -1,-1,+1,+0,0,0x33, -1,-1,+1,+1,1,0x11,
-    -1,+0,-1,+2,0,0x08, -1,+0,+0,-1,0,0x44, -1,+0,+0,+1,0,0x11,
-    -1,+0,+1,-2,1,0x40, -1,+0,+1,-1,0,0x66, -1,+0,+1,+0,1,0x22,
-    -1,+0,+1,+1,0,0x33, -1,+0,+1,+2,1,0x10, -1,+1,+1,-1,1,0x44,
-    -1,+1,+1,+0,0,0x66, -1,+1,+1,+1,0,0x22, -1,+1,+1,+2,0,0x10,
-    -1,+2,+0,+1,0,0x04, -1,+2,+1,+0,1,0x04, -1,+2,+1,+1,0,0x04,
-    +0,-2,+0,+0,1,0x80, +0,-1,+0,+1,1,0x88, +0,-1,+1,-2,0,0x40,
-    +0,-1,+1,+0,0,0x11, +0,-1,+2,-2,0,0x40, +0,-1,+2,-1,0,0x20,
-    +0,-1,+2,+0,0,0x30, +0,-1,+2,+1,1,0x10, +0,+0,+0,+2,1,0x08,
-    +0,+0,+2,-2,1,0x40, +0,+0,+2,-1,0,0x60, +0,+0,+2,+0,1,0x20,
-    +0,+0,+2,+1,0,0x30, +0,+0,+2,+2,1,0x10, +0,+1,+1,+0,0,0x44,
-    +0,+1,+1,+2,0,0x10, +0,+1,+2,-1,1,0x40, +0,+1,+2,+0,0,0x60,
-    +0,+1,+2,+1,0,0x20, +0,+1,+2,+2,0,0x10, +1,-2,+1,+0,0,0x80,
-    +1,-1,+1,+1,0,0x88, +1,+0,+1,+2,0,0x08, +1,+0,+2,-1,0,0x40,
-    +1,+0,+2,+1,0,0x10
-  }, chood[] = { -1,-1, -1,0, -1,+1, 0,+1, +1,+1, +1,0, +1,-1, 0,-1 };
+  struct interpolate_terms {
+    signed char y1, x1, y2, x2, weight;
+    unsigned char grads;
+  };
+  static const interpolate_terms terms[] = {
+    {-2,-2,+0,-1,0,0x01}, {-2,-2,+0,+0,1,0x01}, {-2,-1,-1,+0,0,0x01},
+    {-2,-1,+0,-1,0,0x02}, {-2,-1,+0,+0,0,0x03}, {-2,-1,+0,+1,1,0x01},
+    {-2,+0,+0,-1,0,0x06}, {-2,+0,+0,+0,1,0x02}, {-2,+0,+0,+1,0,0x03},
+    {-2,+1,-1,+0,0,0x04}, {-2,+1,+0,-1,1,0x04}, {-2,+1,+0,+0,0,0x06},
+    {-2,+1,+0,+1,0,0x02}, {-2,+2,+0,+0,1,0x04}, {-2,+2,+0,+1,0,0x04},
+    {-1,-2,-1,+0,0,0x80}, {-1,-2,+0,-1,0,0x01}, {-1,-2,+1,-1,0,0x01},
+    {-1,-2,+1,+0,1,0x01}, {-1,-1,-1,+1,0,0x88}, {-1,-1,+1,-2,0,0x40},
+    {-1,-1,+1,-1,0,0x22}, {-1,-1,+1,+0,0,0x33}, {-1,-1,+1,+1,1,0x11},
+    {-1,+0,-1,+2,0,0x08}, {-1,+0,+0,-1,0,0x44}, {-1,+0,+0,+1,0,0x11},
+    {-1,+0,+1,-2,1,0x40}, {-1,+0,+1,-1,0,0x66}, {-1,+0,+1,+0,1,0x22},
+    {-1,+0,+1,+1,0,0x33}, {-1,+0,+1,+2,1,0x10}, {-1,+1,+1,-1,1,0x44},
+    {-1,+1,+1,+0,0,0x66}, {-1,+1,+1,+1,0,0x22}, {-1,+1,+1,+2,0,0x10},
+    {-1,+2,+0,+1,0,0x04}, {-1,+2,+1,+0,1,0x04}, {-1,+2,+1,+1,0,0x04},
+    {+0,-2,+0,+0,1,0x80}, {+0,-1,+0,+1,1,0x88}, {+0,-1,+1,-2,0,0x40},
+    {+0,-1,+1,+0,0,0x11}, {+0,-1,+2,-2,0,0x40}, {+0,-1,+2,-1,0,0x20},
+    {+0,-1,+2,+0,0,0x30}, {+0,-1,+2,+1,1,0x10}, {+0,+0,+0,+2,1,0x08},
+    {+0,+0,+2,-2,1,0x40}, {+0,+0,+2,-1,0,0x60}, {+0,+0,+2,+0,1,0x20},
+    {+0,+0,+2,+1,0,0x30}, {+0,+0,+2,+2,1,0x10}, {+0,+1,+1,+0,0,0x44},
+    {+0,+1,+1,+2,0,0x10}, {+0,+1,+2,-1,1,0x40}, {+0,+1,+2,+0,0,0x60},
+    {+0,+1,+2,+1,0,0x20}, {+0,+1,+2,+2,0,0x10}, {+1,-2,+1,+0,0,0x80},
+    {+1,-1,+1,+1,0,0x88}, {+1,+0,+1,+2,0,0x08}, {+1,+0,+2,-1,0,0x40},
+    {+1,+0,+2,+1,0,0x10}
+  };
+  const interpolate_terms *cpt;
+  signed char *cp;
+  signed char chood[] = { -1,-1, -1,0, -1,+1, 0,+1, +1,+1, +1,0, +1,-1, 0,-1 };
   ushort (*brow[5])[4], *pix;
   int prow=8, pcol=2, *ip, *code[16][16], gval[8], gmin, gmax, sum[4];
   int row, col, x, y, x1, x2, y1, y2, t, weight, grads, color, diag;
@@@@ -4554,11 +4561,11 @@@@ void CLASS vng_interpolate()
   for (row=0; row < prow; row++)		/* Precalculate for VNG */
     for (col=0; col < pcol; col++) {
       code[row][col] = ip;
-      for (cp=terms, t=0; t < 64; t++) {
-	y1 = *cp++;  x1 = *cp++;
-	y2 = *cp++;  x2 = *cp++;
-	weight = *cp++;
-	grads = *cp++;
+      for (cpt=&terms[0], t=0; t < 64, cpt = &terms[t]; t++) {
+	y1 = cpt->y1;  x1 = cpt->x1;
+	y2 = cpt->y2;  x2 = cpt->x2;
+	weight = cpt->weight;
+	grads = cpt->grads;
 	color = fcol(row+y1,col+x1);
 	if (fcol(row+y2,col+x2) != color) continue;
 	diag = (fcol(row,col+1) == color && fcol(row+1,col) == color) ? 2:1;
@


1.1
log
@Update libraw to 0.17.2

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
@
text
@d1 1
a1 1
$NetBSD$
@

