View | Details | Raw Unified | Return to bug 191179 | Differences between
and this patch

Collapse All | Expand All

(-)graphics/pfstools/Makefile (-42 / +46 lines)
Lines 2-9 Link Here
2
# $FreeBSD: head/graphics/pfstools/Makefile 358176 2014-06-17 20:05:30Z kwm $
2
# $FreeBSD: head/graphics/pfstools/Makefile 358176 2014-06-17 20:05:30Z kwm $
3
3
4
PORTNAME=	pfstools
4
PORTNAME=	pfstools
5
PORTVERSION=	1.6.4
5
PORTVERSION=	1.8.5
6
PORTREVISION=	17
7
CATEGORIES=	graphics
6
CATEGORIES=	graphics
8
MASTER_SITES=	SF
7
MASTER_SITES=	SF
9
8
Lines 23-36 Link Here
23
CONFIGURE_TARGET=	${PFS_BUILD}
22
CONFIGURE_TARGET=	${PFS_BUILD}
24
CONFIGURE_ARGS=	--disable-jpeghdr --disable-matlab \
23
CONFIGURE_ARGS=	--disable-jpeghdr --disable-matlab \
25
		--with-bash=${LOCALBASE}/bin/bash
24
		--with-bash=${LOCALBASE}/bin/bash
26
CONFIGURE_ENV=	PKG_CONFIG_PATH="${LOCALBASE}/libdata/pkgconfig"
25
CONFIGURE_ENV=	CPPFLAGS="${PFS_CPPFLAGS}" \
27
CPPFLAGS+=	${PFS_CPPFLAGS}
26
		LDFLAGS="${PFS_LDFLAGS}" \
28
LDFLAGS+=	${PFS_LDFLAGS}
27
		PKG_CONFIG_PATH=${LOCALBASE}/libdata/pkgconfig
29
USES=		gmake libtool
30
USE_LDCONFIG=	yes
28
USE_LDCONFIG=	yes
31
USES=	pkgconfig
29
USES=		gmake pkgconfig libtool
32
30
33
OPTIONS_DEFINE=	NETPBM OPENEXR TIFF IMAGEMAGICK OCTAVE OPENGL
31
OPTIONS_DEFINE=	NETPBM OPENEXR TIFF QT IMAGEMAGICK GDAL OCTAVE OPENGL
32
QT_DESC=	Compile programs that use QT library
33
GDAL_DESC=	Compile programs that use GDAL library
34
OCTAVE_DESC=	Compile octave interface functions
34
OCTAVE_DESC=	Compile octave interface functions
35
35
36
OPTIONS_DEFAULT=	TIFF
36
OPTIONS_DEFAULT=	TIFF
Lines 39-104 Link Here
39
39
40
.if ${PORT_OPTIONS:MNETPBM}
40
.if ${PORT_OPTIONS:MNETPBM}
41
CONFIGURE_ARGS+=--enable-ppm
41
CONFIGURE_ARGS+=--enable-ppm
42
LIB_DEPENDS+=	libnetpbm.so:${PORTSDIR}/graphics/netpbm
42
LIB_DEPENDS+=	netpbm.1:${PORTSDIR}/graphics/netpbm
43
PLIST_SUB+=	PPM=""
43
PLIST_SUB+=	NETPBM=""
44
.else
44
.else
45
CONFIGURE_ARGS+=--disable-ppm
45
CONFIGURE_ARGS+=--disable-ppm
46
PLIST_SUB+=	PPM="@comment "
46
PLIST_SUB+=	NETPBM="@comment "
47
.endif
47
.endif
48
48
49
.if ${PORT_OPTIONS:MOPENEXR}
49
.if ${PORT_OPTIONS:MOPENEXR}
50
PFS_CPPFLAGS+=	${PTHREAD_CFLAGS}
51
PFS_LDFLAGS+=	${PTHREAD_LIBS}
52
CONFIGURE_ARGS+=--enable-openexr --with-exrdir=${LOCALBASE}/include/OpenEXR
50
CONFIGURE_ARGS+=--enable-openexr --with-exrdir=${LOCALBASE}/include/OpenEXR
53
LIB_DEPENDS+=	libIlmImf.so:${PORTSDIR}/graphics/OpenEXR
51
LIB_DEPENDS+=	IlmImf:${PORTSDIR}/graphics/OpenEXR
54
PLIST_SUB+=	EXR=""
52
PLIST_SUB+=	OPENEXR=""
55
.else
53
.else
56
CONFIGURE_ARGS+=--disable-openexr
54
CONFIGURE_ARGS+=--disable-openexr
57
PLIST_SUB+=	EXR="@comment "
55
PLIST_SUB+=	OPENEXR="@comment "
58
.endif
56
.endif
59
57
60
.if ${PORT_OPTIONS:MTIFF}
58
.if ${PORT_OPTIONS:MTIFF}
61
CONFIGURE_ARGS+=--enable-tiff
59
CONFIGURE_ARGS+=--enable-tiff
62
LIB_DEPENDS+=	libtiff.so:${PORTSDIR}/graphics/tiff
60
LIB_DEPENDS+=	tiff:${PORTSDIR}/graphics/tiff
63
PLIST_SUB+=	TIFF=""
61
PLIST_SUB+=	TIFF=""
64
.else
62
.else
65
CONFIGURE_ARGS+=--disable-tiff
63
CONFIGURE_ARGS+=--disable-tiff
66
PLIST_SUB+=	TIFF="@comment "
64
PLIST_SUB+=	TIFF="@comment "
67
.endif
65
.endif
68
66
67
.if ${PORT_OPTIONS:MQT}
68
USE_QT4=	moc_build corelib gui
69
CONFIGURE_ARGS+=--enable-qt
70
PLIST_SUB+=	QT=""
71
.else
69
CONFIGURE_ARGS+=--disable-qt
72
CONFIGURE_ARGS+=--disable-qt
70
PLIST_SUB+=	QT="@comment "
73
PLIST_SUB+=	QT="@comment "
74
.endif
71
75
72
.if ${PORT_OPTIONS:MIMAGEMAGICK}
76
.if ${PORT_OPTIONS:MIMAGEMAGICK}
73
CONFIGURE_ARGS+=--enable-imagemagick
77
CONFIGURE_ARGS+=--enable-imagemagick
74
LIB_DEPENDS+=	libMagick++-6.Q*.so:${PORTSDIR}/graphics/ImageMagick
78
LIB_DEPENDS+=	Magick++:${PORTSDIR}/graphics/ImageMagick
75
PLIST_SUB+=	IM=""
79
PLIST_SUB+=	IMAGEMAGICK=""
76
.else
80
.else
77
CONFIGURE_ARGS+=--disable-imagemagick
81
CONFIGURE_ARGS+=--disable-imagemagick
78
PLIST_SUB+=	IM="@comment "
82
PLIST_SUB+=	IMAGEMAGICK="@comment "
83
.endif
84
85
.if ${PORT_OPTIONS:MGDAL}
86
CONFIGURE_ARGS+=--enable-gdal
87
LIB_DEPENDS+=	gdal:${PORTSDIR}/graphics/gdal
88
PLIST_SUB+=	GDAL=""
89
.else
90
CONFIGURE_ARGS+=--disable-gdal
91
PLIST_SUB+=	GDAL="@comment "
79
.endif
92
.endif
80
93
81
.if ${PORT_OPTIONS:MOCTAVE}
94
.if ${PORT_OPTIONS:MOCTAVE}
82
CONFIGURE_ARGS+=--enable-octave
95
CONFIGURE_ARGS+=--enable-octave
83
USES+=		fortran
96
PATCH_DEPENDS+=	octave-config:${PORTSDIR}/math/octave
84
85
# need to determine which octave installed which patching
86
PATCH_DEPENDS+=	mkoctfile:${PORTSDIR}/math/octave
87
BUILD_DEPENDS+=	mkoctfile:${PORTSDIR}/math/octave
97
BUILD_DEPENDS+=	mkoctfile:${PORTSDIR}/math/octave
88
RUN_DEPENDS+=	octave:${PORTSDIR}/math/octave
98
RUN_DEPENDS+=	octave:${PORTSDIR}/math/octave
89
90
OCTAVE_BASE?=	${LOCALBASE}
99
OCTAVE_BASE?=	${LOCALBASE}
91
OCTAVE_VERSION!=${OCTAVE_BASE}/bin/octave-config -v 2>&1 || ${ECHO} "0"
100
OCTAVE_VERSION!=${OCTAVE_BASE}/bin/octave-config -v 2>&1 || ${ECHO} "0"
101
OCTAVE_SITE_OCT!=${OCTAVE_BASE}/bin/octave-config --oct-site-dir 2>&1 || ${ECHO} ""
102
OCTAVE_SITE_M!=	${OCTAVE_BASE}/bin/octave-config --m-site-dir 2>&1 || ${ECHO} ""
92
PLIST_SUB+=	OCTAVE="" \
103
PLIST_SUB+=	OCTAVE="" \
93
		OCTAVE_VERSION=${OCTAVE_VERSION} \
94
		OCTAVE_BASE=${OCTAVE_BASE} \
104
		OCTAVE_BASE=${OCTAVE_BASE} \
95
		BUILD=${PFS_BUILD}
105
		OCTAVE_SITE_M=${OCTAVE_SITE_M:S|^${OCTAVE_BASE}/||} \
96
.if (!empty(OCTAVE_VERSION:M[3-9].*))
106
		OCTAVE_SITE_OCT=${OCTAVE_SITE_OCT:S|^${OCTAVE_BASE}/||}
97
EXTRA_PATCHES+=	${PATCHDIR}/epatch-src-octave-pfsopen.cpp
107
USES+=		shebangfix
98
.endif
108
SHEBANG_FILES=	src/octave/*
99
MAN1+=		pfsoctavelum.1 \
109
SHEBANG_LANG+=	octave
100
		pfsoctavergb.1 \
110
octave_OLD_CMD?=/usr/bin/octave
101
		pfsstat.1
111
octave_CMD?=	${LOCALBASE}/bin/octave
102
.else
112
.else
103
CONFIGURE_ARGS+=--disable-octave
113
CONFIGURE_ARGS+=--disable-octave
104
PLIST_SUB+=	OCTAVE="@comment "
114
PLIST_SUB+=	OCTAVE="@comment "
Lines 107-123 Link Here
107
.if ${PORT_OPTIONS:MOPENGL}
117
.if ${PORT_OPTIONS:MOPENGL}
108
CONFIGURE_ARGS+=--enable-opengl
118
CONFIGURE_ARGS+=--enable-opengl
109
USE_GL=		glut
119
USE_GL=		glut
110
PLIST_SUB+=	GL=""
120
PLIST_SUB+=	OPENGL=""
111
.else
121
.else
112
CONFIGURE_ARGS+=--disable-opengl
122
CONFIGURE_ARGS+=--disable-opengl
113
PLIST_SUB+=	GL="@comment "
123
PLIST_SUB+=	OPENGL="@comment "
114
.endif
115
116
.if ${PORT_OPTIONS:MOCTAVE}
117
pre-configure:
118
	@${REINPLACE_CMD} \
119
		-e 's|/usr/bin/octave|${LOCALBASE}/bin/octave|' \
120
		${WRKSRC}/src/octave/*
121
.endif
124
.endif
122
125
123
.include <bsd.port.mk>
126
.include <bsd.port.mk>
127
(-)graphics/pfstools/distinfo (-2 / +2 lines)
Lines 1-2 Link Here
1
SHA256 (pfstools-1.6.4.tar.gz) = 18d2d8fe64fd88ceda5b61cd7504f801c859989b6220965eb5c254e3d902dfe8
1
SHA256 (pfstools-1.8.5.tar.gz) = 2cf958d39ee3b65b034796b0abeea727590561936e295461de6365a750167306
2
SIZE (pfstools-1.6.4.tar.gz) = 588801
2
SIZE (pfstools-1.8.5.tar.gz) = 846001
(-)graphics/pfstools/files/epatch-src-octave-pfsopen.cpp (-23 lines)
Lines 1-23 Link Here
1
--- src/octave/pfsopen.cpp.orig	2006-04-06 12:33:02.000000000 +0000
2
+++ src/octave/pfsopen.cpp	2008-02-12 10:59:44.000000000 +0000
3
@@ -54,8 +54,9 @@
4
     return retval;
5
   }
6
 
7
-  if( !args(0).is_string() && !args(0).is_stream() ) {
8
+  if( !args(0).is_string() && !args(0).is_real_scalar() ) {
9
     error( SCRIPT_NAME ": expected file name or file descriptor as the first argument!");
10
+    // file descriptors are represented as integers (stored as doubles) in Octave 3.0
11
     return retval;
12
   }
13
 
14
@@ -120,8 +121,7 @@
15
     }
16
   } else {
17
     // File descriptor given
18
-    octave_stream fid = args(0).stream_value();
19
-    int fd = dup( fid.file_number() );
20
+    int fd = dup( (int) args(0).scalar_value() );
21
     if( writeMode ) {
22
       fh = fdopen( fd, "wb" );
23
       if( fh == NULL ) {
(-)graphics/pfstools/files/patch-config.h.in (+19 lines)
Line 0 Link Here
1
--- config.h.in.orig	2011-10-27 08:40:42.000000000 +0000
2
+++ config.h.in	2014-02-20 19:04:01.536587053 +0000
3
@@ -99,13 +99,13 @@
4
 
5
 /* Output stream for debug messages. */
6
 #ifdef DEBUG
7
-#define DEBUG_STR cerr
8
+#define DEBUG_STR std::cerr
9
 #else
10
-#define DEBUG_STR if(1); else cerr
11
+#define DEBUG_STR if(1); else std::cerr
12
 #endif
13
 /* Output stream for verbose messages */        
14
 #define VERBOSE_STR if(verbose) std::cerr << PROG_NAME << ": "        
15
 
16
 
17
 /* On some systems iostream, string etc are in 'std' namespace */
18
-using namespace std; 
19
+//using namespace std; 
(-)graphics/pfstools/files/patch-configure (+20 lines)
Line 0 Link Here
1
--- configure.orig	2011-10-27 08:40:31.000000000 +0000
2
+++ configure	2014-02-20 19:04:01.546588828 +0000
3
@@ -14827,7 +14827,7 @@
4
   imagemagick_support="no"
5
 else
6
 	IMAGEMAGICK_CFLAGS=$pkg_cv_IMAGEMAGICK_CFLAGS
7
-	IMAGEMAGICK_LIBS=$pkg_cv_IMAGEMAGICK_LIBS
8
+	IMAGEMAGICK_LIBS="$pkg_cv_IMAGEMAGICK_LIBS /usr/local/lib/gcc47/libstdc++.so"
9
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
10
 $as_echo "yes" >&6; }
11
 
12
@@ -15411,7 +15411,7 @@
13
 if test -z "$QTDIR"; then
14
   MOC="moc-qt4"
15
 else
16
-  MOC="$QTDIR/bin/moc"
17
+  MOC="$QTDIR/bin/moc-qt4"
18
 fi
19
 
20
 # Check whether --with-moc was given.
(-)graphics/pfstools/files/patch-src-fileformat-exrio.cpp (+28 lines)
Line 0 Link Here
1
--- src/fileformat/exrio.cpp.orig	2005-06-15 13:36:54.000000000 +0000
2
+++ src/fileformat/exrio.cpp	2014-02-20 19:04:01.546588828 +0000
3
@@ -54,14 +54,14 @@
4
   }
5
 
6
   DEBUG_STR << "OpenEXR file \"" << filename << "\" ("
7
-	    << width << "x" << height << ")" << endl;
8
+	    << width << "x" << height << ")" << std::endl;
9
 }
10
 
11
 void OpenEXRReader::readImage( pfs::Array2D *R, pfs::Array2D *G,
12
 			       pfs::Array2D *B )
13
 {
14
   assert(file!=NULL);
15
-  DEBUG_STR << "Reading OpenEXR file... " << endl;
16
+  DEBUG_STR << "Reading OpenEXR file... " << std::endl;
17
   
18
   Imf::Rgba* tmp_img = new Imf::Rgba[width*height];
19
 
20
@@ -93,7 +93,7 @@
21
 OpenEXRReader::~OpenEXRReader()
22
 {
23
   delete file;
24
-  file==NULL;
25
+  file=NULL;
26
 }
27
 
28
 OpenEXRWriter::OpenEXRWriter(const char* filename)
(-)graphics/pfstools/files/patch-src-fileformat-hdrtiffio.cpp (+96 lines)
Line 0 Link Here
1
--- src/fileformat/hdrtiffio.cpp.orig	2011-10-27 08:39:07.000000000 +0000
2
+++ src/fileformat/hdrtiffio.cpp	2014-02-20 19:04:01.546588828 +0000
3
@@ -66,7 +66,7 @@
4
   }
5
 
6
   DEBUG_STR << "TIFF file \"" << filename << "\" ("
7
-	    << width << "x" << height << ")" << endl;
8
+	    << width << "x" << height << ")" << std::endl;
9
 
10
 	//--- image parameters
11
   if(!TIFFGetField(tif, TIFFTAG_COMPRESSION, &comp)) // compression type
12
@@ -81,7 +81,7 @@
13
   switch(phot)
14
   {
15
     case PHOTOMETRIC_LOGLUV:
16
-      DEBUG_STR << "Photometric data: LogLuv" << endl;
17
+      DEBUG_STR << "Photometric data: LogLuv" << std::endl;
18
       if (comp != COMPRESSION_SGILOG && comp != COMPRESSION_SGILOG24)
19
       {
20
 	TIFFClose(tif);
21
@@ -96,7 +96,7 @@
22
       relative_values=true;
23
       break;
24
     case PHOTOMETRIC_RGB:
25
-      DEBUG_STR << "Photometric data: RGB" << endl;
26
+      DEBUG_STR << "Photometric data: RGB" << std::endl;
27
      // read extra samples (# of alpha channels)
28
       if (TIFFGetField( tif, TIFFTAG_EXTRASAMPLES,
29
                         &extra_samples_per_pixel, &extra_sample_types )!=1)
30
@@ -121,36 +121,36 @@
31
       if( bps==8 )
32
       {
33
 	TypeOfData = BYTE;
34
-	DEBUG_STR << "8bit per channel" << endl;
35
+	DEBUG_STR << "8bit per channel" << std::endl;
36
         strcpy(format_string,"linear 8bit RGB");
37
         relative_values=false; //!! TODO: verify if 8bit is always gamma corrected
38
       }
39
       else if( bps==16 )
40
       {
41
 	TypeOfData = WORD;
42
-	DEBUG_STR << "16bit per channel" << endl;
43
+	DEBUG_STR << "16bit per channel" << std::endl;
44
         strcpy(format_string,"linear 16bit RGB");
45
         relative_values=true;   //!! TODO: verify this case!!
46
       }
47
       else
48
       {
49
 	TypeOfData = FLOAT;
50
-	DEBUG_STR << "32bit float per channel" << endl;
51
+	DEBUG_STR << "32bit float per channel" << std::endl;
52
         strcpy(format_string,"linear 32bit float RGB");
53
         relative_values=true; 
54
       }
55
       break;
56
     case PHOTOMETRIC_MINISBLACK: // HDR video camera format (grayscale)
57
-      DEBUG_STR << "Photometric data: MINISBLACK (hdrv camera)" << endl;
58
+      DEBUG_STR << "Photometric data: MINISBLACK (hdrv camera)" << std::endl;
59
       if (!TIFFGetField(tif, TIFFTAG_SAMPLESPERPIXEL, &bps) || !bps==1)
60
       {
61
 	TIFFClose(tif);
62
 	throw pfs::Exception("TIFF: Unsupported samples per pixel for "
63
 			     "grayscale image");
64
       }
65
-      if (!TIFFGetField(tif, TIFFTAG_BITSPERSAMPLE, &bps) || !bps==16)
66
+      if (!TIFFGetField(tif, TIFFTAG_BITSPERSAMPLE, &bps) || !(bps==16))
67
       {
68
-	DEBUG_STR << "Detected bits per sample: " << bps << endl;
69
+	DEBUG_STR << "Detected bits per sample: " << bps << std::endl;
70
 	TIFFClose(tif);
71
 	throw pfs::Exception("TIFF: unsupported bits per sample for "
72
 			     "grayscale image.");
73
@@ -160,7 +160,7 @@
74
       relative_values=true;
75
       break;
76
     default:
77
-      DEBUG_STR << "Unsupported photometric type: " << phot << endl;
78
+      DEBUG_STR << "Unsupported photometric type: " << phot << std::endl;
79
       TIFFClose(tif);
80
       strcpy(format_string,"unknown");
81
       relative_values=false;
82
@@ -184,12 +184,12 @@
83
   //--- image length
84
   uint32 imagelength;
85
   TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &imagelength);
86
-  DEBUG_STR << "Image length: " << imagelength << endl;
87
+  DEBUG_STR << "Image length: " << imagelength << std::endl;
88
 
89
   //--- image scanline size
90
   uint32 scanlinesize = TIFFScanlineSize(tif);
91
   buf.vp = _TIFFmalloc(scanlinesize);
92
-//    DEBUG_STR << "Scanline size: " << scanlinesize << endl;
93
+//    DEBUG_STR << "Scanline size: " << scanlinesize << std::endl;
94
 
95
 
96
   //--- read scan lines
(-)graphics/pfstools/files/patch-src-fileformat-pfsinexr.cpp (+11 lines)
Line 0 Link Here
1
--- src/fileformat/pfsinexr.cpp.orig	2008-01-01 13:01:21.000000000 +0000
2
+++ src/fileformat/pfsinexr.cpp	2014-02-20 19:04:01.546588828 +0000
3
@@ -234,7 +234,7 @@
4
     }
5
     
6
     file.setFrameBuffer( frameBuffer );
7
-    file.readPixels( dw.min.y, dw.max.y );
8
+    file.readPixels( dtw.min.y, dtw.max.y );
9
 
10
     VERBOSE_STR << "reading file (linear) '" << ff.fileName << "'" << std::endl;
11
     
(-)graphics/pfstools/files/patch-src-fileformat-pfsinimgmagick.cpp (+19 lines)
Line 0 Link Here
1
--- src/fileformat/pfsinimgmagick.cpp.orig	2008-10-03 19:07:34.000000000 +0000
2
+++ src/fileformat/pfsinimgmagick.cpp	2014-02-20 19:04:01.546588828 +0000
3
@@ -108,6 +108,7 @@
4
     if( ff.fh == NULL ) break; // No more frames
5
     it.closeFrameFile( ff );
6
 
7
+    Magick::InitializeMagick(*argv);
8
     VERBOSE_STR << "reading file '" << ff.fileName << "'" << std::endl;
9
     Magick::Image imImage( ff.fileName );
10
 
11
@@ -172,7 +173,7 @@
12
     frame->getTags()->setString( "FILE_NAME", fileNameTag );
13
  
14
     char strbuf[3];
15
-    snprintf( strbuf, 3, "%d", imImage.depth() );
16
+    snprintf( strbuf, 3, "%lu", imImage.depth() );
17
     frame->getTags()->setString("BITDEPTH", strbuf );    
18
    
19
     pfsio.writeFrame( frame, stdout );
(-)graphics/pfstools/files/patch-src-fileformat-pfsinjpeghdr.cpp (+22 lines)
Line 0 Link Here
1
--- src/fileformat/pfsinjpeghdr.cpp.orig	2005-11-04 08:54:27.000000000 +0000
2
+++ src/fileformat/pfsinjpeghdr.cpp	2014-02-20 19:04:01.546588828 +0000
3
@@ -123,8 +123,8 @@
4
     case JPEG_HEADER_HDR:  // HDR image          
5
       jpeghdr_start_decompress(&jhinf);
6
       frame = pfsio.createFrame( jhinf.cinfo.output_width, jhinf.cinfo.output_height );
7
-      hdrscan = (JHSAMPLE *)malloc(jhinf.cinfo.output_width * jhinf.cinfo.output_height *
8
-        sizeof(JHSAMPLE)*3);
9
+      hdrscan = 
10
+        new JHSAMPLE[jhinf.cinfo.output_width * jhinf.cinfo.output_height * 3];
11
       // Important: test jhinf.output_scanline, not jhinf.cinfo
12
       int index ;
13
       index = 0;
14
@@ -144,7 +144,7 @@
15
         (Z->getRawData())[i] = hdrscan[3*i + 2];
16
       }       
17
       pfs::transformColorSpace( pfs::CS_RGB, X, Y, Z, pfs::CS_XYZ, X, Y, Z );	  
18
-      free((void *)hdrscan);
19
+      delete[] hdrscan;
20
       break;
21
     case JPEG_HEADER_OK:  // LDR image
22
     case JPEG_SUSPENDED:
(-)graphics/pfstools/files/patch-src-fileformat-pfsoutimgmagick.cpp (+10 lines)
Line 0 Link Here
1
--- src/fileformat/pfsoutimgmagick.cpp.orig	2011-03-15 08:47:24.000000000 +0000
2
+++ src/fileformat/pfsoutimgmagick.cpp	2014-02-20 19:04:01.546588828 +0000
3
@@ -190,6 +190,7 @@
4
         if( alpha != NULL )
5
           imgBuffer[i++] = (unsigned short)(maxValue-clamp((*alpha)(pix),0.f,1.f)*maxValue);
6
       }
7
+      Magick::InitializeMagick(*argv);
8
       Magick::Image imImage( frame->getWidth(), frame->getHeight(),
9
         (alpha == NULL ? "RGB" : "RGBA"), Magick::ShortPixel, imgBuffer );
10
       imImage.quality( quality );
(-)graphics/pfstools/files/patch-src-fileformat-pfsoutjpeghdr.cpp (+40 lines)
Line 0 Link Here
1
--- src/fileformat/pfsoutjpeghdr.cpp.orig	2005-11-04 08:54:27.000000000 +0000
2
+++ src/fileformat/pfsoutjpeghdr.cpp	2014-02-20 19:04:01.546588828 +0000
3
@@ -69,8 +69,7 @@
4
    jhinf.correction = correction;
5
    jpeg_stdio_dest(&jhinf.cinfo, fh);
6
    
7
-   image = (JHSAMPLE *)malloc(width * height *
8
-          sizeof(JHSAMPLE)*3);
9
+   image = new JHSAMPLE[width * height * 3];
10
    
11
    for(int i=0;i<width * height;i++)
12
    {
13
@@ -91,7 +90,7 @@
14
    // Or, assign jhinf.tmi 8-bit grayscale values in scanline order
15
    jpeghdr_do_compress(&jhinf);
16
    jpeghdr_destroy_compress(&jhinf);
17
-   fclose(fh);
18
+   delete[] image;
19
 }
20
 
21
 void writeHDRJPEGRGB( FILE *fh, int width, int height,
22
@@ -111,8 +110,7 @@
23
    jhinf.beta = beta;
24
    jpeg_stdio_dest(&jhinf.cinfo, fh);
25
    
26
-   image = (JHSAMPLE *)malloc(width * height *
27
-          sizeof(JHSAMPLE)*3);
28
+   image = new JHSAMPLE[width * height * 3];
29
    
30
    for(int i=0;i<width * height;i++)
31
    {
32
@@ -135,7 +133,7 @@
33
    jpeghdr_do_compress(&jhinf);
34
    jpeghdr_destroy_compress(&jhinf);
35
 
36
-   free( image );
37
+   delete[] image;
38
 }
39
 
40
 void writeFrames( int argc, char* argv[] )
(-)graphics/pfstools/files/patch-src-fileformat-pfsoutpfm.cpp (+20 lines)
Line 0 Link Here
1
--- src/fileformat/pfsoutpfm.cpp.orig	2005-06-15 13:36:54.000000000 +0000
2
+++ src/fileformat/pfsoutpfm.cpp	2014-02-20 19:04:01.546588828 +0000
3
@@ -74,7 +74,7 @@
4
     }
5
     int written = fwrite( line, sizeof( float ), lineSize, fh );
6
     if( written != lineSize )
7
-      throw new pfs::Exception( "Unable to write data" );
8
+      throw pfs::Exception( "Unable to write data" );
9
   }
10
   delete[] line;  
11
 }
12
@@ -94,7 +94,7 @@
13
     }
14
     int written = fwrite( line, sizeof( float ), lineSize, fh );
15
     if( written != lineSize )
16
-      throw new pfs::Exception( "Unable to write data" );
17
+      throw pfs::Exception( "Unable to write data" );
18
   }
19
   delete[] line;  
20
 }
(-)graphics/pfstools/files/patch-src-fileformat-ppmio.cpp (+11 lines)
Line 0 Link Here
1
--- src/fileformat/ppmio.cpp.orig	2009-05-25 19:24:49.000000000 +0000
2
+++ src/fileformat/ppmio.cpp	2014-02-20 19:04:01.556587853 +0000
3
@@ -34,6 +34,8 @@
4
 #include <math.h>
5
 #include <assert.h>
6
 
7
+#define log2(x)	((float)log(x)/log(2))
8
+
9
 struct PPMData
10
 {
11
     pixval maxPV;
(-)graphics/pfstools/files/patch-src-fileformat-rgbeio.cpp (+29 lines)
Line 0 Link Here
1
--- src/fileformat/rgbeio.cpp.orig	2007-12-06 11:00:49.000000000 +0000
2
+++ src/fileformat/rgbeio.cpp	2014-02-20 19:04:01.556587853 +0000
3
@@ -141,7 +141,7 @@
4
 // Reading RGBE files
5
 void readRadianceHeader( FILE *file, int &width, int &height, float &exposure )
6
 {
7
-  DEBUG_STR << "RGBE: reading header..." << endl;
8
+  DEBUG_STR << "RGBE: reading header..." << std::endl;
9
 
10
   // read header information
11
   char head[255];
12
@@ -208,7 +208,7 @@
13
 	height = height - width;
14
 	}
15
 */
16
-  DEBUG_STR << "RGBE: image size " << width << "x" << height << endl;
17
+  DEBUG_STR << "RGBE: image size " << width << "x" << height << std::endl;
18
 }
19
 
20
 
21
@@ -389,7 +389,7 @@
22
   int width = X->getCols();
23
   int height = X->getRows();
24
 
25
-  DEBUG_STR << "RGBE: writing image " << width << "x" << height << endl;
26
+  DEBUG_STR << "RGBE: writing image " << width << "x" << height << std::endl;
27
 
28
   if( Y->getCols() != width || Y->getRows() != height ||
29
       Z->getCols() != width || Z->getRows() != height )
(-)graphics/pfstools/files/patch-src-filter-Makefile.am (+20 lines)
Line 0 Link Here
1
--- src/filter/Makefile.am.orig	2009-05-30 06:59:10.000000000 +0000
2
+++ src/filter/Makefile.am	2014-02-20 19:04:01.556587853 +0000
3
@@ -1,6 +1,7 @@
4
 ###
5
 bin_PROGRAMS = pfsgamma pfsclamp pfstag pfssize pfsextractchannels pfspanoramic \
6
-	pfsrotate pfsflip pfscut pfspad pfscat pfsabsolute pfsdisplayfunction
7
+	pfsrotate pfsflip pfscut pfspad pfscat pfsabsolute pfsdisplayfunction \
8
+	pfswb
9
 
10
 man_MANS = pfsgamma.1 pfsclamp.1 pfstag.1 pfssize.1 pfsextractchannels.1 \
11
 	pfspanoramic.1 pfsrotate.1 pfsflip.1 pfscut.1 pfspad.1 pfscat.1 \
12
@@ -34,6 +35,8 @@
13
 
14
 pfsabsolute_SOURCES = pfsabsolute.cpp
15
 
16
+pfswb_SOURCES = pfswb.cpp
17
+
18
 LIBS += ../pfs/libpfs-1.2.la
19
 INCLUDES = -I${srcdir}/../pfs
20
 
(-)graphics/pfstools/files/patch-src-filter-Makefile.in (+58 lines)
Line 0 Link Here
1
--- src/filter/Makefile.in.orig	2011-10-27 08:40:29.000000000 +0000
2
+++ src/filter/Makefile.in	2014-02-20 19:04:01.556587853 +0000
3
@@ -38,7 +38,8 @@
4
 	pfssize$(EXEEXT) pfsextractchannels$(EXEEXT) \
5
 	pfspanoramic$(EXEEXT) pfsrotate$(EXEEXT) pfsflip$(EXEEXT) \
6
 	pfscut$(EXEEXT) pfspad$(EXEEXT) pfscat$(EXEEXT) \
7
-	pfsabsolute$(EXEEXT) pfsdisplayfunction$(EXEEXT)
8
+	pfsabsolute$(EXEEXT) pfsdisplayfunction$(EXEEXT) \
9
+	pfswb$(EXEEXT)
10
 subdir = src/filter
11
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
12
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
13
@@ -54,6 +55,9 @@
14
 CONFIG_CLEAN_VPATH_FILES =
15
 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
16
 PROGRAMS = $(bin_PROGRAMS)
17
+am_pfswb_OBJECTS = pfswb.$(OBJEXT)
18
+pfswb_OBJECTS = $(am_pfswb_OBJECTS)
19
+pfswb_LDADD = $(LDADD)
20
 am_pfsabsolute_OBJECTS = pfsabsolute.$(OBJEXT)
21
 pfsabsolute_OBJECTS = $(am_pfsabsolute_OBJECTS)
22
 pfsabsolute_LDADD = $(LDADD)
23
@@ -120,13 +124,15 @@
24
 	$(pfscut_SOURCES) $(pfsdisplayfunction_SOURCES) \
25
 	$(pfsextractchannels_SOURCES) $(pfsflip_SOURCES) \
26
 	$(pfsgamma_SOURCES) $(pfspad_SOURCES) $(pfspanoramic_SOURCES) \
27
-	$(pfsrotate_SOURCES) $(pfssize_SOURCES) $(pfstag_SOURCES)
28
+	$(pfsrotate_SOURCES) $(pfssize_SOURCES) $(pfstag_SOURCES) \
29
+	$(pfswb_SOURCES)
30
 DIST_SOURCES = $(pfsabsolute_SOURCES) $(pfscat_SOURCES) \
31
 	$(pfsclamp_SOURCES) $(pfscut_SOURCES) \
32
 	$(pfsdisplayfunction_SOURCES) $(pfsextractchannels_SOURCES) \
33
 	$(pfsflip_SOURCES) $(pfsgamma_SOURCES) $(pfspad_SOURCES) \
34
 	$(pfspanoramic_SOURCES) $(pfsrotate_SOURCES) \
35
-	$(pfssize_SOURCES) $(pfstag_SOURCES)
36
+	$(pfssize_SOURCES) $(pfstag_SOURCES) \
37
+	$(pfswb_SOURCES)
38
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
39
 am__vpath_adj = case $$p in \
40
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
41
@@ -314,6 +320,7 @@
42
 pfspad_SOURCES = pfspad.cpp
43
 pfscat_SOURCES = pfscat.cpp
44
 pfsabsolute_SOURCES = pfsabsolute.cpp
45
+pfswb_SOURCES = pfswb.cpp
46
 INCLUDES = -I${srcdir}/../pfs
47
 all: all-am
48
 
49
@@ -392,6 +399,9 @@
50
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
51
 	echo " rm -f" $$list; \
52
 	rm -f $$list
53
+pfswb$(EXEEXT): $(pfswb_OBJECTS) $(pfswb_DEPENDENCIES) 
54
+	@rm -f pfswb$(EXEEXT)
55
+	$(CXXLINK) $(pfswb_LDFLAGS) $(pfswb_OBJECTS) $(pfswb_LDADD) $(LIBS)
56
 pfsabsolute$(EXEEXT): $(pfsabsolute_OBJECTS) $(pfsabsolute_DEPENDENCIES) 
57
 	@rm -f pfsabsolute$(EXEEXT)
58
 	$(CXXLINK) $(pfsabsolute_OBJECTS) $(pfsabsolute_LDADD) $(LIBS)
(-)graphics/pfstools/files/patch-src-filter-pfscat.cpp (+37 lines)
Line 0 Link Here
1
--- src/filter/pfscat.cpp.orig	2008-01-01 13:01:21.000000000 +0000
2
+++ src/filter/pfscat.cpp	2014-02-20 19:04:01.556587853 +0000
3
@@ -27,6 +27,7 @@
4
 #include <pfs.h>
5
 #include <climits>
6
 #include <iostream>
7
+#include <vector>
8
 #include <getopt.h>
9
 #include <fcntl.h>
10
 #include <stdlib.h>
11
@@ -202,16 +203,12 @@
12
 
13
 pfs::FrameFileIterator it ( argc, argv, "rb", NULL, NULL, optString, cmdLineOptions);
14
 int pipe_no = 0;
15
-pfs::FrameFile * ff;
16
-ff = (pfs::FrameFile *) malloc ((pipe_no+1) * sizeof(pfs::FrameFile));
17
-
18
+std::vector<pfs::FrameFile> ff;
19
 while (1) {
20
-    ff[pipe_no] = it.getNextFrameFile();
21
+    ff.push_back(it.getNextFrameFile());
22
     if (ff[pipe_no].fh == NULL) break; // no more files
23
     pipe_no++;
24
-    ff=(pfs::FrameFile *) realloc(ff, (pipe_no+1)*sizeof(pfs::FrameFile));
25
     }
26
-    
27
 if(pipe_no == 0) { // no named pipes
28
     pipe_no = 1;
29
     pipes = false;
30
@@ -408,7 +405,6 @@
31
     }
32
 
33
 for (int i=0; i<pipe_no; i++) it.closeFrameFile(ff[i]);
34
-free(ff);
35
 }
36
 
37
 
(-)graphics/pfstools/files/patch-src-filter-pfsclamp.cpp (+13 lines)
Line 0 Link Here
1
--- src/filter/pfsclamp.cpp.orig	2005-11-02 13:35:42.000000000 +0000
2
+++ src/filter/pfsclamp.cpp	2014-02-20 19:04:01.556587853 +0000
3
@@ -151,8 +151,8 @@
4
   }
5
   else
6
   {
7
-    clampMin = (clampMin>1e-4) ? clampMin : 1e-4;
8
-    clampMax = (clampMax<1e8) ? clampMax : 1e8;
9
+    clampMin = (clampMin>1e-20) ? clampMin : 1e-20;
10
+    clampMax = (clampMax<1e+20) ? clampMax : 1e+20;
11
     if( clampMin >= clampMax )
12
       throw pfs::Exception("incorrect clamping range");
13
   }
(-)graphics/pfstools/files/patch-src-filter-pfsextractchannels.cpp (+11 lines)
Line 0 Link Here
1
--- src/filter/pfsextractchannels.cpp.orig	2005-06-15 13:36:54.000000000 +0000
2
+++ src/filter/pfsextractchannels.cpp	2014-02-20 19:04:01.556587853 +0000
3
@@ -46,7 +46,7 @@
4
     "See man page for more information.\n" );
5
 }
6
 
7
-static void errorCheck( bool condition, char *string )
8
+static void errorCheck( bool condition, char const *string )
9
 {
10
     if( !condition ) {
11
 	fprintf( stderr, PROG_NAME " error: %s\n", string );
(-)graphics/pfstools/files/patch-src-filter-pfspanoramic.cpp (+38 lines)
Line 0 Link Here
1
--- src/filter/pfspanoramic.cpp.orig	2010-02-18 11:27:03.000000000 +0000
2
+++ src/filter/pfspanoramic.cpp	2014-02-20 19:04:01.556587853 +0000
3
@@ -93,7 +93,7 @@
4
   }
5
 
6
   //TODO: optimize rotations by precomputing sines and cosines
7
-  Vector3D rotateX(double angle)
8
+  void rotateX(double angle)
9
   {
10
     angle *= (M_PI / 180);
11
 
12
@@ -107,7 +107,7 @@
13
     z = z2;
14
   }
15
 
16
-  Vector3D rotateY(double angle)
17
+  void rotateY(double angle)
18
   {
19
     angle *= (M_PI / 180);
20
 
21
@@ -121,7 +121,7 @@
22
     z = z2;
23
   }
24
 
25
-  Vector3D rotateZ(double angle)
26
+  void rotateZ(double angle)
27
   {
28
     angle *= (M_PI / 180);
29
 
30
@@ -195,7 +195,7 @@
31
     {
32
       char *opts;
33
       
34
-      if(opts = strchr(name, '/'))
35
+      if ((opts = strchr(name, '/')))
36
       {
37
         *opts++ = '\0';
38
       }
(-)graphics/pfstools/files/patch-src-filter-pfstag.cpp (+23 lines)
Line 0 Link Here
1
--- src/filter/pfstag.cpp.orig	2005-06-15 13:36:54.000000000 +0000
2
+++ src/filter/pfstag.cpp	2014-02-20 19:04:01.556587853 +0000
3
@@ -58,7 +58,7 @@
4
   string channel;
5
 };
6
 
7
-typedef list<TagOperation> ListOfTags;
8
+typedef std::list<TagOperation> ListOfTags;
9
 
10
 TagOperation parseTagOperation( const char *tag, bool remove )
11
 {
12
@@ -133,9 +133,9 @@
13
     for( it = setTags.begin(); it != setTags.end(); it++ ) {
14
       TagOperation &tagop = *it;
15
       if( tagop.remove )       
16
-        cerr << PROG_NAME ": remove tag '" << tagop.name << "'\n";
17
+        std::cerr << PROG_NAME ": remove tag '" << tagop.name << "'\n";
18
       else
19
-        cerr << PROG_NAME ": set tag '" << tagop.name << "' to '" << tagop.value << "'\n";
20
+        std::cerr << PROG_NAME ": set tag '" << tagop.name << "' to '" << tagop.value << "'\n";
21
     }
22
     
23
   }
(-)graphics/pfstools/files/patch-src-filter-pfswb.cpp (+300 lines)
Line 0 Link Here
1
--- src/filter/pfswb.cpp.orig	2014-02-20 19:04:01.556587853 +0000
2
+++ src/filter/pfswb.cpp	2014-02-20 19:06:49.706586923 +0000
3
@@ -0,0 +1,297 @@
4
+/**
5
+ * @file pfswb.cpp
6
+ * @brief Adjust white balance in RGB color space
7
+ *
8
+ * This file is a part of PFSTOOLS package.
9
+ * ---------------------------------------------------------------------- 
10
+ * Copyright (C) 2008 Iouri V. Ivliev
11
+ * 
12
+ *  This program is free software; you can redistribute it and/or modify
13
+ *  it under the terms of the GNU General Public License as published by
14
+ *  the Free Software Foundation; either version 2 of the License, or
15
+ *  (at your option) any later version.
16
+ *
17
+ *  This program is distributed in the hope that it will be useful,
18
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
19
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20
+ *  GNU General Public License for more details.
21
+ *
22
+ *  You should have received a copy of the GNU General Public License
23
+ *  along with this program; if not, write to the Free Software
24
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
25
+ * ---------------------------------------------------------------------- 
26
+ * 
27
+ * @author Iouri V. Ivliev <ii@any.com.ru>
28
+ *
29
+ * $Id: $
30
+ */
31
+
32
+#include <config.h>
33
+
34
+#include <exception>
35
+#include <iostream>
36
+#include <sys/limits.h>
37
+#include <stdlib.h>
38
+#include <getopt.h>
39
+
40
+#include <pfs.h>
41
+
42
+#define PROG_NAME "pfswb"
43
+
44
+class QuietException 
45
+{
46
+};
47
+
48
+static void printHelp()
49
+{
50
+  std::cerr << PROG_NAME " (" PACKAGE_STRING ") :\n" 
51
+    "\t[--red <val>] [--green <val>] [--blue <val>]\n"
52
+    "\t[--auto] [--x <val>] [--y <val>] [--width <val>] [--height <val>]\n"
53
+    "\t[--keep-lum]\n"
54
+    "\t[--verbose] [--help]\n"
55
+    "See man page for more information.\n";
56
+}
57
+
58
+// verbose mode
59
+static bool verbose = false;
60
+
61
+// auto WB
62
+static bool autowb = false;
63
+// default gray box bounds
64
+static int x = 0;
65
+static int y = 0;
66
+static int width = INT_MAX/2;
67
+static int height = INT_MAX/2;
68
+
69
+// keep original luminance
70
+static bool keep = false;
71
+
72
+// default WB multipliers
73
+static float red = 1.f;
74
+static float green = 1.f;
75
+static float blue = 1.f;
76
+
77
+static void multipliers(
78
+    const pfs::Array2D &R, const pfs::Array2D &G, const pfs::Array2D &B, 
79
+    float &r, float &g, float &b)
80
+{
81
+  r = red;
82
+  g = green;
83
+  b = blue;
84
+  if (!autowb) return;
85
+  // auto WB gray box
86
+  int w = R.getCols();
87
+  int h = R.getRows();
88
+  if (x>=w || y>=h)
89
+    throw pfs::Exception("gray box is out of frame bounds");
90
+  int x1 = width+x;
91
+  if (x1>w) x1 = w;
92
+  int y1 = height+y;
93
+  if (y1>h) y1 = h;
94
+  VERBOSE_STR 
95
+    << "auto WB gray box: " 
96
+    << (x1-x) << "x" << (y1-y) << "+" << x << "+" << y << std::endl;
97
+  // auto WB multipliers
98
+  double ar = 0.;
99
+  double ag = 0.;
100
+  double ab = 0.;
101
+  for (int y0=y; y0<y1; ++y0)
102
+  {
103
+    for (int x0=x; x0<x1; ++x0)
104
+    {
105
+      ar += R(x0,y0);
106
+      ag += G(x0,y0);
107
+      ab += B(x0,y0);
108
+    }
109
+  }
110
+  int n = (x1-x)*(y1-y);
111
+  ar /= n;
112
+  ag /= n;
113
+  ab /= n;
114
+  VERBOSE_STR << "average red value: " << ar << std::endl;
115
+  VERBOSE_STR << "average green value: " << ag << std::endl;
116
+  VERBOSE_STR << "average blue value: " << ab << std::endl;
117
+  float a = (float)((ar+ag+ab)/3.);
118
+  r *= a/ar;
119
+  g *= a/ag;
120
+  b *= a/ab;
121
+}
122
+
123
+static void pfswb()
124
+{
125
+  pfs::DOMIO pfsio;
126
+  VERBOSE_STR << "auto WB: " << (autowb ? "yes" : "no" ) << std::endl;
127
+  VERBOSE_STR << "base red multiplier value: " << red << std::endl;
128
+  VERBOSE_STR << "base green multiplier value: " << green << std::endl;
129
+  VERBOSE_STR << "base blue multiplier value: " << blue << std::endl;
130
+  VERBOSE_STR << "keep original luminance: " << (keep ? "yes" : "no" ) << std::endl;
131
+  while (true) 
132
+  {
133
+    // Read frame
134
+    pfs::Frame *frame = pfsio.readFrame( stdin );
135
+    if (!frame)
136
+    {
137
+      break; // No more frames
138
+    }
139
+    // Get channels
140
+    pfs::Channel *X, *Y, *Z;
141
+    frame->getXYZChannels(X, Y, Z);
142
+    if (!(Y && X && Z))
143
+    {
144
+      throw pfs::Exception( "Missing X, Y, Z channels in the PFS stream" );
145
+    }
146
+    int w = Y->getCols();
147
+    int h = Y->getRows();
148
+    int s = w*h;
149
+    float min = 1e20, max = -1e20;
150
+    for (int i=s; i--; )
151
+    {
152
+      float const &l = (*Y)(i);
153
+      if (min > l) min = l;
154
+      if (max < l) max = l;
155
+    }
156
+    VERBOSE_STR << "luminance range of original frame: " << min << ":" << max << std::endl;
157
+    // Convert from XYZ to RGB
158
+    pfs::transformColorSpace(pfs::CS_XYZ, X, Y, Z, pfs::CS_RGB, X, Y, Z);
159
+    // WB adjustment
160
+    float r, g, b;
161
+    multipliers(*X,*Y,*Z,r,g,b);
162
+    VERBOSE_STR << "red multiplier value: " << r << std::endl;
163
+    VERBOSE_STR << "green multiplier value: " << g << std::endl;
164
+    VERBOSE_STR << "blue multiplier value: " << b << std::endl;
165
+    for (int i=s; i--; )
166
+    {
167
+      (*X)(i) *= r;
168
+      (*Y)(i) *= g;
169
+      (*Z)(i) *= b;
170
+    }
171
+    // Convert back to XYZ
172
+    pfs::transformColorSpace(pfs::CS_RGB, X, Y, Z, pfs::CS_XYZ, X, Y, Z);
173
+    float amin = 1e20, amax = -1e20;
174
+    for (int i=s; i--; )
175
+    {
176
+      float const &l = (*Y)(i);
177
+      if (amin > l) amin = l;
178
+      if (amax < l) amax = l;
179
+    }
180
+    VERBOSE_STR << "luminance range of adjusted frame: " << amin << ":" << amax << std::endl;
181
+    if (keep)
182
+    {
183
+      float k = (max-min)/(amax-amin);
184
+      float nmin = 1e20, nmax = -1e20;
185
+      for (int i=s; i--; )
186
+      {
187
+        float const &l = ((*Y)(i)-amin)*k+min;
188
+        if (nmin > l) nmin = l;
189
+        if (nmax < l) nmax = l;
190
+        (*Y)(i) = l;
191
+      }
192
+      VERBOSE_STR << "restored luminance range: " << nmin << ":" << nmax << std::endl;
193
+    }
194
+    // Write frame
195
+    pfsio.writeFrame(frame, stdout);
196
+    pfsio.freeFrame(frame);        
197
+  }
198
+}
199
+
200
+int main(int argc, char *const argv[])
201
+{
202
+  static const struct option cmdLineOptions[] = {
203
+    { "help", no_argument, NULL, 'h' },
204
+    { "verbose", no_argument, NULL, 'v' },
205
+    { "auto", no_argument, NULL, 'A' },
206
+    { "x", required_argument, NULL, 'X' },
207
+    { "y", required_argument, NULL, 'Y' },
208
+    { "width", required_argument, NULL, 'W' },
209
+    { "height", required_argument, NULL, 'H' },
210
+    { "keep-lum", no_argument, NULL, 'k' },
211
+    { "red", required_argument, NULL, 'r' },
212
+    { "green", required_argument, NULL, 'g' },
213
+    { "blue", required_argument, NULL, 'b' },
214
+    { NULL, 0, NULL, 0 }
215
+  };
216
+
217
+  try
218
+  {
219
+    int optionIndex = 0;
220
+    while (true)
221
+    {
222
+      int c = getopt_long(argc, argv, "hvAX:Y:W:H:kr:g:b:", cmdLineOptions, &optionIndex);
223
+      if (c == -1)
224
+      {
225
+        break;
226
+      }
227
+      switch (c)
228
+      {
229
+      case 'h':
230
+        printHelp();
231
+        throw QuietException();
232
+      case 'v':
233
+        verbose = true;
234
+        break;
235
+      case 'A':
236
+        autowb = true;
237
+        break;
238
+      case 'X':
239
+        x = (int)strtol(optarg, NULL, 10);
240
+        if (x<=0)
241
+          throw pfs::Exception("gray box x value out of range, should be >0");
242
+      break;
243
+      case 'Y':
244
+        y = (int)strtol(optarg, NULL, 10);
245
+        if (y<=0)
246
+          throw pfs::Exception("gray box y value out of range, should be >0");
247
+        break;
248
+      case 'W':
249
+        width = (int)strtol(optarg, NULL, 10);
250
+        if (width<=0)
251
+          throw pfs::Exception("gray box width value out of range, should be >0");
252
+        break;
253
+      case 'H':
254
+      height = (int)strtol(optarg, NULL, 10);
255
+        if (height<=0)
256
+          throw pfs::Exception("gray box height value out of range, should be >0");
257
+        break;
258
+      case 'k':
259
+        keep = true;
260
+        break;
261
+      case 'r':
262
+        red = strtof(optarg, NULL);
263
+        if (red<=0.0f)
264
+        throw pfs::Exception("red multiplier value out of range, should be >0");
265
+        break;
266
+      case 'g':
267
+        green = strtof(optarg, NULL);
268
+        if (green<=0.0f)
269
+          throw pfs::Exception("green multiplier value out of range, should be >0");
270
+        break;
271
+      case 'b':
272
+        blue = strtof(optarg, NULL);
273
+        if (blue<=0.0f)
274
+        throw pfs::Exception("blue multiplier value out of range, should be >0");
275
+        break;
276
+      case '?':
277
+        throw QuietException();
278
+      case ':':
279
+        throw QuietException();
280
+      }
281
+    }
282
+
283
+    pfswb();
284
+  }
285
+  catch (std::exception ex)
286
+  {
287
+    std::cerr << PROG_NAME" std error: " << ex.what() << std::endl;
288
+    return EXIT_FAILURE;
289
+  }        
290
+  catch (pfs::Exception ex)
291
+  {
292
+    std::cerr << PROG_NAME" error: " << ex.getMessage() << std::endl;
293
+    return EXIT_FAILURE;
294
+  }        
295
+  catch (QuietException ex)
296
+  {
297
+    return EXIT_FAILURE;
298
+  }        
299
+  return EXIT_SUCCESS;
300
+}
(-)graphics/pfstools/files/patch-src-hdrhtml-hdrhtml.cpp (+192 lines)
Line 0 Link Here
1
--- src/hdrhtml/hdrhtml.cpp.orig	2009-03-11 21:45:55.000000000 +0000
2
+++ src/hdrhtml/hdrhtml.cpp	2014-02-20 19:04:01.566588122 +0000
3
@@ -27,6 +27,7 @@
4
 
5
 #include "hdrhtml.h"
6
 
7
+#include <limits>
8
 #include <algorithm>
9
 #include <math.h>
10
 #include <fstream>
11
@@ -48,6 +49,8 @@
12
 
13
 #include <config.h>
14
 
15
+#define log2f(x)	((float)logf(x)/logf(2))
16
+
17
 // ================================================
18
 //        Parameters controllig the web page 
19
 // ================================================
20
@@ -94,8 +97,8 @@
21
     
22
     if( min_val > max_val )             // missing min/max info
23
     {
24
-      min_val = numeric_limits<T>::max();
25
-      max_val = numeric_limits<T>::min();
26
+      min_val = std::numeric_limits<T>::max();
27
+      max_val = std::numeric_limits<T>::min();
28
 
29
       for( int k=0; k < d_size; k++ ) {
30
         if( data[k] > max_val ) max_val = data[k];
31
@@ -195,6 +198,7 @@
32
     this->y_i = new float[lut_size];
33
     own_y_i = true;
34
     memcpy(this->y_i, other.y_i, lut_size * sizeof(float));
35
+    return *this;
36
   }
37
 
38
   ~UniformArrayLUT()
39
@@ -341,7 +345,7 @@
40
     for( int k = 1; k < bin_n; k++ )
41
       hist.n[k] += hist.n[k-1];
42
 
43
-//    cerr << "d_size: " << d_size << "  hist.n: " << hist.n[bin_n-1] << "\n";
44
+//    std::cerr << "d_size: " << d_size << "  hist.n: " << hist.n[bin_n-1] << "\n";
45
     assert( hist.n[bin_n-1] == d_size );    
46
   }
47
 
48
@@ -361,7 +365,7 @@
49
 //            Text template file utils
50
 // ================================================
51
 
52
-typedef void (*replace_callback)( ostream &out, void *user_data, const char *parameter );
53
+typedef void (*replace_callback)( std::ostream &out, void *user_data, const char *parameter );
54
 
55
 class ReplacePattern
56
 {
57
@@ -403,7 +407,7 @@
58
   {
59
   }
60
   
61
-  virtual void write_replacement( ostream &out, const char *parameter = NULL )
62
+  virtual void write_replacement( std::ostream &out, const char *parameter = NULL )
63
   {
64
     if( callback != NULL )
65
       callback( out, user_data, parameter );
66
@@ -567,7 +571,7 @@
67
         // Skip white spaces
68
         while( line_str[pos] == ' ' || line_str[pos] == '\t' ) pos++;
69
         int new_pos = line_str.find_first_of( ',', pos );
70
-        int len;
71
+        size_t len;
72
         if( new_pos == std::string::npos ) {
73
           if( k != columns-1 ) {
74
             std::string full_message( "Missing column data in the file: " );
75
@@ -576,16 +580,16 @@
76
           }
77
           len = std::string::npos;
78
         } else
79
-          len = new_pos-pos;
80
+          len = (size_t)(new_pos-pos);
81
         
82
         float value;
83
         if( len == 0 ) {
84
-          value = numeric_limits<float>::quiet_NaN();
85
+          value = std::numeric_limits<float>::quiet_NaN();
86
         } else {
87
           std::string token = line_str.substr( pos, len );
88
           const char *str_beg = token.c_str();
89
           char *str_end;
90
-//          cerr << "token: " << str_beg << "\n";
91
+//          std::cerr << "token: " << str_beg << "\n";
92
           value = strtof( str_beg, &str_end );
93
           if( str_beg == str_end ) {
94
             std::ostringstream error_message;
95
@@ -643,15 +647,15 @@
96
     basis_table.data[0][k] = log2f( basis_table.data[0][k] );
97
   
98
 // Fix zero and negative values in the image, convert to log2 space, find min and max values
99
-  float img_min = numeric_limits<float>::max();
100
-  float img_max = numeric_limits<float>::min();
101
+  float img_min = std::numeric_limits<float>::max();
102
+  float img_max = std::numeric_limits<float>::min();
103
   {
104
     float *arrays[] = { R, G, B, Y };
105
     int k;
106
 
107
     for( k = 0; k < 4; k++ ) {
108
       float *x = arrays[k];
109
-      float min_val = numeric_limits<float>::max(), max_val = numeric_limits<float>::min();
110
+      float min_val = std::numeric_limits<float>::max(), max_val = std::numeric_limits<float>::min();
111
       for( int i=0; i < pixels; i++ ) {
112
         if( x[i] < min_val && x[i] > 0)
113
           min_val = x[i];
114
@@ -741,7 +745,7 @@
115
   for( int k=1; k <= f8_stops+1; k++ ) {
116
 
117
 
118
-    float max_value = (float)numeric_limits<unsigned short>::max(); //(1<<16) -1;
119
+    float max_value = (float)std::numeric_limits<unsigned short>::max(); //(1<<16) -1;
120
 
121
     float exp_multip = log2f(1/powf( 2, l_start + k*8 ));
122
 
123
@@ -796,9 +800,9 @@
124
   
125
 }
126
 
127
-void print_image_objects( ostream &out, void *user_data, const char *parameter );
128
-void print_cf_table( ostream &out, void *user_data, const char *parameter );
129
-void print_image_htmlcode( ostream &out, void *user_data, const char *parameter );
130
+void print_image_objects( std::ostream &out, void *user_data, const char *parameter );
131
+void print_cf_table( std::ostream &out, void *user_data, const char *parameter );
132
+void print_image_htmlcode( std::ostream &out, void *user_data, const char *parameter );
133
 
134
 void HDRHTMLSet::generate_webpage( const char *page_template, const char *image_template,
135
   const char *object_output, const char *html_output)
136
@@ -852,11 +856,11 @@
137
   
138
 }
139
 
140
-void print_image_objects( ostream &out, void *user_data, const char *parameter )
141
+void print_image_objects( std::ostream &out, void *user_data, const char *parameter )
142
 {
143
   HDRHTMLSet *hdrhtml_set = (HDRHTMLSet*)user_data;
144
 
145
-  list<HDRHTMLImage>::iterator it;
146
+  std::list<HDRHTMLImage>::iterator it;
147
   for( it = hdrhtml_set->image_list.begin(); it != hdrhtml_set->image_list.end(); it++ ) {  
148
     std::string obj_name( "hdr_" );
149
     obj_name.append( it->base_name );
150
@@ -882,7 +886,7 @@
151
   
152
 }
153
 
154
-void print_image_htmlcode( ostream &out, HDRHTMLSet *hdrhtml_set, const HDRHTMLImage &it )
155
+void print_image_htmlcode( std::ostream &out, HDRHTMLSet *hdrhtml_set, const HDRHTMLImage &it )
156
 {
157
     std::string obj_name( "hdr_" );
158
     obj_name.append( it.base_name );
159
@@ -907,13 +911,13 @@
160
  
161
 }
162
 
163
-void print_image_htmlcode( ostream &out, void *user_data, const char *parameter )
164
+void print_image_htmlcode( std::ostream &out, void *user_data, const char *parameter )
165
 {
166
   HDRHTMLSet *hdrhtml_set = (HDRHTMLSet*)user_data;
167
 
168
   if( parameter != NULL ) {
169
 
170
-    list<HDRHTMLImage>::iterator it;
171
+    std::list<HDRHTMLImage>::iterator it;
172
     for( it = hdrhtml_set->image_list.begin(); it != hdrhtml_set->image_list.end(); it++ ) {
173
       if( it->base_name.compare( parameter ) == 0 )
174
         break;
175
@@ -925,7 +929,7 @@
176
     
177
   } else {
178
     
179
-    list<HDRHTMLImage>::iterator it;
180
+    std::list<HDRHTMLImage>::iterator it;
181
     for( it = hdrhtml_set->image_list.begin(); it != hdrhtml_set->image_list.end(); it++ ) {
182
       
183
       print_image_htmlcode( out, hdrhtml_set, *it );
184
@@ -935,7 +939,7 @@
185
   
186
 }
187
 
188
-void print_cf_table( ostream &out, void *user_data, const char *parameter )
189
+void print_cf_table( std::ostream &out, void *user_data, const char *parameter )
190
 {
191
   CSVTable *cf = (CSVTable*)user_data;
192
   
(-)graphics/pfstools/files/patch-src-matlab-compatibility.h (+10 lines)
Line 0 Link Here
1
--- src/matlab/compatibility.h.orig	2007-03-01 14:10:57.000000000 +0000
2
+++ src/matlab/compatibility.h	2014-02-20 19:04:01.566588122 +0000
3
@@ -59,6 +59,6 @@
4
 
5
 #endif
6
 
7
-#define DEBUG_STR if(1); else cerr
8
+#define DEBUG_STR if(1); else std::cerr
9
 
10
 #endif
(-)graphics/pfstools/files/patch-src-pfs-Makefile.in (-3 / +3 lines)
Lines 1-6 Link Here
1
--- src/pfs/Makefile.in.orig	2008-01-01 14:27:14.000000000 +0000
1
--- src/pfs/Makefile.in.orig	2011-10-27 08:40:30.000000000 +0000
2
+++ src/pfs/Makefile.in	2008-02-12 10:59:44.000000000 +0000
2
+++ src/pfs/Makefile.in	2014-02-20 19:04:01.566588122 +0000
3
@@ -243,7 +243,7 @@
3
@@ -259,7 +259,7 @@
4
 library_includedir = $(includedir)/pfs-1.2
4
 library_includedir = $(includedir)/pfs-1.2
5
 library_include_HEADERS = pfs.h array2d.h
5
 library_include_HEADERS = pfs.h array2d.h
6
 #INCLUDES = 
6
 #INCLUDES = 
(-)graphics/pfstools/files/patch-src-pfs-pfs.cpp (+29 lines)
Line 0 Link Here
1
--- src/pfs/pfs.cpp.orig	2010-07-14 09:44:27.000000000 +0000
2
+++ src/pfs/pfs.cpp	2014-02-20 19:04:01.566588122 +0000
3
@@ -71,7 +71,7 @@
4
 // TagContainer implementation  
5
 //------------------------------------------------------------------------------
6
 
7
-typedef list<string> TagList;
8
+typedef std::list<string> TagList;
9
 
10
 class TagIteratorImpl: public TagIterator
11
 {
12
@@ -570,7 +570,7 @@
13
 
14
     //Read channel IDs and tags
15
     //       FrameImpl::ChannelID *channelID = new FrameImpl::ChannelID[channelCount];
16
-    list<ChannelImpl*> orderedChannel;
17
+    std::list<ChannelImpl*> orderedChannel;
18
     for( int i = 0; i < channelCount; i++ ) {
19
       char channelName[MAX_CHANNEL_NAME+1], *rs;
20
       rs = fgets( channelName, MAX_CHANNEL_NAME, inputStream );
21
@@ -592,7 +592,7 @@
22
     
23
 
24
     //Read channels
25
-    list<ChannelImpl*>::iterator it;
26
+    std::list<ChannelImpl*>::iterator it;
27
     for( it = orderedChannel.begin(); it != orderedChannel.end(); it++ ) {
28
       ChannelImpl *ch = *it;
29
       int size = frame->getWidth()*frame->getHeight();
(-)graphics/pfstools/files/patch-src-pfs-pfs.h (+45 lines)
Line 0 Link Here
1
--- src/pfs/pfs.h.orig	2006-03-01 17:21:16.000000000 +0000
2
+++ src/pfs/pfs.h	2014-02-20 19:04:01.566588122 +0000
3
@@ -115,6 +115,7 @@
4
   class TagIterator 
5
     {
6
     public:
7
+      virtual ~TagIterator() {};
8
       /**
9
        * Get next item on the list.
10
        *
11
@@ -135,6 +136,7 @@
12
   class TagContainer
13
     {
14
     public:
15
+      virtual ~TagContainer() {};
16
       /**
17
        * Get a string tag of the name tagName from the TagContainer.
18
        * @param tagName name of the tag to retrieve
19
@@ -181,6 +183,7 @@
20
  */
21
   class Channel : public Array2D {
22
   public:
23
+    virtual ~Channel() {};
24
     /**
25
      * Gets width of the channel (in pixels).
26
      * This is a synonym for Array2D::getCols().
27
@@ -226,6 +229,7 @@
28
   class ChannelIterator 
29
     {
30
     public:
31
+      virtual ~ChannelIterator() {};
32
       /**
33
        * Get next item on the list.
34
        */
35
@@ -580,7 +584,9 @@
36
        */
37
       Exception( const char* const message )
38
 	{
39
-          strcpy( msg, message );
40
+          const size_t s = sizeof(msg)/sizeof(msg[0]) - 1;
41
+          strncpy( msg, message, s );
42
+          msg[s] = '\0';
43
 	}
44
 			
45
       ~Exception() {};
(-)graphics/pfstools/files/patch-src-pfs-pfsutils.cpp (+11 lines)
Line 0 Link Here
1
--- src/pfs/pfsutils.cpp.orig	2006-09-21 21:42:54.000000000 +0000
2
+++ src/pfs/pfsutils.cpp	2014-02-20 19:04:01.566588122 +0000
3
@@ -81,7 +81,7 @@
4
   char fileName[1024];
5
   FILE *stdinout;
6
 
7
-  typedef list<FilePattern> PatternList;
8
+  typedef std::list<FilePattern> PatternList;
9
 
10
   PatternList patternList;
11
   PatternList::iterator currentPattern;
(-)graphics/pfstools/files/patch-src-pfsglview-picture_io.cpp (+29 lines)
Line 0 Link Here
1
--- src/pfsglview/picture_io.cpp.orig	2006-11-20 12:13:13.000000000 +0000
2
+++ src/pfsglview/picture_io.cpp	2014-02-20 19:04:01.566588122 +0000
3
@@ -87,7 +87,7 @@
4
 		return;
5
 
6
 	// only XYZ channels are taken into consideration
7
-	if( channel != "XYZ" &&  channel != "X00" && channel != "0Y0" && channel != "00Z" ) {
8
+	if (strcmp(channel,"XYZ") && strcmp(channel,"X00") && strcmp(channel,"0Y0") && strcmp(channel,"00Z")) {
9
 		if(verbose)
10
 			fprintf( stderr, "WARNING: wrong channel (PictureIO::setFrame())\n");
11
 		return;
12
@@ -573,7 +573,7 @@
13
 	}	
14
 	std::sort(vec.begin(), vec.end());
15
 	
16
-	printf("size: %d\n", vec.size());
17
+	printf("size: %lu\n", vec.size());
18
 	
19
 	val = vec[0];
20
 	std::vector<unsigned int> svec;
21
@@ -589,7 +589,7 @@
22
 	
23
 	float dr = svec[ svec.size()-1] / svec[0];
24
 			
25
-	printf("min:%ld  max:%ld  svec size: %d  dr:%f\n", vec[0], vec[ vec.size()-1], svec.size(), log10(dr));
26
+	printf("min:%u  max:%u  svec size: %lu  dr:%f\n", vec[0], vec[ vec.size()-1], svec.size(), log10(dr));
27
 
28
 	
29
 
(-)graphics/pfstools/files/patch-src-pfsglview-picture_io.h (+13 lines)
Line 0 Link Here
1
--- src/pfsglview/picture_io.h.orig	2008-07-29 16:14:30.000000000 +0000
2
+++ src/pfsglview/picture_io.h	2014-02-20 19:04:01.566588122 +0000
3
@@ -6,7 +6,9 @@
4
 
5
 #define MAX_FRAMES_IN_MEMORY 10
6
 
7
-class pfs::Frame;
8
+namespace pfs {
9
+class Frame;
10
+};
11
 enum LumMappingMethod {
12
 			MAP_LINEAR,
13
 			MAP_GAMMA1_4,
(-)graphics/pfstools/files/patch-src-pfsview-pfsview_widget.cpp (+22 lines)
Line 0 Link Here
1
--- src/pfsview/pfsview_widget.cpp.orig	2011-04-30 14:01:17.000000000 +0000
2
+++ src/pfsview/pfsview_widget.cpp	2014-02-20 19:04:01.566588122 +0000
3
@@ -142,7 +142,7 @@
4
     // Chose first available channel
5
     pfs::ChannelIterator *it = frame->getChannels();
6
     if( !it->hasNext() )      // TODO: failover
7
-      throw new pfs::Exception( "No channels available!" );
8
+      throw pfs::Exception( "No channels available!" );
9
     visibleChannel = it->getNext()->getName();
10
   } else if( visibleChannel != COLOR_CHANNELS ) {
11
     // Get a new pointer, as the old frame object
12
@@ -335,8 +335,8 @@
13
   assert( !color || (color && B != NULL) );
14
 
15
   
16
-  float lutPixFloor[257*2];
17
-  QRgb lutPixel[257*2];
18
+  float lutPixFloor[257*2+1];
19
+  QRgb lutPixel[257*2+1];
20
   int lutSize;
21
   if( !color && ( negativeTreatment == NEGATIVE_GREEN_SCALE ||
22
         negativeTreatment == NEGATIVE_ABSOLUTE ) ) { // Handle negative numbers
(-)graphics/pfstools/pkg-descr (-1 / +1 lines)
Lines 1-4 Link Here
1
A set of command line (and one GUI) programs for reading, writing, manipulating
1
A set of command line (and one GUI) programs for reading, writing, manipulating
2
and viewing high-dynamic range (HDR) images and video frames.
2
and viewing high-dynamic range (HDR) images and video frames.
3
3
4
WWW: http://www.mpi-inf.mpg.de/resources/pfstools/
4
WWW: http://pfstools.sourceforge.net/
(-)graphics/pfstools/pkg-plist (-41 / +70 lines)
Lines 19-55 Link Here
19
bin/pfspad
19
bin/pfspad
20
bin/pfscat
20
bin/pfscat
21
bin/pfsabsolute
21
bin/pfsabsolute
22
%%PPM%%bin/pfsinppm
22
bin/pfsdisplayfunction
23
%%PPM%%bin/pfsoutppm
23
bin/pfswb
24
%%EXR%%bin/pfsinexr
24
%%IMAGEMAGICK%%bin/pfsouthdrhtml
25
%%EXR%%bin/pfsoutexr
25
%%NETPBM%%bin/pfsinppm
26
%%NETPBM%%bin/pfsoutppm
27
%%OPENEXR%%bin/pfsinexr
28
%%OPENEXR%%bin/pfsoutexr
26
%%TIFF%%bin/pfsintiff
29
%%TIFF%%bin/pfsintiff
27
%%TIFF%%bin/pfsouttiff
30
%%TIFF%%bin/pfsouttiff
28
%%IM%%bin/pfsinimgmagick
31
%%IMAGEMAGICK%%bin/pfsinimgmagick
29
%%IM%%bin/pfsoutimgmagick
32
%%IMAGEMAGICK%%bin/pfsoutimgmagick
30
%%QT%%bin/pfsview
33
%%QT%%bin/pfsview
31
%%QT%%bin/pfsv
34
%%QT%%bin/pfsv
32
%%OCTAVE%%bin/pfsoctavelum
35
%%OCTAVE%%bin/pfsoctavelum
33
%%OCTAVE%%bin/pfsoctavergb
36
%%OCTAVE%%bin/pfsoctavergb
34
%%OCTAVE%%bin/pfsstat
37
%%OCTAVE%%bin/pfsstat
35
%%GL%%bin/pfsglview
38
%%OPENGL%%bin/pfsglview
39
%%GDAL%%bin/pfsingdal
36
include/pfs-1.2/pfs.h
40
include/pfs-1.2/pfs.h
37
include/pfs-1.2/array2d.h
41
include/pfs-1.2/array2d.h
38
lib/libpfs-1.2.a
42
lib/libpfs-1.2.so.0.0.0
39
lib/libpfs-1.2.la
40
lib/libpfs-1.2.so
41
lib/libpfs-1.2.so.0
43
lib/libpfs-1.2.so.0
44
lib/libpfs-1.2.so
45
lib/libpfs-1.2.a
42
libdata/pkgconfig/pfs.pc
46
libdata/pkgconfig/pfs.pc
43
man/man1/pfsabsolute.1.gz
47
man/man1/pfsabsolute.1.gz
44
man/man1/pfscat.1.gz
48
man/man1/pfscat.1.gz
45
man/man1/pfsclamp.1.gz
49
man/man1/pfsclamp.1.gz
46
man/man1/pfscut.1.gz
50
man/man1/pfscut.1.gz
51
man/man1/pfsdisplayfunction.1.gz
47
man/man1/pfsextractchannels.1.gz
52
man/man1/pfsextractchannels.1.gz
48
man/man1/pfsflip.1.gz
53
man/man1/pfsflip.1.gz
49
man/man1/pfsgamma.1.gz
54
man/man1/pfsgamma.1.gz
55
man/man1/pfsglview.1.gz
50
man/man1/pfsin.1.gz
56
man/man1/pfsin.1.gz
51
man/man1/pfsindcraw.1.gz
57
man/man1/pfsindcraw.1.gz
52
man/man1/pfsinexr.1.gz
58
man/man1/pfsinexr.1.gz
59
man/man1/pfsingdal.1.gz
53
man/man1/pfsinimgmagick.1.gz
60
man/man1/pfsinimgmagick.1.gz
54
man/man1/pfsinjpeghdr.1.gz
61
man/man1/pfsinjpeghdr.1.gz
55
man/man1/pfsinmulti.1.gz
62
man/man1/pfsinmulti.1.gz
Lines 57-65 Link Here
57
man/man1/pfsinppm.1.gz
64
man/man1/pfsinppm.1.gz
58
man/man1/pfsinrgbe.1.gz
65
man/man1/pfsinrgbe.1.gz
59
man/man1/pfsintiff.1.gz
66
man/man1/pfsintiff.1.gz
67
%%OCTAVE%%man/man1/pfsoctavelum.1.gz
68
%%OCTAVE%%man/man1/pfsoctavergb.1.gz
60
man/man1/pfsout.1.gz
69
man/man1/pfsout.1.gz
61
man/man1/pfsoutexr.1.gz
70
man/man1/pfsoutexr.1.gz
62
man/man1/pfsoutffmpeg.1.gz
71
man/man1/pfsoutffmpeg.1.gz
72
%%IMAGEMAGICK%%man/man1/pfsouthdrhtml.1.gz
63
man/man1/pfsoutimgmagick.1.gz
73
man/man1/pfsoutimgmagick.1.gz
64
man/man1/pfsoutjpeghdr.1.gz
74
man/man1/pfsoutjpeghdr.1.gz
65
man/man1/pfsoutpfm.1.gz
75
man/man1/pfsoutpfm.1.gz
Lines 70-106 Link Here
70
man/man1/pfspanoramic.1.gz
80
man/man1/pfspanoramic.1.gz
71
man/man1/pfsrotate.1.gz
81
man/man1/pfsrotate.1.gz
72
man/man1/pfssize.1.gz
82
man/man1/pfssize.1.gz
83
%%OCTAVE%%man/man1/pfsstat.1.gz
73
man/man1/pfstag.1.gz
84
man/man1/pfstag.1.gz
74
%%OCTAVE%%@cwd %%OCTAVE_BASE%%
85
%%QT%%man/man1/pfsv.1.gz
75
%%OCTAVE%%libexec/octave/%%OCTAVE_VERSION%%/site/oct/%%BUILD%%/pfstools/pfsclose.oct
86
%%QT%%man/man1/pfsview.1.gz
76
%%OCTAVE%%libexec/octave/%%OCTAVE_VERSION%%/site/oct/%%BUILD%%/pfstools/pfsget.oct
87
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_c_b2.csv
77
%%OCTAVE%%libexec/octave/%%OCTAVE_VERSION%%/site/oct/%%BUILD%%/pfstools/pfsopen.oct
88
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_t_b2.csv
78
%%OCTAVE%%libexec/octave/%%OCTAVE_VERSION%%/site/oct/%%BUILD%%/pfstools/pfsput.oct
89
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_c_b3.csv
79
%%OCTAVE%%libexec/octave/%%OCTAVE_VERSION%%/site/oct/%%BUILD%%/pfstools/pfsread.oct
90
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_t_b3.csv
80
%%OCTAVE%%libexec/octave/%%OCTAVE_VERSION%%/site/oct/%%BUILD%%/pfstools/pfstransform_colorspace.oct
91
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_c_b4.csv
81
%%OCTAVE%%libexec/octave/%%OCTAVE_VERSION%%/site/oct/%%BUILD%%/pfstools/pfswrite.oct
92
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_t_b4.csv
82
%%OCTAVE%%share/octave/%%OCTAVE_VERSION%%/site/m/pfstools/pfs_close_frames.m
93
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_c_b5.csv
83
%%OCTAVE%%share/octave/%%OCTAVE_VERSION%%/site/m/pfstools/pfs_open_frames.m
94
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_t_b5.csv
84
%%OCTAVE%%share/octave/%%OCTAVE_VERSION%%/site/m/pfstools/pfs_read_luminance.m
95
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_default_templ/hdrhtml_page_templ.html
85
%%OCTAVE%%share/octave/%%OCTAVE_VERSION%%/site/m/pfstools/pfs_read_rgb.m
96
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_default_templ/hdrhtml_image_templ.html
86
%%OCTAVE%%share/octave/%%OCTAVE_VERSION%%/site/m/pfstools/pfs_read_xyz.m
97
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/loading-spinner.gif
87
%%OCTAVE%%share/octave/%%OCTAVE_VERSION%%/site/m/pfstools/pfs_write_rgb.m
98
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/information-red.png
88
%%OCTAVE%%share/octave/%%OCTAVE_VERSION%%/site/m/pfstools/pfssize.m
99
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/slider-red.png
89
%%OCTAVE%%share/octave/%%OCTAVE_VERSION%%/site/m/pfstools/pfsview.m
100
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/hdr_viewer.js
90
%%OCTAVE%%share/octave/%%OCTAVE_VERSION%%/site/m/pfstools/pfsview_list.m
101
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/slider-black.png
91
%%OCTAVE%%share/octave/%%OCTAVE_VERSION%%/site/m/pfstools/pfsview_rgb.m
102
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/information.png
92
%%OCTAVE%%@cwd %%PFS_BASE%%
103
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/mouse2touch.js
104
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/mootools-1.2.4.js
105
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/hdr_viewer.css
106
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/slider-white.png
107
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_page_templ.html
108
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_image_templ_slider-above.html
109
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_image_templ.html
110
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_page_templ_short.html
93
@dirrm include/pfs-1.2
111
@dirrm include/pfs-1.2
112
%%IMAGEMAGICK%%@dirrm %%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets
113
%%IMAGEMAGICK%%@dirrm %%DATADIR%%/hdrhtml_hdrlabs_templ
114
%%IMAGEMAGICK%%@dirrm %%DATADIR%%/hdrhtml_default_templ
115
%%IMAGEMAGICK%%@dirrm %%DATADIR%%
94
%%OCTAVE%%@cwd %%OCTAVE_BASE%%
116
%%OCTAVE%%@cwd %%OCTAVE_BASE%%
95
%%OCTAVE%%@dirrm share/octave/%%OCTAVE_VERSION%%/site/m/pfstools
117
%%OCTAVE%%%%OCTAVE_SITE_OCT%%/pfstools/pfsclose.oct
96
%%OCTAVE%%@dirrmtry share/octave/%%OCTAVE_VERSION%%/site/m
118
%%OCTAVE%%%%OCTAVE_SITE_OCT%%/pfstools/pfsget.oct
97
%%OCTAVE%%@dirrmtry share/octave/%%OCTAVE_VERSION%%/site
119
%%OCTAVE%%%%OCTAVE_SITE_OCT%%/pfstools/pfsopen.oct
98
%%OCTAVE%%@dirrmtry share/octave/%%OCTAVE_VERSION%%
120
%%OCTAVE%%%%OCTAVE_SITE_OCT%%/pfstools/pfsput.oct
99
%%OCTAVE%%@dirrmtry share/octave
121
%%OCTAVE%%%%OCTAVE_SITE_OCT%%/pfstools/pfsread.oct
100
%%OCTAVE%%@dirrm libexec/octave/%%OCTAVE_VERSION%%/site/oct/%%BUILD%%/pfstools
122
%%OCTAVE%%%%OCTAVE_SITE_OCT%%/pfstools/pfstransform_colorspace.oct
101
%%OCTAVE%%@dirrmtry libexec/octave/%%OCTAVE_VERSION%%/site/oct/%%BUILD%%
123
%%OCTAVE%%%%OCTAVE_SITE_OCT%%/pfstools/pfswrite.oct
102
%%OCTAVE%%@dirrmtry libexec/octave/%%OCTAVE_VERSION%%/site/oct
124
%%OCTAVE%%%%OCTAVE_SITE_M%%/pfstools/pfs_close_frames.m
103
%%OCTAVE%%@dirrmtry libexec/octave/%%OCTAVE_VERSION%%/site
125
%%OCTAVE%%%%OCTAVE_SITE_M%%/pfstools/pfs_open_frames.m
104
%%OCTAVE%%@dirrmtry libexec/octave/%%OCTAVE_VERSION%%
126
%%OCTAVE%%%%OCTAVE_SITE_M%%/pfstools/pfs_read_luminance.m
105
%%OCTAVE%%@dirrmtry libexec/octave
127
%%OCTAVE%%%%OCTAVE_SITE_M%%/pfstools/pfs_read_rgb.m
106
%%OCTAVE%%@cwd %%PFS_BASE%%
128
%%OCTAVE%%%%OCTAVE_SITE_M%%/pfstools/pfs_read_xyz.m
129
%%OCTAVE%%%%OCTAVE_SITE_M%%/pfstools/pfs_write_rgb.m
130
%%OCTAVE%%%%OCTAVE_SITE_M%%/pfstools/pfssize.m
131
%%OCTAVE%%%%OCTAVE_SITE_M%%/pfstools/pfsview.m
132
%%OCTAVE%%%%OCTAVE_SITE_M%%/pfstools/pfsview_list.m
133
%%OCTAVE%%%%OCTAVE_SITE_M%%/pfstools/pfsview_rgb.m
134
%%OCTAVE%%@dirrm %%OCTAVE_SITE_OCT%%/pfstools
135
%%OCTAVE%%@dirrm %%OCTAVE_SITE_M%%/pfstools

Return to bug 191179