Subject: pkg/20549: graphics/mplayer: vidix, xanim plugins, VideoCD playback
To: None <gnats-bugs@gnats.netbsd.org>
From: None <svs+pr@grep.ru>
List: netbsd-bugs
Date: 03/02/2003 14:58:59
>Number:         20549
>Category:       pkg
>Synopsis:       graphics/mplayer: vidix drivers, xanim plugins, VideoCD playback
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 02 04:00:00 PST 2003
>Closed-Date:
>Last-Modified:
>Originator:     
>Release:        NetBSD 1.6L
>Organization:
>Environment:
	
	
>Description:
	Three issues:

	1) MPlayer contains its own MI drivers for certain
	   framebuffers.  These are compiled but not installed by
	   default.

	2) MPlayer supports loadable codecs developed for XAnim.
	   The code doesn't depend on XAnim itself.

	3) VideoCD playback can fail for certain discs (SCIOCCOMMAND
	   returns with error=0 but retsts!=0, and higher-level
	   code fails to play video stream.)  This fix was submitted
	   to mplayer-dev-eng.

	
>How-To-Repeat:
	
>Fix:
	
Index: graphics/gmplayer/Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/graphics/gmplayer/Makefile,v
retrieving revision 1.13
diff -u -r1.13 Makefile
--- graphics/gmplayer/Makefile	2003/02/03 05:07:06	1.13
+++ graphics/gmplayer/Makefile	2003/02/24 20:02:29
@@ -56,6 +56,11 @@
 .endfor
 	@${CHMOD} -R a+r ${PREFIX}/share/mplayer/Skin
 	@${CHMOD} a+rx ${PREFIX}/share/mplayer/Skin/*
+.if ${CONFIGURE_ARGS:M--disable-vidix} == ""
+	${INSTALL_PROGRAM_DIR} ${PREFIX}/lib/${PKGNAME}/vidix
+	${INSTALL_PROGRAM} ${WRKSRC}/libdha/libdha.so.0.1 \
+		${WRKSRC}/vidix/drivers/*.so ${PREFIX}/lib/${PKGNAME}/vidix
+.endif
 
 .include "../../graphics/mplayer-share/Makefile.depends"
 
Index: graphics/gmplayer/distinfo
===================================================================
RCS file: /cvsroot/pkgsrc/graphics/gmplayer/distinfo,v
retrieving revision 1.29
diff -u -r1.29 distinfo
--- graphics/gmplayer/distinfo	2003/02/22 16:26:18	1.29
+++ graphics/gmplayer/distinfo	2003/02/24 20:02:29
@@ -46,3 +46,7 @@
 Size (mplayer/xine-lcd-1.0.tar.bz2) = 168441 bytes
 SHA1 (patch-aa) = 6938dbdccb9b760dadad304f3bf61245e8b1baa6
 SHA1 (patch-ab) = f2fd9006914a7d1bac364be74ca5d7cb9aab6806
+SHA1 (patch-ac) = 188308ed49f134efe2528e1d20fcb09264bc748b
+SHA1 (patch-ad) = 94779a5212679b6f300fb3eb05f0e475fc9a6621
+SHA1 (patch-ae) = 8ff76a2918bb82c1bbf958c4599b8512d5029c81
+SHA1 (patch-af) = 59a49840704574604601c6d64b8889bcef5f360a
Index: graphics/mplayer/Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/graphics/mplayer/Makefile,v
retrieving revision 1.30
diff -u -r1.30 Makefile
--- graphics/mplayer/Makefile	2003/01/20 22:42:39	1.30
+++ graphics/mplayer/Makefile	2003/02/24 20:02:29
@@ -11,6 +11,11 @@
 
 do-install:
 	${INSTALL_PROGRAM} ${WRKSRC}/mplayer ${PREFIX}/bin
+.if ${CONFIGURE_ARGS:M--disable-vidix} == ""
+	${INSTALL_PROGRAM_DIR} ${PREFIX}/lib/${PKGNAME}/vidix
+	${INSTALL_PROGRAM} ${WRKSRC}/libdha/libdha.so.0.1 \
+		${WRKSRC}/vidix/drivers/*.so ${PREFIX}/lib/${PKGNAME}/vidix
+.endif
 
 .include "../../graphics/mplayer-share/Makefile.depends"
 
Index: graphics/mplayer/distinfo
===================================================================
RCS file: /cvsroot/pkgsrc/graphics/mplayer/distinfo,v
retrieving revision 1.30
diff -u -r1.30 distinfo
--- graphics/mplayer/distinfo	2003/02/22 16:26:18	1.30
+++ graphics/mplayer/distinfo	2003/02/24 20:02:29
@@ -4,3 +4,7 @@
 Size (mplayer/MPlayer-0.90rc4.tar.bz2) = 3390207 bytes
 SHA1 (patch-aa) = 6938dbdccb9b760dadad304f3bf61245e8b1baa6
 SHA1 (patch-ab) = f2fd9006914a7d1bac364be74ca5d7cb9aab6806
+SHA1 (patch-ac) = 188308ed49f134efe2528e1d20fcb09264bc748b
+SHA1 (patch-ad) = 94779a5212679b6f300fb3eb05f0e475fc9a6621
+SHA1 (patch-ae) = 8ff76a2918bb82c1bbf958c4599b8512d5029c81
+SHA1 (patch-af) = 59a49840704574604601c6d64b8889bcef5f360a
Index: graphics/mplayer-share/Makefile.common
===================================================================
RCS file: /cvsroot/pkgsrc/graphics/mplayer-share/Makefile.common,v
retrieving revision 1.25
diff -u -r1.25 Makefile.common
--- graphics/mplayer-share/Makefile.common	2003/02/22 16:26:17	1.25
+++ graphics/mplayer-share/Makefile.common	2003/02/24 20:02:29
@@ -40,6 +40,7 @@
 CONFIGURE_ARGS+=	--disable-mpdvdkit
 CONFIGURE_ARGS+=	--enable-faad
 CONFIGURE_ARGS+=	--disable-arts
+CONFIGURE_ARGS+=	--enable-xanim --with-xanimlibdir="${LOCALBASE}/lib/xanim"
 
 # The configure script attempts to test-execute compiled programs in /tmp,
 # but that directory may be mounted as noexec; work this around by setting
@@ -52,6 +53,13 @@
 CONFIGURE_ARGS+=	--with-win32libdir="${LOCALBASE}/lib/win32"
 .if ${MPLAYER_ENABLE_RUNTIME_CPU_DETECTION} == YES
 CONFIGURE_ARGS+=	--enable-runtime-cpudetection
+.endif
+.if ${MACHINE_ARCH} != "i386"
+CONFIGURE_ARGS+=	--disable-vidix
+.elif exists(${.CURDIR}/PLIST.vidix)
+PLIST_SRC+=		PLIST.vidix	
+PLIST_SUBST+=		PKGNAME=${PKGNAME}
+MAKE_ENV+=		PKGNAME=${PKGNAME}
 .endif
 .if ${MPLAYER_USE_REALMEDIA} == "YES"
 CONFIGURE_ARGS+=	--with-reallibdir="${LOCALBASE}/lib/RealPlayer8/Codecs"
--- /dev/null	Mon Feb 24 23:00:01 2003
+++ graphics/mplayer-share/patches/patch-ac	Mon Feb 24 19:06:08 2003
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- libmpdemux/vcd_read_nbsd.h.orig	Mon Dec 23 03:40:15 2002
++++ libmpdemux/vcd_read_nbsd.h
+@@ -154,7 +154,7 @@ vcd_read(int fd, char *mem)
+     perror("SCIOCCOMMAND");
+     return -1;
+   }
+-  if (sc.retsts || sc.error) {
++  if (sc.error) {
+     fprintf(stderr, "scsi command failed: status %d error %d\n", sc.retsts,
+ 	    sc.error);
+     return -1;
--- /dev/null	Mon Feb 24 23:00:01 2003
+++ graphics/mplayer-share/patches/patch-ad	Mon Feb 24 19:06:21 2003
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- libvo/Makefile.orig	Sun Feb 23 19:35:09 2003
++++ libvo/Makefile
+@@ -12,7 +12,7 @@ endif
+ 
+ CFLAGS  = $(OPTFLAGS) -I. -I.. $(FREETYPE_INC) $(SDL_INC) $(X11_INC) $(EXTRA_INC) $(DXR2_INC) $(DVB_INC) $(DIRECTFB_INC) -DMPG12PLAY #-Wall
+ ifeq ($(VIDIX),yes)
+-CFLAGS += -DVIDIX_PATH='"$(prefix)/lib/mplayer/vidix/"'
++CFLAGS += -DVIDIX_PATH='"$(prefix)/lib/$(PKGNAME)/vidix/"'
+ endif
+ # -I/usr/X11R6/include/
+ 
--- /dev/null	Mon Feb 24 23:00:01 2003
+++ graphics/mplayer-share/patches/patch-ae	Mon Feb 24 21:26:54 2003
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- libvo/vosub_vidix.c.orig	Sun Dec 15 21:18:41 2002
++++ libvo/vosub_vidix.c
+@@ -709,7 +709,7 @@ int vidix_preinit(const char *drvname,vo
+ 	  printf("vosub_vidix: You have wrong version of VIDIX library\n");
+ 	  return -1;
+ 	}
+-	vidix_handler = vdlOpen(LIBDIR"/mplayer/vidix/",
++	vidix_handler = vdlOpen(VIDIX_PATH,
+ 				drvname ? drvname[0] == ':' ? &drvname[1] : drvname[0] ? drvname : NULL : NULL,
+ 				TYPE_OUTPUT,
+ 				verbose);
--- /dev/null	Mon Feb 24 23:00:01 2003
+++ graphics/mplayer-share/patches/patch-af	Mon Feb 24 19:06:02 2003
@@ -0,0 +1,61 @@
+$NetBSD$
+
+--- vidix/drivers/Makefile.orig	Sat Dec 21 16:06:23 2002
++++ vidix/drivers/Makefile
+@@ -2,48 +2,48 @@
+ 
+ include ../../config.mak
+ 
+-BINDIR = $(LIBDIR)/mplayer/vidix
++BINDIR = $(LIBDIR)/$(PKGNAME)/vidix
+ 
+ CYBERBLADE_VID=cyberblade_vid.so
+ CYBERBLADE_SRCS=cyberblade_vid.c
+ CYBERBLADE_OBJS=cyberblade_vid.o
+-CYBERBLADE_LIBS=-L../../libdha -ldha -lm
++CYBERBLADE_LIBS=-L../../libdha -Wl,-rpath,$(BINDIR) -ldha -lm
+ CYBERBLADE_CFLAGS=$(OPTFLAGS) -fPIC -I. -I..
+ 
+ RADEON_VID=radeon_vid.so
+ RADEON_SRCS=radeon_vid.c
+ RADEON_OBJS=radeon_vid.o
+-RADEON_LIBS=-L../../libdha -ldha -lm
++RADEON_LIBS=-L../../libdha -Wl,-rpath,$(BINDIR) -ldha -lm
+ RADEON_CFLAGS=$(OPTFLAGS) -fPIC -I. -I..
+ 
+ RAGE128_VID=rage128_vid.so
+ RAGE128_SRCS=radeon_vid.c
+ RAGE128_OBJS=rage128_vid.o
+-RAGE128_LIBS=-L../../libdha -ldha
++RAGE128_LIBS=-L../../libdha -Wl,-rpath,$(BINDIR) -ldha
+ RAGE128_CFLAGS=$(OPTFLAGS) -fPIC -I. -I.. -DRAGE128
+ 
+ PM3_VID=pm3_vid.so
+ PM3_SRCS=pm3_vid.c
+ PM3_OBJS=pm3_vid.o
+-PM3_LIBS=-L../../libdha -ldha
++PM3_LIBS=-L../../libdha -Wl,-rpath,$(BINDIR) -ldha
+ PM3_CFLAGS=$(OPTFLAGS) -fPIC -I. -I..
+ 
+ MACH64_VID=mach64_vid.so
+ MACH64_SRCS=mach64_vid.c
+ MACH64_OBJS=mach64_vid.o
+-MACH64_LIBS=-L../../libdha -ldha
++MACH64_LIBS=-L../../libdha -Wl,-rpath,$(BINDIR) -ldha
+ MACH64_CFLAGS=$(OPTFLAGS) -fPIC -I. -I.. -DRAGE128
+ 
+ MGA_VID=mga_vid.so
+ MGA_SRCS=mga_vid.c
+ MGA_OBJS=mga_vid.o
+-MGA_LIBS=-L../../libdha -ldha -lm
++MGA_LIBS=-L../../libdha -Wl,-rpath,$(BINDIR) -ldha -lm
+ MGA_CFLAGS=$(OPTFLAGS) -fPIC -I. -I..
+ 
+ MGA_CRTC2_VID=mga_crtc2_vid.so
+ MGA_CRTC2_SRCS=mga_vid.c
+ MGA_CRTC2_OBJS=mga_crtc2_vid.o
+-MGA_CRTC2_LIBS=-L../../libdha -ldha -lm
++MGA_CRTC2_LIBS=-L../../libdha -Wl,-rpath,$(BINDIR) -ldha -lm
+ MGA_CRTC2_CFLAGS=$(OPTFLAGS) -fPIC -I. -I.. -DCRTC2
+ 
+ all:    $(CYBERBLADE_VID) $(RADEON_VID) $(RAGE128_VID) $(MACH64_VID) $(NVIDIA_VID) $(GENFB_VID) $(MGA_VID) $(MGA_CRTC2_VID) $(PM3_VID)
--- /dev/null	Mon Feb 24 23:20:02 2003
+++ graphics/gmplayer/PLIST.vidix	Mon Feb 24 19:06:34 2003
@@ -0,0 +1,11 @@
+@comment $NetBSD$
+lib/${PKGNAME}/vidix/libdha.so.0.1
+lib/${PKGNAME}/vidix/cyberblade_vid.so
+lib/${PKGNAME}/vidix/mach64_vid.so
+lib/${PKGNAME}/vidix/mga_crtc2_vid.so
+lib/${PKGNAME}/vidix/mga_vid.so
+lib/${PKGNAME}/vidix/pm3_vid.so
+lib/${PKGNAME}/vidix/radeon_vid.so
+lib/${PKGNAME}/vidix/rage128_vid.so
+@dirrm lib/${PKGNAME}/vidix
+@dirrm lib/${PKGNAME}
--- /dev/null	Mon Feb 24 23:20:02 2003
+++ graphics/mplayer/PLIST.vidix	Mon Feb 24 19:06:31 2003
@@ -0,0 +1,11 @@
+@comment $NetBSD$
+lib/${PKGNAME}/vidix/libdha.so.0.1
+lib/${PKGNAME}/vidix/cyberblade_vid.so
+lib/${PKGNAME}/vidix/mach64_vid.so
+lib/${PKGNAME}/vidix/mga_crtc2_vid.so
+lib/${PKGNAME}/vidix/mga_vid.so
+lib/${PKGNAME}/vidix/pm3_vid.so
+lib/${PKGNAME}/vidix/radeon_vid.so
+lib/${PKGNAME}/vidix/rage128_vid.so
+@dirrm lib/${PKGNAME}/vidix
+@dirrm lib/${PKGNAME}
>Release-Note:
>Audit-Trail:
>Unformatted: