changeset 26963:8825552ee585

Fix the linking of TOOLS/netstream and TOOLS/vivodump.
author diego
date Fri, 06 Jun 2008 13:28:25 +0000
parents 457f8904a5eb
children 6229660208b5
files Makefile TOOLS/netstream.c TOOLS/vivodump.c mplayer.c
diffstat 4 files changed, 29 insertions(+), 66 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile	Fri Jun 06 00:45:35 2008 +0000
+++ b/Makefile	Fri Jun 06 13:28:25 2008 +0000
@@ -898,7 +898,9 @@
         TOOLS/compare$(EXESUF) \
         TOOLS/dump_mp4$(EXESUF) \
         TOOLS/movinfo$(EXESUF) \
+        TOOLS/netstream$(EXESUF) \
         TOOLS/subrip$(EXESUF) \
+        TOOLS/vivodump$(EXESUF) \
 
 ifdef ARCH_X86
 TOOLS += TOOLS/modify_reg$(EXESUF)
@@ -907,8 +909,6 @@
 ALLTOOLS = $(TOOLS) \
            TOOLS/bmovl-test$(EXESUF) \
            TOOLS/vfw2menc$(EXESUF) \
-           TOOLS/vivodump$(EXESUF) \
-           TOOLS/netstream$(EXESUF) \
 
 tools: $(TOOLS)
 alltools: $(ALLTOOLS)
@@ -924,8 +924,13 @@
 
 TOOLS/vfw2menc$(EXESUF): TOOLS/vfw2menc.c -lwinmm -lole32
 
-#FIXME: Linking is broken, help welcome.
-TOOLS/vivodump$(EXESUF): TOOLS/vivodump.c $(TEST_OBJS)
+mplayer-nomain.o: mplayer.c
+	$(CC) $(CFLAGS) -DDISABLE_MAIN -c -o $@ $<
+
+TOOLS/netstream$(EXESUF): TOOLS/netstream.c $(subst mplayer.o,mplayer-nomain.o,$(OBJS_MPLAYER)) $(filter-out %mencoder.o,$(OBJS_MENCODER)) $(OBJS_COMMON) $(COMMON_LIBS)
+TOOLS/vivodump$(EXESUF): TOOLS/vivodump.c $(subst mplayer.o,mplayer-nomain.o,$(OBJS_MPLAYER)) $(filter-out %mencoder.o,$(OBJS_MENCODER)) $(OBJS_COMMON) $(COMMON_LIBS)
+TOOLS/netstream$(EXESUF) TOOLS/vivodump$(EXESUF):
+	$(CC) $(CFLAGS) -o $@ $^ $(EXTRALIBS_MPLAYER) $(EXTRALIBS_MENCODER) $(COMMON_LDFLAGS)
 
 fastmemcpybench: TOOLS/fastmemcpybench.c
 	$(CC) $(CFLAGS) $< -o TOOLS/fastmem-mmx$(EXESUF)  -DNAME=\"mmx\"      -DHAVE_MMX
@@ -947,16 +952,6 @@
 %.so.6.0: %.o
 	ld -shared -o $@ $< -ldl -lc
 
-# FIXME: netstream linking is a mess that should be fixed properly some day.
-# It does not work with either GUI, LIVE555, libavformat, cdparanoia enabled.
-NETSTREAM_DEPS = libavutil/libavutil.a \
-                 m_option.o \
-                 m_struct.o \
-                 $(TEST_OBJS)
-
-TOOLS/netstream$(EXESUF): TOOLS/netstream.o $(NETSTREAM_DEPS)
-	$(CC) $(CFLAGS) -o $@ $^
-
 
 
 ###### drivers #######
--- a/TOOLS/netstream.c	Fri Jun 06 00:45:35 2008 +0000
+++ b/TOOLS/netstream.c	Fri Jun 06 13:28:25 2008 +0000
@@ -46,16 +46,18 @@
 /// Netstream packets def and some helpers
 #include "stream/netstream.h"
 
+// linking hacks
+char *info_name;
+char *info_artist;
+char *info_genre;
+char *info_subject;
+char *info_copyright;
+char *info_sourceform;
+char *info_comment;
 
-//Set some standard variables
-char* dvdsub_lang=NULL;
-char* audio_lang=NULL;
-int sub_justify=0;
-int identify=0;
-int dvdsub_id=0;
-int audio_id=0;
-int video_id=0;
-void af_fmt2str() {};
+char* out_filename = NULL;
+char* force_fourcc=NULL;
+char* passtmpfile="divx2pass.log";
 
 #ifdef __MINGW32__
 #define usleep sleep
@@ -367,46 +369,3 @@
   }
   return main_loop(listen_fd);
 }
-
-
-
-//---- For libmpdemux
-
-float stream_cache_seek_min_percent=50.0;
-float stream_cache_min_percent=20.0;
-
-#include <libmpdemux/demuxer.h>
-#include <libmpdemux/stheader.h>
-
-// audio stream skip/resync functions requires only for seeking.
-// (they should be implemented in the audio codec layer)
-void skip_audio_frame(sh_audio_t *sh_audio){
-  sh_audio=NULL;
-}
-void resync_audio_stream(sh_audio_t *sh_audio){
-  sh_audio=NULL;
-}
-
-int mp_input_check_interrupt(int time){
-    if(time) usleep(time);
-    return 0;
-}
-
-// for libdvdread:
-#include "get_path.c"
-
-// linking hacks
-int stream_cache_size=0;
-int index_mode=0;
-
-// for demux_ogg:
-void* vo_sub=NULL;
-int vo_osd_changed(int new_value){ new_value++; return 0;}
-int   subcc_enabled=0;
-
-float sub_fps=0;
-int sub_utf8=0;
-int   suboverlap_enabled = 1;
-float sub_delay=0;
-
-//---------------
--- a/TOOLS/vivodump.c	Fri Jun 06 00:45:35 2008 +0000
+++ b/TOOLS/vivodump.c	Fri Jun 06 13:28:25 2008 +0000
@@ -10,6 +10,7 @@
 #include "libmpdemux/muxer.h"
 #include "libmpdemux/demuxer.h"
 
+/* linking hacks */
 char *info_name;
 char *info_artist;
 char *info_genre;
@@ -18,6 +19,10 @@
 char *info_sourceform;
 char *info_comment;
 
+char* out_filename = NULL;
+char* force_fourcc=NULL;
+char* passtmpfile="divx2pass.log";
+
 static const short h263_format[8][2] = {
     { 0, 0 },
     { 128, 96 },
--- a/mplayer.c	Fri Jun 06 00:45:35 2008 +0000
+++ b/mplayer.c	Fri Jun 06 13:28:25 2008 +0000
@@ -2537,6 +2537,9 @@
     return 0;
 }
 
+/* This preprocessor directive is a hack to generate a mplayer-nomain.o object
+ * file for some tools to link against. */
+#ifndef DISABLE_MAIN
 int main(int argc,char* argv[]){
 
 
@@ -4038,3 +4041,4 @@
 
 return 1;
 }
+#endif /* DISABLE_MAIN */