* MPlayer 1.0rc2.

svn path=/nixpkgs/trunk/; revision=9535
This commit is contained in:
Eelco Dolstra 2007-10-26 19:47:35 +00:00
parent f5f830802a
commit 441e3e19d6
6 changed files with 21 additions and 293 deletions

View File

@ -1,68 +0,0 @@
diff -rc MPlayer-1.0rc1-orig/stream/realrtsp/asmrp.c MPlayer-1.0rc1/stream/realrtsp/asmrp.c
*** MPlayer-1.0rc1-orig/stream/realrtsp/asmrp.c 2006-10-23 00:32:25.000000000 +0200
--- MPlayer-1.0rc1/stream/realrtsp/asmrp.c 2007-01-14 19:11:06.000000000 +0100
***************
*** 40,45 ****
--- 40,46 ----
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
+ #include "asmrp.h"
/*
#define LOG
***************
*** 645,652 ****
#ifdef LOG
printf ("rule #%d is true\n", rule_num);
#endif
! matches[num_matches] = rule_num;
! num_matches++;
}
rule_num++;
--- 646,655 ----
#ifdef LOG
printf ("rule #%d is true\n", rule_num);
#endif
! if(num_matches < MAX_RULEMATCHES - 1)
! matches[num_matches++] = rule_num;
! else
! printf("Ignoring matched asm rule %d, too many matched rules.\n", rule_num);
}
rule_num++;
diff -rc MPlayer-1.0rc1-orig/stream/realrtsp/asmrp.h MPlayer-1.0rc1/stream/realrtsp/asmrp.h
*** MPlayer-1.0rc1-orig/stream/realrtsp/asmrp.h 2006-10-23 00:32:25.000000000 +0200
--- MPlayer-1.0rc1/stream/realrtsp/asmrp.h 2007-01-14 19:11:06.000000000 +0100
***************
*** 40,45 ****
--- 40,47 ----
#ifndef HAVE_ASMRP_H
#define HAVE_ASMRP_H
+ #define MAX_RULEMATCHES 16
+
int asmrp_match (const char *rules, int bandwidth, int *matches) ;
#endif
diff -rc MPlayer-1.0rc1-orig/stream/realrtsp/real.c MPlayer-1.0rc1/stream/realrtsp/real.c
*** MPlayer-1.0rc1-orig/stream/realrtsp/real.c 2006-10-23 00:32:25.000000000 +0200
--- MPlayer-1.0rc1/stream/realrtsp/real.c 2007-01-14 19:11:06.000000000 +0100
***************
*** 271,277 ****
int j=0;
int n;
char b[64];
! int rulematches[16];
#ifdef LOG
printf("calling asmrp_match with:\n%s\n%u\n", desc->stream[i]->asm_rule_book, bandwidth);
--- 271,277 ----
int j=0;
int n;
char b[64];
! int rulematches[MAX_RULEMATCHES];
#ifdef LOG
printf("calling asmrp_match with:\n%s\n%u\n", desc->stream[i]->asm_rule_book, bandwidth);

View File

@ -1,8 +1,8 @@
{ alsaSupport ? false, xvSupport ? true, theoraSupport ? false, cacaSupport ? false { alsaSupport ? false, xvSupport ? true, theoraSupport ? false, cacaSupport ? false
, xineramaSupport ? false, randrSupport ? false , xineramaSupport ? false, randrSupport ? false, dvdnavSupport ? true
, stdenv, fetchurl, x11, freetype, freefont_ttf, zlib , stdenv, fetchurl, x11, freetype, freefont_ttf, zlib
, alsa ? null, libX11, libXv ? null, libtheora ? null, libcaca ? null , alsa ? null, libX11, libXv ? null, libtheora ? null, libcaca ? null
, libXinerama ? null, libXrandr ? null , libXinerama ? null, libXrandr ? null, libdvdnav ? null
}: }:
assert alsaSupport -> alsa != null; assert alsaSupport -> alsa != null;
@ -11,6 +11,7 @@ assert theoraSupport -> libtheora != null;
assert cacaSupport -> libcaca != null; assert cacaSupport -> libcaca != null;
assert xineramaSupport -> libXinerama != null; assert xineramaSupport -> libXinerama != null;
assert randrSupport -> libXrandr != null; assert randrSupport -> libXrandr != null;
assert dvdnavSupport -> libdvdnav != null;
let let
@ -21,11 +22,11 @@ let
in in
stdenv.mkDerivation { stdenv.mkDerivation {
name = "MPlayer-1.0rc1try2"; name = "MPlayer-1.0rc2";
src = fetchurl { src = fetchurl {
url = http://www1.mplayerhq.hu/MPlayer/releases/MPlayer-1.0rc1.tar.bz2; url = http://www1.mplayerhq.hu/MPlayer/releases/MPlayer-1.0rc2.tar.bz2;
sha1 = "a450c0b0749c343a8496ba7810363c9d46dfa73c"; sha1 = "e9b496f3527c552004ec6d01d6b43f196b43ce2d";
}; };
buildInputs = [ buildInputs = [
@ -36,17 +37,22 @@ stdenv.mkDerivation {
(if cacaSupport then libcaca else null) (if cacaSupport then libcaca else null)
(if xineramaSupport then libXinerama else null) (if xineramaSupport then libXinerama else null)
(if randrSupport then libXrandr else null) (if randrSupport then libXrandr else null)
(if dvdnavSupport then libdvdnav else null)
]; ];
configureFlags = " configureFlags = "
${if cacaSupport then "--enable-caca" else "--disable-caca"} ${if cacaSupport then "--enable-caca" else "--disable-caca"}
--with-win32libdir=${win32codecs} ${if dvdnavSupport then "--enable-dvdnav" else ""}
--with-reallibdir=${win32codecs} --win32codecsdir=${win32codecs}
--realcodecsdir=${win32codecs}
--enable-runtime-cpudetection --enable-runtime-cpudetection
--enable-x11 --with-x11libdir=/no-such-dir --with-extraincdir=${libX11}/include --enable-x11 --with-extraincdir=${libX11}/include
--disable-xanim --disable-xanim
"; ";
NIX_LDFLAGS = "-lX11 -lXext " # !!! hack, necessary to get libX11/Xext in the RPATH
+ (if dvdnavSupport then "-ldvdnav" else "");
# Provide a reasonable standard font. Maybe we should symlink here. # Provide a reasonable standard font. Maybe we should symlink here.
postInstall = "cp ${freefont_ttf}/share/fonts/truetype/FreeSans.ttf $out/share/mplayer/subfont.ttf"; postInstall = "cp ${freefont_ttf}/share/fonts/truetype/FreeSans.ttf $out/share/mplayer/subfont.ttf";
@ -54,14 +60,12 @@ stdenv.mkDerivation {
# These fix MPlayer's aspect ratio when run in a screen rotated with # These fix MPlayer's aspect ratio when run in a screen rotated with
# Xrandr. # Xrandr.
# See: http://itdp.de/~itdp/html/mplayer-dev-eng/2005-08/msg00427.html # See: http://itdp.de/~itdp/html/mplayer-dev-eng/2005-08/msg00427.html
./mplayer-aspect.patch #./mplayer-aspect.patch
./mplayer-pivot.patch #./mplayer-pivot.patch
# Security fix.
./asmrules-fix.patch
]; ];
meta = { meta = {
description = "A movie player that supports many video formats"; description = "A movie player that supports many video formats";
homepage = "GPL";
}; };
} }

View File

@ -1,96 +0,0 @@
diff -rc MPlayer-1.0pre8-orig/libvo/aspect.c MPlayer-1.0pre8/libvo/aspect.c
*** MPlayer-1.0pre8-orig/libvo/aspect.c 2006-06-11 20:35:43.000000000 +0200
--- MPlayer-1.0pre8/libvo/aspect.c 2006-07-10 18:55:11.000000000 +0200
***************
*** 11,16 ****
--- 11,19 ----
#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;
***************
*** 18,24 ****
#include "video_out.h"
! float monitor_aspect=4.0/3.0;
float monitor_pixel_aspect=0;
extern float movie_aspect;
--- 21,27 ----
#include "video_out.h"
! float monitor_aspect=-1.0f;
float monitor_pixel_aspect=0;
extern float movie_aspect;
***************
*** 48,53 ****
--- 51,68 ----
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);
***************
*** 56,61 ****
--- 71,77 ----
aspdat.scrh = scrh;
if (monitor_pixel_aspect)
monitor_aspect = monitor_pixel_aspect * scrw / scrh;
+ init_monitor_aspect(); // now is a good time
}
/* aspect is called with the source resolution and the
diff -rc MPlayer-1.0pre8-orig/libvo/aspect.h MPlayer-1.0pre8/libvo/aspect.h
*** MPlayer-1.0pre8-orig/libvo/aspect.h 2006-06-11 20:35:43.000000000 +0200
--- MPlayer-1.0pre8/libvo/aspect.h 2006-07-10 18:52:04.000000000 +0200
***************
*** 2,7 ****
--- 2,10 ----
#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 -rc MPlayer-1.0pre8-orig/libvo/x11_common.c MPlayer-1.0pre8/libvo/x11_common.c
*** MPlayer-1.0pre8-orig/libvo/x11_common.c 2006-06-11 20:35:43.000000000 +0200
--- MPlayer-1.0pre8/libvo/x11_common.c 2006-07-10 18:52:04.000000000 +0200
***************
*** 463,468 ****
--- 463,474 ----
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 { {stdenv, fetchurl}: stdenv.mkDerivation {
name = "MPlayer-codecs-essential-20061022"; name = "MPlayer-codecs-essential-20071007";
builder = ./builder.sh; builder = ./builder.sh;
src = fetchurl { src = fetchurl {
url = http://www1.mplayerhq.hu/MPlayer/releases/codecs/essential-20061022.tar.bz2; url = http://www2.mplayerhq.hu/MPlayer/releases/codecs/essential-20071007.tar.bz2;
md5 = "abcf4a3abc16cf88c9df7e0a77e9b941"; sha256 = "18vls12n12rjw0mzw4pkp9vpcfmd1c21rzha19d7zil4hn7fs2ic";
}; };
} }

View File

@ -3681,7 +3681,7 @@ rec {
}; };
MPlayer = import ../applications/video/MPlayer { MPlayer = import ../applications/video/MPlayer {
inherit fetchurl stdenv freetype x11 zlib libtheora libcaca freefont_ttf; inherit fetchurl stdenv freetype x11 zlib libtheora libcaca freefont_ttf libdvdnav;
inherit (xlibs) libX11 libXv libXinerama libXrandr; inherit (xlibs) libX11 libXv libXinerama libXrandr;
alsaSupport = true; alsaSupport = true;
alsa = alsaLib; alsa = alsaLib;