Index: head/graphics/pfstools/Makefile =================================================================== --- head/graphics/pfstools/Makefile (revision 408807) +++ head/graphics/pfstools/Makefile (revision 408808) @@ -1,85 +1,86 @@ # Created by: Daniel O'Connor # $FreeBSD$ PORTNAME= pfstools PORTVERSION= 1.8.5 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= graphics MASTER_SITES= SF -MAINTAINER= darius@dons.net.au +MAINTAINER= fbsd@any.com.ru COMMENT= Tools for manipulating HDR images and video frames LICENSE= LGPL21 RUN_DEPENDS+= bash:${PORTSDIR}/shells/bash -PFS_CPPFLAGS= -I${LOCALBASE}/include -PFS_LDFLAGS= -L${LOCALBASE}/lib PFS_BUILD= ${MACHINE_ARCH}-portbld-freebsd${OSREL} PLIST_SUB+= PFS_BASE=${PREFIX} +USES= gmake pkgconfig libtool GNU_CONFIGURE= yes CONFIGURE_TARGET= ${PFS_BUILD} -CONFIGURE_ARGS= --disable-jpeghdr --disable-matlab \ +CONFIGURE_ARGS+= --disable-jpeghdr --disable-matlab \ --with-bash=${LOCALBASE}/bin/bash -CONFIGURE_ENV= CPPFLAGS="${PFS_CPPFLAGS}" \ - LDFLAGS="${PFS_LDFLAGS}" \ - PKG_CONFIG_PATH=${LOCALBASE}/libdata/pkgconfig +CONFIGURE_ENV+= PKG_CONFIG_PATH=${LOCALBASE}/libdata/pkgconfig +CPPFLAGS+= -I${LOCALBASE}/include +LDFLAGS+= -L${LOCALBASE}/lib USE_LDCONFIG= yes -USES= gmake pkgconfig libtool OPTIONS_DEFINE= NETPBM OPENEXR TIFF QT IMAGEMAGICK GDAL OCTAVE OPENGL QT_DESC= Compile programs that use QT library GDAL_DESC= Compile programs that use GDAL library OCTAVE_DESC= Compile octave interface functions OPTIONS_DEFAULT= TIFF OPTIONS_SUB= yes -NETPBM_CONFIGURE_ENABLE= ppm +NETPBM_CONFIGURE_ENABLE= netpbm NETPBM_LIB_DEPENDS= libnetpbm.so:${PORTSDIR}/graphics/netpbm OPENEXR_CONFIGURE_ENABLE= openexr OPENEXR_CONFIGURE_ON= --with-exrdir=${LOCALBASE}/include/OpenEXR OPENEXR_LIB_DEPENDS= libIlmImf.so:${PORTSDIR}/graphics/OpenEXR TIFF_CONFIGURE_ENABLE= tiff TIFF_LIB_DEPENDS= libtiff.so:${PORTSDIR}/graphics/tiff -QT_USE= QT4=moc_build,corelib,gui -QT_CONFIGURE_ENABLE= qt +QT_CONFIGURE_ENABLE= qt +QT_USE= QT4=moc_build,corelib,gui IMAGEMAGICK_CONFIGURE_ENABLE= imagemagick IMAGEMAGICK_LIB_DEPENDS= libMagick++-6.so:${PORTSDIR}/graphics/ImageMagick -GDAL_CONFIGURE_ENABLE= gdal -GDAL_LIB_DEPENDS= libgdal.so:${PORTSDIR}/graphics/gdal +GDAL_CONFIGURE_ENABLE= gdal +GDAL_LIB_DEPENDS= libgdal.so:${PORTSDIR}/graphics/gdal OPENGL_CONFIGURE_ENABLE= opengl OPENGL_USE= GL=glut OCTAVE_CONFIGURE_ENABLE= octave OCTAVE_PATCH_DEPENDS= octave-config:${PORTSDIR}/math/octave OCTAVE_BUILD_DEPENDS= mkoctfile:${PORTSDIR}/math/octave OCTAVE_RUN_DEPENDS= octave:${PORTSDIR}/math/octave .include .if ${PORT_OPTIONS:MOCTAVE} OCTAVE_BASE?= ${LOCALBASE} OCTAVE_VERSION!=${OCTAVE_BASE}/bin/octave-config -v 2>&1 || ${ECHO} "0" OCTAVE_SITE_OCT!=${OCTAVE_BASE}/bin/octave-config --oct-site-dir 2>&1 || ${ECHO} "" OCTAVE_SITE_M!= ${OCTAVE_BASE}/bin/octave-config --m-site-dir 2>&1 || ${ECHO} "" -PLIST_SUB+= OCTAVE="" \ +PLIST_SUB+= \ OCTAVE_BASE=${OCTAVE_BASE} \ OCTAVE_SITE_M=${OCTAVE_SITE_M:S|^${OCTAVE_BASE}/||} \ OCTAVE_SITE_OCT=${OCTAVE_SITE_OCT:S|^${OCTAVE_BASE}/||} USES+= shebangfix SHEBANG_FILES= src/octave/* SHEBANG_LANG+= octave octave_OLD_CMD?=/usr/bin/octave -octave_CMD?= ${LOCALBASE}/bin/octave +octave_CMD?= ${OCTAVE_BASE}/bin/octave .endif + +post-stage: + ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib//libpfs-1.2.so.0.0.0 .include Index: head/graphics/pfstools/files/patch-config.h.in =================================================================== --- head/graphics/pfstools/files/patch-config.h.in (revision 408807) +++ head/graphics/pfstools/files/patch-config.h.in (revision 408808) @@ -1,19 +1,19 @@ ---- config.h.in.orig 2011-10-27 08:40:42.000000000 +0000 -+++ config.h.in 2014-02-20 19:04:01.536587053 +0000 +--- config.h.in.orig 2011-10-27 08:40:42 UTC ++++ config.h.in @@ -99,13 +99,13 @@ /* Output stream for debug messages. */ #ifdef DEBUG -#define DEBUG_STR cerr +#define DEBUG_STR std::cerr #else -#define DEBUG_STR if(1); else cerr +#define DEBUG_STR if(1); else std::cerr #endif /* Output stream for verbose messages */ #define VERBOSE_STR if(verbose) std::cerr << PROG_NAME << ": " /* On some systems iostream, string etc are in 'std' namespace */ -using namespace std; +//using namespace std; Index: head/graphics/pfstools/files/patch-configure =================================================================== --- head/graphics/pfstools/files/patch-configure (revision 408807) +++ head/graphics/pfstools/files/patch-configure (revision 408808) @@ -1,20 +1,11 @@ ---- configure.orig 2011-10-27 08:40:31.000000000 +0000 -+++ configure 2014-02-20 19:04:01.546588828 +0000 -@@ -14827,7 +14827,7 @@ - imagemagick_support="no" - else - IMAGEMAGICK_CFLAGS=$pkg_cv_IMAGEMAGICK_CFLAGS -- IMAGEMAGICK_LIBS=$pkg_cv_IMAGEMAGICK_LIBS -+ IMAGEMAGICK_LIBS="$pkg_cv_IMAGEMAGICK_LIBS /usr/local/lib/gcc47/libstdc++.so" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 - $as_echo "yes" >&6; } - -@@ -15411,7 +15411,7 @@ +--- configure.orig 2011-10-27 08:40:31 UTC ++++ configure +@@ -15411,7 +15411,7 @@ fi #end of PKG_CHECK_MODULES if test -z "$QTDIR"; then MOC="moc-qt4" else - MOC="$QTDIR/bin/moc" + MOC="$QTDIR/bin/moc-qt4" fi # Check whether --with-moc was given. Index: head/graphics/pfstools/files/patch-src-fileformat-exrio.cpp =================================================================== --- head/graphics/pfstools/files/patch-src-fileformat-exrio.cpp (revision 408807) +++ head/graphics/pfstools/files/patch-src-fileformat-exrio.cpp (revision 408808) @@ -1,28 +1,28 @@ ---- src/fileformat/exrio.cpp.orig 2005-06-15 13:36:54.000000000 +0000 -+++ src/fileformat/exrio.cpp 2014-02-20 19:04:01.546588828 +0000 -@@ -54,14 +54,14 @@ +--- src/fileformat/exrio.cpp.orig 2005-06-15 13:36:54 UTC ++++ src/fileformat/exrio.cpp +@@ -54,14 +54,14 @@ OpenEXRReader::OpenEXRReader( const char } DEBUG_STR << "OpenEXR file \"" << filename << "\" (" - << width << "x" << height << ")" << endl; + << width << "x" << height << ")" << std::endl; } void OpenEXRReader::readImage( pfs::Array2D *R, pfs::Array2D *G, pfs::Array2D *B ) { assert(file!=NULL); - DEBUG_STR << "Reading OpenEXR file... " << endl; + DEBUG_STR << "Reading OpenEXR file... " << std::endl; Imf::Rgba* tmp_img = new Imf::Rgba[width*height]; -@@ -93,7 +93,7 @@ +@@ -93,7 +93,7 @@ void OpenEXRReader::readImage( pfs::Arra OpenEXRReader::~OpenEXRReader() { delete file; - file==NULL; + file=NULL; } OpenEXRWriter::OpenEXRWriter(const char* filename) Index: head/graphics/pfstools/files/patch-src-fileformat-hdrtiffio.cpp =================================================================== --- head/graphics/pfstools/files/patch-src-fileformat-hdrtiffio.cpp (revision 408807) +++ head/graphics/pfstools/files/patch-src-fileformat-hdrtiffio.cpp (revision 408808) @@ -1,96 +1,96 @@ ---- src/fileformat/hdrtiffio.cpp.orig 2011-10-27 08:39:07.000000000 +0000 -+++ src/fileformat/hdrtiffio.cpp 2014-02-20 19:04:01.546588828 +0000 -@@ -66,7 +66,7 @@ +--- src/fileformat/hdrtiffio.cpp.orig 2011-10-27 08:39:07 UTC ++++ src/fileformat/hdrtiffio.cpp +@@ -66,7 +66,7 @@ HDRTiffReader::HDRTiffReader( const char } DEBUG_STR << "TIFF file \"" << filename << "\" (" - << width << "x" << height << ")" << endl; + << width << "x" << height << ")" << std::endl; //--- image parameters if(!TIFFGetField(tif, TIFFTAG_COMPRESSION, &comp)) // compression type -@@ -81,7 +81,7 @@ +@@ -81,7 +81,7 @@ HDRTiffReader::HDRTiffReader( const char switch(phot) { case PHOTOMETRIC_LOGLUV: - DEBUG_STR << "Photometric data: LogLuv" << endl; + DEBUG_STR << "Photometric data: LogLuv" << std::endl; if (comp != COMPRESSION_SGILOG && comp != COMPRESSION_SGILOG24) { TIFFClose(tif); -@@ -96,7 +96,7 @@ +@@ -96,7 +96,7 @@ HDRTiffReader::HDRTiffReader( const char relative_values=true; break; case PHOTOMETRIC_RGB: - DEBUG_STR << "Photometric data: RGB" << endl; + DEBUG_STR << "Photometric data: RGB" << std::endl; // read extra samples (# of alpha channels) if (TIFFGetField( tif, TIFFTAG_EXTRASAMPLES, &extra_samples_per_pixel, &extra_sample_types )!=1) -@@ -121,36 +121,36 @@ +@@ -121,36 +121,36 @@ HDRTiffReader::HDRTiffReader( const char if( bps==8 ) { TypeOfData = BYTE; - DEBUG_STR << "8bit per channel" << endl; + DEBUG_STR << "8bit per channel" << std::endl; strcpy(format_string,"linear 8bit RGB"); relative_values=false; //!! TODO: verify if 8bit is always gamma corrected } else if( bps==16 ) { TypeOfData = WORD; - DEBUG_STR << "16bit per channel" << endl; + DEBUG_STR << "16bit per channel" << std::endl; strcpy(format_string,"linear 16bit RGB"); relative_values=true; //!! TODO: verify this case!! } else { TypeOfData = FLOAT; - DEBUG_STR << "32bit float per channel" << endl; + DEBUG_STR << "32bit float per channel" << std::endl; strcpy(format_string,"linear 32bit float RGB"); relative_values=true; } break; case PHOTOMETRIC_MINISBLACK: // HDR video camera format (grayscale) - DEBUG_STR << "Photometric data: MINISBLACK (hdrv camera)" << endl; + DEBUG_STR << "Photometric data: MINISBLACK (hdrv camera)" << std::endl; if (!TIFFGetField(tif, TIFFTAG_SAMPLESPERPIXEL, &bps) || !bps==1) { TIFFClose(tif); throw pfs::Exception("TIFF: Unsupported samples per pixel for " "grayscale image"); } - if (!TIFFGetField(tif, TIFFTAG_BITSPERSAMPLE, &bps) || !bps==16) + if (!TIFFGetField(tif, TIFFTAG_BITSPERSAMPLE, &bps) || !(bps==16)) { - DEBUG_STR << "Detected bits per sample: " << bps << endl; + DEBUG_STR << "Detected bits per sample: " << bps << std::endl; TIFFClose(tif); throw pfs::Exception("TIFF: unsupported bits per sample for " "grayscale image."); -@@ -160,7 +160,7 @@ +@@ -160,7 +160,7 @@ HDRTiffReader::HDRTiffReader( const char relative_values=true; break; default: - DEBUG_STR << "Unsupported photometric type: " << phot << endl; + DEBUG_STR << "Unsupported photometric type: " << phot << std::endl; TIFFClose(tif); strcpy(format_string,"unknown"); relative_values=false; -@@ -184,12 +184,12 @@ +@@ -184,12 +184,12 @@ void HDRTiffReader::readImage( pfs::Arra //--- image length uint32 imagelength; TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &imagelength); - DEBUG_STR << "Image length: " << imagelength << endl; + DEBUG_STR << "Image length: " << imagelength << std::endl; //--- image scanline size uint32 scanlinesize = TIFFScanlineSize(tif); buf.vp = _TIFFmalloc(scanlinesize); -// DEBUG_STR << "Scanline size: " << scanlinesize << endl; +// DEBUG_STR << "Scanline size: " << scanlinesize << std::endl; //--- read scan lines Index: head/graphics/pfstools/files/patch-src-fileformat-pfsinexr.cpp =================================================================== --- head/graphics/pfstools/files/patch-src-fileformat-pfsinexr.cpp (revision 408807) +++ head/graphics/pfstools/files/patch-src-fileformat-pfsinexr.cpp (revision 408808) @@ -1,11 +1,11 @@ ---- src/fileformat/pfsinexr.cpp.orig 2008-01-01 13:01:21.000000000 +0000 -+++ src/fileformat/pfsinexr.cpp 2014-02-20 19:04:01.546588828 +0000 -@@ -234,7 +234,7 @@ +--- src/fileformat/pfsinexr.cpp.orig 2008-01-01 13:01:21 UTC ++++ src/fileformat/pfsinexr.cpp +@@ -234,7 +234,7 @@ void readFrames( int argc, char* argv[] } file.setFrameBuffer( frameBuffer ); - file.readPixels( dw.min.y, dw.max.y ); + file.readPixels( dtw.min.y, dtw.max.y ); VERBOSE_STR << "reading file (linear) '" << ff.fileName << "'" << std::endl; Index: head/graphics/pfstools/files/patch-src-fileformat-pfsinimgmagick.cpp =================================================================== --- head/graphics/pfstools/files/patch-src-fileformat-pfsinimgmagick.cpp (revision 408807) +++ head/graphics/pfstools/files/patch-src-fileformat-pfsinimgmagick.cpp (revision 408808) @@ -1,19 +1,19 @@ ---- src/fileformat/pfsinimgmagick.cpp.orig 2008-10-03 19:07:34.000000000 +0000 -+++ src/fileformat/pfsinimgmagick.cpp 2014-02-20 19:04:01.546588828 +0000 -@@ -108,6 +108,7 @@ +--- src/fileformat/pfsinimgmagick.cpp.orig 2008-10-03 19:07:34 UTC ++++ src/fileformat/pfsinimgmagick.cpp +@@ -108,6 +108,7 @@ void readFrames( int argc, char* argv[] if( ff.fh == NULL ) break; // No more frames it.closeFrameFile( ff ); + Magick::InitializeMagick(*argv); VERBOSE_STR << "reading file '" << ff.fileName << "'" << std::endl; Magick::Image imImage( ff.fileName ); -@@ -172,7 +173,7 @@ +@@ -172,7 +173,7 @@ void readFrames( int argc, char* argv[] frame->getTags()->setString( "FILE_NAME", fileNameTag ); char strbuf[3]; - snprintf( strbuf, 3, "%d", imImage.depth() ); + snprintf( strbuf, 3, "%lu", imImage.depth() ); frame->getTags()->setString("BITDEPTH", strbuf ); pfsio.writeFrame( frame, stdout ); Index: head/graphics/pfstools/files/patch-src-fileformat-pfsinjpeghdr.cpp =================================================================== --- head/graphics/pfstools/files/patch-src-fileformat-pfsinjpeghdr.cpp (revision 408807) +++ head/graphics/pfstools/files/patch-src-fileformat-pfsinjpeghdr.cpp (revision 408808) @@ -1,22 +1,22 @@ ---- src/fileformat/pfsinjpeghdr.cpp.orig 2005-11-04 08:54:27.000000000 +0000 -+++ src/fileformat/pfsinjpeghdr.cpp 2014-02-20 19:04:01.546588828 +0000 -@@ -123,8 +123,8 @@ +--- src/fileformat/pfsinjpeghdr.cpp.orig 2005-11-04 08:54:27 UTC ++++ src/fileformat/pfsinjpeghdr.cpp +@@ -123,8 +123,8 @@ void readFrames( int argc, char* argv[] case JPEG_HEADER_HDR: // HDR image jpeghdr_start_decompress(&jhinf); frame = pfsio.createFrame( jhinf.cinfo.output_width, jhinf.cinfo.output_height ); - hdrscan = (JHSAMPLE *)malloc(jhinf.cinfo.output_width * jhinf.cinfo.output_height * - sizeof(JHSAMPLE)*3); + hdrscan = + new JHSAMPLE[jhinf.cinfo.output_width * jhinf.cinfo.output_height * 3]; // Important: test jhinf.output_scanline, not jhinf.cinfo int index ; index = 0; -@@ -144,7 +144,7 @@ +@@ -144,7 +144,7 @@ void readFrames( int argc, char* argv[] (Z->getRawData())[i] = hdrscan[3*i + 2]; } pfs::transformColorSpace( pfs::CS_RGB, X, Y, Z, pfs::CS_XYZ, X, Y, Z ); - free((void *)hdrscan); + delete[] hdrscan; break; case JPEG_HEADER_OK: // LDR image case JPEG_SUSPENDED: Index: head/graphics/pfstools/files/patch-src-fileformat-pfsoutimgmagick.cpp =================================================================== --- head/graphics/pfstools/files/patch-src-fileformat-pfsoutimgmagick.cpp (revision 408807) +++ head/graphics/pfstools/files/patch-src-fileformat-pfsoutimgmagick.cpp (revision 408808) @@ -1,10 +1,10 @@ ---- src/fileformat/pfsoutimgmagick.cpp.orig 2011-03-15 08:47:24.000000000 +0000 -+++ src/fileformat/pfsoutimgmagick.cpp 2014-02-20 19:04:01.546588828 +0000 -@@ -190,6 +190,7 @@ +--- src/fileformat/pfsoutimgmagick.cpp.orig 2011-03-15 08:47:24 UTC ++++ src/fileformat/pfsoutimgmagick.cpp +@@ -190,6 +190,7 @@ void writeFrames( int argc, char* argv[] if( alpha != NULL ) imgBuffer[i++] = (unsigned short)(maxValue-clamp((*alpha)(pix),0.f,1.f)*maxValue); } + Magick::InitializeMagick(*argv); Magick::Image imImage( frame->getWidth(), frame->getHeight(), (alpha == NULL ? "RGB" : "RGBA"), Magick::ShortPixel, imgBuffer ); imImage.quality( quality ); Index: head/graphics/pfstools/files/patch-src-fileformat-pfsoutjpeghdr.cpp =================================================================== --- head/graphics/pfstools/files/patch-src-fileformat-pfsoutjpeghdr.cpp (revision 408807) +++ head/graphics/pfstools/files/patch-src-fileformat-pfsoutjpeghdr.cpp (revision 408808) @@ -1,40 +1,40 @@ ---- src/fileformat/pfsoutjpeghdr.cpp.orig 2005-11-04 08:54:27.000000000 +0000 -+++ src/fileformat/pfsoutjpeghdr.cpp 2014-02-20 19:04:01.546588828 +0000 -@@ -69,8 +69,7 @@ +--- src/fileformat/pfsoutjpeghdr.cpp.orig 2005-11-04 08:54:27 UTC ++++ src/fileformat/pfsoutjpeghdr.cpp +@@ -69,8 +69,7 @@ void writeHDRJPEGGray( FILE *fh, int wid jhinf.correction = correction; jpeg_stdio_dest(&jhinf.cinfo, fh); - image = (JHSAMPLE *)malloc(width * height * - sizeof(JHSAMPLE)*3); + image = new JHSAMPLE[width * height * 3]; for(int i=0;i #include +#define log2(x) ((float)log(x)/log(2)) + struct PPMData { pixval maxPV; Index: head/graphics/pfstools/files/patch-src-fileformat-rgbeio.cpp =================================================================== --- head/graphics/pfstools/files/patch-src-fileformat-rgbeio.cpp (revision 408807) +++ head/graphics/pfstools/files/patch-src-fileformat-rgbeio.cpp (revision 408808) @@ -1,29 +1,29 @@ ---- src/fileformat/rgbeio.cpp.orig 2007-12-06 11:00:49.000000000 +0000 -+++ src/fileformat/rgbeio.cpp 2014-02-20 19:04:01.556587853 +0000 -@@ -141,7 +141,7 @@ +--- src/fileformat/rgbeio.cpp.orig 2007-12-06 11:00:49 UTC ++++ src/fileformat/rgbeio.cpp +@@ -141,7 +141,7 @@ void rgb2rgbe( float r, float g, float b // Reading RGBE files void readRadianceHeader( FILE *file, int &width, int &height, float &exposure ) { - DEBUG_STR << "RGBE: reading header..." << endl; + DEBUG_STR << "RGBE: reading header..." << std::endl; // read header information char head[255]; -@@ -208,7 +208,7 @@ +@@ -208,7 +208,7 @@ void readRadianceHeader( FILE *file, int height = height - width; } */ - DEBUG_STR << "RGBE: image size " << width << "x" << height << endl; + DEBUG_STR << "RGBE: image size " << width << "x" << height << std::endl; } -@@ -389,7 +389,7 @@ +@@ -389,7 +389,7 @@ void writeRadiance( FILE *file, pfs::Arr int width = X->getCols(); int height = X->getRows(); - DEBUG_STR << "RGBE: writing image " << width << "x" << height << endl; + DEBUG_STR << "RGBE: writing image " << width << "x" << height << std::endl; if( Y->getCols() != width || Y->getRows() != height || Z->getCols() != width || Z->getRows() != height ) Index: head/graphics/pfstools/files/patch-src-filter-Makefile.am =================================================================== --- head/graphics/pfstools/files/patch-src-filter-Makefile.am (revision 408807) +++ head/graphics/pfstools/files/patch-src-filter-Makefile.am (revision 408808) @@ -1,20 +1,20 @@ ---- src/filter/Makefile.am.orig 2009-05-30 06:59:10.000000000 +0000 -+++ src/filter/Makefile.am 2014-02-20 19:04:01.556587853 +0000 +--- src/filter/Makefile.am.orig 2009-05-30 06:59:10 UTC ++++ src/filter/Makefile.am @@ -1,6 +1,7 @@ ### bin_PROGRAMS = pfsgamma pfsclamp pfstag pfssize pfsextractchannels pfspanoramic \ - pfsrotate pfsflip pfscut pfspad pfscat pfsabsolute pfsdisplayfunction + pfsrotate pfsflip pfscut pfspad pfscat pfsabsolute pfsdisplayfunction \ + pfswb man_MANS = pfsgamma.1 pfsclamp.1 pfstag.1 pfssize.1 pfsextractchannels.1 \ pfspanoramic.1 pfsrotate.1 pfsflip.1 pfscut.1 pfspad.1 pfscat.1 \ -@@ -34,6 +35,8 @@ +@@ -34,6 +35,8 @@ pfscat_SOURCES = pfscat.cpp pfsabsolute_SOURCES = pfsabsolute.cpp +pfswb_SOURCES = pfswb.cpp + LIBS += ../pfs/libpfs-1.2.la INCLUDES = -I${srcdir}/../pfs Index: head/graphics/pfstools/files/patch-src-filter-Makefile.in =================================================================== --- head/graphics/pfstools/files/patch-src-filter-Makefile.in (revision 408807) +++ head/graphics/pfstools/files/patch-src-filter-Makefile.in (revision 408808) @@ -1,58 +1,58 @@ ---- src/filter/Makefile.in.orig 2011-10-27 08:40:29.000000000 +0000 -+++ src/filter/Makefile.in 2014-02-20 19:04:01.556587853 +0000 -@@ -38,7 +38,8 @@ +--- src/filter/Makefile.in.orig 2011-10-27 08:40:29 UTC ++++ src/filter/Makefile.in +@@ -38,7 +38,8 @@ bin_PROGRAMS = pfsgamma$(EXEEXT) pfsclam pfssize$(EXEEXT) pfsextractchannels$(EXEEXT) \ pfspanoramic$(EXEEXT) pfsrotate$(EXEEXT) pfsflip$(EXEEXT) \ pfscut$(EXEEXT) pfspad$(EXEEXT) pfscat$(EXEEXT) \ - pfsabsolute$(EXEEXT) pfsdisplayfunction$(EXEEXT) + pfsabsolute$(EXEEXT) pfsdisplayfunction$(EXEEXT) \ + pfswb$(EXEEXT) subdir = src/filter DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -@@ -54,6 +55,9 @@ +@@ -54,6 +55,9 @@ CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" PROGRAMS = $(bin_PROGRAMS) +am_pfswb_OBJECTS = pfswb.$(OBJEXT) +pfswb_OBJECTS = $(am_pfswb_OBJECTS) +pfswb_LDADD = $(LDADD) am_pfsabsolute_OBJECTS = pfsabsolute.$(OBJEXT) pfsabsolute_OBJECTS = $(am_pfsabsolute_OBJECTS) pfsabsolute_LDADD = $(LDADD) -@@ -120,13 +124,15 @@ +@@ -120,13 +124,15 @@ SOURCES = $(pfsabsolute_SOURCES) $(pfsca $(pfscut_SOURCES) $(pfsdisplayfunction_SOURCES) \ $(pfsextractchannels_SOURCES) $(pfsflip_SOURCES) \ $(pfsgamma_SOURCES) $(pfspad_SOURCES) $(pfspanoramic_SOURCES) \ - $(pfsrotate_SOURCES) $(pfssize_SOURCES) $(pfstag_SOURCES) + $(pfsrotate_SOURCES) $(pfssize_SOURCES) $(pfstag_SOURCES) \ + $(pfswb_SOURCES) DIST_SOURCES = $(pfsabsolute_SOURCES) $(pfscat_SOURCES) \ $(pfsclamp_SOURCES) $(pfscut_SOURCES) \ $(pfsdisplayfunction_SOURCES) $(pfsextractchannels_SOURCES) \ $(pfsflip_SOURCES) $(pfsgamma_SOURCES) $(pfspad_SOURCES) \ $(pfspanoramic_SOURCES) $(pfsrotate_SOURCES) \ - $(pfssize_SOURCES) $(pfstag_SOURCES) + $(pfssize_SOURCES) $(pfstag_SOURCES) \ + $(pfswb_SOURCES) am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ -@@ -314,6 +320,7 @@ +@@ -314,6 +320,7 @@ pfscut_SOURCES = pfscut.cpp pfspad_SOURCES = pfspad.cpp pfscat_SOURCES = pfscat.cpp pfsabsolute_SOURCES = pfsabsolute.cpp +pfswb_SOURCES = pfswb.cpp INCLUDES = -I${srcdir}/../pfs all: all-am -@@ -392,6 +399,9 @@ +@@ -392,6 +399,9 @@ clean-binPROGRAMS: list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list +pfswb$(EXEEXT): $(pfswb_OBJECTS) $(pfswb_DEPENDENCIES) + @rm -f pfswb$(EXEEXT) + $(CXXLINK) $(pfswb_LDFLAGS) $(pfswb_OBJECTS) $(pfswb_LDADD) $(LIBS) pfsabsolute$(EXEEXT): $(pfsabsolute_OBJECTS) $(pfsabsolute_DEPENDENCIES) @rm -f pfsabsolute$(EXEEXT) $(CXXLINK) $(pfsabsolute_OBJECTS) $(pfsabsolute_LDADD) $(LIBS) Index: head/graphics/pfstools/files/patch-src-filter-pfscat.cpp =================================================================== --- head/graphics/pfstools/files/patch-src-filter-pfscat.cpp (revision 408807) +++ head/graphics/pfstools/files/patch-src-filter-pfscat.cpp (revision 408808) @@ -1,37 +1,37 @@ ---- src/filter/pfscat.cpp.orig 2008-01-01 13:01:21.000000000 +0000 -+++ src/filter/pfscat.cpp 2014-02-20 19:04:01.556587853 +0000 +--- src/filter/pfscat.cpp.orig 2008-01-01 13:01:21 UTC ++++ src/filter/pfscat.cpp @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include -@@ -202,16 +203,12 @@ +@@ -202,16 +203,12 @@ if (alignment==UNSP) throw pfs::Exceptio pfs::FrameFileIterator it ( argc, argv, "rb", NULL, NULL, optString, cmdLineOptions); int pipe_no = 0; -pfs::FrameFile * ff; -ff = (pfs::FrameFile *) malloc ((pipe_no+1) * sizeof(pfs::FrameFile)); - +std::vector ff; while (1) { - ff[pipe_no] = it.getNextFrameFile(); + ff.push_back(it.getNextFrameFile()); if (ff[pipe_no].fh == NULL) break; // no more files pipe_no++; - ff=(pfs::FrameFile *) realloc(ff, (pipe_no+1)*sizeof(pfs::FrameFile)); } - if(pipe_no == 0) { // no named pipes pipe_no = 1; pipes = false; -@@ -408,7 +405,6 @@ +@@ -408,7 +405,6 @@ if(!pipes) { } for (int i=0; i1e-4) ? clampMin : 1e-4; - clampMax = (clampMax<1e8) ? clampMax : 1e8; + clampMin = (clampMin>1e-20) ? clampMin : 1e-20; + clampMax = (clampMax<1e+20) ? clampMax : 1e+20; if( clampMin >= clampMax ) throw pfs::Exception("incorrect clamping range"); } Index: head/graphics/pfstools/files/patch-src-filter-pfsextractchannels.cpp =================================================================== --- head/graphics/pfstools/files/patch-src-filter-pfsextractchannels.cpp (revision 408807) +++ head/graphics/pfstools/files/patch-src-filter-pfsextractchannels.cpp (revision 408808) @@ -1,11 +1,11 @@ ---- src/filter/pfsextractchannels.cpp.orig 2005-06-15 13:36:54.000000000 +0000 -+++ src/filter/pfsextractchannels.cpp 2014-02-20 19:04:01.556587853 +0000 -@@ -46,7 +46,7 @@ +--- src/filter/pfsextractchannels.cpp.orig 2005-06-15 13:36:54 UTC ++++ src/filter/pfsextractchannels.cpp +@@ -46,7 +46,7 @@ void printHelp() "See man page for more information.\n" ); } -static void errorCheck( bool condition, char *string ) +static void errorCheck( bool condition, char const *string ) { if( !condition ) { fprintf( stderr, PROG_NAME " error: %s\n", string ); Index: head/graphics/pfstools/files/patch-src-filter-pfspanoramic.cpp =================================================================== --- head/graphics/pfstools/files/patch-src-filter-pfspanoramic.cpp (revision 408807) +++ head/graphics/pfstools/files/patch-src-filter-pfspanoramic.cpp (revision 408808) @@ -1,38 +1,38 @@ ---- src/filter/pfspanoramic.cpp.orig 2010-02-18 11:27:03.000000000 +0000 -+++ src/filter/pfspanoramic.cpp 2014-02-20 19:04:01.556587853 +0000 -@@ -93,7 +93,7 @@ +--- src/filter/pfspanoramic.cpp.orig 2010-02-18 11:27:03 UTC ++++ src/filter/pfspanoramic.cpp +@@ -93,7 +93,7 @@ class Vector3D } //TODO: optimize rotations by precomputing sines and cosines - Vector3D rotateX(double angle) + void rotateX(double angle) { angle *= (M_PI / 180); -@@ -107,7 +107,7 @@ +@@ -107,7 +107,7 @@ class Vector3D z = z2; } - Vector3D rotateY(double angle) + void rotateY(double angle) { angle *= (M_PI / 180); -@@ -121,7 +121,7 @@ +@@ -121,7 +121,7 @@ class Vector3D z = z2; } - Vector3D rotateZ(double angle) + void rotateZ(double angle) { angle *= (M_PI / 180); -@@ -195,7 +195,7 @@ +@@ -195,7 +195,7 @@ class ProjectionFactory { char *opts; - if(opts = strchr(name, '/')) + if ((opts = strchr(name, '/'))) { *opts++ = '\0'; } Index: head/graphics/pfstools/files/patch-src-filter-pfstag.cpp =================================================================== --- head/graphics/pfstools/files/patch-src-filter-pfstag.cpp (revision 408807) +++ head/graphics/pfstools/files/patch-src-filter-pfstag.cpp (revision 408808) @@ -1,23 +1,23 @@ ---- src/filter/pfstag.cpp.orig 2005-06-15 13:36:54.000000000 +0000 -+++ src/filter/pfstag.cpp 2014-02-20 19:04:01.556587853 +0000 -@@ -58,7 +58,7 @@ +--- src/filter/pfstag.cpp.orig 2005-06-15 13:36:54 UTC ++++ src/filter/pfstag.cpp +@@ -58,7 +58,7 @@ struct TagOperation string channel; }; -typedef list ListOfTags; +typedef std::list ListOfTags; TagOperation parseTagOperation( const char *tag, bool remove ) { -@@ -133,9 +133,9 @@ +@@ -133,9 +133,9 @@ void setTagsOnFrames( int argc, char* ar for( it = setTags.begin(); it != setTags.end(); it++ ) { TagOperation &tagop = *it; if( tagop.remove ) - cerr << PROG_NAME ": remove tag '" << tagop.name << "'\n"; + std::cerr << PROG_NAME ": remove tag '" << tagop.name << "'\n"; else - cerr << PROG_NAME ": set tag '" << tagop.name << "' to '" << tagop.value << "'\n"; + std::cerr << PROG_NAME ": set tag '" << tagop.name << "' to '" << tagop.value << "'\n"; } } Index: head/graphics/pfstools/files/patch-src-filter-pfswb.cpp =================================================================== --- head/graphics/pfstools/files/patch-src-filter-pfswb.cpp (revision 408807) +++ head/graphics/pfstools/files/patch-src-filter-pfswb.cpp (revision 408808) @@ -1,300 +1,300 @@ ---- src/filter/pfswb.cpp.orig 2014-02-20 19:04:01.556587853 +0000 -+++ src/filter/pfswb.cpp 2014-02-20 19:06:49.706586923 +0000 +--- src/filter/pfswb.cpp.orig 2016-02-12 17:10:27 UTC ++++ src/filter/pfswb.cpp @@ -0,0 +1,297 @@ +/** + * @file pfswb.cpp + * @brief Adjust white balance in RGB color space + * + * This file is a part of PFSTOOLS package. + * ---------------------------------------------------------------------- + * Copyright (C) 2008 Iouri V. Ivliev + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * ---------------------------------------------------------------------- + * + * @author Iouri V. Ivliev + * + * $Id: $ + */ + +#include + +#include +#include +#include +#include +#include + +#include + +#define PROG_NAME "pfswb" + +class QuietException +{ +}; + +static void printHelp() +{ + std::cerr << PROG_NAME " (" PACKAGE_STRING ") :\n" + "\t[--red ] [--green ] [--blue ]\n" + "\t[--auto] [--x ] [--y ] [--width ] [--height ]\n" + "\t[--keep-lum]\n" + "\t[--verbose] [--help]\n" + "See man page for more information.\n"; +} + +// verbose mode +static bool verbose = false; + +// auto WB +static bool autowb = false; +// default gray box bounds +static int x = 0; +static int y = 0; +static int width = INT_MAX/2; +static int height = INT_MAX/2; + +// keep original luminance +static bool keep = false; + +// default WB multipliers +static float red = 1.f; +static float green = 1.f; +static float blue = 1.f; + +static void multipliers( + const pfs::Array2D &R, const pfs::Array2D &G, const pfs::Array2D &B, + float &r, float &g, float &b) +{ + r = red; + g = green; + b = blue; + if (!autowb) return; + // auto WB gray box + int w = R.getCols(); + int h = R.getRows(); + if (x>=w || y>=h) + throw pfs::Exception("gray box is out of frame bounds"); + int x1 = width+x; + if (x1>w) x1 = w; + int y1 = height+y; + if (y1>h) y1 = h; + VERBOSE_STR + << "auto WB gray box: " + << (x1-x) << "x" << (y1-y) << "+" << x << "+" << y << std::endl; + // auto WB multipliers + double ar = 0.; + double ag = 0.; + double ab = 0.; + for (int y0=y; y0getXYZChannels(X, Y, Z); + if (!(Y && X && Z)) + { + throw pfs::Exception( "Missing X, Y, Z channels in the PFS stream" ); + } + int w = Y->getCols(); + int h = Y->getRows(); + int s = w*h; + float min = 1e20, max = -1e20; + for (int i=s; i--; ) + { + float const &l = (*Y)(i); + if (min > l) min = l; + if (max < l) max = l; + } + VERBOSE_STR << "luminance range of original frame: " << min << ":" << max << std::endl; + // Convert from XYZ to RGB + pfs::transformColorSpace(pfs::CS_XYZ, X, Y, Z, pfs::CS_RGB, X, Y, Z); + // WB adjustment + float r, g, b; + multipliers(*X,*Y,*Z,r,g,b); + VERBOSE_STR << "red multiplier value: " << r << std::endl; + VERBOSE_STR << "green multiplier value: " << g << std::endl; + VERBOSE_STR << "blue multiplier value: " << b << std::endl; + for (int i=s; i--; ) + { + (*X)(i) *= r; + (*Y)(i) *= g; + (*Z)(i) *= b; + } + // Convert back to XYZ + pfs::transformColorSpace(pfs::CS_RGB, X, Y, Z, pfs::CS_XYZ, X, Y, Z); + float amin = 1e20, amax = -1e20; + for (int i=s; i--; ) + { + float const &l = (*Y)(i); + if (amin > l) amin = l; + if (amax < l) amax = l; + } + VERBOSE_STR << "luminance range of adjusted frame: " << amin << ":" << amax << std::endl; + if (keep) + { + float k = (max-min)/(amax-amin); + float nmin = 1e20, nmax = -1e20; + for (int i=s; i--; ) + { + float const &l = ((*Y)(i)-amin)*k+min; + if (nmin > l) nmin = l; + if (nmax < l) nmax = l; + (*Y)(i) = l; + } + VERBOSE_STR << "restored luminance range: " << nmin << ":" << nmax << std::endl; + } + // Write frame + pfsio.writeFrame(frame, stdout); + pfsio.freeFrame(frame); + } +} + +int main(int argc, char *const argv[]) +{ + static const struct option cmdLineOptions[] = { + { "help", no_argument, NULL, 'h' }, + { "verbose", no_argument, NULL, 'v' }, + { "auto", no_argument, NULL, 'A' }, + { "x", required_argument, NULL, 'X' }, + { "y", required_argument, NULL, 'Y' }, + { "width", required_argument, NULL, 'W' }, + { "height", required_argument, NULL, 'H' }, + { "keep-lum", no_argument, NULL, 'k' }, + { "red", required_argument, NULL, 'r' }, + { "green", required_argument, NULL, 'g' }, + { "blue", required_argument, NULL, 'b' }, + { NULL, 0, NULL, 0 } + }; + + try + { + int optionIndex = 0; + while (true) + { + int c = getopt_long(argc, argv, "hvAX:Y:W:H:kr:g:b:", cmdLineOptions, &optionIndex); + if (c == -1) + { + break; + } + switch (c) + { + case 'h': + printHelp(); + throw QuietException(); + case 'v': + verbose = true; + break; + case 'A': + autowb = true; + break; + case 'X': + x = (int)strtol(optarg, NULL, 10); + if (x<=0) + throw pfs::Exception("gray box x value out of range, should be >0"); + break; + case 'Y': + y = (int)strtol(optarg, NULL, 10); + if (y<=0) + throw pfs::Exception("gray box y value out of range, should be >0"); + break; + case 'W': + width = (int)strtol(optarg, NULL, 10); + if (width<=0) + throw pfs::Exception("gray box width value out of range, should be >0"); + break; + case 'H': + height = (int)strtol(optarg, NULL, 10); + if (height<=0) + throw pfs::Exception("gray box height value out of range, should be >0"); + break; + case 'k': + keep = true; + break; + case 'r': + red = strtof(optarg, NULL); + if (red<=0.0f) + throw pfs::Exception("red multiplier value out of range, should be >0"); + break; + case 'g': + green = strtof(optarg, NULL); + if (green<=0.0f) + throw pfs::Exception("green multiplier value out of range, should be >0"); + break; + case 'b': + blue = strtof(optarg, NULL); + if (blue<=0.0f) + throw pfs::Exception("blue multiplier value out of range, should be >0"); + break; + case '?': + throw QuietException(); + case ':': + throw QuietException(); + } + } + + pfswb(); + } + catch (std::exception ex) + { + std::cerr << PROG_NAME" std error: " << ex.what() << std::endl; + return EXIT_FAILURE; + } + catch (pfs::Exception ex) + { + std::cerr << PROG_NAME" error: " << ex.getMessage() << std::endl; + return EXIT_FAILURE; + } + catch (QuietException ex) + { + return EXIT_FAILURE; + } + return EXIT_SUCCESS; +} Index: head/graphics/pfstools/files/patch-src-hdrhtml-hdrhtml.cpp =================================================================== --- head/graphics/pfstools/files/patch-src-hdrhtml-hdrhtml.cpp (revision 408807) +++ head/graphics/pfstools/files/patch-src-hdrhtml-hdrhtml.cpp (revision 408808) @@ -1,192 +1,192 @@ ---- src/hdrhtml/hdrhtml.cpp.orig 2009-03-11 21:45:55.000000000 +0000 -+++ src/hdrhtml/hdrhtml.cpp 2014-02-20 19:04:01.566588122 +0000 +--- src/hdrhtml/hdrhtml.cpp.orig 2009-03-11 21:45:55 UTC ++++ src/hdrhtml/hdrhtml.cpp @@ -27,6 +27,7 @@ #include "hdrhtml.h" +#include #include #include #include @@ -48,6 +49,8 @@ #include +#define log2f(x) ((float)logf(x)/logf(2)) + // ================================================ // Parameters controllig the web page // ================================================ -@@ -94,8 +97,8 @@ +@@ -94,8 +97,8 @@ public: if( min_val > max_val ) // missing min/max info { - min_val = numeric_limits::max(); - max_val = numeric_limits::min(); + min_val = std::numeric_limits::max(); + max_val = std::numeric_limits::min(); for( int k=0; k < d_size; k++ ) { if( data[k] > max_val ) max_val = data[k]; -@@ -195,6 +198,7 @@ +@@ -195,6 +198,7 @@ public: this->y_i = new float[lut_size]; own_y_i = true; memcpy(this->y_i, other.y_i, lut_size * sizeof(float)); + return *this; } ~UniformArrayLUT() -@@ -341,7 +345,7 @@ +@@ -341,7 +345,7 @@ public: for( int k = 1; k < bin_n; k++ ) hist.n[k] += hist.n[k-1]; -// cerr << "d_size: " << d_size << " hist.n: " << hist.n[bin_n-1] << "\n"; +// std::cerr << "d_size: " << d_size << " hist.n: " << hist.n[bin_n-1] << "\n"; assert( hist.n[bin_n-1] == d_size ); } -@@ -361,7 +365,7 @@ +@@ -361,7 +365,7 @@ public: // Text template file utils // ================================================ -typedef void (*replace_callback)( ostream &out, void *user_data, const char *parameter ); +typedef void (*replace_callback)( std::ostream &out, void *user_data, const char *parameter ); class ReplacePattern { -@@ -403,7 +407,7 @@ +@@ -403,7 +407,7 @@ public: { } - virtual void write_replacement( ostream &out, const char *parameter = NULL ) + virtual void write_replacement( std::ostream &out, const char *parameter = NULL ) { if( callback != NULL ) callback( out, user_data, parameter ); -@@ -567,7 +571,7 @@ +@@ -567,7 +571,7 @@ public: // Skip white spaces while( line_str[pos] == ' ' || line_str[pos] == '\t' ) pos++; int new_pos = line_str.find_first_of( ',', pos ); - int len; + size_t len; if( new_pos == std::string::npos ) { if( k != columns-1 ) { std::string full_message( "Missing column data in the file: " ); -@@ -576,16 +580,16 @@ +@@ -576,16 +580,16 @@ public: } len = std::string::npos; } else - len = new_pos-pos; + len = (size_t)(new_pos-pos); float value; if( len == 0 ) { - value = numeric_limits::quiet_NaN(); + value = std::numeric_limits::quiet_NaN(); } else { std::string token = line_str.substr( pos, len ); const char *str_beg = token.c_str(); char *str_end; -// cerr << "token: " << str_beg << "\n"; +// std::cerr << "token: " << str_beg << "\n"; value = strtof( str_beg, &str_end ); if( str_beg == str_end ) { std::ostringstream error_message; -@@ -643,15 +647,15 @@ +@@ -643,15 +647,15 @@ void HDRHTMLSet::add_image( int width, i basis_table.data[0][k] = log2f( basis_table.data[0][k] ); // Fix zero and negative values in the image, convert to log2 space, find min and max values - float img_min = numeric_limits::max(); - float img_max = numeric_limits::min(); + float img_min = std::numeric_limits::max(); + float img_max = std::numeric_limits::min(); { float *arrays[] = { R, G, B, Y }; int k; for( k = 0; k < 4; k++ ) { float *x = arrays[k]; - float min_val = numeric_limits::max(), max_val = numeric_limits::min(); + float min_val = std::numeric_limits::max(), max_val = std::numeric_limits::min(); for( int i=0; i < pixels; i++ ) { if( x[i] < min_val && x[i] > 0) min_val = x[i]; -@@ -741,7 +745,7 @@ +@@ -741,7 +745,7 @@ void HDRHTMLSet::add_image( int width, i for( int k=1; k <= f8_stops+1; k++ ) { - float max_value = (float)numeric_limits::max(); //(1<<16) -1; + float max_value = (float)std::numeric_limits::max(); //(1<<16) -1; float exp_multip = log2f(1/powf( 2, l_start + k*8 )); -@@ -796,9 +800,9 @@ +@@ -796,9 +800,9 @@ void HDRHTMLSet::add_image( int width, i } -void print_image_objects( ostream &out, void *user_data, const char *parameter ); -void print_cf_table( ostream &out, void *user_data, const char *parameter ); -void print_image_htmlcode( ostream &out, void *user_data, const char *parameter ); +void print_image_objects( std::ostream &out, void *user_data, const char *parameter ); +void print_cf_table( std::ostream &out, void *user_data, const char *parameter ); +void print_image_htmlcode( std::ostream &out, void *user_data, const char *parameter ); void HDRHTMLSet::generate_webpage( const char *page_template, const char *image_template, const char *object_output, const char *html_output) -@@ -852,11 +856,11 @@ +@@ -852,11 +856,11 @@ void HDRHTMLSet::generate_webpage( const } -void print_image_objects( ostream &out, void *user_data, const char *parameter ) +void print_image_objects( std::ostream &out, void *user_data, const char *parameter ) { HDRHTMLSet *hdrhtml_set = (HDRHTMLSet*)user_data; - list::iterator it; + std::list::iterator it; for( it = hdrhtml_set->image_list.begin(); it != hdrhtml_set->image_list.end(); it++ ) { std::string obj_name( "hdr_" ); obj_name.append( it->base_name ); -@@ -882,7 +886,7 @@ +@@ -882,7 +886,7 @@ void print_image_objects( ostream &out, } -void print_image_htmlcode( ostream &out, HDRHTMLSet *hdrhtml_set, const HDRHTMLImage &it ) +void print_image_htmlcode( std::ostream &out, HDRHTMLSet *hdrhtml_set, const HDRHTMLImage &it ) { std::string obj_name( "hdr_" ); obj_name.append( it.base_name ); -@@ -907,13 +911,13 @@ +@@ -907,13 +911,13 @@ void print_image_htmlcode( ostream &out, } -void print_image_htmlcode( ostream &out, void *user_data, const char *parameter ) +void print_image_htmlcode( std::ostream &out, void *user_data, const char *parameter ) { HDRHTMLSet *hdrhtml_set = (HDRHTMLSet*)user_data; if( parameter != NULL ) { - list::iterator it; + std::list::iterator it; for( it = hdrhtml_set->image_list.begin(); it != hdrhtml_set->image_list.end(); it++ ) { if( it->base_name.compare( parameter ) == 0 ) break; -@@ -925,7 +929,7 @@ +@@ -925,7 +929,7 @@ void print_image_htmlcode( ostream &out, } else { - list::iterator it; + std::list::iterator it; for( it = hdrhtml_set->image_list.begin(); it != hdrhtml_set->image_list.end(); it++ ) { print_image_htmlcode( out, hdrhtml_set, *it ); -@@ -935,7 +939,7 @@ +@@ -935,7 +939,7 @@ void print_image_htmlcode( ostream &out, } -void print_cf_table( ostream &out, void *user_data, const char *parameter ) +void print_cf_table( std::ostream &out, void *user_data, const char *parameter ) { CSVTable *cf = (CSVTable*)user_data; Index: head/graphics/pfstools/files/patch-src-matlab-compatibility.h =================================================================== --- head/graphics/pfstools/files/patch-src-matlab-compatibility.h (revision 408807) +++ head/graphics/pfstools/files/patch-src-matlab-compatibility.h (revision 408808) @@ -1,10 +1,10 @@ ---- src/matlab/compatibility.h.orig 2007-03-01 14:10:57.000000000 +0000 -+++ src/matlab/compatibility.h 2014-02-20 19:04:01.566588122 +0000 +--- src/matlab/compatibility.h.orig 2007-03-01 14:10:57 UTC ++++ src/matlab/compatibility.h @@ -59,6 +59,6 @@ #endif -#define DEBUG_STR if(1); else cerr +#define DEBUG_STR if(1); else std::cerr #endif Index: head/graphics/pfstools/files/patch-src-octave-pfsclose.cpp =================================================================== --- head/graphics/pfstools/files/patch-src-octave-pfsclose.cpp (nonexistent) +++ head/graphics/pfstools/files/patch-src-octave-pfsclose.cpp (revision 408808) @@ -0,0 +1,14 @@ +--- src/octave/pfsclose.cpp.orig 2016-02-12 17:10:27 UTC ++++ src/octave/pfsclose.cpp +@@ -53,9 +53,9 @@ DEFUN_DLD( pfsclose, args, , helpString + return retval; + } + +- Octave_map pfsStream = args(0).map_value(); ++ octave_map pfsStream = args(0).map_value(); + +- Octave_map::const_iterator itFH = pfsStream.seek( "FH" ); ++ octave_map::const_iterator itFH = pfsStream.seek( "FH" ); + if( itFH == pfsStream.end() || + !pfsStream.contents( itFH )(0).is_real_scalar() ) + { Property changes on: head/graphics/pfstools/files/patch-src-octave-pfsclose.cpp ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/graphics/pfstools/files/patch-src-octave-pfsget.cpp =================================================================== --- head/graphics/pfstools/files/patch-src-octave-pfsget.cpp (nonexistent) +++ head/graphics/pfstools/files/patch-src-octave-pfsget.cpp (revision 408808) @@ -0,0 +1,58 @@ +--- src/octave/pfsget.cpp.orig 2016-02-12 17:10:27 UTC ++++ src/octave/pfsget.cpp +@@ -52,9 +52,9 @@ DEFUN_DLD( pfsget, args, , helpString) + return retval; + } + +- Octave_map pfsStream = args(0).map_value(); ++ octave_map pfsStream = args(0).map_value(); + +- Octave_map::const_iterator itFH = pfsStream.seek( "FH" ); ++ octave_map::const_iterator itFH = pfsStream.seek( "FH" ); + if( itFH == pfsStream.end() || + !pfsStream.contents( itFH )(0).is_real_scalar() ) + { +@@ -63,7 +63,7 @@ DEFUN_DLD( pfsget, args, , helpString) + } + FILE *fh = (FILE*)((long)(pfsStream.contents( itFH )(0).double_value())); + +- Octave_map::const_iterator itMode = pfsStream.seek( "MODE" ); ++ octave_map::const_iterator itMode = pfsStream.seek( "MODE" ); + if( itMode == pfsStream.end() || !pfsStream.contents( itMode )(0).is_string() ) + { + error( SCRIPT_NAME ": MODE field missing in the structure or it has wrong type"); +@@ -95,7 +95,7 @@ DEFUN_DLD( pfsget, args, , helpString) + + // Add channels as matrices to pfs stream struct + { +- Octave_map channels; ++ octave_scalar_map channels; + + pfs::ChannelIteratorPtr cit( frame->getChannelIterator() ); + while( cit->hasNext() ) { +@@ -115,7 +115,7 @@ DEFUN_DLD( pfsget, args, , helpString) + + //Add tags + { +- Octave_map tags; ++ octave_scalar_map tags; + + pfs::TagIteratorPtr it( frame->getTags()->getIterator() ); + while( it->hasNext() ) { +@@ -124,14 +124,14 @@ DEFUN_DLD( pfsget, args, , helpString) + } + pfsStream.assign( "tags", tags ); + +- Octave_map channelTagList; ++ octave_scalar_map channelTagList; + + //Copy all channel tags + pfs::ChannelIteratorPtr cit( frame->getChannelIterator() ); + while( cit->hasNext() ) { + pfs::Channel *ch = cit->getNext(); + +- Octave_map channelTags; ++ octave_scalar_map channelTags; + + pfs::TagIteratorPtr tit( ch->getTags()->getIterator() ); + while( tit->hasNext() ) { Property changes on: head/graphics/pfstools/files/patch-src-octave-pfsget.cpp ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/graphics/pfstools/files/patch-src-octave-pfsopen.cpp =================================================================== --- head/graphics/pfstools/files/patch-src-octave-pfsopen.cpp (nonexistent) +++ head/graphics/pfstools/files/patch-src-octave-pfsopen.cpp (revision 408808) @@ -0,0 +1,20 @@ +--- src/octave/pfsopen.cpp.orig 2016-02-12 17:10:27 UTC ++++ src/octave/pfsopen.cpp +@@ -137,7 +137,7 @@ DEFUN_DLD( pfsopen, args, , helpString) + } + } + +- Octave_map pfsStream; ++ octave_map pfsStream; + pfsStream.assign( "FH", octave_value((double)((long)fh)) ); + pfsStream.assign( "MODE", writeMode ? octave_value("W") : octave_value("R") ); + pfsStream.assign( "EOF", octave_value(false) ); +@@ -145,7 +145,7 @@ DEFUN_DLD( pfsopen, args, , helpString) + if( writeMode ) { + pfsStream.assign( "columns", octave_value(width) ); + pfsStream.assign( "rows", octave_value(height) ); +- Octave_map channels; ++ octave_map channels; + pfsStream.assign( "channels", octave_value(channels) ); + } + Property changes on: head/graphics/pfstools/files/patch-src-octave-pfsopen.cpp ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/graphics/pfstools/files/patch-src-octave-pfsput.cpp =================================================================== --- head/graphics/pfstools/files/patch-src-octave-pfsput.cpp (nonexistent) +++ head/graphics/pfstools/files/patch-src-octave-pfsput.cpp (revision 408808) @@ -0,0 +1,103 @@ +--- src/octave/pfsput.cpp.orig 2016-02-12 17:10:27 UTC ++++ src/octave/pfsput.cpp +@@ -52,9 +52,9 @@ DEFUN_DLD( pfsput, args, , helpString) + return retval; + } + +- Octave_map pfsStream = args(0).map_value(); ++ octave_map pfsStream = args(0).map_value(); + +- Octave_map::const_iterator itFH = pfsStream.seek( "FH" ); ++ octave_map::const_iterator itFH = pfsStream.seek( "FH" ); + if( itFH == pfsStream.end() || + !pfsStream.contents( itFH )(0).is_real_scalar() ) + { +@@ -65,7 +65,7 @@ DEFUN_DLD( pfsput, args, , helpString) + + // Check mode + { +- Octave_map::const_iterator itMode = pfsStream.seek( "MODE" ); ++ octave_map::const_iterator itMode = pfsStream.seek( "MODE" ); + if( itMode == pfsStream.end() || !pfsStream.contents( itMode )(0).is_string() ) + { + error( SCRIPT_NAME ": MODE field missing in the structure or it has wrong type"); +@@ -80,8 +80,8 @@ DEFUN_DLD( pfsput, args, , helpString) + // Get width & height + int width, height; + { +- Octave_map::const_iterator itCols = pfsStream.seek( "columns" ); +- Octave_map::const_iterator itRows = pfsStream.seek( "rows" ); ++ octave_map::const_iterator itCols = pfsStream.seek( "columns" ); ++ octave_map::const_iterator itRows = pfsStream.seek( "rows" ); + if( itCols == pfsStream.end() || itRows == pfsStream.end() || + !pfsStream.contents( itCols )(0).is_real_scalar() || + !pfsStream.contents( itRows )(0).is_real_scalar() ) +@@ -94,9 +94,9 @@ DEFUN_DLD( pfsput, args, , helpString) + } + + // Get channels +- Octave_map channels; ++ octave_map channels; + { +- Octave_map::const_iterator itChannels = pfsStream.seek( "channels" ); ++ octave_map::const_iterator itChannels = pfsStream.seek( "channels" ); + if( itChannels == pfsStream.end() || + !pfsStream.contents( itChannels )(0).is_map() ) + { +@@ -111,7 +111,7 @@ DEFUN_DLD( pfsput, args, , helpString) + pfs::Frame *frame = ctx.createFrame( width, height ); + + // For each channel in the 'channels' map +- for( Octave_map::iterator itCh = channels.begin(); itCh != channels.end(); itCh++ ) { ++ for( octave_map::iterator itCh = channels.begin(); itCh != channels.end(); itCh++ ) { + std::string channelName = channels.key(itCh); + + if( !channels.contents( itCh )(0).is_real_matrix() ) { +@@ -135,15 +135,15 @@ DEFUN_DLD( pfsput, args, , helpString) + + // Copy frame tags + { +- Octave_map::const_iterator itTags = pfsStream.seek( "tags" ); ++ octave_map::const_iterator itTags = pfsStream.seek( "tags" ); + if( itTags != pfsStream.end() ) { + if( !pfsStream.contents( itTags )(0).is_map() ) + { + throw pfs::Exception( "'tags' field must be a structure" ); + } + +- Octave_map tags = pfsStream.contents( itTags )(0).map_value(); +- for( Octave_map::iterator itTag = tags.begin(); itTag != tags.end(); itTag++ ) { ++ octave_map tags = pfsStream.contents( itTags )(0).map_value(); ++ for( octave_map::iterator itTag = tags.begin(); itTag != tags.end(); itTag++ ) { + std::string tagName = tags.key(itTag); + + if( !tags.contents( itTag )(0).is_string() ) +@@ -156,14 +156,14 @@ DEFUN_DLD( pfsput, args, , helpString) + + // Copy channel tags + { +- Octave_map::const_iterator itChTags = pfsStream.seek( "channelTags" ); ++ octave_map::const_iterator itChTags = pfsStream.seek( "channelTags" ); + if( itChTags != pfsStream.end() ) { + if( !pfsStream.contents( itChTags )(0).is_map() ) + { + throw pfs::Exception( "'channelTags' field must be a structure" ); + } +- Octave_map tagChannels = pfsStream.contents( itChTags )(0).map_value(); +- for( Octave_map::iterator itCh = tagChannels.begin(); itCh != tagChannels.end(); itCh++ ) { ++ octave_map tagChannels = pfsStream.contents( itChTags )(0).map_value(); ++ for( octave_map::iterator itCh = tagChannels.begin(); itCh != tagChannels.end(); itCh++ ) { + std::string channelName = tagChannels.key(itCh); + if( !tagChannels.contents( itCh )(0).is_map() ) { + throw pfs::Exception( "each channelTags file must be a structure" ); +@@ -173,8 +173,8 @@ DEFUN_DLD( pfsput, args, , helpString) + throw pfs::Exception( "can not set channel tag if channel is missing" ); + } + +- Octave_map tags = tagChannels.contents( itCh )(0).map_value(); +- for( Octave_map::iterator itTag = tags.begin(); itTag != tags.end(); itTag++ ) { ++ octave_map tags = tagChannels.contents( itCh )(0).map_value(); ++ for( octave_map::iterator itTag = tags.begin(); itTag != tags.end(); itTag++ ) { + std::string tagName = tags.key(itTag); + if( !tags.contents( itTag )(0).is_string() ) + throw pfs::Exception( "all channel tags must be given as strings" ); Property changes on: head/graphics/pfstools/files/patch-src-octave-pfsput.cpp ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/graphics/pfstools/files/patch-src-pfs-Makefile.in =================================================================== --- head/graphics/pfstools/files/patch-src-pfs-Makefile.in (revision 408807) +++ head/graphics/pfstools/files/patch-src-pfs-Makefile.in (revision 408808) @@ -1,11 +1,11 @@ ---- src/pfs/Makefile.in.orig 2011-10-27 08:40:30.000000000 +0000 -+++ src/pfs/Makefile.in 2014-02-20 19:04:01.566588122 +0000 -@@ -259,7 +259,7 @@ +--- src/pfs/Makefile.in.orig 2011-10-27 08:40:30 UTC ++++ src/pfs/Makefile.in +@@ -259,7 +259,7 @@ libpfs_1_2_la_SOURCES = pfs.cpp pfsutils library_includedir = $(includedir)/pfs-1.2 library_include_HEADERS = pfs.h array2d.h #INCLUDES = -pkgconfigdir = $(libdir)/pkgconfig +pkgconfigdir = $(prefix)/libdata/pkgconfig pkgconfig_DATA = pfs.pc all: all-am Index: head/graphics/pfstools/files/patch-src-pfs-pfs.cpp =================================================================== --- head/graphics/pfstools/files/patch-src-pfs-pfs.cpp (revision 408807) +++ head/graphics/pfstools/files/patch-src-pfs-pfs.cpp (revision 408808) @@ -1,29 +1,29 @@ ---- src/pfs/pfs.cpp.orig 2010-07-14 09:44:27.000000000 +0000 -+++ src/pfs/pfs.cpp 2014-02-20 19:04:01.566588122 +0000 -@@ -71,7 +71,7 @@ +--- src/pfs/pfs.cpp.orig 2010-07-14 09:44:27 UTC ++++ src/pfs/pfs.cpp +@@ -71,7 +71,7 @@ const char *PFSFILEID="PFS1\x0a"; // TagContainer implementation //------------------------------------------------------------------------------ -typedef list TagList; +typedef std::list TagList; class TagIteratorImpl: public TagIterator { -@@ -570,7 +570,7 @@ +@@ -570,7 +570,7 @@ public: //Read channel IDs and tags // FrameImpl::ChannelID *channelID = new FrameImpl::ChannelID[channelCount]; - list orderedChannel; + std::list orderedChannel; for( int i = 0; i < channelCount; i++ ) { char channelName[MAX_CHANNEL_NAME+1], *rs; rs = fgets( channelName, MAX_CHANNEL_NAME, inputStream ); -@@ -592,7 +592,7 @@ +@@ -592,7 +592,7 @@ public: //Read channels - list::iterator it; + std::list::iterator it; for( it = orderedChannel.begin(); it != orderedChannel.end(); it++ ) { ChannelImpl *ch = *it; int size = frame->getWidth()*frame->getHeight(); Index: head/graphics/pfstools/files/patch-src-pfs-pfs.h =================================================================== --- head/graphics/pfstools/files/patch-src-pfs-pfs.h (revision 408807) +++ head/graphics/pfstools/files/patch-src-pfs-pfs.h (revision 408808) @@ -1,45 +1,45 @@ ---- src/pfs/pfs.h.orig 2006-03-01 17:21:16.000000000 +0000 -+++ src/pfs/pfs.h 2014-02-20 19:04:01.566588122 +0000 -@@ -115,6 +115,7 @@ +--- src/pfs/pfs.h.orig 2006-03-01 17:21:16 UTC ++++ src/pfs/pfs.h +@@ -115,6 +115,7 @@ namespace pfs class TagIterator { public: + virtual ~TagIterator() {}; /** * Get next item on the list. * -@@ -135,6 +136,7 @@ +@@ -135,6 +136,7 @@ namespace pfs class TagContainer { public: + virtual ~TagContainer() {}; /** * Get a string tag of the name tagName from the TagContainer. * @param tagName name of the tag to retrieve -@@ -181,6 +183,7 @@ +@@ -181,6 +183,7 @@ namespace pfs */ class Channel : public Array2D { public: + virtual ~Channel() {}; /** * Gets width of the channel (in pixels). * This is a synonym for Array2D::getCols(). -@@ -226,6 +229,7 @@ +@@ -226,6 +229,7 @@ namespace pfs class ChannelIterator { public: + virtual ~ChannelIterator() {}; /** * Get next item on the list. */ -@@ -580,7 +584,9 @@ +@@ -580,7 +584,9 @@ namespace pfs */ Exception( const char* const message ) { - strcpy( msg, message ); + const size_t s = sizeof(msg)/sizeof(msg[0]) - 1; + strncpy( msg, message, s ); + msg[s] = '\0'; } ~Exception() {}; Index: head/graphics/pfstools/files/patch-src-pfs-pfsutils.cpp =================================================================== --- head/graphics/pfstools/files/patch-src-pfs-pfsutils.cpp (revision 408807) +++ head/graphics/pfstools/files/patch-src-pfs-pfsutils.cpp (revision 408808) @@ -1,11 +1,11 @@ ---- src/pfs/pfsutils.cpp.orig 2006-09-21 21:42:54.000000000 +0000 -+++ src/pfs/pfsutils.cpp 2014-02-20 19:04:01.566588122 +0000 -@@ -81,7 +81,7 @@ +--- src/pfs/pfsutils.cpp.orig 2006-09-21 21:42:54 UTC ++++ src/pfs/pfsutils.cpp +@@ -81,7 +81,7 @@ class FrameFileIteratorImpl char fileName[1024]; FILE *stdinout; - typedef list PatternList; + typedef std::list PatternList; PatternList patternList; PatternList::iterator currentPattern; Index: head/graphics/pfstools/files/patch-src-pfsglview-picture_io.cpp =================================================================== --- head/graphics/pfstools/files/patch-src-pfsglview-picture_io.cpp (revision 408807) +++ head/graphics/pfstools/files/patch-src-pfsglview-picture_io.cpp (revision 408808) @@ -1,29 +1,29 @@ ---- src/pfsglview/picture_io.cpp.orig 2006-11-20 12:13:13.000000000 +0000 -+++ src/pfsglview/picture_io.cpp 2014-02-20 19:04:01.566588122 +0000 -@@ -87,7 +87,7 @@ +--- src/pfsglview/picture_io.cpp.orig 2006-11-20 12:13:13 UTC ++++ src/pfsglview/picture_io.cpp +@@ -87,7 +87,7 @@ void PictureIO::setFrame(pfs::Frame *fra return; // only XYZ channels are taken into consideration - if( channel != "XYZ" && channel != "X00" && channel != "0Y0" && channel != "00Z" ) { + if (strcmp(channel,"XYZ") && strcmp(channel,"X00") && strcmp(channel,"0Y0") && strcmp(channel,"00Z")) { if(verbose) fprintf( stderr, "WARNING: wrong channel (PictureIO::setFrame())\n"); return; -@@ -573,7 +573,7 @@ +@@ -573,7 +573,7 @@ float PictureIO::getDynamicRange(void) { } std::sort(vec.begin(), vec.end()); - printf("size: %d\n", vec.size()); + printf("size: %lu\n", vec.size()); val = vec[0]; std::vector svec; -@@ -589,7 +589,7 @@ +@@ -589,7 +589,7 @@ float PictureIO::getDynamicRange(void) { float dr = svec[ svec.size()-1] / svec[0]; - printf("min:%ld max:%ld svec size: %d dr:%f\n", vec[0], vec[ vec.size()-1], svec.size(), log10(dr)); + printf("min:%u max:%u svec size: %lu dr:%f\n", vec[0], vec[ vec.size()-1], svec.size(), log10(dr)); Index: head/graphics/pfstools/files/patch-src-pfsglview-picture_io.h =================================================================== --- head/graphics/pfstools/files/patch-src-pfsglview-picture_io.h (revision 408807) +++ head/graphics/pfstools/files/patch-src-pfsglview-picture_io.h (revision 408808) @@ -1,13 +1,13 @@ ---- src/pfsglview/picture_io.h.orig 2008-07-29 16:14:30.000000000 +0000 -+++ src/pfsglview/picture_io.h 2014-02-20 19:04:01.566588122 +0000 +--- src/pfsglview/picture_io.h.orig 2008-07-29 16:14:30 UTC ++++ src/pfsglview/picture_io.h @@ -6,7 +6,9 @@ #define MAX_FRAMES_IN_MEMORY 10 -class pfs::Frame; +namespace pfs { +class Frame; +}; enum LumMappingMethod { MAP_LINEAR, MAP_GAMMA1_4, Index: head/graphics/pfstools/files/patch-src-pfsview-pfsview_widget.cpp =================================================================== --- head/graphics/pfstools/files/patch-src-pfsview-pfsview_widget.cpp (revision 408807) +++ head/graphics/pfstools/files/patch-src-pfsview-pfsview_widget.cpp (revision 408808) @@ -1,22 +1,22 @@ ---- src/pfsview/pfsview_widget.cpp.orig 2011-04-30 14:01:17.000000000 +0000 -+++ src/pfsview/pfsview_widget.cpp 2014-02-20 19:04:01.566588122 +0000 -@@ -142,7 +142,7 @@ +--- src/pfsview/pfsview_widget.cpp.orig 2011-04-30 14:01:17 UTC ++++ src/pfsview/pfsview_widget.cpp +@@ -142,7 +142,7 @@ void PFSViewWidget::setFrame( pfs::Frame // Chose first available channel pfs::ChannelIterator *it = frame->getChannels(); if( !it->hasNext() ) // TODO: failover - throw new pfs::Exception( "No channels available!" ); + throw pfs::Exception( "No channels available!" ); visibleChannel = it->getNext()->getName(); } else if( visibleChannel != COLOR_CHANNELS ) { // Get a new pointer, as the old frame object -@@ -335,8 +335,8 @@ +@@ -335,8 +335,8 @@ static void mapFrameToImage( pfs::Array2 assert( !color || (color && B != NULL) ); - float lutPixFloor[257*2]; - QRgb lutPixel[257*2]; + float lutPixFloor[257*2+1]; + QRgb lutPixel[257*2+1]; int lutSize; if( !color && ( negativeTreatment == NEGATIVE_GREEN_SCALE || negativeTreatment == NEGATIVE_ABSOLUTE ) ) { // Handle negative numbers Index: head/graphics/pfstools/pkg-plist =================================================================== --- head/graphics/pfstools/pkg-plist (revision 408807) +++ head/graphics/pfstools/pkg-plist (revision 408808) @@ -1,110 +1,134 @@ bin/pfsinrgbe bin/pfsoutrgbe bin/pfsinpfm bin/pfsoutpfm bin/pfsin bin/pfsout bin/pfsoutffmpeg bin/pfsinmulti bin/pfsindcraw bin/pfsclamp bin/pfsgamma bin/pfstag bin/pfssize bin/pfsextractchannels bin/pfspanoramic bin/pfsrotate bin/pfsflip bin/pfscut bin/pfspad bin/pfscat bin/pfsabsolute bin/pfsdisplayfunction bin/pfswb %%IMAGEMAGICK%%bin/pfsouthdrhtml %%NETPBM%%bin/pfsinppm %%NETPBM%%bin/pfsoutppm %%OPENEXR%%bin/pfsinexr %%OPENEXR%%bin/pfsoutexr %%TIFF%%bin/pfsintiff %%TIFF%%bin/pfsouttiff %%IMAGEMAGICK%%bin/pfsinimgmagick %%IMAGEMAGICK%%bin/pfsoutimgmagick %%QT%%bin/pfsview %%QT%%bin/pfsv %%OCTAVE%%bin/pfsoctavelum %%OCTAVE%%bin/pfsoctavergb %%OCTAVE%%bin/pfsstat %%OPENGL%%bin/pfsglview %%GDAL%%bin/pfsingdal include/pfs-1.2/pfs.h include/pfs-1.2/array2d.h lib/libpfs-1.2.so.0.0.0 lib/libpfs-1.2.so.0 lib/libpfs-1.2.so lib/libpfs-1.2.a libdata/pkgconfig/pfs.pc man/man1/pfsabsolute.1.gz man/man1/pfscat.1.gz man/man1/pfsclamp.1.gz man/man1/pfscut.1.gz man/man1/pfsdisplayfunction.1.gz man/man1/pfsextractchannels.1.gz man/man1/pfsflip.1.gz man/man1/pfsgamma.1.gz %%OPENGL%%man/man1/pfsglview.1.gz man/man1/pfsin.1.gz man/man1/pfsindcraw.1.gz man/man1/pfsinexr.1.gz man/man1/pfsingdal.1.gz man/man1/pfsinimgmagick.1.gz man/man1/pfsinjpeghdr.1.gz man/man1/pfsinmulti.1.gz man/man1/pfsinpfm.1.gz man/man1/pfsinppm.1.gz man/man1/pfsinrgbe.1.gz man/man1/pfsintiff.1.gz %%OCTAVE%%man/man1/pfsoctavelum.1.gz %%OCTAVE%%man/man1/pfsoctavergb.1.gz man/man1/pfsout.1.gz man/man1/pfsoutexr.1.gz man/man1/pfsoutffmpeg.1.gz %%IMAGEMAGICK%%man/man1/pfsouthdrhtml.1.gz man/man1/pfsoutimgmagick.1.gz man/man1/pfsoutjpeghdr.1.gz man/man1/pfsoutpfm.1.gz man/man1/pfsoutppm.1.gz man/man1/pfsoutrgbe.1.gz man/man1/pfsouttiff.1.gz man/man1/pfspad.1.gz man/man1/pfspanoramic.1.gz man/man1/pfsrotate.1.gz man/man1/pfssize.1.gz %%OCTAVE%%man/man1/pfsstat.1.gz man/man1/pfstag.1.gz %%QT%%man/man1/pfsv.1.gz %%QT%%man/man1/pfsview.1.gz %%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_c_b2.csv %%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_t_b2.csv %%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_c_b3.csv %%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_t_b3.csv %%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_c_b4.csv %%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_t_b4.csv %%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_c_b5.csv %%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_t_b5.csv %%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_default_templ/hdrhtml_page_templ.html %%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_default_templ/hdrhtml_image_templ.html %%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/loading-spinner.gif %%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/information-red.png %%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/slider-red.png %%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/hdr_viewer.js %%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/slider-black.png %%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/information.png %%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/mouse2touch.js %%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/mootools-1.2.4.js %%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/hdr_viewer.css %%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/slider-white.png %%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_page_templ.html %%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_image_templ_slider-above.html %%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_image_templ.html %%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_page_templ_short.html +@dir include/pfs-1.2 +%%IMAGEMAGICK%%@dir %%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets +%%IMAGEMAGICK%%@dir %%DATADIR%%/hdrhtml_hdrlabs_templ +%%IMAGEMAGICK%%@dir %%DATADIR%%/hdrhtml_default_templ +%%IMAGEMAGICK%%@dir %%DATADIR%% +%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_OCT%%/pfstools/pfsclose.oct +%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_OCT%%/pfstools/pfsget.oct +%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_OCT%%/pfstools/pfsopen.oct +%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_OCT%%/pfstools/pfsput.oct +%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_OCT%%/pfstools/pfsread.oct +%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_OCT%%/pfstools/pfstransform_colorspace.oct +%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_OCT%%/pfstools/pfswrite.oct +%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_M%%/pfstools/pfs_close_frames.m +%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_M%%/pfstools/pfs_open_frames.m +%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_M%%/pfstools/pfs_read_luminance.m +%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_M%%/pfstools/pfs_read_rgb.m +%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_M%%/pfstools/pfs_read_xyz.m +%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_M%%/pfstools/pfs_write_rgb.m +%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_M%%/pfstools/pfssize.m +%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_M%%/pfstools/pfsview.m +%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_M%%/pfstools/pfsview_list.m +%%OCTAVE%%%%OCTAVE_BASE%%/%%OCTAVE_SITE_M%%/pfstools/pfsview_rgb.m +%%OCTAVE%%@dir %%OCTAVE_SITE_OCT%%/pfstools +%%OCTAVE%%@dir %%OCTAVE_SITE_M%%/pfstools