aboutsummaryrefslogtreecommitdiff
path: root/multimedia/mythtv
diff options
context:
space:
mode:
authorJason E. Hale <jhale@FreeBSD.org>2018-03-25 17:09:05 +0000
committerJason E. Hale <jhale@FreeBSD.org>2018-03-25 17:09:05 +0000
commitdb032688dfff0df0cd92849f13033b28a8b1b1f2 (patch)
tree798b5fbd8a866689a9e7a6acdefbbe97f5e7555e /multimedia/mythtv
parentfc45dfb12d11b24987ff3be41c61912625e7f7df (diff)
downloadports-db032688dfff0df0cd92849f13033b28a8b1b1f2.tar.gz
ports-db032688dfff0df0cd92849f13033b28a8b1b1f2.zip
Update multimedia/mythtv and related ports to 29.1 [1]
Convert multimedia/mythtv-frontend to a slave port of multimedia/mythtv which should make future updates much easier. Upstream security patches have been added to address known vulnerabilities in the bundled ffmpeg 3.2. PR: 225652 (initial patches to update to 29.0) [1] Submitted by: <lucylangthorne55@gmail.com> [1] Differential Revision: https://reviews.freebsd.org/D14563
Notes
Notes: svn path=/head/; revision=465529
Diffstat (limited to 'multimedia/mythtv')
-rw-r--r--multimedia/mythtv/Makefile208
-rw-r--r--multimedia/mythtv/distinfo6
-rw-r--r--multimedia/mythtv/files/extrapatch-programs_programs.pro17
-rw-r--r--multimedia/mythtv/files/patch-CVE-2016-10190239
-rw-r--r--multimedia/mythtv/files/patch-CVE-2016-1019135
-rw-r--r--multimedia/mythtv/files/patch-CVE-2016-1019240
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-0502431
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-0502530
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-0786228
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-0786637
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-09608a116
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-09608b82
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-09608c45
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-0999132
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-0999229
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-09993a91
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-09993b31
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-0999447
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-09996a29
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-09996b29
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-1139949
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-11665a119
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-11665b111
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-1171941
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-1405433
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-1405528
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-1405645
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-1405738
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-1405888
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-1405934
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-1416933
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-1417043
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-1417138
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-1422234
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-1422332
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-1422548
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-1476728
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-1518678
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-1684093
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-17081a28
-rw-r--r--multimedia/mythtv/files/patch-CVE-2017-17081b33
-rw-r--r--multimedia/mythtv/files/patch-CVE-2018-639244
-rw-r--r--multimedia/mythtv/files/patch-CVE-2018-662115
-rw-r--r--multimedia/mythtv/files/patch-configure52
-rw-r--r--multimedia/mythtv/files/patch-external_FFmpeg_configure41
-rw-r--r--multimedia/mythtv/files/patch-external_FFmpeg_libavcodec_x86_ac3dsp__init.c11
-rw-r--r--multimedia/mythtv/files/patch-external_FFmpeg_libavformat_rtsp.c48
-rw-r--r--multimedia/mythtv/files/patch-external_FFmpeg_libavformat_tls__openssl.c58
-rw-r--r--multimedia/mythtv/files/patch-external_libmythdvdnav_dvdnav_dvdnav_dvdnav.h16
-rw-r--r--multimedia/mythtv/files/patch-external_zeromq_src_Makefile.am10
-rw-r--r--multimedia/mythtv/files/patch-libs_libmyth_remoteutil.h10
-rw-r--r--multimedia/mythtv/files/patch-libs_libmythdvdnav_dvdnav_dvdnav.c11
-rw-r--r--multimedia/mythtv/files/patch-libs_libmythtv_DVD_dvdringbuffer.h11
-rw-r--r--multimedia/mythtv/files/patch-libs_libmythtv_dbcheck.cpp64
-rw-r--r--multimedia/mythtv/files/patch-libs_libmythtv_recorders_dvbstreamhandler.cpp29
-rw-r--r--multimedia/mythtv/files/patch-libs_libmythtv_videoout__vdpau.cpp11
-rw-r--r--multimedia/mythtv/files/patch-libs_libmythui_mythgesture.cpp19
-rw-r--r--multimedia/mythtv/files/patch-libs_libmythui_mythpainter.cpp2
-rw-r--r--multimedia/mythtv/files/patch-libs_libmythui_mythrender__vdpau.h10
-rw-r--r--multimedia/mythtv/files/patch-libs_libmythupnp_mmulticastsocketdevice.h10
-rw-r--r--multimedia/mythtv/pkg-plist586
61 files changed, 2868 insertions, 466 deletions
diff --git a/multimedia/mythtv/Makefile b/multimedia/mythtv/Makefile
index 2742b44a139d..ca5326be413e 100644
--- a/multimedia/mythtv/Makefile
+++ b/multimedia/mythtv/Makefile
@@ -3,132 +3,172 @@
PORTNAME= mythtv
DISTVERSIONPREFIX= v
-DISTVERSION= 0.27.5
+DISTVERSION= 29.1
+PORTREVISION?= 0
PORTEPOCH= 1
CATEGORIES= multimedia
-MAINTAINER= ports@FreeBSD.org
-COMMENT= MythTV is a homebrew PVR project
+MAINTAINER?= ports@FreeBSD.org
+COMMENT?= MythTV is a homebrew PVR project
-LICENSE= GPLv2
+LICENSE= GPLv2+
LICENSE_FILE= ${WRKSRC}/COPYING
+ONLY_FOR_ARCHS= amd64 i386
+
LIB_DEPENDS= libmp3lame.so:audio/lame \
- libfreetype.so:print/freetype2 \
libtag.so:audio/taglib \
- libxml2.so:textproc/libxml2 \
- libudf.so:sysutils/libcdio \
+ libexiv2.so:graphics/exiv2 \
libva.so:multimedia/libva \
libass.so:multimedia/libass \
- libfftw3f.so:math/fftw3-float \
libfftw3_threads.so:math/fftw3 \
- libjack.so:audio/jack
-BUILD_DEPENDS= v4l_compat>=1.0.20100321:multimedia/v4l_compat \
- yasm:devel/yasm
-RUN_DEPENDS= tv_check:textproc/p5-xmltv \
- wget:ftp/wget
-
-CONFLICTS= mythtv-frontend-[0-9]*
+ libfftw3f.so:math/fftw3-float \
+ libfreetype.so:print/freetype2 \
+ libxml2.so:textproc/libxml2
+BUILD_DEPENDS= yasm:devel/yasm
+USES= gmake iconv libtool pkgconfig pathfix ssl
USE_GITHUB= yes
GH_ACCOUNT= MythTV
-
-WRKSRC_SUBDIR= ${PORTNAME}
-
-ONLY_FOR_ARCHS= i386 amd64
-USE_PERL5= run build
-NOPRECIOUSMAKEVARS= # don't override $(ARCH) in ffmpeg makefiles
-USES= gmake iconv libtool perl5 pkgconfig pathfix shebangfix ssl
-SHEBANG_FILES= programs/scripts/database/mythconverg_backup.pl \
- programs/scripts/database/mythconverg_restore.pl
-USE_QT4= corelib dbus gui sql network script linguist_build l10n sql-mysql_run \
- moc_build qmake_build rcc_build uic_build imageformats webkit xml
USE_GL= gl
-USE_XORG= x11 xv xrandr xxf86vm xinerama xext
+USE_LDCONFIG= yes
+USE_QT5= buildtools_build core dbus gui imageformats_run \
+ linguist_build network opengl qmake_build script sql \
+ sql-mysql_run webkit widgets xml
QT_NONSTANDARD= yes
-HAS_CONFIGURE= yes
-USE_LDCONFIG= ${PREFIX}/lib/mythtv/filters
-REINPLACE_ARGS= -i ""
-USE_RC_SUBR= mythbackend
-DESTDIRNAME= INSTALL_ROOT
-
-USERS= mythtv
-GROUPS= mythtv
+USE_XORG= x11 xv xrandr xxf86vm xinerama xext xcb
+HAS_CONFIGURE= yes
+CONFIGURE_ARGS= --prefix="${PREFIX}" --cc="${CC}" --cxx="${CXX}" \
+ --libxml2-path="${LOCALBASE}/include/libxml2" \
+ --enable-opengl-video \
+ --disable-audio-alsa --disable-indev=alsa --disable-outdev=alsa \
+ --disable-mythlogserver
+CONFIGURE_ENV= QMAKESPEC="${QMAKESPEC}" MOC="${MOC}" \
+ QTDIR="${PREFIX}" PKG_CONFIG_PATH="${LOCALBASE}/libdata/pkgconfig"
MAKE_ENV= QTDIR="${PREFIX}" \
QMAKESPEC="${QMAKESPEC}"
-
+NOPRECIOUSMAKEVARS= # don't override ARCH in ffmpeg makefiles
+DESTDIRNAME= INSTALL_ROOT
CPPFLAGS+= ${QTCPPFLAGS}
-CONFIGURE_ENV+= QMAKESPEC="${QMAKESPEC}" MOC="${MOC}" \
- QTDIR="${PREFIX}"
-CONFIGURE_ENV+= PKG_CONFIG_PATH="${LOCALBASE}/libdata/pkgconfig"
LDFLAGS+= -L${LOCALBASE}/lib
-CONFIGURE_ARGS= --prefix="${PREFIX}" --cc="${CC}" --cxx="${CXX}" --dvb-path="${LOCALBASE}/include/libdvbv5" \
- --libxml2-path="${LOCALBASE}/include/libxml2" --enable-v4l2 --enable-ivtv --enable-xv \
- --disable-audio-alsa --disable-indev=alsa --disable-outdev=alsa --disable-mythlogserver
+REINPLACE_ARGS= -i ""
+WRKSRC_SUBDIR= ${PORTNAME}
-QMAKESPEC?= ${LOCALBASE}/share/qt4/mkspecs/freebsd-g++
+DESKTOP_ENTRIES="MythTV Frontend" "MythTV is a homebrew PVR project" "" \
+ "mythfrontend" "AudioVideo;Video;" false
-OPTIONS_DEFINE= BINDINGS LIRC MYSQL OPENGL VDPAU
-OPTIONS_DEFAULT= BINDINGS OPENGL VDPAU
-OPTIONS_SUB= yes
-BINDINGS_DESC= Perl and Python bindings
+.if defined(SLAVEPORT) && ${SLAVEPORT} == "frontend"
+CONFLICTS_INSTALL= mythtv
-LIRC_LIB_DEPENDS= liblirc_client.so:comms/lirc
-MYSQL_USES= mysql:client,server
-MYSQL_USES_OFF= mysql
+CONFIGURE_ARGS+=--disable-dvb --disable-firewire --disable-hdhomerun \
+ --disable-hdpvr --disable-ivtv --disable-v4l2 \
+ --without-bindings=perl,python,php
-VDPAU_LIB_DEPENDS= libvdpau.so:multimedia/libvdpau
-VDPAU_CONFIGURE_ENABLE= vdpau
+EXTRA_PATCHES= ${FILESDIR}/extrapatch-programs_programs.pro
-OPENGL_CONFIGURE_ENABLE= opengl-video
-OPENGL_USE= QT4=opengl
+OPTIONS_EXCLUDE+= BINDINGS LIRC MYSQL
+.else
+CONFLICTS_INSTALL= mythtv-frontend
-.include <bsd.port.options.mk>
+BUILD_DEPENDS+= v4l_compat>=1.0.20100321:multimedia/v4l_compat
+RUN_DEPENDS+= tv_check:textproc/p5-xmltv \
+ wget:ftp/wget
+USES+= perl5 python:2.7 shebangfix
+USE_PERL5= run build
+USE_RC_SUBR= mythbackend
+SHEBANG_FILES= programs/scripts/database/*.pl \
+ programs/scripts/internetcontent/*.py \
+ programs/scripts/internetcontent/*.pl \
+ programs/scripts/internetcontent/nv_python_libs/*.py \
+ programs/scripts/hardwareprofile/*.py \
+ programs/scripts/metadata/Television/ttvdb.py \
+ programs/scripts/metadata/Movie/tmdb3.py
-SUB_FILES= pkg-message
+CONFIGURE_ARGS+=--dvb-path="${LOCALBASE}/include" \
+ --enable-ivtv --enable-v4l2 --enable-xv
-.if ${PORT_OPTIONS:MBINDINGS}
-CONFIGURE_ARGS+= --python=${PYTHON_CMD}
-USES+= python:2.7
-PYDISTUTILS_PKGNAME=MythTV
-PYDISTUTILS_PKGVERSION=0.27._1
-
-BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}lxml>=0:devel/py-lxml@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}MySQLdb>=1.2.2:databases/py-MySQLdb@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}urlgrabber>=3.1.0_1:www/py-urlgrabber@${PY_FLAVOR} \
- p5-HTTP-Request-Params>=0:www/p5-HTTP-Request-Params \
- p5-LWP-UserAgent-Determined>=0:www/p5-LWP-UserAgent-Determined \
- p5-Net-UPnP>=0:multimedia/p5-Net-UPnP \
- p5-IO-Socket-INET6>=2.51:net/p5-IO-Socket-INET6 \
- p5-DBI>=0:databases/p5-DBI \
- p5-DBD-mysql>0:databases/p5-DBD-mysql
-RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}lxml>=0:devel/py-lxml@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}MySQLdb>=1.2.2:databases/py-MySQLdb@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}urlgrabber>=3.1.0_1:www/py-urlgrabber@${PY_FLAVOR} \
- p5-HTTP-Request-Params>=0:www/p5-HTTP-Request-Params \
- p5-LWP-UserAgent-Determined>=0:www/p5-LWP-UserAgent-Determined \
- p5-Net-UPnP>=0:multimedia/p5-Net-UPnP \
- p5-IO-Socket-INET6>=2.51:net/p5-IO-Socket-INET6 \
- p5-DBI>=0:databases/p5-DBI \
- p5-DBD-mysql>0:databases/p5-DBD-mysql
-.else
-CONFIGURE_ARGS+=--without-bindings=perl,python
+USERS= mythtv
+GROUPS= mythtv
+
+DATADIR= ${PREFIX}/share/mythtv
+SUB_FILES= pkg-message
.endif
+OPTIONS_DEFINE= BINDINGS JACK LIRC MYSQL PULSEAUDIO VDPAU
+OPTIONS_DEFAULT= BINDINGS VDPAU
+OPTIONS_SUB= yes
+
+BINDINGS_DESC= Perl and Python bindings
+BINDINGS_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}MySQLdb>=1.2.2:databases/py-MySQLdb@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}lxml>=0:devel/py-lxml@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}urlgrabber>=3.1.0_1:www/py-urlgrabber@${PY_FLAVOR} \
+ p5-DBI>=0:databases/p5-DBI \
+ p5-DBD-mysql>0:databases/p5-DBD-mysql \
+ p5-Net-UPnP>=0:multimedia/p5-Net-UPnP \
+ p5-IO-Socket-INET6>=2.51:net/p5-IO-Socket-INET6 \
+ p5-HTTP-Request-Params>=0:www/p5-HTTP-Request-Params \
+ p5-LWP-UserAgent-Determined>=0:www/p5-LWP-UserAgent-Determined
+BINDINGS_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}MySQLdb>=1.2.2:databases/py-MySQLdb@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}futures>0:devel/py-futures@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}lxml>=0:devel/py-lxml@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}requests-cache>0:www/py-requests-cache@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}urlgrabber>=3.1.0_1:www/py-urlgrabber@${PY_FLAVOR} \
+ p5-DBI>=0:databases/p5-DBI \
+ p5-DBD-mysql>0:databases/p5-DBD-mysql \
+ p5-Net-UPnP>=0:multimedia/p5-Net-UPnP \
+ p5-IO-Socket-INET6>=2.51:net/p5-IO-Socket-INET6 \
+ p5-HTTP-Request-Params>=0:www/p5-HTTP-Request-Params \
+ p5-LWP-UserAgent-Determined>=0:www/p5-LWP-UserAgent-Determined
+BINDINGS_CONFIGURE_ON= --python=${PYTHON_CMD}
+BINDINGS_CONFIGURE_OFF= --without-bindings=perl,python
+
+JACK_LIB_DEPENDS= libjack.so:audio/jack
+JACK_CONFIGURE_ON= --enable-audio-jack --enable-indev=jack
+JACK_CONFIGURE_OFF= --disable-audio-jack --disable-indev=jack
+
+LIRC_LIB_DEPENDS= liblirc_client.so:comms/lirc
+LIRC_CONFIGURE_ENABLE= lirc
+
+MYSQL_DESC= Install MySQL server in addition to client
+MYSQL_USES= mysql:client,server
+MYSQL_USES_OFF= mysql
+
+PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
+PULSEAUDIO_CONFIGURE_ENABLE= audio-pulse audio-pulseoutput
+
+VDPAU_LIB_DEPENDS= libvdpau.so:multimedia/libvdpau
+VDPAU_CONFIGURE_ENABLE= vdpau
+
post-patch:
@${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
${WRKSRC}/configure \
${WRKSRC}/libs/libmythtv/libmythtv.pro \
${WRKSRC}/bindings/perl/MythTV/Recording.pm \
- ${WRKSRC}/programs/mythtranscode/replex/Makefile.standalone \
+ ${WRKSRC}/programs/mythtranscode/external/replex/Makefile.standalone \
${WRKSRC}/programs/scripts/database/mythconverg_backup.pl \
${WRKSRC}/programs/scripts/database/mythconverg_restore.pl \
${WRKSRC}/programs/mythcommflag/mythcommflag-analyze
post-install:
+.if !defined(SLAVEPORT)
@${MKDIR} ${STAGEDIR}${PREFIX}/share/mythtv/database
- @${CP} ${WRKSRC}/database/mc.sql ${STAGEDIR}${PREFIX}/share/mythtv/database
+ ${INSTALL_DATA} ${WRKSRC}/database/mc.sql ${STAGEDIR}${PREFIX}/share/mythtv/database
+.endif
+ @${FIND} ${STAGEDIR}${PREFIX}/bin -type f -exec ${SH} -c "${FILE} -i '{}' | \
+ ${GREP} -q 'x-executable; charset=binary'" \; -print | ${XARGS} ${STRIP_CMD}
+ @(cd ${STAGEDIR}${PREFIX} && ${STRIP_CMD} lib/libmyth*.so lib/mythtv/filters/lib*.so)
+
+# Apply additional substitutions to pkg-plist generated by the 'makeplist' target
+create-plist: stage
+ @(cd ${.CURDIR} && ${MAKE} makeplist > pkg-plist && \
+ ${REINPLACE_CMD} -E \
+ -e '1d' -e '/etc\/rc.d\/mythbackend/d' -e '/packlist/d' \
+ -e '/mythfrontend.desktop/d' \
+ -e '/(^%%PYTHON_SITELIBDIR%%|^%%SITE_PERL%%|mythpython|mythwikiscripts)/s|^|%%BINDINGS%%|g' \
+ pkg-plist)
.include <bsd.port.mk>
diff --git a/multimedia/mythtv/distinfo b/multimedia/mythtv/distinfo
index 9892ce9b1d26..759d5152cb2e 100644
--- a/multimedia/mythtv/distinfo
+++ b/multimedia/mythtv/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1513802652
-SHA256 (MythTV-mythtv-v0.27.5_GH0.tar.gz) = 7e625f94332effeadfba8e7ae7c98d44a83bfc25b7c59e39adce67dc2f4e1e1b
-SIZE (MythTV-mythtv-v0.27.5_GH0.tar.gz) = 85652939
+TIMESTAMP = 1520812634
+SHA256 (MythTV-mythtv-v29.1_GH0.tar.gz) = 04a84eb0ded2d2b123624ab2b2e1b8cf824ff4bf8216e452b2516deb929082b2
+SIZE (MythTV-mythtv-v29.1_GH0.tar.gz) = 105616234
diff --git a/multimedia/mythtv/files/extrapatch-programs_programs.pro b/multimedia/mythtv/files/extrapatch-programs_programs.pro
new file mode 100644
index 000000000000..34118037bc20
--- /dev/null
+++ b/multimedia/mythtv/files/extrapatch-programs_programs.pro
@@ -0,0 +1,17 @@
+Disable backend components for multimedia/mythtv-frontend
+
+--- programs/programs.pro.orig 2018-01-11 12:39:22 UTC
++++ programs/programs.pro
+@@ -15,12 +15,4 @@ using_frontend {
+ !mingw:!win32-msvc*: SUBDIRS += mythtranscode/external/replex
+ }
+
+-using_backend {
+- SUBDIRS += mythbackend mythfilldatabase mythtv-setup
+- SUBDIRS += mythmetadatalookup
+-
+- !win32-msvc*:SUBDIRS += scripts
+- !mingw:!win32-msvc*: SUBDIRS += mythfilerecorder
+-}
+-
+ using_mythtranscode: SUBDIRS += mythtranscode
diff --git a/multimedia/mythtv/files/patch-CVE-2016-10190 b/multimedia/mythtv/files/patch-CVE-2016-10190
new file mode 100644
index 000000000000..2f051088b2df
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2016-10190
@@ -0,0 +1,239 @@
+From 0e0a413725e0221e1a9d0b7595e22bf57e23a09c Mon Sep 17 00:00:00 2001
+From: "Ronald S. Bultje" <rsbultje@gmail.com>
+Date: Mon, 5 Dec 2016 08:02:33 -0500
+Subject: [PATCH] http: make length/offset-related variables unsigned.
+
+Fixes #5992, reported and found by Paul Cher <paulcher@icloud.com>.
+
+(cherry picked from commit 2a05c8f813de6f2278827734bf8102291e7484aa)
+---
+ libavformat/http.c | 70 +++++++++++++++++++++++++++++-------------------------
+ 1 file changed, 38 insertions(+), 32 deletions(-)
+
+diff --git libavformat/http.c libavformat/http.c
+index d48958d8a3c..13f3be42271 100644
+--- external/FFmpeg/libavformat/http.c
++++ external/FFmpeg/libavformat/http.c
+@@ -62,8 +62,8 @@ typedef struct HTTPContext {
+ int line_count;
+ int http_code;
+ /* Used if "Transfer-Encoding: chunked" otherwise -1. */
+- int64_t chunksize;
+- int64_t off, end_off, filesize;
++ uint64_t chunksize;
++ uint64_t off, end_off, filesize;
+ char *location;
+ HTTPAuthState auth_state;
+ HTTPAuthState proxy_auth_state;
+@@ -95,9 +95,9 @@ typedef struct HTTPContext {
+ AVDictionary *cookie_dict;
+ int icy;
+ /* how much data was read since the last ICY metadata packet */
+- int icy_data_read;
++ uint64_t icy_data_read;
+ /* after how many bytes of read data a new metadata packet will be found */
+- int icy_metaint;
++ uint64_t icy_metaint;
+ char *icy_metadata_headers;
+ char *icy_metadata_packet;
+ AVDictionary *metadata;
+@@ -489,7 +489,7 @@ static int http_open(URLContext *h, const char *uri, int flags,
+ else
+ h->is_streamed = 1;
+
+- s->filesize = -1;
++ s->filesize = UINT64_MAX;
+ s->location = av_strdup(uri);
+ if (!s->location)
+ return AVERROR(ENOMEM);
+@@ -616,9 +616,9 @@ static void parse_content_range(URLContext *h, const char *p)
+
+ if (!strncmp(p, "bytes ", 6)) {
+ p += 6;
+- s->off = strtoll(p, NULL, 10);
++ s->off = strtoull(p, NULL, 10);
+ if ((slash = strchr(p, '/')) && strlen(slash) > 0)
+- s->filesize = strtoll(slash + 1, NULL, 10);
++ s->filesize = strtoull(slash + 1, NULL, 10);
+ }
+ if (s->seekable == -1 && (!s->is_akamai || s->filesize != 2147483647))
+ h->is_streamed = 0; /* we _can_ in fact seek */
+@@ -808,8 +808,9 @@ static int process_line(URLContext *h, char *line, int line_count,
+ if ((ret = parse_location(s, p)) < 0)
+ return ret;
+ *new_location = 1;
+- } else if (!av_strcasecmp(tag, "Content-Length") && s->filesize == -1) {
+- s->filesize = strtoll(p, NULL, 10);
++ } else if (!av_strcasecmp(tag, "Content-Length") &&
++ s->filesize == UINT64_MAX) {
++ s->filesize = strtoull(p, NULL, 10);
+ } else if (!av_strcasecmp(tag, "Content-Range")) {
+ parse_content_range(h, p);
+ } else if (!av_strcasecmp(tag, "Accept-Ranges") &&
+@@ -818,7 +819,7 @@ static int process_line(URLContext *h, char *line, int line_count,
+ h->is_streamed = 0;
+ } else if (!av_strcasecmp(tag, "Transfer-Encoding") &&
+ !av_strncasecmp(p, "chunked", 7)) {
+- s->filesize = -1;
++ s->filesize = UINT64_MAX;
+ s->chunksize = 0;
+ } else if (!av_strcasecmp(tag, "WWW-Authenticate")) {
+ ff_http_auth_handle_header(&s->auth_state, tag, p);
+@@ -842,7 +843,7 @@ static int process_line(URLContext *h, char *line, int line_count,
+ if (parse_cookie(s, p, &s->cookie_dict))
+ av_log(h, AV_LOG_WARNING, "Unable to parse '%s'\n", p);
+ } else if (!av_strcasecmp(tag, "Icy-MetaInt")) {
+- s->icy_metaint = strtoll(p, NULL, 10);
++ s->icy_metaint = strtoull(p, NULL, 10);
+ } else if (!av_strncasecmp(tag, "Icy-", 4)) {
+ if ((ret = parse_icy(s, tag, p)) < 0)
+ return ret;
+@@ -972,7 +973,7 @@ static int http_read_header(URLContext *h, int *new_location)
+ char line[MAX_URL_SIZE];
+ int err = 0;
+
+- s->chunksize = -1;
++ s->chunksize = UINT64_MAX;
+
+ for (;;) {
+ if ((err = http_get_line(s, line, sizeof(line))) < 0)
+@@ -1006,7 +1007,7 @@ static int http_connect(URLContext *h, const char *path, const char *local_path,
+ int post, err;
+ char headers[HTTP_HEADERS_SIZE] = "";
+ char *authstr = NULL, *proxyauthstr = NULL;
+- int64_t off = s->off;
++ uint64_t off = s->off;
+ int len = 0;
+ const char *method;
+ int send_expect_100 = 0;
+@@ -1060,7 +1061,7 @@ static int http_connect(URLContext *h, const char *path, const char *local_path,
+ // server supports seeking by analysing the reply headers.
+ if (!has_header(s->headers, "\r\nRange: ") && !post && (s->off > 0 || s->end_off || s->seekable == -1)) {
+ len += av_strlcatf(headers + len, sizeof(headers) - len,
+- "Range: bytes=%"PRId64"-", s->off);
++ "Range: bytes=%"PRIu64"-", s->off);
+ if (s->end_off)
+ len += av_strlcatf(headers + len, sizeof(headers) - len,
+ "%"PRId64, s->end_off - 1);
+@@ -1135,7 +1136,7 @@ static int http_connect(URLContext *h, const char *path, const char *local_path,
+ s->line_count = 0;
+ s->off = 0;
+ s->icy_data_read = 0;
+- s->filesize = -1;
++ s->filesize = UINT64_MAX;
+ s->willclose = 0;
+ s->end_chunked_post = 0;
+ s->end_header = 0;
+@@ -1175,15 +1176,13 @@ static int http_buf_read(URLContext *h, uint8_t *buf, int size)
+ memcpy(buf, s->buf_ptr, len);
+ s->buf_ptr += len;
+ } else {
+- int64_t target_end = s->end_off ? s->end_off : s->filesize;
+- if ((!s->willclose || s->chunksize < 0) &&
+- target_end >= 0 && s->off >= target_end)
++ uint64_t target_end = s->end_off ? s->end_off : s->filesize;
++ if ((!s->willclose || s->chunksize == UINT64_MAX) && s->off >= target_end)
+ return AVERROR_EOF;
+ len = ffurl_read(s->hd, buf, size);
+- if (!len && (!s->willclose || s->chunksize < 0) &&
+- target_end >= 0 && s->off < target_end) {
++ if (!len && (!s->willclose || s->chunksize == UINT64_MAX) && s->off < target_end) {
+ av_log(h, AV_LOG_ERROR,
+- "Stream ends prematurely at %"PRId64", should be %"PRId64"\n",
++ "Stream ends prematurely at %"PRIu64", should be %"PRIu64"\n",
+ s->off, target_end
+ );
+ return AVERROR(EIO);
+@@ -1247,7 +1246,7 @@ static int http_read_stream(URLContext *h, uint8_t *buf, int size)
+ return err;
+ }
+
+- if (s->chunksize >= 0) {
++ if (s->chunksize != UINT64_MAX) {
+ if (!s->chunksize) {
+ char line[32];
+
+@@ -1256,13 +1255,19 @@ static int http_read_stream(URLContext *h, uint8_t *buf, int size)
+ return err;
+ } while (!*line); /* skip CR LF from last chunk */
+
+- s->chunksize = strtoll(line, NULL, 16);
++ s->chunksize = strtoull(line, NULL, 16);
+
+- av_log(NULL, AV_LOG_TRACE, "Chunked encoding data size: %"PRId64"'\n",
++ av_log(h, AV_LOG_TRACE,
++ "Chunked encoding data size: %"PRIu64"'\n",
+ s->chunksize);
+
+ if (!s->chunksize)
+ return 0;
++ else if (s->chunksize == UINT64_MAX) {
++ av_log(h, AV_LOG_ERROR, "Invalid chunk size %"PRIu64"\n",
++ s->chunksize);
++ return AVERROR(EINVAL);
++ }
+ }
+ size = FFMIN(size, s->chunksize);
+ }
+@@ -1273,17 +1278,17 @@ static int http_read_stream(URLContext *h, uint8_t *buf, int size)
+ read_ret = http_buf_read(h, buf, size);
+ if ( (read_ret < 0 && s->reconnect && (!h->is_streamed || s->reconnect_streamed) && s->filesize > 0 && s->off < s->filesize)
+ || (read_ret == 0 && s->reconnect_at_eof && (!h->is_streamed || s->reconnect_streamed))) {
+- int64_t target = h->is_streamed ? 0 : s->off;
++ uint64_t target = h->is_streamed ? 0 : s->off;
+
+ if (s->reconnect_delay > s->reconnect_delay_max)
+ return AVERROR(EIO);
+
+- av_log(h, AV_LOG_INFO, "Will reconnect at %"PRId64" error=%s.\n", s->off, av_err2str(read_ret));
++ av_log(h, AV_LOG_INFO, "Will reconnect at %"PRIu64" error=%s.\n", s->off, av_err2str(read_ret));
+ av_usleep(1000U*1000*s->reconnect_delay);
+ s->reconnect_delay = 1 + 2*s->reconnect_delay;
+ seek_ret = http_seek_internal(h, target, SEEK_SET, 1);
+ if (seek_ret != target) {
+- av_log(h, AV_LOG_ERROR, "Failed to reconnect at %"PRId64".\n", target);
++ av_log(h, AV_LOG_ERROR, "Failed to reconnect at %"PRIu64".\n", target);
+ return read_ret;
+ }
+
+@@ -1338,10 +1343,11 @@ static int store_icy(URLContext *h, int size)
+ {
+ HTTPContext *s = h->priv_data;
+ /* until next metadata packet */
+- int remaining = s->icy_metaint - s->icy_data_read;
++ uint64_t remaining;
+
+- if (remaining < 0)
++ if (s->icy_metaint < s->icy_data_read)
+ return AVERROR_INVALIDDATA;
++ remaining = s->icy_metaint - s->icy_data_read;
+
+ if (!remaining) {
+ /* The metadata packet is variable sized. It has a 1 byte header
+@@ -1455,7 +1461,7 @@ static int64_t http_seek_internal(URLContext *h, int64_t off, int whence, int fo
+ {
+ HTTPContext *s = h->priv_data;
+ URLContext *old_hd = s->hd;
+- int64_t old_off = s->off;
++ uint64_t old_off = s->off;
+ uint8_t old_buf[BUFFER_SIZE];
+ int old_buf_size, ret;
+ AVDictionary *options = NULL;
+@@ -1466,7 +1472,7 @@ static int64_t http_seek_internal(URLContext *h, int64_t off, int whence, int fo
+ ((whence == SEEK_CUR && off == 0) ||
+ (whence == SEEK_SET && off == s->off)))
+ return s->off;
+- else if ((s->filesize == -1 && whence == SEEK_END))
++ else if ((s->filesize == UINT64_MAX && whence == SEEK_END))
+ return AVERROR(ENOSYS);
+
+ if (whence == SEEK_CUR)
+@@ -1621,7 +1627,7 @@ static int http_proxy_open(URLContext *h, const char *uri, int flags)
+ s->buf_ptr = s->buffer;
+ s->buf_end = s->buffer;
+ s->line_count = 0;
+- s->filesize = -1;
++ s->filesize = UINT64_MAX;
+ cur_auth_type = s->proxy_auth_state.auth_type;
+
+ /* Note: This uses buffering, potentially reading more than the
diff --git a/multimedia/mythtv/files/patch-CVE-2016-10191 b/multimedia/mythtv/files/patch-CVE-2016-10191
new file mode 100644
index 000000000000..607282c5015d
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2016-10191
@@ -0,0 +1,35 @@
+From 32b95471a86ae383c0f76361d954aec511f7043a Mon Sep 17 00:00:00 2001
+From: Michael Niedermayer <michael@niedermayer.cc>
+Date: Mon, 5 Dec 2016 11:14:51 +0100
+Subject: [PATCH] avformat/rtmppkt: Check for packet size mismatches
+
+Fixes out of array access
+
+Found-by: Paul Cher <paulcher@icloud.com>
+Reviewed-by: Paul Cher <paulcher@icloud.com>
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit 7d57ca4d9a75562fa32e40766211de150f8b3ee7)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavformat/rtmppkt.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git libavformat/rtmppkt.c libavformat/rtmppkt.c
+index 0d693c27f7f..cde0da78ce1 100644
+--- external/FFmpeg/libavformat/rtmppkt.c.orig
++++ external/FFmpeg/libavformat/rtmppkt.c
+@@ -235,6 +235,14 @@ static int rtmp_packet_read_one_chunk(URLContext *h, RTMPPacket *p,
+ if (hdr != RTMP_PS_TWELVEBYTES)
+ timestamp += prev_pkt[channel_id].timestamp;
+
++ if (prev_pkt[channel_id].read && size != prev_pkt[channel_id].size) {
++ av_log(NULL, AV_LOG_ERROR, "RTMP packet size mismatch %d != %d\n",
++ size,
++ prev_pkt[channel_id].size);
++ ff_rtmp_packet_destroy(&prev_pkt[channel_id]);
++ prev_pkt[channel_id].read = 0;
++ }
++
+ if (!prev_pkt[channel_id].read) {
+ if ((ret = ff_rtmp_packet_create(p, channel_id, type, timestamp,
+ size)) < 0)
diff --git a/multimedia/mythtv/files/patch-CVE-2016-10192 b/multimedia/mythtv/files/patch-CVE-2016-10192
new file mode 100644
index 000000000000..f2d9c9a9fbe4
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2016-10192
@@ -0,0 +1,40 @@
+From c12ee64e80af2517005231388fdf4ea78f16bb0e Mon Sep 17 00:00:00 2001
+From: Michael Niedermayer <michael@niedermayer.cc>
+Date: Mon, 5 Dec 2016 17:27:45 +0100
+Subject: [PATCH] ffserver: Check chunk size
+
+Fixes out of array access
+
+Fixes: poc_ffserver.py
+Found-by: Paul Cher <paulcher@icloud.com>
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit a5d25faa3f4b18dac737fdb35d0dd68eb0dc2156)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ ffserver.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git ffserver.c ffserver.c
+index 453d790e6cd..aec808e78cb 100644
+--- external/FFmpeg/ffserver.c.orig
++++ external/FFmpeg/ffserver.c
+@@ -2702,8 +2702,10 @@ static int http_receive_data(HTTPContext *c)
+ } else if (c->buffer_ptr - c->buffer >= 2 &&
+ !memcmp(c->buffer_ptr - 1, "\r\n", 2)) {
+ c->chunk_size = strtol(c->buffer, 0, 16);
+- if (c->chunk_size == 0) // end of stream
++ if (c->chunk_size <= 0) { // end of stream or invalid chunk size
++ c->chunk_size = 0;
+ goto fail;
++ }
+ c->buffer_ptr = c->buffer;
+ break;
+ } else if (++loop_run > 10)
+@@ -2725,6 +2727,7 @@ static int http_receive_data(HTTPContext *c)
+ /* end of connection : close it */
+ goto fail;
+ else {
++ av_assert0(len <= c->chunk_size);
+ c->chunk_size -= len;
+ c->buffer_ptr += len;
+ c->data_count += len;
diff --git a/multimedia/mythtv/files/patch-CVE-2017-05024 b/multimedia/mythtv/files/patch-CVE-2017-05024
new file mode 100644
index 000000000000..8df4a058c343
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-05024
@@ -0,0 +1,31 @@
+From ed2572b9c8f885e2a4764d2e34604442a71899a1 Mon Sep 17 00:00:00 2001
+From: Matt Wolenetz <wolenetz@google.com>
+Date: Wed, 14 Dec 2016 15:26:19 -0800
+Subject: [PATCH] lavf/mov.c: Avoid heap allocation wrap in mov_read_uuid
+
+Core of patch is from paul@paulmehta.com
+Reference https://crbug.com/643951
+
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+Check value reduced as the code does not support values beyond INT_MAX
+Also the check is moved to a more common place and before integer truncation
+
+(cherry picked from commit 2d453188c2303da641dafb048dc1806790526dfd)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavformat/mov.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git libavformat/mov.c libavformat/mov.c
+index 17d0475aae1..74b58255784 100644
+--- external/FFmpeg/libavformat/mov.c
++++ external/FFmpeg/libavformat/mov.c
+@@ -4436,7 +4436,7 @@ static int mov_read_uuid(MOVContext *c, AVIOContext *pb, MOVAtom atom)
+ 0x9c, 0x71, 0x99, 0x94, 0x91, 0xe3, 0xaf, 0xac
+ };
+
+- if (atom.size < sizeof(uuid) || atom.size == INT64_MAX)
++ if (atom.size < sizeof(uuid) || atom.size >= FFMIN(INT_MAX, SIZE_MAX))
+ return AVERROR_INVALIDDATA;
+
+ ret = avio_read(pb, uuid, sizeof(uuid));
diff --git a/multimedia/mythtv/files/patch-CVE-2017-05025 b/multimedia/mythtv/files/patch-CVE-2017-05025
new file mode 100644
index 000000000000..8d790d11542c
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-05025
@@ -0,0 +1,30 @@
+From cf8e004a51b08c6e8ceaeebca85ab84c7ed0b4cf Mon Sep 17 00:00:00 2001
+From: Matt Wolenetz <wolenetz@google.com>
+Date: Wed, 14 Dec 2016 15:24:42 -0800
+Subject: [PATCH] lavf/mov.c: Avoid heap allocation wrap in mov_read_hdlr
+
+Core of patch is from paul@paulmehta.com
+Reference https://crbug.com/643950
+
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+Check value reduced as the code does not support larger lengths
+
+(cherry picked from commit fd30e4d57fe5841385f845440688505b88c0f4a9)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavformat/mov.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git libavformat/mov.c libavformat/mov.c
+index 1e2141808da..17d0475aae1 100644
+--- external/FFmpeg/libavformat/mov.c
++++ external/FFmpeg/libavformat/mov.c
+@@ -739,6 +739,8 @@ static int mov_read_hdlr(MOVContext *c, AVIOContext *pb, MOVAtom atom)
+
+ title_size = atom.size - 24;
+ if (title_size > 0) {
++ if (title_size > FFMIN(INT_MAX, SIZE_MAX-1))
++ return AVERROR_INVALIDDATA;
+ title_str = av_malloc(title_size + 1); /* Add null terminator */
+ if (!title_str)
+ return AVERROR(ENOMEM);
diff --git a/multimedia/mythtv/files/patch-CVE-2017-07862 b/multimedia/mythtv/files/patch-CVE-2017-07862
new file mode 100644
index 000000000000..29a9aca325fb
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-07862
@@ -0,0 +1,28 @@
+From a1a14982ec5b9954637cdc9ce8daf01d211e5c79 Mon Sep 17 00:00:00 2001
+From: Michael Niedermayer <michael@niedermayer.cc>
+Date: Tue, 7 Feb 2017 15:49:09 +0100
+Subject: [PATCH] avcodec/pictordec: Fix logic error
+
+Fixes: 559/clusterfuzz-testcase-6424225917173760
+
+Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit 8c2ea3030af7b40a3c4275696fb5c76cdb80950a)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavcodec/pictordec.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git libavcodec/pictordec.c libavcodec/pictordec.c
+index ff6eb7f4fc9..0cfc7858326 100644
+--- external/FFmpeg/libavcodec/pictordec.c
++++ external/FFmpeg/libavcodec/pictordec.c
+@@ -142,7 +142,7 @@ static int decode_frame(AVCodecContext *avctx,
+
+ if (av_image_check_size(s->width, s->height, 0, avctx) < 0)
+ return -1;
+- if (s->width != avctx->width && s->height != avctx->height) {
++ if (s->width != avctx->width || s->height != avctx->height) {
+ ret = ff_set_dimensions(avctx, s->width, s->height);
+ if (ret < 0)
+ return ret;
diff --git a/multimedia/mythtv/files/patch-CVE-2017-07866 b/multimedia/mythtv/files/patch-CVE-2017-07866
new file mode 100644
index 000000000000..c37bbe4c19b1
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-07866
@@ -0,0 +1,37 @@
+From bd6c1d5149fbc4f2a0200ad99e7f56f4fb7d518a Mon Sep 17 00:00:00 2001
+From: Michael Niedermayer <michael@niedermayer.cc>
+Date: Mon, 23 Jan 2017 01:25:27 +0100
+Subject: [PATCH] avcodec/pngdec: Fix off by 1 size in decode_zbuf()
+
+Fixes out of array access
+Fixes: 444/fuzz-2-ffmpeg_VIDEO_AV_CODEC_ID_PNG_fuzzer
+
+Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit e371f031b942d73e02c090170975561fabd5c264)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavcodec/pngdec.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git libavcodec/pngdec.c libavcodec/pngdec.c
+index 36275ae43f5..7ade0cee661 100644
+--- external/FFmpeg/libavcodec/pngdec.c
++++ external/FFmpeg/libavcodec/pngdec.c
+@@ -437,13 +437,13 @@ static int decode_zbuf(AVBPrint *bp, const uint8_t *data,
+ av_bprint_init(bp, 0, -1);
+
+ while (zstream.avail_in > 0) {
+- av_bprint_get_buffer(bp, 1, &buf, &buf_size);
+- if (!buf_size) {
++ av_bprint_get_buffer(bp, 2, &buf, &buf_size);
++ if (buf_size < 2) {
+ ret = AVERROR(ENOMEM);
+ goto fail;
+ }
+ zstream.next_out = buf;
+- zstream.avail_out = buf_size;
++ zstream.avail_out = buf_size - 1;
+ ret = inflate(&zstream, Z_PARTIAL_FLUSH);
+ if (ret != Z_OK && ret != Z_STREAM_END) {
+ ret = AVERROR_EXTERNAL;
diff --git a/multimedia/mythtv/files/patch-CVE-2017-09608a b/multimedia/mythtv/files/patch-CVE-2017-09608a
new file mode 100644
index 000000000000..b1b3ead01b12
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-09608a
@@ -0,0 +1,116 @@
+From e1940d2458353943e2fab6bdb87d2278077e22a5 Mon Sep 17 00:00:00 2001
+From: Paul B Mahol <onemda@gmail.com>
+Date: Mon, 20 Mar 2017 22:47:48 +0100
+Subject: [PATCH] avcodec/dnxhd_parser: take into account compressed frame size
+ and skip it
+
+Fixes #6214 and vsynth1-dnxhd-720p-hr-lb.
+
+Signed-off-by: Paul B Mahol <onemda@gmail.com>
+---
+ libavcodec/dnxhd_parser.c | 65 +++++++++++++++++++++++++++----
+ tests/ref/vsynth/vsynth1-dnxhd-720p-hr-lb | 4 +-
+ 2 files changed, 60 insertions(+), 9 deletions(-)
+
+diff --git a/libavcodec/dnxhd_parser.c b/libavcodec/dnxhd_parser.c
+index 033b8ee7e11..4f9bbceeeb5 100644
+--- external/FFmpeg/libavcodec/dnxhd_parser.c
++++ external/FFmpeg/libavcodec/dnxhd_parser.c
+@@ -31,8 +31,24 @@ typedef struct {
+ ParseContext pc;
+ int interlaced;
+ int cur_field; /* first field is 0, second is 1 */
++ int cur_byte;
++ int remaining;
++ int w, h;
+ } DNXHDParserContext;
+
++static int dnxhd_get_hr_frame_size(int cid, int w, int h)
++{
++ int result, i = ff_dnxhd_get_cid_table(cid);
++
++ if (i < 0)
++ return i;
++
++ result = ((h + 15) / 16) * ((w + 15) / 16) * ff_dnxhd_cid_table[i].packet_scale.num / ff_dnxhd_cid_table[i].packet_scale.den;
++ result = (result + 2048) / 4096 * 4096;
++
++ return FFMAX(result, 8192);
++}
++
+ static int dnxhd_find_frame_end(DNXHDParserContext *dctx,
+ const uint8_t *buf, int buf_size)
+ {
+@@ -51,30 +67,65 @@ static int dnxhd_find_frame_end(DNXHDParserContext *dctx,
+ pic_found = 1;
+ interlaced = (state&2)>>1; /* byte following the 5-byte header prefix */
+ cur_field = state&1;
++ dctx->cur_byte = 0;
++ dctx->remaining = 0;
+ break;
+ }
+ }
+ }
+
+- if (pic_found) {
++ if (pic_found && !dctx->remaining) {
+ if (!buf_size) /* EOF considered as end of frame */
+ return 0;
+ for (; i < buf_size; i++) {
++ dctx->cur_byte++;
+ state = (state << 8) | buf[i];
+- if (ff_dnxhd_check_header_prefix(state & 0xffffffffff00LL) != 0) {
+- if (!interlaced || dctx->cur_field) {
++
++ if (dctx->cur_byte == 24) {
++ dctx->h = (state >> 32) & 0xFFFF;
++ } else if (dctx->cur_byte == 26) {
++ dctx->w = (state >> 32) & 0xFFFF;
++ } else if (dctx->cur_byte == 42) {
++ int cid = (state >> 32) & 0xFFFFFFFF;
++
++ if (cid <= 0)
++ continue;
++
++ dctx->remaining = avpriv_dnxhd_get_frame_size(cid);
++ if (dctx->remaining <= 0) {
++ dctx->remaining = dnxhd_get_hr_frame_size(cid, dctx->w, dctx->h);
++ if (dctx->remaining <= 0)
++ return dctx->remaining;
++ }
++ if (buf_size - i >= dctx->remaining && (!dctx->interlaced || dctx->cur_field)) {
++ int remaining = dctx->remaining;
++
+ pc->frame_start_found = 0;
+ pc->state64 = -1;
+ dctx->interlaced = interlaced;
+ dctx->cur_field = 0;
+- return i - 5;
++ dctx->cur_byte = 0;
++ dctx->remaining = 0;
++ return remaining;
+ } else {
+- /* continue, to get the second field */
+- dctx->interlaced = interlaced = (state&2)>>1;
+- dctx->cur_field = cur_field = state&1;
++ dctx->remaining -= buf_size;
+ }
+ }
+ }
++ } else if (pic_found) {
++ if (dctx->remaining > buf_size) {
++ dctx->remaining -= buf_size;
++ } else {
++ int remaining = dctx->remaining;
++
++ pc->frame_start_found = 0;
++ pc->state64 = -1;
++ dctx->interlaced = interlaced;
++ dctx->cur_field = 0;
++ dctx->cur_byte = 0;
++ dctx->remaining = 0;
++ return remaining;
++ }
+ }
+ pc->frame_start_found = pic_found;
+ pc->state64 = state;
diff --git a/multimedia/mythtv/files/patch-CVE-2017-09608b b/multimedia/mythtv/files/patch-CVE-2017-09608b
new file mode 100644
index 000000000000..7a28a94c3de1
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-09608b
@@ -0,0 +1,82 @@
+From da693f8daa62cb76a2aa05021d6c8d53a1b816b2 Mon Sep 17 00:00:00 2001
+From: Paul B Mahol <onemda@gmail.com>
+Date: Sun, 23 Apr 2017 11:53:57 +0200
+Subject: [PATCH] avcodec/dnxhd_parser: fix parsing interlaced video, simplify
+ code
+
+There appears to be no need to treat interlaced videos differently,
+also that code is flawed, as for at least one input cur_field would
+be always 0.
+
+Fixes ticket #6344.
+
+Signed-off-by: Paul B Mahol <onemda@gmail.com>
+(cherry picked from commit ac30754a148df58822a272555d1f6f860e42037e)
+---
+ libavcodec/dnxhd_parser.c | 14 +-------------
+ 1 file changed, 1 insertion(+), 13 deletions(-)
+
+diff --git a/libavcodec/dnxhd_parser.c b/libavcodec/dnxhd_parser.c
+index 4f9bbceeeb5..a1f632a620e 100644
+--- external/FFmpeg/libavcodec/dnxhd_parser.c
++++ external/FFmpeg/libavcodec/dnxhd_parser.c
+@@ -29,8 +29,6 @@
+
+ typedef struct {
+ ParseContext pc;
+- int interlaced;
+- int cur_field; /* first field is 0, second is 1 */
+ int cur_byte;
+ int remaining;
+ int w, h;
+@@ -56,8 +54,6 @@ static int dnxhd_find_frame_end(DNXHDParserContext *dctx,
+ uint64_t state = pc->state64;
+ int pic_found = pc->frame_start_found;
+ int i = 0;
+- int interlaced = dctx->interlaced;
+- int cur_field = dctx->cur_field;
+
+ if (!pic_found) {
+ for (i = 0; i < buf_size; i++) {
+@@ -65,8 +61,6 @@ static int dnxhd_find_frame_end(DNXHDParserContext *dctx,
+ if (ff_dnxhd_check_header_prefix(state & 0xffffffffff00LL) != 0) {
+ i++;
+ pic_found = 1;
+- interlaced = (state&2)>>1; /* byte following the 5-byte header prefix */
+- cur_field = state&1;
+ dctx->cur_byte = 0;
+ dctx->remaining = 0;
+ break;
+@@ -97,13 +91,11 @@ static int dnxhd_find_frame_end(DNXHDParserContext *dctx,
+ if (dctx->remaining <= 0)
+ return dctx->remaining;
+ }
+- if (buf_size - i >= dctx->remaining && (!dctx->interlaced || dctx->cur_field)) {
++ if (buf_size - i + 47 >= dctx->remaining) {
+ int remaining = dctx->remaining;
+
+ pc->frame_start_found = 0;
+ pc->state64 = -1;
+- dctx->interlaced = interlaced;
+- dctx->cur_field = 0;
+ dctx->cur_byte = 0;
+ dctx->remaining = 0;
+ return remaining;
+@@ -120,8 +112,6 @@ static int dnxhd_find_frame_end(DNXHDParserContext *dctx,
+
+ pc->frame_start_found = 0;
+ pc->state64 = -1;
+- dctx->interlaced = interlaced;
+- dctx->cur_field = 0;
+ dctx->cur_byte = 0;
+ dctx->remaining = 0;
+ return remaining;
+@@ -129,8 +119,6 @@ static int dnxhd_find_frame_end(DNXHDParserContext *dctx,
+ }
+ pc->frame_start_found = pic_found;
+ pc->state64 = state;
+- dctx->interlaced = interlaced;
+- dctx->cur_field = cur_field;
+ return END_NOT_FOUND;
+ }
+
diff --git a/multimedia/mythtv/files/patch-CVE-2017-09608c b/multimedia/mythtv/files/patch-CVE-2017-09608c
new file mode 100644
index 000000000000..a8fb3eb8897b
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-09608c
@@ -0,0 +1,45 @@
+From 0a709e2a10b8288a0cc383547924ecfe285cef89 Mon Sep 17 00:00:00 2001
+From: Michael Niedermayer <michael@niedermayer.cc>
+Date: Wed, 14 Jun 2017 16:58:20 +0200
+Subject: [PATCH] avcodec/dnxhd_parser: Do not return invalid value from
+ dnxhd_find_frame_end() on error
+
+Fixes: Null pointer dereference
+
+Fixes: CVE-2017-9608
+Found-by: Yihan Lian
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit 611b35627488a8d0763e75c25ee0875c5b7987dd)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavcodec/dnxhd_parser.c | 12 +++++++-----
+ 1 file changed, 7 insertions(+), 5 deletions(-)
+
+diff --git a/libavcodec/dnxhd_parser.c b/libavcodec/dnxhd_parser.c
+index a1f632a620e..f1166be1007 100644
+--- external/FFmpeg/libavcodec/dnxhd_parser.c
++++ external/FFmpeg/libavcodec/dnxhd_parser.c
+@@ -81,16 +81,18 @@ static int dnxhd_find_frame_end(DNXHDParserContext *dctx,
+ dctx->w = (state >> 32) & 0xFFFF;
+ } else if (dctx->cur_byte == 42) {
+ int cid = (state >> 32) & 0xFFFFFFFF;
++ int remaining;
+
+ if (cid <= 0)
+ continue;
+
+- dctx->remaining = avpriv_dnxhd_get_frame_size(cid);
+- if (dctx->remaining <= 0) {
+- dctx->remaining = dnxhd_get_hr_frame_size(cid, dctx->w, dctx->h);
+- if (dctx->remaining <= 0)
+- return dctx->remaining;
++ remaining = avpriv_dnxhd_get_frame_size(cid);
++ if (remaining <= 0) {
++ remaining = dnxhd_get_hr_frame_size(cid, dctx->w, dctx->h);
++ if (remaining <= 0)
++ continue;
+ }
++ dctx->remaining = remaining;
+ if (buf_size - i + 47 >= dctx->remaining) {
+ int remaining = dctx->remaining;
+
diff --git a/multimedia/mythtv/files/patch-CVE-2017-09991 b/multimedia/mythtv/files/patch-CVE-2017-09991
new file mode 100644
index 000000000000..4ce00103fb24
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-09991
@@ -0,0 +1,32 @@
+From 85c8c0c826e78d159ea242ce64d7e8feeeeca741 Mon Sep 17 00:00:00 2001
+From: Michael Niedermayer <michael@niedermayer.cc>
+Date: Sun, 7 May 2017 18:50:49 +0200
+Subject: [PATCH] avcodec/xwddec: Check bpp more completely
+
+Fixes out of array access
+Fixes: 1399/clusterfuzz-testcase-minimized-4866094172995584
+
+Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit 441026fcb13ac23aa10edc312bdacb6445a0ad06)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavcodec/xwddec.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git libavcodec/xwddec.c libavcodec/xwddec.c
+index 64cd8418a20..8b0845fc013 100644
+--- external/FFmpeg/libavcodec/xwddec.c
++++ external/FFmpeg/libavcodec/xwddec.c
+@@ -157,9 +157,9 @@ static int xwd_decode_frame(AVCodecContext *avctx, void *data,
+ case XWD_GRAY_SCALE:
+ if (bpp != 1 && bpp != 8)
+ return AVERROR_INVALIDDATA;
+- if (pixdepth == 1) {
++ if (bpp == 1 && pixdepth == 1) {
+ avctx->pix_fmt = AV_PIX_FMT_MONOWHITE;
+- } else if (pixdepth == 8) {
++ } else if (bpp == 8 && pixdepth == 8) {
+ avctx->pix_fmt = AV_PIX_FMT_GRAY8;
+ }
+ break;
diff --git a/multimedia/mythtv/files/patch-CVE-2017-09992 b/multimedia/mythtv/files/patch-CVE-2017-09992
new file mode 100644
index 000000000000..fe00c512b13d
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-09992
@@ -0,0 +1,29 @@
+From 536af4212100dee1577fe2d30814762c58038efc Mon Sep 17 00:00:00 2001
+From: Michael Niedermayer <michael@niedermayer.cc>
+Date: Fri, 5 May 2017 20:42:11 +0200
+Subject: [PATCH] avcodec/dfa: Fix off by 1 error
+
+Fixes out of array access
+Fixes: 1345/clusterfuzz-testcase-minimized-6062963045695488
+
+Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit f52fbf4f3ed02a7d872d8a102006f29b4421f360)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavcodec/dfa.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git libavcodec/dfa.c libavcodec/dfa.c
+index f45d019a792..5ddb647c4cb 100644
+--- external/FFmpeg/libavcodec/dfa.c
++++ external/FFmpeg/libavcodec/dfa.c
+@@ -175,7 +175,7 @@ static int decode_dds1(GetByteContext *gb, uint8_t *frame, int width, int height
+ return AVERROR_INVALIDDATA;
+ frame += v;
+ } else {
+- if (frame_end - frame < width + 3)
++ if (frame_end - frame < width + 4)
+ return AVERROR_INVALIDDATA;
+ frame[0] = frame[1] =
+ frame[width] = frame[width + 1] = bytestream2_get_byte(gb);
diff --git a/multimedia/mythtv/files/patch-CVE-2017-09993a b/multimedia/mythtv/files/patch-CVE-2017-09993a
new file mode 100644
index 000000000000..4233ec7558e2
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-09993a
@@ -0,0 +1,91 @@
+From 25dac3128b605f2867e3e0f0288b896f84d3a033 Mon Sep 17 00:00:00 2001
+From: Michael Niedermayer <michael@niedermayer.cc>
+Date: Sat, 3 Jun 2017 21:20:04 +0200
+Subject: [PATCH] avformat/hls: Check local file extensions
+
+This reduces the attack surface of local file-system
+information leaking.
+
+It prevents the existing exploit leading to an information leak. As
+well as similar hypothetical attacks.
+
+Leaks of information from files and symlinks ending in common multimedia extensions
+are still possible. But files with sensitive information like private keys and passwords
+generally do not use common multimedia filename extensions.
+It does not stop leaks via remote addresses in the LAN.
+
+The existing exploit depends on a specific decoder as well.
+It does appear though that the exploit should be possible with any decoder.
+The problem is that as long as sensitive information gets into the decoder,
+the output of the decoder becomes sensitive as well.
+The only obvious solution is to prevent access to sensitive information. Or to
+disable hls or possibly some of its feature. More complex solutions like
+checking the path to limit access to only subdirectories of the hls path may
+work as an alternative. But such solutions are fragile and tricky to implement
+portably and would not stop every possible attack nor would they work with all
+valid hls files.
+
+Developers have expressed their dislike / objected to disabling hls by default as well
+as disabling hls with local files. There also where objections against restricting
+remote url file extensions. This here is a less robust but also lower
+inconvenience solution.
+It can be applied stand alone or together with other solutions.
+limiting the check to local files was suggested by nevcairiel
+
+This recommits the security fix without the author name joke which was
+originally requested by Nicolas.
+
+Found-by: Emil Lerner and Pavel Cheremushkin
+Reported-by: Thierry Foucu <tfoucu@google.com>
+
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit 189ff4219644532bdfa7bab28dfedaee4d6d4021)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavformat/hls.c | 18 +++++++++++++++++-
+ 1 file changed, 17 insertions(+), 1 deletion(-)
+
+diff --git libavformat/hls.c libavformat/hls.c
+index 2bf86fadc64..ffefd284f86 100644
+--- external/FFmpeg/libavformat/hls.c
++++ external/FFmpeg/libavformat/hls.c
+@@ -204,6 +204,7 @@ typedef struct HLSContext {
+ char *http_proxy; ///< holds the address of the HTTP proxy server
+ AVDictionary *avio_opts;
+ int strict_std_compliance;
++ char *allowed_extensions;
+ } HLSContext;
+
+ static int read_chomp_line(AVIOContext *s, char *buf, int maxlen)
+@@ -618,8 +619,19 @@ static int open_url(AVFormatContext *s, AVIOContext **pb, const char *url,
+ return AVERROR_INVALIDDATA;
+
+ // only http(s) & file are allowed
+- if (!av_strstart(proto_name, "http", NULL) && !av_strstart(proto_name, "file", NULL))
++ if (av_strstart(proto_name, "file", NULL)) {
++ if (strcmp(c->allowed_extensions, "ALL") && !av_match_ext(url, c->allowed_extensions)) {
++ av_log(s, AV_LOG_ERROR,
++ "Filename extension of \'%s\' is not a common multimedia extension, blocked for security reasons.\n"
++ "If you wish to override this adjust allowed_extensions, you can set it to \'ALL\' to allow all\n",
++ url);
++ return AVERROR_INVALIDDATA;
++ }
++ } else if (av_strstart(proto_name, "http", NULL)) {
++ ;
++ } else
+ return AVERROR_INVALIDDATA;
++
+ if (!strncmp(proto_name, url, strlen(proto_name)) && url[strlen(proto_name)] == ':')
+ ;
+ else if (av_strstart(url, "crypto", NULL) && !strncmp(proto_name, url + 7, strlen(proto_name)) && url[7 + strlen(proto_name)] == ':')
+@@ -2127,6 +2139,10 @@ static int hls_probe(AVProbeData *p)
+ static const AVOption hls_options[] = {
+ {"live_start_index", "segment index to start live streams at (negative values are from the end)",
+ OFFSET(live_start_index), AV_OPT_TYPE_INT, {.i64 = -3}, INT_MIN, INT_MAX, FLAGS},
++ {"allowed_extensions", "List of file extensions that hls is allowed to access",
++ OFFSET(allowed_extensions), AV_OPT_TYPE_STRING,
++ {.str = "3gp,aac,avi,flac,mkv,m3u8,m4a,m4s,m4v,mpg,mov,mp2,mp3,mp4,mpeg,mpegts,ogg,ogv,oga,ts,vob,wav"},
++ INT_MIN, INT_MAX, FLAGS},
+ {NULL}
+ };
+
diff --git a/multimedia/mythtv/files/patch-CVE-2017-09993b b/multimedia/mythtv/files/patch-CVE-2017-09993b
new file mode 100644
index 000000000000..91d207be3d92
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-09993b
@@ -0,0 +1,31 @@
+From 5415c88e370692a3cf10b998ab230b4a02fc237f Mon Sep 17 00:00:00 2001
+From: Michael Niedermayer <michael@niedermayer.cc>
+Date: Tue, 30 May 2017 21:29:20 +0200
+Subject: [PATCH] avformat/avidec: Limit formats in gab2 to srt and ass/ssa
+
+This prevents part of one exploit leading to an information leak
+
+Found-by: Emil Lerner and Pavel Cheremushkin
+Reported-by: Thierry Foucu <tfoucu@google.com>
+
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit a5d849b149ca67ced2d271dc84db0bc95a548abb)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavformat/avidec.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git libavformat/avidec.c libavformat/avidec.c
+index ebd14abb12c..9afac825d43 100644
+--- external/FFmpeg/libavformat/avidec.c
++++ external/FFmpeg/libavformat/avidec.c
+@@ -1098,6 +1098,9 @@ static int read_gab2_sub(AVFormatContext *s, AVStream *st, AVPacket *pkt)
+ if (!sub_demuxer)
+ goto error;
+
++ if (strcmp(sub_demuxer->name, "srt") && strcmp(sub_demuxer->name, "ass"))
++ goto error;
++
+ if (!(ast->sub_ctx = avformat_alloc_context()))
+ goto error;
+
diff --git a/multimedia/mythtv/files/patch-CVE-2017-09994 b/multimedia/mythtv/files/patch-CVE-2017-09994
new file mode 100644
index 000000000000..090cfead2e5a
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-09994
@@ -0,0 +1,47 @@
+From 869e8b1d0f549e926ecb246f916c9066f881db4a Mon Sep 17 00:00:00 2001
+From: Michael Niedermayer <michael@niedermayer.cc>
+Date: Wed, 10 May 2017 18:37:49 +0200
+Subject: [PATCH] avcodec/webp: Always set pix_fmt
+
+Fixes: out of array access
+Fixes: 1434/clusterfuzz-testcase-minimized-6314998085189632
+Fixes: 1435/clusterfuzz-testcase-minimized-6483783723253760
+
+Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
+Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit 6b5d3fb26fb4be48e4966e4b1d97c2165538d4ef)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavcodec/vp8.c | 2 ++
+ libavcodec/webp.c | 3 +--
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git libavcodec/vp8.c libavcodec/vp8.c
+index 068223920e4..63e78492848 100644
+--- external/FFmpeg/libavcodec/vp8.c
++++ external/FFmpeg/libavcodec/vp8.c
+@@ -2548,6 +2548,8 @@ int vp78_decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
+ enum AVDiscard skip_thresh;
+ VP8Frame *av_uninit(curframe), *prev_frame;
+
++ av_assert0(avctx->pix_fmt == AV_PIX_FMT_YUVA420P || avctx->pix_fmt == AV_PIX_FMT_YUV420P);
++
+ if (is_vp7)
+ ret = vp7_decode_frame_header(s, avpkt->data, avpkt->size);
+ else
+diff --git libavcodec/webp.c libavcodec/webp.c
+index 7d23cc74356..b2ae5bcbba9 100644
+--- external/FFmpeg/libavcodec/webp.c
++++ external/FFmpeg/libavcodec/webp.c
+@@ -1327,9 +1327,8 @@ static int vp8_lossy_decode_frame(AVCodecContext *avctx, AVFrame *p,
+ if (!s->initialized) {
+ ff_vp8_decode_init(avctx);
+ s->initialized = 1;
+- if (s->has_alpha)
+- avctx->pix_fmt = AV_PIX_FMT_YUVA420P;
+ }
++ avctx->pix_fmt = s->has_alpha ? AV_PIX_FMT_YUVA420P : AV_PIX_FMT_YUV420P;
+ s->lossless = 0;
+
+ if (data_size > INT_MAX) {
diff --git a/multimedia/mythtv/files/patch-CVE-2017-09996a b/multimedia/mythtv/files/patch-CVE-2017-09996a
new file mode 100644
index 000000000000..a1785ef0d395
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-09996a
@@ -0,0 +1,29 @@
+From 7a69c1b2abfa96f0578cbd3ff82126b883ba6ef0 Mon Sep 17 00:00:00 2001
+From: Michael Niedermayer <michael@niedermayer.cc>
+Date: Sat, 6 May 2017 22:24:52 +0200
+Subject: [PATCH] avcodec/cdxl: Check format parameter
+
+Fixes out of array access
+Fixes: 1378/clusterfuzz-testcase-minimized-5715088008806400
+
+Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit e1b60aad77c27ed5d4dfc11e5e6a05a38c70489d)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavcodec/cdxl.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git libavcodec/cdxl.c libavcodec/cdxl.c
+index 7a9b41943d8..5c0ecb279c7 100644
+--- external/FFmpeg/libavcodec/cdxl.c
++++ external/FFmpeg/libavcodec/cdxl.c
+@@ -277,7 +277,7 @@ static int cdxl_decode_frame(AVCodecContext *avctx, void *data,
+ c->padded_bits = aligned_width - c->avctx->width;
+ if (c->video_size < aligned_width * avctx->height * (int64_t)c->bpp / 8)
+ return AVERROR_INVALIDDATA;
+- if (!encoding && c->palette_size && c->bpp <= 8) {
++ if (!encoding && c->palette_size && c->bpp <= 8 && c->format != CHUNKY) {
+ avctx->pix_fmt = AV_PIX_FMT_PAL8;
+ } else if (encoding == 1 && (c->bpp == 6 || c->bpp == 8)) {
+ if (c->palette_size != (1 << (c->bpp - 1)))
diff --git a/multimedia/mythtv/files/patch-CVE-2017-09996b b/multimedia/mythtv/files/patch-CVE-2017-09996b
new file mode 100644
index 000000000000..101dd1a7b4b4
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-09996b
@@ -0,0 +1,29 @@
+From 7f3a671ece8fd711e2ebc71a4e08cda591d810a8 Mon Sep 17 00:00:00 2001
+From: Michael Niedermayer <michael@niedermayer.cc>
+Date: Mon, 8 May 2017 11:46:03 +0200
+Subject: [PATCH] avcodec/cdxl: Check format for BGR24
+
+Fixes: out of array access
+Fixes: 1427/clusterfuzz-testcase-minimized-5020737339392000
+
+Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit 1e42736b95065c69a7481d0cf55247024f54b660)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavcodec/cdxl.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git libavcodec/cdxl.c libavcodec/cdxl.c
+index 5c0ecb279c7..78f5d50102f 100644
+--- external/FFmpeg/libavcodec/cdxl.c
++++ external/FFmpeg/libavcodec/cdxl.c
+@@ -279,7 +279,7 @@ static int cdxl_decode_frame(AVCodecContext *avctx, void *data,
+ return AVERROR_INVALIDDATA;
+ if (!encoding && c->palette_size && c->bpp <= 8 && c->format != CHUNKY) {
+ avctx->pix_fmt = AV_PIX_FMT_PAL8;
+- } else if (encoding == 1 && (c->bpp == 6 || c->bpp == 8)) {
++ } else if (encoding == 1 && (c->bpp == 6 || c->bpp == 8) && c->format != CHUNKY) {
+ if (c->palette_size != (1 << (c->bpp - 1)))
+ return AVERROR_INVALIDDATA;
+ avctx->pix_fmt = AV_PIX_FMT_BGR24;
diff --git a/multimedia/mythtv/files/patch-CVE-2017-11399 b/multimedia/mythtv/files/patch-CVE-2017-11399
new file mode 100644
index 000000000000..3668d0d1058f
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-11399
@@ -0,0 +1,49 @@
+From 5bb861d45b86803ec39295cfc04889d2a7138361 Mon Sep 17 00:00:00 2001
+From: Michael Niedermayer <michael@niedermayer.cc>
+Date: Sun, 16 Jul 2017 14:57:20 +0200
+Subject: [PATCH] avcodec/apedec: Fix integer overflow
+
+Fixes: out of array access
+Fixes: PoC.ape and others
+
+Found-by: Bingchang, Liu@VARAS of IIE
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit ba4beaf6149f7241c8bd85fe853318c2f6837ad0)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavcodec/apedec.c | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git libavcodec/apedec.c libavcodec/apedec.c
+index b99598b4ee7..072e3b42cff 100644
+--- external/FFmpeg/libavcodec/apedec.c
++++ external/FFmpeg/libavcodec/apedec.c
+@@ -1412,6 +1412,7 @@ static int ape_decode_frame(AVCodecContext *avctx, void *data,
+ int32_t *sample24;
+ int i, ch, ret;
+ int blockstodecode;
++ uint64_t decoded_buffer_size;
+
+ /* this should never be negative, but bad things will happen if it is, so
+ check it just to make sure. */
+@@ -1467,7 +1468,7 @@ static int ape_decode_frame(AVCodecContext *avctx, void *data,
+ skip_bits_long(&s->gb, offset);
+ }
+
+- if (!nblocks || nblocks > INT_MAX) {
++ if (!nblocks || nblocks > INT_MAX / 2 / sizeof(*s->decoded_buffer) - 8) {
+ av_log(avctx, AV_LOG_ERROR, "Invalid sample count: %"PRIu32".\n",
+ nblocks);
+ return AVERROR_INVALIDDATA;
+@@ -1493,8 +1494,9 @@ static int ape_decode_frame(AVCodecContext *avctx, void *data,
+ blockstodecode = s->samples;
+
+ /* reallocate decoded sample buffer if needed */
+- av_fast_malloc(&s->decoded_buffer, &s->decoded_size,
+- 2 * FFALIGN(blockstodecode, 8) * sizeof(*s->decoded_buffer));
++ decoded_buffer_size = 2LL * FFALIGN(blockstodecode, 8) * sizeof(*s->decoded_buffer);
++ av_assert0(decoded_buffer_size <= INT_MAX);
++ av_fast_malloc(&s->decoded_buffer, &s->decoded_size, decoded_buffer_size);
+ if (!s->decoded_buffer)
+ return AVERROR(ENOMEM);
+ memset(s->decoded_buffer, 0, s->decoded_size);
diff --git a/multimedia/mythtv/files/patch-CVE-2017-11665a b/multimedia/mythtv/files/patch-CVE-2017-11665a
new file mode 100644
index 000000000000..bf88f40fd0c8
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-11665a
@@ -0,0 +1,119 @@
+From f2a6f41dd7b962e0dd24fe695b002532a42e2230 Mon Sep 17 00:00:00 2001
+From: Michael Niedermayer <michael@niedermayer.cc>
+Date: Fri, 28 Jul 2017 13:41:59 +0200
+Subject: [PATCH] avformat/rtmppkt: Convert ff_amf_tag_size() to bytestream2
+
+Fixes: out of array accesses
+Fixes: crash-9238fa9e8d4fde3beda1f279626f53812cb001cb-SEGV
+
+Found-by: JunDong Xie of Ant-financial Light-Year Security Lab
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit 08c073434e25cba8c43aae5ed9554fdd594adfb0)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavformat/rtmppkt.c | 68 ++++++++++++++++++++++++++++++++++++---------------
+ 1 file changed, 48 insertions(+), 20 deletions(-)
+
+diff --git libavformat/rtmppkt.c libavformat/rtmppkt.c
+index cde0da78ce1..2ea88d09c57 100644
+--- external/FFmpeg/libavformat/rtmppkt.c
++++ external/FFmpeg/libavformat/rtmppkt.c
+@@ -433,50 +433,78 @@ void ff_rtmp_packet_destroy(RTMPPacket *pkt)
+ pkt->size = 0;
+ }
+
+-int ff_amf_tag_size(const uint8_t *data, const uint8_t *data_end)
++static int amf_tag_skip(GetByteContext *gb)
+ {
+- const uint8_t *base = data;
+ AMFDataType type;
+ unsigned nb = -1;
+ int parse_key = 1;
+
+- if (data >= data_end)
++ if (bytestream2_get_bytes_left(gb) < 1)
+ return -1;
+- switch ((type = *data++)) {
+- case AMF_DATA_TYPE_NUMBER: return 9;
+- case AMF_DATA_TYPE_BOOL: return 2;
+- case AMF_DATA_TYPE_STRING: return 3 + AV_RB16(data);
+- case AMF_DATA_TYPE_LONG_STRING: return 5 + AV_RB32(data);
+- case AMF_DATA_TYPE_NULL: return 1;
+- case AMF_DATA_TYPE_DATE: return 11;
++
++ type = bytestream2_get_byte(gb);
++ switch (type) {
++ case AMF_DATA_TYPE_NUMBER:
++ bytestream2_get_be64(gb);
++ return 0;
++ case AMF_DATA_TYPE_BOOL:
++ bytestream2_get_byte(gb);
++ return 0;
++ case AMF_DATA_TYPE_STRING:
++ bytestream2_skip(gb, bytestream2_get_be16(gb));
++ return 0;
++ case AMF_DATA_TYPE_LONG_STRING:
++ bytestream2_skip(gb, bytestream2_get_be32(gb));
++ return 0;
++ case AMF_DATA_TYPE_NULL:
++ return 0;
++ case AMF_DATA_TYPE_DATE:
++ bytestream2_skip(gb, 10);
++ return 0;
+ case AMF_DATA_TYPE_ARRAY:
+ parse_key = 0;
+ case AMF_DATA_TYPE_MIXEDARRAY:
+- nb = bytestream_get_be32(&data);
++ nb = bytestream2_get_be32(gb);
+ case AMF_DATA_TYPE_OBJECT:
+ while (nb-- > 0 || type != AMF_DATA_TYPE_ARRAY) {
+ int t;
+ if (parse_key) {
+- int size = bytestream_get_be16(&data);
++ int size = bytestream2_get_be16(gb);
+ if (!size) {
+- data++;
++ bytestream2_get_byte(gb);
+ break;
+ }
+- if (size < 0 || size >= data_end - data)
++ if (size < 0 || size >= bytestream2_get_bytes_left(gb))
+ return -1;
+- data += size;
++ bytestream2_skip(gb, size);
+ }
+- t = ff_amf_tag_size(data, data_end);
+- if (t < 0 || t >= data_end - data)
++ t = amf_tag_skip(gb);
++ if (t < 0 || bytestream2_get_bytes_left(gb) <= 0)
+ return -1;
+- data += t;
+ }
+- return data - base;
+- case AMF_DATA_TYPE_OBJECT_END: return 1;
++ return 0;
++ case AMF_DATA_TYPE_OBJECT_END: return 0;
+ default: return -1;
+ }
+ }
+
++int ff_amf_tag_size(const uint8_t *data, const uint8_t *data_end)
++{
++ GetByteContext gb;
++ int ret;
++
++ if (data >= data_end)
++ return -1;
++
++ bytestream2_init(&gb, data, data_end - data);
++
++ ret = amf_tag_skip(&gb);
++ if (ret < 0 || bytestream2_get_bytes_left(&gb) <= 0)
++ return -1;
++ av_assert0(bytestream2_tell(&gb) >= 0 && bytestream2_tell(&gb) <= data_end - data);
++ return bytestream2_tell(&gb);
++}
++
+ int ff_amf_get_field_value(const uint8_t *data, const uint8_t *data_end,
+ const uint8_t *name, uint8_t *dst, int dst_size)
+ {
diff --git a/multimedia/mythtv/files/patch-CVE-2017-11665b b/multimedia/mythtv/files/patch-CVE-2017-11665b
new file mode 100644
index 000000000000..666feff5b5a3
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-11665b
@@ -0,0 +1,111 @@
+From b375cc8bb74a33a7b38175023ee337b1c378281f Mon Sep 17 00:00:00 2001
+From: Michael Niedermayer <michael@niedermayer.cc>
+Date: Fri, 28 Jul 2017 14:37:26 +0200
+Subject: [PATCH] avformat/rtmppkt: Convert ff_amf_get_field_value() to
+ bytestream2
+
+Fixes: out of array accesses
+
+Found-by: JunDong Xie of Ant-financial Light-Year Security Lab
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit ffcc82219cef0928bed2d558b19ef6ea35634130)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavformat/rtmppkt.c | 57 +++++++++++++++++++++++++++++++++------------------
+ 1 file changed, 37 insertions(+), 20 deletions(-)
+
+diff --git libavformat/rtmppkt.c libavformat/rtmppkt.c
+index 2ea88d09c57..ca7838868e0 100644
+--- external/FFmpeg/libavformat/rtmppkt.c
++++ external/FFmpeg/libavformat/rtmppkt.c
+@@ -505,53 +505,70 @@ int ff_amf_tag_size(const uint8_t *data, const uint8_t *data_end)
+ return bytestream2_tell(&gb);
+ }
+
+-int ff_amf_get_field_value(const uint8_t *data, const uint8_t *data_end,
++static int amf_get_field_value2(GetByteContext *gb,
+ const uint8_t *name, uint8_t *dst, int dst_size)
+ {
+ int namelen = strlen(name);
+ int len;
+
+- while (*data != AMF_DATA_TYPE_OBJECT && data < data_end) {
+- len = ff_amf_tag_size(data, data_end);
+- if (len < 0)
+- len = data_end - data;
+- data += len;
++ while (bytestream2_peek_byte(gb) != AMF_DATA_TYPE_OBJECT && bytestream2_get_bytes_left(gb) > 0) {
++ int ret = amf_tag_skip(gb);
++ if (ret < 0)
++ return -1;
+ }
+- if (data_end - data < 3)
++ if (bytestream2_get_bytes_left(gb) < 3)
+ return -1;
+- data++;
++ bytestream2_get_byte(gb);
++
+ for (;;) {
+- int size = bytestream_get_be16(&data);
++ int size = bytestream2_get_be16(gb);
+ if (!size)
+ break;
+- if (size < 0 || size >= data_end - data)
++ if (size < 0 || size >= bytestream2_get_bytes_left(gb))
+ return -1;
+- data += size;
+- if (size == namelen && !memcmp(data-size, name, namelen)) {
+- switch (*data++) {
++ bytestream2_skip(gb, size);
++ if (size == namelen && !memcmp(gb->buffer-size, name, namelen)) {
++ switch (bytestream2_get_byte(gb)) {
+ case AMF_DATA_TYPE_NUMBER:
+- snprintf(dst, dst_size, "%g", av_int2double(AV_RB64(data)));
++ snprintf(dst, dst_size, "%g", av_int2double(bytestream2_get_be64(gb)));
+ break;
+ case AMF_DATA_TYPE_BOOL:
+- snprintf(dst, dst_size, "%s", *data ? "true" : "false");
++ snprintf(dst, dst_size, "%s", bytestream2_get_byte(gb) ? "true" : "false");
+ break;
+ case AMF_DATA_TYPE_STRING:
+- len = bytestream_get_be16(&data);
+- av_strlcpy(dst, data, FFMIN(len+1, dst_size));
++ len = bytestream2_get_be16(gb);
++ if (dst_size < 1)
++ return -1;
++ if (dst_size < len + 1)
++ len = dst_size - 1;
++ bytestream2_get_buffer(gb, dst, len);
++ dst[len] = 0;
+ break;
+ default:
+ return -1;
+ }
+ return 0;
+ }
+- len = ff_amf_tag_size(data, data_end);
+- if (len < 0 || len >= data_end - data)
++ len = amf_tag_skip(gb);
++ if (len < 0 || bytestream2_get_bytes_left(gb) <= 0)
+ return -1;
+- data += len;
+ }
+ return -1;
+ }
+
++int ff_amf_get_field_value(const uint8_t *data, const uint8_t *data_end,
++ const uint8_t *name, uint8_t *dst, int dst_size)
++{
++ GetByteContext gb;
++
++ if (data >= data_end)
++ return -1;
++
++ bytestream2_init(&gb, data, data_end - data);
++
++ return amf_get_field_value2(&gb, name, dst, dst_size);
++}
++
+ static const char* rtmp_packet_type(int type)
+ {
+ switch (type) {
diff --git a/multimedia/mythtv/files/patch-CVE-2017-11719 b/multimedia/mythtv/files/patch-CVE-2017-11719
new file mode 100644
index 000000000000..2633a0c962d2
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-11719
@@ -0,0 +1,41 @@
+From 6a10b962e3053b9fc851fcce23a60ac653abdc8c Mon Sep 17 00:00:00 2001
+From: Michael Niedermayer <michael@niedermayer.cc>
+Date: Wed, 26 Jul 2017 03:26:59 +0200
+Subject: [PATCH] avcodec/dnxhddec: Move mb height check out of non hr branch
+
+Fixes: out of array access
+Fixes: poc.dnxhd
+
+Found-by: Bingchang, Liu@VARAS of IIE
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit 296debd213bd6dce7647cedd34eb64e5b94cdc92)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavcodec/dnxhddec.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git libavcodec/dnxhddec.c libavcodec/dnxhddec.c
+index 4d1b006bb50..66a0de2e627 100644
+--- external/FFmpeg/libavcodec/dnxhddec.c
++++ external/FFmpeg/libavcodec/dnxhddec.c
+@@ -294,14 +294,18 @@ static int dnxhd_decode_header(DNXHDContext *ctx, AVFrame *frame,
+ if (ctx->mb_height > 68 && ff_dnxhd_check_header_prefix_hr(header_prefix)) {
+ ctx->data_offset = 0x170 + (ctx->mb_height << 2);
+ } else {
+- if (ctx->mb_height > 68 ||
+- (ctx->mb_height << frame->interlaced_frame) > (ctx->height + 15) >> 4) {
++ if (ctx->mb_height > 68) {
+ av_log(ctx->avctx, AV_LOG_ERROR,
+ "mb height too big: %d\n", ctx->mb_height);
+ return AVERROR_INVALIDDATA;
+ }
+ ctx->data_offset = 0x280;
+ }
++ if ((ctx->mb_height << frame->interlaced_frame) > (ctx->height + 15) >> 4) {
++ av_log(ctx->avctx, AV_LOG_ERROR,
++ "mb height too big: %d\n", ctx->mb_height);
++ return AVERROR_INVALIDDATA;
++ }
+
+ if (buf_size < ctx->data_offset) {
+ av_log(ctx->avctx, AV_LOG_ERROR,
diff --git a/multimedia/mythtv/files/patch-CVE-2017-14054 b/multimedia/mythtv/files/patch-CVE-2017-14054
new file mode 100644
index 000000000000..6ac3c5dda043
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-14054
@@ -0,0 +1,33 @@
+From 2bbef8ee271240ce4509b23fd33e35076715a39f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=E5=AD=99=E6=B5=A9=20and=20=E5=BC=A0=E6=B4=AA=E4=BA=AE=28?=
+ =?UTF-8?q?=E6=9C=9B=E5=88=9D=29?= <tony.sh and wangchu.zhl@alibaba-inc.com>
+Date: Fri, 25 Aug 2017 01:15:28 +0200
+Subject: [PATCH] avformat/rmdec: Fix DoS due to lack of eof check
+
+Fixes: loop.ivr
+
+Found-by: Xiaohei and Wangchu from Alibaba Security Team
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit 124eb202e70678539544f6268efc98131f19fa49)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavformat/rmdec.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git libavformat/rmdec.c libavformat/rmdec.c
+index 4d565291af2..7656812eb16 100644
+--- external/FFmpeg/libavformat/rmdec.c
++++ external/FFmpeg/libavformat/rmdec.c
+@@ -1238,8 +1238,11 @@ static int ivr_read_header(AVFormatContext *s)
+ av_log(s, AV_LOG_DEBUG, "%s = '%s'\n", key, val);
+ } else if (type == 4) {
+ av_log(s, AV_LOG_DEBUG, "%s = '0x", key);
+- for (j = 0; j < len; j++)
++ for (j = 0; j < len; j++) {
++ if (avio_feof(pb))
++ return AVERROR_INVALIDDATA;
+ av_log(s, AV_LOG_DEBUG, "%X", avio_r8(pb));
++ }
+ av_log(s, AV_LOG_DEBUG, "'\n");
+ } else if (len == 4 && type == 3 && !strncmp(key, "StreamCount", tlen)) {
+ nb_streams = value = avio_rb32(pb);
diff --git a/multimedia/mythtv/files/patch-CVE-2017-14055 b/multimedia/mythtv/files/patch-CVE-2017-14055
new file mode 100644
index 000000000000..f0190690aafe
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-14055
@@ -0,0 +1,28 @@
+From d4fc6b211f19365fbae4b4388ec396b293fda249 Mon Sep 17 00:00:00 2001
+From: Michael Niedermayer <michael@niedermayer.cc>
+Date: Fri, 25 Aug 2017 01:15:30 +0200
+Subject: [PATCH] avformat/mvdec: Fix DoS due to lack of eof check
+
+Fixes: loop.mv
+
+Found-by: Xiaohei and Wangchu from Alibaba Security Team
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit 4f05e2e2dc1a89f38cd9f0960a6561083d714f1e)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavformat/mvdec.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git libavformat/mvdec.c libavformat/mvdec.c
+index 80ef4b1569a..e9e9fab5036 100644
+--- external/FFmpeg/libavformat/mvdec.c
++++ external/FFmpeg/libavformat/mvdec.c
+@@ -338,6 +338,8 @@ static int mv_read_header(AVFormatContext *avctx)
+ uint32_t pos = avio_rb32(pb);
+ uint32_t asize = avio_rb32(pb);
+ uint32_t vsize = avio_rb32(pb);
++ if (avio_feof(pb))
++ return AVERROR_INVALIDDATA;
+ avio_skip(pb, 8);
+ av_add_index_entry(ast, pos, timestamp, asize, 0, AVINDEX_KEYFRAME);
+ av_add_index_entry(vst, pos + asize, i, vsize, 0, AVINDEX_KEYFRAME);
diff --git a/multimedia/mythtv/files/patch-CVE-2017-14056 b/multimedia/mythtv/files/patch-CVE-2017-14056
new file mode 100644
index 000000000000..5cb52a11b395
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-14056
@@ -0,0 +1,45 @@
+From 5bc9f70441d7e7067cba9188898c9252c72bab35 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=E5=AD=99=E6=B5=A9=20and=20=E5=BC=A0=E6=B4=AA=E4=BA=AE=28?=
+ =?UTF-8?q?=E6=9C=9B=E5=88=9D=29?= <tony.sh and wangchu.zhl@alibaba-inc.com>
+Date: Fri, 25 Aug 2017 01:15:29 +0200
+Subject: [PATCH] avformat/rl2: Fix DoS due to lack of eof check
+
+Fixes: loop.rl2
+
+Found-by: Xiaohei and Wangchu from Alibaba Security Team
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit 96f24d1bee7fe7bac08e2b7c74db1a046c9dc0de)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavformat/rl2.c | 15 ++++++++++++---
+ 1 file changed, 12 insertions(+), 3 deletions(-)
+
+diff --git libavformat/rl2.c libavformat/rl2.c
+index 0bec8f1d9ab..eb1682dfcb7 100644
+--- external/FFmpeg/libavformat/rl2.c
++++ external/FFmpeg/libavformat/rl2.c
+@@ -170,12 +170,21 @@ static av_cold int rl2_read_header(AVFormatContext *s)
+ }
+
+ /** read offset and size tables */
+- for(i=0; i < frame_count;i++)
++ for(i=0; i < frame_count;i++) {
++ if (avio_feof(pb))
++ return AVERROR_INVALIDDATA;
+ chunk_size[i] = avio_rl32(pb);
+- for(i=0; i < frame_count;i++)
++ }
++ for(i=0; i < frame_count;i++) {
++ if (avio_feof(pb))
++ return AVERROR_INVALIDDATA;
+ chunk_offset[i] = avio_rl32(pb);
+- for(i=0; i < frame_count;i++)
++ }
++ for(i=0; i < frame_count;i++) {
++ if (avio_feof(pb))
++ return AVERROR_INVALIDDATA;
+ audio_size[i] = avio_rl32(pb) & 0xFFFF;
++ }
+
+ /** build the sample index */
+ for(i=0;i<frame_count;i++){
diff --git a/multimedia/mythtv/files/patch-CVE-2017-14057 b/multimedia/mythtv/files/patch-CVE-2017-14057
new file mode 100644
index 000000000000..ba73f6c6d7ab
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-14057
@@ -0,0 +1,38 @@
+From f94517934bf0ff2510f472fa2bc4cd362951109c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=E5=AD=99=E6=B5=A9=20and=20=E5=BC=A0=E6=B4=AA=E4=BA=AE=28?=
+ =?UTF-8?q?=E6=9C=9B=E5=88=9D=29?= <tony.sh and wangchu.zhl@alibaba-inc.com>
+Date: Fri, 25 Aug 2017 12:37:25 +0200
+Subject: [PATCH] avformat/asfdec: Fix DoS due to lack of eof check
+
+Fixes: loop.asf
+
+Found-by: Xiaohei and Wangchu from Alibaba Security Team
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit 7f9ec5593e04827249e7aeb466da06a98a0d7329)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavformat/asfdec_f.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git libavformat/asfdec_f.c libavformat/asfdec_f.c
+index b973eff96e4..2cacafe50d5 100644
+--- external/FFmpeg/libavformat/asfdec_f.c
++++ external/FFmpeg/libavformat/asfdec_f.c
+@@ -749,13 +749,15 @@ static int asf_read_marker(AVFormatContext *s, int64_t size)
+ count = avio_rl32(pb); // markers count
+ avio_rl16(pb); // reserved 2 bytes
+ name_len = avio_rl16(pb); // name length
+- for (i = 0; i < name_len; i++)
+- avio_r8(pb); // skip the name
++ avio_skip(pb, name_len);
+
+ for (i = 0; i < count; i++) {
+ int64_t pres_time;
+ int name_len;
+
++ if (avio_feof(pb))
++ return AVERROR_INVALIDDATA;
++
+ avio_rl64(pb); // offset, 8 bytes
+ pres_time = avio_rl64(pb); // presentation time
+ pres_time -= asf->hdr.preroll * 10000;
diff --git a/multimedia/mythtv/files/patch-CVE-2017-14058 b/multimedia/mythtv/files/patch-CVE-2017-14058
new file mode 100644
index 000000000000..7bd9168bbd03
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-14058
@@ -0,0 +1,88 @@
+From 2920c7cec0b1958b59e5e7990078bea4428f6912 Mon Sep 17 00:00:00 2001
+From: Michael Niedermayer <michael@niedermayer.cc>
+Date: Sat, 26 Aug 2017 01:26:58 +0200
+Subject: [PATCH] avformat/hls: Fix DoS due to infinite loop
+
+Fixes: loop.m3u
+
+The default max iteration count of 1000 is arbitrary and ideas for a better solution are welcome
+
+Found-by: Xiaohei and Wangchu from Alibaba Security Team
+
+Previous version reviewed-by: Steven Liu <lingjiujianke@gmail.com>
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit 7ec414892ddcad88313848494b6fc5f437c9ca4a)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ doc/demuxers.texi | 18 ++++++++++++++++++
+ libavformat/hls.c | 7 +++++++
+ 2 files changed, 25 insertions(+)
+
+diff --git doc/demuxers.texi doc/demuxers.texi
+index 2934a1cf7f4..d56ad1622a8 100644
+--- external/FFmpeg/doc/demuxers.texi
++++ external/FFmpeg/doc/demuxers.texi
+@@ -293,6 +293,24 @@ used to end the output video at the length of the shortest input file,
+ which in this case is @file{input.mp4} as the GIF in this example loops
+ infinitely.
+
++@section hls
++
++HLS demuxer
++
++It accepts the following options:
++
++@table @option
++@item live_start_index
++segment index to start live streams at (negative values are from the end).
++
++@item allowed_extensions
++',' separated list of file extensions that hls is allowed to access.
++
++@item max_reload
++Maximum number of times a insufficient list is attempted to be reloaded.
++Default value is 1000.
++@end table
++
+ @section image2
+
+ Image file demuxer.
+diff --git libavformat/hls.c libavformat/hls.c
+index ffefd284f86..87948726da6 100644
+--- external/FFmpeg/libavformat/hls.c
++++ external/FFmpeg/libavformat/hls.c
+@@ -205,6 +205,7 @@ typedef struct HLSContext {
+ AVDictionary *avio_opts;
+ int strict_std_compliance;
+ char *allowed_extensions;
++ int max_reload;
+ } HLSContext;
+
+ static int read_chomp_line(AVIOContext *s, char *buf, int maxlen)
+@@ -1255,6 +1256,7 @@ static int read_data(void *opaque, uint8_t *buf, int buf_size)
+ HLSContext *c = v->parent->priv_data;
+ int ret, i;
+ int just_opened = 0;
++ int reload_count = 0;
+
+ restart:
+ if (!v->needed)
+@@ -1286,6 +1288,9 @@ static int read_data(void *opaque, uint8_t *buf, int buf_size)
+ reload_interval = default_reload_interval(v);
+
+ reload:
++ reload_count++;
++ if (reload_count > c->max_reload)
++ return AVERROR_EOF;
+ if (!v->finished &&
+ av_gettime_relative() - v->last_load_time >= reload_interval) {
+ if ((ret = parse_playlist(c, v->url, v, NULL)) < 0) {
+@@ -2143,6 +2148,8 @@ static const AVOption hls_options[] = {
+ OFFSET(allowed_extensions), AV_OPT_TYPE_STRING,
+ {.str = "3gp,aac,avi,flac,mkv,m3u8,m4a,m4s,m4v,mpg,mov,mp2,mp3,mp4,mpeg,mpegts,ogg,ogv,oga,ts,vob,wav"},
+ INT_MIN, INT_MAX, FLAGS},
++ {"max_reload", "Maximum number of times a insufficient list is attempted to be reloaded",
++ OFFSET(max_reload), AV_OPT_TYPE_INT, {.i64 = 1000}, 0, INT_MAX, FLAGS},
+ {NULL}
+ };
+
diff --git a/multimedia/mythtv/files/patch-CVE-2017-14059 b/multimedia/mythtv/files/patch-CVE-2017-14059
new file mode 100644
index 000000000000..fd62fe302a2a
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-14059
@@ -0,0 +1,34 @@
+From 98e177c7288574b336d80618f4ec5d1f94243070 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=E5=AD=99=E6=B5=A9=20and=20=E5=BC=A0=E6=B4=AA=E4=BA=AE=28?=
+ =?UTF-8?q?=E6=9C=9B=E5=88=9D=29?= <tony.sh and wangchu.zhl@alibaba-inc.com>
+Date: Fri, 25 Aug 2017 01:15:27 +0200
+Subject: [PATCH] avformat/cinedec: Fix DoS due to lack of eof check
+
+Fixes: loop.cine
+
+Found-by: Xiaohei and Wangchu from Alibaba Security Team
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit 7e80b63ecd259d69d383623e75b318bf2bd491f6)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavformat/cinedec.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git libavformat/cinedec.c libavformat/cinedec.c
+index 32cccf566b4..c615d4fc497 100644
+--- external/FFmpeg/libavformat/cinedec.c
++++ external/FFmpeg/libavformat/cinedec.c
+@@ -267,8 +267,12 @@ static int cine_read_header(AVFormatContext *avctx)
+
+ /* parse image offsets */
+ avio_seek(pb, offImageOffsets, SEEK_SET);
+- for (i = 0; i < st->duration; i++)
++ for (i = 0; i < st->duration; i++) {
++ if (avio_feof(pb))
++ return AVERROR_INVALIDDATA;
++
+ av_add_index_entry(st, avio_rl64(pb), i, 0, 0, AVINDEX_KEYFRAME);
++ }
+
+ return 0;
+ }
diff --git a/multimedia/mythtv/files/patch-CVE-2017-14169 b/multimedia/mythtv/files/patch-CVE-2017-14169
new file mode 100644
index 000000000000..f9514ce95b00
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-14169
@@ -0,0 +1,33 @@
+From 816f7337bf3ed3e08afdc28278668d8eb81910cb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=E5=AD=99=E6=B5=A9=28=E6=99=93=E9=BB=91=29?=
+ <tony.sh@alibaba-inc.com>
+Date: Tue, 29 Aug 2017 23:59:21 +0200
+Subject: [PATCH] avformat/mxfdec: Fix Sign error in mxf_read_primer_pack()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Fixes: 20170829B.mxf
+
+Co-Author: 张洪亮(望初)" <wangchu.zhl@alibaba-inc.com>
+Found-by: Xiaohei and Wangchu from Alibaba Security Team
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit 9d00fb9d70ee8c0cc7002b89318c5be00f1bbdad)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavformat/mxfdec.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git libavformat/mxfdec.c libavformat/mxfdec.c
+index e2e34b246f7..0e9153847e8 100644
+--- external/FFmpeg/libavformat/mxfdec.c
++++ external/FFmpeg/libavformat/mxfdec.c
+@@ -500,7 +500,7 @@ static int mxf_read_primer_pack(void *arg, AVIOContext *pb, int tag, int size, U
+ avpriv_request_sample(pb, "Primer pack item length %d", item_len);
+ return AVERROR_PATCHWELCOME;
+ }
+- if (item_num > 65536) {
++ if (item_num > 65536 || item_num < 0) {
+ av_log(mxf->fc, AV_LOG_ERROR, "item_num %d is too large\n", item_num);
+ return AVERROR_INVALIDDATA;
+ }
diff --git a/multimedia/mythtv/files/patch-CVE-2017-14170 b/multimedia/mythtv/files/patch-CVE-2017-14170
new file mode 100644
index 000000000000..598f9bde9a7e
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-14170
@@ -0,0 +1,43 @@
+From 9cbac3602610afa0867b03bc1475c5c13441d096 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=E5=AD=99=E6=B5=A9=28=E6=99=93=E9=BB=91=29?=
+ <tony.sh@alibaba-inc.com>
+Date: Tue, 29 Aug 2017 23:59:21 +0200
+Subject: [PATCH] avformat/mxfdec: Fix DoS issues in
+ mxf_read_index_entry_array()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Fixes: 20170829A.mxf
+
+Co-Author: 张洪亮(望初)" <wangchu.zhl@alibaba-inc.com>
+Found-by: Xiaohei and Wangchu from Alibaba Security Team
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit 900f39692ca0337a98a7cf047e4e2611071810c2)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavformat/mxfdec.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git libavformat/mxfdec.c libavformat/mxfdec.c
+index 2ad0c288f89..e2e34b246f7 100644
+--- external/FFmpeg/libavformat/mxfdec.c
++++ external/FFmpeg/libavformat/mxfdec.c
+@@ -899,6 +899,8 @@ static int mxf_read_index_entry_array(AVIOContext *pb, MXFIndexTableSegment *seg
+ segment->nb_index_entries = avio_rb32(pb);
+
+ length = avio_rb32(pb);
++ if(segment->nb_index_entries && length < 11)
++ return AVERROR_INVALIDDATA;
+
+ if (!(segment->temporal_offset_entries=av_calloc(segment->nb_index_entries, sizeof(*segment->temporal_offset_entries))) ||
+ !(segment->flag_entries = av_calloc(segment->nb_index_entries, sizeof(*segment->flag_entries))) ||
+@@ -909,6 +911,8 @@ static int mxf_read_index_entry_array(AVIOContext *pb, MXFIndexTableSegment *seg
+ }
+
+ for (i = 0; i < segment->nb_index_entries; i++) {
++ if(avio_feof(pb))
++ return AVERROR_INVALIDDATA;
+ segment->temporal_offset_entries[i] = avio_r8(pb);
+ avio_r8(pb); /* KeyFrameOffset */
+ segment->flag_entries[i] = avio_r8(pb);
diff --git a/multimedia/mythtv/files/patch-CVE-2017-14171 b/multimedia/mythtv/files/patch-CVE-2017-14171
new file mode 100644
index 000000000000..a5b729aea2af
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-14171
@@ -0,0 +1,38 @@
+From a051de092e9c709b69d24d94b66a382909be67d5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=E5=AD=99=E6=B5=A9=28=E6=99=93=E9=BB=91=29?=
+ <tony.sh@alibaba-inc.com>
+Date: Tue, 29 Aug 2017 23:59:21 +0200
+Subject: [PATCH] avformat/nsvdec: Fix DoS due to lack of eof check in
+ nsvs_file_offset loop.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Fixes: 20170829.nsv
+
+Co-Author: 张洪亮(望初)" <wangchu.zhl@alibaba-inc.com>
+Found-by: Xiaohei and Wangchu from Alibaba Security Team
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit c24bcb553650b91e9eff15ef6e54ca73de2453b7)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavformat/nsvdec.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git libavformat/nsvdec.c libavformat/nsvdec.c
+index 507fb396a51..16d2fa59e21 100644
+--- external/FFmpeg/libavformat/nsvdec.c
++++ external/FFmpeg/libavformat/nsvdec.c
+@@ -350,8 +350,11 @@ static int nsv_parse_NSVf_header(AVFormatContext *s)
+ if (!nsv->nsvs_file_offset)
+ return AVERROR(ENOMEM);
+
+- for(i=0;i<table_entries_used;i++)
++ for(i=0;i<table_entries_used;i++) {
++ if (avio_feof(pb))
++ return AVERROR_INVALIDDATA;
+ nsv->nsvs_file_offset[i] = avio_rl32(pb) + size;
++ }
+
+ if(table_entries > table_entries_used &&
+ avio_rl32(pb) == MKTAG('T','O','C','2')) {
diff --git a/multimedia/mythtv/files/patch-CVE-2017-14222 b/multimedia/mythtv/files/patch-CVE-2017-14222
new file mode 100644
index 000000000000..bc57775e06fb
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-14222
@@ -0,0 +1,34 @@
+From c9527df274ada02a19c2f973b29d1d5b7069d4bf Mon Sep 17 00:00:00 2001
+From: Michael Niedermayer <michael@niedermayer.cc>
+Date: Tue, 5 Sep 2017 00:16:29 +0200
+Subject: [PATCH] avformat/mov: Fix DoS in read_tfra()
+
+Fixes: Missing EOF check in loop
+No testcase
+
+Found-by: Xiaohei and Wangchu from Alibaba Security Team
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit 9cb4eb772839c5e1de2855d126bf74ff16d13382)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavformat/mov.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git libavformat/mov.c libavformat/mov.c
+index 405476fd712..b97aa001a37 100644
+--- external/FFmpeg/libavformat/mov.c
++++ external/FFmpeg/libavformat/mov.c
+@@ -5394,6 +5394,13 @@ static int read_tfra(MOVContext *mov, AVIOContext *f)
+ }
+ for (i = 0; i < index->item_count; i++) {
+ int64_t time, offset;
++
++ if (avio_feof(f)) {
++ index->item_count = 0;
++ av_freep(&index->items);
++ return AVERROR_INVALIDDATA;
++ }
++
+ if (version == 1) {
+ time = avio_rb64(f);
+ offset = avio_rb64(f);
diff --git a/multimedia/mythtv/files/patch-CVE-2017-14223 b/multimedia/mythtv/files/patch-CVE-2017-14223
new file mode 100644
index 000000000000..3b3237d60168
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-14223
@@ -0,0 +1,32 @@
+From 4e4177dde23be77a97887f409f237e17ef53f329 Mon Sep 17 00:00:00 2001
+From: Michael Niedermayer <michael@niedermayer.cc>
+Date: Tue, 5 Sep 2017 00:16:29 +0200
+Subject: [PATCH] avformat/asfdec: Fix DoS in asf_build_simple_index()
+
+Fixes: Missing EOF check in loop
+No testcase
+
+Found-by: Xiaohei and Wangchu from Alibaba Security Team
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit afc9c683ed9db01edb357bc8c19edad4282b3a97)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavformat/asfdec_f.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git libavformat/asfdec_f.c libavformat/asfdec_f.c
+index 2cacafe50d5..d9dfbf0fa33 100644
+--- external/FFmpeg/libavformat/asfdec_f.c
++++ external/FFmpeg/libavformat/asfdec_f.c
+@@ -1610,6 +1610,11 @@ static int asf_build_simple_index(AVFormatContext *s, int stream_index)
+ int64_t pos = s->internal->data_offset + s->packet_size * (int64_t)pktnum;
+ int64_t index_pts = FFMAX(av_rescale(itime, i, 10000) - asf->hdr.preroll, 0);
+
++ if (avio_feof(s->pb)) {
++ ret = AVERROR_INVALIDDATA;
++ goto end;
++ }
++
+ if (pos != last_pos) {
+ av_log(s, AV_LOG_DEBUG, "pktnum:%d, pktct:%d pts: %"PRId64"\n",
+ pktnum, pktct, index_pts);
diff --git a/multimedia/mythtv/files/patch-CVE-2017-14225 b/multimedia/mythtv/files/patch-CVE-2017-14225
new file mode 100644
index 000000000000..43c36c4df9f1
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-14225
@@ -0,0 +1,48 @@
+From 726133b6d2cd8f5f43b5af536024d8e02791d8cf Mon Sep 17 00:00:00 2001
+From: Michael Niedermayer <michael@niedermayer.cc>
+Date: Tue, 22 Aug 2017 11:02:38 +0200
+Subject: [PATCH] ffprobe: Fix null pointer dereference with color primaries
+
+Found-by: AD-lab of venustech
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit 837cb4325b712ff1aab531bf41668933f61d75d2)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit b2c39fcc3c0749490dc93bca80f56724878b55fe)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ ffprobe.c | 15 +++++++++++----
+ 1 file changed, 11 insertions(+), 4 deletions(-)
+
+diff --git ffprobe.c ffprobe.c
+index 79fe296489d..703304a8c0f 100644
+--- external/FFmpeg/ffprobe.c
++++ external/FFmpeg/ffprobe.c
+@@ -1789,6 +1789,16 @@ static void print_pkt_side_data(WriterContext *w,
+ writer_print_section_footer(w);
+ }
+
++static void print_primaries(WriterContext *w, enum AVColorPrimaries color_primaries)
++{
++ const char *val = av_color_primaries_name(color_primaries);
++ if (!val || color_primaries == AVCOL_PRI_UNSPECIFIED) {
++ print_str_opt("color_primaries", "unknown");
++ } else {
++ print_str("color_primaries", val);
++ }
++}
++
+ static void show_packet(WriterContext *w, InputFile *ifile, AVPacket *pkt, int packet_idx)
+ {
+ char val_str[128];
+@@ -2258,10 +2268,7 @@ static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_id
+ else
+ print_str_opt("color_transfer", av_color_transfer_name(par->color_trc));
+
+- if (par->color_primaries != AVCOL_PRI_UNSPECIFIED)
+- print_str("color_primaries", av_color_primaries_name(par->color_primaries));
+- else
+- print_str_opt("color_primaries", av_color_primaries_name(par->color_primaries));
++ print_primaries(w, par->color_primaries);
+
+ if (par->chroma_location != AVCHROMA_LOC_UNSPECIFIED)
+ print_str("chroma_location", av_chroma_location_name(par->chroma_location));
diff --git a/multimedia/mythtv/files/patch-CVE-2017-14767 b/multimedia/mythtv/files/patch-CVE-2017-14767
new file mode 100644
index 000000000000..6a529ed7bffd
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-14767
@@ -0,0 +1,28 @@
+From 53a6cdf89d694be1f075729f16e0a9e2dcbbcb78 Mon Sep 17 00:00:00 2001
+From: Michael Niedermayer <michael@niedermayer.cc>
+Date: Wed, 23 Aug 2017 21:30:37 +0200
+Subject: [PATCH] avformat/rtpdec_h264: Fix heap-buffer-overflow
+
+Fixes: rtp_sdp/poc.sdp
+
+Found-by: Bingchang <l.bing.chang.bc@gmail.com>
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit c42a1388a6d1bfd8001bf6a4241d8ca27e49326d)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavformat/rtpdec_h264.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git libavformat/rtpdec_h264.c libavformat/rtpdec_h264.c
+index 8dd56a549e4..6f8148ab6d5 100644
+--- external/FFmpeg/libavformat/rtpdec_h264.c
++++ external/FFmpeg/libavformat/rtpdec_h264.c
+@@ -166,7 +166,7 @@ static int sdp_parse_fmtp_config_h264(AVFormatContext *s,
+ parse_profile_level_id(s, h264_data, value);
+ } else if (!strcmp(attr, "sprop-parameter-sets")) {
+ int ret;
+- if (value[strlen(value) - 1] == ',') {
++ if (*value == 0 || value[strlen(value) - 1] == ',') {
+ av_log(s, AV_LOG_WARNING, "Missing PPS in sprop-parameter-sets, ignoring\n");
+ return 0;
+ }
diff --git a/multimedia/mythtv/files/patch-CVE-2017-15186 b/multimedia/mythtv/files/patch-CVE-2017-15186
new file mode 100644
index 000000000000..4dbc51f1e254
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-15186
@@ -0,0 +1,78 @@
+From 0eb0b21c7f4f2b6a3a74d2d252f95b81a4d472c3 Mon Sep 17 00:00:00 2001
+From: Michael Niedermayer <michael@niedermayer.cc>
+Date: Sat, 30 Sep 2017 00:20:09 +0200
+Subject: [PATCH] avcodec/x86/lossless_videoencdsp: Fix handling of small
+ widths
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Fixes out of array access
+Fixes: crash-huf.avi
+
+Regression since: 6b41b4414934cc930468ccd5db598dd6ef643987
+
+This could also be fixed by adding checks in the C code that calls the dsp
+
+Found-by: Zhibin Hu and 连一汉 <lianyihan@360.cn>
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit df62b70de8aaa285168e72fe8f6e740843ca91fa)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavcodec/x86/huffyuvencdsp.asm | 13 +++++++------
+ 1 file changed, 7 insertions(+), 6 deletions(-)
+
+diff --git libavcodec/x86/huffyuvencdsp.asm libavcodec/x86/huffyuvencdsp.asm
+index a55a1de65de..7a1ce2e839e 100644
+--- external/FFmpeg/libavcodec/x86/huffyuvencdsp.asm
++++ external/FFmpeg/libavcodec/x86/huffyuvencdsp.asm
+@@ -42,10 +42,11 @@ cglobal diff_bytes, 4,5,2, dst, src1, src2, w
+ %define i t0q
+ %endmacro
+
+-; label to jump to if w < regsize
+-%macro DIFF_BYTES_LOOP_PREP 1
++; labels to jump to if w < regsize and w < 0
++%macro DIFF_BYTES_LOOP_PREP 2
+ mov i, wq
+ and i, -2 * regsize
++ js %2
+ jz %1
+ add dstq, i
+ add src1q, i
+@@ -87,7 +88,7 @@ cglobal diff_bytes, 4,5,2, dst, src1, src2, w
+ %if mmsize > 16
+ ; fall back to narrower xmm
+ %define regsize mmsize / 2
+- DIFF_BYTES_LOOP_PREP .setup_loop_gpr_aa
++ DIFF_BYTES_LOOP_PREP .setup_loop_gpr_aa, .end_aa
+ .loop2_%1%2:
+ DIFF_BYTES_LOOP_CORE %1, %2, xm0, xm1
+ add i, 2 * regsize
+@@ -114,7 +115,7 @@ cglobal diff_bytes, 4,5,2, dst, src1, src2, w
+ INIT_MMX mmx
+ DIFF_BYTES_PROLOGUE
+ %define regsize mmsize
+- DIFF_BYTES_LOOP_PREP .skip_main_aa
++ DIFF_BYTES_LOOP_PREP .skip_main_aa, .end_aa
+ DIFF_BYTES_BODY a, a
+ %undef i
+ %endif
+@@ -122,7 +123,7 @@ DIFF_BYTES_PROLOGUE
+ INIT_XMM sse2
+ DIFF_BYTES_PROLOGUE
+ %define regsize mmsize
+- DIFF_BYTES_LOOP_PREP .skip_main_aa
++ DIFF_BYTES_LOOP_PREP .skip_main_aa, .end_aa
+ test dstq, regsize - 1
+ jnz .loop_uu
+ test src1q, regsize - 1
+@@ -138,7 +139,7 @@ DIFF_BYTES_PROLOGUE
+ %define regsize mmsize
+ ; Directly using unaligned SSE2 version is marginally faster than
+ ; branching based on arguments.
+- DIFF_BYTES_LOOP_PREP .skip_main_uu
++ DIFF_BYTES_LOOP_PREP .skip_main_uu, .end_uu
+ test dstq, regsize - 1
+ jnz .loop_uu
+ test src1q, regsize - 1
diff --git a/multimedia/mythtv/files/patch-CVE-2017-16840 b/multimedia/mythtv/files/patch-CVE-2017-16840
new file mode 100644
index 000000000000..0435c6b9749c
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-16840
@@ -0,0 +1,93 @@
+From 519a54cc195b92fe6ba71fd156e31e944d862d7e Mon Sep 17 00:00:00 2001
+From: Rostislav Pehlivanov <atomnuker@gmail.com>
+Date: Wed, 8 Nov 2017 23:50:04 +0000
+Subject: [PATCH] vc2enc_dwt: pad the temporary buffer by the slice size
+
+Since non-Haar wavelets need to look into pixels outside the frame, we
+need to pad the buffer. The old factor of two seemed to be a workaround
+that fact and only padded to the left and bottom. This correctly pads
+by the slice size and as such reduces memory usage and potential
+exploits.
+Reported by Liu Bingchang.
+
+Ideally, there should be no temporary buffer but the encoder is designed
+to deinterleave the coefficients into the classical wavelet structure
+with the lower frequency values in the top left corner.
+
+Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
+(cherry picked from commit 3228ac730c11eca49d5680d5550128e397061c85)
+---
+ libavcodec/vc2enc.c | 3 ++-
+ libavcodec/vc2enc_dwt.c | 12 +++++++++---
+ libavcodec/vc2enc_dwt.h | 4 +++-
+ 3 files changed, 14 insertions(+), 5 deletions(-)
+
+diff --git libavcodec/vc2enc.c libavcodec/vc2enc.c
+index eda390163ff..745c6e974d5 100644
+--- external/FFmpeg/libavcodec/vc2enc.c
++++ external/FFmpeg/libavcodec/vc2enc.c
+@@ -1190,7 +1190,8 @@ static av_cold int vc2_encode_init(AVCodecContext *avctx)
+ /* DWT init */
+ if (ff_vc2enc_init_transforms(&s->transform_args[i].t,
+ s->plane[i].coef_stride,
+- s->plane[i].dwt_height))
++ s->plane[i].dwt_height,
++ s->slice_width, s->slice_height))
+ goto alloc_fail;
+ }
+
+diff --git libavcodec/vc2enc_dwt.c libavcodec/vc2enc_dwt.c
+index c60b003a313..d22af8a3138 100644
+--- external/FFmpeg/libavcodec/vc2enc_dwt.c
++++ external/FFmpeg/libavcodec/vc2enc_dwt.c
+@@ -255,21 +255,27 @@ static void vc2_subband_dwt_haar_shift(VC2TransformContext *t, dwtcoef *data,
+ dwt_haar(t, data, stride, width, height, 1);
+ }
+
+-av_cold int ff_vc2enc_init_transforms(VC2TransformContext *s, int p_width, int p_height)
++av_cold int ff_vc2enc_init_transforms(VC2TransformContext *s, int p_stride,
++ int p_height, int slice_w, int slice_h)
+ {
+ s->vc2_subband_dwt[VC2_TRANSFORM_9_7] = vc2_subband_dwt_97;
+ s->vc2_subband_dwt[VC2_TRANSFORM_5_3] = vc2_subband_dwt_53;
+ s->vc2_subband_dwt[VC2_TRANSFORM_HAAR] = vc2_subband_dwt_haar;
+ s->vc2_subband_dwt[VC2_TRANSFORM_HAAR_S] = vc2_subband_dwt_haar_shift;
+
+- s->buffer = av_malloc(2*p_width*p_height*sizeof(dwtcoef));
++ /* Pad by the slice size, only matters for non-Haar wavelets */
++ s->buffer = av_calloc((p_stride + slice_w)*(p_height + slice_h), sizeof(dwtcoef));
+ if (!s->buffer)
+ return 1;
+
++ s->padding = (slice_h >> 1)*p_stride + (slice_w >> 1);
++ s->buffer += s->padding;
++
+ return 0;
+ }
+
+ av_cold void ff_vc2enc_free_transforms(VC2TransformContext *s)
+ {
+- av_freep(&s->buffer);
++ av_free(s->buffer - s->padding);
++ s->buffer = NULL;
+ }
+diff --git libavcodec/vc2enc_dwt.h libavcodec/vc2enc_dwt.h
+index 7fbbfbe0ed9..a6932bcdaf0 100644
+--- external/FFmpeg/libavcodec/vc2enc_dwt.h
++++ external/FFmpeg/libavcodec/vc2enc_dwt.h
+@@ -41,12 +41,14 @@ enum VC2TransformType {
+
+ typedef struct VC2TransformContext {
+ dwtcoef *buffer;
++ int padding;
+ void (*vc2_subband_dwt[VC2_TRANSFORMS_NB])(struct VC2TransformContext *t,
+ dwtcoef *data, ptrdiff_t stride,
+ int width, int height);
+ } VC2TransformContext;
+
+-int ff_vc2enc_init_transforms(VC2TransformContext *t, int p_width, int p_height);
++int ff_vc2enc_init_transforms(VC2TransformContext *t, int p_stride, int p_height,
++ int slice_w, int slice_h);
+ void ff_vc2enc_free_transforms(VC2TransformContext *t);
+
+ #endif /* AVCODEC_VC2ENC_DWT_H */
diff --git a/multimedia/mythtv/files/patch-CVE-2017-17081a b/multimedia/mythtv/files/patch-CVE-2017-17081a
new file mode 100644
index 000000000000..7a635ab70fd3
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-17081a
@@ -0,0 +1,28 @@
+From b2c9771dd435fbce4f0a422bbdc16ecf7b243395 Mon Sep 17 00:00:00 2001
+From: Michael Niedermayer <michael@niedermayer.cc>
+Date: Mon, 9 Oct 2017 00:32:30 +0200
+Subject: [PATCH] avcodec/mpeg_er: Clear mcsel in mpeg_er_decode_mb()
+
+Fixes out of array read
+Should fix: 3516/clusterfuzz-testcase-minimized-4608518562775040 (not reprodoceable)
+
+Found-by: Insu Yun, Georgia Tech.
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit 127a362630e11fe724e2e63fc871791fdcbcfa64)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavcodec/mpeg_er.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git libavcodec/mpeg_er.c libavcodec/mpeg_er.c
+index dd87ae9cc9e..9bd269c4402 100644
+--- external/FFmpeg/libavcodec/mpeg_er.c
++++ external/FFmpeg/libavcodec/mpeg_er.c
+@@ -71,6 +71,7 @@ static void mpeg_er_decode_mb(void *opaque, int ref, int mv_dir, int mv_type,
+ s->mb_skipped = mb_skipped;
+ s->mb_x = mb_x;
+ s->mb_y = mb_y;
++ s->mcsel = 0;
+ memcpy(s->mv, mv, sizeof(*mv));
+
+ ff_init_block_index(s);
diff --git a/multimedia/mythtv/files/patch-CVE-2017-17081b b/multimedia/mythtv/files/patch-CVE-2017-17081b
new file mode 100644
index 000000000000..b077b12eef69
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2017-17081b
@@ -0,0 +1,33 @@
+From b51f515c5c837351f2104b43c0e2a0562a759086 Mon Sep 17 00:00:00 2001
+From: Michael Niedermayer <michael@niedermayer.cc>
+Date: Mon, 13 Nov 2017 20:47:48 +0100
+Subject: [PATCH] avcodec/x86/mpegvideodsp: Fix signedness bug in need_emu
+
+Fixes: out of array read
+Fixes: 3516/attachment-311488.dat
+
+Found-by: Insu Yun, Georgia Tech.
+Tested-by: wuninsu@gmail.com
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit 58cf31cee7a456057f337b3102a03206d833d5e8)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavcodec/x86/mpegvideodsp.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git libavcodec/x86/mpegvideodsp.c libavcodec/x86/mpegvideodsp.c
+index e0498f38496..6009b64e076 100644
+--- external/FFmpeg/libavcodec/x86/mpegvideodsp.c
++++ external/FFmpeg/libavcodec/x86/mpegvideodsp.c
+@@ -52,8 +52,9 @@ static void gmc_mmx(uint8_t *dst, uint8_t *src,
+ const int dyh = (dyy - (1 << (16 + shift))) * (h - 1);
+ const int dxh = dxy * (h - 1);
+ const int dyw = dyx * (w - 1);
+- int need_emu = (unsigned) ix >= width - w ||
+- (unsigned) iy >= height - h;
++ int need_emu = (unsigned) ix >= width - w || width < w ||
++ (unsigned) iy >= height - h || height< h
++ ;
+
+ if ( // non-constant fullpel offset (3% of blocks)
+ ((ox ^ (ox + dxw)) | (ox ^ (ox + dxh)) | (ox ^ (ox + dxw + dxh)) |
diff --git a/multimedia/mythtv/files/patch-CVE-2018-6392 b/multimedia/mythtv/files/patch-CVE-2018-6392
new file mode 100644
index 000000000000..0344ff82870e
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2018-6392
@@ -0,0 +1,44 @@
+Fix for CVE-2018-6392
+https://security-tracker.debian.org/tracker/CVE-2018-6392
+https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/3f621455d62e46745453568d915badd5b1e5bcd5
+https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/c6939f65a116b1ffed345d29d8621ee4ffb32235
+
+--- external/FFmpeg/libavfilter/vf_transpose.c.orig 2018-02-01 11:15:37 UTC
++++ external/FFmpeg/libavfilter/vf_transpose.c
+@@ -27,6 +27,7 @@
+
+ #include <stdio.h>
+
++#include "libavutil/avassert.h"
+ #include "libavutil/imgutils.h"
+ #include "libavutil/internal.h"
+ #include "libavutil/intreadwrite.h"
+@@ -54,6 +55,7 @@ enum TransposeDir {
+ typedef struct TransContext {
+ const AVClass *class;
+ int hsub, vsub;
++ int planes;
+ int pixsteps[4];
+
+ int passthrough; ///< PassthroughType, landscape passthrough mode enabled
+@@ -106,7 +108,11 @@ static int config_props_output(AVFilterLink *outlink)
+
+ s->hsub = desc_in->log2_chroma_w;
+ s->vsub = desc_in->log2_chroma_h;
++ s->planes = av_pix_fmt_count_planes(outlink->format);
+
++ av_assert0(desc_in->nb_components == desc_out->nb_components);
++
++
+ av_image_fill_max_pixsteps(s->pixsteps, NULL, desc_out);
+
+ outlink->w = inlink->h;
+@@ -148,7 +154,7 @@ static int filter_slice(AVFilterContext *ctx, void *ar
+ AVFrame *in = td->in;
+ int plane;
+
+- for (plane = 0; out->data[plane]; plane++) {
++ for (plane = 0; plane < s->planes; plane++) {
+ int hsub = plane == 1 || plane == 2 ? s->hsub : 0;
+ int vsub = plane == 1 || plane == 2 ? s->vsub : 0;
+ int pixstep = s->pixsteps[plane];
diff --git a/multimedia/mythtv/files/patch-CVE-2018-6621 b/multimedia/mythtv/files/patch-CVE-2018-6621
new file mode 100644
index 000000000000..24ad9c45bec3
--- /dev/null
+++ b/multimedia/mythtv/files/patch-CVE-2018-6621
@@ -0,0 +1,15 @@
+Fix for CVE-2018-6621
+https://security-tracker.debian.org/tracker/CVE-2018-6621
+https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/118e1b0b3370dd1c0da442901b486689efd1654b
+
+--- external/FFmpeg/libavcodec/utvideodec.c.orig 2018-03-01 05:12:04 UTC
++++ external/FFmpeg/libavcodec/utvideodec.c
+@@ -534,7 +534,7 @@ static int decode_frame(AVCodecContext *avctx, void *d
+ for (j = 0; j < c->slices; j++) {
+ slice_end = bytestream2_get_le32u(&gb);
+ if (slice_end < 0 || slice_end < slice_start ||
+- bytestream2_get_bytes_left(&gb) < slice_end) {
++ bytestream2_get_bytes_left(&gb) < slice_end + 1024LL) {
+ av_log(avctx, AV_LOG_ERROR, "Incorrect slice size\n");
+ return AVERROR_INVALIDDATA;
+ }
diff --git a/multimedia/mythtv/files/patch-configure b/multimedia/mythtv/files/patch-configure
index e94aad32208a..dfabba36c6ef 100644
--- a/multimedia/mythtv/files/patch-configure
+++ b/multimedia/mythtv/files/patch-configure
@@ -1,6 +1,6 @@
---- configure.orig 2015-06-16 16:03:30 UTC
+--- configure.orig 2018-01-11 12:39:22 UTC
+++ configure
-@@ -846,28 +846,28 @@ check_cc(){
+@@ -1003,35 +1003,35 @@ check_cc(){
log check_cc "$@"
cat > $TMPC
log_file $TMPC
@@ -24,6 +24,14 @@
+ check_cmd $cxx $CPPFLAGS $CXXFLAGS $ECXXFLAGS -I${prefix}/include "$@" $CXX_C -o $TMPO $TMPCPP
}
+ check_objcc(){
+ log check_objcc "$@"
+ cat > $TMPM
+ log_file $TMPM
+- check_cmd $objcc -Werror=missing-prototypes $CPPFLAGS $CFLAGS $OBJCFLAGS "$@" $OBJCC_C $(cc_o $TMPO) $TMPM
++ check_cmd $objcc -Werror=missing-prototypes $CPPFLAGS $CFLAGS $OBJCFLAGS -I${prefix}/include "$@" $OBJCC_C $(cc_o $TMPO) $TMPM
+ }
+
check_cpp(){
log check_cpp "$@"
cat > $TMPC
@@ -33,46 +41,12 @@
}
as_o(){
-@@ -2539,7 +2539,7 @@ python_default="python"
-
- # machine
- arch_default=$(uname -m)
--cpu="generic"
-+cpu="i686"
- processor=`uname -p 2>/dev/null`
- processor_flags=""
- tune="generic"
-@@ -3931,7 +3931,7 @@ elif enabled x86; then
- i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64*|k8*|opteron*|athlon-fx|core2|corei7*|amdfam10|barcelona|atom|bdver*)
- cpuflags="-march=$cpu"
- enable cmov
-- enable fast_cmov
-+ disable fast_cmov
- ;;
- # targets that do support conditional mov but on which it's slow
- pentium4|pentium4m|prescott|nocona)
-@@ -4102,7 +4102,6 @@ case $target_os in
- append CCONFIG "freebsd"
- # Workaround compile errors from missing u_int/uint def
- CPPFLAGS=`echo $CPPFLAGS | sed 's/-D_POSIX_C_SOURCE=200112//'`
-- disable ivtv
- enable backend
- ;;
- bsd/os)
-@@ -6389,6 +6388,7 @@ cat <<EOF >> $TMPMAK
- QMAKE_LIBDIR_QT-=${sysroot}${libdir}
- QMAKE_LIBDIR-=${sysroot}${libdir}
- LATE_LIBS+=-L${sysroot}${libdir}
-+FREETYPE_CFLAGS-= -I/usr/local/include
- EOF
-
- #echo "endif # FFMPEG_CONFIG_MAK" >> $TMPMAK
-@@ -6441,7 +6441,7 @@ INCDIR=\$(INSTALL_ROOT)$incdir
+@@ -8840,7 +8840,7 @@ INCDIR=\$(INSTALL_ROOT)$incdir
BINDIR=\$(INSTALL_ROOT)$bindir
DATADIR=\$(INSTALL_ROOT)$datadir
MANDIR=\$(INSTALL_ROOT)$mandir
--CFLAGS=${CFLAGS} -w
-+CFLAGS=${CFLAGS} -I/usr/local/include -w
+-CFLAGS=${CFLAGS} -DFF_API_OLD_DECODE_AUDIO=1 -w
++CFLAGS=${CFLAGS} -DFF_API_OLD_DECODE_AUDIO=1 -I${prefix}/include -w
endif # FFMPEG_CONFIG_MAK
EOF
diff --git a/multimedia/mythtv/files/patch-external_FFmpeg_configure b/multimedia/mythtv/files/patch-external_FFmpeg_configure
index 37b011404223..a12af231562b 100644
--- a/multimedia/mythtv/files/patch-external_FFmpeg_configure
+++ b/multimedia/mythtv/files/patch-external_FFmpeg_configure
@@ -1,22 +1,29 @@
---- external/FFmpeg/configure.orig 2015-06-16 16:03:30 UTC
+Fix arch detection
+Fix runtime crashes on i386: enforce stack-alignment=16
+
+--- external/FFmpeg/configure.orig 2018-02-01 11:15:37 UTC
+++ external/FFmpeg/configure
-@@ -2167,8 +2167,8 @@ yasmexe_default="yasm"
- nogas=":"
+@@ -3189,12 +3189,7 @@ target_os_default=$(tolower $(uname -s))
+ host_os=$target_os_default
# machine
--arch_default=$(uname -m)
--cpu="generic"
+-if test "$target_os_default" = aix; then
+- arch_default=$(uname -p)
+- strip_default="strip -X32_64"
+-else
+- arch_default=$(uname -m)
+-fi
+arch_default=$(uname -p)
-+cpu="i686"
+ cpu="generic"
+ intrinsics="none"
- # OS
- target_os_default=$(tolower $(uname -s))
-@@ -3137,7 +3137,7 @@ elif enabled x86; then
- i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64*|k8*|opteron*|athlon-fx|core2|corei7*|amdfam10|barcelona|atom|bdver*)
- cpuflags="-march=$cpu"
- enable cmov
-- enable fast_cmov
-+ disable fast_cmov
- ;;
- # targets that do support conditional mov but on which it's slow
- pentium4|pentium4m|prescott|nocona)
+@@ -6217,6 +6212,9 @@ elif enabled llvm_gcc; then
+ elif enabled clang; then
+ check_cflags -mllvm -stack-alignment=16
+ check_cflags -mstack-alignment=16
++ if enabled x86_32; then
++ check_cflags -mstackrealign
++ fi
+ check_cflags -Qunused-arguments
+ check_cflags -Werror=implicit-function-declaration
+ check_cflags -Werror=missing-prototypes
diff --git a/multimedia/mythtv/files/patch-external_FFmpeg_libavcodec_x86_ac3dsp__init.c b/multimedia/mythtv/files/patch-external_FFmpeg_libavcodec_x86_ac3dsp__init.c
deleted file mode 100644
index 18efeb66cfca..000000000000
--- a/multimedia/mythtv/files/patch-external_FFmpeg_libavcodec_x86_ac3dsp__init.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- external/FFmpeg/libavcodec/x86/ac3dsp_init.c.orig 2015-06-16 16:03:30 UTC
-+++ external/FFmpeg/libavcodec/x86/ac3dsp_init.c
-@@ -51,7 +51,7 @@ extern void ff_ac3_extract_exponents_3dnow(uint8_t *ex
- extern void ff_ac3_extract_exponents_sse2 (uint8_t *exp, int32_t *coef, int nb_coefs);
- extern void ff_ac3_extract_exponents_ssse3(uint8_t *exp, int32_t *coef, int nb_coefs);
-
--#if ARCH_X86_32 && defined(__INTEL_COMPILER)
-+#if ARCH_X86_32 && (defined(__INTEL_COMPILER) || defined(__clang__))
- # undef HAVE_7REGS
- # define HAVE_7REGS 0
- #endif
diff --git a/multimedia/mythtv/files/patch-external_FFmpeg_libavformat_rtsp.c b/multimedia/mythtv/files/patch-external_FFmpeg_libavformat_rtsp.c
new file mode 100644
index 000000000000..23139980105d
--- /dev/null
+++ b/multimedia/mythtv/files/patch-external_FFmpeg_libavformat_rtsp.c
@@ -0,0 +1,48 @@
+Fix RTP stream; FreeBSD's socket calls require the sockaddr struct length
+to agree with the address family.
+PR: 214852
+
+--- external/FFmpeg/libavformat/rtsp.c.orig 2018-02-01 11:15:37 UTC
++++ external/FFmpeg/libavformat/rtsp.c
+@@ -1614,7 +1614,12 @@ int ff_rtsp_make_setup_request(AVFormatContext *s, con
+ }
+ if (ttl > 0)
+ snprintf(optbuf, sizeof(optbuf), "?ttl=%d", ttl);
+- getnameinfo((struct sockaddr*) &addr, sizeof(addr),
++ getnameinfo((struct sockaddr*) &addr,
++#if HAVE_STRUCT_SOCKADDR_SA_LEN
++ ((struct sockaddr*) &addr)->sa_len,
++#else
++ sizeof(addr),
++#endif
+ namebuf, sizeof(namebuf), NULL, 0, NI_NUMERICHOST);
+ ff_url_join(url, sizeof(url), "rtp", NULL, namebuf,
+ port, "%s", optbuf);
+@@ -1830,8 +1835,13 @@ redirect:
+ goto fail;
+ }
+ if (!getpeername(tcp_fd, (struct sockaddr*) &peer, &peer_len)) {
+- getnameinfo((struct sockaddr*) &peer, peer_len, host, sizeof(host),
+- NULL, 0, NI_NUMERICHOST);
++ getnameinfo((struct sockaddr*) &peer,
++#if HAVE_STRUCT_SOCKADDR_SA_LEN
++ ((struct sockaddr*) &peer)->sa_len,
++#else
++ peer_len,
++#endif
++ host, sizeof(host), NULL, 0, NI_NUMERICHOST);
+ }
+
+ /* request options supported by the server; this also detects server
+@@ -2310,7 +2320,11 @@ static int sdp_read_header(AVFormatContext *s)
+ AVDictionary *opts = map_to_opts(rt);
+
+ err = getnameinfo((struct sockaddr*) &rtsp_st->sdp_ip,
++#if HAVE_STRUCT_SOCKADDR_SA_LEN
++ ((struct sockaddr*) &rtsp_st->sdp_ip)->sa_len,
++#else
+ sizeof(rtsp_st->sdp_ip),
++#endif
+ namebuf, sizeof(namebuf), NULL, 0, NI_NUMERICHOST);
+ if (err) {
+ av_log(s, AV_LOG_ERROR, "getnameinfo: %s\n", gai_strerror(err));
diff --git a/multimedia/mythtv/files/patch-external_FFmpeg_libavformat_tls__openssl.c b/multimedia/mythtv/files/patch-external_FFmpeg_libavformat_tls__openssl.c
new file mode 100644
index 000000000000..3d876e02054c
--- /dev/null
+++ b/multimedia/mythtv/files/patch-external_FFmpeg_libavformat_tls__openssl.c
@@ -0,0 +1,58 @@
+Fix build with libressl
+
+--- external/FFmpeg/libavformat/tls_openssl.c.orig 2018-02-01 11:15:37 UTC
++++ external/FFmpeg/libavformat/tls_openssl.c
+@@ -43,7 +43,7 @@ typedef struct TLSContext {
+ TLSShared tls_shared;
+ SSL_CTX *ctx;
+ SSL *ssl;
+-#if OPENSSL_VERSION_NUMBER >= 0x1010000fL
++#if OPENSSL_VERSION_NUMBER >= 0x1010000fL && !defined(LIBRESSL_VERSION_NUMBER)
+ BIO_METHOD* url_bio_method;
+ #endif
+ } TLSContext;
+@@ -68,7 +68,7 @@ static unsigned long openssl_thread_id(void)
+
+ static int url_bio_create(BIO *b)
+ {
+-#if OPENSSL_VERSION_NUMBER >= 0x1010000fL
++#if OPENSSL_VERSION_NUMBER >= 0x1010000fL && !defined(LIBRESSL_VERSION_NUMBER)
+ BIO_set_init(b, 1);
+ BIO_set_data(b, NULL);
+ BIO_set_flags(b, 0);
+@@ -85,7 +85,7 @@ static int url_bio_destroy(BIO *b)
+ return 1;
+ }
+
+-#if OPENSSL_VERSION_NUMBER >= 0x1010000fL
++#if OPENSSL_VERSION_NUMBER >= 0x1010000fL && !defined(LIBRESSL_VERSION_NUMBER)
+ #define GET_BIO_DATA(x) BIO_get_data(x);
+ #else
+ #define GET_BIO_DATA(x) (x)->ptr;
+@@ -133,7 +133,7 @@ static int url_bio_bputs(BIO *b, const char *str)
+ return url_bio_bwrite(b, str, strlen(str));
+ }
+
+-#if OPENSSL_VERSION_NUMBER < 0x1010000fL
++#if OPENSSL_VERSION_NUMBER < 0x1010000fL || defined(LIBRESSL_VERSION_NUMBER)
+ static BIO_METHOD url_bio_method = {
+ .type = BIO_TYPE_SOURCE_SINK,
+ .name = "urlprotocol bio",
+@@ -212,7 +212,7 @@ static int tls_close(URLContext *h)
+ SSL_CTX_free(c->ctx);
+ if (c->tls_shared.tcp)
+ ffurl_close(c->tls_shared.tcp);
+-#if OPENSSL_VERSION_NUMBER >= 0x1010000fL
++#if OPENSSL_VERSION_NUMBER >= 0x1010000fL && !defined(LIBRESSL_VERSION_NUMBER)
+ if (c->url_bio_method)
+ BIO_meth_free(c->url_bio_method);
+ #endif
+@@ -265,7 +265,7 @@ static int tls_open(URLContext *h, const char *uri, in
+ ret = AVERROR(EIO);
+ goto fail;
+ }
+-#if OPENSSL_VERSION_NUMBER >= 0x1010000fL
++#if OPENSSL_VERSION_NUMBER >= 0x1010000fL && !defined(LIBRESSL_VERSION_NUMBER)
+ p->url_bio_method = BIO_meth_new(BIO_TYPE_SOURCE_SINK, "urlprotocol bio");
+ BIO_meth_set_write(p->url_bio_method, url_bio_bwrite);
+ BIO_meth_set_read(p->url_bio_method, url_bio_bread);
diff --git a/multimedia/mythtv/files/patch-external_libmythdvdnav_dvdnav_dvdnav_dvdnav.h b/multimedia/mythtv/files/patch-external_libmythdvdnav_dvdnav_dvdnav_dvdnav.h
new file mode 100644
index 000000000000..70cd2b34cf9e
--- /dev/null
+++ b/multimedia/mythtv/files/patch-external_libmythdvdnav_dvdnav_dvdnav_dvdnav.h
@@ -0,0 +1,16 @@
+--- external/libmythdvdnav/dvdnav/dvdnav/dvdnav.h.orig 2018-01-11 12:39:22 UTC
++++ external/libmythdvdnav/dvdnav/dvdnav/dvdnav.h
+@@ -33,11 +33,11 @@
+ extern "C" {
+ #endif
+
+-#include <dvdnav/dvd_types.h>
++#include "dvd_types.h"
+ #include <dvdread/dvd_reader.h>
+ #include <dvdread/nav_types.h>
+ #include <dvdread/ifo_types.h> /* For vm_cmd_t */
+-#include <dvdnav/dvdnav_events.h>
++#include "dvdnav_events.h"
+
+ #include "compat.h"
+
diff --git a/multimedia/mythtv/files/patch-external_zeromq_src_Makefile.am b/multimedia/mythtv/files/patch-external_zeromq_src_Makefile.am
deleted file mode 100644
index c016b4a514c6..000000000000
--- a/multimedia/mythtv/files/patch-external_zeromq_src_Makefile.am
+++ /dev/null
@@ -1,10 +0,0 @@
---- external/zeromq/src/Makefile.am.orig 2015-06-16 16:03:30 UTC
-+++ external/zeromq/src/Makefile.am
-@@ -1,6 +1,6 @@
- lib_LTLIBRARIES = libmythzmq.la
-
--pkgconfigdir = $(libdir)/pkgconfig
-+pkgconfigdir = $(PKG_CONFIG_PATH)
- pkgconfig_DATA = libmythzmq.pc
-
- include_HEADERS = ../include/zmq.h ../include/zmq.hpp ../include/zmq_utils.h
diff --git a/multimedia/mythtv/files/patch-libs_libmyth_remoteutil.h b/multimedia/mythtv/files/patch-libs_libmyth_remoteutil.h
deleted file mode 100644
index 15fa3fdcb0bc..000000000000
--- a/multimedia/mythtv/files/patch-libs_libmyth_remoteutil.h
+++ /dev/null
@@ -1,10 +0,0 @@
---- libs/libmyth/remoteutil.h.orig 2015-06-16 16:03:30 UTC
-+++ libs/libmyth/remoteutil.h
-@@ -10,6 +10,7 @@
- using namespace std;
-
- #include "mythexp.h"
-+#include <sys/types.h>
-
- class ProgramInfo;
- class MythEvent;
diff --git a/multimedia/mythtv/files/patch-libs_libmythdvdnav_dvdnav_dvdnav.c b/multimedia/mythtv/files/patch-libs_libmythdvdnav_dvdnav_dvdnav.c
deleted file mode 100644
index 3a85fa5af0a5..000000000000
--- a/multimedia/mythtv/files/patch-libs_libmythdvdnav_dvdnav_dvdnav.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- libs/libmythdvdnav/dvdnav/dvdnav.c.orig 2015-06-16 16:03:30 UTC
-+++ libs/libmythdvdnav/dvdnav/dvdnav.c
-@@ -33,7 +33,7 @@
- #include <limits.h>
- #include <string.h>
- #include <sys/time.h>
--#include "dvdnav/dvdnav.h"
-+#include "dvdnav.h"
- #include <dvdread/dvd_reader.h>
- #include <dvdread/nav_types.h>
- #include <dvdread/ifo_types.h> /* For vm_cmd_t */
diff --git a/multimedia/mythtv/files/patch-libs_libmythtv_DVD_dvdringbuffer.h b/multimedia/mythtv/files/patch-libs_libmythtv_DVD_dvdringbuffer.h
new file mode 100644
index 000000000000..9801a1170797
--- /dev/null
+++ b/multimedia/mythtv/files/patch-libs_libmythtv_DVD_dvdringbuffer.h
@@ -0,0 +1,11 @@
+--- libs/libmythtv/DVD/dvdringbuffer.h.orig 2018-01-11 12:39:22 UTC
++++ libs/libmythtv/DVD/dvdringbuffer.h
+@@ -21,7 +21,7 @@ extern "C" {
+ #include "libavcodec/avcodec.h"
+ }
+
+-#include "dvdnav/dvdnav.h"
++#include "../../../external/libmythdvdnav/dvdnav/dvdnav/dvdnav.h"
+
+ /** \class MythDVDContext
+ * \brief Encapsulates playback context at any given moment.
diff --git a/multimedia/mythtv/files/patch-libs_libmythtv_dbcheck.cpp b/multimedia/mythtv/files/patch-libs_libmythtv_dbcheck.cpp
new file mode 100644
index 000000000000..0ff22fe5d8aa
--- /dev/null
+++ b/multimedia/mythtv/files/patch-libs_libmythtv_dbcheck.cpp
@@ -0,0 +1,64 @@
+Database schema 1347 fails to update due to bad SQL statement
+Ref: https://code.mythtv.org/trac/ticket/13155
+
+--- libs/libmythtv/dbcheck.cpp.orig 2018-02-01 11:15:37 UTC
++++ libs/libmythtv/dbcheck.cpp
+@@ -3340,25 +3340,24 @@ NULL
+
+ if (dbver == "1346")
+ {
+- QString master;
++ QList<QByteArray> updates_ba;
+ // Create new MasterServerName setting
+ if (gCoreContext->IsMasterHost())
+- master =
+- "insert into settings (value,data,hostname) "
+- "values('MasterServerName','"
+- + gCoreContext->GetHostName() + "', null);";
++ updates_ba.push_back(
++ QString("INSERT INTO settings (value, data, hostname) "
++ "VALUES ('MasterServerName', '%1', NULL);")
++ .arg(gCoreContext->GetHostName()).toLocal8Bit());
+ else
+- master =
+- "insert into settings (value,data,hostname) "
+- "select 'MasterServerName', b.hostname, null "
+- "from settings a, settings b "
+- "where a.value = 'MasterServerIP' "
+- "and b.value in ('BackendServerIP','BackendServerIP6')"
+- "and a.data = b.data;";
++ updates_ba.push_back(
++ QString("INSERT INTO settings (value,data,hostname) "
++ "SELECT 'MasterServerName', b.hostname, NULL "
++ "FROM settings a, settings b "
++ "WHERE a.value = 'MasterServerIP' "
++ "AND b.value IN ('BackendServerIP','BackendServerIP6')"
++ "AND a.data = b.data;")
++ .toLocal8Bit());
+
+- const char *updates[] = {
+- // Create new MasterServerName setting
+- master.toLocal8Bit().constData(),
++ const char *post_sql[] = {
+ // Create new BackendServerAddr setting for each backend server
+ // Assume using IPV4 value.
+ "insert into settings (value,data,hostname) "
+@@ -3385,8 +3384,17 @@ NULL
+ // Delete obsolete settings
+ "delete from settings "
+ "where value in ('WatchTVGuide');",
+- NULL
+ };
++
++ for (uint i = 0; i < sizeof(post_sql)/sizeof(char*); i++)
++ updates_ba.push_back(QByteArray(post_sql[i]));
++
++ // Convert update ByteArrays to NULL terminated char**
++ QList<QByteArray>::const_iterator it = updates_ba.begin();
++ vector<const char*> updates;
++ for (; it != updates_ba.end(); ++it)
++ updates.push_back((*it).constData());
++ updates.push_back(NULL);
+
+ if (!performActualUpdate(&updates[0], "1347", dbver))
+ return false;
diff --git a/multimedia/mythtv/files/patch-libs_libmythtv_recorders_dvbstreamhandler.cpp b/multimedia/mythtv/files/patch-libs_libmythtv_recorders_dvbstreamhandler.cpp
deleted file mode 100644
index 1f94f7785475..000000000000
--- a/multimedia/mythtv/files/patch-libs_libmythtv_recorders_dvbstreamhandler.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
---- libs/libmythtv/recorders/dvbstreamhandler.cpp.orig 2015-06-16 16:03:30 UTC
-+++ libs/libmythtv/recorders/dvbstreamhandler.cpp
-@@ -620,7 +620,7 @@ bool DVBPIDInfo::Open(const QString &dvb_dev, bool use
- {
- struct dmx_pes_filter_params pesFilterParams;
- memset(&pesFilterParams, 0, sizeof(struct dmx_pes_filter_params));
-- pesFilterParams.pid = (__u16) _pid;
-+ pesFilterParams.pid = (uint16_t) _pid;
- pesFilterParams.input = DMX_IN_FRONTEND;
- pesFilterParams.output = DMX_OUT_TS_TAP;
- pesFilterParams.flags = DMX_IMMEDIATE_START;
-@@ -640,7 +640,7 @@ bool DVBPIDInfo::Open(const QString &dvb_dev, bool use
- {
- struct dmx_sct_filter_params sctFilterParams;
- memset(&sctFilterParams, 0, sizeof(struct dmx_sct_filter_params));
-- switch ( (__u16) _pid )
-+ switch ( (uint16_t) _pid )
- {
- case 0x0: // PAT
- sctFilterParams.filter.filter[0] = 0;
-@@ -676,7 +676,7 @@ bool DVBPIDInfo::Open(const QString &dvb_dev, bool use
- sctFilterParams.filter.mask[0] = 0x00;
- break;
- }
-- sctFilterParams.pid = (__u16) _pid;
-+ sctFilterParams.pid = (uint16_t) _pid;
- sctFilterParams.timeout = 0;
- sctFilterParams.flags = DMX_IMMEDIATE_START;
-
diff --git a/multimedia/mythtv/files/patch-libs_libmythtv_videoout__vdpau.cpp b/multimedia/mythtv/files/patch-libs_libmythtv_videoout__vdpau.cpp
deleted file mode 100644
index 99f73ba5b9fa..000000000000
--- a/multimedia/mythtv/files/patch-libs_libmythtv_videoout__vdpau.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
---- libs/libmythtv/videoout_vdpau.cpp.orig 2015-06-16 16:03:30 UTC
-+++ libs/libmythtv/videoout_vdpau.cpp
-@@ -442,7 +442,7 @@ void VideoOutputVDPAU::PrepareFrame(VideoFrame *frame,
- if (frame)
- {
- // FIXME for 0.23. This should be triggered from AFD by a seek
-- if ((abs(frame->frameNumber - framesPlayed) > 8))
-+ if ((labs(frame->frameNumber - framesPlayed) > 8))
- ClearReferenceFrames();
- new_frame = (framesPlayed != frame->frameNumber + 1);
- framesPlayed = frame->frameNumber + 1;
diff --git a/multimedia/mythtv/files/patch-libs_libmythui_mythgesture.cpp b/multimedia/mythtv/files/patch-libs_libmythui_mythgesture.cpp
deleted file mode 100644
index 48fae3f107b6..000000000000
--- a/multimedia/mythtv/files/patch-libs_libmythui_mythgesture.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
---- libs/libmythui/mythgesture.cpp.orig 2015-06-16 16:03:30 UTC
-+++ libs/libmythui/mythgesture.cpp
-@@ -28,6 +28,7 @@
-
- #include "mythgesture.h"
-
-+#include <cstdlib>
- #include <cmath>
- #include <algorithm>
- #include <complex>
-@@ -284,7 +285,7 @@ bool MythGesture::record(const QPoint & p)
- int dely = p.y() - points.back().y();
-
- /* step by the greatest delta direction */
-- if (abs(delx) > abs(dely))
-+ if (std::abs(delx) > std::abs(dely))
- {
- float iy = points.back().y();
-
diff --git a/multimedia/mythtv/files/patch-libs_libmythui_mythpainter.cpp b/multimedia/mythtv/files/patch-libs_libmythui_mythpainter.cpp
index 127e7d900c5e..7b0d347efa9f 100644
--- a/multimedia/mythtv/files/patch-libs_libmythui_mythpainter.cpp
+++ b/multimedia/mythtv/files/patch-libs_libmythui_mythpainter.cpp
@@ -1,4 +1,4 @@
---- libs/libmythui/mythpainter.cpp.orig 2015-06-16 16:03:30 UTC
+--- libs/libmythui/mythpainter.cpp.orig 2018-01-11 12:39:22 UTC
+++ libs/libmythui/mythpainter.cpp
@@ -1,6 +1,7 @@
#include <stdint.h>
diff --git a/multimedia/mythtv/files/patch-libs_libmythui_mythrender__vdpau.h b/multimedia/mythtv/files/patch-libs_libmythui_mythrender__vdpau.h
new file mode 100644
index 000000000000..9d54201741b8
--- /dev/null
+++ b/multimedia/mythtv/files/patch-libs_libmythui_mythrender__vdpau.h
@@ -0,0 +1,10 @@
+--- libs/libmythui/mythrender_vdpau.h.orig 2018-01-27 11:25:49 UTC
++++ libs/libmythui/mythrender_vdpau.h
+@@ -12,6 +12,7 @@
+
+ extern "C" {
+ #include "libavcodec/vdpau.h"
++#include <vdpau/vdpau_x11.h>
+ }
+
+ #define MIN_OUTPUT_SURFACES 2 // UI
diff --git a/multimedia/mythtv/files/patch-libs_libmythupnp_mmulticastsocketdevice.h b/multimedia/mythtv/files/patch-libs_libmythupnp_mmulticastsocketdevice.h
deleted file mode 100644
index 43fb049464f0..000000000000
--- a/multimedia/mythtv/files/patch-libs_libmythupnp_mmulticastsocketdevice.h
+++ /dev/null
@@ -1,10 +0,0 @@
---- libs/libmythupnp/mmulticastsocketdevice.h.orig 2015-06-16 16:03:30 UTC
-+++ libs/libmythupnp/mmulticastsocketdevice.h
-@@ -22,6 +22,7 @@
- # include <ws2tcpip.h>
- # endif
- #else
-+# include <sys/types.h>
- # include <sys/socket.h>
- # include <netinet/in.h>
- # include <netinet/ip.h>
diff --git a/multimedia/mythtv/pkg-plist b/multimedia/mythtv/pkg-plist
index 9b4cf0592bf4..11b6fd6d8d90 100644
--- a/multimedia/mythtv/pkg-plist
+++ b/multimedia/mythtv/pkg-plist
@@ -5,6 +5,7 @@ bin/mythcommflag
bin/mythffmpeg
bin/mythffprobe
bin/mythffserver
+bin/mythfilerecorder
bin/mythfilldatabase
bin/mythfrontend
bin/mythhdhomerun_config
@@ -22,21 +23,14 @@ bin/mythtv-setup
bin/mythutil
bin/mythwelcome
%%BINDINGS%%bin/mythwikiscripts
-include/mythtv/QJson/Parser
-include/mythtv/QJson/QObjectHelper
-include/mythtv/QJson/Serializer
-include/mythtv/QJson/parser.h
-include/mythtv/QJson/parserrunnable.h
-include/mythtv/QJson/qjson_export.h
-include/mythtv/QJson/qobjecthelper.h
-include/mythtv/QJson/serializer.h
-include/mythtv/QJson/serializerrunnable.h
include/mythtv/audioconvert.h
include/mythtv/audiooutput.h
include/mythtv/audiooutputsettings.h
include/mythtv/audiooutpututil.h
include/mythtv/audiosettings.h
include/mythtv/autodeletedeque.h
+include/mythtv/blockinput.h
+include/mythtv/bluray/array.h
include/mythtv/bluray/attributes.h
include/mythtv/bluray/bdid_parse.h
include/mythtv/bluray/bdparse.h
@@ -44,10 +38,11 @@ include/mythtv/bluray/bits.h
include/mythtv/bluray/bluray.h
include/mythtv/bluray/clpi_data.h
include/mythtv/bluray/clpi_parse.h
+include/mythtv/bluray/dirs.h
include/mythtv/bluray/dl.h
+include/mythtv/bluray/event_queue.h
include/mythtv/bluray/extdata_parse.h
include/mythtv/bluray/file.h
-include/mythtv/bluray/file_mythiowrapper.h
include/mythtv/bluray/filesystem.h
include/mythtv/bluray/hdmv_insn.h
include/mythtv/bluray/hdmv_vm.h
@@ -57,12 +52,17 @@ include/mythtv/bluray/logging.h
include/mythtv/bluray/macro.h
include/mythtv/bluray/meta_data.h
include/mythtv/bluray/meta_parse.h
+include/mythtv/bluray/mobj_data.h
include/mythtv/bluray/mobj_parse.h
+include/mythtv/bluray/mobj_print.h
+include/mythtv/bluray/mount.h
include/mythtv/bluray/mpls_parse.h
include/mythtv/bluray/mutex.h
include/mythtv/bluray/navigation.h
+include/mythtv/bluray/refcnt.h
include/mythtv/bluray/sound_parse.h
include/mythtv/bluray/strutl.h
+include/mythtv/bluray/time.h
include/mythtv/bluray/uo_mask_table.h
include/mythtv/bonjourregister.h
include/mythtv/bswap.h
@@ -87,18 +87,24 @@ include/mythtv/iso639.h
include/mythtv/langsettings.h
include/mythtv/lcddevice.h
include/mythtv/libavcodec/avcodec.h
+include/mythtv/libavcodec/avdct.h
include/mythtv/libavcodec/avfft.h
+include/mythtv/libavcodec/d3d11va.h
+include/mythtv/libavcodec/dirac.h
+include/mythtv/libavcodec/dv_profile.h
include/mythtv/libavcodec/dxva2.h
-include/mythtv/libavcodec/old_codec_ids.h
+include/mythtv/libavcodec/jni.h
+include/mythtv/libavcodec/mediacodec.h
+include/mythtv/libavcodec/qsv.h
include/mythtv/libavcodec/vaapi.h
include/mythtv/libavcodec/vda.h
include/mythtv/libavcodec/vdpau.h
include/mythtv/libavcodec/version.h
+include/mythtv/libavcodec/videotoolbox.h
+include/mythtv/libavcodec/vorbis_parser.h
include/mythtv/libavcodec/xvmc.h
include/mythtv/libavdevice/avdevice.h
include/mythtv/libavdevice/version.h
-include/mythtv/libavfilter/asrc_abuffer.h
-include/mythtv/libavfilter/avcodec.h
include/mythtv/libavfilter/avfilter.h
include/mythtv/libavfilter/avfiltergraph.h
include/mythtv/libavfilter/buffersink.h
@@ -109,9 +115,9 @@ include/mythtv/libavformat/avio.h
include/mythtv/libavformat/version.h
include/mythtv/libavutil/adler32.h
include/mythtv/libavutil/aes.h
+include/mythtv/libavutil/aes_ctr.h
include/mythtv/libavutil/attributes.h
include/mythtv/libavutil/audio_fifo.h
-include/mythtv/libavutil/audioconvert.h
include/mythtv/libavutil/avassert.h
include/mythtv/libavutil/avconfig.h
include/mythtv/libavutil/avstring.h
@@ -120,38 +126,65 @@ include/mythtv/libavutil/base64.h
include/mythtv/libavutil/blowfish.h
include/mythtv/libavutil/bprint.h
include/mythtv/libavutil/bswap.h
+include/mythtv/libavutil/buffer.h
+include/mythtv/libavutil/camellia.h
+include/mythtv/libavutil/cast5.h
include/mythtv/libavutil/channel_layout.h
include/mythtv/libavutil/common.h
include/mythtv/libavutil/cpu.h
include/mythtv/libavutil/crc.h
+include/mythtv/libavutil/des.h
include/mythtv/libavutil/dict.h
+include/mythtv/libavutil/display.h
+include/mythtv/libavutil/downmix_info.h
include/mythtv/libavutil/error.h
include/mythtv/libavutil/eval.h
+include/mythtv/libavutil/ffversion.h
include/mythtv/libavutil/fifo.h
include/mythtv/libavutil/file.h
+include/mythtv/libavutil/frame.h
+include/mythtv/libavutil/hash.h
include/mythtv/libavutil/hmac.h
+include/mythtv/libavutil/hwcontext.h
+include/mythtv/libavutil/hwcontext_cuda.h
+include/mythtv/libavutil/hwcontext_dxva2.h
+include/mythtv/libavutil/hwcontext_qsv.h
+include/mythtv/libavutil/hwcontext_vaapi.h
+include/mythtv/libavutil/hwcontext_vdpau.h
include/mythtv/libavutil/imgutils.h
include/mythtv/libavutil/intfloat.h
-include/mythtv/libavutil/intfloat_readwrite.h
include/mythtv/libavutil/intreadwrite.h
include/mythtv/libavutil/lfg.h
include/mythtv/libavutil/log.h
include/mythtv/libavutil/lzo.h
+include/mythtv/libavutil/macros.h
+include/mythtv/libavutil/mastering_display_metadata.h
include/mythtv/libavutil/mathematics.h
include/mythtv/libavutil/md5.h
include/mythtv/libavutil/mem.h
-include/mythtv/libavutil/old_pix_fmts.h
+include/mythtv/libavutil/motion_vector.h
+include/mythtv/libavutil/murmur3.h
include/mythtv/libavutil/opt.h
include/mythtv/libavutil/parseutils.h
include/mythtv/libavutil/pixdesc.h
+include/mythtv/libavutil/pixelutils.h
include/mythtv/libavutil/pixfmt.h
include/mythtv/libavutil/random_seed.h
include/mythtv/libavutil/rational.h
+include/mythtv/libavutil/rc4.h
+include/mythtv/libavutil/replaygain.h
+include/mythtv/libavutil/ripemd.h
include/mythtv/libavutil/samplefmt.h
include/mythtv/libavutil/sha.h
+include/mythtv/libavutil/sha512.h
+include/mythtv/libavutil/stereo3d.h
+include/mythtv/libavutil/tea.h
+include/mythtv/libavutil/threadmessage.h
include/mythtv/libavutil/time.h
include/mythtv/libavutil/timecode.h
include/mythtv/libavutil/timestamp.h
+include/mythtv/libavutil/tree.h
+include/mythtv/libavutil/twofish.h
include/mythtv/libavutil/version.h
include/mythtv/libavutil/xtea.h
include/mythtv/libmyth/audioconvert.h
@@ -174,22 +207,18 @@ include/mythtv/libmyth/mythwidgets.h
include/mythtv/libmyth/mythwizard.h
include/mythtv/libmyth/netgrabbermanager.h
include/mythtv/libmyth/netutils.h
-include/mythtv/libmyth/oldsettings.h
include/mythtv/libmyth/output.h
include/mythtv/libmyth/programinfo.h
include/mythtv/libmyth/programtypes.h
include/mythtv/libmyth/recordingtypes.h
-include/mythtv/libmyth/remotefile.h
include/mythtv/libmyth/remoteutil.h
include/mythtv/libmyth/rssparse.h
include/mythtv/libmyth/schemawizard.h
include/mythtv/libmyth/settings.h
+include/mythtv/libmyth/standardsettings.h
include/mythtv/libmyth/storagegroupeditor.h
-include/mythtv/libmyth/uitypes.h
-include/mythtv/libmyth/virtualkeyboard_qt.h
include/mythtv/libmyth/visual.h
include/mythtv/libmyth/volumebase.h
-include/mythtv/libmyth/xmlparse.h
include/mythtv/libmythbase/autodeletedeque.h
include/mythtv/libmythbase/bonjourregister.h
include/mythtv/libmythbase/bswap.h
@@ -203,7 +232,6 @@ include/mythtv/libmythbase/iso3166.h
include/mythtv/libmythbase/iso639.h
include/mythtv/libmythbase/lcddevice.h
include/mythtv/libmythbase/loggingserver.h
-include/mythtv/libmythbase/mcodecs.h
include/mythtv/libmythbase/mthread.h
include/mythtv/libmythbase/mthreadpool.h
include/mythtv/libmythbase/mythbaseexp.h
@@ -229,6 +257,7 @@ include/mythtv/libmythbase/mythobservable.h
include/mythtv/libmythbase/mythplugin.h
include/mythtv/libmythbase/mythpluginapi.h
include/mythtv/libmythbase/mythqtcompat.h
+include/mythtv/libmythbase/mythsession.h
include/mythtv/libmythbase/mythsingledownload.h
include/mythtv/libmythbase/mythsocket.h
include/mythtv/libmythbase/mythsocket_cb.h
@@ -252,23 +281,44 @@ include/mythtv/libmythbase/version.h
include/mythtv/libmythservicecontracts/datacontracthelper.h
include/mythtv/libmythservicecontracts/datacontracts/artworkInfo.h
include/mythtv/libmythservicecontracts/datacontracts/artworkInfoList.h
+include/mythtv/libmythservicecontracts/datacontracts/backendInfo.h
include/mythtv/libmythservicecontracts/datacontracts/blurayInfo.h
+include/mythtv/libmythservicecontracts/datacontracts/buildInfo.h
include/mythtv/libmythservicecontracts/datacontracts/captureCard.h
include/mythtv/libmythservicecontracts/datacontracts/captureCardList.h
+include/mythtv/libmythservicecontracts/datacontracts/castMember.h
+include/mythtv/libmythservicecontracts/datacontracts/castMemberList.h
+include/mythtv/libmythservicecontracts/datacontracts/channelGroup.h
+include/mythtv/libmythservicecontracts/datacontracts/channelGroupList.h
include/mythtv/libmythservicecontracts/datacontracts/channelInfoList.h
include/mythtv/libmythservicecontracts/datacontracts/connectionInfo.h
+include/mythtv/libmythservicecontracts/datacontracts/cutList.h
+include/mythtv/libmythservicecontracts/datacontracts/cutting.h
include/mythtv/libmythservicecontracts/datacontracts/databaseInfo.h
+include/mythtv/libmythservicecontracts/datacontracts/enum.h
+include/mythtv/libmythservicecontracts/datacontracts/enumItem.h
+include/mythtv/libmythservicecontracts/datacontracts/envInfo.h
include/mythtv/libmythservicecontracts/datacontracts/frontendActionList.h
include/mythtv/libmythservicecontracts/datacontracts/frontendStatus.h
+include/mythtv/libmythservicecontracts/datacontracts/imageMetadataInfo.h
+include/mythtv/libmythservicecontracts/datacontracts/imageMetadataInfoList.h
+include/mythtv/libmythservicecontracts/datacontracts/imageSyncInfo.h
+include/mythtv/libmythservicecontracts/datacontracts/input.h
+include/mythtv/libmythservicecontracts/datacontracts/inputList.h
include/mythtv/libmythservicecontracts/datacontracts/labelValue.h
include/mythtv/libmythservicecontracts/datacontracts/lineup.h
include/mythtv/libmythservicecontracts/datacontracts/liveStreamInfo.h
include/mythtv/libmythservicecontracts/datacontracts/liveStreamInfoList.h
+include/mythtv/libmythservicecontracts/datacontracts/logInfo.h
include/mythtv/libmythservicecontracts/datacontracts/logMessage.h
include/mythtv/libmythservicecontracts/datacontracts/logMessageList.h
+include/mythtv/libmythservicecontracts/datacontracts/musicMetadataInfo.h
+include/mythtv/libmythservicecontracts/datacontracts/musicMetadataInfoList.h
include/mythtv/libmythservicecontracts/datacontracts/programAndChannel.h
include/mythtv/libmythservicecontracts/datacontracts/programGuide.h
include/mythtv/libmythservicecontracts/datacontracts/recRule.h
+include/mythtv/libmythservicecontracts/datacontracts/recRuleFilter.h
+include/mythtv/libmythservicecontracts/datacontracts/recRuleFilterList.h
include/mythtv/libmythservicecontracts/datacontracts/recRuleList.h
include/mythtv/libmythservicecontracts/datacontracts/recording.h
include/mythtv/libmythservicecontracts/datacontracts/settingList.h
@@ -285,6 +335,7 @@ include/mythtv/libmythservicecontracts/datacontracts/videoMultiplexList.h
include/mythtv/libmythservicecontracts/datacontracts/videoSource.h
include/mythtv/libmythservicecontracts/datacontracts/videoSourceList.h
include/mythtv/libmythservicecontracts/datacontracts/wolInfo.h
+include/mythtv/libmythservicecontracts/enums/recStatus.h
include/mythtv/libmythservicecontracts/service.h
include/mythtv/libmythservicecontracts/serviceexp.h
include/mythtv/libmythservicecontracts/services/captureServices.h
@@ -293,7 +344,10 @@ include/mythtv/libmythservicecontracts/services/contentServices.h
include/mythtv/libmythservicecontracts/services/dvrServices.h
include/mythtv/libmythservicecontracts/services/frontendServices.h
include/mythtv/libmythservicecontracts/services/guideServices.h
+include/mythtv/libmythservicecontracts/services/imageServices.h
+include/mythtv/libmythservicecontracts/services/musicServices.h
include/mythtv/libmythservicecontracts/services/mythServices.h
+include/mythtv/libmythservicecontracts/services/rttiServices.h
include/mythtv/libmythservicecontracts/services/videoServices.h
include/mythtv/libmythui/mythdialogbox.h
include/mythtv/libmythui/mythfontproperties.h
@@ -351,18 +405,20 @@ include/mythtv/libswresample/version.h
include/mythtv/libswscale/swscale.h
include/mythtv/libswscale/version.h
include/mythtv/loggingserver.h
-include/mythtv/mcodecs.h
include/mythtv/metadata/bluraymetadata.h
include/mythtv/metadata/cleanup.h
include/mythtv/metadata/dbaccess.h
include/mythtv/metadata/dirscan.h
include/mythtv/metadata/globals.h
+include/mythtv/metadata/imagemanager.h
+include/mythtv/metadata/imagemetadata.h
+include/mythtv/metadata/imagetypes.h
+include/mythtv/metadata/lyricsdata.h
include/mythtv/metadata/metadatacommon.h
include/mythtv/metadata/metadatadownload.h
include/mythtv/metadata/metadatafactory.h
include/mythtv/metadata/metadatagrabber.h
include/mythtv/metadata/metadataimagedownload.h
-include/mythtv/metadata/metadataimagehelper.h
include/mythtv/metadata/metaio.h
include/mythtv/metadata/metaioavfcomment.h
include/mythtv/metadata/metaioflacvorbis.h
@@ -371,6 +427,7 @@ include/mythtv/metadata/metaiomp4.h
include/mythtv/metadata/metaiooggvorbis.h
include/mythtv/metadata/metaiotaglib.h
include/mythtv/metadata/metaiowavpack.h
+include/mythtv/metadata/musicfilescanner.h
include/mythtv/metadata/musicmetadata.h
include/mythtv/metadata/musicutils.h
include/mythtv/metadata/mythmetaexp.h
@@ -383,9 +440,11 @@ include/mythtv/metadata/videometadatalistmanager.h
include/mythtv/metadata/videoscan.h
include/mythtv/metadata/videoutils.h
include/mythtv/metadataimagehelper.h
+include/mythtv/minilzo.h
include/mythtv/mpeg2dec/mpeg2.h
include/mythtv/mthread.h
include/mythtv/mthreadpool.h
+include/mythtv/mythavutil.h
include/mythtv/mythbaseexp.h
include/mythtv/mythcdrom.h
include/mythtv/mythcommandlineparser.h
@@ -406,6 +465,7 @@ include/mythtv/mythdirs.h
include/mythtv/mythdownloadmanager.h
include/mythtv/mythevent.h
include/mythtv/mythexp.h
+include/mythtv/mythframe.h
include/mythtv/mythlocale.h
include/mythtv/mythlogging.h
include/mythtv/mythmedia.h
@@ -416,6 +476,7 @@ include/mythtv/mythplugin.h
include/mythtv/mythpluginapi.h
include/mythtv/mythqtcompat.h
include/mythtv/mythrssmanager.h
+include/mythtv/mythsession.h
include/mythtv/mythsingledownload.h
include/mythtv/mythsocket.h
include/mythtv/mythsocket_cb.h
@@ -432,7 +493,6 @@ include/mythtv/mythwidgets.h
include/mythtv/mythwizard.h
include/mythtv/netgrabbermanager.h
include/mythtv/netutils.h
-include/mythtv/oldsettings.h
include/mythtv/output.h
include/mythtv/playgroup.h
include/mythtv/plist.h
@@ -449,10 +509,11 @@ include/mythtv/schemawizard.h
include/mythtv/serverpool.h
include/mythtv/settings.h
include/mythtv/signalhandling.h
+include/mythtv/standardsettings.h
include/mythtv/storagegroup.h
include/mythtv/storagegroupeditor.h
include/mythtv/threadedfilewriter.h
-include/mythtv/uitypes.h
+include/mythtv/udfread.h
include/mythtv/upnp/bufferedsocketdevice.h
include/mythtv/upnp/configuration.h
include/mythtv/upnp/eventing.h
@@ -475,6 +536,7 @@ include/mythtv/upnp/upnpcds.h
include/mythtv/upnp/upnpcdsobjects.h
include/mythtv/upnp/upnpcmgr.h
include/mythtv/upnp/upnpdevice.h
+include/mythtv/upnp/upnphelpers.h
include/mythtv/upnp/upnpsubscription.h
include/mythtv/upnp/upnptaskcache.h
include/mythtv/upnp/upnptaskevent.h
@@ -483,19 +545,98 @@ include/mythtv/upnp/upnptasksearch.h
include/mythtv/upnp/upnputil.h
include/mythtv/upnp/wsdl.h
include/mythtv/upnp/xmlSerializer.h
+include/mythtv/upnp/xsd.h
include/mythtv/verbosedefs.h
include/mythtv/version.h
-include/mythtv/virtualkeyboard_qt.h
include/mythtv/visual.h
include/mythtv/volumebase.h
-include/mythtv/xmlparse.h
+lib/libmyth-29.so
+lib/libmyth-29.so.29
+lib/libmyth-29.so.29.0
+lib/libmyth-29.so.29.0.0
+lib/libmythavcodec.so
+lib/libmythavcodec.so.57
+lib/libmythavcodec.so.57.64.100
+lib/libmythavdevice.so
+lib/libmythavdevice.so.57
+lib/libmythavdevice.so.57.1.100
+lib/libmythavfilter.so
+lib/libmythavfilter.so.6
+lib/libmythavfilter.so.6.65.100
+lib/libmythavformat.so
+lib/libmythavformat.so.57
+lib/libmythavformat.so.57.56.100
+lib/libmythavutil.so
+lib/libmythavutil.so.55
+lib/libmythavutil.so.55.34.100
+lib/libmythbase-29.so
+lib/libmythbase-29.so.29
+lib/libmythbase-29.so.29.0
+lib/libmythbase-29.so.29.0.0
+lib/libmythfreemheg-29.so
+lib/libmythfreemheg-29.so.29
+lib/libmythfreemheg-29.so.29.0
+lib/libmythfreemheg-29.so.29.0.0
+lib/libmythhdhomerun-29.so
+lib/libmythhdhomerun-29.so.29
+lib/libmythhdhomerun-29.so.29.0
+lib/libmythhdhomerun-29.so.29.0.0
+lib/libmythmetadata-29.so
+lib/libmythmetadata-29.so.29
+lib/libmythmetadata-29.so.29.0
+lib/libmythmetadata-29.so.29.0.0
+lib/libmythpostproc.so
+lib/libmythpostproc.so.54
+lib/libmythpostproc.so.54.1.100
+lib/libmythprotoserver-29.so
+lib/libmythprotoserver-29.so.29
+lib/libmythprotoserver-29.so.29.0
+lib/libmythprotoserver-29.so.29.0.0
+lib/libmythservicecontracts-29.so
+lib/libmythservicecontracts-29.so.29
+lib/libmythservicecontracts-29.so.29.0
+lib/libmythservicecontracts-29.so.29.0.0
+lib/libmythswresample.so
+lib/libmythswresample.so.2
+lib/libmythswresample.so.2.3.100
+lib/libmythswscale.so
+lib/libmythswscale.so.4
+lib/libmythswscale.so.4.2.100
+lib/libmythtv-29.so
+lib/libmythtv-29.so.29
+lib/libmythtv-29.so.29.0
+lib/libmythtv-29.so.29.0.0
+lib/libmythui-29.so
+lib/libmythui-29.so.29
+lib/libmythui-29.so.29.0
+lib/libmythui-29.so.29.0.0
+lib/libmythupnp-29.so
+lib/libmythupnp-29.so.29
+lib/libmythupnp-29.so.29.0
+lib/libmythupnp-29.so.29.0.0
+lib/mythtv/filters/libadjust.so
+lib/mythtv/filters/libbobdeint.so
+lib/mythtv/filters/libcrop.so
+lib/mythtv/filters/libdenoise3d.so
+lib/mythtv/filters/libfieldorder.so
+lib/mythtv/filters/libforce.so
+lib/mythtv/filters/libgreedyhdeint.so
+lib/mythtv/filters/libinvert.so
+lib/mythtv/filters/libivtc.so
+lib/mythtv/filters/libkerneldeint.so
+lib/mythtv/filters/liblinearblend.so
+lib/mythtv/filters/libonefield.so
+lib/mythtv/filters/libpostprocess.so
+lib/mythtv/filters/libquickdnr.so
+lib/mythtv/filters/libvflip.so
+lib/mythtv/filters/libyadif.so
%%BINDINGS%%%%SITE_PERL%%/IO/Socket/INET/MythTV.pm
%%BINDINGS%%%%SITE_PERL%%/MythTV.pm
%%BINDINGS%%%%SITE_PERL%%/MythTV/Channel.pm
%%BINDINGS%%%%SITE_PERL%%/MythTV/Program.pm
%%BINDINGS%%%%SITE_PERL%%/MythTV/Recording.pm
%%BINDINGS%%%%SITE_PERL%%/MythTV/StorageGroup.pm
-%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV-0.27.0-py2.7.egg-info
+%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV-0.28._1-py%%PYTHON_VER%%.egg-info
%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/__init__.py
%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/__init__.pyc
%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/_conn_mysqldb.py
@@ -553,12 +694,14 @@ include/mythtv/xmlparse.h
%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/ttvdb/XSLT/tvdbVideo.xsl
%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/ttvdb/__init__.py
%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/ttvdb/__init__.pyc
-%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/ttvdb/cache.py
-%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/ttvdb/cache.pyc
+%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/ttvdb/requests_cache_compatability.py
+%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/ttvdb/requests_cache_compatability.pyc
%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/ttvdb/tvdbXslt.py
%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/ttvdb/tvdbXslt.pyc
%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/ttvdb/tvdb_api.py
%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/ttvdb/tvdb_api.pyc
+%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/ttvdb/tvdb_create_key.py
+%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/ttvdb/tvdb_create_key.pyc
%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/ttvdb/tvdb_exceptions.py
%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/ttvdb/tvdb_exceptions.pyc
%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/ttvdb/tvdb_ui.py
@@ -569,6 +712,8 @@ include/mythtv/xmlparse.h
%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/utility/altdict.pyc
%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/utility/dequebuffer.py
%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/utility/dequebuffer.pyc
+%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/utility/dicttoxml.py
+%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/utility/dicttoxml.pyc
%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/utility/dt.py
%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/utility/dt.pyc
%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/utility/enum.py
@@ -583,90 +728,6 @@ include/mythtv/xmlparse.h
%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/wikiscripts/__init__.pyc
%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/wikiscripts/wikiscripts.py
%%BINDINGS%%%%PYTHON_SITELIBDIR%%/MythTV/wikiscripts/wikiscripts.pyc
-lib/libmyth-0.27.so
-lib/libmyth-0.27.so.0
-lib/libmyth-0.27.so.0.27
-lib/libmyth-0.27.so.0.27.0
-lib/libmythavcodec.so
-lib/libmythavcodec.so.54
-lib/libmythavcodec.so.54.92.100
-lib/libmythavdevice.so
-lib/libmythavdevice.so.54
-lib/libmythavdevice.so.54.3.103
-lib/libmythavfilter.so
-lib/libmythavfilter.so.3
-lib/libmythavfilter.so.3.42.103
-lib/libmythavformat.so
-lib/libmythavformat.so.54
-lib/libmythavformat.so.54.63.104
-lib/libmythavutil.so
-lib/libmythavutil.so.52
-lib/libmythavutil.so.52.18.100
-lib/libmythbase-0.27.so
-lib/libmythbase-0.27.so.0
-lib/libmythbase-0.27.so.0.27
-lib/libmythbase-0.27.so.0.27.0
-lib/libmythfreemheg-0.27.so
-lib/libmythfreemheg-0.27.so.0
-lib/libmythfreemheg-0.27.so.0.27
-lib/libmythfreemheg-0.27.so.0.27.0
-lib/libmythhdhomerun-0.27.so
-lib/libmythhdhomerun-0.27.so.0
-lib/libmythhdhomerun-0.27.so.0.27
-lib/libmythhdhomerun-0.27.so.0.27.0
-lib/libmythmetadata-0.27.so
-lib/libmythmetadata-0.27.so.0
-lib/libmythmetadata-0.27.so.0.27
-lib/libmythmetadata-0.27.so.0.27.0
-lib/libmythpostproc.so
-lib/libmythpostproc.so.52
-lib/libmythpostproc.so.52.2.100
-lib/libmythprotoserver-0.27.so
-lib/libmythprotoserver-0.27.so.0
-lib/libmythprotoserver-0.27.so.0.27
-lib/libmythprotoserver-0.27.so.0.27.0
-lib/libmythqjson.so
-lib/libmythqjson.so.0
-lib/libmythqjson.so.0.7
-lib/libmythqjson.so.0.7.1
-lib/libmythservicecontracts-0.27.so
-lib/libmythservicecontracts-0.27.so.0
-lib/libmythservicecontracts-0.27.so.0.27
-lib/libmythservicecontracts-0.27.so.0.27.0
-lib/libmythswresample.so
-lib/libmythswresample.so.0
-lib/libmythswresample.so.0.17.102
-lib/libmythswscale.so
-lib/libmythswscale.so.2
-lib/libmythswscale.so.2.2.100
-lib/libmythtv-0.27.so
-lib/libmythtv-0.27.so.0
-lib/libmythtv-0.27.so.0.27
-lib/libmythtv-0.27.so.0.27.0
-lib/libmythui-0.27.so
-lib/libmythui-0.27.so.0
-lib/libmythui-0.27.so.0.27
-lib/libmythui-0.27.so.0.27.0
-lib/libmythupnp-0.27.so
-lib/libmythupnp-0.27.so.0
-lib/libmythupnp-0.27.so.0.27
-lib/libmythupnp-0.27.so.0.27.0
-lib/mythtv/filters/libadjust.so
-lib/mythtv/filters/libbobdeint.so
-lib/mythtv/filters/libcrop.so
-lib/mythtv/filters/libdenoise3d.so
-lib/mythtv/filters/libfieldorder.so
-lib/mythtv/filters/libforce.so
-lib/mythtv/filters/libgreedyhdeint.so
-lib/mythtv/filters/libinvert.so
-lib/mythtv/filters/libivtc.so
-lib/mythtv/filters/libkerneldeint.so
-lib/mythtv/filters/liblinearblend.so
-lib/mythtv/filters/libonefield.so
-lib/mythtv/filters/libpostprocess.so
-lib/mythtv/filters/libquickdnr.so
-lib/mythtv/filters/libvflip.so
-lib/mythtv/filters/libyadif.so
%%DATADIR%%/CDS_scpd.xml
%%DATADIR%%/CMGR_scpd.xml
%%DATADIR%%/MFEXML_scpd.xml
@@ -714,7 +775,6 @@ lib/mythtv/filters/libyadif.so
%%DATADIR%%/fonts/Tiresias Infofont.ttf
%%DATADIR%%/fonts/texgyrechorus-mediumitalic.otf
%%DATADIR%%/fonts/tiresias_gpl3.txt
-%%DATADIR%%/hardwareprofile/.gitignore
%%DATADIR%%/hardwareprofile/MultipartPostHandler.py
%%DATADIR%%/hardwareprofile/__init__.py
%%DATADIR%%/hardwareprofile/config.py
@@ -746,99 +806,114 @@ lib/mythtv/filters/libyadif.so
%%DATADIR%%/hardwareprofile/smolt_config.py
%%DATADIR%%/hardwareprofile/software.py
%%DATADIR%%/hardwareprofile/uuiddb.py
+%%DATADIR%%/html/3rdParty/jquery/MYTH_README
+%%DATADIR%%/html/3rdParty/jquery/galleria/LICENSE
+%%DATADIR%%/html/3rdParty/jquery/galleria/galleria.js
+%%DATADIR%%/html/3rdParty/jquery/galleria/plugins/flickr/flickr-demo.html
+%%DATADIR%%/html/3rdParty/jquery/galleria/plugins/flickr/flickr-loader.gif
+%%DATADIR%%/html/3rdParty/jquery/galleria/plugins/flickr/galleria.flickr.js
+%%DATADIR%%/html/3rdParty/jquery/galleria/plugins/flickr/galleria.flickr.min.js
+%%DATADIR%%/html/3rdParty/jquery/galleria/plugins/flickr/loader.gif
+%%DATADIR%%/html/3rdParty/jquery/galleria/plugins/history/galleria.history.js
+%%DATADIR%%/html/3rdParty/jquery/galleria/plugins/history/galleria.history.min.js
+%%DATADIR%%/html/3rdParty/jquery/galleria/plugins/history/history-demo.html
+%%DATADIR%%/html/3rdParty/jquery/galleria/plugins/picasa/galleria.picasa.js
+%%DATADIR%%/html/3rdParty/jquery/galleria/plugins/picasa/galleria.picasa.min.js
+%%DATADIR%%/html/3rdParty/jquery/galleria/plugins/picasa/loader.gif
+%%DATADIR%%/html/3rdParty/jquery/galleria/plugins/picasa/picasa-demo.html
+%%DATADIR%%/html/3rdParty/jquery/galleria/themes/classic/README.rst
+%%DATADIR%%/html/3rdParty/jquery/galleria/themes/classic/classic-demo.html
+%%DATADIR%%/html/3rdParty/jquery/galleria/themes/classic/classic-loader.gif
+%%DATADIR%%/html/3rdParty/jquery/galleria/themes/classic/classic-map.png
+%%DATADIR%%/html/3rdParty/jquery/galleria/themes/classic/galleria.classic.css
+%%DATADIR%%/html/3rdParty/jquery/galleria/themes/classic/galleria.classic.js
+%%DATADIR%%/html/3rdParty/jquery/galleria/themes/classic/galleria.classic.min.js
+%%DATADIR%%/html/3rdParty/jquery/jquery-2.0.3.js
+%%DATADIR%%/html/3rdParty/jquery/jquery-2.0.3.min.js
+%%DATADIR%%/html/3rdParty/jquery/jquery-2.1.4.min.js
+%%DATADIR%%/html/3rdParty/jquery/jqueryContextMenu/js/jquery.contextmenu.js
+%%DATADIR%%/html/3rdParty/jquery/jqueryFileTree/images/application.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryFileTree/images/code.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryFileTree/images/css.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryFileTree/images/db.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryFileTree/images/directory.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryFileTree/images/doc.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryFileTree/images/file.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryFileTree/images/film.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryFileTree/images/flash.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryFileTree/images/folder_open.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryFileTree/images/html.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryFileTree/images/java.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryFileTree/images/linux.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryFileTree/images/music.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryFileTree/images/pdf.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryFileTree/images/php.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryFileTree/images/picture.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryFileTree/images/ppt.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryFileTree/images/psd.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryFileTree/images/ruby.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryFileTree/images/script.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryFileTree/images/spinner.gif
+%%DATADIR%%/html/3rdParty/jquery/jqueryFileTree/images/txt.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryFileTree/images/xls.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryFileTree/images/zip.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryFileTree/jqueryFileTree.css
+%%DATADIR%%/html/3rdParty/jquery/jqueryFileTree/jqueryFileTree.js
+%%DATADIR%%/html/3rdParty/jquery/jqueryGrid/css/ui.jqgrid.css
+%%DATADIR%%/html/3rdParty/jquery/jqueryGrid/js/grid.locale-en.js
+%%DATADIR%%/html/3rdParty/jquery/jqueryGrid/js/jquery.jqGrid.js
+%%DATADIR%%/html/3rdParty/jquery/jqueryJScroll/README.md
+%%DATADIR%%/html/3rdParty/jquery/jqueryJScroll/jquery.jscroll.js
+%%DATADIR%%/html/3rdParty/jquery/jqueryJScroll/jscroll.jquery.json
+%%DATADIR%%/html/3rdParty/jquery/jqueryMultiSelect/css/jquery.multiselect.css
+%%DATADIR%%/html/3rdParty/jquery/jqueryMultiSelect/css/ui.multiselect.css
+%%DATADIR%%/html/3rdParty/jquery/jqueryMultiSelect/js/jquery.multiselect.js
+%%DATADIR%%/html/3rdParty/jquery/jqueryMultiSelect/js/ui-multiselect-en.js
+%%DATADIR%%/html/3rdParty/jquery/jqueryUI/css/images/ui-bg_flat_30_cccccc_40x100.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryUI/css/images/ui-bg_flat_50_5c5c5c_40x100.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryUI/css/images/ui-bg_glass_40_ffc73d_1x400.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryUI/css/images/ui-bg_hexagon_10_000000_12x10.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryUI/css/images/ui-bg_highlight-hard_20_0b6a98_1x100.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryUI/css/images/ui-bg_highlight-soft_33_003147_1x100.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryUI/css/images/ui-bg_highlight-soft_35_222222_1x100.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryUI/css/images/ui-bg_highlight-soft_44_444444_1x100.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryUI/css/images/ui-bg_highlight-soft_80_eeeeee_1x100.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryUI/css/images/ui-icons_222222_256x240.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryUI/css/images/ui-icons_4b8e0b_256x240.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryUI/css/images/ui-icons_a83300_256x240.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryUI/css/images/ui-icons_cccccc_256x240.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryUI/css/images/ui-icons_ffffff_256x240.png
+%%DATADIR%%/html/3rdParty/jquery/jqueryUI/css/jquery-ui-1.10.3.css
+%%DATADIR%%/html/3rdParty/jquery/jqueryUI/css/jquery-ui.css
+%%DATADIR%%/html/3rdParty/jquery/jqueryUI/js/jquery-ui-1.10.3.js
%%DATADIR%%/html/3rdParty/jwplayer.qsp
+%%DATADIR%%/html/backend_index.qsp
%%DATADIR%%/html/css/Status.css
-%%DATADIR%%/html/css/images/ui-bg_flat_30_cccccc_40x100.png
-%%DATADIR%%/html/css/images/ui-bg_flat_50_5c5c5c_40x100.png
-%%DATADIR%%/html/css/images/ui-bg_glass_40_ffc73d_1x400.png
-%%DATADIR%%/html/css/images/ui-bg_hexagon_10_000000_12x10.png
-%%DATADIR%%/html/css/images/ui-bg_highlight-hard_20_0b6a98_1x100.png
-%%DATADIR%%/html/css/images/ui-bg_highlight-soft_33_003147_1x100.png
-%%DATADIR%%/html/css/images/ui-bg_highlight-soft_35_222222_1x100.png
-%%DATADIR%%/html/css/images/ui-bg_highlight-soft_44_444444_1x100.png
-%%DATADIR%%/html/css/images/ui-bg_highlight-soft_80_eeeeee_1x100.png
-%%DATADIR%%/html/css/images/ui-icons_222222_256x240.png
-%%DATADIR%%/html/css/images/ui-icons_4b8e0b_256x240.png
-%%DATADIR%%/html/css/images/ui-icons_a83300_256x240.png
-%%DATADIR%%/html/css/images/ui-icons_cccccc_256x240.png
-%%DATADIR%%/html/css/images/ui-icons_ffffff_256x240.png
-%%DATADIR%%/html/css/jquery-ui.css
-%%DATADIR%%/html/css/menustyle.css
+%%DATADIR%%/html/css/settings.css
%%DATADIR%%/html/css/setup.css
%%DATADIR%%/html/css/site.css
-%%DATADIR%%/html/css/ui.jqgrid.css
-%%DATADIR%%/html/css/ui.multiselect.css
%%DATADIR%%/html/css/wsdl.css
+%%DATADIR%%/html/debug/websocket.qsp
+%%DATADIR%%/html/frontend_index.qsp
%%DATADIR%%/html/images/blank.gif
%%DATADIR%%/html/images/checkerboard_100x100.png
%%DATADIR%%/html/images/favicon.ico
+%%DATADIR%%/html/images/icons/README
+%%DATADIR%%/html/images/icons/upnp_large_icon.jpg
+%%DATADIR%%/html/images/icons/upnp_large_icon.png
+%%DATADIR%%/html/images/icons/upnp_small_icon.jpg
+%%DATADIR%%/html/images/icons/upnp_small_icon.png
%%DATADIR%%/html/images/menu-button-bg.gif
%%DATADIR%%/html/images/mythtv.png
-%%DATADIR%%/html/images/ui-bg_flat_30_cccccc_40x100.png
-%%DATADIR%%/html/images/ui-bg_flat_50_5c5c5c_40x100.png
-%%DATADIR%%/html/images/ui-bg_glass_40_ffc73d_1x400.png
-%%DATADIR%%/html/images/ui-bg_hexagon_10_000000_12x10.png
-%%DATADIR%%/html/images/ui-bg_highlight-hard_20_0b6a98_1x100.png
-%%DATADIR%%/html/images/ui-bg_highlight-soft_33_003147_1x100.png
-%%DATADIR%%/html/images/ui-bg_highlight-soft_35_222222_1x100.png
-%%DATADIR%%/html/images/ui-bg_highlight-soft_44_444444_1x100.png
-%%DATADIR%%/html/images/ui-bg_highlight-soft_80_eeeeee_1x100.png
-%%DATADIR%%/html/images/ui-icons_222222_256x240.png
-%%DATADIR%%/html/images/ui-icons_4b8e0b_256x240.png
-%%DATADIR%%/html/images/ui-icons_a83300_256x240.png
-%%DATADIR%%/html/images/ui-icons_cccccc_256x240.png
-%%DATADIR%%/html/images/ui-icons_ffffff_256x240.png
-%%DATADIR%%/html/index.html
-%%DATADIR%%/html/js/databaseutil.js
%%DATADIR%%/html/js/fileutil.js
-%%DATADIR%%/html/js/galleria/LICENSE
-%%DATADIR%%/html/js/galleria/galleria-1.2.3.js
-%%DATADIR%%/html/js/galleria/galleria-1.2.3.min.js
-%%DATADIR%%/html/js/galleria/themes/classic/README.rst
-%%DATADIR%%/html/js/galleria/themes/classic/classic-demo.html
-%%DATADIR%%/html/js/galleria/themes/classic/classic-loader.gif
-%%DATADIR%%/html/js/galleria/themes/classic/classic-map.png
-%%DATADIR%%/html/js/galleria/themes/classic/galleria.classic.css
-%%DATADIR%%/html/js/galleria/themes/classic/galleria.classic.js
-%%DATADIR%%/html/js/galleria/themes/classic/galleria.classic.min.js
-%%DATADIR%%/html/js/grid.locale-en.js
%%DATADIR%%/html/js/inspect.js
-%%DATADIR%%/html/js/jquery-ui.min.js
-%%DATADIR%%/html/js/jquery.contextmenu.js
-%%DATADIR%%/html/js/jquery.jqGrid.min.js
-%%DATADIR%%/html/js/jquery.min.js
-%%DATADIR%%/html/js/jqueryFileTree/images/application.png
-%%DATADIR%%/html/js/jqueryFileTree/images/code.png
-%%DATADIR%%/html/js/jqueryFileTree/images/css.png
-%%DATADIR%%/html/js/jqueryFileTree/images/db.png
-%%DATADIR%%/html/js/jqueryFileTree/images/directory.png
-%%DATADIR%%/html/js/jqueryFileTree/images/doc.png
-%%DATADIR%%/html/js/jqueryFileTree/images/file.png
-%%DATADIR%%/html/js/jqueryFileTree/images/film.png
-%%DATADIR%%/html/js/jqueryFileTree/images/flash.png
-%%DATADIR%%/html/js/jqueryFileTree/images/folder_open.png
-%%DATADIR%%/html/js/jqueryFileTree/images/html.png
-%%DATADIR%%/html/js/jqueryFileTree/images/java.png
-%%DATADIR%%/html/js/jqueryFileTree/images/linux.png
-%%DATADIR%%/html/js/jqueryFileTree/images/music.png
-%%DATADIR%%/html/js/jqueryFileTree/images/pdf.png
-%%DATADIR%%/html/js/jqueryFileTree/images/php.png
-%%DATADIR%%/html/js/jqueryFileTree/images/picture.png
-%%DATADIR%%/html/js/jqueryFileTree/images/ppt.png
-%%DATADIR%%/html/js/jqueryFileTree/images/psd.png
-%%DATADIR%%/html/js/jqueryFileTree/images/ruby.png
-%%DATADIR%%/html/js/jqueryFileTree/images/script.png
-%%DATADIR%%/html/js/jqueryFileTree/images/spinner.gif
-%%DATADIR%%/html/js/jqueryFileTree/images/txt.png
-%%DATADIR%%/html/js/jqueryFileTree/images/xls.png
-%%DATADIR%%/html/js/jqueryFileTree/images/zip.png
-%%DATADIR%%/html/js/jqueryFileTree/jqueryFileTree.css
-%%DATADIR%%/html/js/jqueryFileTree/jqueryFileTree.js
%%DATADIR%%/html/js/menu.js
-%%DATADIR%%/html/js/ui-multiselect-en.js
-%%DATADIR%%/html/js/ui.multiselect.js
+%%DATADIR%%/html/js/settings.js
%%DATADIR%%/html/js/util.qjs
+%%DATADIR%%/html/js/utility.js
+%%DATADIR%%/html/js/websocket_events.js
%%DATADIR%%/html/menu.qsp
+%%DATADIR%%/html/misc/css/overview.css
%%DATADIR%%/html/misc/database-backup.html
%%DATADIR%%/html/misc/database-repair.html
%%DATADIR%%/html/misc/databasetabs.html
@@ -848,12 +923,15 @@ lib/mythtv/filters/libyadif.so
%%DATADIR%%/html/misc/js/databasetabs.js
%%DATADIR%%/html/misc/js/hardwareprofile.js
%%DATADIR%%/html/misc/js/messagetab.js
+%%DATADIR%%/html/misc/js/overview.js
%%DATADIR%%/html/misc/js/viewlogs.js
%%DATADIR%%/html/misc/message.html
%%DATADIR%%/html/misc/messagetab.html
+%%DATADIR%%/html/misc/misc_template.html
%%DATADIR%%/html/misc/overview.qsp
%%DATADIR%%/html/misc/placeholder.html
%%DATADIR%%/html/misc/viewlogs.html
+%%DATADIR%%/html/robots.txt
%%DATADIR%%/html/samples/hlstest.qsp
%%DATADIR%%/html/samples/js/samples.js
%%DATADIR%%/html/samples/livestream_rec.qsp
@@ -861,9 +939,11 @@ lib/mythtv/filters/libyadif.so
%%DATADIR%%/html/samples/recorded.qsp
%%DATADIR%%/html/samples/serverside.qsp
%%DATADIR%%/html/samples/storagegroups.qsp
+%%DATADIR%%/html/setup/ajax_backends/setting_util.qsp
%%DATADIR%%/html/setup/channeleditor-channeldetail-multi.html
%%DATADIR%%/html/setup/channeleditor-channeldetail.html
%%DATADIR%%/html/setup/channeleditor.html
+%%DATADIR%%/html/setup/css/common.css
%%DATADIR%%/html/setup/database.html
%%DATADIR%%/html/setup/expert.html
%%DATADIR%%/html/setup/general.html
@@ -874,28 +954,81 @@ lib/mythtv/filters/libyadif.so
%%DATADIR%%/html/setup/jobqueue-jobs.qsp
%%DATADIR%%/html/setup/jobqueue.html
%%DATADIR%%/html/setup/js/channeleditor.js
+%%DATADIR%%/html/setup/js/common.js
%%DATADIR%%/html/setup/js/database.js
%%DATADIR%%/html/setup/js/general.js
%%DATADIR%%/html/setup/js/guidedatasources.js
%%DATADIR%%/html/setup/js/jobqueue.js
%%DATADIR%%/html/setup/js/password.js
-%%DATADIR%%/html/setup/js/setup.js
%%DATADIR%%/html/setup/js/storagegroups.js
%%DATADIR%%/html/setup/js/systemevents.js
%%DATADIR%%/html/setup/js/wizard.js
%%DATADIR%%/html/setup/overview.html
%%DATADIR%%/html/setup/password.html
+%%DATADIR%%/html/setup/setup_template.html
%%DATADIR%%/html/setup/storagegroups-add-dir.html
%%DATADIR%%/html/setup/storagegroups-add-new.html
%%DATADIR%%/html/setup/storagegroups.html
%%DATADIR%%/html/setup/systemevents.html
+%%DATADIR%%/html/setup/webfrontend-settings.qsp
%%DATADIR%%/html/setup/wizard-database.html
%%DATADIR%%/html/setup/wizard-guide_data.html
%%DATADIR%%/html/setup/wizard-media_storage.html
%%DATADIR%%/html/setup/wizard-network.qsp
%%DATADIR%%/html/setup/wizard-recording_devices.html
%%DATADIR%%/html/setup/wizard.html
+%%DATADIR%%/html/tv/ajax_backends/dvr_util.qsp
+%%DATADIR%%/html/tv/ajax_backends/program_util.qsp
+%%DATADIR%%/html/tv/css/category_colors.css
+%%DATADIR%%/html/tv/css/common.css
+%%DATADIR%%/html/tv/css/guide.css
+%%DATADIR%%/html/tv/css/icons.css
+%%DATADIR%%/html/tv/css/programsearch.css
+%%DATADIR%%/html/tv/css/recordingrules.css
+%%DATADIR%%/html/tv/css/recordings.css
+%%DATADIR%%/html/tv/css/schedule.css
+%%DATADIR%%/html/tv/css/tvplayer.css
+%%DATADIR%%/html/tv/css/upcoming.css
+%%DATADIR%%/html/tv/guide.qsp
+%%DATADIR%%/html/tv/images/blank.png
+%%DATADIR%%/html/tv/images/cat_movie.svg
+%%DATADIR%%/html/tv/images/channel_icon.svg
+%%DATADIR%%/html/tv/images/fl_autoexp.svg
+%%DATADIR%%/html/tv/images/fl_bookmark.svg
+%%DATADIR%%/html/tv/images/fl_commflag.svg
+%%DATADIR%%/html/tv/images/fl_watched.svg
+%%DATADIR%%/html/tv/images/hd_1080.svg
+%%DATADIR%%/html/tv/images/hd_720.svg
+%%DATADIR%%/html/tv/images/hd_tv.svg
+%%DATADIR%%/html/tv/images/play_arrow.png
+%%DATADIR%%/html/tv/images/play_arrow.svg
+%%DATADIR%%/html/tv/images/recording_icons_sprite.svg
+%%DATADIR%%/html/tv/images/wastebin.svg
+%%DATADIR%%/html/tv/js/common.js
+%%DATADIR%%/html/tv/js/constants.js
+%%DATADIR%%/html/tv/js/guide.js
+%%DATADIR%%/html/tv/js/programsearch.js
+%%DATADIR%%/html/tv/js/recordings.js
+%%DATADIR%%/html/tv/js/schedule.js
+%%DATADIR%%/html/tv/js/tvutil.qjs
+%%DATADIR%%/html/tv/js/upcoming.js
+%%DATADIR%%/html/tv/programsearch.qsp
+%%DATADIR%%/html/tv/recordingrules.qsp
+%%DATADIR%%/html/tv/recordings.qsp
+%%DATADIR%%/html/tv/schedule.qsp
+%%DATADIR%%/html/tv/stream.qsp
+%%DATADIR%%/html/tv/tvplayer.qsp
+%%DATADIR%%/html/tv/upcoming.qsp
+%%DATADIR%%/html/video/css/gallery.css
+%%DATADIR%%/html/video/gallery.qsp
+%%DATADIR%%/html/video/gallery_detail.qsp
+%%DATADIR%%/html/video/images/folder_icon.png
+%%DATADIR%%/html/video/images/mv_gallery_dir_up.png
+%%DATADIR%%/html/video/images/unknown.png
+%%DATADIR%%/html/video/js/gallery.js
+%%DATADIR%%/html/video/js/gallery.qjs
%%DATADIR%%/html/xslt/class.xslt
+%%DATADIR%%/html/xslt/enum.xslt
%%DATADIR%%/html/xslt/service.xslt
%%DATADIR%%/i18n/mythfrontend_bg.qm
%%DATADIR%%/i18n/mythfrontend_ca.qm
@@ -975,6 +1108,7 @@ lib/mythtv/filters/libyadif.so
%%DATADIR%%/internetcontent/nv_python_libs/configs/XML/defaultUserPrefs/tedtalks.xml
%%DATADIR%%/internetcontent/nv_python_libs/configs/XML/defaultUserPrefs/thewb.xml
%%DATADIR%%/internetcontent/nv_python_libs/configs/XML/defaultUserPrefs/trailersMashup.xml
+%%DATADIR%%/internetcontent/nv_python_libs/configs/XML/defaultUserPrefs/youtube.xml
%%DATADIR%%/internetcontent/nv_python_libs/configs/XML/hulu_config.xml
%%DATADIR%%/internetcontent/nv_python_libs/configs/XML/mashups_config.xml
%%DATADIR%%/internetcontent/nv_python_libs/configs/XML/pbs_config.xml
@@ -1044,7 +1178,7 @@ lib/mythtv/filters/libyadif.so
%%DATADIR%%/internetcontent/nv_python_libs/vimeo/oauth/__init__.py
%%DATADIR%%/internetcontent/nv_python_libs/vimeo/oauth/oauth_api.py
%%DATADIR%%/internetcontent/nv_python_libs/vimeo/vimeo_api.py
-%%DATADIR%%/internetcontent/nv_python_libs/vimeo/vimeo_data.pyc
+%%DATADIR%%/internetcontent/nv_python_libs/vimeo/vimeo_data.py
%%DATADIR%%/internetcontent/nv_python_libs/vimeo/vimeo_exceptions.py
%%DATADIR%%/internetcontent/nv_python_libs/xsltfunctions/__init__.py
%%DATADIR%%/internetcontent/nv_python_libs/xsltfunctions/bliptvXSL_api.py
@@ -1065,6 +1199,7 @@ lib/mythtv/filters/libyadif.so
%%DATADIR%%/internetcontent/nv_python_libs/xsltfunctions/youtubeXSL_api.py
%%DATADIR%%/internetcontent/nv_python_libs/youtube/__init__.py
%%DATADIR%%/internetcontent/nv_python_libs/youtube/youtube_api.py
+%%DATADIR%%/internetcontent/nv_python_libs/youtube/youtube_data.py
%%DATADIR%%/internetcontent/nv_python_libs/youtube/youtube_exceptions.py
%%DATADIR%%/internetcontent/pbs.py
%%DATADIR%%/internetcontent/rev3.py
@@ -1095,7 +1230,42 @@ lib/mythtv/filters/libyadif.so
%%DATADIR%%/locales/zh_hk.xml
%%DATADIR%%/locales/zh_tw.xml
%%DATADIR%%/metadata/Movie/tmdb3.py
+%%DATADIR%%/metadata/Music/discid/README
+%%DATADIR%%/metadata/Music/discid/__init__.py
+%%DATADIR%%/metadata/Music/discid/disc.py
+%%DATADIR%%/metadata/Music/discid/libdiscid.py
+%%DATADIR%%/metadata/Music/discid/track.py
+%%DATADIR%%/metadata/Music/discid/util.py
+%%DATADIR%%/metadata/Music/lyrics/README
+%%DATADIR%%/metadata/Music/lyrics/alsong.py
+%%DATADIR%%/metadata/Music/lyrics/baidu.py
+%%DATADIR%%/metadata/Music/lyrics/common/__init__.py
+%%DATADIR%%/metadata/Music/lyrics/common/audiofile.py
+%%DATADIR%%/metadata/Music/lyrics/common/utilities.py
+%%DATADIR%%/metadata/Music/lyrics/darklyrics.py
+%%DATADIR%%/metadata/Music/lyrics/embedlrc.py
+%%DATADIR%%/metadata/Music/lyrics/examples/README
+%%DATADIR%%/metadata/Music/lyrics/examples/filelyrics.lrc
+%%DATADIR%%/metadata/Music/lyrics/examples/filelyrics.mp3
+%%DATADIR%%/metadata/Music/lyrics/examples/taglyrics.mp3
+%%DATADIR%%/metadata/Music/lyrics/filelyrics.py
+%%DATADIR%%/metadata/Music/lyrics/genius.py
+%%DATADIR%%/metadata/Music/lyrics/gomaudio.py
+%%DATADIR%%/metadata/Music/lyrics/letssingit.py
+%%DATADIR%%/metadata/Music/lyrics/lyricscom.py
+%%DATADIR%%/metadata/Music/lyrics/lyricsmode.py
+%%DATADIR%%/metadata/Music/lyrics/lyricswiki.py
+%%DATADIR%%/metadata/Music/lyrics/ttplayer.py
+%%DATADIR%%/metadata/Music/mbutils.py
+%%DATADIR%%/metadata/Music/musicbrainzngs/README
+%%DATADIR%%/metadata/Music/musicbrainzngs/__init__.py
+%%DATADIR%%/metadata/Music/musicbrainzngs/caa.py
+%%DATADIR%%/metadata/Music/musicbrainzngs/compat.py
+%%DATADIR%%/metadata/Music/musicbrainzngs/mbxml.py
+%%DATADIR%%/metadata/Music/musicbrainzngs/musicbrainz.py
+%%DATADIR%%/metadata/Music/musicbrainzngs/util.py
%%DATADIR%%/metadata/Television/ttvdb.py
+%%DATADIR%%/metadata/Television/tvdb_test.conf
%%DATADIR%%/mythconverg_backup.pl
%%DATADIR%%/mythconverg_restore.pl
%%DATADIR%%/setup.xml
@@ -1260,6 +1430,7 @@ lib/mythtv/filters/libyadif.so
%%DATADIR%%/themes/MythCenter/qtlook.txt
%%DATADIR%%/themes/MythCenter/recordings-ui.xml
%%DATADIR%%/themes/MythCenter/schedule-ui.xml
+%%DATADIR%%/themes/MythCenter/status-ui.xml
%%DATADIR%%/themes/MythCenter/themeinfo.xml
%%DATADIR%%/themes/MythCenter/title/title_dvd.png
%%DATADIR%%/themes/MythCenter/title/title_gallery.png
@@ -1527,7 +1698,6 @@ lib/mythtv/filters/libyadif.so
%%DATADIR%%/themes/Terra/video/video_gallery_background_selected.png
%%DATADIR%%/themes/Terra/watermarks/README.license
%%DATADIR%%/themes/Terra/watermarks/aerial.png
-%%DATADIR%%/themes/Terra/watermarks/appearance.png
%%DATADIR%%/themes/Terra/watermarks/archive.png
%%DATADIR%%/themes/Terra/watermarks/audio.png
%%DATADIR%%/themes/Terra/watermarks/browser.png
@@ -1569,6 +1739,7 @@ lib/mythtv/filters/libyadif.so
%%DATADIR%%/themes/Terra/watermarks/select_music.png
%%DATADIR%%/themes/Terra/watermarks/status.png
%%DATADIR%%/themes/Terra/watermarks/stop_light.png
+%%DATADIR%%/themes/Terra/watermarks/themechooser.png
%%DATADIR%%/themes/Terra/watermarks/tools.png
%%DATADIR%%/themes/Terra/watermarks/tv.png
%%DATADIR%%/themes/Terra/watermarks/vcr.png
@@ -1738,28 +1909,18 @@ lib/mythtv/filters/libyadif.so
%%DATADIR%%/themes/default/htmls/notfound.html
%%DATADIR%%/themes/default/htmls/progdetails_page1.html
%%DATADIR%%/themes/default/htmls/progdetails_page2.html
+%%DATADIR%%/themes/default/image-ui.xml
%%DATADIR%%/themes/default/keyboard/ar.xml
-%%DATADIR%%/themes/default/keyboard/ar_ui.xml
%%DATADIR%%/themes/default/keyboard/da.xml
-%%DATADIR%%/themes/default/keyboard/da_ui.xml
%%DATADIR%%/themes/default/keyboard/de.xml
-%%DATADIR%%/themes/default/keyboard/de_ui.xml
%%DATADIR%%/themes/default/keyboard/el.xml
-%%DATADIR%%/themes/default/keyboard/el_ui.xml
%%DATADIR%%/themes/default/keyboard/en_gb.xml
-%%DATADIR%%/themes/default/keyboard/en_gb_ui.xml
%%DATADIR%%/themes/default/keyboard/en_us.xml
-%%DATADIR%%/themes/default/keyboard/en_us_ui.xml
%%DATADIR%%/themes/default/keyboard/es.xml
-%%DATADIR%%/themes/default/keyboard/es_ui.xml
%%DATADIR%%/themes/default/keyboard/fr.xml
%%DATADIR%%/themes/default/keyboard/fr_ch.xml
-%%DATADIR%%/themes/default/keyboard/fr_ch_ui.xml
-%%DATADIR%%/themes/default/keyboard/fr_ui.xml
%%DATADIR%%/themes/default/keyboard/he.xml
-%%DATADIR%%/themes/default/keyboard/he_ui.xml
%%DATADIR%%/themes/default/keyboard/it.xml
-%%DATADIR%%/themes/default/keyboard/it_ui.xml
%%DATADIR%%/themes/default/keyboard/key_down.png
%%DATADIR%%/themes/default/keyboard/key_down_back.png
%%DATADIR%%/themes/default/keyboard/key_down_del.png
@@ -1796,14 +1957,11 @@ lib/mythtv/filters/libyadif.so
%%DATADIR%%/themes/default/keyboard/keyboard.xml
%%DATADIR%%/themes/default/keyboard/leftarrow.png
%%DATADIR%%/themes/default/keyboard/nb.xml
-%%DATADIR%%/themes/default/keyboard/nb_ui.xml
%%DATADIR%%/themes/default/keyboard/returnarrow.png
%%DATADIR%%/themes/default/keyboard/rightarrow.png
%%DATADIR%%/themes/default/keyboard/ru.xml
-%%DATADIR%%/themes/default/keyboard/ru_ui.xml
%%DATADIR%%/themes/default/keyboard/shiftarrow.png
%%DATADIR%%/themes/default/keyboard/sv.xml
-%%DATADIR%%/themes/default/keyboard/sv_ui.xml
%%DATADIR%%/themes/default/lb-arrow.png
%%DATADIR%%/themes/default/lb-check-empty.png
%%DATADIR%%/themes/default/lb-check-full.png
@@ -2074,6 +2232,7 @@ lib/mythtv/filters/libyadif.so
%%DATADIR%%/themes/default/menu_playback.xml
%%DATADIR%%/themes/default/menu_playback_compact.xml
%%DATADIR%%/themes/default/mono.png
+%%DATADIR%%/themes/default/musicscanner.png
%%DATADIR%%/themes/default/mv_browse_background.png
%%DATADIR%%/themes/default/mv_browse_selector.png
%%DATADIR%%/themes/default/mv_filerequest.png
@@ -2135,9 +2294,13 @@ lib/mythtv/filters/libyadif.so
%%DATADIR%%/themes/default/shared/directory.png
%%DATADIR%%/themes/default/shared/executable.png
%%DATADIR%%/themes/default/shared/file.png
+%%DATADIR%%/themes/default/shared/folder-reg.png
+%%DATADIR%%/themes/default/shared/folder-sel.png
%%DATADIR%%/themes/default/shared/grid_back_reg.png
%%DATADIR%%/themes/default/shared/grid_back_sel.png
%%DATADIR%%/themes/default/shared/grid_noimage.png
+%%DATADIR%%/themes/default/shared/movie-reg.png
+%%DATADIR%%/themes/default/shared/movie-sel.png
%%DATADIR%%/themes/default/shared/secure.png
%%DATADIR%%/themes/default/shared/unsecure.png
%%DATADIR%%/themes/default/shared/updirectory.png
@@ -2145,6 +2308,7 @@ lib/mythtv/filters/libyadif.so
%%DATADIR%%/themes/default/solid-container.png
%%DATADIR%%/themes/default/solid-cr-background.png
%%DATADIR%%/themes/default/sr-background.png
+%%DATADIR%%/themes/default/standardsetting-ui.xml
%%DATADIR%%/themes/default/status-bar.png
%%DATADIR%%/themes/default/status-ui.xml
%%DATADIR%%/themes/default/stereo.png