mirror of https://github.com/mpv-player/mpv
parent
24bed9b949
commit
292a5868cb
|
@ -27,7 +27,7 @@ that you get for free. In some cases, these overlapped with custom waf options.
|
||||||
supported in the meson build. Instead, pass the generic pkg-config values
|
supported in the meson build. Instead, pass the generic pkg-config values
|
||||||
such as ``lua52``, ``lua5.2``, etc.
|
such as ``lua52``, ``lua5.2``, etc.
|
||||||
* ``--lgpl`` was changed to ``gpl``. If ``gpl`` is false, the build is LGPL2.1+.
|
* ``--lgpl`` was changed to ``gpl``. If ``gpl`` is false, the build is LGPL2.1+.
|
||||||
* ``--tests`` was removed since unit tests now explictly require meson to run
|
* ``--tests`` was removed since unit tests now explicitly require meson to run
|
||||||
|
|
||||||
### Boolean Options
|
### Boolean Options
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,7 @@ Interface changes
|
||||||
- add `--video-sync=display-tempo`
|
- add `--video-sync=display-tempo`
|
||||||
- the `start` option is no longer unconditionally written by
|
- the `start` option is no longer unconditionally written by
|
||||||
watch-later. It is still written by default but you may
|
watch-later. It is still written by default but you may
|
||||||
need to explictly add `start` depending on how you have
|
need to explicitly add `start` depending on how you have
|
||||||
`--watch-later-options` configured.
|
`--watch-later-options` configured.
|
||||||
- add `--vd-lavc-dr=auto` and make it the default
|
- add `--vd-lavc-dr=auto` and make it the default
|
||||||
- add support for the fractional scale protocol in wayland
|
- add support for the fractional scale protocol in wayland
|
||||||
|
|
|
@ -186,7 +186,7 @@ character at the value.
|
||||||
|
|
||||||
Custom quotes also take the content literally, but are more flexible than single
|
Custom quotes also take the content literally, but are more flexible than single
|
||||||
quotes. They start with ````` (back-quote) followed by any ASCII character,
|
quotes. They start with ````` (back-quote) followed by any ASCII character,
|
||||||
and end at the first occurance of the same pair in reverse order, e.g.
|
and end at the first occurrence of the same pair in reverse order, e.g.
|
||||||
```-foo-``` or ````bar````. The final pair sequence is not allowed at the
|
```-foo-``` or ````bar````. The final pair sequence is not allowed at the
|
||||||
value - in these examples ``-``` and `````` respectively. In the second
|
value - in these examples ``-``` and `````` respectively. In the second
|
||||||
example the last character of the value also can't be a back-quote.
|
example the last character of the value also can't be a back-quote.
|
||||||
|
@ -1097,7 +1097,7 @@ Input Commands that are Possibly Subject to Change
|
||||||
Before mpv 0.18.1, you had to do manual "double buffering" when updating
|
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
|
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
|
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.
|
memory indicated by the command's arguments after the command returns.
|
||||||
If you want to use this command before mpv 0.18.1, reads the old docs
|
If you want to use this command before mpv 0.18.1, reads the old docs
|
||||||
to see how to handle this correctly.
|
to see how to handle this correctly.
|
||||||
|
|
||||||
|
@ -1389,7 +1389,7 @@ Input Commands that are Possibly Subject to Change
|
||||||
|
|
||||||
This was mostly created for network streams. For local files, there may
|
This was mostly created for network streams. For local files, there may
|
||||||
be much better methods to create excerpts and such. There are tons of
|
be much better methods to create excerpts and such. There are tons of
|
||||||
much more user-friendly Lua scripts, that will reencode parts of a file
|
much more user-friendly Lua scripts, that will re-encode parts of a file
|
||||||
by spawning a separate instance of ``ffmpeg``. With network streams,
|
by spawning a separate instance of ``ffmpeg``. With network streams,
|
||||||
this is not that easily possible, as the stream would have to be
|
this is not that easily possible, as the stream would have to be
|
||||||
downloaded again. Even if ``--stream-record`` is used to record the
|
downloaded again. Even if ``--stream-record`` is used to record the
|
||||||
|
@ -2795,7 +2795,7 @@ Property list
|
||||||
Name of the Nth entry. Available if the playlist file contains
|
Name of the Nth entry. Available if the playlist file contains
|
||||||
such fields and mpv's parser supports it for the given
|
such fields and mpv's parser supports it for the given
|
||||||
playlist format, or if the playlist entry has been opened before and a
|
playlist format, or if the playlist entry has been opened before and a
|
||||||
media-title other then then filename has been aquired.
|
media-title other then then filename has been acquired.
|
||||||
|
|
||||||
``playlist/N/id``
|
``playlist/N/id``
|
||||||
Unique ID for this entry. This is an automatically assigned integer ID
|
Unique ID for this entry. This is an automatically assigned integer ID
|
||||||
|
|
|
@ -260,7 +260,7 @@ Playback Control
|
||||||
|
|
||||||
The way older versions of mpv played playlist files via ``--playlist``
|
The way older versions of mpv played playlist files via ``--playlist``
|
||||||
was not safe against maliciously constructed files. Such files may
|
was not safe against maliciously constructed files. Such files may
|
||||||
trigger harmful actions. This has been the case for all verions of
|
trigger harmful actions. This has been the case for all versions of
|
||||||
mpv prior to 0.31.0, and all MPlayer versions, but unfortunately this
|
mpv prior to 0.31.0, and all MPlayer versions, but unfortunately this
|
||||||
fact was not well documented earlier, and some people have even
|
fact was not well documented earlier, and some people have even
|
||||||
misguidedly recommended the use of ``--playlist`` with untrusted
|
misguidedly recommended the use of ``--playlist`` with untrusted
|
||||||
|
@ -1253,7 +1253,7 @@ Video
|
||||||
:nvdec: requires ``--vo=gpu`` (Any platform CUDA is available)
|
:nvdec: requires ``--vo=gpu`` (Any platform CUDA is available)
|
||||||
:nvdec-copy: copies video back to system RAM (Any platform CUDA is available)
|
:nvdec-copy: copies video back to system RAM (Any platform CUDA is available)
|
||||||
:drm: requires ``--vo=gpu`` (Linux only)
|
:drm: requires ``--vo=gpu`` (Linux only)
|
||||||
:drm-copy: copies video back to system RAM (Linux ony)
|
:drm-copy: copies video back to system RAM (Linux only)
|
||||||
|
|
||||||
Other hwdecs (only use if you know you have to):
|
Other hwdecs (only use if you know you have to):
|
||||||
|
|
||||||
|
@ -3076,7 +3076,7 @@ Window
|
||||||
|
|
||||||
:window: On top of all other windows.
|
:window: On top of all other windows.
|
||||||
:system: On top of system elements like Taskbar, Menubar and Dock.
|
:system: On top of system elements like Taskbar, Menubar and Dock.
|
||||||
:desktop: On top of the Dekstop behind windows and Desktop icons.
|
:desktop: On top of the Desktop behind windows and Desktop icons.
|
||||||
:level: A level as integer.
|
:level: A level as integer.
|
||||||
|
|
||||||
``--focus-on-open``, ``--no-focus-on-open``
|
``--focus-on-open``, ``--no-focus-on-open``
|
||||||
|
@ -6103,7 +6103,7 @@ them.
|
||||||
|
|
||||||
``<material>`` can be one of the following:
|
``<material>`` can be one of the following:
|
||||||
|
|
||||||
:titlebar: The standard macOS titel bar material.
|
:titlebar: The standard macOS title bar material.
|
||||||
:selection: The standard macOS selection material.
|
:selection: The standard macOS selection material.
|
||||||
:menu: The standard macOS menu material. (macOS 10.11+)
|
:menu: The standard macOS menu material. (macOS 10.11+)
|
||||||
:popover: The standard macOS popover material. (macOS 10.11+)
|
:popover: The standard macOS popover material. (macOS 10.11+)
|
||||||
|
|
|
@ -124,7 +124,7 @@ int mp_hwupload_find_upload_format(struct mp_hwupload *u, int imgfmt)
|
||||||
select_format(p, imgfmt, &sw, &up);
|
select_format(p, imgfmt, &sw, &up);
|
||||||
// In th case where the imgfmt is not natively supported, it must be
|
// In th case where the imgfmt is not natively supported, it must be
|
||||||
// converted, either before or during upload. If the imgfmt is supported as
|
// converted, either before or during upload. If the imgfmt is supported as
|
||||||
// an hw input format, then prefer that, and if the upload has to do implict
|
// an hw input format, then prefer that, and if the upload has to do implicit
|
||||||
// conversion, that's fine. On the other hand, if the imgfmt is not a
|
// conversion, that's fine. On the other hand, if the imgfmt is not a
|
||||||
// supported input format, then pick the output format as the conversion
|
// supported input format, then pick the output format as the conversion
|
||||||
// target to avoid doing two conversions (one before upload, and one during
|
// target to avoid doing two conversions (one before upload, and one during
|
||||||
|
|
|
@ -63,7 +63,7 @@ bool mp_pin_out_has_data(struct mp_pin *p);
|
||||||
// frame is available, but to get proper data flow in filters, you should
|
// frame is available, but to get proper data flow in filters, you should
|
||||||
// probably follow the preferred conventions.)
|
// probably follow the preferred conventions.)
|
||||||
// If no frame is returned, a frame is automatically requested via
|
// If no frame is returned, a frame is automatically requested via
|
||||||
// mp_pin_out_request_data() (so it might be retuned in the future).
|
// mp_pin_out_request_data() (so it might be returned in the future).
|
||||||
// If a frame is returned, no new frame is automatically requested (this is
|
// If a frame is returned, no new frame is automatically requested (this is
|
||||||
// usually not wanted, because it could lead to additional buffering).
|
// usually not wanted, because it could lead to additional buffering).
|
||||||
// This is guaranteed to return a non-NONE frame if mp_pin_out_has_data()
|
// This is guaranteed to return a non-NONE frame if mp_pin_out_has_data()
|
||||||
|
|
|
@ -98,7 +98,7 @@ struct mp_filter_info {
|
||||||
bool (*command)(struct mp_filter *f, struct mp_filter_command *cmd);
|
bool (*command)(struct mp_filter *f, struct mp_filter_command *cmd);
|
||||||
};
|
};
|
||||||
|
|
||||||
// Return the mp_filter_info this filter was crated with.
|
// Return the mp_filter_info this filter was created with.
|
||||||
const struct mp_filter_info *mp_filter_get_info(struct mp_filter *f);
|
const struct mp_filter_info *mp_filter_get_info(struct mp_filter *f);
|
||||||
|
|
||||||
// Create a filter instance. Returns NULL on failure.
|
// Create a filter instance. Returns NULL on failure.
|
||||||
|
|
|
@ -119,7 +119,7 @@ typedef int64_t (*mpv_stream_cb_read_fn)(void *cookie, char *buf, uint64_t nbyte
|
||||||
*
|
*
|
||||||
* @param cookie opaque cookie identifying the stream,
|
* @param cookie opaque cookie identifying the stream,
|
||||||
* returned from mpv_stream_cb_open_fn
|
* returned from mpv_stream_cb_open_fn
|
||||||
* @param offset target absolut stream position
|
* @param offset target absolute stream position
|
||||||
* @return the resulting offset of the stream
|
* @return the resulting offset of the stream
|
||||||
* MPV_ERROR_UNSUPPORTED or MPV_ERROR_GENERIC if the seek failed
|
* MPV_ERROR_UNSUPPORTED or MPV_ERROR_GENERIC if the seek failed
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1756,7 +1756,7 @@ static int parse_keyvalue_list(struct mp_log *log, const m_option_t *opt,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (param.len) {
|
if (param.len) {
|
||||||
mp_err(log, "Unparseable garbage at end of option value: '%.*s'\n",
|
mp_err(log, "Unparsable garbage at end of option value: '%.*s'\n",
|
||||||
BSTR_P(param));
|
BSTR_P(param));
|
||||||
r = M_OPT_INVALID;
|
r = M_OPT_INVALID;
|
||||||
}
|
}
|
||||||
|
@ -1948,7 +1948,7 @@ const m_option_type_t m_option_type_dummy_flag = {
|
||||||
|
|
||||||
// Read s sub-option name, or a positional sub-opt value.
|
// Read s sub-option name, or a positional sub-opt value.
|
||||||
// termset is a string containing the set of chars that terminate an option.
|
// termset is a string containing the set of chars that terminate an option.
|
||||||
// Return 0 on succes, M_OPT_ error code otherwise.
|
// Return 0 on success, M_OPT_ error code otherwise.
|
||||||
// optname is for error reporting.
|
// optname is for error reporting.
|
||||||
static int read_subparam(struct mp_log *log, bstr optname, char *termset,
|
static int read_subparam(struct mp_log *log, bstr optname, char *termset,
|
||||||
bstr *str, bstr *out_subparam)
|
bstr *str, bstr *out_subparam)
|
||||||
|
@ -2274,7 +2274,7 @@ void m_geometry_apply(int *xpos, int *ypos, int *widw, int *widh,
|
||||||
*widw = *widh * asp;
|
*widw = *widh * asp;
|
||||||
}
|
}
|
||||||
// Center window after resize. If valid x:y values are passed to
|
// Center window after resize. If valid x:y values are passed to
|
||||||
// geometry, then those values will be overriden.
|
// geometry, then those values will be overridden.
|
||||||
*xpos += prew / 2 - *widw / 2;
|
*xpos += prew / 2 - *widw / 2;
|
||||||
*ypos += preh / 2 - *widh / 2;
|
*ypos += preh / 2 - *widh / 2;
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,7 +69,7 @@ int m_config_parse(m_config_t *config, const char *location, bstr data,
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
if (skip_ws(&line)) {
|
if (skip_ws(&line)) {
|
||||||
MP_ERR(config, "%s unparseable extra characters: '%.*s'\n",
|
MP_ERR(config, "%s unparsable extra characters: '%.*s'\n",
|
||||||
loc, BSTR_P(line));
|
loc, BSTR_P(line));
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
@ -120,7 +120,7 @@ int m_config_parse(m_config_t *config, const char *location, bstr data,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (skip_ws(&line)) {
|
if (skip_ws(&line)) {
|
||||||
MP_ERR(config, "%s unparseable extra characters: '%.*s'\n",
|
MP_ERR(config, "%s unparsable extra characters: '%.*s'\n",
|
||||||
loc, BSTR_P(line));
|
loc, BSTR_P(line));
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
|
@ -452,7 +452,7 @@ local elements = {}
|
||||||
|
|
||||||
function prepare_elements()
|
function prepare_elements()
|
||||||
|
|
||||||
-- remove elements without layout or invisble
|
-- remove elements without layout or invisible
|
||||||
local elements2 = {}
|
local elements2 = {}
|
||||||
for n, element in pairs(elements) do
|
for n, element in pairs(elements) do
|
||||||
if not (element.layout == nil) and (element.visible) then
|
if not (element.layout == nil) and (element.visible) then
|
||||||
|
@ -2325,7 +2325,7 @@ function render()
|
||||||
|
|
||||||
-- init management
|
-- init management
|
||||||
if state.active_element then
|
if state.active_element then
|
||||||
-- mouse is held down on some element - keep ticking and igore initReq
|
-- mouse is held down on some element - keep ticking and ignore initReq
|
||||||
-- till it's released, or else the mouse-up (click) will misbehave or
|
-- till it's released, or else the mouse-up (click) will misbehave or
|
||||||
-- get ignored. that's because osc_init() recreates the osc elements,
|
-- get ignored. that's because osc_init() recreates the osc elements,
|
||||||
-- but mouse handling depends on the elements staying unmodified
|
-- but mouse handling depends on the elements staying unmodified
|
||||||
|
|
|
@ -431,7 +431,7 @@ local function keyname_cells(k)
|
||||||
end
|
end
|
||||||
|
|
||||||
local function get_kbinfo_lines(width)
|
local function get_kbinfo_lines(width)
|
||||||
-- active keys: only highest priotity of each key, and not our (stats) keys
|
-- active keys: only highest priority of each key, and not our (stats) keys
|
||||||
local bindings = mp.get_property_native("input-bindings", {})
|
local bindings = mp.get_property_native("input-bindings", {})
|
||||||
local active = {} -- map: key-name -> bind-info
|
local active = {} -- map: key-name -> bind-info
|
||||||
for _, bind in pairs(bindings) do
|
for _, bind in pairs(bindings) do
|
||||||
|
|
|
@ -598,7 +598,7 @@ static void update_avsync_before_frame(struct MPContext *mpctx)
|
||||||
|
|
||||||
if (opts->autosync) {
|
if (opts->autosync) {
|
||||||
/* Smooth reported playback position from AO by averaging
|
/* Smooth reported playback position from AO by averaging
|
||||||
* it with the value expected based on previus value and
|
* it with the value expected based on previous value and
|
||||||
* time elapsed since then. May help smooth video timing
|
* time elapsed since then. May help smooth video timing
|
||||||
* with audio output that have inaccurate position reporting.
|
* with audio output that have inaccurate position reporting.
|
||||||
* This is badly implemented; the behavior of the smoothing
|
* This is badly implemented; the behavior of the smoothing
|
||||||
|
|
|
@ -107,7 +107,7 @@ endif
|
||||||
# Will need to be manually updated when ffmpeg adds/removes more formats in the future.
|
# Will need to be manually updated when ffmpeg adds/removes more formats in the future.
|
||||||
if libavutil.version().version_compare('>= 57.39.101')
|
if libavutil.version().version_compare('>= 57.39.101')
|
||||||
|
|
||||||
# The CI can randomly fail if libavutil isn't explictly linked again here.
|
# The CI can randomly fail if libavutil isn't explicitly linked again here.
|
||||||
img_format = executable('img-format', 'img_format.c', include_directories: incdir,
|
img_format = executable('img-format', 'img_format.c', include_directories: incdir,
|
||||||
dependencies: libavutil, link_with: [img_utils, test_utils])
|
dependencies: libavutil, link_with: [img_utils, test_utils])
|
||||||
test('img-format', img_format, args: [refdir, outdir], suite: 'ffmpeg')
|
test('img-format', img_format, args: [refdir, outdir], suite: 'ffmpeg')
|
||||||
|
|
|
@ -180,7 +180,7 @@ static int recreate_video_proc(struct mp_filter *vf)
|
||||||
rindex = 0;
|
rindex = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TOOD: so, how do we select which rate conversion mode the processor uses?
|
// TODO: so, how do we select which rate conversion mode the processor uses?
|
||||||
|
|
||||||
hr = ID3D11VideoDevice_CreateVideoProcessor(p->video_dev, p->vp_enum, rindex,
|
hr = ID3D11VideoDevice_CreateVideoProcessor(p->video_dev, p->vp_enum, rindex,
|
||||||
&p->video_proc);
|
&p->video_proc);
|
||||||
|
|
|
@ -274,7 +274,7 @@ int mp_image_hw_download_get_sw_format(struct mp_image *src)
|
||||||
return imgfmt;
|
return imgfmt;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Copies the contents of the HW surface src to system memory and retuns it.
|
// Copies the contents of the HW surface src to system memory and returns it.
|
||||||
// If swpool is not NULL, it's used to allocate the target image.
|
// If swpool is not NULL, it's used to allocate the target image.
|
||||||
// src must be a hw surface with a AVHWFramesContext attached.
|
// src must be a hw surface with a AVHWFramesContext attached.
|
||||||
// The returned image is cropped as needed.
|
// The returned image is cropped as needed.
|
||||||
|
|
|
@ -2021,7 +2021,7 @@ static ra_timer *timer_create(struct ra *ra)
|
||||||
|
|
||||||
// Measuring duration in D3D11 requires three queries: start and end
|
// Measuring duration in D3D11 requires three queries: start and end
|
||||||
// timestamps, and a disjoint query containing a flag which says whether
|
// timestamps, and a disjoint query containing a flag which says whether
|
||||||
// the timestamps are usable or if a discontinuity occured between them,
|
// the timestamps are usable or if a discontinuity occurred between them,
|
||||||
// like a change in power state or clock speed. The disjoint query also
|
// like a change in power state or clock speed. The disjoint query also
|
||||||
// contains the timer frequency, so the timestamps are useless without it.
|
// contains the timer frequency, so the timestamps are useless without it.
|
||||||
hr = ID3D11Device_CreateQuery(p->dev,
|
hr = ID3D11Device_CreateQuery(p->dev,
|
||||||
|
|
|
@ -103,5 +103,5 @@ struct ra_swapchain_fns {
|
||||||
struct ra_ctx *ra_ctx_create(struct vo *vo, struct ra_ctx_opts opts);
|
struct ra_ctx *ra_ctx_create(struct vo *vo, struct ra_ctx_opts opts);
|
||||||
void ra_ctx_destroy(struct ra_ctx **ctx);
|
void ra_ctx_destroy(struct ra_ctx **ctx);
|
||||||
|
|
||||||
// Special case of creating a ra_ctx while specifiying a specific context by name.
|
// Special case of creating a ra_ctx while specifying a specific context by name.
|
||||||
struct ra_ctx *ra_ctx_create_by_name(struct vo *vo, const char *name);
|
struct ra_ctx *ra_ctx_create_by_name(struct vo *vo, const char *name);
|
||||||
|
|
|
@ -461,7 +461,7 @@ struct ra_fns {
|
||||||
|
|
||||||
// Copy a sub-rectangle from one texture to another. The source/dest region
|
// Copy a sub-rectangle from one texture to another. The source/dest region
|
||||||
// is always within the texture bounds. Areas outside the dest region are
|
// is always within the texture bounds. Areas outside the dest region are
|
||||||
// preserved. The formats of the textures must be losely compatible. The
|
// preserved. The formats of the textures must be loosely compatible. The
|
||||||
// dst texture can be a swapchain framebuffer, but src can not. Only 2D
|
// dst texture can be a swapchain framebuffer, but src can not. Only 2D
|
||||||
// textures are supported.
|
// textures are supported.
|
||||||
// The textures must have blit_src and blit_dst set, respectively.
|
// The textures must have blit_src and blit_dst set, respectively.
|
||||||
|
|
|
@ -236,7 +236,7 @@ static int mapper_map(struct ra_hwdec_mapper *mapper)
|
||||||
}
|
}
|
||||||
|
|
||||||
// We can handle composed formats if the total number of planes is still
|
// We can handle composed formats if the total number of planes is still
|
||||||
// equal the number of planes we expect. Complex formats with auxilliary
|
// equal the number of planes we expect. Complex formats with auxiliary
|
||||||
// planes cannot be supported.
|
// planes cannot be supported.
|
||||||
|
|
||||||
int num_returned_planes = 0;
|
int num_returned_planes = 0;
|
||||||
|
|
|
@ -301,7 +301,7 @@ static int mapper_map(struct ra_hwdec_mapper *mapper)
|
||||||
}
|
}
|
||||||
|
|
||||||
// We can handle composed formats if the total number of planes is still
|
// We can handle composed formats if the total number of planes is still
|
||||||
// equal the number of planes we expect. Complex formats with auxilliary
|
// equal the number of planes we expect. Complex formats with auxiliary
|
||||||
// planes cannot be supported.
|
// planes cannot be supported.
|
||||||
if (p->num_planes != 0 && p->num_planes != num_returned_planes) {
|
if (p->num_planes != 0 && p->num_planes != num_returned_planes) {
|
||||||
mp_msg(mapper->log, p_owner->probing_formats ? MSGL_DEBUG : MSGL_ERR,
|
mp_msg(mapper->log, p_owner->probing_formats ? MSGL_DEBUG : MSGL_ERR,
|
||||||
|
|
|
@ -132,7 +132,7 @@ enum mp_voctrl {
|
||||||
VOCTRL_EXTERNAL_RESIZE,
|
VOCTRL_EXTERNAL_RESIZE,
|
||||||
};
|
};
|
||||||
|
|
||||||
// Helper to expose what kind of content is curently playing to the VO.
|
// Helper to expose what kind of content is currently playing to the VO.
|
||||||
enum mp_content_type {
|
enum mp_content_type {
|
||||||
MP_CONTENT_NONE, // used for force-window
|
MP_CONTENT_NONE, // used for force-window
|
||||||
MP_CONTENT_IMAGE,
|
MP_CONTENT_IMAGE,
|
||||||
|
|
|
@ -570,7 +570,7 @@ static bool change_d3d_backbuffer(d3d_priv *priv)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (FAILED(IDirect3DDevice9_Reset(priv->d3d_device, &present_params))) {
|
if (FAILED(IDirect3DDevice9_Reset(priv->d3d_device, &present_params))) {
|
||||||
MP_ERR(priv, "Reseting Direct3D device failed.\n");
|
MP_ERR(priv, "Resetting Direct3D device failed.\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -200,7 +200,7 @@ static void resize(struct vo *vo)
|
||||||
if (wl->viewport)
|
if (wl->viewport)
|
||||||
wp_viewport_set_destination(wl->viewport, 2 * dst.x0 + mp_rect_w(dst), 2 * dst.y0 + mp_rect_h(dst));
|
wp_viewport_set_destination(wl->viewport, 2 * dst.x0 + mp_rect_w(dst), 2 * dst.y0 + mp_rect_h(dst));
|
||||||
|
|
||||||
//now we restore pan for video viewport caculation
|
//now we restore pan for video viewport calculation
|
||||||
vo->opts->pan_x = vo_opts->pan_x;
|
vo->opts->pan_x = vo_opts->pan_x;
|
||||||
vo->opts->pan_y = vo_opts->pan_y;
|
vo->opts->pan_y = vo_opts->pan_y;
|
||||||
vo_get_src_dst_rects(vo, &src, &dst, &osd);
|
vo_get_src_dst_rects(vo, &src, &dst, &osd);
|
||||||
|
|
|
@ -1141,7 +1141,7 @@ static void video_screenshot(struct vo *vo, struct voctrl_screenshot *args)
|
||||||
status = pl_queue_update(p->queue, &mix, pl_queue_params(.pts = p->last_pts));
|
status = pl_queue_update(p->queue, &mix, pl_queue_params(.pts = p->last_pts));
|
||||||
assert(status != PL_QUEUE_EOF);
|
assert(status != PL_QUEUE_EOF);
|
||||||
if (status == PL_QUEUE_ERR) {
|
if (status == PL_QUEUE_ERR) {
|
||||||
MP_ERR(vo, "Unknown error occured while trying to take screenshot!\n");
|
MP_ERR(vo, "Unknown error occurred while trying to take screenshot!\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!mix.num_frames) {
|
if (!mix.num_frames) {
|
||||||
|
|
|
@ -161,7 +161,7 @@ static SIXELSTATUS prepare_dynamic_palette(struct vo *vo)
|
||||||
SIXELSTATUS status = SIXEL_FALSE;
|
SIXELSTATUS status = SIXEL_FALSE;
|
||||||
struct priv *priv = vo->priv;
|
struct priv *priv = vo->priv;
|
||||||
|
|
||||||
/* create histgram and construct color palette
|
/* create histogram and construct color palette
|
||||||
* with median cut algorithm. */
|
* with median cut algorithm. */
|
||||||
status = sixel_dither_initialize(priv->testdither, priv->buffer,
|
status = sixel_dither_initialize(priv->testdither, priv->buffer,
|
||||||
priv->width, priv->height,
|
priv->width, priv->height,
|
||||||
|
|
|
@ -276,7 +276,7 @@ static void pointer_handle_button(void *data, struct wl_pointer *wl_pointer,
|
||||||
} else {
|
} else {
|
||||||
window_move(wl, serial);
|
window_move(wl, serial);
|
||||||
}
|
}
|
||||||
// Explictly send an UP event after the client finishes a move/resize
|
// Explicitly send an UP event after the client finishes a move/resize
|
||||||
mp_input_put_key(wl->vo->input_ctx, button | MP_KEY_STATE_UP);
|
mp_input_put_key(wl->vo->input_ctx, button | MP_KEY_STATE_UP);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1073,7 +1073,7 @@ static void feedback_presented(void *data, struct wp_presentation_feedback *fbac
|
||||||
// Notes:
|
// Notes:
|
||||||
// - tv_sec_lo + tv_sec_hi is the equivalent of oml's ust
|
// - tv_sec_lo + tv_sec_hi is the equivalent of oml's ust
|
||||||
// - seq_lo + seq_hi is the equivalent of oml's msc
|
// - seq_lo + seq_hi is the equivalent of oml's msc
|
||||||
// - these values are updated everytime the compositor receives feedback.
|
// - these values are updated every time the compositor receives feedback.
|
||||||
|
|
||||||
int64_t sec = (uint64_t) tv_sec_lo + ((uint64_t) tv_sec_hi << 32);
|
int64_t sec = (uint64_t) tv_sec_lo + ((uint64_t) tv_sec_hi << 32);
|
||||||
int64_t ust = sec * 1000000LL + (uint64_t) tv_nsec / 1000;
|
int64_t ust = sec * 1000000LL + (uint64_t) tv_nsec / 1000;
|
||||||
|
@ -1443,7 +1443,7 @@ static int create_xdg_surface(struct vo_wayland_state *wl)
|
||||||
xdg_toplevel_add_listener(wl->xdg_toplevel, &xdg_toplevel_listener, wl);
|
xdg_toplevel_add_listener(wl->xdg_toplevel, &xdg_toplevel_listener, wl);
|
||||||
|
|
||||||
if (!wl->xdg_surface || !wl->xdg_toplevel) {
|
if (!wl->xdg_surface || !wl->xdg_toplevel) {
|
||||||
MP_ERR(wl, "failled to create xdg_surface and xdg_toplevel!\n");
|
MP_ERR(wl, "failed to create xdg_surface and xdg_toplevel!\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -2414,7 +2414,7 @@ void vo_wayland_wait_frame(struct vo_wayland_state *wl)
|
||||||
/* We need some vblank interval to use for the timeout in
|
/* We need some vblank interval to use for the timeout in
|
||||||
* this function. The order of preference of values to use is:
|
* this function. The order of preference of values to use is:
|
||||||
* 1. vsync duration from presentation time
|
* 1. vsync duration from presentation time
|
||||||
* 2. refresh inteval reported by presentation time
|
* 2. refresh interval reported by presentation time
|
||||||
* 3. refresh rate of the output reported by the compositor
|
* 3. refresh rate of the output reported by the compositor
|
||||||
* 4. make up crap if vblank_time is still <= 0 (better than nothing) */
|
* 4. make up crap if vblank_time is still <= 0 (better than nothing) */
|
||||||
|
|
||||||
|
|
2
wscript
2
wscript
|
@ -405,7 +405,7 @@ iconv support use --disable-iconv.",
|
||||||
'func': check_pkg_config('rubberband >= 3.0.0'),
|
'func': check_pkg_config('rubberband >= 3.0.0'),
|
||||||
}, {
|
}, {
|
||||||
'name': 'zimg-st428',
|
'name': 'zimg-st428',
|
||||||
'desc': 'ZIMG suport for ZIMG_TRANSFER_ST428',
|
'desc': 'ZIMG support for ZIMG_TRANSFER_ST428',
|
||||||
'func': check_pkg_config('zimg', '>= 3.0.5'),
|
'func': check_pkg_config('zimg', '>= 3.0.5'),
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
Loading…
Reference in New Issue