changeset 4089:e1c6178de089

Configurable VIDIX usage
author nick
date Fri, 11 Jan 2002 17:20:43 +0000
parents 4435dc3b8bef
children 853322325bb9
files Makefile configure libvo/Makefile libvo/vo_fbdev.c libvo/vo_vesa.c
diffstat 5 files changed, 111 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile	Fri Jan 11 16:06:45 2002 +0000
+++ b/Makefile	Fri Jan 11 17:20:43 2002 +0000
@@ -14,8 +14,10 @@
 PRG_CFG = codec-cfg
 PRG_MENCODER = mencoder
 # these subdirectories required installation due binaries within them
-SUBDIRS = libdha vidix
+ifeq ($(VIDIX),yes)
+SUBDIRS += libdha vidix
 DO_MAKE = @ for i in $(SUBDIRS); do $(MAKE) -C $$i $@; done
+endif
 
 #prefix = /usr/local
 BINDIR = ${prefix}/bin
@@ -45,12 +47,16 @@
 A_LIBS = $(ALSA_LIB) $(NAS_LIB) $(MAD_LIB) $(VORBIS_LIB) $(SGIAUDIO_LIB)
 
 CODEC_LIBS = -Lg72x -lg72x -Lmp3lib -lMP3 -Llibac3 -lac3 -Lliba52 -la52 -Lxa -lxa -Llibmpeg2 -lmpeg2 $(AV_LIB)
-COMMON_LIBS = -Llinux -losdep -Lpostproc -lpostproc -Lvidix -lvidix
-MISC_LIBS = -Llibdha -ldha
-
+COMMON_LIBS = -Llinux -losdep -Lpostproc -lpostproc
+ifeq ($(VIDIX),yes)
+MISC_LIBS += -Llibdha -ldha -Lvidix -lvidix
+endif
 CFLAGS = $(OPTFLAGS) -Ilibmpdemux -Iloader $(VO_INC) $(EXTRA_INC) # -Wall
 
-PARTS = g72x libmpdemux mp3lib libac3 liba52 libmp1e libmpeg2 opendivx libavcodec libao2 drivers drivers/syncfb linux postproc xa libdha vidix
+PARTS = g72x libmpdemux mp3lib libac3 liba52 libmp1e libmpeg2 opendivx libavcodec libao2 drivers drivers/syncfb linux postproc xa
+ifeq ($(VIDIX),yes)
+PARTS += libdha vidix
+endif
 ifeq ($(VO2),yes)
 PARTS += libvo2
 else
@@ -89,8 +95,11 @@
 .c.o:
 	$(CC) -c $(CFLAGS) -o $@ $<
 
-COMMON_DEPS = g72x/libg72x.a libmpdemux/libmpdemux.a libao2/libao2.a libac3/libac3.a liba52/liba52.a mp3lib/libMP3.a libmpeg2/libmpeg2.a opendivx/libdecore.a linux/libosdep.a postproc/libpostproc.a libdha/libdha.so vidix/libvidix.a xa/libxa.a
+COMMON_DEPS = g72x/libg72x.a libmpdemux/libmpdemux.a libao2/libao2.a libac3/libac3.a liba52/liba52.a mp3lib/libMP3.a libmpeg2/libmpeg2.a opendivx/libdecore.a linux/libosdep.a postproc/libpostproc.a xa/libxa.a
 
+ifeq ($(VIDIX),yes)
+COMMON_DEPS += libdha/libdha.so vidix/libvidix.a
+endif
 ifeq ($(VO2),yes)
 COMMON_DEPS += libvo2/libvo2.a
 else
@@ -172,7 +181,10 @@
 GUI_LIBS = -LGui -lgui
 endif
 
-VIDIX_LIBS = -Lvidix -lvidix
+VIDIX_LIBS =
+ifeq ($(VIDIX),yes)
+VIDIX_LIBS += -Lvidix -lvidix
+endif
 
 $(PRG):	$(MPLAYER_DEP)
 	$(CC) $(CFLAGS) -o $(PRG) $(OBJS_MPLAYER) $(CODEC_LIBS) -Llibmpdemux -lmpdemux $(VO_LIBS) $(AO_LIBS) $(LIB_LOADER) $(GUI_LIBS) $(COMMON_LIBS) $(EXTRA_LIB) $(A_LIBS) $(V_LIBS) $(LIRC_LIB) $(CSS_LIB) $(ARCH_LIB) $(DECORE_LIB) $(TERMCAP_LIB) $(STATIC_LIB) $(GTK_LIBS) $(PNG_LIB) $(Z_LIB) $(STREAMING_LIB) $(VIDIX_LIBS) -lm
@@ -197,7 +209,9 @@
 	$(CC) $(CFLAGS) -g codec-cfg.c -o $(PRG_CFG) -DCODECS2HTML
 
 install: $(ALL_PRG)
+ifeq ($(VIDIX),yes)
 	$(DO_MAKE)
+endif
 	if test ! -d $(BINDIR) ; then mkdir -p $(BINDIR) ; fi
 	$(INSTALL) -m 755 -s $(PRG) $(BINDIR)/$(PRG)
 ifeq ($(GUI),yes)
--- a/configure	Fri Jan 11 16:06:45 2002 +0000
+++ b/configure	Fri Jan 11 17:20:43 2002 +0000
@@ -130,7 +130,7 @@
                          (use this option if it does not compile) [enable] 
   --disable-streaming    disable network streaming support
                          (support for: http/mms/rtp) [enable]
-
+  --disable-vidix	 disable VIDIX stuff [enable]
 Video:
   --enable-gl            build with OpenGL render support [autodetect]
   --enable-dga[=n]       build with DGA [n in {1, 2} ] support [autodetect]
@@ -705,6 +705,7 @@
 _tv=yes
 _tv_v4l=auto
 _streaming=yes
+_vidix=yes
 _divx4linux=auto
 _lirc=auto
 _gui=no
@@ -801,6 +802,8 @@
   --disable-fastmemcpy)	_fastmemcpy=no	;;
   --enable-streaming)	_streaming=yes	;;
   --disable-streaming)	_streaming=no	;;
+  --enable-vidix)	_vidix=yes	;;
+  --disable-vidix)	_vidix=no	;;
   --enable-divx4linux)	_divx4linux=yes	;;
   --disable-divx4linux)	_divx4linux=no	;;
   --enable-lirc)	_lirc=yes	;;
@@ -2732,7 +2735,9 @@
 _def_linux='#undef TARGET_LINUX'
 linux && _def_linux='#define TARGET_LINUX 1'
 
-
+_def_vidix='#define CONFIG_VIDIX 1'
+test "$_vidix" = no && _def_vidix='#undef CONFIG_VIDIX'
+echo Checking for vidix ... "$_vidix"
 #############################################################################
 echo "Creating config.mak"
 cat > config.mak << EOF
@@ -2752,6 +2757,7 @@
 
 STREAMING = $_streaming
 STREAMING_LIB = $_ld_streaming
+VIDIX = $_vidix
 
 VO2 = $_vo2
 
@@ -3038,6 +3044,9 @@
 
 $_def_streaming
 
+/* enables / disables vidix usage */
+$_def_vidix
+
 /* Extension defines */
 $_def_3dnow	// only define if you have 3DNOW (AMD k6-2, AMD Athlon, iDT WinChip, etc.)
 $_def_3dnowex	// only define if you have 3DNOWEX (AMD Athlon, etc.)
@@ -3222,6 +3231,13 @@
 
 EOF
 
+if test "$_vidix" = no ; then
+cat <<EOF
+You've disabled VIDIX. Although it would be better to PORT it instead.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+EOF
+fi
+
 # Last move:
 rm -f "$TMPO" "$TMPC" "$TMPS" "$TMPCPP"
 
--- a/libvo/Makefile	Fri Jan 11 16:06:45 2002 +0000
+++ b/libvo/Makefile	Fri Jan 11 17:20:43 2002 +0000
@@ -3,10 +3,17 @@
 
 LIBNAME = libvo.a
 
-SRCS=aspect.c aclib.c osd.c font_load.c video_out.c vo_null.c vo_pgm.c vo_md5.c vo_mpegpes.c x11_common.c $(OPTIONAL_SRCS) img_format.c vosub_vidix.c sub.c
+SRCS=aspect.c aclib.c osd.c font_load.c video_out.c vo_null.c vo_pgm.c vo_md5.c vo_mpegpes.c x11_common.c $(OPTIONAL_SRCS) img_format.c sub.c
 OBJS=$(SRCS:.c=.o)
 
-CFLAGS  = $(OPTFLAGS) -I. -I.. $(SDL_INC) $(X11_INC) $(EXTRA_INC) $(DVB_INC) -DMPG12PLAY -DVIDIX_PATH='"$(prefix)/lib/mplayer/vidix/"' #-Wall
+ifeq ($(VIDIX),yes)
+SRCS += vosub_vidix.c
+endif
+
+CFLAGS  = $(OPTFLAGS) -I. -I.. $(SDL_INC) $(X11_INC) $(EXTRA_INC) $(DVB_INC) -DMPG12PLAY #-Wall
+ifeq ($(VIDIX),yes)
+CFLAGS += -DVIDIX_PATH='"$(prefix)/lib/mplayer/vidix/"'
+endif
 # -I/usr/X11R6/include/
 
 .SUFFIXES: .c .o
--- a/libvo/vo_fbdev.c	Fri Jan 11 16:06:45 2002 +0000
+++ b/libvo/vo_fbdev.c	Fri Jan 11 17:20:43 2002 +0000
@@ -28,7 +28,9 @@
 #include "fastmemcpy.h"
 #include "sub.h"
 #include "../postproc/rgb2rgb.h"
+#ifdef CONFIG_VIDIX
 #include "vosub_vidix.h"
+#endif
 #include "aspect.h"
 
 LIBVO_EXTERN(fbdev)
@@ -42,10 +44,11 @@
 
 extern int verbose;
 
+#ifdef CONFIG_VIDIX
 /* Name of VIDIX driver */
 static const char *vidix_name = NULL;
 static int pre_init_err = 0;
-
+#endif
 /******************************
 *	fb.modes support      *
 ******************************/
@@ -730,13 +733,14 @@
   return cmap;
 }
 
+#ifdef CONFIG_VIDIX
 static uint32_t parseSubDevice(const char *sd)
 {
    if(memcmp(sd,"vidix",5) == 0) vidix_name = &sd[5]; /* vidix_name will be valid within init() */
    else { printf(FBDEV "Unknown subdevice: '%s'\n", sd); return -1; }
    return 0;
 }
-
+#endif
 
 static int fb_preinit(void)
 {
@@ -906,7 +910,11 @@
 	if (!fb_preinit())
 		return 1;
 
-	if (zoom && !vidix_name) {
+	if (zoom
+#ifdef CONFIG_VIDIX
+	 && !vidix_name
+#endif
+	 ) {
 		printf(FBDEV "-zoom is not supported\n");
 		return 1;
 	}
@@ -1062,6 +1070,7 @@
 	fb_size = fb_finfo.smem_len;
 	frame_buffer = NULL;
 	next_frame = NULL;
+#ifdef CONFIG_VIDIX
 	if(vidix_name)
 	{
 	    unsigned image_width,image_height,x_offset,y_offset;
@@ -1099,6 +1108,7 @@
 	    
 	}
 	else
+#endif
 	{
 	    if ((frame_buffer = (uint8_t *) mmap(0, fb_size, PROT_READ | PROT_WRITE,
 				    MAP_SHARED, fb_dev_fd, 0)) == (uint8_t *) -1) {
@@ -1143,11 +1153,14 @@
 
 static uint32_t query_format(uint32_t format)
 {
+#ifdef CONFIG_VIDIX
   static int first = 1;
+#endif
 	int ret = 0x4; /* osd/sub is supported on every bpp */
 
 	if (!fb_preinit())
 		return 0;
+#ifdef CONFIG_VIDIX
 	if(first)
 	{
 	    first = 1;
@@ -1159,6 +1172,7 @@
 	if(!pre_init_err)
 	    if(vidix_name)
 		return vidix_query_fourcc(format);
+#endif
 	if ((format & IMGFMT_BGR_MASK) == IMGFMT_BGR) {
 		int bpp = format & 0xff;
 
@@ -1280,6 +1294,8 @@
         close(fb_tty_fd);
 	close(fb_dev_fd);
 	if(frame_buffer) munmap(frame_buffer, fb_size);
+#ifdef CONFIG_VIDIX
 	if(vidix_name) vidix_term();
+#endif
 }
 
--- a/libvo/vo_vesa.c	Fri Jan 11 16:06:45 2002 +0000
+++ b/libvo/vo_vesa.c	Fri Jan 11 17:20:43 2002 +0000
@@ -35,7 +35,9 @@
 #include "bswap.h"
 #include "aspect.h"
 #include "vesa_lvo.h"
+#ifdef CONFIG_VIDIX
 #include "vosub_vidix.h"
+#endif
 
 #include "../postproc/swscale.h"
 #include "../postproc/rgb2rgb.h"
@@ -100,7 +102,9 @@
 
 /* Linux Video Overlay */
 static const char *lvo_name = NULL;
+#ifdef CONFIG_VIDIX
 static const char *vidix_name = NULL;
+#endif
 static int pre_init_err = 0;
 
 #define HAS_DGA()  (win.idx == -1)
@@ -135,7 +139,9 @@
 {
   int err;
   if(lvo_name) vlvo_term();
+#ifdef CONFIG_VIDIX
   else if(vidix_name) vidix_term();
+#endif
   if((err=vbeRestoreState(init_state)) != VBE_OK) PRINT_VBE_ERR("vbeRestoreState",err);
   if((err=vbeSetMode(init_mode,NULL)) != VBE_OK) PRINT_VBE_ERR("vbeSetMode",err);
   if(HAS_DGA()) vbeUnmapVideoBuffer((unsigned long)win.ptr,win.high);
@@ -333,7 +339,11 @@
     if(!HAS_DGA()) __vbeCopyData(dga_buffer);
     flip_trigger = 0;
   }
-  if(vo_doublebuffering && multi_size > 1 && !lvo_name && !vidix_name)
+  if(vo_doublebuffering && multi_size > 1 && !lvo_name
+#ifdef CONFIG_VIDIX
+   && !vidix_name
+#endif
+   )
   {
     int err;
     if((err=vbeSetDisplayStart(multi_buff[multi_idx],1)) != VBE_OK)
@@ -391,7 +401,11 @@
       if(verbose > 2)
           printf("vo_vesa: rgb2rgb_fnc was called\n");
     } 
-    if((!rgb2rgb_fnc || !HAS_DGA()) && !lvo_name && !vidix_name) __vbeCopyData(data);
+    if((!rgb2rgb_fnc || !HAS_DGA()) && !lvo_name
+#ifdef CONFIG_VIDIX
+     && !vidix_name
+#endif
+     ) __vbeCopyData(data);
     return 0;
 }
 
@@ -406,8 +420,10 @@
    if(strcmp(sd,"dga") == 0)   { flags &= ~(SUBDEV_NODGA); flags |= SUBDEV_FORCEDGA; }
    else
    if(memcmp(sd,"lvo:",4) == 0) lvo_name = &sd[4]; /* lvo_name will be valid within init() */
+#ifdef CONFIG_VIDIX
    else
    if(memcmp(sd,"vidix",5) == 0) vidix_name = &sd[5]; /* vidix_name will be valid within init() */
+#endif
    else { printf("vo_vesa: Unknown subdevice: '%s'\n", sd); return -1; }
    return flags;
 }
@@ -424,7 +440,9 @@
         printf("vo_vesa: subdevice %s have been initialized\n",vo_subdevice);
       if(vo_subdevice) parseSubDevice(vo_subdevice);
       if(lvo_name) pre_init_err = vlvo_preinit(lvo_name);
+#ifdef CONFIG_VIDIX
       else if(vidix_name) pre_init_err = vidix_preinit(vidix_name,&video_out_vesa);
+#endif
       if(verbose > 2)
         printf("vo_subdevice: initialization returns: %i\n",pre_init_err);
       first = 0;
@@ -432,7 +450,9 @@
     if(!pre_init_err) 
     {
       if(lvo_name) return vlvo_query_info(format);
+#ifdef CONFIG_VIDIX
       else if(vidix_name) return vidix_query_fourcc(format);
+#endif
     }
 	switch(format)
 	{
@@ -716,7 +736,11 @@
 		if(sd_flags & SUBDEV_NODGA) video_mode_info.PhysBasePtr = 0;
 		if( vesa_zoom || fs_mode )
 		{
-		  if(format==IMGFMT_YV12 || lvo_name || vidix_name)
+		  if(format==IMGFMT_YV12 || lvo_name
+#ifdef CONFIG_VIDIX
+		   || vidix_name
+#endif
+		   )
 		  {
 		      /* software scale */
 		      if(vesa_zoom > 1)
@@ -735,7 +759,11 @@
 		      }
 		      scale_srcW=width;
 	    	      scale_srcH=height;
-		      if(!lvo_name && !vidix_name) SwScale_Init();
+		      if(!lvo_name
+#ifdef CONFIG_VIDIX
+		       && !vidix_name
+#endif
+		       ) SwScale_Init();
 		      if(verbose) printf("vo_vesa: Using SCALE\n");
 		  }      
     		  else
@@ -744,7 +772,11 @@
 		      return -1;
 		  }
 		}
-		if(format != IMGFMT_YV12 && image_bpp != video_mode_info.BitsPerPixel && !lvo_name && !vidix_name)
+		if(format != IMGFMT_YV12 && image_bpp != video_mode_info.BitsPerPixel && !lvo_name
+#ifdef CONFIG_VIDIX
+		 && !vidix_name
+#endif
+		 )
 		{
 		  if(image_bpp == 24 && video_mode_info.BitsPerPixel == 32) rgb2rgb_fnc = rgb24to32;
 		  else 
@@ -840,7 +872,11 @@
 		else
 		{
 		  cpy_blk_fnc = __vbeCopyBlock;
-		  if((yuv_fmt || rgb2rgb_fnc) && !lvo_name && !vidix_name)
+		  if((yuv_fmt || rgb2rgb_fnc) && !lvo_name
+#ifdef CONFIG_VIDIX
+		   && !vidix_name
+#endif
+		   )
 		  {
 		    if(!(dga_buffer = memalign(64,video_mode_info.XResolution*video_mode_info.YResolution*video_mode_info.BitsPerPixel)))
 		    {
@@ -878,6 +914,7 @@
 		  }
 		  else printf("vo_vesa: Using video overlay: %s\n",lvo_name);
 		}
+#ifdef CONFIG_VIDIX
 		else
 		if(vidix_name)
 		{
@@ -892,6 +929,7 @@
 		  }
 		  else printf("vo_vesa: Using VIDIX\n");
 		}
+#endif
 	}
 	else
 	{