2014-07-02 23:24:41 +00:00
|
|
|
Introduction
|
|
|
|
============
|
|
|
|
|
|
|
|
This file lists all changes that can cause compatibility issues when using
|
|
|
|
mpv through the client API (libmpv and ``client.h``). Since the client API
|
|
|
|
interfaces to input handling (commands, properties) as well as command line
|
2015-05-22 17:00:13 +00:00
|
|
|
options, you should also look at ``interface-changes.rst``.
|
2014-07-02 23:24:41 +00:00
|
|
|
|
|
|
|
Normally, changes to the C API that are incompatible to previous iterations
|
|
|
|
receive a major version bump (i.e. the first version number is increased),
|
|
|
|
while C API additions bump the minor version (i.e. the second number is
|
|
|
|
increased). Changes to properties/commands/options may also lead to a minor
|
|
|
|
version bump, in particular if they are incompatible.
|
|
|
|
|
|
|
|
The version number is the same as used for MPV_CLIENT_API_VERSION (see
|
|
|
|
``client.h`` how to convert between major/minor version numbers and the flat
|
|
|
|
32 bit integer).
|
|
|
|
|
|
|
|
Also, read the section ``Compatibility`` in ``client.h``.
|
|
|
|
|
2015-05-22 17:00:13 +00:00
|
|
|
Options, commands, properties
|
|
|
|
=============================
|
|
|
|
|
|
|
|
Changes to these are not listed here, but in ``interface-changes.rst``. (Before
|
|
|
|
client API version 1.17, they were listed here partially.)
|
|
|
|
|
|
|
|
This listing includes changes to the bare C API and behavior only, not what
|
|
|
|
you can access with them.
|
|
|
|
|
2014-07-02 23:24:41 +00:00
|
|
|
API changes
|
|
|
|
===========
|
|
|
|
|
2014-07-06 17:05:45 +00:00
|
|
|
::
|
|
|
|
|
2015-09-24 19:07:16 +00:00
|
|
|
--- mpv 0.12.0 ---
|
|
|
|
1.20 - deprecate "GL_MP_D3D_interfaces"/"glMPGetD3DInterface", and introduce
|
|
|
|
"GL_MP_MPGetNativeDisplay"/"glMPGetNativeDisplay" (this is a
|
|
|
|
backwards-compatible rename)
|
2015-09-22 23:12:15 +00:00
|
|
|
--- mpv 0.11.0 ---
|
2015-09-24 19:07:16 +00:00
|
|
|
--- mpv 0.10.0 ---
|
2015-09-10 12:08:10 +00:00
|
|
|
1.19 - add "GL_MP_D3D_interfaces" pseudo extension to make it possible to
|
2015-07-03 14:37:01 +00:00
|
|
|
use DXVA2 in OpenGL fullscreen mode in some situations
|
2015-09-10 12:08:10 +00:00
|
|
|
- mpv_request_log_messages() now accepts "terminal-default" as parameter
|
2015-06-11 19:39:48 +00:00
|
|
|
1.18 - add MPV_END_FILE_REASON_REDIRECT, and change behavior of
|
|
|
|
MPV_EVENT_END_FILE accordingly
|
|
|
|
- a bunch of interface-changes.rst changes
|
2015-05-11 15:38:35 +00:00
|
|
|
1.17 - mpv_initialize() now blocks SIGPIPE (details see client.h)
|
2015-09-10 12:08:10 +00:00
|
|
|
--- mpv 0.9.0 ---
|
2015-04-09 17:30:26 +00:00
|
|
|
1.16 - add mpv_opengl_cb_report_flip()
|
2015-04-09 17:31:01 +00:00
|
|
|
- introduce mpv_opengl_cb_draw() and deprecate mpv_opengl_cb_render()
|
2015-05-11 15:38:35 +00:00
|
|
|
- add MPV_FORMAT_BYTE_ARRAY
|
2015-03-05 10:17:22 +00:00
|
|
|
1.15 - mpv_initialize() will now load config files. This requires setting
|
|
|
|
the "config" and "config-dir" options. In particular, it will load
|
|
|
|
mpv.conf.
|
2015-03-05 11:41:43 +00:00
|
|
|
- minor backwards-compatible change to the "seek" and "screenshot"
|
|
|
|
commands (new flag syntax, old additional args deprecated)
|
2015-09-10 12:08:10 +00:00
|
|
|
--- mpv 0.8.0 ---
|
2015-02-02 16:24:33 +00:00
|
|
|
1.14 - add mpv_wait_async_requests()
|
2015-02-17 22:42:25 +00:00
|
|
|
- the --msg-level option changes its native type from a flat string to
|
|
|
|
a key-value list (setting/reading the option as string still works)
|
2015-01-19 18:54:20 +00:00
|
|
|
1.13 - add MPV_EVENT_QUEUE_OVERFLOW
|
2014-12-30 21:24:57 +00:00
|
|
|
1.12 - add class Handle to qthelper.hpp
|
2014-12-31 19:32:35 +00:00
|
|
|
- improve opengl_cb.h API uninitialization behavior, and fix the qml
|
|
|
|
example
|
|
|
|
- add mpv_create_client() function
|
2014-12-09 16:47:02 +00:00
|
|
|
1.11 - add OpenGL rendering interop API - allows an application to combine
|
|
|
|
its own and mpv's OpenGL rendering
|
|
|
|
Warning: this API is not stable yet - anything in opengl_cb.h might
|
|
|
|
be changed in completely incompatible ways in minor API bumps
|
2015-09-10 12:08:10 +00:00
|
|
|
--- mpv 0.7.0 ---
|
2014-11-23 14:08:49 +00:00
|
|
|
1.10 - deprecate/disable everything directly related to script_dispatch
|
|
|
|
(most likely affects nobody)
|
2014-10-28 14:44:25 +00:00
|
|
|
1.9 - add enum mpv_end_file_reason for mpv_event_end_file.reason
|
2014-10-28 15:19:07 +00:00
|
|
|
- add MPV_END_FILE_REASON_ERROR and the mpv_event_end_file.error field
|
|
|
|
for slightly better error reporting on playback failure
|
2014-10-28 18:51:44 +00:00
|
|
|
- add --stop-playback-on-init-failure option, and make it the default
|
|
|
|
behavior for libmpv only
|
2014-10-30 10:26:31 +00:00
|
|
|
- add qthelper.hpp set_option_variant()
|
2014-11-08 08:59:38 +00:00
|
|
|
- mark the following events as deprecated:
|
|
|
|
MPV_EVENT_TRACKS_CHANGED
|
|
|
|
MPV_EVENT_TRACK_SWITCHED
|
|
|
|
MPV_EVENT_PAUSE
|
|
|
|
MPV_EVENT_UNPAUSE
|
|
|
|
MPV_EVENT_METADATA_UPDATE
|
|
|
|
MPV_EVENT_CHAPTER_CHANGE
|
|
|
|
They are handled better with mpv_observe_property() as mentioned in
|
|
|
|
the documentation comments. They are not removed and still work.
|
2014-10-13 19:38:54 +00:00
|
|
|
1.8 - add qthelper.hpp
|
2014-10-10 21:58:59 +00:00
|
|
|
1.7 - add mpv_command_node(), mpv_command_node_async()
|
2014-10-07 19:01:19 +00:00
|
|
|
1.6 - modify "core-idle" property behavior
|
2014-10-08 11:11:55 +00:00
|
|
|
- MPV_EVENT_LOG_MESSAGE now always sends complete lines
|
2014-10-08 12:15:14 +00:00
|
|
|
- introduce numeric log levels (mpv_log_level)
|
2015-09-10 12:08:10 +00:00
|
|
|
--- mpv 0.6.0 ---
|
client API, X11: change default keyboard input handling again
Commit 64b7811c tried to do the "right thing" with respect to whether
keyboard input should be enabled or not. It turns out that X11 does
something stupid by design. All modern toolkits work around this native
X11 behavior, but embedding breaks these workarounds.
The only way to handle this correctly is the XEmbed protocol. It needs
to be supported by the toolkit, and probably also some mpv support. But
Qt has inconsistent support for it. In Qt 4, a X11 specific embedding
widget was needed. Qt 5.0 doesn't support it at all. Qt 5.1 apparently
supports it via QWindow, but if it really does, I couldn't get it to
work.
So add a hack instead. The new --input-x11-keyboard option controls
whether mpv should enable keyboard input on the X11 window or not. In
the command line player, it's enabled by default, but in libmpv it's
disabled.
This hack has the same problem as all previous embedding had: move the
mouse outside of the window, and you don't get keyboard input anymore.
Likewise, mpv will steal all keyboard input from the parent application
as long as the mouse is inside of the mpv window.
Also see issue #1090.
2014-09-28 18:11:00 +00:00
|
|
|
1.5 - change in X11 and "--wid" behavior again. The previous change didn't
|
|
|
|
work as expected, and now the behavior can be explicitly controlled
|
|
|
|
with the "input-x11-keyboard" option. This is only a temporary
|
|
|
|
measure until XEmbed is implemented and confirmed working.
|
2014-10-09 16:28:37 +00:00
|
|
|
Note: in 1.6, "input-x11-keyboard" was renamed to "input-vo-keyboard",
|
|
|
|
although the old option name still works.
|
2014-08-31 12:26:31 +00:00
|
|
|
1.4 - subtle change in X11 and "--wid" behavior
|
client API, X11: change default keyboard input handling again
Commit 64b7811c tried to do the "right thing" with respect to whether
keyboard input should be enabled or not. It turns out that X11 does
something stupid by design. All modern toolkits work around this native
X11 behavior, but embedding breaks these workarounds.
The only way to handle this correctly is the XEmbed protocol. It needs
to be supported by the toolkit, and probably also some mpv support. But
Qt has inconsistent support for it. In Qt 4, a X11 specific embedding
widget was needed. Qt 5.0 doesn't support it at all. Qt 5.1 apparently
supports it via QWindow, but if it really does, I couldn't get it to
work.
So add a hack instead. The new --input-x11-keyboard option controls
whether mpv should enable keyboard input on the X11 window or not. In
the command line player, it's enabled by default, but in libmpv it's
disabled.
This hack has the same problem as all previous embedding had: move the
mouse outside of the window, and you don't get keyboard input anymore.
Likewise, mpv will steal all keyboard input from the parent application
as long as the mouse is inside of the mpv window.
Also see issue #1090.
2014-09-28 18:11:00 +00:00
|
|
|
(this change was added to 0.5.2, and broke some things, see #1090)
|
2015-09-10 12:08:10 +00:00
|
|
|
--- mpv 0.5.0 ---
|
2014-08-05 00:23:14 +00:00
|
|
|
1.3 - add MPV_MAKE_VERSION()
|
2014-07-06 17:05:59 +00:00
|
|
|
1.2 - remove "stream-time-pos" property (no replacement)
|
2014-07-02 23:24:41 +00:00
|
|
|
1.1 - remap dvdnav:// to dvd://
|
|
|
|
- add "--cache-file", "--cache-file-size"
|
|
|
|
- add "--colormatrix-primaries" (and property)
|
|
|
|
- add "primaries" sub-field to image format properties
|
|
|
|
- add "playback-time" property
|
|
|
|
- extend the "--start" option; a leading "+", which was previously
|
|
|
|
insignificant is now significant
|
|
|
|
- add "cache-free" and "cache-used" properties
|
|
|
|
- OSX: the "coreaudio" AO spdif code is split into a separate AO
|
2015-09-10 12:08:10 +00:00
|
|
|
--- mpv 0.4.0 ---
|
2014-07-02 23:24:41 +00:00
|
|
|
1.0 - the API is declared stable
|
2014-07-06 17:05:45 +00:00
|
|
|
|