summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Herkt <lachs0r@srsfckn.biz>2015-11-10 18:45:08 +0100
committerMartin Herkt <lachs0r@srsfckn.biz>2015-11-10 18:45:08 +0100
commit273607c1c6f77859e9a0cb98c3e4c74bc354fd8d (patch)
tree0fbd329857356bddf1d4dfbcf09ca4fbe2d6f0f9
parent5b7d0fbab31cb70d05bb7f757283c1ee4028b091 (diff)
parentfee45c01703ace0d6af7b8fe60d151be245a0e3f (diff)
downloadmpv-273607c1c6f77859e9a0cb98c3e4c74bc354fd8d.tar.bz2
mpv-273607c1c6f77859e9a0cb98c3e4c74bc354fd8d.tar.xz
Merge branch 'master' into release/current
-rw-r--r--DOCS/interface-changes.rst2
-rw-r--r--DOCS/man/ao.rst9
-rw-r--r--DOCS/man/input.rst10
-rw-r--r--DOCS/man/mpv.rst100
-rw-r--r--DOCS/man/options.rst23
-rw-r--r--DOCS/man/vo.rst123
-rwxr-xr-xTOOLS/file2string.pl4
-rwxr-xr-x[-rw-r--r--]TOOLS/gen-x11-icon.sh2
-rwxr-xr-xTOOLS/old-configure1
-rw-r--r--TOOLS/old-makefile6
-rw-r--r--audio/audio.h2
-rw-r--r--audio/chmap.c28
-rw-r--r--audio/chmap.h1
-rw-r--r--audio/chmap_sel.c11
-rw-r--r--audio/chmap_sel.h1
-rw-r--r--audio/decode/ad_lavc.c15
-rw-r--r--audio/decode/ad_spdif.c7
-rw-r--r--audio/decode/dec_audio.c21
-rw-r--r--audio/filter/af_lavcac3enc.c37
-rw-r--r--audio/filter/af_scaletempo.c3
-rw-r--r--audio/format.c2
-rw-r--r--audio/out/ao_alsa.c430
-rw-r--r--audio/out/ao_jack.c6
-rw-r--r--demux/demux_libarchive.c2
-rw-r--r--demux/demux_mkv.c22
-rw-r--r--etc/mpv-gradient.svg198
-rw-r--r--etc/mpv-symbolic.svg68
-rw-r--r--etc/mpv.svg86
-rw-r--r--libmpv/opengl_cb.h6
-rw-r--r--options/m_config.c47
-rw-r--r--options/m_config.h1
-rw-r--r--options/m_option.h3
-rw-r--r--options/m_property.c10
-rw-r--r--options/options.c14
-rw-r--r--player/audio.c140
-rw-r--r--player/command.c31
-rw-r--r--player/core.h3
-rw-r--r--player/external_files.c24
-rw-r--r--player/main.c1
-rw-r--r--player/video.c129
-rw-r--r--stream/ai_alsa1x.c6
-rw-r--r--stream/ai_oss.c9
-rw-r--r--stream/ai_sndio.c5
-rw-r--r--stream/audio_in.c14
-rw-r--r--stream/stream_libarchive.c197
-rw-r--r--stream/stream_libarchive.h2
-rw-r--r--video/decode/dec_video.h2
-rw-r--r--video/decode/lavc.h4
-rw-r--r--video/decode/rpi.c23
-rw-r--r--video/decode/vd_lavc.c60
-rw-r--r--video/decode/vdpau.c6
-rw-r--r--video/filter/vf.c5
-rw-r--r--video/img_format.c3
-rw-r--r--video/out/drm_common.c250
-rw-r--r--video/out/drm_common.h19
-rw-r--r--video/out/opengl/common.c47
-rw-r--r--video/out/opengl/common.h8
-rw-r--r--video/out/opengl/drm_egl.c439
-rw-r--r--video/out/opengl/hwdec.c2
-rw-r--r--video/out/opengl/hwdec.h2
-rw-r--r--video/out/opengl/hwdec_vaegl.c2
-rw-r--r--video/out/opengl/hwdec_vaglx.c8
-rw-r--r--video/out/opengl/hwdec_vdpau.c2
-rw-r--r--video/out/opengl/nnedi3.c219
-rw-r--r--video/out/opengl/nnedi3.h47
-rw-r--r--video/out/opengl/nnedi3_weights.binbin0 -> 161280 bytes
-rw-r--r--video/out/opengl/superxbr.c234
-rw-r--r--video/out/opengl/superxbr.h36
-rw-r--r--video/out/opengl/utils.c59
-rw-r--r--video/out/opengl/utils.h5
-rw-r--r--video/out/opengl/video.c358
-rw-r--r--video/out/opengl/video.h7
-rw-r--r--video/out/opengl/w32.c58
-rw-r--r--video/out/opengl/x11.c4
-rw-r--r--video/out/opengl/x11egl.c2
-rw-r--r--video/out/vo.c17
-rw-r--r--video/out/vo.h5
-rw-r--r--video/out/vo_direct3d.c8
-rw-r--r--video/out/vo_drm.c365
-rw-r--r--video/out/vo_opengl.c56
-rw-r--r--video/out/vo_opengl_cb.c203
-rw-r--r--video/out/vo_vdpau.c14
-rw-r--r--video/out/w32_common.c154
-rw-r--r--video/out/w32_common.h2
-rw-r--r--video/out/win32/displayconfig.c236
-rw-r--r--video/out/win32/displayconfig.h27
-rw-r--r--video/out/x11_common.c18
-rw-r--r--video/out/x11_common.h2
-rw-r--r--video/vaapi.c19
-rw-r--r--waftools/detections/compiler.py2
-rw-r--r--wscript29
-rw-r--r--wscript_build.py8
92 files changed, 3659 insertions, 1279 deletions
diff --git a/DOCS/interface-changes.rst b/DOCS/interface-changes.rst
index fa041fc534..b81312f8e9 100644
--- a/DOCS/interface-changes.rst
+++ b/DOCS/interface-changes.rst
@@ -19,6 +19,8 @@ Interface changes
::
+ --- mpv 0.13.0 ---
+ - remove VO opengl-cb frame queue suboptions (no replacement)
--- mpv 0.12.0 ---
- remove --use-text-osd (useless; fontconfig isn't a requirement anymore,
and text rendering is also lazily initialized)
diff --git a/DOCS/man/ao.rst b/DOCS/man/ao.rst
index d2e8685132..a35b9c1c4e 100644
--- a/DOCS/man/ao.rst
+++ b/DOCS/man/ao.rst
@@ -139,16 +139,13 @@ Available audio output drivers are:
Automatically create connections to output ports (default: enabled).
When enabled, the maximum number of output channels will be limited to
the number of available output ports.
- ``std-channel-layout=alsa|waveext|any``
- Select the standard channel layout (default: alsa). JACK itself has no
+ ``std-channel-layout=waveext|any``
+ Select the standard channel layout (default: waveext). JACK itself has no
notion of channel layouts (i.e. assigning which speaker a given
channel is supposed to map to) - it just takes whatever the application
outputs, and reroutes it to whatever the user defines. This means the
user and the application are in charge of dealing with the channel
- layout. ``alsa`` uses the old MPlayer layout, which is inspired by
- ALSA's standard layouts. In this mode, ao_jack will refuse to play 3
- or 7 channels (because these do not really have a defined meaning in
- MPlayer). ``waveext`` uses WAVE_FORMAT_EXTENSIBLE order, which, even
+ layout. ``waveext`` uses WAVE_FORMAT_EXTENSIBLE order, which, even
though it was defined by Microsoft, is the standard on many systems.
The value ``any`` makes JACK accept whatever comes from the audio
filter chain, regardless of channel layout and without reordering. This
diff --git a/DOCS/man/input.rst b/DOCS/man/input.rst
index d1d891227b..108c7a0de2 100644
--- a/DOCS/man/input.rst
+++ b/DOCS/man/input.rst
@@ -913,6 +913,14 @@ Property list
``vo-drop-frame-count``
Frames dropped by VO (when using ``--framedrop=vo``).
+``mistimed-frame-count``
+ Number of video frames that were not timed correctly in display-sync mode
+ for the sake of keeping A/V sync. This does not include external
+ circumstances, such as video rendering being too slow or the graphics
+ driver somehow skipping a vsync. It does not include rounding errors either
+ (which can happen especially with bad source timestamps). For example,
+ using the ``display-desync`` mode should never change this value from 0.
+
``percent-pos`` (RW)
Position in current file (0-100). The advantage over using this instead of
calculating it out of other properties is that it properly falls back to
@@ -1444,7 +1452,7 @@ Property list
Names of the displays that the mpv window covers. On X11, these
are the xrandr names (LVDS1, HDMI1, DP1, VGA1, etc.).
-``display-fps``
+``display-fps`` (RW)
The refresh rate of the current display. Currently, this is the lowest FPS
of any display covered by the video, as retrieved by the underlying system
APIs (e.g. xrandr on X11). It is not the measured FPS. It's not necessarily
diff --git a/DOCS/man/mpv.rst b/DOCS/man/mpv.rst
index aa2a044c58..b8bd266aa4 100644
--- a/DOCS/man/mpv.rst
+++ b/DOCS/man/mpv.rst
@@ -392,10 +392,11 @@ You can put all of the options in configuration files which will be read every
time mpv is run. The system-wide configuration file 'mpv.conf' is in your
configuration directory (e.g. ``/etc/mpv`` or ``/usr/local/etc/mpv``), the
user-specific one is ``~/.config/mpv/mpv.conf``. For details and platform
-specifics see the `FILES`_ section.
+specifics (in particular Windows paths) see the `FILES`_ section.
+
User-specific options override system-wide options and options given on the
command line override either. The syntax of the configuration files is
-``option=<value>``; everything after a *#* is considered a comment. Options
+``option=value``. Everything after a *#* is considered a comment. Options
that work without values can be enabled by setting them to *yes* and disabled by
setting them to *no*. Even suboptions can be specified in this way.
@@ -460,7 +461,38 @@ description (shown by ``--profile=help``) can be defined with the
``profile-desc`` option. To end the profile, start another one or use the
profile name ``default`` to continue with normal options.
-.. admonition:: Example mpv profile
+.. admonition:: Example mpv config file with profiles
+
+ ::
+
+ # normal top-level option
+ fullscreen=yes
+
+ # a profile that can be enabled with --profile=big-cache
+ [big-cache]
+ cache=123400
+ demuxer-readahead-secs=20
+
+ [slow]
+ profile-desc="some profile name"
+ vo=opengl:scale=ewa_lanczos:scale-radius=16
+
+ [fast]
+ vo=vdpau
+
+ # using a profile again extends it
+ [slow]
+ framedrop=no
+ # you can also include other profiles
+ profile=big-cache
+
+
+Auto profiles
+-------------
+
+Some profiles are loaded automatically. The following example demonstrates this:
+
+.. admonition:: Auto profile loading
::
@@ -479,6 +511,13 @@ profile name ``default`` to continue with normal options.
[ao.alsa]
device=spdif
+The profile name follows the schema ``type.name``, where type can be ``vo``
+to match the value the ``--vo`` option is set to, ``ao`` for ``--ao``,
+``protocol`` for the input/output protocol in use (see ``--list-protocols``),
+and ``extension`` for the extension of the path of the currently played file
+(*not* the file format).
+
+This feature is very limited, and there are no other auto profiles.
TAKING SCREENSHOTS
==================
@@ -688,6 +727,15 @@ The profile always overrides other settings in ``mpv.conf``.
.. include:: changes.rst
+
+EMBEDDING INTO OTHER PROGRAMS (LIBMPV)
+======================================
+
+mpv can be embedded into other programs as video/audio playback backend. The
+recommended way to to so is using libmpv. See ``libmpv/client.h`` in the mpv
+source code repository. This provides a C API. Bindings for other languages
+might be available (see wiki).
+
ENVIRONMENT VARIABLES
=====================
@@ -905,49 +953,3 @@ future.
Note that mpv likes to mix ``/`` and ``\`` path separators for simplicity.
kernel32.dll accepts this, but cmd.exe does not.
-
-EXAMPLES OF MPV USAGE
-=====================
-
-Blu-ray playback:
- - ``mpv bd:////path/to/disc``
- - ``mpv bd:// --bluray-device=/path/to/disc``
-
-Play in Japanese with English subtitles:
- ``mpv dvd://1 --alang=ja --slang=en``
-
-Play only chapters 5, 6, 7:
- ``mpv dvd://1 --chapter=5-7``
-
-Play only titles 5, 6, 7:
- ``mpv dvd://5-7``
-
-Play a multi-angle DVD:
- ``mpv dvd://1 --dvd-angle=2``
-
-Play from a different DVD device:
- ``mpv dvd://1 --dvd-device=/dev/dvd2``
-
-Play DVD video from a directory with VOB files:
- ``mpv dvd://1 --dvd-device=/path/to/directory/``
-
-Stream from HTTP:
- ``mpv http://example.com/example.avi``
-
-Stream using RTSP:
- ``mpv rtsp://server.example.com/streamName``
-
-Play a libavfilter graph:
- ``mpv avdevice://lavfi:mandelbrot``
-
-AUTHORS
-=======
-
-mpv is a MPlayer fork based on mplayer2, which in turn is a fork of MPlayer.
-
-MPlayer was initially written by Arpad Gereoffy. See the ``AUTHORS`` file for
-a list of some of the many other contributors.
-
-MPlayer is (C) 2000-2013 The MPlayer Team
-
-This man page was written mainly by Gabucino, Jonas Jermann and Diego Biurrun.
diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst
index 94beae933a..adf3f994be 100644
--- a/DOCS/man/options.rst
+++ b/DOCS/man/options.rst
@@ -804,9 +804,9 @@ Video
You can get the list of allowed codecs with ``mpv --vd=help``. Remove the
prefix, e.g. instead of ``lavc:h264`` use ``h264``.
- By default this is set to ``h264,vc1,wmv3,hevc``. Note that the hardware
- acceleration special codecs like ``h264_vdpau`` are not relevant anymore,
- and in fact have been removed from Libav in this form.
+ By default this is set to ``h264,vc1,wmv3,hevc,mpeg2video``. Note that the
+ hardware acceleration special codecs like ``h264_vdpau`` are not relevant
+ anymore, and in fact have been removed from Libav in this form.
This is usually only needed with broken GPUs, where a codec is reported
as supported, but decoding causes more problems than it solves.
@@ -823,9 +823,10 @@ Video
The result is most likely broken decoding, but may also help if the
detected or reported profiles are somehow incorrect.
-``--vd-lavc-software-fallback=<yes|no>``
+``--vd-lavc-software-fallback=<yes|no|N>``
Fallback to software decoding if the hardware-accelerated decoder fails
- (default: yes).
+ (default: 3). If this is a number, then fallback will be triggered if
+ N frames fail to decode in a row. 1 is equivalent to ``yes``.
``--vd-lavc-bitexact``
Only use bit-exact algorithms in all decoding steps (for codec testing).
@@ -2244,18 +2245,6 @@ Demuxer
file and can make a reliable estimate even without an index present (such
as partial files).
-``--demuxer-mkv-fix-timestamps=<yes|no>``
- Fix rounded Matroska timestamps (disabled by default). Matroska usually
- stores timestamps rounded to milliseconds. This means timestamps jitter
- by some amount around the intended timestamp. mpv can correct the timestamps
- based on the framerate value stored in the file: the timestamp is rounded
- to the next frame (according to the framerate), unless the new timestamp
- would deviate more than 1ms from the old one. This should undo the rounding
- done by the muxer.
-
- (The allowed deviation can be less than 1ms if the file uses a non-standard
- timecode scale.)
-
``--demuxer-rawaudio-channels=<value>``
Number of channels (or channel layout) if ``--demuxer=rawaudio`` is used
(default: stereo).
diff --git a/DOCS/man/vo.rst b/DOCS/man/vo.rst
index 7b6358be6e..f59b9cbea7 100644
--- a/DOCS/man/vo.rst
+++ b/DOCS/man/vo.rst
@@ -541,13 +541,81 @@ Available video output drivers are:
Scale in linear light. It should only be used with a ``fbo-format``
that has at least 16 bit precision.
- ``fancy-downscaling``
+ ``correct-downscaling``
When using convolution based filters, extend the filter size
when downscaling. Trades quality for reduced downscaling performance.
- This is automatically disabled for anamorphic video, because this
- feature doesn't work correctly with different scale factors in
- different directions.
+ This will perform slightly sub-optimally for anamorphic video (but still
+ better than without it) since it will extend the size to match only the
+ milder of the scale factors between the axes.
+
+ ``prescale=<filter>``
+ This option provides non-convolution-based filters for upscaling. These
+ filters resize the video to multiple of the original size (all currently
+ supported prescalers can only perform image doubling in a single pass).
+ Generally another convolution based filter (the main scaler) will be
+ applied after prescaler to match the target display size.
+
+ ``none``
+ Disable all prescalers. This is the default.
+
+ ``superxbr``
+ A relatively fast prescaler originally developed for pixel art.
+
+ Some parameters can be tuned with ``superxbr-sharpness`` and
+ ``superxbr-edge-strength`` options.
+
+ ``nnedi3``
+ An artificial neural network based deinterlacer, which can be used
+ to upscale images.
+
+ Extremely slow and requires a recent mid or high end graphics card
+ to work smoothly (as of 2015).
+
+ Note that all the filters above are designed (or implemented) to process
+ luma plane only and probably won't work as intended for video in RGB
+ format.
+
+ ``prescale-passes=<1..5>``
+ The number of passes to apply the prescaler (defaults to be 1). Setting
+ it to 2 will perform a 4x upscaling.
+
+ ``prescale-downscaling-threshold=<0..32>``
+ This option prevents "overkill" use of prescalers, which can be caused
+ by misconfiguration, or user trying to play a video with much larger
+ size. With this option, user can specify the maximal allowed downscaling
+ ratio in both dimension. To satisfy it, the number of passes for
+ prescaler will be reduced, and if necessary prescaler could also be
+ disabled.
+
+ The default value is 2.0, and should be able to prevent most seemingly
+ unreasonable use of prescalers. Most user would probably want to set it
+ to a smaller value between 1.0 and 1.5 for better performance.
+
+ A value less than 1.0 will disable the check.
+
+ ``nnedi3-neurons=<16|32|64|128>``
+ Specify the neurons for nnedi3 prescaling (defaults to be 32). The
+ rendering time is expected to be linear to the number of neurons.
+
+ ``nned