summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Armak <danarmak@gentoo.org>2002-08-08 22:51:25 +0000
committerDan Armak <danarmak@gentoo.org>2002-08-08 22:51:25 +0000
commit0688a9deef9e4a73e36f854e2ecfac6e87ffa0b1 (patch)
treeabe9e661062ec22f6ce9c3b1df9c3c8eb976c24a /media-libs
parentmask xine-lib-0.9.13-r1 for testing (diff)
downloadhistorical-0688a9deef9e4a73e36f854e2ecfac6e87ffa0b1.tar.gz
historical-0688a9deef9e4a73e36f854e2ecfac6e87ffa0b1.tar.bz2
historical-0688a9deef9e4a73e36f854e2ecfac6e87ffa0b1.zip
make a new masked revision that adds a patch to fix #5412 (kxine)
Diffstat (limited to 'media-libs')
-rw-r--r--media-libs/xine-lib/ChangeLog8
-rw-r--r--media-libs/xine-lib/files/digest-xine-lib-0.9.13-r11
-rw-r--r--media-libs/xine-lib/files/xine-lib-0.9.13-kxine.patch322
-rw-r--r--media-libs/xine-lib/xine-lib-0.9.13-r1.ebuild119
4 files changed, 449 insertions, 1 deletions
diff --git a/media-libs/xine-lib/ChangeLog b/media-libs/xine-lib/ChangeLog
index fb35b2ddf3de..9728b432ad06 100644
--- a/media-libs/xine-lib/ChangeLog
+++ b/media-libs/xine-lib/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for media-libs/xine-lib
# Copyright 2002 Gentoo Technologies, Inc.; Distributed under the GPL
-# $Header: /var/cvsroot/gentoo-x86/media-libs/xine-lib/ChangeLog,v 1.18 2002/08/06 21:16:03 seemant Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-libs/xine-lib/ChangeLog,v 1.19 2002/08/08 22:51:25 danarmak Exp $
+
+*xine-lib-0.9.13-r1 (09 Aug 2002)
+
+ 09 Aug 2002; Dan Armak <danarmak@gentoo.org> ChangeLog :
+
+ Add patch to enable kxine to work and hopefully fix #5412.
*xine-lib-0.9.10-r1 (06 Aug 2002)
diff --git a/media-libs/xine-lib/files/digest-xine-lib-0.9.13-r1 b/media-libs/xine-lib/files/digest-xine-lib-0.9.13-r1
new file mode 100644
index 000000000000..8f38da8ba0ba
--- /dev/null
+++ b/media-libs/xine-lib/files/digest-xine-lib-0.9.13-r1
@@ -0,0 +1 @@
+MD5 2e37c40bb78732187e3375a220405063 xine-lib-0.9.13.tar.gz 2751090
diff --git a/media-libs/xine-lib/files/xine-lib-0.9.13-kxine.patch b/media-libs/xine-lib/files/xine-lib-0.9.13-kxine.patch
new file mode 100644
index 000000000000..4ce6500732ab
--- /dev/null
+++ b/media-libs/xine-lib/files/xine-lib-0.9.13-kxine.patch
@@ -0,0 +1,322 @@
+diff -ur xine-lib-0.9.13/src/video_out/video_out_x11.h xine-lib-0.9.13-new/src/video_out/video_out_x11.h
+--- xine-lib-0.9.13/src/video_out/video_out_x11.h Thu Mar 21 18:29:51 2002
++++ xine-lib-0.9.13-new/src/video_out/video_out_x11.h Tue Aug 6 23:00:54 2002
+@@ -109,6 +109,12 @@
+ /* int *data */
+ #define GUI_DATA_EX_VIDEOWIN_VISIBLE 5
+
++/* void (*data[])(Display*) */
++/* i.e. a pointer to an array of function-pointers
++ * the first is the XLockDisplay replacement
++ * the second is the XUnlockDisplay replacement */
++#define GUI_DATA_EX_CHANGE_LOCK_FUNCTIONS 6
++
+ /* *data contains chosen visual, select a new one or change it to NULL
+ * to indicate the visual to use or that no visual will work */
+ /* XVisualInfo **data */
+diff -ur xine-lib-0.9.13/src/video_out/video_out_xshm.c xine-lib-0.9.13-new/src/video_out/video_out_xshm.c
+--- xine-lib-0.9.13/src/video_out/video_out_xshm.c Thu Aug 1 16:26:53 2002
++++ xine-lib-0.9.13-new/src/video_out/video_out_xshm.c Tue Aug 6 23:06:54 2002
+@@ -26,6 +26,9 @@
+ *
+ * xine-specific code by Guenter Bartsch <bartscgr@studbox.uni-stuttgart.de>
+ *
++ * locking function change support for KDE front end by Mark Thomas
++ * <markbt@users.sourceforge.net> - August 2002
++ *
+ */
+
+ #ifdef HAVE_CONFIG_H
+@@ -173,6 +176,9 @@
+ int video_width, int video_height,
+ int *dest_width, int *dest_height);
+
++ void (*x11_LockDisplay) (Display *);
++ void (*x11_UnlockDisplay) (Display *);
++
+ } xshm_driver_t;
+
+
+@@ -404,9 +410,9 @@
+ xshm_driver_t *this = (xshm_driver_t *) vo_img->driver;
+
+ if (frame->image) {
+- XLockDisplay (this->display);
++ this->x11_LockDisplay (this->display);
+ dispose_ximage (this, &frame->shminfo, frame->image);
+- XUnlockDisplay (this->display);
++ this->x11_UnlockDisplay (this->display);
+ }
+
+ free (frame);
+@@ -627,7 +633,7 @@
+ frame->output_width, frame->output_height);
+ #endif
+
+- XLockDisplay (this->display);
++ this->x11_LockDisplay (this->display);
+
+ /*
+ * (re-) allocate XImage
+@@ -656,7 +662,7 @@
+ frame->image = create_ximage (this, &frame->shminfo,
+ frame->output_width, frame->output_height);
+
+- XUnlockDisplay (this->display);
++ this->x11_UnlockDisplay (this->display);
+
+ if (format == IMGFMT_YV12) {
+ frame->vo_frame.pitches[0] = 8*((width + 7) / 8);
+@@ -768,7 +774,7 @@
+
+ static void clean_output_area (xshm_driver_t *this) {
+
+- XLockDisplay (this->display);
++ this->x11_LockDisplay (this->display);
+
+ XSetForeground (this->display, this->gc, this->black.pixel);
+
+@@ -804,7 +810,7 @@
+
+ #endif
+
+- XUnlockDisplay (this->display);
++ this->x11_UnlockDisplay (this->display);
+ }
+
+ static int xshm_redraw_needed (vo_driver_t *this_gen) {
+@@ -913,7 +919,7 @@
+ xoffset = (this->gui_width - frame->output_width) / 2 + this->gui_x;
+ yoffset = (this->gui_height - frame->output_height) / 2 + this->gui_y;
+
+- XLockDisplay (this->display);
++ this->x11_LockDisplay (this->display);
+ #ifdef LOG
+ printf ("video_out_xshm: display locked...\n");
+ #endif
+@@ -946,7 +952,7 @@
+ XFlush(this->display);
+ }
+
+- XUnlockDisplay (this->display);
++ this->x11_UnlockDisplay (this->display);
+
+ }
+
+@@ -1103,7 +1109,7 @@
+
+ if (xev->count == 0) {
+
+- XLockDisplay (this->display);
++ this->x11_LockDisplay (this->display);
+
+ xoffset = (this->cur_frame->gui_width - this->cur_frame->output_width) / 2;
+ yoffset = (this->cur_frame->gui_height - this->cur_frame->output_height) / 2;
+@@ -1145,7 +1151,7 @@
+
+ XFlush (this->display);
+
+- XUnlockDisplay (this->display);
++ this->x11_UnlockDisplay (this->display);
+ }
+
+ }
+@@ -1181,6 +1187,14 @@
+
+ break;
+
++ case GUI_DATA_EX_CHANGE_LOCK_FUNCTIONS:
++ {
++ void (**func)(void) = data;
++ this -> x11_LockDisplay = func[0];
++ this -> x11_UnlockDisplay = func[1];
++ }
++ break;
++
+ default:
+ return -1;
+ }
+@@ -1305,6 +1319,9 @@
+ this->gc = XCreateGC (this->display, this->drawable,
+ 0, NULL);
+
++ this->x11_LockDisplay = XLockDisplay;
++ this->x11_UnlockDisplay = XUnlockDisplay;
++
+ this->vo_driver.get_capabilities = xshm_get_capabilities;
+ this->vo_driver.alloc_frame = xshm_alloc_frame;
+ this->vo_driver.update_frame_format = xshm_update_frame_format;
+diff -ur xine-lib-0.9.13/src/video_out/video_out_xv.c xine-lib-0.9.13-new/src/video_out/video_out_xv.c
+--- xine-lib-0.9.13/src/video_out/video_out_xv.c Sat Jul 20 22:46:06 2002
++++ xine-lib-0.9.13-new/src/video_out/video_out_xv.c Tue Aug 6 23:06:17 2002
+@@ -29,6 +29,9 @@
+ * xine-specific code by Guenter Bartsch <bartscgr@studbox.uni-stuttgart.de>
+ *
+ * overlay support by James Courtier-Dutton <James@superbug.demon.co.uk> - July 2001
++ *
++ * locking function change support for KDE front-end by Mark Thomas
++ * <markbt@users.sourceforge.net> - August 2002
+ */
+
+ #ifdef HAVE_CONFIG_H
+@@ -196,6 +199,9 @@
+
+ int use_colorkey;
+ uint32_t colorkey;
++
++ void (*x11_LockDisplay) (Display *);
++ void (*x11_UnlockDisplay) (Display *);
+ };
+
+ int gX11Fail;
+@@ -219,18 +225,18 @@
+ if (frame->image) {
+
+ if (this->use_shm) {
+- XLockDisplay (this->display);
++ this->x11_LockDisplay (this->display);
+ XShmDetach (this->display, &frame->shminfo);
+ XFree (frame->image);
+- XUnlockDisplay (this->display);
++ this->x11_UnlockDisplay (this->display);
+
+ shmdt (frame->shminfo.shmaddr);
+ shmctl (frame->shminfo.shmid, IPC_RMID, NULL);
+ }
+ else {
+- XLockDisplay (this->display);
++ this->x11_LockDisplay (this->display);
+ XFree (frame->image);
+- XUnlockDisplay (this->display);
++ this->x11_UnlockDisplay (this->display);
+ }
+ }
+
+@@ -450,7 +456,7 @@
+
+ /* printf ("video_out_xv: updating frame to %d x %d (ratio=%d, format=%08x)\n",width,height,ratio_code,format); */
+
+- XLockDisplay (this->display);
++ this->x11_LockDisplay (this->display);
+
+ /*
+ * (re-) allocate xvimage
+@@ -474,7 +480,7 @@
+ frame->height = height;
+ frame->format = format;
+
+- XUnlockDisplay (this->display);
++ this->x11_UnlockDisplay (this->display);
+ }
+
+ frame->ratio_code = ratio_code;
+@@ -494,7 +500,7 @@
+ || (frame->width != this->deinterlace_frame.width)
+ || (frame->height / xvscaling != this->deinterlace_frame.height )
+ || (frame->format != this->deinterlace_frame.format)) {
+- XLockDisplay (this->display);
++ this->x11_LockDisplay (this->display);
+
+ if( this->deinterlace_frame.image )
+ dispose_ximage (this, &this->deinterlace_frame.shminfo,
+@@ -507,7 +513,7 @@
+ this->deinterlace_frame.height = frame->height / xvscaling;
+ this->deinterlace_frame.format = frame->format;
+
+- XUnlockDisplay (this->display);
++ this->x11_UnlockDisplay (this->display);
+ }
+
+
+@@ -584,7 +590,7 @@
+
+ static void xv_clean_output_area (xv_driver_t *this) {
+
+- XLockDisplay (this->display);
++ this->x11_LockDisplay (this->display);
+
+ XSetForeground (this->display, this->gc, this->black.pixel);
+
+@@ -598,7 +604,7 @@
+ this->output_width, this->output_height);
+ }
+
+- XUnlockDisplay (this->display);
++ this->x11_UnlockDisplay (this->display);
+ }
+
+ /*
+@@ -865,7 +871,7 @@
+ */
+ xv_redraw_needed (this_gen);
+
+- XLockDisplay (this->display);
++ this->x11_LockDisplay (this->display);
+
+ if (this->use_shm) {
+ XvShmPutImage(this->display, this->xv_port,
+@@ -887,7 +893,7 @@
+
+ XFlush(this->display);
+
+- XUnlockDisplay (this->display);
++ this->x11_UnlockDisplay (this->display);
+
+ }
+ /*
+@@ -1034,7 +1040,7 @@
+ /* FIXME : take care of completion events */
+
+ if (this->cur_frame) {
+- XLockDisplay (this->display);
++ this->x11_LockDisplay (this->display);
+
+ if (this->use_shm) {
+ XvShmPutImage(this->display, this->xv_port,
+@@ -1075,7 +1081,7 @@
+
+ XFlush(this->display);
+
+- XUnlockDisplay (this->display);
++ this->x11_UnlockDisplay (this->display);
+ }
+ }
+ break;
+@@ -1101,6 +1107,14 @@
+ }
+ break;
+
++ case GUI_DATA_EX_CHANGE_LOCK_FUNCTIONS:
++ {
++ void (**func)(void) = data;
++ this->x11_LockDisplay = func[0];
++ this->x11_UnlockDisplay = func[1];
++ }
++ break;
++
+ default:
+ return -1;
+ }
+@@ -1119,11 +1133,11 @@
+ this->deinterlace_frame.image = NULL;
+ }
+
+- XLockDisplay (this->display);
++ this->x11_LockDisplay (this->display);
+ if(XvUngrabPort (this->display, this->xv_port, CurrentTime) != Success) {
+ printf ("video_out_xv: xv_exit: XvUngrabPort() failed.\n");
+ }
+- XUnlockDisplay (this->display);
++ this->x11_UnlockDisplay (this->display);
+
+ for( i=0; i < VO_NUM_RECENT_FRAMES; i++ )
+ {
+@@ -1352,6 +1366,8 @@
+ this->deinterlace_frame.image = NULL;
+ this->use_colorkey = 0;
+ this->colorkey = 0;
++ this->x11_LockDisplay = XLockDisplay;
++ this->x11_UnlockDisplay = XUnlockDisplay;
+
+ XAllocNamedColor(this->display,
+ DefaultColormap(this->display, this->screen),
diff --git a/media-libs/xine-lib/xine-lib-0.9.13-r1.ebuild b/media-libs/xine-lib/xine-lib-0.9.13-r1.ebuild
new file mode 100644
index 000000000000..73e833d83e38
--- /dev/null
+++ b/media-libs/xine-lib/xine-lib-0.9.13-r1.ebuild
@@ -0,0 +1,119 @@
+# Copyright 1999-2002 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-libs/xine-lib/xine-lib-0.9.13-r1.ebuild,v 1.1 2002/08/08 22:51:25 danarmak Exp $
+
+inherit libtool || die "I lost my inheritance"
+
+S=${WORKDIR}/${P}
+DESCRIPTION="Xine is a free gpl-licensed video player for unix-like systems"
+HOMEPAGE="http://xine.sourceforge.net/"
+SRC_URI="http://xine.sourceforge.net/files/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="x86"
+
+DEPEND="oggvorbis? ( media-libs/libvorbis )
+ X? ( virtual/x11 )
+ avi? ( >=media-libs/win32codecs-0.50
+ media-libs/divx4linux )
+ esd? ( media-sound/esound )
+ dvd? ( >=media-libs/libdvdcss-0.0.3.3
+ >=media-libs/libdvdread-0.9.2 )
+ arts? ( kde-base/kdelibs )
+ alsa? ( media-libs/alsa-lib )
+ aalib? ( media-libs/aalib )
+ directfb? ( >=dev-libs/DirectFB-0.9.9
+ dev-util/pkgconfig )"
+
+RDEPEND="${DEPEND}
+ nls? ( sys-devel/gettext )"
+
+SLOT="0"
+LICENSE="GPL"
+KEYWORDS="x86"
+
+src_unpack() {
+
+ unpack ${A}
+ cd ${S}
+
+ patch -p1 < ${FILESDIR}/xine-lib-configure.patch || die "configure patch failed"
+
+ # allows kxine to work; see bug #5412
+ patch -p1 < ${FILESDIR}/${P}-kxine.patch || die "patching for kxine support failed"
+
+ if [ `use directfb` ]; then
+ patch -p0 < ${FILESDIR}/xineconfig.patch-${PV} || die "dfb patch 1 failed"
+# patch -p2 < ${FILESDIR}/${PF}-directfb.patch || die "dfb patch 2 failed"
+ else
+ patch -p1 < ${FILESDIR}/${PN}-disable-directfb.patch || die "no dfb patch failed"
+ fi
+}
+
+src_compile() {
+
+ elibtoolize
+
+ # Most of these are not working currently, but are here for completeness
+ # don't use the --disable-XXXtest because that defaults to ON not OFF
+ local myconf
+ use X \
+ || myconf="${myconf} --disable-x11 --disable-xv"
+ use esd \
+ || myconf="${myconf} --disable-esd"
+ # --disable-esdtest"
+ use nls \
+ || myconf="${myconf} --disable-nls"
+ use alsa \
+ || myconf="${myconf} --disable-alsa"
+ # --disable-alsatest"
+ use arts \
+ || myconf="${myconf} --disable-arts"
+ # --disable-artstest"
+
+ # This breaks because with the test disabled, it defaults to "found" check with
+ # the next release until then let it autodetect. See bug #2377.
+ use aalib || myconf="${myconf} --disable-aalib"
+ # --disable-aalibtest"
+
+ # Configure script is broken, even if you pass the flags below it still assumes
+ # ogg is installed and tries to compile it, giving you bug #5244. But leaving
+ # ogg for autodetection works.
+ use oggvorbis \
+ || myconf="${myconf} --disable-ogg --disable-vorbis"
+# --disable-oggtest \
+# --disable-vorbistest"
+
+ use avi \
+ && myconf="${myconf} --with-w32-path=/usr/lib/win32" \
+ || myconf="${myconf} --disable-asf"
+
+ einfo "myconf: ${myconf}"
+
+ econf ${myconf} || die
+
+ elibtoolize
+
+ emake || die
+}
+
+src_install() {
+
+ einstall || die
+
+ dodoc AUTHORS COPYING ChangeLog INSTALL README TODO
+ cd ${S}/doc
+ dodoc dataflow.dia README*
+
+}
+
+pkg_postinst() {
+
+ einfo
+ einfo "Please note, a new version of xine-lib has been installed,"
+ einfo "for library consistency you need to unmerge old versions"
+ einfo "of xine-lib before merging xine-ui."
+ einfo
+
+}