mpv: Update to 0.32.0

This commit is contained in:
Michael Forney
2020-01-26 15:27:45 -08:00
parent 58dbab7ebf
commit 0b037c3c65
6 changed files with 124 additions and 61 deletions
+1
View File
@@ -150,6 +150,7 @@
#define HAVE_GL_DXINTEROP_D3D9 0
#define HAVE_FFNVCODEC 0
#define HAVE_CUDA_HWACCEL 0
#define HAVE_CUDA_INTEROP 0
#define HAVE_RPI_MMAL 0
#define HAVE_WIN32_EXECUTABLE 0
#define HAVE_MACOS_TOUCHBAR 0
+112 -51
View File
@@ -329,7 +329,7 @@ the \fIXXX\fP option or if \fIXXX\fP is compiled in.
.SS Legacy option syntax
.sp
The \fB\-\-option=value\fP syntax is not strictly enforced, and the alternative
legacy syntax \fB\-option value\fP and \fB\-\-option value\fP will also work. This is
legacy syntax \fB\-option value\fP and \fB\-option=value\fP will also work. This is
mostly for compatibility with MPlayer. Using these should be avoided. Their
semantics can change any time in the future.
.sp
@@ -339,9 +339,15 @@ because \fB\-\-fs\fP is a flag option that requires no parameter. If an option
changes and its parameter becomes optional, then a command line using the
alternative syntax will break.
.sp
Currently, the parser makes no difference whether an option starts with \fB\-\-\fP
or a single \fB\-\fP\&. This might also change in the future, and \fB\-\-option value\fP
might always interpret \fBvalue\fP as filename in order to reduce ambiguities.
Until mpv 0.31.0, there was no difference whether an option started with \fB\-\-\fP
or a single \fB\-\fP\&. Newer mpv releases strictly expect that you pass the option
value after a \fB=\fP\&. For example, before \fBmpv \-\-log\-file f.txt\fP would write
a log to \fBf.txt\fP, but now this command line fails, as \fB\-\-log\-file\fP expects
an option value, and \fBf.txt\fP is simply considered a normal file to be played
(as in \fBmpv f.txt\fP).
.sp
The future plan is that \fB\-option value\fP will not work anymore, and options
with a single \fB\-\fP behave the same as \fB\-\-\fP options.
.SS Escaping spaces and other special characters
.sp
Keep in mind that the shell will partially parse and mangle the arguments you
@@ -2595,18 +2601,18 @@ requires \fB\-\-vo=gpu\fP (Raspberry Pi only \- default if available)
.B mmal\-copy
copies video back to system RAM (Raspberry Pi only)
.TP
.B cuda
requires \fB\-\-vo=gpu\fP (Any platform CUDA is available)
.TP
.B cuda\-copy
copies video back to system RAM (Any platform CUDA is available)
.TP
.B nvdec
requires \fB\-\-vo=gpu\fP (Any platform CUDA is available)
.TP
.B nvdec\-copy
copies video back to system RAM (Any platform CUDA is available)
.TP
.B cuda
requires \fB\-\-vo=gpu\fP (Any platform CUDA is available)
.TP
.B cuda\-copy
copies video back to system RAM (Any platform CUDA is available)
.TP
.B crystalhd
copies video back to system RAM (Any platform supported by hardware)
.TP
@@ -2644,35 +2650,33 @@ allow CPU processing with video filters. This mode works with all video
filters and VOs.
.sp
Because these copy the decoded video back to system RAM, they\(aqre often less
less efficient than the direct modes, and may not help too much over
software decoding.
efficient than the direct modes, and may not help too much over software
decoding.
.sp
\fBNOTE:\fP
.INDENT 7.0
.INDENT 3.5
Most non\-copy methods only work with the OpenGL GPU backend. Currently,
only the \fBnvdec\fP and \fBcuda\fP methods work with Vulkan.
only the \fBvaapi\fP, \fBnvdec\fP and \fBcuda\fP methods work with Vulkan.
.UNINDENT
.UNINDENT
.sp
The \fBvaapi\fP mode, if used with \fB\-\-vo=gpu\fP, requires Mesa 11 and most
The \fBvaapi\fP mode, if used with \fB\-\-vo=gpu\fP, requires Mesa 11, and most
likely works with Intel and AMD GPUs only. It also requires the opengl EGL
backend.
.sp
The \fBcuda\fP and \fBcuda\-copy\fP modes provides deinterlacing in the decoder
which is useful as there is no other deinterlacing mechanism in the gpu
output path. To use this deinterlacing you must pass the option:
\fBnvdec\fP and \fBnvdec\-copy\fP are the newest, and recommended method to do
hardware decoding on Nvidia GPUs.
.sp
\fBcuda\fP and \fBcuda\-copy\fP are an older implementation of hardware decoding
on Nvidia GPUs that uses Nvidia\(aqs bitstream parsers rather than FFmpeg\(aqs.
This can lead to feature deficiencies, such as incorrect playback of HDR
content, and \fBnvdec\fP/\fBnvdec\-copy\fP should always be preferred unless you
specifically need Nvidia\(aqs deinterlacing algorithms. To use this
deinterlacing you must pass the option:
\fBvd\-lavc\-o=deint=[weave|bob|adaptive]\fP\&.
Pass \fBweave\fP (or leave the option unset) to not attempt any
deinterlacing. \fBcuda\fP should always be preferred over \fBcuda\-copy\fP unless
the \fBgpu\fP vo is not being used or filters are required. Using \fBnvdec\fP
should be preferred on Nvidia hardware.
.sp
\fBnvdec\fP is a newer implementation of CUVID/CUDA decoding, which uses the
FFmpeg decoders for file parsing. Experimental, is known not to correctly
check whether decoding is supported by the hardware at all. Deinterlacing
is not supported. Since this uses FFmpeg\(aqs codec parsers, it is expected
that this generally causes fewer issues than \fBcuda\fP\&.
deinterlacing.
.INDENT 7.0
.INDENT 3.5
.IP "Quality reduction with hardware decoding"
@@ -2691,10 +2695,10 @@ chroma scalers instead of the one specified by \fB\-\-cscale\fP\&. In other
cases, hardware decoding can also reduce the bit depth of the decoded
image, which can introduce banding or precision loss for 10\-bit files.
.sp
\fBvdpau\fP is usually safe, except for 10 bit video. If deinterlacing
enabled (or the \fBvdpaupp\fP video filter is active in general), it
forces RGB conversion. The latter currently does not treat certain
colorspaces like BT.2020 correctly.
\fBvdpau\fP always does RGB conversion in hardware, which does not
support newer colorspaces like BT.2020 correctly. However, \fBvdpau\fP
doesn\(aqt support 10 bit or HDR encodings, so these limitations are
unlikely to be relevant.
.sp
\fBvaapi\fP and \fBd3d11va\fP are safe. Enabling deinterlacing (or simply
their respective post\-processing filters) will possibly at least reduce
@@ -2710,10 +2714,11 @@ completely ordinary video sources.
\fBrpi\fP always uses the hardware overlay renderer, even with
\fB\-\-vo=gpu\fP\&.
.sp
\fBcuda\fP should be safe, but it has been reported to corrupt the
timestamps causing glitched, flashing frames on some files. It can also
sometimes cause massive framedrops for unknown reasons. Caution is
advised.
\fBcuda\fP should usually be safe, but depending on how a file/stream
has been mixed, it has been reported to corrupt the timestamps causing
glitched, flashing frames. It can also sometimes cause massive
framedrops for unknown reasons. Caution is advised, and \fBnvdec\fP
should always be preferred.
.sp
\fBcrystalhd\fP is not safe. It always converts to 4:2:2 YUV, which
may be lossy, depending on how chroma sub\-sampling is done during
@@ -2793,17 +2798,18 @@ format, with likely no advantages.
.TP
.B \fB\-\-cuda\-decode\-device=<auto|0..>\fP
Choose the GPU device used for decoding when using the \fBcuda\fP or
\fBnvdec\fP hwdecs with the OpenGL GPU backend.
\fBnvdec\fP hwdecs with the OpenGL GPU backend, and with the \fBcuda\-copy\fP
or \fBnvdec\-copy\fP hwdecs in all cases.
.sp
By default, the device that is being used to provide \fBgpu\fP output will
also be used for decoding (and in the vast majority of cases, only one
GPU will be present).
For the OpenGL GPU backend, the default device used for decoding is the one
being used to provide \fBgpu\fP output (and in the vast majority of cases,
only one GPU will be present).
.sp
Note that when using the \fBcuda\-copy\fP or \fBnvdec\-copy\fP hwdec, a
different option must be passed: \fB\-\-vd\-lavc\-o=gpu=<0..>\fP\&.
For the \fBcopy\fP hwdecs, the default device will be the first device
enumerated by the CUDA libraries \- however that is done.
.sp
Note that this option is not available with the Vulkan GPU backend. With
Vulkan, decoding must always happen on the display device.
For the Vulkan GPU backend, decoding must always happen on the display
device, and this option has no effect.
.TP
.B \fB\-\-vaapi\-device=<device file>\fP
Choose the DRM device for \fBvaapi\-copy\fP\&. This should be the path to a
@@ -5373,6 +5379,18 @@ is done, playback starts. This intentionally happens before the initial
seek triggered with \fB\-\-start\fP\&. This does not change any runtime behavior
after the initial caching. This option is useless if the file cannot be
cached completely.
.TP
.B \fB\-\-rar\-list\-all\-volumes=<yes|no>\fP
When opening multi\-volume rar files, open all volumes to create a full list
of contained files (default: no). If disabled, only the archive entries
whose headers are located within the first volume are listed (and thus
played when opening a .rar file with mpv). Doing so speeds up opening, and
the typical idiotic use\-case of playing uncompressed multi\-volume rar files
that contain a single media file is made faster.
.sp
Opening is still slow, because for unknown, idiotic, and unnecessary reasons
libarchive opens all volumes anyway when playing the main file, even though
mpv iterated no archive entries yet.
.UNINDENT
.SS Input
.INDENT 0.0
@@ -10982,8 +11000,9 @@ See \fB\-\-ofopts=help\fP for a full list of supported options.
This is a key/value list option. See \fI\%List Options\fP for details.
.INDENT 7.0
.TP
.B \fB\-\-ofopts\-add=<options1[,options2,...]>\fP
Appends the options given as arguments to the options list.
.B \fB\-\-ofopts\-add=<option>\fP
Appends the option given as an argument to the options list. (Passing
multiple options is currently still possible, but deprecated.)
.TP
.B \fB\-\-ofopts=""\fP
Completely empties the options list.
@@ -11014,8 +11033,9 @@ selects 128 kbps MP3 encoding.
This is a key/value list option. See \fI\%List Options\fP for details.
.INDENT 7.0
.TP
.B \fB\-\-oacopts\-add=<options1[,options2,...]>\fP
Appends the options given as arguments to the options list.
.B \fB\-\-oacopts\-add=<option>\fP
Appends the option given as an argument to the options list. (Passing
multiple options is currently still possible, but deprecated.)
.TP
.B \fB\-\-oacopts=""\fP
Completely empties the options list.
@@ -11053,8 +11073,9 @@ selects VBR quality factor 23 for H.264 encoding.
This is a key/value list option. See \fI\%List Options\fP for details.
.INDENT 7.0
.TP
.B \fB\-\-ovcopts\-add=<options1[,options2,...]>\fP
Appends the options given as arguments to the options list.
.B \fB\-\-ovcopts\-add=<option>\fP
Appends the option given as an argument to the options list. (Passing
multiple options is currently still possible, but deprecated.)
.TP
.B \fB\-\-ovcopts=""\fP
Completely empties the options list.
@@ -11591,6 +11612,12 @@ will have after moving.)
Shuffle the playlist. This is similar to what is done on start if the
\fB\-\-shuffle\fP option is used.
.TP
.B \fBplaylist\-unshuffle\fP
Attempt to revert the previous \fBplaylist\-shuffle\fP command. This works
only once (multiple successive \fBplaylist\-unshuffle\fP commands do nothing).
May not work correctly if new recursive playlists have been opened since
a \fBplaylist\-shuffle\fP command.
.TP
.B \fBrun <command> [<arg1> [<arg2> [...]]]\fP
Run the given command. Unlike in MPlayer/mplayer2 and earlier versions of
mpv (0.2.x and older), this doesn\(aqt call the shell. Instead, the command
@@ -13489,9 +13516,42 @@ The read and write components of this option can be split up into
Last known OSD width (can be 0). This is needed if you want to use the
\fBoverlay\-add\fP command. It gives you the actual OSD size, which can be
different from the window size in some cases.
.sp
Alias to \fBosd\-dimensions/w\fP and \fBosd\-dimensions/h\fP\&.
.TP
.B \fBosd\-par\fP
Last known OSD display pixel aspect (can be 0).
.sp
Alias to \fBosd\-dimensions/osd\-par\fP\&.
.TP
.B \fBosd\-dimensions\fP
Last known OSD dimensions.
.sp
Has the following sub\-properties (which can be read as \fBMPV_FORMAT_NODE\fP
or Lua table with \fBmp.get_property_native\fP):
.INDENT 7.0
.TP
.B \fBw\fP
Size of the VO window in OSD render units (usually pixels, but may be
scaled pixels with VOs like \fBxv\fP).
.TP
.B \fBh\fP
Size of the VO window in OSD render units,
.TP
.B \fBpar\fP
Pixel aspect ratio of the OSD (usually 1).
.TP
.B \fBaspect\fP
Display aspect ratio of the VO window. (Computing from the properties
above.)
.TP
.B \fBmt\fP, \fBmb\fP, \fBml\fP, \fBmr\fP
OSD to video margins (top, bottom, left, right). This describes the
area into which the video is rendered.
.UNINDENT
.sp
Any of these properties may be unavailable or set to dummy values if the
VO window is not created or visible.
.TP
.B \fBsub\-text\fP
Return the current subtitle text regardless of sub visibility.
@@ -17391,9 +17451,10 @@ fonts, which is more memory\-efficient.
.TP
.B \fB~/.config/mpv/scripts/\fP
All files in this directory are loaded as if they were passed to the
\fB\-\-script\fP option. They are loaded in alphabetical order, and sub\-directories
and files with no \fB\&.lua\fP extension are ignored. The \fB\-\-load\-scripts=no\fP
option disables loading these files.
\fB\-\-script\fP option. They are loaded in alphabetical order. Directory entries
other than files are ignored. Files with unknown extension lead to an
initialization error. Files with \fB\&.disable\fP extension are ignored. The
\fB\-\-load\-scripts=no\fP option disables loading these files.
.TP
.B \fB~/.config/mpv/watch_later/\fP
Contains temporary config files needed for resuming playback of files with
@@ -1,4 +1,4 @@
From 665c55ba23093af8663e2d5117482fa2bee63821 Mon Sep 17 00:00:00 2001
From c9c69a95d8724efdcd634d352234382e5c7dbd30 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Tue, 2 Jul 2019 17:41:43 -0700
Subject: [PATCH] Use memset to initialize large structures
@@ -9,10 +9,10 @@ These are over 256 KiB in size.
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/video/out/gpu/video.c b/video/out/gpu/video.c
index a7369f185c..e9e16c5203 100644
index 88a8557cc2..1264769a9a 100644
--- a/video/out/gpu/video.c
+++ b/video/out/gpu/video.c
@@ -3497,7 +3497,7 @@ static void frame_perf_data(struct pass_info pass[], struct mp_frame_perf *out)
@@ -3496,7 +3496,7 @@ static void frame_perf_data(struct pass_info pass[], struct mp_frame_perf *out)
void gl_video_perfdata(struct gl_video *p, struct voctrl_performance_data *out)
{
@@ -21,7 +21,7 @@ index a7369f185c..e9e16c5203 100644
frame_perf_data(p->pass_fresh, &out->fresh);
frame_perf_data(p->pass_redraw, &out->redraw);
}
@@ -3969,14 +3969,13 @@ struct gl_video *gl_video_init(struct ra *ra, struct mp_log *log,
@@ -3927,14 +3927,13 @@ struct gl_video *gl_video_init(struct ra *ra, struct mp_log *log,
struct mpv_global *g)
{
struct gl_video *p = talloc_ptrtype(NULL, p);
@@ -44,5 +44,5 @@ index a7369f185c..e9e16c5203 100644
p->pass = p->pass_fresh;
struct gl_video_opts *opts = p->opts_cache->opts;
--
2.24.1
2.25.0
+4 -3
View File
@@ -157,6 +157,7 @@ test/scale_test.c tests
test/scale_zimg.c tests && zimg
test/tests.c tests
video/csputils.c
video/cuda.c cuda-hwaccel
video/d3d.c d3d-hwaccel
video/decode/vd_lavc.c
video/filter/refqueue.c
@@ -207,9 +208,9 @@ video/out/gpu/user_shaders.c
video/out/gpu/utils.c
video/out/gpu/video.c
video/out/gpu/video_shaders.c
video/out/hwdec/hwdec_cuda.c cuda-hwaccel
video/out/hwdec/hwdec_cuda_gl.c cuda-hwaccel && gl
video/out/hwdec/hwdec_cuda_vk.c cuda-hwaccel && vulkan
video/out/hwdec/hwdec_cuda.c cuda-interop
video/out/hwdec/hwdec_cuda_gl.c cuda-interop && gl
video/out/hwdec/hwdec_cuda_vk.c cuda-interop && vulkan
video/out/hwdec/hwdec_vaapi.c vaapi-egl || vaapi-vulkan
video/out/hwdec/hwdec_vaapi_gl.c vaapi-egl
video/out/hwdec/hwdec_vaapi_vk.c vaapi-vulkan
+1 -1
View File
@@ -1 +1 @@
0.31.0 r0
0.32.0 r0
+1 -1
View File
@@ -5,5 +5,5 @@
END {
printf("#define VERSION \"%s\"\n", version)
print("#define NO_BUILD_TIMESTAMPS")
print("#define MPVCOPYRIGHT \"Copyright © 2000-2019 mpv/MPlayer/mplayer2 projects\"")
print("#define MPVCOPYRIGHT \"Copyright © 2000-2020 mpv/MPlayer/mplayer2 projects\"")
}