mirror of
https://github.com/mpv-player/mpv.git
synced 2026-10-28 14:29:25 +08:00
37c03f2c81a443e910eeb3b2613865dce59c54bf
This reverts commit48f0692ab9"options: make option struct the talloc parent of options". This made things actually more complicated. It introduced a new parameter to the option parse and copy functions, which was used inconsistently. Some code passed a parent, some not. Morever, you have to call m_option_free() anyway, because not all options actually respect the talloc parent. There is also the question whether passing NULL as parent is supposed to work, or if you still have to implement m_config_free(). On the other hand, this simplifies nothing. I assume the intention was being able to free all option values with a single talloc_free() call, but the same goal can be reached by simply freeing the m_config struct. (The m_config talloc destructor will free each option values.) Get rid of the talloc parent context parameter. This essentially reverts commit48f0692ab9("options: make option struct the talloc parent of options"). In video_out.c, make the VO priv struct the talloc parent for the m_config object, so that destroying the VO will free the options. The ability to free the m_config struct and all its managed options was introduced in commit89a17bcda6.
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 (for libass) - libfontconfig (for libass) - 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.
Languages
C
88%
Lua
5.8%
Swift
2.3%
Meson
1.1%
Python
0.8%
Other
2%