summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DOCS/LIRC4
-rw-r--r--DOCS/SOUNDCARDS11
-rw-r--r--Makefile20
-rw-r--r--cfg-mplayer.h118
-rwxr-xr-xconfigure126
-rw-r--r--help_mp.h6
-rw-r--r--libvo/wskeys.h2
-rw-r--r--libvo/x11_common.c94
-rw-r--r--lirc_mp.c6
-rw-r--r--mplayer.c394
10 files changed, 387 insertions, 394 deletions
diff --git a/DOCS/LIRC b/DOCS/LIRC
index 831ede3c66..3fa0c42e33 100644
--- a/DOCS/LIRC
+++ b/DOCS/LIRC
@@ -29,6 +29,10 @@ o MPlayer and LIRC
FRWND - 60 secs back
FWD - skip 10 secs
FFWD - skip 60 secs
+ INCVOL - increase volume one percent
+ DECVOL - decrease volmue one percent
+ MASTER - use master mixer channel
+ PCM - use pcm mixer channel
Don't forget to enable the repeat flag for RWND/FWD in .lircrc. Here's an
excerpt from my .lircrc:
diff --git a/DOCS/SOUNDCARDS b/DOCS/SOUNDCARDS
index 0cbde947b0..5ae42ea32e 100644
--- a/DOCS/SOUNDCARDS
+++ b/DOCS/SOUNDCARDS
@@ -2,12 +2,11 @@
Recommendations for misc. soundcards
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Aureal Vortex 2: (Pontscho)
- In config.h, change #define HAVE_AUDIO_SELECT to
- #undef HAVE_AUDIO_SELECT
- OSS : With MPEG files : defaults are ok
- With AVI files : -delay -0.5
- ALSA : same
+Aureal Vortex 2: In config.h, change #define HAVE_AUDIO_SELECT to
+ #undef HAVE_AUDIO_SELECT or run
+ ./configure script with --disable-select option
+
+ALSA with GUS PnP: see Aureal Vortex2
SB Live!:
OSS : OK
diff --git a/Makefile b/Makefile
index 14f2ae8fde..b30a8db68d 100644
--- a/Makefile
+++ b/Makefile
@@ -22,8 +22,8 @@ PRG_CFG = codec-cfg
prefix = /usr/local
BINDIR = ${prefix}/bin
# BINDIR = /usr/local/bin
-SRCS = codec-cfg.c subreader.c linux/getch2.c linux/timer-lx.c linux/shmem.c xa/xa_gsm.c lirc_mp.c cfgparser.c
-OBJS = codec-cfg.o subreader.o linux/getch2.o linux/timer-lx.o linux/shmem.o xa/xa_gsm.o lirc_mp.o cfgparser.o
+SRCS = codec-cfg.c subreader.c linux/getch2.c linux/timer-lx.c linux/shmem.c xa/xa_gsm.c lirc_mp.c cfgparser.c mixer.c
+OBJS = codec-cfg.o subreader.o linux/getch2.o linux/timer-lx.o linux/shmem.o xa/xa_gsm.o lirc_mp.o cfgparser.o mixer.o
CFLAGS = $(OPTFLAGS) -Iloader -Ilibvo # -Wall
A_LIBS = -Lmp3lib -lMP3 -Llibac3 -lac3
VO_LIBS = -Llibvo -lvo $(X_LIBS)
@@ -32,7 +32,7 @@ VO_LIBS = -Llibvo -lvo $(X_LIBS)
# .PHONY: all clean
-all: version.h $(PRG) $(PRG_CFG)
+all: $(PRG) $(PRG_CFG)
# $(PRG_AVIP)
.c.o:
@@ -65,6 +65,7 @@ encore/libencore.a:
$(MAKE) -C encore
$(PRG): .depend mplayer.o $(OBJS) loader/libloader.a loader/DirectShow/libDS_Filter.a libmpeg2/libmpeg2.a opendivx/libdecore.a $(COMMONLIBS) encore/libencore.a
+ @for a in mp3lib libac3 libmpeg2 opendivx encore libvo loader loader/DirectShow drivers drivers/syncfb ; do $(MAKE) -C $$a; done
$(CC) $(CFLAGS) -o $(PRG) mplayer.o $(OBJS) $(XMM_LIBS) $(LIRC_LIBS) $(A_LIBS) -lm $(TERMCAP_LIB) -Lloader -lloader -Lloader/DirectShow -lDS_Filter -ldl -Llibmpeg2 -lmpeg2 -Lopendivx -ldecore $(VO_LIBS) -Lencore -lencore -lpthread -lstdc++
$(PRG_HQ): .depend mplayerHQ.o $(OBJS) loader/libloader.a libmpeg2/libmpeg2.a opendivx/libdecore.a $(COMMONLIBS) encore/libencore.a
@@ -76,7 +77,7 @@ $(PRG_AVIP): .depend aviparse.o $(OBJS) loader/libloader.a $(COMMONLIBS)
$(PRG_TV): .depend tvision.o $(OBJS) $(COMMONLIBS)
$(CC) $(CFLAGS) -o $(PRG_TV) tvision.o $(OBJS) -lm $(TERMCAP_LIB) $(VO_LIBS)
-$(PRG_CFG): .depend codec-cfg.c codec-cfg.h
+$(PRG_CFG): codec-cfg.c codec-cfg.h
$(CC) $(CFLAGS) -g codec-cfg.c -o $(PRG_CFG) -DTESTING
install: $(PRG)
@@ -98,20 +99,9 @@ depend: .depend
.depend: Makefile config.mak config.h
makedepend -f- -- $(CFLAGS) -- mplayer.c mplayerHQ.c aviparse.c tvision.c $(SRCS) 1>.depend 2>/dev/null
-# rebuild at every config.h/config.mak change:
-version.h: config.h config.mak Makefile
- $(MAKE) distclean
- ./version.sh
-
-# rebuild at every CVS update:
-ifneq ($(wildcard CVS/Entries),)
-version.h: CVS/Entries
-endif
-
#
# include dependency files if they exist
#
ifneq ($(wildcard .depend),)
include .depend
endif
-
diff --git a/cfg-mplayer.h b/cfg-mplayer.h
index d3b376adb4..9b149a37b9 100644
--- a/cfg-mplayer.h
+++ b/cfg-mplayer.h
@@ -6,78 +6,76 @@
extern char *fb_dev_name;
extern char *fb_mode_cfgfile;
extern char *fb_mode_name;
-extern char *monitor_hfreq_str;
-extern char *monitor_vfreq_str;
-extern char *monitor_dotclock_str;
+extern int fb_mode_depth;
#endif
struct config conf[]={
- /* name, pointer, type, flags, min, max */
- {"include", cfg_include, CONF_TYPE_FUNC_PARAM, 0, 0, 0}, /* this must be the first!!! */
- {"o", "Option -o has been renamed to -vo (video-out), use -vo !\n",
+ /* name, pointer, type, flags, min, max */
+ {"include", cfg_include, CONF_TYPE_FUNC_PARAM, 0, 0, 0}, /* this must be the first!!! */
+ {"o", "Option -o has been renamed to -vo (video-out), use -vo !\n",
CONF_TYPE_PRINT, CONF_NOCFG, 0, 0},
- {"vo", &video_driver, CONF_TYPE_STRING, 0, 0, 0},
- {"dsp", &dsp, CONF_TYPE_STRING, 0, 0, 0},
+ {"vo", &video_driver, CONF_TYPE_STRING, 0, 0, 0},
+ {"dsp", &dsp, CONF_TYPE_STRING, 0, 0, 0},
+ {"mixer", &mixer_device, CONF_TYPE_STRING, 0, 0, 0},
+ {"master", &mixer_usemaster, CONF_TYPE_FLAG, 0, 0, 1},
#ifdef HAVE_FBDEV
- {"fb", &fb_dev_name, CONF_TYPE_STRING, 0, 0, 0},
- {"fbmode", &fb_mode_name, CONF_TYPE_STRING, 0, 0, 0},
- {"fbmodeconfig", &fb_mode_cfgfile, CONF_TYPE_STRING, 0, 0, 0},
- {"monitor_hfreq", &monitor_hfreq_str, CONF_TYPE_STRING, 0, 0, 0},
- {"monitor_vfreq", &monitor_vfreq_str, CONF_TYPE_STRING, 0, 0, 0},
- {"monitor_dotclock", &monitor_dotclock_str, CONF_TYPE_STRING, 0, 0, 0},
+ {"fb", &fb_dev_name, CONF_TYPE_STRING, 0, 0, 0},
+ {"fbmode", &fb_mode_name, CONF_TYPE_STRING, 0, 0, 0},
+ {"fbmodeconfig", &fb_mode_cfgfile, CONF_TYPE_STRING, 0, 0, 0},
+ {"fbdepth", &fb_mode_depth, CONF_TYPE_INT, CONF_RANGE, 15, 32},
#endif
- {"encode", &encode_name, CONF_TYPE_STRING, 0, 0, 0},
- {"sub", &sub_name, CONF_TYPE_STRING, 0, 0, 0},
- {"subdelay", &sub_delay, CONF_TYPE_FLOAT, 0, 0.0, 10.0},
- {"subfps", &sub_fps, CONF_TYPE_FLOAT, 0, 0.0, 10.0},
- {"font", &font_name, CONF_TYPE_STRING, 0, 0, 0},
- {"ffactor", &font_factor, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 10.0},
- {"bg", &play_in_bg, CONF_TYPE_FLAG, 0, 0, 1},
- {"nobg", &play_in_bg, CONF_TYPE_FLAG, 0, 1, 0},
- {"sb", &seek_to_byte, CONF_TYPE_INT, CONF_MIN, 0, 0},
-// {"ss", &seek_to_sec, CONF_TYPE_INT, CONF_MIN, 0, 0},
- {"sound", &has_audio, CONF_TYPE_FLAG, 0, 0, 1},
- {"nosound", &has_audio, CONF_TYPE_FLAG, 0, 1, 0},
- {"abs", &audio_buffer_size, CONF_TYPE_INT, CONF_MIN, 0, 0},
- {"delay", &audio_delay, CONF_TYPE_FLOAT, CONF_RANGE, -10.0, 10.0},
- {"bps", &pts_from_bps, CONF_TYPE_FLAG, 0, 0, 1},
- {"nobps", &pts_from_bps, CONF_TYPE_FLAG, 0, 1, 0},
- {"alsa", &alsa, CONF_TYPE_FLAG, 0, 0, 1},
- {"noalsa", &alsa, CONF_TYPE_FLAG, 0, 1, 0},
- {"ni", &force_ni, CONF_TYPE_FLAG, 0, 0, 1},
- {"noni", &force_ni, CONF_TYPE_FLAG, 0, 1, 0},
- {"aid", &audio_id, CONF_TYPE_INT, CONF_RANGE, 0, 256},
- {"vid", &video_id, CONF_TYPE_INT, CONF_RANGE, 0, 256},
-// {"auds", &avi_header.audio_codec, CONF_TYPE_STRING, 0, 0, 0},
-// {"vids", &avi_header.video_codec, CONF_TYPE_STRING, 0, 0, 0},
- {"mc", &default_max_pts_correction, CONF_TYPE_FLOAT, CONF_RANGE, 0, 10},
- {"fps", &force_fps, CONF_TYPE_FLOAT, CONF_MIN, 0, 0},
- {"afm", &audio_format, CONF_TYPE_INT, CONF_RANGE, 1, 6},
- {"vcd", &vcd_track, CONF_TYPE_INT, CONF_RANGE, 1, 99},
- {"divxq", "Option -divxq has been renamed to -pp (postprocessing), use -pp !\n",
+ {"encode", &encode_name, CONF_TYPE_STRING, 0, 0, 0},
+ {"sub", &sub_name, CONF_TYPE_STRING, 0, 0, 0},
+ {"subdelay", &sub_delay, CONF_TYPE_FLOAT, 0, 0.0, 10.0},
+ {"subfps", &sub_fps, CONF_TYPE_FLOAT, 0, 0.0, 10.0},
+ {"font", &font_name, CONF_TYPE_STRING, 0, 0, 0},
+ {"ffactor", &font_factor, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 10.0},
+ {"bg", &play_in_bg, CONF_TYPE_FLAG, 0, 0, 1},
+ {"nobg", &play_in_bg, CONF_TYPE_FLAG, 0, 1, 0},
+ {"sb", &seek_to_byte, CONF_TYPE_INT, CONF_MIN, 0, 0},
+// {"ss", &seek_to_sec, CONF_TYPE_INT, CONF_MIN, 0, 0},
+ {"sound", &has_audio, CONF_TYPE_FLAG, 0, 0, 1},
+ {"nosound", &has_audio, CONF_TYPE_FLAG, 0, 1, 0},
+ {"abs", &audio_buffer_size, CONF_TYPE_INT, CONF_MIN, 0, 0},
+ {"delay", &audio_delay, CONF_TYPE_FLOAT, CONF_RANGE, -10.0, 10.0},
+ {"bps", &pts_from_bps, CONF_TYPE_FLAG, 0, 0, 1},
+ {"nobps", &pts_from_bps, CONF_TYPE_FLAG, 0, 1, 0},
+ {"alsa", &alsa, CONF_TYPE_FLAG, 0, 0, 1},
+ {"noalsa", &alsa, CONF_TYPE_FLAG, 0, 1, 0},
+ {"ni", &force_ni, CONF_TYPE_FLAG, 0, 0, 1},
+ {"noni", &force_ni, CONF_TYPE_FLAG, 0, 1, 0},
+ {"aid", &audio_id, CONF_TYPE_INT, CONF_RANGE, 0, 256},
+ {"vid", &video_id, CONF_TYPE_INT, CONF_RANGE, 0, 256},
+// {"auds", &avi_header.audio_codec, CONF_TYPE_STRING, 0, 0, 0},
+// {"vids", &avi_header.video_codec, CONF_TYPE_STRING, 0, 0, 0},
+ {"mc", &default_max_pts_correction, CONF_TYPE_FLOAT, CONF_RANGE, 0, 10},
+ {"fps", &force_fps, CONF_TYPE_FLOAT, CONF_MIN, 0, 0},
+ {"afm", &audio_format, CONF_TYPE_INT, CONF_RANGE, 1, 6},
+ {"vcd", &vcd_track, CONF_TYPE_INT, CONF_RANGE, 1, 99},
+ {"divxq", "Option -divxq has been renamed to -pp (postprocessing), use -pp !\n",
CONF_TYPE_PRINT, 0, 0, 0},
- {"pp", &divx_quality, CONF_TYPE_INT, CONF_RANGE, 0, 63},
- {"br", &encode_bitrate, CONF_TYPE_INT, CONF_RANGE, 10000, 10000000},
+ {"pp", &divx_quality, CONF_TYPE_INT, CONF_RANGE, 0, 63},
+ {"br", &encode_bitrate, CONF_TYPE_INT, CONF_RANGE, 10000, 10000000},
- {"x", &screen_size_x, CONF_TYPE_INT, CONF_RANGE, 1, 4096},
- {"y", &screen_size_y, CONF_TYPE_INT, CONF_RANGE, 1, 4096},
- {"xy", &screen_size_xy, CONF_TYPE_INT, CONF_RANGE, 1, 4096},
+ {"x", &screen_size_x, CONF_TYPE_INT, CONF_RANGE, 1, 4096},
+ {"y", &screen_size_y, CONF_TYPE_INT, CONF_RANGE, 1, 4096},
+ {"xy", &screen_size_xy, CONF_TYPE_INT, CONF_RANGE, 1, 4096},
{"vm", &vidmode, CONF_TYPE_FLAG, 0, 0, 1},
{"novm", &vidmode, CONF_TYPE_FLAG, 0, 1, 0},
- {"fs", &fullscreen, CONF_TYPE_FLAG, 0, 0, 1},
- {"nofs", &fullscreen, CONF_TYPE_FLAG, 0, 1, 0},
+ {"fs", &fullscreen, CONF_TYPE_FLAG, 0, 0, 1},
+ {"nofs", &fullscreen, CONF_TYPE_FLAG, 0, 1, 0},
{"zoom", &softzoom, CONF_TYPE_FLAG, 0, 0, 1},
{"nozoom", &softzoom, CONF_TYPE_FLAG, 0, 1, 0},
-
+
{"bpp", &vo_dbpp, CONF_TYPE_INT, CONF_RANGE, 0, 32},
-
- {"idx", &no_index, CONF_TYPE_FLAG, 0, 1, 0},
- {"noidx", &no_index, CONF_TYPE_FLAG, 0, 0, 1},
- {"verbose", &verbose, CONF_TYPE_INT, CONF_RANGE, 0, 100},
- {"v", cfg_inc_verbose, CONF_TYPE_FUNC, 0, 0, 0},
- {"-help", help_text, CONF_TYPE_PRINT, CONF_NOCFG, 0, 0},
- {"help", help_text, CONF_TYPE_PRINT, CONF_NOCFG, 0, 0},
- {"h", help_text, CONF_TYPE_PRINT, CONF_NOCFG, 0, 0},
- {NULL, NULL, 0, 0, 0, 0}
+
+ {"idx", &no_index, CONF_TYPE_FLAG, 0, 1, 0},
+ {"noidx", &no_index, CONF_TYPE_FLAG, 0, 0, 1},
+ {"verbose", &verbose, CONF_TYPE_INT, CONF_RANGE, 0, 100},
+ {"v", cfg_inc_verbose, CONF_TYPE_FUNC, 0, 0, 0},
+ {"-help", help_text, CONF_TYPE_PRINT, CONF_NOCFG, 0, 0},
+ {"help", help_text, CONF_TYPE_PRINT, CONF_NOCFG, 0, 0},
+ {"h", help_text, CONF_TYPE_PRINT, CONF_NOCFG, 0, 0},
+ {NULL, NULL, 0, 0, 0, 0}
};
diff --git a/configure b/configure
index d49fb504a9..90b1551a6d 100755
--- a/configure
+++ b/configure
@@ -6,6 +6,10 @@
#
# Changes in reversed order:
#
+# 2001/04/15 by Pontscho
+# - added --disable-select option
+# - added X11DIR variable in config.mak and fix syncfb Makefile -L/usr/X11/lib bug
+#
# 2001/03/24 by Mike Graffam:
# - added autodetect code for XF86VidMode, along with explicit --enable-vm
#
@@ -89,7 +93,10 @@ params:
--enable-termcap use termcap database for key codes
--enable-xmmp use XMMP audio drivers
- --enable-lirc enable LIRC (remote control) support
+ --enable-lirc enable LIRC ( remote control ) support
+
+ --disable-select disable audio select() support ( for example required this
+ option ALSA or Vortex2 driver )
--with-x11libdir=DIR X library files are in DIR
--with-win32libdir=DIR windows codec files
@@ -130,16 +137,6 @@ MCONF='config.mak'
# --- Check for C compiler:
_cc=gcc
-_x11=auto
-
-_x11libdir=
-if [ -e /usr/X11R6 ]; then
- _x11libdir=-L/usr/X11R6/lib
-else
- if [ -e /usr/X11 ]; then
- _x11libdir=-L/usr/X11/lib
- fi
-fi
for ac_option
do
@@ -147,15 +144,6 @@ do
--cc=*)
_cc=`echo $ac_option | cut -d '=' -f 2`
;;
- --with-x11libdir=*)
- _x11libdir=-L`echo $ac_option | cut -d '=' -f 2`
- ;;
- --enable-x11)
- _x11=yes
- ;;
- --disable-x11)
- _x11=no
- ;;
esac
done
@@ -182,6 +170,7 @@ _gl=no
_sdl=no
_xv=no
_vm=no
+_x11=no
_3dfx=no
_syncfb=no
_mlib=no
@@ -190,7 +179,7 @@ _xmga=no
_dga=no
_dga2=no
_svga=no
-_fbdev=yes
+_fbdev=no
_lirc=no
_xdpms=no
@@ -199,8 +188,11 @@ _y=1
_gllib=
_sdllib=
-_xvlib=
_x11lib=
+_xvlib=
+_xlibdir=
+
+_select='#define HAVE_AUDIO_SELECT'
for i in `echo $pparam`; do
@@ -237,6 +229,13 @@ for i in `echo $pparam`; do
done
+if [ -e /usr/X11R6 ]; then
+ _x11libdir=-L/usr/X11R6/lib
+else
+ if [ -e /usr/X11 ]; then
+ _x11libdir=-L/usr/X11/lib
+ fi
+fi
_win32libdirnotify=no
if [ -e /usr/lib/win32 ]; then
@@ -376,15 +375,21 @@ fi
#echo "DONE (${proc})."
-$_cc $TMPC -o $TMPO -lvgagl -lvga &> /dev/null && _svga=yes
+# check GL & X11 & Xext & Xv & SDL & termcap libs
-$_cc $TMPC -o $TMPO -lpthread &> /dev/null || \
+$_cc $TMPC -o $TMPO $_x11libdir/ -lGL &> /dev/null && _gl=yes
+$_cc $TMPC -o $TMPO $_x11libdir/ -lXxf86vm &> /dev/null && _vm=yes
+$_cc $TMPC -o $TMPO -lvgagl -lvga &> /dev/null && _svga=yes
+$_cc $TMPC -o $TMPO $_x11libdir -lX11 -lXext &> /dev/null && _x11=yes
+$_cc $TMPC -o $TMPO $_x11libdir -lX11 -lXext -lXdpms &> /dev/null && _xdpms=yes
+$_cc $TMPC -o $TMPO $_x11libdir -lXv &> /dev/null && _xv=yes
+$_cc $TMPC -o $TMPO $_x11libdir -L/usr/local/lib/ -lpthread &> /dev/null || \
{ echo "Lib pthread not found."; rm -f $TMPC $TMPO ; exit 1; }
# SDL disabled by default (0.11pre22-) because of the compilation problems
# this is very buggy & experimental code, use it only if you really need it!!
_have_sdl=no
-$_cc $TMPC -o $TMPO -L/usr/local/lib/ -lSDL -lpthread &> /dev/null && _have_sdl=yes
+$_cc $TMPC -o $TMPO $_x11libdir -L/usr/local/lib/ -lSDL -lpthread &> /dev/null && _have_sdl=yes
_termcap=no
$_cc $TMPC -o $TMPO -ltermcap &> /dev/null && _termcap=yes
@@ -392,28 +397,7 @@ $_cc $TMPC -o $TMPO -ltermcap &> /dev/null && _termcap=yes
_binutils=no
as libac3/downmix/downmix_i386.S -o $TMPO &> /dev/null && _binutils=yes
-# ----------- Check X11 and related libs (GL, Xxf86vm, Xv, DGA) --------------
-
-if [ $_x11 = auto ]; then
- _x11=no
- $_cc $TMPC -o $TMPO $_x11libdir -lX11 -lXext &> /dev/null && _x11=yes
-fi
-
-if [ $_x11 = yes ]; then
-
-$_cc $TMPC -o $TMPO $_x11libdir -lX11 -lXext -lXdpms &> /dev/null && _xdpms=yes
-$_cc $TMPC -o $TMPO $_x11libdir -lXv &> /dev/null && _xv=yes
-
-$_cc $TMPC -o $TMPO $_x11libdir -lGL &> /dev/null && _gl=yes
-
-cat > $TMPC << EOF
-#include <GL/gl.h>
-int main( void ) { return 0; }
-EOF
-$_cc $TMPC -o $TMPO $_x11libdir -lGL &> /dev/null || \
- { _gl=no; echo "GL includes not found!";}
-
-$_cc $TMPC -o $TMPO $_x11libdir -lXxf86vm &> /dev/null && _vm=yes
+# LGB: Check DGA
cat > $TMPC << EOF
#include <stdio.h>
@@ -422,6 +406,7 @@ cat > $TMPC << EOF
int main (void) { return 0;}
EOF
+_dga=no
$_cc $TMPC -o $TMPO -L/usr/X11R6/lib -L/usr/X11/lib -lX11 -lXext -lXxf86dga -lXxf86vm &> /dev/null && _dga=yes
# Note: the -lXxf86vm library is the VideoMode extension and though it's
# not needed for DGA, AFAIK every distribution packages together with DGA
@@ -429,6 +414,8 @@ $_cc $TMPC -o $TMPO -L/usr/X11R6/lib -L/usr/X11/lib -lX11 -lXext -lXxf86dga -lXx
# for further mplayer versions to set resolution by mplayer itself.
# If you run into problems, remove '-lXxf86vm'.
+# ---
+
# Check if DGA is 2.0 or greater
cat > $TMPC << EOF
#include <stdio.h>
@@ -440,10 +427,24 @@ EOF
_dga2=no
$_cc $TMPC -o $TMPO -L/usr/X11R6/lib -L/usr/X11/lib -lX11 -lXext -lXxf86dga -lXxf86vm &> /dev/null && _dga2=yes
-fi
+
+cat > $TMPC << EOF
+#include <GL/gl.h>
+int main( void ) { return 0; }
+EOF
+
+$_cc $TMPC -o $TMPO $_x11libdir/ -lGL &> /dev/null || \
+ { _gl=no; echo "GL includes not found!";}
rm -f $TMPC $TMPO
+
+if [ $_x11 = 'yes' ]; then
+ if [ $_mga = 'yes' ]; then
+ _xmga=yes
+ fi
+fi
+
# ---
# check for the parameters.
@@ -493,6 +494,9 @@ do
--enable-vm)
_vm=yes
;;
+ --enable-x11)
+ _x11=yes
+ ;;
--enable-3dfx)
_3dfx=yes
;;
@@ -514,6 +518,9 @@ do
--enable-lirc)
_lirc=yes
;;
+ --enable-select)
+ _select='#define HAVE_AUDIO_SELECT'
+ ;;
--disable-sse)
_sse=no
;;
@@ -545,6 +552,9 @@ do
--disable-vm)
_vm=no
;;
+ --disable-x11)
+ _x11=no
+ ;;
--disable-mlib)
_mlib=no
;;
@@ -563,6 +573,12 @@ do
--disable-termcap)
_termcap=no
;;
+ --disable-select)
+ _select='#undef HAVE_AUDIO_SELECT'
+ ;;
+ --with-x11libdir=*)
+ _x11libdir=-L`echo $ac_option | cut -d '=' -f 2`
+ ;;
--with-win32libdir=*)
_win32libdir=`echo $ac_option | cut -d '=' -f 2`
_win32libdirnotify=no
@@ -573,19 +589,11 @@ do
--size-y=*)
_y=`echo $ac_option | cut -d '=' -f 2`
;;
- --with-x11libdir=*)
- ;;
--cc=*)
;;
esac
done
-if [ $_x11 = 'yes' ]; then
- if [ $_mga = 'yes' ]; then
- _xmga=yes
- fi
-fi
-
# to screen.
echo "Using C compiler: $_cc"
echo "Checking for cpu vendor ... $pvendor ( $pfamily:$pmodel:$pstepping )"
@@ -675,10 +683,12 @@ cat > $MCONF << EOF
AR=ar
CC=$_cc
+X11DIR=$_x11libdir
# OPTFLAGS=-O4 -march=$proc -mcpu=$proc -pipe -fomit-frame-pointer -ffast-math
OPTFLAGS=-O4 -march=$proc -mcpu=$proc -pipe -ffast-math
# LIBS=-L/usr/lib -L/usr/local/lib $_x11libdir $_gllib $_sdllib $_dgalib $_x11lib $_xvlib
-X_LIBS=$_x11libdir $_gllib $_sdllib $_dgalib $_x11lib $_xvlib $_vmlib $_svgalib
+# X_LIBS=$_x11libdir $_gllib $_sdllib $_dgalib $_x11lib $_xvlib $_vmlib $_svgalib
+X_LIBS=\$(X11DIR) $_gllib $_sdllib $_dgalib $_x11lib $_xvlib $_vmlib $_svgalib
TERMCAP_LIB=$_libtermcap
XMM_LIBS = $_xmmplibs
LIRC_LIBS = $_lirclibs
@@ -837,7 +847,7 @@ cat > $CCONF << EOF
/* Undefine this if your soundcard driver has no working select().
If you have kernel Oops, player hangups, or just no audio, you should
try to recompile MPlayer with this option disabled! */
-#define HAVE_AUDIO_SELECT
+$_select
/* You have a choice for MP3 decoding: mp3lib(mpg123) or Win32(l3codeca.acm)
#define this if you prefer mpg123 (with 3Dnow! support) than l3codeca.acm
diff --git a/help_mp.h b/help_mp.h
index a1cd318f88..aa867b7a63 100644
--- a/help_mp.h
+++ b/help_mp.h
@@ -1,10 +1,10 @@
static char* banner_text=
"\n\n"
-"MPlayer " VERSION " (C) 2000-2001 Arpad Gereoffy <arpi@thot.banki.hu>\n"
+"MPlayer " VERSION " (C) 2000-2001 Arpad Gereoffy <arpi@esp-team.scene.hu>\n"
"\n";
static char* help_text=
-"\nUsage: mplayer [options] [path/]name\n"
+"Usage: mplayer [options] [path/]name\n"
"\n"
" Options:\n"
" -vo <driver> select output driver (see '-vo help' for driver list)\n"
@@ -40,4 +40,6 @@ static char* help_text=
" q or ESC stop playing and quit program\n"
" + or - adjust audio delay by +/- 0.1 second\n"
" o toggle OSD: none / seek / seek+timer\n"
+" * or / increase or decrease volume\n"
+" m or c use mixer master or pcm channel\n"
"\n";
diff --git a/libvo/wskeys.h b/libvo/wskeys.h
index e624abc34f..e3643ca09f 100644
--- a/libvo/wskeys.h
+++ b/libvo/wskeys.h
@@ -60,6 +60,8 @@
#define wsSpace ' '
#define wsMinus '-'
#define wsPlus '+'
+#define wsMul '*'
+#define wsDiv '/'
#define wsUp 0x52 + 256
#define wsDown 0x54 + 256
diff --git a/libvo/x11_common.c b/libvo/x11_common.c
index 0379797f81..9c72b16732 100644
--- a/libvo/x11_common.c
+++ b/libvo/x11_common.c
@@ -1,41 +1,37 @@
-
#include <stdio.h>
#include <stdlib.h>
-
-#include "config.h"
-
-#ifdef X11_FULLSCREEN
-
#include <string.h>
+
#include <unistd.h>
#include <sys/mman.h>
+#include "config.h"
#include "video_out.h"
+#ifdef X11_FULLSCREEN
+
#include <X11/Xmd.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
-#include <X11/extensions/dpms.h>
-
static int dpms_disabled=0;
static int timeout_save=0;
void vo_hidecursor ( Display *disp , Window win )
{
- Cursor no_ptr;
- Pixmap bm_no;
- XColor black,dummy;
- Colormap colormap;
- static unsigned char bm_no_data[] = { 0,0,0,0, 0,0,0,0 };
-
- colormap = DefaultColormap(disp,DefaultScreen(disp));
- XAllocNamedColor(disp,colormap,"black",&black,&dummy);
- bm_no = XCreateBitmapFromData(disp, win, bm_no_data, 8,8);
- no_ptr=XCreatePixmapCursor(disp, bm_no, bm_no,&black, &black,0, 0);
- XDefineCursor(disp,win,no_ptr);
+ Cursor no_ptr;
+ Pixmap bm_no;
+ XColor black,dummy;
+ Colormap colormap;
+ static unsigned char bm_no_data[] = { 0,0,0,0, 0,0,0,0 };
+
+ colormap = DefaultColormap(disp,DefaultScreen(disp));
+ XAllocNamedColor(disp,colormap,"black",&black,&dummy);
+ bm_no = XCreateBitmapFromData(disp, win, bm_no_data, 8,8);
+ no_ptr=XCreatePixmapCursor(disp, bm_no, bm_no,&black, &black,0, 0);
+ XDefineCursor(disp,win,no_ptr);
}
@@ -100,6 +96,10 @@ void vo_x11_putkey(int key){
case wsGrayMinus: mplayer_put_key('-'); break;
case wsPlus:
case wsGrayPlus: mplayer_put_key('+'); break;
+ case wsGrayMul:
+ case wsMul: mplayer_put_key('*'); break;
+ case wsGrayDiv:
+ case wsDiv: mplayer_put_key('/'); break;
default: if((key>='a' && key<='z')||(key>='A' && key<='Z')) mplayer_put_key(key);
}
@@ -153,17 +153,17 @@ int vo_x11_check_events(Display *mydisplay){
switch( Event.type )
{
case Expose:
- ret|=VO_EVENT_EXPOSE;
+ ret|=VO_EVENT_EXPOSE;
break;
case ConfigureNotify:
vo_dwidth=Event.xconfigure.width;
- vo_dheight=Event.xconfigure.height;
- ret|=VO_EVENT_RESIZE;
+ vo_dheight=Event.xconfigure.height;
+ ret|=VO_EVENT_RESIZE;
break;
case KeyPress:
XLookupString( &Event.xkey,buf,sizeof(buf),&keySym,&stat );
vo_x11_putkey( ( (keySym&0xff00) != 0?( (keySym&0x00ff) + 256 ):( keySym ) ) );
- ret|=VO_EVENT_KEYPRESS;
+ ret|=VO_EVENT_KEYPRESS;
break;
}
}
@@ -171,25 +171,27 @@ int vo_x11_check_events(Display *mydisplay){
return ret;
}
+#endif
+
void saver_on(Display *mDisplay) {
int nothing;
if (dpms_disabled)
{
- if (DPMSQueryExtension(mDisplay, &nothing, &nothing))
- {
- printf ("Enabling DPMS\n");
- DPMSEnable(mDisplay); // restoring power saving settings
- DPMSQueryExtension(mDisplay, &nothing, &nothing);
- }
+ if (DPMSQueryExtension(mDisplay, &nothing, &nothing))
+ {
+ printf ("Enabling DPMS\n");
+ DPMSEnable(mDisplay); // restoring power saving settings
+ DPMSQueryExtension(mDisplay, &nothing, &nothing);
+ }
}
-
+
if (timeout_save)
{
- int dummy, interval, prefer_blank, allow_exp;
- XGetScreenSaver(mDisplay, &dummy, &interval, &prefer_blank, &allow_exp);
- XSetScreenSaver(mDisplay, timeout_save, interval, prefer_blank, allow_exp);
- XGetScreenSaver(mDisplay, &timeout_save, &interval, &prefer_blank, &allow_exp);
+ int dummy, interval, prefer_blank, allow_exp;
+ XGetScreenSaver(mDisplay, &dummy, &interval, &prefer_blank, &allow_exp);
+ XSetScreenSaver(mDisplay, timeout_save, interval, prefer_blank, allow_exp);
+ XGetScreenSaver(mDisplay, &timeout_save, &interval, &prefer_blank, &allow_exp);
}
}
@@ -200,20 +202,18 @@ void saver_off(Display *mDisplay) {
if (DPMSQueryExtension(mDisplay, &nothing, &nothing))
{
- BOOL onoff;
- CARD16 state;
- DPMSInfo(mDisplay, &state, &onoff);
- if (onoff)
- {
- printf ("Disabling DPMS\n");
- dpms_disabled=1;
- DPMSDisable(mDisplay); // monitor powersave off
- }
+ BOOL onoff;
+ CARD16 state;
+ DPMSInfo(mDisplay, &state, &onoff);
+ if (onoff)
+ {
+ printf ("Disabling DPMS\n");
+ dpms_disabled=1;
+ DPMSDisable(mDisplay); // monitor powersave off
+ }
}
XGetScreenSaver(mDisplay, &timeout_save, &interval, &prefer_blank, &allow_exp);
if (timeout_save)
- XSetScreenSaver(mDisplay, 0, interval, prefer_blank, allow_exp);
- // turning off screensaver
+ XSetScreenSaver(mDisplay, 0, interval, prefer_blank, allow_exp);
+ // turning off screensaver
}
-
-#endif
diff --git a/lirc_mp.c b/lirc_mp.c
index 7ab91c06cd..42ab098826 100644
--- a/lirc_mp.c
+++ b/lirc_mp.c
@@ -95,7 +95,11 @@ int lirc_mp_getinput(){
{"FFWD" , KEY_UP},
{"RWND" , KEY_LEFT},
{"FRWND" , KEY_DOWN},
- {"PAUSE", 'p'}
+ {"PAUSE", 'p'},
+ {"INCVOL", '*'},
+ {"DECVOL", '/'},
+ {"MASTER", 'm'},
+ {"PCM", 'c'}
};
char *code;
diff --git a/mplayer.c b/mplayer.c
index 3d74849faa..c3286b99cf 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -88,7 +88,7 @@ int verbose=0;
#define ABS(x) (((x)>=0)?(x):(-(x)))
//**************************************************************************//
-// .SUB
+// .SUB
//**************************************************************************//
static current_sub=0;
@@ -127,47 +127,39 @@ static int cfg_inc_verbose(struct config *conf){
}
static int cfg_include(struct config *conf, char *filename){
- return parse_config_file(conf, filename);
+ return parse_config_file(conf, filename);
}
char *get_path(char *filename){
- char *homedir;
- char *buff;
- static char *config_dir = "/.mplayer";
- int len;
-
- if ((homedir = getenv("HOME")) == NULL)
- return NULL;
- len = strlen(homedir) + strlen(config_dir) + 1;
- if (filename == NULL) {
- if ((buff = (char *) malloc(len)) == NULL)
- return NULL;
- sprintf(buff, "%s%s", homedir, config_dir);
- } else {
- len += strlen(filename) + 1;
- if ((buff = (char *) malloc(len)) == NULL)
- return NULL;
- sprintf(buff, "%s%s/%s", homedir, config_dir, filename);
- }
- return buff;
+ char *homedir;
+ char *buff;
+ static char *config_dir = "/.mplayer";
+ int len;
+
+ if ((homedir = getenv("HOME")) == NULL)
+ return NULL;
+ len = strlen(homedir) + strlen(config_dir) + 1;
+ if (filename == NULL) {
+ if ((buff = (char *) malloc(len)) == NULL)
+ return NULL;
+ sprintf(buff, "%s%s", homedir, config_dir);
+ } else {
+ len += strlen(filename) + 1;
+ if ((buff = (char *) malloc(len)) == NULL)
+ return NULL;
+ sprintf(buff, "%s%s/%s", homedir, config_dir, filename);
+ }
+ return buff;
}
static int max_framesize=0;
-//static int dbg_es_sent=0;
-//static int dbg_es_rcvd=0;
+static int dbg_es_sent=0;
+static int dbg_es_rcvd=0;
//static int show_packets=0;
//**************************************************************************//
-//**************************************************************************//
-// Input media streaming & demultiplexer:
-//**************************************************************************//
-
-#include "stream.c"
-#include "demuxer.c"
-
-#include "stheader.h"
typedef struct {
// file:
@@ -181,9 +173,6 @@ typedef struct {
int idx_pos_a;
int idx_pos_v;
int idx_offset; // ennyit kell hozzaadni az index offset ertekekhez
- // streams:
- sh_audio_t* a_streams[256];
- sh_video_t* v_streams[256];
// video:
unsigned int bitrate;
} avi_header_t;
@@ -192,28 +181,20 @@ avi_header_t avi_header;
#include "aviprint.c"
-sh_audio_t* new_sh_audio(int id){
- if(avi_header.a_streams[id]){
- printf("Warning! Audio stream header %d redefined!\n",id);
- } else {
- if(verbose) printf("Found audio stream: %d\n",id);
- avi_header.a_streams[id]=malloc(sizeof(sh_audio_t));
- memset(avi_header.a_streams[id],0,sizeof(sh_audio_t));
- }
- return avi_header.a_streams[id];
-}
+extern picture_t *picture;
-sh_video_t* new_sh_video(int id){
- if(avi_header.v_streams[id]){
- printf("Warning! video stream header %d redefined!\n",id);
- } else {
- if(verbose) printf("Found video stream: %d\n",id);
- avi_header.v_streams[id]=malloc(sizeof(sh_video_t));
- memset(avi_header.v_streams[id],0,sizeof(sh_video_t));
- }
- return avi_header.v_streams[id];
-}
+char* encode_name=NULL;
+char* encode_index_name=NULL;
+int encode_bitrate=0;
+
+//**************************************************************************//
+// Input media streaming & demultiplexer:
+//**************************************************************************//
+#include "stream.c"
+#include "demuxer.c"
+
+#include "stheader.h"
#include "demux_avi.c"
#include "demux_mpg.c"
@@ -222,18 +203,14 @@ demuxer_t *demuxer=NULL;
demux_stream_t *d_audio=NULL;
demux_stream_t *d_video=NULL;
-sh_audio_t *sh_audio=NULL;//&sh_audio_i;
-sh_video_t *sh_video=NULL;//&sh_video_i;
-
-char* encode_name=NULL;
-char* encode_index_name=NULL;
-int encode_bitrate=0;
+sh_audio_t sh_audio_i; // FIXME later!
+sh_video_t sh_video_i;
+sh_audio_t *sh_audio=&sh_audio_i;
+sh_video_t *sh_video=&sh_video_i;
// MPEG video stream parser:
#include "parse_es.c"
-extern picture_t *picture;
-
static const int frameratecode2framerate[16] = {
0, 24000*10000/1001, 24*10000,25*10000, 30000*10000/1001, 30*10000,50*10000,60000*10000/1001,
60*10000, 0,0,0,0,0,0,0
@@ -274,15 +251,15 @@ int opendivx_stride[3];
// callback, the opendivx decoder calls this for each frame:
void convert_linux(unsigned char *puc_y, int stride_y,
- unsigned char *puc_u, unsigned char *puc_v, int stride_uv,
- unsigned char *bmp, int width_y, int height_y){
+ unsigned char *puc_u, unsigned char *puc_v, int stride_uv,
+ unsigned char *bmp, int width_y, int height_y){
// printf("convert_yuv called %dx%d stride: %d,%d\n",width_y,height_y,stride_y,stride_uv);
opendivx_src[0]=puc_y;
opendivx_src[1]=puc_u;
opendivx_src[2]=puc_v;
-
+
opendivx_stride[0]=stride_y;
opendivx_stride[1]=stride_uv;
opendivx_stride[2]=stride_uv;
@@ -372,7 +349,6 @@ void exit_sighandler(int x){
}
int divx_quality=0;
-extern int vo_dbpp;
int main(int argc,char* argv[], char *envp[]){
char* filename=NULL; //"MI2-Trailer.avi";
@@ -383,8 +359,8 @@ int f; // filedes
int stream_type;
stream_t* stream=NULL;
int file_format=DEMUXER_TYPE_UNKNOWN;
-int has_audio=1;
-//int has_video=1;
+int has_audio=1; // audio 0=no 1=mpeg 2=pcm 3=ac3 4=ACM 5=alaw 6=msgsm 7=DShow
+int has_video=1; // video 0=no 1=mpeg 2=win32/VfW 3=OpenDivX 4=w32/DShow
//
int audio_format=0; // override
#ifdef ALSA_TIMER
@@ -430,7 +406,10 @@ char *sub_name=NULL;
float sub_delay=0;
float sub_fps=0;
//int user_bpp=0;
-
+extern int vo_dbpp;
+// --- NEW
+#include "mixer.h"
+// ---
#include "cfg-mplayer.h"
printf("%s",banner_text);
@@ -470,18 +449,30 @@ if(video_driver && strcmp(video_driver,"help")==0){
i=0;
while (video_out_drivers[i]) {
const vo_info_t *info = video_out_drivers[i++]->get_info ();
- printf("\t%s\t%s\n", info->short_name, info->name);
+ printf("\t%s\t%s\n", info->short_name, info->name);
}
printf("\n");
exit(0);
}
-if(!filename){
- if(vcd_track) filename="/dev/cdrom";
- else {
- printf("%s",help_text); exit(0);
+// check font
+ if(font_name){
+ vo_font=read_font_desc(font_name,font_factor,verbose>1);
+ if(!vo_font) printf("Can't load font: %s\n