[MPlayer-cygwin] TOOLS/netstream mingw patch
Erik Augustson
erik_27can at yahoo.com
Wed Jun 23 09:41:34 CEST 2004
Heya all,
I was messing around with TOOLS/netstream to get it to compile under mingw32,
and was able to get it to at least compile with the following fixes. Before
anyone starts a flamewar on me, I really have no idea how to C program. I
basically look through code, use pattern recognition, Google any errors i get,
and trial-and-error fix however i can :) This at least gets netstream to
compile, however i don't know how to make the unix > win32 socket changes, which
i hear is pretty simple. So i thought i should leave that, and whatever code
cleanups, to people who know what they're doing. Here are the changes i made,
and i'm posting via html, so the line wrap will probably mess this up.
diff -Naur old/MPlayer-20040622/TOOLS/netstream/Makefile
new/MPlayer-20040622/TOOLS/netstream/Makefile
--- old/MPlayer-20040622/TOOLS/netstream/Makefile Tue Feb 17 06:22:32 2004
+++ new/MPlayer-20040622/TOOLS/netstream/Makefile Wed Jun 23 03:11:09 2004
@@ -17,7 +17,7 @@
netstream: $(MPROOT)/libmpdemux/libmpdemux.a netstream.o
- $(CC) $(CFLAGS) netstream.o -o netstream $(MPROOT)/libmpdemux/libmpdemux.a
$(MPROOT)/libmpdvdkit2/libmpdvdkit.a
$(MPROOT)/libmpcodecs/native/minilzo.o $(MPROOT)/libvo/aclib.o
$(MPROOT)/libmpcodecs/img_format.o $(MPROOT)/libao2/afmt.o
$(MPROOT)/m_option.o $(MPROOT)/m_struct.o $(MPROOT)/subreader.o
$(MPROOT)/mp_msg.o $(MPROOT)/osdep/shmem.o $(MPROOT)/osdep/timer-*.o
$(VORBIS_LIB) $(CDPARANOIA_LIB) -lpthread -lsmbclient -lungif
+ $(CC) $(CFLAGS) netstream.o -o netstream $(MPROOT)/libmpdemux/libmpdemux.a
$(MPROOT)/libmpdvdkit2/libmpdvdkit.a
$(MPROOT)/libmpcodecs/native/minilzo.o $(MPROOT)/libvo/aclib.o
$(MPROOT)/libmpcodecs/img_format.o $(MPROOT)/libao2/afmt.o
$(MPROOT)/m_option.o $(MPROOT)/m_struct.o $(MPROOT)/subreader.o
$(MPROOT)/mp_msg.o $(MPROOT)/osdep/shmem.o $(MPROOT)/osdep/timer-*.o
$(VORBIS_LIB) $(CDPARANOIA_LIB) $(MPROOT)/osdep/libosdep.a
$(MPROOT)/liba52/liba52.a -lwsock32 -lwinmm -lungif -lz
clean:
rm -f *.o *.a *~
diff -Naur old/MPlayer-20040622/TOOLS/netstream/netstream.c
new/MPlayer-20040622/TOOLS/netstream/netstream.c
--- old/MPlayer-20040622/TOOLS/netstream/netstream.c Sat Apr 17 12:46:41 2004
+++ new/MPlayer-20040622/TOOLS/netstream/netstream.c Wed Jun 23 03:09:37 2004
@@ -48,6 +48,14 @@
/// Netstream packets def and some helpers
#include <libmpdemux/netstream.h>
+#if defined(__MINGW32__)
+#include <windows.h>
+#include "../../osdep/glob.h"
+typedef unsigned int socklen_t;
+#define SIGKILL 4
+#define SIGHUP 6
+#define SIGQUIT 7
+#endif
//Set some standard variables
char* dvdsub_lang=NULL;
@@ -254,7 +262,7 @@
count++;
if(count==3) exit(1);
if(count > 3)
- kill(getpid(),SIGKILL);
+ //kill(getpid(),SIGKILL);
run_server = 0;
}
@@ -365,7 +373,7 @@
}
int mp_input_check_interrupt(int time){
- if(time) usleep(time);
+ if(time) sleep(time);
return 0;
}
The sigkill, sighup, and sigquit are supposed to be handled by signals.h, but
the mingw headers don't include them, so i added them right into netstream.c.
I'm not sure what handles socklen_t, but i found that fix somewhere on Google,
and it's probably a dirty hack. Win32 uses sleep() instead of usleep(), and i'm
sure someone has a better fix for kill() than to comment it out. Any help would
be appreciated.
Regards,
Erik
Btw this was configured with --disable-live and --disable-theora. Netstream
doesn't need those dependencies kicking around which libmpdemux.a picks up.
More information about the MPlayer-cygwin
mailing list