summaryrefslogtreecommitdiff
path: root/pkg
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2017-02-12 23:03:22 -0800
committerMichael Forney <mforney@mforney.org>2017-02-12 23:03:22 -0800
commitbdbcebab8646a45307c9a104c6af656b92a24973 (patch)
tree27b4d8ebe68434831d937b0a798ea43a11b53b9e /pkg
parentfd038fccbc5780ce89bb1dad7562e8b4baf5c010 (diff)
mpv: Update to 0.24.0
Diffstat (limited to 'pkg')
-rw-r--r--pkg/mpv/config.h16
-rw-r--r--pkg/mpv/patch/0001-Add-generated-ebml-sources.patch (renamed from pkg/mpv/patch/0002-Add-generated-ebml-sources.patch)122
-rw-r--r--pkg/mpv/patch/0001-Include-poll.h-instead-of-sys-poll.h.patch44
-rw-r--r--pkg/mpv/patch/0002-Add-generated-man-page.patch (renamed from pkg/mpv/patch/0003-Add-generated-man-page.patch)320
-rw-r--r--pkg/mpv/patch/0003-Fix-build-with-HAVE_GL-0.patch37
-rw-r--r--pkg/mpv/rev2
-rw-r--r--pkg/mpv/sources.txt16
m---------pkg/mpv/src0
8 files changed, 387 insertions, 170 deletions
diff --git a/pkg/mpv/config.h b/pkg/mpv/config.h
index 41ed4aac..85a138ee 100644
--- a/pkg/mpv/config.h
+++ b/pkg/mpv/config.h
@@ -14,6 +14,7 @@
#define HAVE_HTML_BUILD 0
#define HAVE_PDF_BUILD 0
#define HAVE_LIBDL 1
+#define HAVE_CPLUGINS 0
#define HAVE_DLOPEN 0
#define HAVE_VF_DLOPEN_FILTERS 0
#define HAVE_ZSH_COMP 0
@@ -31,7 +32,6 @@
#define HAVE_GNUC 1
#define HAVE_STDATOMIC 1
#define HAVE_ATOMIC_BUILTINS 0
-#define HAVE_SYNC_BUILTINS 0
#define HAVE_ATOMICS 1
#define HAVE_C11_TLS 1
#define HAVE_GCC_TLS 1
@@ -131,17 +131,15 @@
#define HAVE_MALI_FBDEV 0
#define HAVE_GL 0
#define HAVE_EGL_HELPERS 0
+#define HAVE_LIBAVCODEC 1
+#define HAVE_IS_FFMPEG 1
+#define HAVE_IS_LIBAV 0
#define HAVE_LIBAV 1
-#define HAVE_LIBSWRESAMPLE 1
-#define HAVE_LIBAVRESAMPLE 0
-#define HAVE_RESAMPLER 1
-#define HAVE_LIBAVFILTER 1
#define HAVE_LIBAVDEVICE 1
-#define HAVE_AVCODEC_CHROMA_POS_API 1
-#define HAVE_AVFRAME_METADATA 1
-#define HAVE_AVFRAME_SKIP_SAMPLES 1
-#define HAVE_AVUTIL_MASTERING_METADATA 1
+#define HAVE_AVUTIL_IMGCPY_UC 0
#define HAVE_VAAPI_HWACCEL 0
+#define HAVE_VAAPI_HWACCEL_NEW 0
+#define HAVE_VAAPI_HWACCEL_OLD 0
#define HAVE_VIDEOTOOLBOX_VIDEOTOOLBOX_H 0
#define HAVE_VIDEO_TOOLBOX_VIDEO_TOOLBOX_H 0
#define HAVE_VIDEOTOOLBOX_HWACCEL 0
diff --git a/pkg/mpv/patch/0002-Add-generated-ebml-sources.patch b/pkg/mpv/patch/0001-Add-generated-ebml-sources.patch
index 06a6fa19..bfed482b 100644
--- a/pkg/mpv/patch/0002-Add-generated-ebml-sources.patch
+++ b/pkg/mpv/patch/0001-Add-generated-ebml-sources.patch
@@ -1,25 +1,25 @@
-From ed365ad8132ef1c52de6a69e85e19e8404cea925 Mon Sep 17 00:00:00 2001
+From 40fd44394eea4f9134436467ecd60b7b27eb76b3 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Sat, 2 Jul 2016 17:32:27 -0700
Subject: [PATCH] Add generated ebml sources
These require python to generate.
-$ python TOOLS/matroska.py --generate-header demux/ebml.c demux/demux_mkv.c > demux/ebml_types.h
-$ python TOOLS/matroska.py --generate-definitions demux/ebml.c > demux/ebml_defs.c
+$ python TOOLS/matroska.py --generate-header > demux/ebml_types.h
+$ python TOOLS/matroska.py --generate-definitions > demux/ebml_defs.c
---
- demux/ebml_defs.c | 529 +++++++++++++++++++++++++++++++++++++++++++++++
- demux/ebml_types.h | 586 +++++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 1115 insertions(+)
+ demux/ebml_defs.c | 547 +++++++++++++++++++++++++++++++++++++++++++++++
+ demux/ebml_types.h | 608 +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 1155 insertions(+)
create mode 100644 demux/ebml_defs.c
create mode 100644 demux/ebml_types.h
diff --git a/demux/ebml_defs.c b/demux/ebml_defs.c
new file mode 100644
-index 000000000..e4e205094
+index 000000000..5d80f7e21
--- /dev/null
+++ b/demux/ebml_defs.c
-@@ -0,0 +1,529 @@
+@@ -0,0 +1,547 @@
+// Generated by TOOLS/matroska.py, do not edit manually
+
+
@@ -431,6 +431,23 @@ index 000000000..e4e205094
+
+E("SimpleBlock", simple_block, EBML_TYPE_BINARY)
+
++E("BlockAdditional", block_additional, EBML_TYPE_BINARY)
++
++E("BlockAddID", block_add_id, EBML_TYPE_UINT)
++
++#define N block_more
++E_S("BlockMore", 2)
++F(MATROSKA_ID_BLOCKADDID, block_add_id, 0)
++F(MATROSKA_ID_BLOCKADDITIONAL, block_additional, 0)
++}};
++#undef N
++
++#define N block_additions
++E_S("BlockAdditions", 1)
++F(MATROSKA_ID_BLOCKMORE, block_more, 1)
++}};
++#undef N
++
+E("DiscardPadding", discard_padding, EBML_TYPE_SINT)
+
+E("ReferenceBlock", reference_block, EBML_TYPE_SINT)
@@ -440,11 +457,12 @@ index 000000000..e4e205094
+E("Block", block, EBML_TYPE_BINARY)
+
+#define N block_group
-+E_S("BlockGroup", 4)
++E_S("BlockGroup", 5)
+F(MATROSKA_ID_BLOCK, block, 0)
+F(MATROSKA_ID_BLOCKDURATION, block_duration, 0)
+F(MATROSKA_ID_REFERENCEBLOCK, reference_block, 1)
+F(MATROSKA_ID_DISCARDPADDING, discard_padding, 0)
++F(MATROSKA_ID_BLOCKADDITIONS, block_additions, 0)
+}};
+#undef N
+
@@ -551,10 +569,10 @@ index 000000000..e4e205094
+#undef N
diff --git a/demux/ebml_types.h b/demux/ebml_types.h
new file mode 100644
-index 000000000..510a766e1
+index 000000000..590c6bdcd
--- /dev/null
+++ b/demux/ebml_types.h
-@@ -0,0 +1,586 @@
+@@ -0,0 +1,608 @@
+// Generated by TOOLS/matroska.py, do not edit manually
+
+#define EBML_ID_EBML 0x1a45dfa3
@@ -588,7 +606,11 @@ index 000000000..510a766e1
+#define MATROSKA_ID_BLOCK 0xa1
+#define MATROSKA_ID_BLOCKDURATION 0x9b
+#define MATROSKA_ID_REFERENCEBLOCK 0xfb
-+#define MATROSKA_ID_DISCARDPADDING 0x75A2
++#define MATROSKA_ID_DISCARDPADDING 0x75a2
++#define MATROSKA_ID_BLOCKADDITIONS 0x75a1
++#define MATROSKA_ID_BLOCKMORE 0xa6
++#define MATROSKA_ID_BLOCKADDID 0xee
++#define MATROSKA_ID_BLOCKADDITIONAL 0xa5
+#define MATROSKA_ID_SIMPLEBLOCK 0xa3
+#define MATROSKA_ID_TRACKS 0x1654ae6b
+#define MATROSKA_ID_TRACKENTRY 0xae
@@ -623,30 +645,30 @@ index 000000000..510a766e1
+#define MATROSKA_ID_COLOURSPACE 0x2eb524
+#define MATROSKA_ID_STEREOMODE 0x53b8
+#define MATROSKA_ID_COLOUR 0x55b0
-+#define MATROSKA_ID_MATRIXCOEFFICIENTS 0x55B1
-+#define MATROSKA_ID_BITSPERCHANNEL 0x55B2
-+#define MATROSKA_ID_CHROMASUBSAMPLINGHORZ 0x55B3
-+#define MATROSKA_ID_CHROMASUBSAMPLINGVERT 0x55B4
-+#define MATROSKA_ID_CBSUBSAMPLINGHORZ 0x55B5
-+#define MATROSKA_ID_CBSUBSAMPLINGVERT 0x55B6
-+#define MATROSKA_ID_CHROMASITINGHORZ 0x55B7
-+#define MATROSKA_ID_CHROMASITINGVERT 0x55B8
-+#define MATROSKA_ID_RANGE 0x55B9
-+#define MATROSKA_ID_TRANSFERCHARACTERISTICS 0x55BA
-+#define MATROSKA_ID_PRIMARIES 0x55BB
-+#define MATROSKA_ID_MAXCLL 0x55BC
-+#define MATROSKA_ID_MAXFALL 0x55BD
-+#define MATROSKA_ID_MASTERINGMETADATA 0x55D0
-+#define MATROSKA_ID_PRIMARYRCHROMATICITYX 0x55D1
-+#define MATROSKA_ID_PRIMARYRCHROMATICITYY 0x55D2
-+#define MATROSKA_ID_PRIMARYGCHROMATICITYX 0x55D3
-+#define MATROSKA_ID_PRIMARYGCHROMATICITYY 0x55D4
-+#define MATROSKA_ID_PRIMARYBCHROMATICITYX 0x55D5
-+#define MATROSKA_ID_PRIMARYBCHROMATICITYY 0x55D6
-+#define MATROSKA_ID_WHITEPOINTCHROMATICITYX 0x55D7
-+#define MATROSKA_ID_WHITEPOINTCHROMATICITYY 0x55D8
-+#define MATROSKA_ID_LUMINANCEMAX 0x55D9
-+#define MATROSKA_ID_LUMINANCEMIN 0x55DA
++#define MATROSKA_ID_MATRIXCOEFFICIENTS 0x55b1
++#define MATROSKA_ID_BITSPERCHANNEL 0x55b2
++#define MATROSKA_ID_CHROMASUBSAMPLINGHORZ 0x55b3
++#define MATROSKA_ID_CHROMASUBSAMPLINGVERT 0x55b4
++#define MATROSKA_ID_CBSUBSAMPLINGHORZ 0x55b5
++#define MATROSKA_ID_CBSUBSAMPLINGVERT 0x55b6
++#define MATROSKA_ID_CHROMASITINGHORZ 0x55b7
++#define MATROSKA_ID_CHROMASITINGVERT 0x55b8
++#define MATROSKA_ID_RANGE 0x55b9
++#define MATROSKA_ID_TRANSFERCHARACTERISTICS 0x55ba
++#define MATROSKA_ID_PRIMARIES 0x55bb
++#define MATROSKA_ID_MAXCLL 0x55bc
++#define MATROSKA_ID_MAXFALL 0x55bd
++#define MATROSKA_ID_MASTERINGMETADATA 0x55d0
++#define MATROSKA_ID_PRIMARYRCHROMATICITYX 0x55d1
++#define MATROSKA_ID_PRIMARYRCHROMATICITYY 0x55d2
++#define MATROSKA_ID_PRIMARYGCHROMATICITYX 0x55d3
++#define MATROSKA_ID_PRIMARYGCHROMATICITYY 0x55d4
++#define MATROSKA_ID_PRIMARYBCHROMATICITYX 0x55d5
++#define MATROSKA_ID_PRIMARYBCHROMATICITYY 0x55d6
++#define MATROSKA_ID_WHITEPOINTCHROMATICITYX 0x55d7
++#define MATROSKA_ID_WHITEPOINTCHROMATICITYY 0x55d8
++#define MATROSKA_ID_LUMINANCEMAX 0x55d9
++#define MATROSKA_ID_LUMINANCEMIN 0x55da
+#define MATROSKA_ID_AUDIO 0xe1
+#define MATROSKA_ID_SAMPLINGFREQUENCY 0xb5
+#define MATROSKA_ID_OUTPUTSAMPLINGFREQUENCY 0x78b5
@@ -1015,16 +1037,32 @@ index 000000000..510a766e1
+ int n_track_entry;
+};
+
++struct ebml_block_more {
++ uint64_t block_add_id;
++ bstr block_additional;
++
++ int n_block_add_id;
++ int n_block_additional;
++};
++
++struct ebml_block_additions {
++ struct ebml_block_more *block_more;
++
++ int n_block_more;
++};
++
+struct ebml_block_group {
-+ bstr block;
-+ uint64_t block_duration;
-+ int64_t *reference_block;
-+ int64_t discard_padding;
++ bstr block;
++ uint64_t block_duration;
++ int64_t *reference_block;
++ int64_t discard_padding;
++ struct ebml_block_additions block_additions;
+
+ int n_block;
+ int n_block_duration;
+ int n_reference_block;
+ int n_discard_padding;
++ int n_block_additions;
+};
+
+struct ebml_cluster {
@@ -1117,6 +1155,8 @@ index 000000000..510a766e1
+extern const struct ebml_elem_desc ebml_info_desc;
+extern const struct ebml_elem_desc ebml_cluster_desc;
+extern const struct ebml_elem_desc ebml_block_group_desc;
++extern const struct ebml_elem_desc ebml_block_additions_desc;
++extern const struct ebml_elem_desc ebml_block_more_desc;
+extern const struct ebml_elem_desc ebml_tracks_desc;
+extern const struct ebml_elem_desc ebml_track_entry_desc;
+extern const struct ebml_elem_desc ebml_video_desc;
@@ -1142,5 +1182,5 @@ index 000000000..510a766e1
+
+#define MAX_EBML_SUBELEMENTS 23
--
-2.11.0
+2.11.1
diff --git a/pkg/mpv/patch/0001-Include-poll.h-instead-of-sys-poll.h.patch b/pkg/mpv/patch/0001-Include-poll.h-instead-of-sys-poll.h.patch
deleted file mode 100644
index d466d1dc..00000000
--- a/pkg/mpv/patch/0001-Include-poll.h-instead-of-sys-poll.h.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 935018562e6fee649bb629a873d4c3beca3bc72e Mon Sep 17 00:00:00 2001
-From: Michael Forney <mforney@mforney.org>
-Date: Sat, 2 Jul 2016 17:11:20 -0700
-Subject: [PATCH] Include poll.h instead of sys/poll.h
-
----
- video/out/drm_common.c | 2 +-
- video/out/vo_drm.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/video/out/drm_common.c b/video/out/drm_common.c
-index 44e017e4b..3a9b2a4b3 100644
---- a/video/out/drm_common.c
-+++ b/video/out/drm_common.c
-@@ -16,10 +16,10 @@
- */
-
- #include <errno.h>
-+#include <poll.h>
- #include <string.h>
- #include <signal.h>
- #include <sys/ioctl.h>
--#include <sys/poll.h>
- #include <sys/stat.h>
- #include <sys/vt.h>
- #include <unistd.h>
-diff --git a/video/out/vo_drm.c b/video/out/vo_drm.c
-index 7e642e391..726d820ba 100644
---- a/video/out/vo_drm.c
-+++ b/video/out/vo_drm.c
-@@ -18,9 +18,9 @@
- #include <assert.h>
- #include <errno.h>
- #include <fcntl.h>
-+#include <poll.h>
- #include <stdbool.h>
- #include <sys/mman.h>
--#include <sys/poll.h>
- #include <unistd.h>
-
- #include <libswscale/swscale.h>
---
-2.11.0
-
diff --git a/pkg/mpv/patch/0003-Add-generated-man-page.patch b/pkg/mpv/patch/0002-Add-generated-man-page.patch
index 7e10c711..becc3ec3 100644
--- a/pkg/mpv/patch/0003-Add-generated-man-page.patch
+++ b/pkg/mpv/patch/0002-Add-generated-man-page.patch
@@ -1,4 +1,4 @@
-From 7c5945cec9829ba1d6d692359b9d618669935955 Mon Sep 17 00:00:00 2001
+From e30be2ad83090568bbb0a5861d5bc0e79faa0733 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Sat, 2 Jul 2016 21:08:15 -0700
Subject: [PATCH] Add generated man page
@@ -7,16 +7,16 @@ This requires python and rst2man to generate.
$ rst2man.py --strip-elements-with-class=contents DOCS/man/mpv.rst DOCS/man/mpv.1
---
- DOCS/man/mpv.1 | 14084 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 14084 insertions(+)
+ DOCS/man/mpv.1 | 14268 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 14268 insertions(+)
create mode 100644 DOCS/man/mpv.1
diff --git a/DOCS/man/mpv.1 b/DOCS/man/mpv.1
new file mode 100644
-index 000000000..f5fa84578
+index 000000000..695e39493
--- /dev/null
+++ b/DOCS/man/mpv.1
-@@ -0,0 +1,14084 @@
+@@ -0,0 +1,14268 @@
+.\" Man page generated from reStructuredText.
+.
+.TH MPV 1 "" "" "multimedia"
@@ -175,7 +175,7 @@ index 000000000..f5fa84578
+Toggle infinite looping.
+.TP
+.B Ctrl + and Ctrl \-
-+Adjust audio delay by +/\- 0.1 seconds.
++Adjust audio delay (A/V sync) by +/\- 0.1 seconds.
+.TP
+.B u
+Switch between applying no style overrides to SSA/ASS subtitles, and
@@ -851,6 +851,10 @@ index 000000000..f5fa84578
+Note that not all prefixes are documented here. Undocumented prefixes are
+either aliases to documented protocols, or are just redirections to
+protocols implemented and documented in FFmpeg.
++.sp
++\fBdata:\fP is supported in FFmpeg (not in Libav), but needs to be in the
++format \fBdata://\fP\&. This is done to avoid ambiguity with filenames. You
++can also prefix it with \fBlavf://\fP or \fBffmpeg://\fP\&.
+.TP
+.B \fBytdl://...\fP
+By default, the youtube\-dl hook script (enabled by default for mpv CLI)
@@ -1736,10 +1740,10 @@ index 000000000..f5fa84578
+.TP
+.B d3d11va
+requires \fB\-\-vo=opengl\fP with \fB\-\-opengl\-backend=angle\fP
-+(Windows only)
++(Windows 8+ only)
+.TP
+.B d3d11va\-copy
-+copies video back to system RAM (Windows only)
++copies video back to system RAM (Windows 8+ only)
+.TP
+.B mediacodec
+copies video back to system RAM (Android only)
@@ -1780,6 +1784,14 @@ index 000000000..f5fa84578
+forcing it with \fB\-\-opengl\-backend=x11\fP, but the vaapi/GLX interop is
+said to be slower than \fBvaapi\-copy\fP\&.
+.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 opengl
++output path. 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 unless the \fBopengl\fP
++vo is not being used or filters are required.
++.sp
+Most video filters will not work with hardware decoding as they are
+primarily implemented on the CPU. Some exceptions are \fBvdpaupp\fP,
+\fBvdpaurb\fP and \fBvavpp\fP\&. See \fI\%VIDEO FILTERS\fP for more details.
@@ -1834,18 +1846,6 @@ index 000000000..f5fa84578
+affect this additionally. This can give incorrect results even with
+completely ordinary video sources.
+.sp
-+\fBcuda\fP is usually safe. Interlaced content can be deinterlaced by
-+the decoder, which is useful as there is no other deinterlacing
-+mechanism in the opengl output path. To use this deinterlacing you
-+must pass the option: \fBvd\-lavc\-o=deint=[weave|bob|adaptive]\fP\&. Pass
-+\fBweave\fP to not attempt any deinterlacing.
-+10 and 12bit HEVC is available if the hardware supports it and a
-+sufficiently new driver (> 375.xx) is used.
-+.sp
-+\fBcuda\-copy\fP has the same behaviour as \fBcuda\fP \- including the ability
-+to deinterlace inside the decoder. However, traditional deinterlacing
-+filters can be used in this case.
-+.sp
+\fBrpi\fP always uses the hardware overlay renderer, even with
+\fB\-\-vo=opengl\fP\&.
+.sp
@@ -1863,12 +1863,12 @@ index 000000000..f5fa84578
+.UNINDENT
+.UNINDENT
+.TP
-+.B \fB\-\-hwdec\-preload=<api>\fP
++.B \fB\-\-opengl\-hwdec\-interop=<name>\fP
+This is useful for the \fBopengl\fP and \fBopengl\-cb\fP VOs for creating the
+hardware decoding OpenGL interop context, but without actually enabling
+hardware decoding itself (like \fB\-\-hwdec\fP does).
+.sp
-+If set to \fBno\fP (default), the \fB\-\-hwdec\fP option is used.
++If set to an empty string (default), the \fB\-\-hwdec\fP option is used.
+.sp
+For \fBopengl\fP, if set, do not create the interop context on demand, but
+when the VO is created.
@@ -1878,6 +1878,19 @@ index 000000000..f5fa84578
+allows enabling hardware decoding at runtime at all, without having
+to temporarily set the \fBhwdec\fP option just during OpenGL context
+initialization with \fBmpv_opengl_cb_init_gl()\fP\&.
++.sp
++See \fB\-\-opengl\-hwdec\-interop=help\fP for accepted values. This lists the
++interop backend, with the \fB\-\-hwdec\fP alias after it in \fB[...]\fP\&. Consider
++all values except the proper interop backend name, \fBauto\fP, and \fBno\fP as
++silently deprecated and subject to change. Also, if you use this in
++application code (e.g. via libmpv), any value other than \fBauto\fP and \fBno\fP
++should be avoided, as backends can change.
++.sp
++Currently the option sets a single value. It is possible that the option
++type changes to a list in the future.
++.sp
++The old alias \fB\-\-hwdec\-preload\fP has different behavior if the option value
++is \fBno\fP\&.
+.TP
+.B \fB\-\-videotoolbox\-format=<name>\fP
+Set the internal pixel format used by \fB\-\-hwdec=videotoolbox\fP on OSX. The
@@ -2323,23 +2336,17 @@ index 000000000..f5fa84578
+.UNINDENT
+.UNINDENT
+.TP
-+.B \fB\-\-ad=<[+|\-]family1:(*|decoder1),[+|\-]family2:(*|decoder2),...[\-]>\fP
++.B \fB\-\-ad=<decoder1,decoder2,...[\-]>\fP
+Specify a priority list of audio decoders to be used, according to their
+decoder name. When determining which decoder to use, the first decoder that
+matches the audio format is selected. If that is unavailable, the next
+decoder is used. Finally, it tries all other decoders that are not
+explicitly selected or rejected by the option.
+.sp
-+Specifying family names is deprecated. Entries like \fBfamily:*\fP prioritize
-+all decoders of the given family.
-+.sp
+\fB\-\fP at the end of the list suppresses fallback on other available
+decoders not on the \fB\-\-ad\fP list. \fB+\fP in front of an entry forces the
+decoder. Both of these should not normally be used, because they break
+normal decoder auto\-selection! Both of these methods are deprecated.
-+.sp
-+\fB\-\fP in front of an entry disables selection of the decoder. This is
-+deprecated.
+.INDENT 7.0
+.INDENT 3.5
+.IP "Examples"
@@ -2349,10 +2356,6 @@ index 000000000..f5fa84578
+Prefer the FFmpeg/Libav \fBmp3float\fP decoder over all other MP3
+decoders.
+.TP
-+.B \fB\-\-ad=lavc:mp3float\fP
-+Prefer the FFmpeg/Libav \fBmp3float\fP decoder over all other MP3
-+decoders. (Using deprecated family syntax.)
-+.TP
+.B \fB\-\-ad=help\fP
+List all available decoders.
+.UNINDENT
@@ -2363,7 +2366,7 @@ index 000000000..f5fa84578
+.IP "Warning"
+.sp
+Enabling compressed audio passthrough (AC3 and DTS via SPDIF/HDMI) with
-+this option is deprecated. Use \fB\-\-audio\-spdif\fP instead.
++this option is not possible. Use \fB\-\-audio\-spdif\fP instead.
+.UNINDENT
+.UNINDENT
+.TP
@@ -3035,6 +3038,13 @@ index 000000000..f5fa84578
+.sp
+Disabled by default.
+.TP
++.B \fB\-\-image\-subs\-video\-resolution=<yes|no>\fP
++Override the image subtitle resolution with the video resolution
++(default: no). Normally, the subtitle canvas is fit into the video canvas
++(e.g. letterboxed). Setting this option uses the video size as subtitle
++canvas size. Can be useful to test broken subtitles, which often happen
++when the video was trancoded, while attempting to keep the old subtitles.
++.TP
+.B \fB\-\-sub\-ass\fP, \fB\-\-no\-sub\-ass\fP
+Render ASS subtitles natively (enabled by default).
+.sp
@@ -3116,8 +3126,8 @@ index 000000000..f5fa84578
+subtitles are interpreted as UTF\-8 with "Latin 1" as fallback for bytes
+which are not valid UTF\-8 sequences. iconv is never involved in this mode.
+.sp
-+This option changed in mpv 0.23.0. The old syntax is still emulated to some
-+degree.
++This option changed in mpv 0.23.0. Support for the old syntax was fully
++removed in mpv 0.24.0.
+.TP
+.B \fB\-\-sub\-fix\-timing\fP, \fB\-\-no\-sub\-fix\-timing\fP
+By default, subtitle timing is adjusted to remove minor gaps or overlaps
@@ -3343,6 +3353,18 @@ index 000000000..f5fa84578
+Vertical position (default: \fBbottom\fP).
+Details see \fB\-\-sub\-align\-x\fP\&.
+.TP
++.B \fB\-\-sub\-justify=<auto|left|center|right>\fP
++Control how multi line subs are justified irrespective of where they
++are aligned (default: \fBauto\fP which justifies as defined by
++\fB\-\-sub\-align\-y\fP).
++Left justification is recommended to make the subs easier to read
++as it is easier for the eyes.
++.TP
++.B \fB\-\-sub\-ass\-justify=<yes|no>\fP
++Applies justification as defined by \fB\-\-sub\-justify\fP on ASS subtitles
++if \fB\-\-sub\-ass\-style\-override\fP is not set to \fBno\fP\&.
++Default: \fBno\fP\&.
++.TP
+.B \fB\-\-sub\-shadow\-color=<color>\fP
+See \fB\-\-sub\-color\fP\&. Color used for sub text shadow.
+.TP
@@ -3504,6 +3526,9 @@ index 000000000..f5fa84578
+.sp
+Enabled by default.
+.TP
++.B \fB\-\-snap\-window\fP
++(Windows only) Snap the player window to screen edges.
++.TP
+.B \fB\-\-ontop\fP
+Makes the player window stay on top of other windows.
+.sp
@@ -3804,7 +3829,7 @@ index 000000000..f5fa84578
+.UNINDENT
+.TP
+.B \fB\-\-hidpi\-window\-scale\fP, \fB\-\-no\-hidpi\-window\-scale\fP
-+(OS X only)
++(OS X and X11 only)
+Scale the window size according to the backing scale factor (default: yes).
+On regular HiDPI resolutions the window opens with double the size but appears
+as having the same size as on none\-HiDPI resolutions. This is the default OS X
@@ -4216,6 +4241,27 @@ index 000000000..f5fa84578
+(This value tends to be fuzzy, because many file formats don\(aqt store linear
+timestamps.)
+.TP
++.B \fB\-\-prefetch\-playlist=<yes|no>\fP
++Prefetch next playlist entry while playback of the current entry is ending
++(default: no). This merely opens the URL of the next playlist entry as soon
++as the current URL is fully read.
++.sp
++This does \fBnot\fP work with URLs resolved by the \fByoutube\-dl\fP wrapper,
++and it won\(aqt.
++.sp
++This does not affect HLS (\fB\&.m3u8\fP URLs) \- HLS prefetching depends on the
++demuxer cache settings and is on by default.
++.sp
++This can give subtly wrong results if per\-file options are used, or if
++options are changed in the time window between prefetching start and next
++file played.
++.sp
++This can occasionally make wrong prefetching decisions. For example, it
++can\(aqt predict whether you go backwards in the playlist, and assumes you
++won\(aqt edit the playlist.
++.sp
++Highly experimental.
++.TP
+.B \fB\-\-force\-seekable=<yes|no>\fP
+If the player thinks that the media is not seekable (e.g. playing from a
+pipe, or it\(aqs an http stream with a server that doesn\(aqt support range
@@ -6003,16 +6049,70 @@ index 000000000..f5fa84578
+.sp
+Windows only.
+.TP
-+.B \fB\-\-opengl\-dcomposition=<yes|no>\fP
-+Allows DirectComposition when using the ANGLE backend (default: yes).
-+DirectComposition implies flip\-model presentation, which can improve
-+rendering efficiency on Windows 8+ by avoiding a copy of the video frame.
-+mpv uses it by default where possible, but it can cause poor behaviour with
-+some drivers, such as a black screen or graphical corruption when leaving
-+full\-screen mode. Use "no" to disable it.
++.B \fB\-\-angle\-d3d11\-feature\-level=<11_0|10_1|10_0|9_3>\fP
++Selects a specific feature level when using the ANGLE backend with D3D11.
++By default, the highest available feature level is used. This option can be
++used to select a lower feature level, which is mainly useful for debugging.
++Note that OpenGL ES 3.0 is only supported at feature level 10_1 or higher.
++Most extended OpenGL features will not work at lower feature levels
++(similar to \fB\-\-opengl\-dumb\-mode\fP).
++.sp
++Windows with ANGLE only.
++.TP
++.B \fB\-\-angle\-d3d11\-warp=<yes|no|auto>\fP
++Use WARP (Windows Advanced Rasterization Platform) when using the ANGLE
++backend with D3D11 (default: auto). This is a high performance software
++renderer. By default, it is used when the Direct3D hardware does not
++support Direct3D 11 feature level 9_3. While the extended OpenGL features
++will work with WARP, they can be very slow.
++.sp
++Windows with ANGLE only.
++.TP
++.B \fB\-\-angle\-egl\-windowing=<yes|no|auto>\fP
++Use ANGLE\(aqs built in EGL windowing functions to create a swap chain
++(default: auto). If this is set to \fBno\fP and the D3D11 renderer is in use,
++ANGLE\(aqs built in swap chain will not be used and a custom swap chain that
++is optimized for video rendering will be created instead. If set to
++\fBauto\fP, a custom swap chain will be used for D3D11 and the built in swap
++chain will be used for D3D9. This option is mainly for debugging purposes,
++in case the custom swap chain has poor performance or does not work.
++.sp
++If set to \fByes\fP, the \fB\-\-angle\-max\-frame\-latency\fP and
++\fB\-\-angle\-swapchain\-length\fP options will have no effect.
++.sp
++Windows with ANGLE only.
++.TP
++.B \fB\-\-angle\-max\-frame\-latency=<1\-16>\fP
++Sets the maximum number of frames that the system is allowed to queue for
++rendering with the ANGLE backend (default: 3). Lower values should make
++VSync timing more accurate, but a value of \fB1\fP requires powerful
++hardware, since the CPU will not be able to "render ahead" of the GPU.
+.sp
+Windows with ANGLE only.
+.TP
++.B \fB\-\-angle\-renderer=<d3d9|d3d11|auto>\fP
++Forces a specific renderer when using the ANGLE backend (default: auto). In
++auto mode this will pick D3D11 for systems that support Direct3D 11 feature
++level 9_3 or higher, and D3D9 otherwise. This option is mainly for
++debugging purposes. Normally there is no reason to force a specific
++renderer, though \fB\-\-angle\-renderer=d3d9\fP may give slightly better
++performance on old hardware. Note that the D3D9 renderer only supports
++OpenGL ES 2.0, so most extended OpenGL features will not work if this
++renderer is selected (similar to \fB\-\-opengl\-dumb\-mode\fP).
++.sp
++Windows with ANGLE only.
++.TP
++.B \fB\-\-angle\-swapchain\-length=<2\-16>\fP
++Sets the number of buffers in the D3D11 presentation queue when using the
++ANGLE backend (default: 6). At least 2 are required, since one is the back
++buffer that mpv renders to and the other is the front buffer that is
++presented by the DWM. Additional buffers can improve performance, because
++for example, mpv will not have to wait on the DWM to release the front
++buffer before rendering a new frame to it. For this reason, Microsoft
++recommends at least 4.
++.sp
++Windows 8+ with ANGLE only.
++.TP
+.B \fB\-\-opengl\-sw\fP
+Continue even if a software renderer is detected.
+.TP
@@ -6044,6 +6144,10 @@ index 000000000..f5fa84578
+.B x11
+X11/GLX
+.TP
++.B x11probe
++For internal autoprobing, equivalent to \fBx11\fP otherwise. Don\(aqt use
++directly, it could be removed without warning as autoprobing is changed.
++.TP
+.B wayland
+Wayland/EGL
+.TP
@@ -6346,6 +6450,7 @@ index 000000000..f5fa84578
+unavailable, it silently falls back on a normal framebuffer. Note that
+if you set the \fB\-\-opengl\-fbo\-format\fP option to a non\-default value, a
+format with alpha must be specified, or this won\(aqt work.
++This does not work on X11 with EGL and Mesa (freedesktop bug 67676).
+.TP
+.B no
+Ignore alpha component.
@@ -6520,21 +6625,10 @@ index 000000000..f5fa84578
+Input file type for \fBmf://\fP (available: jpeg, png, tga, sgi). By default,
+this is guessed from the file extension.
+.TP
-+.B \fB\-\-stream\-capture=<filename>\fP
-+Allows capturing the primary stream (not additional audio tracks or other
-+kind of streams) into the given file. Capturing can also be started and
-+stopped by changing the filename with the \fBstream\-capture\fP property.
-+Generally this will not produce usable results for anything else than MPEG
-+or raw streams, unless capturing includes the file headers and is not
-+interrupted. Note that, due to cache latencies, captured data may begin and
-+end somewhat delayed compared to what you see displayed.
-+.sp
-+The destination file is always appended. (Before mpv 0.8.0, the file was
-+overwritten.)
-+.TP
-+.B \fB\-\-stream\-dump=<filename>\fP
-+Same as \fB\-\-stream\-capture\fP, but do not start playback. Instead, the entire
-+file is dumped.
++.B \fB\-\-stream\-dump=<destination\-filename>\fP
++Instead of playing a file, read its byte stream and write it to the given
++destination file. The destination is overwritten. Can be useful to test
++network\-related behavior.
+.TP
+.B \fB\-\-stream\-lavf\-o=opt1=value1,opt2=value2,...\fP
+Set AVOptions on streams opened with libavformat. Unknown or misspelled
@@ -6582,6 +6676,29 @@ index 000000000..f5fa84578
+This does not affect playlist expansion, redirection, or other loading of
+referenced files like with ordered chapters.
+.TP
++.B \fB\-\-record\-file=<file>\fP
++Record the current stream to the given target file. The target file will
++always be overwritten without asking.
++.sp
++This remuxes the source stream without reencoding, which makes this a
++highly fragile and experimental feature. It\(aqs entirely possible that this
++writes files which are broken, not standards compliant, not playable with
++all players (including mpv), or incomplete.
++.sp
++The target file format is determined by the file extension of the target
++filename. It is recommended to use the same target container as the source
++container if possible, and preferring Matroska as fallback.
++.sp
++Seeking during stream recording, or enabling/disabling stream recording
++during playback, can cut off data, or produce "holes" in the output file.
++These are technical restrictions. In particular, video data or subtitles
++which were read ahead can produce such holes, which might cause playback
++problems with various players (including mpv).
++.sp
++The behavior of this option might changed in the future, such as changing
++it to a template (similar to \fB\-\-screenshot\-template\fP), being renamed,
++removed, or anything else, until it is declared semi\-stable.
++.TP
+.B \fB\-\-lavfi\-complex=<string>\fP
+Set a "complex" libavfilter filter, which means a single filter graph can
+take input from multiple source audio and video tracks. The graph can result
@@ -10663,14 +10780,18 @@ index 000000000..f5fa84578
+Total A\-V sync correction done. Unavailable if audio or video is
+disabled.
+.TP
-+.B \fBdrop\-frame\-count\fP
++.B \fBdecoder\-frame\-drop\-count\fP
+Video frames dropped by decoder, because video is too far behind audio (when
+using \fB\-\-framedrop=decoder\fP). Sometimes, this may be incremented in other
+situations, e.g. when video packets are damaged, or the decoder doesn\(aqt
+follow the usual rules. Unavailable if video is disabled.
++.sp
++\fBdrop\-frame\-count\fP is a deprecated alias.
+.TP
-+.B \fBvo\-drop\-frame\-count\fP
++.B \fBframe\-drop\-count\fP
+Frames dropped by VO (when using \fB\-\-framedrop=vo\fP).
++.sp
++\fBvo\-drop\-frame\-count\fP is a deprecated alias.
+.TP
+.B \fBmistimed\-frame\-count\fP
+Number of video frames that were not timed correctly in display\-sync mode
@@ -11086,8 +11207,8 @@ index 000000000..f5fa84578
+This is known only once the VO has opened (and possibly later). With some
+VOs (like \fBopengl\fP), this might be never known in advance, but only when
+the decoder attempted to create the hw decoder successfully. (Using
-+\fB\-\-hwdec\-preload\fP can load it eagerly.) If there are multiple drivers
-+loaded, they will be separated by \fB,\fP\&.
++\fB\-\-opengl\-hwdec\-interop\fP can load it eagerly.) If there are multiple
++drivers loaded, they will be separated by \fB,\fP\&.
+.sp
+If no VO is active or no interop driver is known, this property is
+unavailable.
@@ -11095,6 +11216,9 @@ index 000000000..f5fa84578
+This does not necessarily use the same values as \fBhwdec\fP\&. There can be
+multiple interop drivers for the same hardware decoder, depending on
+platform and VO.
++.sp
++This is somewhat similar to the \fB\-\-opengl\-hwdec\-interop\fP option, but
++it returns the actually loaded backend, not the value of this option.
+.TP
+.B \fBvideo\-format\fP
+Video format as string.
@@ -11308,10 +11432,6 @@ index 000000000..f5fa84578
+.sp
+This property is experimental and might be removed in the future.
+.TP
-+.B \fBstream\-capture\fP (RW)
-+A filename, see \fB\-\-stream\-capture\fP\&. Setting this will start capture using
-+the given filename. Setting it to an empty string will stop it.
-+.TP
+.B \fBtv\-brightness\fP, \fBtv\-contrast\fP, \fBtv\-saturation\fP, \fBtv\-hue\fP (RW)
+TV stuff.
+.TP
@@ -13040,6 +13160,11 @@ index 000000000..f5fa84578
+multiple properties at once, you might not want to act on each property
+change, but only when all change notifications have been received.
+.TP
++.B \fBmp.unregister_idle(fn)\fP
++Undo \fBmp.register_idle(fn)\fP\&. This removes all idle handlers that
++are equal to the \fBfn\fP parameter. This uses normal Lua \fB==\fP comparison,
++so be careful when dealing with closures.
++.TP
+.B \fBmp.enable_messages(level)\fP
+Set the minimum log level of which mpv message output to receive. These
+messages are normally printed to the terminal. By calling this function,
@@ -13858,6 +13983,65 @@ index 000000000..f5fa84578
+.IP \(bu 2
+\fI\%https://github.com/mpv\-player/mpv\-examples/tree/master/libmpv\fP
+.UNINDENT
++.SH C PLUGINS
++.sp
++You can write C plugins for mpv. These use the libmpv API, although they do not
++use the libmpv library itself.
++.sp
++Currently, they must be explicitly enabled at build time with
++\fB\-\-enable\-cplugins\fP\&. They are available on Linux/BSD platforms only.
++.SS C plugins location
++.sp
++C plugins are put into the mpv scripts directory in its config directory
++(see the \fI\%FILES\fP section for details). They must have a \fB\&.so\fP file extension.
++They can also be explicitly loaded with the \fB\-\-script\fP option.
++.SS API
++.sp
++A C plugin must export the following function:
++.INDENT 0.0
++.INDENT 3.5
++.sp
++.nf
++.ft C
++int mpv_open_cplugin(mpv_handle *handle)
++.ft P
++.fi
++.UNINDENT
++.UNINDENT
++.sp
++The plugin function will be called on loading time. This function does not
++return as long as your plugin is loaded (it runs in its own thread). The
++\fBhandle\fP will be deallocated as soon as the plugin function returns.
++.sp
++The return value is interpreted as error status. A value of \fB0\fP is
++interpreted as success, while \fB\-1\fP signals an error. In the latter case,
++the player prints an uninformative error message that loading failed.
++.sp
++Return values other than \fB0\fP and \fB\-1\fP are reserved, and trigger undefined
++behavior.
++.sp
++Within the plugin function, you can call libmpv API functions. The \fBhandle\fP
++is created by \fBmpv_create_client()\fP (or actually an internal equivalent),
++and belongs to you. You can call \fBmpv_wait_event()\fP to wait for things
++happening, and so on.
++.sp
++Note that the player might block until your plugin calls \fBmpv_wait_event()\fP
++for the first time. This gives you a chance to install initial hooks etc.
++before playback begins.
++.sp
++The details are quite similar to Lua scripts.
++.SS Linkage to libmpv
++.sp
++The current implementation requires that your plugins are \fBnot\fP linked against
++libmpv. What your plugins uses are not symbols from a libmpv binary, but
++symbols from the mpv host binary.
++.SS Examples
++.sp
++See:
++.INDENT 0.0
++.IP \(bu 2
++\fI\%https://github.com/mpv\-player/mpv\-examples/tree/master/cplugins\fP
++.UNINDENT
+.SH ENVIRONMENT VARIABLES
+.sp
+There are a number of environment variables that can be used to control the
@@ -14102,5 +14286,5 @@ index 000000000..f5fa84578
+.\" Generated by docutils manpage writer.
+.
--
-2.11.0
+2.11.1
diff --git a/pkg/mpv/patch/0003-Fix-build-with-HAVE_GL-0.patch b/pkg/mpv/patch/0003-Fix-build-with-HAVE_GL-0.patch
new file mode 100644
index 00000000..60024b03
--- /dev/null
+++ b/pkg/mpv/patch/0003-Fix-build-with-HAVE_GL-0.patch
@@ -0,0 +1,37 @@
+From 1e419fcbaf2bcb17407525965d5e4ca7bc35a719 Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Sun, 12 Feb 2017 23:01:21 -0800
+Subject: [PATCH] Fix build with HAVE_GL==0
+
+video/out/opengl/hwdec.h includes video/out/opengl/common.h, which tries
+to include opengl headers.
+---
+ options/options.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/options/options.c b/options/options.c
+index b711156c1..0bb36ad3f 100644
+--- a/options/options.c
++++ b/options/options.c
+@@ -40,7 +40,6 @@
+ #include "stream/stream.h"
+ #include "video/csputils.h"
+ #include "video/hwdec.h"
+-#include "video/out/opengl/hwdec.h"
+ #include "video/image_writer.h"
+ #include "sub/osd.h"
+ #include "audio/filter/af.h"
+@@ -53,6 +52,10 @@
+ #include "video/out/drm_common.h"
+ #endif
+
++#if HAVE_GL
++#include "video/out/opengl/hwdec.h"
++#endif
++
+ extern const char mp_help_text[];
+
+ static void print_version(struct mp_log *log)
+--
+2.11.1
+
diff --git a/pkg/mpv/rev b/pkg/mpv/rev
index 7f8f011e..45a4fb75 100644
--- a/pkg/mpv/rev
+++ b/pkg/mpv/rev
@@ -1 +1 @@
-7
+8
diff --git a/pkg/mpv/sources.txt b/pkg/mpv/sources.txt
index 47c8ae6e..4c9dfc4a 100644
--- a/pkg/mpv/sources.txt
+++ b/pkg/mpv/sources.txt
@@ -55,6 +55,7 @@ common/common.c
common/tags.c
common/msg.c
common/playlist.c
+common/recorder.c
common/version.c
demux/codec_tags.c
demux/cue.c
@@ -169,15 +170,16 @@ video/sws_utils.c
video/vaapi.c vaapi
video/vdpau.c vdpau
video/vdpau_mixer.c vdpau
-video/decode/dec_video.c
-video/decode/cuda.c cuda-hwaccel
-video/decode/dxva2.c d3d-hwaccel
-video/decode/d3d11va.c d3d-hwaccel
video/decode/d3d.c win32
-video/decode/vaapi.c vaapi-hwaccel
+video/decode/dec_video.c
+video/decode/hw_cuda.c cuda-hwaccel
+video/decode/hw_dxva2.c d3d-hwaccel
+video/decode/hw_d3d11va.c d3d-hwaccel
+video/decode/hw_vaapi.c vaapi-hwaccel-new
+video/decode/hw_vaapi_old.c vaapi-hwaccel-old
+video/decode/hw_vdpau.c vdpau-hwaccel
+video/decode/hw_videotoolbox.c videotoolbox-hwaccel
video/decode/vd_lavc.c
-video/decode/videotoolbox.c videotoolbox-hwaccel
-video/decode/vdpau.c vdpau-hwaccel
video/filter/refqueue.c
video/filter/vf.c
video/filter/vf_buffer.c
diff --git a/pkg/mpv/src b/pkg/mpv/src
-Subproject 10a005df0c981050afc35184a42173bea7ea252
+Subproject 0f1afc6ba2a088cf890a5cf7949ed6711b94a76