From a142b15ada9ef36922a9e9d313c49345396fd228 Mon Sep 17 00:00:00 2001 From: Tom Finegan Date: Thu, 23 Jan 2014 22:31:42 -0800 Subject: [PATCH] Fix mingw build. Change-Id: Iec913e0cf5849bec459e98df59b0e0bd8e02965b --- mkvmuxerutil.cpp | 11 +++++++++-- mkvparser.cpp | 7 +++++-- mkvreader.cpp | 8 ++++---- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/mkvmuxerutil.cpp b/mkvmuxerutil.cpp index 7aaec40..905e711 100644 --- a/mkvmuxerutil.cpp +++ b/mkvmuxerutil.cpp @@ -14,7 +14,7 @@ #include #include -#ifdef _WIN32 +#ifdef _MSC_VER #define _CRT_RAND_S #endif #include @@ -669,11 +669,16 @@ void GetVersion(int32* major, int32* minor, int32* build, int32* revision) { mkvmuxer::uint64 mkvmuxer::MakeUID(unsigned int* seed) { uint64 uid = 0; + +#ifdef __MINGW32__ + srand(*seed); +#endif + for (int i = 0; i < 7; ++i) { // avoid problems with 8-byte values uid <<= 8; // TODO(fgalligan): Move random number generation to platform specific code. -#ifdef _WIN32 +#ifdef _MSC_VER (void)seed; unsigned int random_value; const errno_t e = rand_s(&random_value); @@ -687,6 +692,8 @@ mkvmuxer::uint64 mkvmuxer::MakeUID(unsigned int* seed) { close(fd); } const int32 nn = temp_num; +#elif defined __MINGW32__ + const int32 nn = rand(); #else const int32 nn = rand_r(seed); #endif diff --git a/mkvparser.cpp b/mkvparser.cpp index f264055..332b8c2 100644 --- a/mkvparser.cpp +++ b/mkvparser.cpp @@ -5512,14 +5512,17 @@ long Track::Create( } Track::Info::Info(): + uid(0), + defaultDuration(0), + codecDelay(0), + seekPreRoll(0), nameAsUTF8(NULL), language(NULL), codecId(NULL), codecNameAsUTF8(NULL), codecPrivate(NULL), codecPrivateSize(0), - codecDelay(0), - seekPreRoll(0) + lacing(false) { } diff --git a/mkvreader.cpp b/mkvreader.cpp index 12c5c20..cb3567f 100644 --- a/mkvreader.cpp +++ b/mkvreader.cpp @@ -31,7 +31,7 @@ int MkvReader::Open(const char* fileName) if (m_file) return -1; -#ifdef WIN32 +#ifdef _MSC_VER const errno_t e = fopen_s(&m_file, fileName, "rb"); if (e) @@ -43,7 +43,7 @@ int MkvReader::Open(const char* fileName) return -1; #endif -#ifdef WIN32 +#ifdef _MSC_VER int status = _fseeki64(m_file, 0L, SEEK_END); if (status) @@ -56,7 +56,7 @@ int MkvReader::Open(const char* fileName) #endif assert(m_length >= 0); -#ifdef WIN32 +#ifdef _MSC_VER status = _fseeki64(m_file, 0L, SEEK_SET); if (status) @@ -108,7 +108,7 @@ int MkvReader::Read(long long offset, long len, unsigned char* buffer) if (offset >= m_length) return -1; -#ifdef WIN32 +#ifdef _MSC_VER const int status = _fseeki64(m_file, offset, SEEK_SET); if (status)