Command line video player
Go to file
wm4 a1244111a7 windows support: unicode filenames
Windows uses a legacy codepage for char* / runtime functions accepting
char *. Using UTF-8 as the codepage with setlocale() is explicitly
forbidden.

Work this around by overriding the MSVCRT functions with wrapper
macros, that assume UTF-8 and use "proper" API calls like _wopen etc.
to deal with unicode filenames. All code that uses standard functions
that take or return filenames must now include osdep/io.h. stat()
can't be overridden, because MinGW-w64 itself defines "stat" as a
macro. Change code to use use mp_stat() instead.

This is not perfectly clean, but still somewhat sane, and much better
than littering the rest of the mplayer code with MinGW specific hacks.
It's also a bit fragile, but that's actually little different from the
previous situation. Also, MinGW is unlikely to ever include a nice way
of dealing with this.
2012-03-09 20:48:54 +02:00
DOCS core: add screenshot mode for actual VO window contents 2011-11-25 23:56:28 +02:00
TOOLS vo_vdpau: implement screenshots 2011-11-25 23:56:28 +02:00
debian debian: remove leftover references to deleted OSD menu files 2011-11-14 20:24:39 +02:00
drivers
etc libmenu: remove OSD menu functionality (--menu) 2011-10-25 07:05:47 +03:00
ffmpeg_files build: switch to libavutil bswap.h and intreadwrite.h 2012-02-01 22:46:27 +02:00
input windows support: unicode filenames 2012-03-09 20:48:54 +02:00
libaf build: switch to libavutil bswap.h and intreadwrite.h 2012-02-01 22:46:27 +02:00
libao2 cleanup: Silence compilation warnings on MinGW-w64 2012-03-01 00:22:30 +02:00
libmpcodecs windows support: unicode filenames 2012-03-09 20:48:54 +02:00
libmpdemux windows support: unicode filenames 2012-03-09 20:48:54 +02:00
libvo windows support: unicode filenames 2012-03-09 20:48:54 +02:00
loader cleanup: Silence compilation warnings on MinGW-w64 2012-03-01 00:22:30 +02:00
osdep windows support: unicode filenames 2012-03-09 20:48:54 +02:00
rpm libmenu: remove OSD menu functionality (--menu) 2011-10-25 07:05:47 +03:00
stream windows support: unicode filenames 2012-03-09 20:48:54 +02:00
sub windows support: unicode filenames 2012-03-09 20:48:54 +02:00
timeline windows support: unicode filenames 2012-03-09 20:48:54 +02:00
.gitignore
AUTHORS
Copyright
LICENSE
Makefile windows support: unicode filenames 2012-03-09 20:48:54 +02:00
README
asxparser.c asxparser: remove code confusing asx/player options 2011-07-26 05:31:30 +03:00
asxparser.h
av_log.c configure, build: support compiling without libpostproc 2012-02-27 18:18:49 +02:00
av_log.h terminal output: show libav version numbers in verbose mode 2011-10-01 20:03:49 +03:00
av_opts.c Update Libav API uses 2012-02-01 22:46:27 +02:00
av_opts.h
bstr.c options: fix failure to parse trailing ',' in string list 2011-07-31 20:25:22 +03:00
bstr.h options: change option parsing to use bstr 2011-07-29 05:50:38 +03:00
cfg-mplayer.h configure, build: support compiling without libpostproc 2012-02-27 18:18:49 +02:00
codec-cfg.c
codec-cfg.h
command.c cleanup: Silence compilation warnings on MinGW-w64 2012-03-01 00:22:30 +02:00
command.h
configure configure: add __USE_MINGW_ANSI_STDIO on MinGW 2012-03-01 00:22:29 +02:00
cpudetect.c
cpudetect.h
cpuinfo.c
defaultopts.c Update Libav API uses 2012-02-01 22:46:27 +02:00
defaultopts.h
edl.c
edl.h
fmt-conversion.c configure, build: require at least Libav 0.7 2011-12-22 01:27:45 +02:00
fmt-conversion.h
m_config.c options: add "disabled option" functionality 2011-09-04 14:36:09 +03:00
m_config.h options: add "disabled option" functionality 2011-09-04 14:36:09 +03:00
m_option.c options: make "choice" option type parsing ignore case 2011-09-11 16:35:44 +03:00
m_option.h options: add "disabled option" functionality 2011-09-04 14:36:09 +03:00
m_property.c commands: osd_show_property_text: fix \xNN escapes 2011-08-05 03:46:06 +03:00
m_property.h
m_struct.c options: change option parsing to use bstr 2011-07-29 05:50:38 +03:00
m_struct.h options: change option parsing to use bstr 2011-07-29 05:50:38 +03:00
mangle.h
metadata.h
mixer.c
mixer.h
mp_core.h core: print pause status message only once on console 2012-01-10 04:28:27 +02:00
mp_fifo.c
mp_fifo.h
mp_msg.c
mp_msg.h windows: fix format string attributes on MinGW 2012-03-01 00:22:29 +02:00
mp_osd.h
mpbswap.h build: switch to libavutil bswap.h and intreadwrite.h 2012-02-01 22:46:27 +02:00
mpcommon.c
mpcommon.h windows: fix format string attributes on MinGW 2012-03-01 00:22:29 +02:00
mplayer.c windows support: unicode filenames 2012-03-09 20:48:54 +02:00
mplayer.h
options.h options, core/hrseek: add --hr-seek-demuxer-offset 2011-11-14 20:24:39 +02:00
parser-cfg.c windows support: unicode filenames 2012-03-09 20:48:54 +02:00
parser-cfg.h options: move command line preparse together with parse 2011-07-26 06:02:03 +03:00
parser-mpcmd.c options: commandline: support "--no-opt" for flag options 2011-09-01 18:32:11 +03:00
parser-mpcmd.h options: move command line preparse together with parse 2011-07-26 06:02:03 +03:00
path.c windows support: unicode filenames 2012-03-09 20:48:54 +02:00
path.h windows support: unicode filenames 2012-03-09 20:48:54 +02:00
playtree.c build: fix --enable-debug, remove some "#ifdef MP_DEBUG" 2011-07-30 19:03:20 +03:00
playtree.h options: commandline: accept --foo=xyz style options 2011-07-29 07:24:09 +03:00
playtreeparser.c build: fix --enable-debug, remove some "#ifdef MP_DEBUG" 2011-07-30 19:03:20 +03:00
playtreeparser.h options: commandline: accept --foo=xyz style options 2011-07-29 07:24:09 +03:00
pnm_loader.c
pnm_loader.h
screenshot.c windows support: unicode filenames 2012-03-09 20:48:54 +02:00
screenshot.h core: add screenshot mode for actual VO window contents 2011-11-25 23:56:28 +02:00
subopt-helper.c subopt-helper: support "no-" prefix to negate suboptions 2011-11-14 20:24:39 +02:00
subopt-helper.h
talloc.c talloc.[ch]: remove "type safety" hack that violates C types 2011-08-19 03:01:16 +03:00
talloc.h windows: fix format string attributes on MinGW 2012-03-01 00:22:29 +02:00
version.sh Update copyright year 2012-01-28 13:49:13 +02:00

README

Compiling with full features requires development files for several
external libraries. Below is a list of some important requirements. For
more information see the output of './configure --help' for a list of options,
or look at the list of enabled and disabled features printed after running
'./configure'. If you think you have support for some feature installed
but configure fails to detect it, the file config.log may contain information
about the reasons for the failure.

Libraries specific to particular video output methods
(you'll want at least one of VDPAU, GL or Xv):
 - libvdpau (for VDPAU output, best choice for NVIDIA cards)
 - libGL (OpenGL output)
 - libXv (XVideo output)
general:
 - libasound   (ALSA audio output)
 - various general X development libraries
 - libfreetype
 - libfontconfig
 - libass
 - FFmpeg libraries (libavutil libavcodec libavformat libswscale libpostproc)

Most of the above libraries are available in suitable versions on normal
Linux distributions. However FFmpeg is an exception (distro versions may be
too old to work at all or work well). For that reason you may want to use
the separately available build wrapper that first compiles FFmpeg libraries
and libass, and then compiles the player statically linked against those.