0
0
mirror of https://github.com/mpv-player/mpv.git synced 2024-09-20 12:02:23 +02:00
Command line video player
Go to file
wm4 74e7a1e937 osd: use libass for OSD rendering
The OSD will now be rendered with libass. The old rendering code, which
used freetype/fontconfig and did text layout manually, is disabled. To
re-enable the old code, use the --disable-libass-osd configure switch.

Some switches do nothing with the new code enabled, such as -subalign,
-sub-bg-alpha, -sub-bg-color, and many more. (The reason is mostly that
the code for rendering unstyled subtitles with libass doesn't make any
attempts to support them. Some of them could be supported in theory.)

Teletext rendering is not implemented in the new OSD rendering code. I
don't have any teletext sources for testing, and since teletext is
being phased out world-wide, the need for this is questionable.

Note that rendering is extremely inefficient, mostly because the libass
output is blended with the extremely strange mplayer OSD format. This
could be improved at a later point.

Remove most OSD rendering from vo_aa.c, because that was extremely
hacky, can't be made work with osd_libass, and didn't work anyway in
my tests.

Internally, some cleanup is done. Subtitle and OSD related variable
declarations were literally all over the place. Move them to sub.h and
sub.c, which were hoarding most of these declarations already. Make the
player core in mplayer.c free of concerns like bitmap font loading.

The old OSD rendering code has been moved to osd_ft.c. The font_load.c
and font_load_ft.c are only needed and compiled if the old OSD
rendering code is configured.
2012-07-28 23:36:07 +02:00
debian debian: remove leftover references to deleted OSD menu files 2011-11-14 20:24:39 +02:00
DOCS commands: add show_tracks_osd command to display audio and subtitle tracks on OSD 2012-07-28 20:57:44 +02:00
etc Merge remote-tracking branch 'origin/master' 2012-07-28 17:24:05 +02:00
ffmpeg_files build: switch to libavutil bswap.h and intreadwrite.h 2012-02-01 22:46:27 +02:00
input commands: add show_tracks_osd command to display audio and subtitle tracks on OSD 2012-07-28 20:57:44 +02:00
libaf af: fix crash when trying to use volume controls with AC3 pass-through 2012-03-09 20:48:54 +02:00
libao2 libvo, libao: remove useless video and audio output drivers 2012-07-28 20:44:59 +02:00
libmpcodecs osd: use libass for OSD rendering 2012-07-28 23:36:07 +02:00
libmpdemux osd: use libass for OSD rendering 2012-07-28 23:36:07 +02:00
libvo osd: use libass for OSD rendering 2012-07-28 23:36:07 +02:00
loader Remove QTX tests 2012-07-28 20:44:59 +02:00
osdep Merge remote-tracking branch 'origin/master' 2012-04-29 10:01:28 +02:00
rpm libmenu: remove OSD menu functionality (--menu) 2011-10-25 07:05:47 +03:00
stream Add support for playing video from streaming sites with libquvi 2012-07-28 22:05:34 +02:00
sub osd: use libass for OSD rendering 2012-07-28 23:36:07 +02:00
timeline Merge remote-tracking branch 'origin/master' 2012-07-28 17:24:05 +02:00
TOOLS TOOLS: remove useless crap 2012-07-28 20:44:58 +02:00
.gitignore Merge remote-tracking branch 'origin/master' 2012-07-28 17:24:05 +02:00
asxparser.c asxparser: remove code confusing asx/player options 2011-07-26 05:31:30 +03:00
asxparser.h Merge svn change r31134 2010-05-07 22:03:48 +03:00
AUTHORS documentation: remove Changelog, rewrite README 2011-02-15 12:04:32 +02:00
av_log.c stream_ffmpeg: fix broken line from 30afc64532 2012-04-18 01:27:55 +03: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 Add missing multiple inclusion guards. 2009-01-25 20:10:36 +00:00
bstr.c Merge remote-tracking branch 'origin/master' 2012-07-28 17:24:05 +02:00
bstr.h Merge remote-tracking branch 'origin/master' 2012-07-28 17:24:05 +02:00
cfg-mplayer.h osd: use libass for OSD rendering 2012-07-28 23:36:07 +02:00
codec-cfg.c Merge remote-tracking branch 'origin/master' 2012-07-28 17:24:05 +02:00
codec-cfg.h video, audio: use lavc decoders without codecs.conf entries 2012-07-24 09:01:47 +03:00
command.c osd: use libass for OSD rendering 2012-07-28 23:36:07 +02:00
command.h Merge svn changes up to r30475 2010-03-09 19:18:43 +02:00
configure osd: use libass for OSD rendering 2012-07-28 23:36:07 +02:00
Copyright mp3lib: drop internal mp3lib tree 2011-04-02 07:28:53 +03:00
cpudetect.c build: remove OS/2 support 2012-04-06 17:45:56 +03:00
cpudetect.h loader: Reuse do_cpuid from cpudetect.c in loader/win32.c 2010-11-02 04:15:01 +02:00
cpuinfo.c the great MPlayer tab removal: part II 2010-05-03 23:34:38 +00:00
defaultopts.c Merge remote-tracking branch 'origin/master' 2012-07-28 17:24:05 +02:00
defaultopts.h cleanup: remove unused MEncoder-related code 2011-01-25 02:29:31 +02:00
fmt-conversion.c libmpcodecs: rename IMGFMT_GBR24P to IMGFMT_GBRP 2012-03-25 23:12:57 +02:00
fmt-conversion.h Add license header to all top-level files missing them. 2010-01-30 23:24:23 +00:00
LICENSE Copyright, LICENSE: change binary license to GPL 3 2011-03-24 23:40:29 +02:00
m_config.c options: support "no-foo" syntax for flag suboptions 2012-07-27 03:34:17 +03:00
m_config.h options: support parsing values into substructs 2012-07-16 21:08:42 +03:00
m_option.c Merge remote-tracking branch 'origin/master' 2012-07-28 17:24:05 +02:00
m_option.h Merge remote-tracking branch 'origin/master' 2012-07-28 17:24:05 +02:00
m_property.c core: change format of time properties to match the OSD time format 2012-07-28 20:56:53 +02:00
m_property.h Add license header to all top-level files missing them. 2010-01-30 23:24:23 +00:00
m_struct.c options: make option struct the talloc parent of options 2012-07-16 21:08:42 +03:00
m_struct.h options: change option parsing to use bstr 2011-07-29 05:50:38 +03:00
Makefile osd: use libass for OSD rendering 2012-07-28 23:36:07 +02:00
mangle.h Use configure code to define PIC instead of duplicating the check in mangle.h. 2009-11-10 13:08:36 +00:00
metadata.h Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
mixer.c mixer: support native audio driver mute 2012-04-11 03:56:28 +03:00
mixer.h mixer: support native audio driver mute 2012-04-11 03:56:28 +03:00
mp_core.h audio: fix unmute-at-end logic 2012-04-11 03:52:34 +03:00
mp_fifo.c input: allow unicode keys and reassign internal key codes 2012-03-25 22:30:37 +03:00
mp_fifo.h input: allow unicode keys and reassign internal key codes 2012-03-25 22:30:37 +03:00
mp_msg.c Merge remote-tracking branch 'origin/master' 2012-04-01 22:52:33 +02:00
mp_msg.h windows: fix format string attributes on MinGW 2012-03-01 00:22:29 +02:00
mp_osd.h options: more mplayer.c options moved to option struct 2010-11-14 00:14:56 +02:00
mpbswap.h build: switch to libavutil bswap.h and intreadwrite.h 2012-02-01 22:46:27 +02:00
mpcommon.c Use "mplayer2" in version string, not "MPlayer2" 2012-03-14 10:29:35 +01:00
mpcommon.h windows: fix format string attributes on MinGW 2012-03-01 00:22:29 +02:00
mplayer.c osd: use libass for OSD rendering 2012-07-28 23:36:07 +02:00
mplayer.h osd: use libass for OSD rendering 2012-07-28 23:36:07 +02:00
options.h Add support for playing video from streaming sites with libquvi 2012-07-28 22:05:34 +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: change -v parsing 2012-05-07 23:51:58 +03:00
parser-mpcmd.h options: change -v parsing 2012-05-07 23:51:58 +03:00
path.c win32: get_path(): fix undefined behavior 2012-04-28 21:47:53 +03:00
path.h windows support: unicode filenames 2012-03-09 20:48:54 +02:00
playtree.c playtree: --shuffle shouldn't make playlist navigation useless 2012-01-18 02:53:30 +01: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 vo_gl: Move the read_pnm function into a separate file 2010-11-02 04:18:37 +02:00
pnm_loader.h vo_gl: Move the read_pnm function into a separate file 2010-11-02 04:18:37 +02:00
README documentation: remove Changelog, rewrite README 2011-02-15 12:04:32 +02:00
screenshot.c screenshot: fix minor memory leak 2012-05-15 17:28:14 +02:00
screenshot.h screenshot: make screenshot filenames configurable 2012-02-29 04:14:54 +01:00
subopt-helper.c subopt-helper: support "no-" prefix to negate suboptions 2011-11-14 20:24:39 +02:00
subopt-helper.h Add license header to all top-level files missing them. 2010-01-30 23:24:23 +00:00
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 Use "mplayer2" in version string, not "MPlayer2" 2012-03-14 10:29:35 +01:00

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.