From 8baff403b1afad4779cd5dcfbc7925c963495182 Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Fri, 14 May 2010 16:44:16 +0000
Subject: [PATCH] fix msvc compile

---
 contrib/mpeg_encode/bframe.cpp          | 2 +-
 contrib/mpeg_encode/block.cpp           | 2 +-
 contrib/mpeg_encode/bsearch.cpp         | 2 +-
 contrib/mpeg_encode/combine.cpp         | 2 +-
 contrib/mpeg_encode/frame.cpp           | 1 +
 contrib/mpeg_encode/frametype.cpp       | 1 +
 contrib/mpeg_encode/headers/byteorder.h | 2 ++
 contrib/mpeg_encode/headers/libpnmrw.h  | 5 -----
 contrib/mpeg_encode/iframe.cpp          | 2 +-
 contrib/mpeg_encode/mpeg.cpp            | 3 ++-
 contrib/mpeg_encode/param.cpp           | 5 +++++
 contrib/mpeg_encode/psearch.cpp         | 1 +
 contrib/mpeg_encode/readframe.cpp       | 6 +++++-
 13 files changed, 22 insertions(+), 12 deletions(-)

diff --git a/contrib/mpeg_encode/bframe.cpp b/contrib/mpeg_encode/bframe.cpp
index 7513f0b59a..7ac51ff8d7 100644
--- a/contrib/mpeg_encode/bframe.cpp
+++ b/contrib/mpeg_encode/bframe.cpp
@@ -117,7 +117,7 @@
  *==============*/
 
 #include "all.h"
-#include <sys/param.h>
+//#include <sys/param.h>
 #include <assert.h>
 #include "mtypes.h"
 #include "bitio.h"
diff --git a/contrib/mpeg_encode/block.cpp b/contrib/mpeg_encode/block.cpp
index 2997e54322..8a2f4ee4f2 100644
--- a/contrib/mpeg_encode/block.cpp
+++ b/contrib/mpeg_encode/block.cpp
@@ -620,7 +620,7 @@ LumMotionError(LumBlock currentBlock,
       distortion /= 256;
       distortion *= LocalDCTDistortScale;
       datarate *= LocalDCTRateScale;
-      diff = (int) sqrt(distortion*distortion + datarate*datarate);
+      diff = (int) sqrt((double)(distortion*distortion + datarate*datarate));
       break;
     }
 
diff --git a/contrib/mpeg_encode/bsearch.cpp b/contrib/mpeg_encode/bsearch.cpp
index 416e36e778..ecae2927cf 100644
--- a/contrib/mpeg_encode/bsearch.cpp
+++ b/contrib/mpeg_encode/bsearch.cpp
@@ -74,7 +74,7 @@
 /*==============*
  * HEADER FILES *
  *==============*/
-
+#include <string.h>
 #include "all.h"
 #include "mtypes.h"
 #include "frames.h"
diff --git a/contrib/mpeg_encode/combine.cpp b/contrib/mpeg_encode/combine.cpp
index 75c18e6037..535bcde4f2 100644
--- a/contrib/mpeg_encode/combine.cpp
+++ b/contrib/mpeg_encode/combine.cpp
@@ -82,7 +82,7 @@
 #include "mheaders.h"
 #include "fsize.h"
 #include "combine.h"
-#include <unistd.h>
+//#include <unistd.h>
 
 /* note, remove() might not have a prototype in the standard header files,
  * but it really should -- it's not my fault!
diff --git a/contrib/mpeg_encode/frame.cpp b/contrib/mpeg_encode/frame.cpp
index 8698b439e8..c51e074b21 100644
--- a/contrib/mpeg_encode/frame.cpp
+++ b/contrib/mpeg_encode/frame.cpp
@@ -43,6 +43,7 @@
  * HEADER FILES *
  *==============*/
 
+#include <string.h>
 #include "all.h"
 #include "mtypes.h"
 #include "frames.h"
diff --git a/contrib/mpeg_encode/frametype.cpp b/contrib/mpeg_encode/frametype.cpp
index 16020db015..6d945af56c 100644
--- a/contrib/mpeg_encode/frametype.cpp
+++ b/contrib/mpeg_encode/frametype.cpp
@@ -41,6 +41,7 @@
  * HEADER FILES *
  *==============*/
 
+#include <string.h>
 #include "all.h"
 #include "prototypes.h"
 #include "frames.h"
diff --git a/contrib/mpeg_encode/headers/byteorder.h b/contrib/mpeg_encode/headers/byteorder.h
index 3dc75f1d31..3dd86ccb4a 100644
--- a/contrib/mpeg_encode/headers/byteorder.h
+++ b/contrib/mpeg_encode/headers/byteorder.h
@@ -77,7 +77,9 @@
 #if !defined(WIN32) || defined(__CYGWIN__)
 #include <netinet/in.h>
 #else
+#undef boolean
 #include <winsock.h>
+#define boolean int
 #endif
 
 #endif /* FORCE_LITTLE_ENDIAN */
diff --git a/contrib/mpeg_encode/headers/libpnmrw.h b/contrib/mpeg_encode/headers/libpnmrw.h
index 18a729949e..a18ad7960d 100644
--- a/contrib/mpeg_encode/headers/libpnmrw.h
+++ b/contrib/mpeg_encode/headers/libpnmrw.h
@@ -26,12 +26,7 @@
 
 /* Definitions to make PBMPLUS work with either ANSI C or C Classic. */
 
-#if __STDC__
 #define ARGS(alist) alist
-#else /*__STDC__*/
-#define ARGS(alist) ()
-#define const
-#endif /*__STDC__*/
 
 
 /* Types. */
diff --git a/contrib/mpeg_encode/iframe.cpp b/contrib/mpeg_encode/iframe.cpp
index 8fc7a7413d..7ef85fee27 100644
--- a/contrib/mpeg_encode/iframe.cpp
+++ b/contrib/mpeg_encode/iframe.cpp
@@ -138,7 +138,7 @@
 
 
 #include <time.h>
-#include <sys/param.h>
+//#include <sys/param.h>
 #include "all.h"
 #include "mtypes.h"
 #include "frames.h"
diff --git a/contrib/mpeg_encode/mpeg.cpp b/contrib/mpeg_encode/mpeg.cpp
index 8cb53a2b8f..dc6b7a8a5a 100644
--- a/contrib/mpeg_encode/mpeg.cpp
+++ b/contrib/mpeg_encode/mpeg.cpp
@@ -130,10 +130,11 @@
  * HEADER FILES *
  *==============*/
 
+#include <string.h>
 #include "all.h"
 #include <time.h>
 #include <errno.h>
-#include <unistd.h>
+//#include <unistd.h>
 #include "mtypes.h"
 #include "frames.h"
 #include "search.h"
diff --git a/contrib/mpeg_encode/param.cpp b/contrib/mpeg_encode/param.cpp
index 5dc505a6a3..db24d4a79b 100644
--- a/contrib/mpeg_encode/param.cpp
+++ b/contrib/mpeg_encode/param.cpp
@@ -938,6 +938,11 @@ ReadMachineNames(FILE *fpointer)
  * SIDE EFFECTS:    info stored for retrieval using GetNthInputFileName
  *
  *===========================================================================*/
+
+#if defined(WIN32) && !defined(__CYGWIN)
+#define popen _popen
+#endif
+
 static void
 ReadInputFileNames(FILE *fpointer,
                    const char *endInput)
diff --git a/contrib/mpeg_encode/psearch.cpp b/contrib/mpeg_encode/psearch.cpp
index bb96f67bab..6bfdfbdba8 100644
--- a/contrib/mpeg_encode/psearch.cpp
+++ b/contrib/mpeg_encode/psearch.cpp
@@ -77,6 +77,7 @@
  * HEADER FILES *
  *==============*/
 
+#include <string.h>
 #include "all.h"
 #include "mtypes.h"
 #include "frames.h"
diff --git a/contrib/mpeg_encode/readframe.cpp b/contrib/mpeg_encode/readframe.cpp
index 3eabffadad..b3a7e71eb9 100644
--- a/contrib/mpeg_encode/readframe.cpp
+++ b/contrib/mpeg_encode/readframe.cpp
@@ -163,6 +163,10 @@ struct YuvLine {
   #define popen _popen
 #endif
    
+#if defined(WIN32) && !defined(__CYGWIN__)
+  #define popen _popen
+  #define pclose _pclose
+#endif
 
 /*==================*
  * Global VARIABLES *
@@ -1061,7 +1065,7 @@ DoGamma(MpegFrame *mf,
 
   if (!init_done) {
     for(i=0; i<256; i++) 
-      GammaVal[i]=(unsigned char) (pow(((double) i)/255.0,GammaValue)*255.0+0.5);
+      GammaVal[i]=(unsigned char) (pow(((double) i)/255.0,(double)GammaValue)*255.0+0.5);
     init_done=TRUE;
   }
 
-- 
GitLab