summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Herkt <lachs0r@srsfckn.biz>2016-07-10 01:06:17 +0200
committerMartin Herkt <lachs0r@srsfckn.biz>2016-07-10 01:06:17 +0200
commit76354385929b76b02b8c32a7b1cd4d669a8f2e0a (patch)
tree738a432ac5648098cf93101bf64a010cff47486a
parent69e7b0d3ea4b75a8040ede5b9b7e6fa93ec68056 (diff)
parente518bf2c72fc862fbe1de1c98313a03fa0db2e98 (diff)
downloadmpv-76354385929b76b02b8c32a7b1cd4d669a8f2e0a.tar.bz2
mpv-76354385929b76b02b8c32a7b1cd4d669a8f2e0a.tar.xz
Merge branch 'master' into release/current
-rw-r--r--DOCS/client-api-changes.rst6
-rw-r--r--DOCS/interface-changes.rst23
-rw-r--r--DOCS/man/input.rst78
-rw-r--r--DOCS/man/lua.rst2
-rw-r--r--DOCS/man/options.rst65
-rw-r--r--DOCS/man/vf.rst6
-rw-r--r--DOCS/man/vo.rst17
-rw-r--r--DOCS/tech-overview.txt2
-rw-r--r--README.md14
-rw-r--r--audio/audio.c12
-rw-r--r--audio/audio.h1
-rw-r--r--audio/decode/ad_lavc.c6
-rw-r--r--audio/decode/dec_audio.c9
-rw-r--r--audio/filter/af.c39
-rw-r--r--audio/mixer.c277
-rw-r--r--audio/mixer.h11
-rw-r--r--audio/out/ao.c5
-rw-r--r--audio/out/ao_coreaudio_utils.c7
-rw-r--r--audio/out/ao_lavc.c197
-rw-r--r--audio/out/ao_oss.c7
-rw-r--r--audio/out/ao_wasapi.c2
-rw-r--r--audio/out/ao_wasapi_changenotify.c2
-rw-r--r--common/av_log.c11
-rw-r--r--common/av_log.h5
-rw-r--r--input/input.c5
-rw-r--r--libmpv/client.h2
-rw-r--r--misc/bstr.h2
-rw-r--r--options/m_config.c7
-rw-r--r--options/m_option.h6
-rw-r--r--options/options.c16
-rw-r--r--options/options.h5
-rw-r--r--osdep/ar/HIDRemote.h4
-rw-r--r--osdep/ar/HIDRemote.m6
-rw-r--r--osdep/subprocess.c4
-rw-r--r--osdep/subprocess.h2
-rw-r--r--player/audio.c2
-rw-r--r--player/command.c330
-rw-r--r--player/command.h3
-rw-r--r--player/configfiles.c3
-rw-r--r--player/core.h2
-rw-r--r--player/main.c12
-rw-r--r--player/osd.c6
-rw-r--r--player/playloop.c2
-rw-r--r--player/video.c122
-rw-r--r--stream/tvi_v4l2.c2
-rw-r--r--sub/ass_mp.c259
-rw-r--r--sub/ass_mp.h8
-rw-r--r--sub/dec_sub.c6
-rw-r--r--sub/dec_sub.h4
-rw-r--r--sub/draw_bmp.c17
-rw-r--r--sub/img_convert.c159
-rw-r--r--sub/img_convert.h7
-rw-r--r--sub/osd.c31
-rw-r--r--sub/osd.h7
-rw-r--r--sub/osd_dummy.c2
-rw-r--r--sub/osd_libass.c35
-rw-r--r--sub/osd_state.h10
-rw-r--r--sub/sd.h4
-rw-r--r--sub/sd_ass.c53
-rw-r--r--sub/sd_lavc.c4
-rw-r--r--video/csputils.c69
-rw-r--r--video/csputils.h36
-rw-r--r--video/decode/d3d.c95
-rw-r--r--video/decode/d3d.h9
-rw-r--r--video/decode/lavc.h3
-rw-r--r--video/decode/vd_lavc.c39
-rw-r--r--video/filter/vf.c6
-rw-r--r--video/filter/vf_d3d11vpp.c24
-rw-r--r--video/filter/vf_format.c10
-rw-r--r--video/filter/vf_scale.c4
-rw-r--r--video/filter/vf_vapoursynth.c6
-rw-r--r--video/filter/vf_vavpp.c2
-rw-r--r--video/gpu_memcpy.c2
-rw-r--r--video/image_writer.c4
-rw-r--r--video/mp_image.c109
-rw-r--r--video/mp_image.h6
-rw-r--r--video/out/bitmap_packer.c33
-rw-r--r--video/out/bitmap_packer.h16
-rw-r--r--video/out/opengl/angle_common.c13
-rw-r--r--video/out/opengl/angle_common.h13
-rw-r--r--video/out/opengl/context_angle.c17
-rw-r--r--video/out/opengl/hwdec_d3d11egl.c3
-rw-r--r--video/out/opengl/hwdec_d3d11eglrgb.c5
-rw-r--r--video/out/opengl/hwdec_dxva2egl.c12
-rw-r--r--video/out/opengl/hwdec_vaglx.c2
-rw-r--r--video/out/opengl/osd.c172
-rw-r--r--video/out/opengl/user_shaders.c89
-rw-r--r--video/out/opengl/user_shaders.h5
-rw-r--r--video/out/opengl/utils.c75
-rw-r--r--video/out/opengl/utils.h13
-rw-r--r--video/out/opengl/video.c438
-rw-r--r--video/out/opengl/video_shaders.c128
-rw-r--r--video/out/opengl/video_shaders.h5
-rw-r--r--video/out/vo_direct3d.c157
-rw-r--r--video/out/vo_lavc.c193
-rw-r--r--video/out/vo_opengl.c6
-rw-r--r--video/out/vo_rpi.c2
-rw-r--r--video/out/vo_vaapi.c34
-rw-r--r--video/out/vo_vdpau.c165
-rw-r--r--video/out/vo_x11.c4
-rw-r--r--video/out/vo_xv.c20
-rw-r--r--video/out/w32_common.c30
-rw-r--r--video/out/x11_common.c4
-rw-r--r--video/sws_utils.c8
-rw-r--r--wscript13
-rw-r--r--wscript_build.py3
106 files changed, 2095 insertions, 1960 deletions
diff --git a/DOCS/client-api-changes.rst b/DOCS/client-api-changes.rst
index 8ef01a05e1..2027ed9fcf 100644
--- a/DOCS/client-api-changes.rst
+++ b/DOCS/client-api-changes.rst
@@ -32,7 +32,11 @@ API changes
::
- --- mpv 0.17.1 ---
+ --- mpv 0.18.1 ---
+ ---- - remove "status" log level from mpv_request_log_messages() docs. This
+ is 100% equivalent to "v". The behavior is still the same, thus no
+ actual API change.
+ --- mpv 0.18.0 ---
1.21 - mpv_set_property() changes behavior with MPV_FORMAT_NODE. Before this
change it rejected mpv_nodes with format==MPV_FORMAT_STRING if the
property was not a string or did not have special mechanisms in place
diff --git a/DOCS/interface-changes.rst b/DOCS/interface-changes.rst
index 7ffbbd60e0..d2e1ee4e7f 100644
--- a/DOCS/interface-changes.rst
+++ b/DOCS/interface-changes.rst
@@ -19,7 +19,26 @@ Interface changes
::
- --- mpv 0.17.1 ---
+ --- mpv 0.18.1 ---
+ - deprecate --heartbeat-cmd
+ - remove --softvol=no capability:
+ - deprecate --softvol, it now does nothing
+ - --volume, --mute, and the corrsponding properties now always control
+ softvol, and behave as expected without surprises (e.g. you can set
+ them normally while no audio is initialized)
+ - rename --softvol-max to --volume-max (deprecated alias is added)
+ - the --volume-restore-data option and property are removed without
+ replacement. They were _always_ internal, and used for watch-later
+ resume/restore. Now --volume/--mute are saved directly instead.
+ - the previous point means resuming files with older watch-later configs
+ will print an error about missing --volume-restore-data (which you can
+ ignore), and will not restore the previous value
+ - as a consequence, volume controls will no longer control PulseAudio
+ per-application value, or use the system mixer's per-application
+ volume processing
+ - system or per-application volume can still be controlled with the
+ ao-volume and ao-mute properties (there are no command line options)
+ --- mpv 0.18.0 ---
- now ab-loops are active even if one of the "ab-loop-a"/"-b" properties is
unset ("no"), in which case the start of the file is used if the A loop
point is unset, and the end of the file for an unset B loop point
@@ -27,7 +46,7 @@ Interface changes
(also needs --embeddedfonts=no)
- add "hwdec-interop" and "hwdec-current" properties
- deprecated "hwdec-active" and "hwdec-detected" properties (to be removed
- in mpv 0.19.0)
+ in mpv 0.20.0)
- choice option/property values that are "yes" or "no" will now be returned
as booleans when using the mpv_node functions in the client API, the
"native" property accessors in Lua, and the JSON API. They can be set as
diff --git a/DOCS/man/input.rst b/DOCS/man/input.rst
index d58f2dc4d5..9c4df6152b 100644
--- a/DOCS/man/input.rst
+++ b/DOCS/man/input.rst
@@ -459,6 +459,8 @@ Input Commands that are Possibly Subject to Change
Remove all filters. Note that like the other sub-commands, this does
not control automatically inserted filters.
+ The argument is always needed. E.g. in case of ``clr`` use ``vf clr ""``.
+
You can assign labels to filter by prefixing them with ``@name:`` (where
``name`` is a user-chosen arbitrary identifier). Labels can be used to
refer to filters by name in all of the filter chain modification commands.
@@ -561,29 +563,20 @@ Input Commands that are Possibly Subject to Change
the resolution is reduced to that of the video's. You can read the
``osd-width`` and ``osd-height`` properties. At least with ``--vo-xv`` and
anamorphic video (such as DVD), ``osd-par`` should be read as well, and the
- overlay should be aspect-compensated. (Future directions: maybe mpv should
- take care of some of these things automatically, but it's hard to tell
- where to draw the line.)
+ overlay should be aspect-compensated.
``id`` is an integer between 0 and 63 identifying the overlay element. The
ID can be used to add multiple overlay parts, update a part by using this
command with an already existing ID, or to remove a part with
``overlay-remove``. Using a previously unused ID will add a new overlay,
- while reusing an ID will update it. (Future directions: there should be
- something to ensure different programs wanting to create overlays don't
- conflict with each others, should that ever be needed.)
+ while reusing an ID will update it.
``x`` and ``y`` specify the position where the OSD should be displayed.
``file`` specifies the file the raw image data is read from. It can be
either a numeric UNIX file descriptor prefixed with ``@`` (e.g. ``@4``),
- or a filename. The file will be mapped into memory with ``mmap()``. Some VOs
- will pass the mapped pointer directly to display APIs (e.g. opengl or
- vdpau), so no actual copying is involved. Truncating the source file while
- the overlay is active will crash the player. You shouldn't change the data
- while the overlay is active, because the data is essentially accessed at
- random points. Instead, call ``overlay-add`` again (preferably with a
- different memory region to prevent tearing).
+ or a filename. The file will be mapped into memory with ``mmap()``,
+ copied, and unmapped before the command returns (changed in mpv 0.18.1).
It is also possible to pass a raw memory address for use as bitmap memory
by passing a memory address as integer prefixed with an ``&`` character.
@@ -616,15 +609,14 @@ Input Commands that are Possibly Subject to Change
(Technically, the minimum size would be ``stride * (h - 1) + w * 4``, but
for simplicity, the player will access all ``stride * h`` bytes.)
- .. admonition:: Warning
+ .. note::
- When updating the overlay, you should prepare a second shared memory
- region (e.g. make use of the offset parameter) and add this as overlay,
- instead of reusing the same memory every time. Otherwise, you might
- get the equivalent of tearing, when your application and mpv write/read
- the buffer at the same time. Also, keep in mind that mpv might access
- an overlay's memory at random times whenever it feels the need to do
- so, for example when redrawing the screen.
+ Before mpv 0.18.1, you had to do manual "double buffering" when updating
+ an overlay by replacing it with a different memory buffer. Since mpv
+ 0.18.1, the memory is simply copied and doesn't reference any of the
+ memory indicated by the command's arguments after the commend returns.
+ If you want to use this command before mpv 0.18.1, reads the old docs
+ to see how to handle this correctly.
``overlay-remove <id>``
Remove an overlay added with ``overlay-add`` and the same ID. Does nothing
@@ -1242,29 +1234,31 @@ Property list
See ``--hr-seek``.
``mixer-active``
- Return ``yes`` if the audio mixer is active, ``no`` otherwise. This has
- implications for ``--softvol=no`` mode: if the mixer is inactive, changing
- ``volume`` doesn't actually change anything on the system mixer. If the
- ``--volume`` or ``--mute`` option are used, these might not be applied
- properly until the mixer becomes active either. (The options, if set, will
- just overwrite the mixer state at audio initialization.)
-
- While the behavior with ``mixer-active==yes`` is relatively well-defined,
- the ``no`` case will provide possibly wrong or insignificant values.
+ Return ``yes`` if the audio mixer is active, ``no`` otherwise.
- Note that an active mixer does not necessarily imply active audio output,
- although this is implied in the current implementation.
+ This option is relatively useless. Before mpv 0.18.1, it could be used to
+ infer behavior of the ``volume`` property.
``volume`` (RW)
- Current volume (see ``--volume`` for details). Also see ``mixer-active``
- property.
+ Current volume (see ``--volume`` for details).
-``volume-max``
- Current maximum value the volume property can be set to. (This may depend
- on the ``--softvol-max`` option.)
+``volume-max`` (RW)
+ Current maximum value the volume property can be set to. (Equivalent to the
+ ``--volume-max`` option.)
``mute`` (RW)
- Current mute status (``yes``/``no``). Also see ``mixer-active`` property.
+ Current mute status (``yes``/``no``).
+
+``ao-volume`` (RW)
+ System volume. This property is available only if mpv audio output is
+ currently active, and only if the underlying implementation supports volume
+ control. What this option does depends on the API. For example, on ALSA
+ this usually changes system-wide audio, while with PulseAudio this controls
+ per-application volume.
+
+``ao-mute`` (RW)
+ Similar to ``ao-volume``, but controls the mute state. May be unimplemented
+ even if ``ao-volume`` works.
``audio-delay`` (RW)
See ``--audio-delay``.
@@ -1388,7 +1382,7 @@ Property list
properties to see whether this was successful.
Unlike in mpv 0.9.x and before, this does not return the currently active
- hardware decoder. Since mpv 0.17.1, ``hwdec-current`` is available for
+ hardware decoder. Since mpv 0.18.0, ``hwdec-current`` is available for
this purpose.
``hwdec-current``