]> granicus.if.org Git - rtmpdump/commitdiff
Win32 thread support
authorhyc <hyc@400ebc74-4327-4243-bc38-086b20814532>
Thu, 17 Dec 2009 03:29:36 +0000 (03:29 +0000)
committerhyc <hyc@400ebc74-4327-4243-bc38-086b20814532>
Thu, 17 Dec 2009 03:29:36 +0000 (03:29 +0000)
git-svn-id: svn://svn.mplayerhq.hu/rtmpdump/trunk@86 400ebc74-4327-4243-bc38-086b20814532

streams.c

index 4a585362814cf13fc7e4f8a362dd0fe0b070cee9..c6ee066a28d95fd47b506fca2171950e33fbc4b3 100644 (file)
--- a/streams.c
+++ b/streams.c
 
 #include <signal.h>
 #include <getopt.h>
-#include <pthread.h>
 
 #include <assert.h>
 
 #include "rtmp.h"
 #include "parseurl.h"
 
+#ifdef WIN32
+#include <process.h>
+#else
+#include <pthread.h>
+#endif
+
 #define RTMPDUMP_STREAMS_VERSION       "v2.0"
 
 #define RD_SUCCESS             0
 
 #define PACKET_SIZE 1024*1024
 
-/*
-inline void InitSockets() {
-#ifdef WIN32
-        WORD version;
-        WSADATA wsaData;
-
-        version = MAKEWORD(1,1);
-        WSAStartup(version, &wsaData);
-#endif
-}
-
-inline void CleanupSockets() {
 #ifdef WIN32
-        WSACleanup();
+#define InitSockets()  {\
+        WORD version;                  \
+        WSADATA wsaData;               \
+                                       \
+        version = MAKEWORD(1,1);       \
+        WSAStartup(version, &wsaData); }
+
+#define        CleanupSockets()        WSACleanup()
+#else
+#define InitSockets()
+#define        CleanupSockets()
 #endif
-}
-*/
 
 enum
 {
@@ -373,6 +374,19 @@ WriteStream(RTMP * rtmp, char **buf,       // target pointer, maybe preallocated
   return ret;                  // no more media packets
 }
 
+#ifdef WIN32
+HANDLE
+ThreadCreate(void *(*routine) (void *), void *args)
+{
+  HANDLE thd;
+
+  thd = (HANDLE) _beginthread(routine, 0, args);
+  if (thd == -1L)
+    LogPrintf("%s, _beginthread failed with %d\n", __FUNCTION__, errno);
+
+  return thd;
+}
+#else
 pthread_t
 ThreadCreate(void *(*routine) (void *), void *args)
 {
@@ -391,6 +405,7 @@ ThreadCreate(void *(*routine) (void *), void *args)
 
   return id;
 }
+#endif
 
 void *
 controlServerThread(void *unused)
@@ -1212,7 +1227,7 @@ main(int argc, char **argv)
   netstackdump_read = fopen("netstackdump_read", "wb");
 #endif
 
-  //InitSockets();
+  InitSockets();
 
   // start text UI
   ThreadCreate(controlServerThread, 0);
@@ -1233,7 +1248,7 @@ main(int argc, char **argv)
     }
   Log(LOGDEBUG, "Done, exiting...");
 
-  //CleanupSockets();
+  CleanupSockets();
 
 #ifdef _DEBUG
   if (netstackdump != 0)