3
0
Fork 0
forked from mirrors/nixpkgs

* MPlayer updated to 1.0pre8.

svn path=/nixpkgs/trunk/; revision=5498
This commit is contained in:
Eelco Dolstra 2006-06-23 12:00:06 +00:00
parent 1a570c63f7
commit 03dca65e08
5 changed files with 6 additions and 202 deletions

View file

@ -1,8 +1,5 @@
source $stdenv/setup
# !!! Remove eventually.
export _POSIX2_VERSION=199209
postUnpack() {
unpackFile $fonts
}

View file

@ -13,12 +13,12 @@ assert xineramaSupport -> libXinerama != null;
assert randrSupport -> libXrandr != null;
stdenv.mkDerivation {
name = "MPlayer-1.0pre7";
name = "MPlayer-1.0pre8";
builder = ./builder.sh;
src = fetchurl {
url = http://nix.cs.uu.nl/dist/tarballs/MPlayer-1.0pre7try2.tar.bz2;
md5 = "aaca4fd327176c1afb463f0f047ef6f4";
url = http://www4.mplayerhq.hu/MPlayer/releases/MPlayer-1.0pre8.tar.bz2;
md5 = "f82bb2bc51b6cd5e5dd96f88f6f98582";
};
fonts = fetchurl {
url = http://nix.cs.uu.nl/dist/tarballs/font-arial-iso-8859-1.tar.bz2;
@ -40,9 +40,4 @@ stdenv.mkDerivation {
];
configureFlags = if cacaSupport then "--enable-caca" else "--disable-caca";
# These fix MPlayer's aspect ratio when run in a screen rotated with
# Xrandr.
# See: http://itdp.de/~itdp/html/mplayer-dev-eng/2005-08/msg00427.html
patches = [./mplayer-aspect.patch ./mplayer-pivot.patch];
}

View file

@ -1,76 +0,0 @@
diff -Nur MPlayer.orig/libvo/aspect.c MPlayer/libvo/aspect.c
--- MPlayer.orig/libvo/aspect.c 2004-10-28 03:15:51.000000000 +0200
+++ MPlayer/libvo/aspect.c 2005-08-24 15:34:14.000000000 +0200
@@ -11,13 +11,16 @@
#include <stdio.h>
#endif
+int vo_physical_width = 0;
+int vo_physical_height = 0;
+
int vo_panscan_x = 0;
int vo_panscan_y = 0;
float vo_panscan_amount = 0;
#include "video_out.h"
-float monitor_aspect=4.0/3.0;
+float monitor_aspect=-1.0f;
extern float movie_aspect;
static struct {
@@ -47,11 +50,24 @@
aspdat.preh = preh;
}
+static void init_monitor_aspect( void )
+{
+ if (monitor_aspect != -1.0f) return;
+ if (vo_physical_width == 0 || vo_physical_height == 0) {
+ // if there's no other indication, assume square pixels
+ vo_physical_width = aspdat.scrw;
+ vo_physical_height = aspdat.scrh;
+ }
+ mp_msg(MSGT_VO,MSGL_V,"\naspect: monitor aspect detected %d:%d\n", vo_physical_width, vo_physical_height);
+ monitor_aspect = 1.0f * vo_physical_width / vo_physical_height;
+}
+
void aspect_save_screenres(int scrw, int scrh){
#ifdef ASPECT_DEBUG
printf("aspect_save_screenres %dx%d \n",scrw,scrh);
#endif
aspdat.scrw = scrw;
aspdat.scrh = scrh;
+ init_monitor_aspect(); // now is a good time
}
/* aspect is called with the source resolution and the
diff -Nur MPlayer.orig/libvo/aspect.h MPlayer/libvo/aspect.h
--- MPlayer.orig/libvo/aspect.h 2002-06-05 21:35:54.000000000 +0200
+++ MPlayer/libvo/aspect.h 2005-08-24 00:08:35.000000000 +0200
@@ -2,6 +2,9 @@
#define __ASPECT_H
/* Stuff for correct aspect scaling. */
+extern int vo_physical_width;
+extern int vo_physical_height;
+
extern int vo_panscan_x;
extern int vo_panscan_y;
extern float vo_panscan_amount;
diff -Nur MPlayer.orig/libvo/x11_common.c MPlayer/libvo/x11_common.c
--- MPlayer.orig/libvo/x11_common.c 2005-08-23 23:07:07.000000000 +0200
+++ MPlayer/libvo/x11_common.c 2005-08-23 23:42:31.000000000 +0200
@@ -464,6 +464,12 @@
if (!vo_screenheight)
vo_screenheight = DisplayHeight(mDisplay, mScreen);
}
+ if (vo_physical_width == 0) {
+ vo_physical_width = DisplayWidthMM(mDisplay, mScreen);
+ }
+ if (vo_physical_height == 0) {
+ vo_physical_height = DisplayHeightMM(mDisplay, mScreen);
+ }
// get color depth (from root window, or the best visual):
XGetWindowAttributes(mDisplay, mRootWin, &attribs);
depth = attribs.depth;

View file

@ -1,112 +0,0 @@
--- MPlayer/configure.orig 2005-08-21 23:47:47.000000000 +0200
+++ MPlayer/configure 2005-08-21 23:55:02.000000000 +0200
@@ -162,6 +162,7 @@
--enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
--enable-joystick enable joystick support [disable]
--disable-vm disable support X video mode extensions [autodetect]
+ --disable-randr disable support for X resize and rotate extension [autodetect]
--disable-xf86keysym disable support for 'multimedia' keys [autodetect]
--disable-tv disable TV Interface (tv/dvb grabbers) [enable]
--disable-tv-v4l disable Video4Linux TV Interface support [autodetect]
@@ -252,6 +253,7 @@
--enable-xv build with Xv render support for X 4.x [autodetect]
--enable-xvmc build with XvMC acceleration for X 4.x [disable]
--enable-vm build with XF86VidMode support for X11 [autodetect]
+ --enable-randr build with XRandR support for X11 [autodetect]
--enable-xinerama build with Xinerama support for X11 [autodetect]
--enable-x11 build with X11 render support [autodetect]
--enable-fbdev build with FBDev render support [autodetect]
@@ -1351,6 +1353,7 @@
_mga=auto
_xmga=auto
_vm=auto
+_randr=auto
_xf86keysym=auto
_mlib=auto
_sgiaudio=auto
@@ -1562,6 +1565,8 @@
--disable-xmga) _xmga=no ;;
--enable-vm) _vm=yes ;;
--disable-vm) _vm=no ;;
+ --enable-randr) _randr=yes ;;
+ --disable-randr) _randr=no ;;
--enable-xf86keysym) _xf86keysym=yes ;;
--disable-xf86keysym) _xf86keysym=no ;;
--enable-mlib) _mlib=yes ;;
@@ -3603,6 +3608,25 @@
fi
echores "$_vm"
+# X Resize, Rotate and Reflect extension
+echocheck "Xrandr"
+if test "$_x11" = yes && test "$_randr" = auto; then
+ cat > $TMPC <<EOF
+#include <X11/Xlib.h>
+#include <X11/extensions/Xrandr.h>
+int main(void) { (void) XRRQueryExtension(0, 0, 0); return 0; }
+EOF
+ _randr=no
+ cc_check $_inc_x11 -lXrandr $_ld_x11 && _randr=yes
+fi
+if test "$_randr" = yes ; then
+ _def_randr='#define HAVE_XRANDR 1'
+ _ld_randr='-lXrandr'
+else
+ _def_randr='#undef HAVE_XRANDR'
+fi
+echores "$_randr"
+
# Check for the presence of special keycodes, like audio control buttons
# that XFree86 might have. Used to be bundled with the xf86vm check, but
# has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
@@ -6762,7 +6786,7 @@
SLIBSUF=.so
# video output
-X_LIB = $_ld_gl $_ld_dga $_ld_xv $_ld_xvmc $_ld_vm $_ld_xinerama $_ld_x11 $_ld_sock
+X_LIB = $_ld_gl $_ld_dga $_ld_xv $_ld_xvmc $_ld_vm $_ld_randr $_ld_xinerama $_ld_x11 $_ld_sock
GGI_LIB = $_ld_ggi
MLIB_LIB = $_ld_mlib
MLIB_INC = $_inc_mlib
@@ -7465,6 +7489,7 @@
$_def_xv
$_def_xvmc
$_def_vm
+$_def_randr
$_def_xf86keysym
$_def_xinerama
$_def_gl
--- MPlayer/libvo/x11_common.c.orig 2005-08-21 23:56:20.000000000 +0200
+++ MPlayer/libvo/x11_common.c 2005-08-22 00:05:17.000000000 +0200
@@ -39,6 +39,10 @@
#include <X11/extensions/xf86vmode.h>
#endif
+#ifdef HAVE_XRANDR
+#include <X11/extensions/Xrandr.h>
+#endif
+
#ifdef HAVE_XF86XK
#include <X11/XF86keysym.h>
#endif
@@ -434,6 +438,20 @@
int clock;
XF86VidModeGetModeLine(mDisplay, mScreen, &clock, &modeline);
+#ifdef HAVE_XRANDR
+ {
+ Rotation current_rotation;
+
+ XRRRotations(mDisplay, mScreen, &current_rotation);
+ if ((current_rotation&RR_Rotate_90) != 0 ||
+ (current_rotation&RR_Rotate_270) != 0) {
+ unsigned short tmp;
+ tmp = modeline.hdisplay;
+ modeline.hdisplay = modeline.vdisplay;
+ modeline.vdisplay = tmp;
+ }
+ }
+#endif
if (!vo_screenwidth)
vo_screenwidth = modeline.hdisplay;
if (!vo_screenheight)

View file

@ -1,8 +1,8 @@
{stdenv, fetchurl}: stdenv.mkDerivation {
name = "MPlayer-codecs-essential-20050412";
name = "MPlayer-codecs-essential-20060611";
builder = ./builder.sh;
src = fetchurl {
url = http://nix.cs.uu.nl/dist/tarballs/essential-20050412.tar.bz2;
md5 = "5fe89bb095bdf9b4f9cda5479dbde906";
url = http://www4.mplayerhq.hu/MPlayer/releases/codecs/essential-20060611.tar.bz2;
md5 = "26ec3f9feed5f89814b2ec5f436e937b";
};
}