From 85b6225269ac6f96df5e11ac73469ef7881f14bd Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Kempf Date: Wed, 19 Aug 2009 01:17:30 +0200 Subject: [PATCH 1/1] Port live to Win64 --- extras/contrib/src/Makefile | 3 + extras/contrib/src/Patches/live-win64.patch | 146 ++++++++++++++++++++ 2 files changed, 149 insertions(+) create mode 100644 extras/contrib/src/Patches/live-win64.patch diff --git a/extras/contrib/src/Makefile b/extras/contrib/src/Makefile index 45ca634e9a..c8e4389fb4 100644 --- a/extras/contrib/src/Makefile +++ b/extras/contrib/src/Makefile @@ -1279,6 +1279,9 @@ live: live555-$(LIVEDOTCOM_VERSION).tar.gz $(EXTRACT_GZ) patch -p0 < Patches/live-noapps.patch patch -p0 < Patches/live-uselocale.patch +ifdef HAVE_WIN64 + patch -p0 < Patches/live-win64.patch +endif .live: live ifdef HAVE_WIN32 diff --git a/extras/contrib/src/Patches/live-win64.patch b/extras/contrib/src/Patches/live-win64.patch new file mode 100644 index 0000000000..8f94a4d90e --- /dev/null +++ b/extras/contrib/src/Patches/live-win64.patch @@ -0,0 +1,146 @@ +diff -ruN live/BasicUsageEnvironment/BasicHashTable.cpp live.new/BasicUsageEnvironment/BasicHashTable.cpp +--- live/BasicUsageEnvironment/BasicHashTable.cpp 2009-07-28 03:05:14.000000000 +0200 ++++ live.new/BasicUsageEnvironment/BasicHashTable.cpp 2009-08-19 00:58:32.000000000 +0200 +@@ -26,6 +26,7 @@ + #endif + #include + #include ++#include + + // When there are this many entries per bucket, on average, rebuild + // the table to increase the number of buckets +@@ -253,17 +254,17 @@ + } + + unsigned BasicHashTable::hashIndexFromKey(char const* key) const { +- unsigned result = 0; ++ intptr_t result = 0; + + if (fKeyType == STRING_HASH_KEYS) { + while (1) { + char c = *key++; + if (c == 0) break; +- result += (result<<3) + (unsigned)c; ++ result += (result<<3) + (intptr_t)c; + } + result &= fMask; + } else if (fKeyType == ONE_WORD_HASH_KEYS) { +- result = randomIndex((unsigned long)key); ++ result = randomIndex((intptr_t)key); + } else { + unsigned* k = (unsigned*)key; + unsigned long sum = 0; +diff -ruN live/BasicUsageEnvironment/BasicTaskScheduler0.cpp live.new/BasicUsageEnvironment/BasicTaskScheduler0.cpp +--- live/BasicUsageEnvironment/BasicTaskScheduler0.cpp 2009-07-28 03:05:14.000000000 +0200 ++++ live.new/BasicUsageEnvironment/BasicTaskScheduler0.cpp 2009-08-19 00:58:04.000000000 +0200 +@@ -19,6 +19,7 @@ + + #include "BasicUsageEnvironment0.hh" + #include "HandlerSet.hh" ++#include + + ////////// A subclass of DelayQueueEntry, + ////////// used to implement BasicTaskScheduler0::scheduleDelayedTask() +@@ -64,7 +65,7 @@ + } + + void BasicTaskScheduler0::unscheduleDelayedTask(TaskToken& prevTask) { +- DelayQueueEntry* alarmHandler = fDelayQueue.removeEntry((long)prevTask); ++ DelayQueueEntry* alarmHandler = fDelayQueue.removeEntry((intptr_t)prevTask); + prevTask = NULL; + delete alarmHandler; + } +diff -ruN live/groupsock/Groupsock.cpp live.new/groupsock/Groupsock.cpp +--- live/groupsock/Groupsock.cpp 2009-07-28 03:05:14.000000000 +0200 ++++ live.new/groupsock/Groupsock.cpp 2009-08-19 00:57:14.000000000 +0200 +@@ -17,6 +17,7 @@ + // 'Group sockets' + // Implementation + ++#include + #include "Groupsock.hh" + #include "GroupsockHelper.hh" + //##### Eventually fix the following #include; we shouldn't know about tunnels +@@ -403,7 +404,7 @@ + = (TunnelEncapsulationTrailer*)&data[size]; + TunnelEncapsulationTrailer* trailer; + +- Boolean misaligned = ((unsigned long)trailerInPacket & 3) != 0; ++ Boolean misaligned = ((intptr_t)trailerInPacket & 3) != 0; + unsigned trailerOffset; + u_int8_t tunnelCmd; + if (isSSM()) { +diff -ruN live/liveMedia/MP3StreamState.cpp live.new/liveMedia/MP3StreamState.cpp +--- live/liveMedia/MP3StreamState.cpp 2009-07-28 03:05:14.000000000 +0200 ++++ live.new/liveMedia/MP3StreamState.cpp 2009-08-19 00:56:37.000000000 +0200 +@@ -20,6 +20,7 @@ + + #include "MP3StreamState.hh" + #include "GroupsockHelper.hh" ++#include + + #if defined(__WIN32__) || defined(_WIN32) + #define snprintf _snprintf +@@ -35,8 +36,8 @@ + // Close our open file or socket: + if (fFid != NULL && fFid != stdin) { + if (fFidIsReallyASocket) { +- long fid_long = (long)fFid; +- closeSocket((int)fid_long); ++ intptr_t fid_long = (intptr_t)fFid; ++ closeSocket((int)(intptr_t)fid_long); + } else { + fclose(fFid); + } +@@ -201,8 +202,8 @@ + char const* const getCmdFmt = "GET %s HTTP/1.1\r\nHost: %s:%d\r\n\r\n"; + + if (fFidIsReallyASocket) { +- long fid_long = (long)fFid; +- int sock = (int)fid_long; ++ intptr_t fid_long = (intptr_t)fFid; ++ int sock = (int)(intptr_t)fid_long; + char writeBuf[100]; + #if defined(IRIX) || defined(ALPHA) || defined(_QNX4) || defined(IMN_PIM) || defined(CRIS) + /* snprintf() isn't defined, so just use sprintf() */ +@@ -412,8 +413,8 @@ + unsigned numChars) { + // Hack for doing socket I/O instead of file I/O (e.g., on Windows) + if (fFidIsReallyASocket) { +- long fid_long = (long)fFid; +- int sock = (int)fid_long; ++ intptr_t fid_long = (intptr_t)fFid; ++ int sock = (int)(intptr_t)fid_long; + unsigned totBytesRead = 0; + do { + waitUntilSocketIsReadable(fEnv, sock); +diff -ruN live/liveMedia/RTCP.cpp live.new/liveMedia/RTCP.cpp +--- live/liveMedia/RTCP.cpp 2009-07-28 03:05:14.000000000 +0200 ++++ live.new/liveMedia/RTCP.cpp 2009-08-19 00:57:01.000000000 +0200 +@@ -18,6 +18,7 @@ + // RTCP + // Implementation + ++#include + #include "RTCP.hh" + #include "GroupsockHelper.hh" + #include "rtcp_from_spec.h" +@@ -81,14 +82,14 @@ + + HashTable::Iterator* iter + = HashTable::Iterator::create(*fTable); +- unsigned long timeCount; ++ intptr_t timeCount; + char const* key; +- while ((timeCount = (unsigned long)(iter->next(key))) != 0) { ++ while ((timeCount = (intptr_t)(iter->next(key))) != 0) { + #ifdef DEBUG + fprintf(stderr, "reap: checking SSRC 0x%lx: %ld (threshold %d)\n", (unsigned long)key, timeCount, threshold); + #endif +- if (timeCount < (unsigned long)threshold) { // this SSRC is old +- unsigned long ssrc = (unsigned long)key; ++ if (timeCount < (intptr_t)threshold) { // this SSRC is old ++ intptr_t ssrc = (intptr_t)key; + oldSSRC = (unsigned)ssrc; + foundOldMember = True; + } -- 2.39.2