mirror of https://github.com/mpv-player/mpv
c67e1ba4a6
This simplifies the code and removes code duplication. There should be no actual semantic differences to the previous code. The only exception is that the new code doesn't query the display adapter's desktop pixel format on backbuffer resizing anymore. In my opinion the format can never change anyway, and if it does, it will cause the D3D device to become "uncooperative" and we will recreate it in flip_page. Remove attempts to handle d3d_device when it's NULL (outside of the initialization paths). d3d_device can only be NULL if recreating a D3D device, that was in "incooperative" state, fails. The current (and previous) code seems to assume that this never happens. It is unlikely that these NULL checks improved correct operation in any way, or at least they won't anymore after the recent changes done to the code. If it should be possible that a device can't be reset/recreated for a while (during display resolution changes? when another D3D application is in fullscreen mode?), another solution has to be found. It is unknown why the code recreates the IDirect3D9 interface when the device was uncooperative. At least on Windows XP + reference rasterizer, resuming works without recreating it. Leave this code just in case. |
||
---|---|---|
DOCS | ||
TOOLS | ||
debian | ||
drivers | ||
etc | ||
ffmpeg_files | ||
input | ||
libaf | ||
libao2 | ||
libmpcodecs | ||
libmpdemux | ||
libvo | ||
loader | ||
osdep | ||
rpm | ||
stream | ||
sub | ||
timeline | ||
.gitignore | ||
AUTHORS | ||
Copyright | ||
LICENSE | ||
Makefile | ||
README | ||
asxparser.c | ||
asxparser.h | ||
av_log.c | ||
av_log.h | ||
av_opts.c | ||
av_opts.h | ||
bstr.c | ||
bstr.h | ||
cfg-mplayer.h | ||
codec-cfg.c | ||
codec-cfg.h | ||
command.c | ||
command.h | ||
configure | ||
cpudetect.c | ||
cpudetect.h | ||
cpuinfo.c | ||
defaultopts.c | ||
defaultopts.h | ||
fmt-conversion.c | ||
fmt-conversion.h | ||
m_config.c | ||
m_config.h | ||
m_option.c | ||
m_option.h | ||
m_property.c | ||
m_property.h | ||
m_struct.c | ||
m_struct.h | ||
mangle.h | ||
metadata.h | ||
mixer.c | ||
mixer.h | ||
mp_core.h | ||
mp_fifo.c | ||
mp_fifo.h | ||
mp_msg.c | ||
mp_msg.h | ||
mp_osd.h | ||
mpbswap.h | ||
mpcommon.c | ||
mpcommon.h | ||
mplayer.c | ||
mplayer.h | ||
options.h | ||
parser-cfg.c | ||
parser-cfg.h | ||
parser-mpcmd.c | ||
parser-mpcmd.h | ||
path.c | ||
path.h | ||
playtree.c | ||
playtree.h | ||
playtreeparser.c | ||
playtreeparser.h | ||
pnm_loader.c | ||
pnm_loader.h | ||
screenshot.c | ||
screenshot.h | ||
subopt-helper.c | ||
subopt-helper.h | ||
talloc.c | ||
talloc.h | ||
version.sh |
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.