From d2cbfc286c25f31f20433e9149a0e62c4aaf900f Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Sun, 8 Feb 2009 17:20:20 -0500
Subject: The new structure... does not work yet.

---
 abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD |  41 ++
 abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD |  35 ++
 .../mythtv/trunk/mythcontrols/PKGBUILD             |  35 ++
 abs/core-testing/mythtv/trunk/mythflix/PKGBUILD    |  34 ++
 abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD |  36 ++
 abs/core-testing/mythtv/trunk/mythgame/PKGBUILD    |  36 ++
 .../mythtv/trunk/mythmovietime/PKGBUILD            |  36 ++
 abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD   |  41 ++
 .../mythtv/trunk/mythmusic/music_flac.patch        | 293 +++++++++
 abs/core-testing/mythtv/trunk/mythnews/PKGBUILD    |  34 ++
 abs/core-testing/mythtv/trunk/mythphone/PKGBUILD   |  42 ++
 abs/core-testing/mythtv/trunk/myththemes/PKGBUILD  |  36 ++
 .../DeviceReadBuffer-polltimeout.2.patch           | 219 -------
 abs/core-testing/mythtv/trunk/mythtv-svn/PKGBUILD  |  78 ---
 .../mythtv/trunk/mythtv-svn/aacdecoder.cpp.patch   |  12 -
 .../trunk/mythtv-svn/hdpvr-v4lchannel-tweak.patch  | 139 -----
 .../trunk/mythtv-svn/menu-xml/HOST_SETTINGS.xml    |  87 ---
 .../mythtv/trunk/mythtv-svn/menu-xml/is.xml        |  33 -
 .../mythtv/trunk/mythtv-svn/menu-xml/knoppmyth.xml |  55 --
 .../trunk/mythtv-svn/menu-xml/library.xml.patch    |  13 -
 .../trunk/mythtv-svn/menu-xml/mainmenu.xml.patch   |  16 -
 .../mythtv/trunk/mythtv-svn/menu-xml/motion.xml    |  20 -
 .../mythtv-svn/menu-xml/optical_menu.xml.patch     |  15 -
 .../mythtv/trunk/mythtv-svn/menu-xml/setup.xml     | 111 ----
 .../trunk/mythtv-svn/menu-xml/siriusmenu.xml       | 419 -------------
 .../mythtv/trunk/mythtv-svn/menu-xml/xmmenu.xml    | 574 ------------------
 .../trunk/mythtv-svn/mpegrecorder-hdpvr-v1.1.patch | 658 --------------------
 abs/core-testing/mythtv/trunk/mythtv-svn/myth.sh   |   4 -
 .../mythtv/trunk/mythtv-svn/mythbackend            |  37 --
 .../mythtv/trunk/mythtv-svn/mythbackend.sh         | 117 ----
 .../trunk/mythtv-svn/mythcommflag-avidemux.2.patch | 179 ------
 .../mythtv/trunk/mythtv-svn/mythtv.install         |  55 --
 .../patches/DeviceReadBuffer-polltimeout.2.patch   | 219 -------
 .../trunk/mythtv-svn/patches/aacdecoder.cpp.patch  |  12 -
 .../patches/hdpvr-v4lchannel-tweak.patch           | 139 -----
 .../patches/mpegrecorder-hdpvr-v1.1.patch          | 658 --------------------
 .../patches/mythcommflag-avidemux.2.patch          | 179 ------
 .../mythtv/trunk/mythtv-svn/smolt_jump.patch       |  30 -
 .../trunk/mythtv-svn/svn_main_menu_popup.patch     | 211 -------
 .../mythtv/trunk/mythtv-themes/PKGBUILD            |  36 --
 .../mythtv/DeviceReadBuffer-polltimeout.2.patch    | 219 +++++++
 abs/core-testing/mythtv/trunk/mythtv/PKGBUILD      |  76 +++
 .../mythtv/trunk/mythtv/aacdecoder.cpp.patch       |  12 +
 .../mythtv/trunk/mythtv/compile_mythtv.sh          |  99 +++
 abs/core-testing/mythtv/trunk/mythtv/get_mythtv.sh |  77 +++
 .../mythtv/trunk/mythtv/hdpvr-livetv.patch         | 109 ++++
 .../mythtv/trunk/mythtv/menu-xml/HOST_SETTINGS.xml |  87 +++
 .../mythtv/trunk/mythtv/menu-xml/is.xml            |   3 +
 .../mythtv/trunk/mythtv/menu-xml/library.xml.patch |  13 +
 .../mythtv/trunk/mythtv/menu-xml/linhes.xml        |  54 ++
 .../trunk/mythtv/menu-xml/mainmenu.xml.patch       |  39 ++
 .../mythtv/trunk/mythtv/menu-xml/mythbackup.xml    |  20 +
 .../mythtv/trunk/mythtv/menu-xml/mythrestore.xml   |  20 +
 .../trunk/mythtv/menu-xml/optical_menu.xml.patch   |  15 +
 .../trunk/mythtv/menu-xml/original/create_patch.sh |   5 +
 .../mythtv/trunk/mythtv/menu-xml/setup.xml         | 111 ++++
 .../mythtv/trunk/mythtv/menu-xml/siriusmenu.xml    | 419 +++++++++++++
 .../trunk/mythtv/menu-xml/util_menu.xml.patch      |  17 +
 .../mythtv/trunk/mythtv/menu-xml/xmmenu.xml        | 574 ++++++++++++++++++
 .../trunk/mythtv/mpegrecorder-hdpvr-v2a.patch      | 668 +++++++++++++++++++++
 abs/core-testing/mythtv/trunk/mythtv/myth.sh       |   4 +
 abs/core-testing/mythtv/trunk/mythtv/mythbackend   |  38 ++
 .../mythtv/trunk/mythtv/mythbackend.sh             | 117 ++++
 .../mythtv/trunk/mythtv/mythtv.install             |  55 ++
 .../mythtv/trunk/mythtv/smolt_jump.patch           |  30 +
 .../mythtv/trunk/mythtv/svn_main_menu_popup.patch  | 211 +++++++
 abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD   |  36 ++
 abs/core-testing/mythtv/trunk/mythweather/PKGBUILD |  35 ++
 abs/core-testing/mythtv/trunk/mythweb/PKGBUILD     |  35 ++
 .../mythtv/trunk/mythweb/dblogininit.inc           |   6 +
 .../mythtv/trunk/mythweb/mythweb.install           |  37 ++
 .../mythtv/trunk/mythweb/mythweblighttpd.patch     |  13 +
 .../mythtv/trunk/mythweb/xris/dblogininit.inc      |   6 +
 .../mythtv/trunk/mythweb/xris/lighttpd.conf        | 332 ++++++++++
 .../trunk/mythweb/xris/mythweblighttpd.patch       |  16 +
 .../mythtv/trunk/plugins/mytharchive/PKGBUILD      |  41 --
 .../mythtv/trunk/plugins/mythbrowser/PKGBUILD      |  35 --
 .../mythtv/trunk/plugins/mythcontrols/PKGBUILD     |  35 --
 .../mythtv/trunk/plugins/mythflix/PKGBUILD         |  34 --
 .../mythtv/trunk/plugins/mythgallery/PKGBUILD      |  36 --
 .../mythtv/trunk/plugins/mythgame/PKGBUILD         |  36 --
 .../mythtv/trunk/plugins/mythmovietime/PKGBUILD    |  36 --
 .../mythtv/trunk/plugins/mythmusic/PKGBUILD        |  41 --
 .../trunk/plugins/mythmusic/music_flac.patch       | 293 ---------
 .../mythtv/trunk/plugins/mythnews/PKGBUILD         |  34 --
 .../mythtv/trunk/plugins/mythphone/PKGBUILD        |  42 --
 .../mythtv/trunk/plugins/mythvideo/PKGBUILD        |  36 --
 .../mythtv/trunk/plugins/mythweather/PKGBUILD      |  35 --
 .../mythtv/trunk/plugins/mythweb/PKGBUILD          |  35 --
 .../mythtv/trunk/plugins/mythweb/dblogininit.inc   |   6 -
 .../mythtv/trunk/plugins/mythweb/mythweb.install   |  37 --
 .../trunk/plugins/mythweb/mythweblighttpd.patch    |  13 -
 .../trunk/plugins/mythweb/xris/dblogininit.inc     |   6 -
 .../trunk/plugins/mythweb/xris/lighttpd.conf       | 332 ----------
 .../plugins/mythweb/xris/mythweblighttpd.patch     |  16 -
 95 files changed, 4307 insertions(+), 5504 deletions(-)
 create mode 100644 abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD
 create mode 100644 abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD
 create mode 100644 abs/core-testing/mythtv/trunk/mythcontrols/PKGBUILD
 create mode 100644 abs/core-testing/mythtv/trunk/mythflix/PKGBUILD
 create mode 100644 abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD
 create mode 100644 abs/core-testing/mythtv/trunk/mythgame/PKGBUILD
 create mode 100644 abs/core-testing/mythtv/trunk/mythmovietime/PKGBUILD
 create mode 100644 abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD
 create mode 100644 abs/core-testing/mythtv/trunk/mythmusic/music_flac.patch
 create mode 100644 abs/core-testing/mythtv/trunk/mythnews/PKGBUILD
 create mode 100644 abs/core-testing/mythtv/trunk/mythphone/PKGBUILD
 create mode 100755 abs/core-testing/mythtv/trunk/myththemes/PKGBUILD
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv-svn/DeviceReadBuffer-polltimeout.2.patch
 delete mode 100755 abs/core-testing/mythtv/trunk/mythtv-svn/PKGBUILD
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv-svn/aacdecoder.cpp.patch
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv-svn/hdpvr-v4lchannel-tweak.patch
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/HOST_SETTINGS.xml
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/is.xml
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/knoppmyth.xml
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/library.xml.patch
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/mainmenu.xml.patch
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/motion.xml
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/optical_menu.xml.patch
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/setup.xml
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/siriusmenu.xml
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/xmmenu.xml
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv-svn/mpegrecorder-hdpvr-v1.1.patch
 delete mode 100755 abs/core-testing/mythtv/trunk/mythtv-svn/myth.sh
 delete mode 100755 abs/core-testing/mythtv/trunk/mythtv-svn/mythbackend
 delete mode 100755 abs/core-testing/mythtv/trunk/mythtv-svn/mythbackend.sh
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv-svn/mythcommflag-avidemux.2.patch
 delete mode 100755 abs/core-testing/mythtv/trunk/mythtv-svn/mythtv.install
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv-svn/patches/DeviceReadBuffer-polltimeout.2.patch
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv-svn/patches/aacdecoder.cpp.patch
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv-svn/patches/hdpvr-v4lchannel-tweak.patch
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv-svn/patches/mpegrecorder-hdpvr-v1.1.patch
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv-svn/patches/mythcommflag-avidemux.2.patch
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv-svn/smolt_jump.patch
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv-svn/svn_main_menu_popup.patch
 delete mode 100755 abs/core-testing/mythtv/trunk/mythtv-themes/PKGBUILD
 create mode 100644 abs/core-testing/mythtv/trunk/mythtv/DeviceReadBuffer-polltimeout.2.patch
 create mode 100755 abs/core-testing/mythtv/trunk/mythtv/PKGBUILD
 create mode 100644 abs/core-testing/mythtv/trunk/mythtv/aacdecoder.cpp.patch
 create mode 100755 abs/core-testing/mythtv/trunk/mythtv/compile_mythtv.sh
 create mode 100755 abs/core-testing/mythtv/trunk/mythtv/get_mythtv.sh
 create mode 100644 abs/core-testing/mythtv/trunk/mythtv/hdpvr-livetv.patch
 create mode 100755 abs/core-testing/mythtv/trunk/mythtv/menu-xml/HOST_SETTINGS.xml
 create mode 100755 abs/core-testing/mythtv/trunk/mythtv/menu-xml/is.xml
 create mode 100755 abs/core-testing/mythtv/trunk/mythtv/menu-xml/library.xml.patch
 create mode 100755 abs/core-testing/mythtv/trunk/mythtv/menu-xml/linhes.xml
 create mode 100755 abs/core-testing/mythtv/trunk/mythtv/menu-xml/mainmenu.xml.patch
 create mode 100755 abs/core-testing/mythtv/trunk/mythtv/menu-xml/mythbackup.xml
 create mode 100755 abs/core-testing/mythtv/trunk/mythtv/menu-xml/mythrestore.xml
 create mode 100755 abs/core-testing/mythtv/trunk/mythtv/menu-xml/optical_menu.xml.patch
 create mode 100755 abs/core-testing/mythtv/trunk/mythtv/menu-xml/original/create_patch.sh
 create mode 100755 abs/core-testing/mythtv/trunk/mythtv/menu-xml/setup.xml
 create mode 100755 abs/core-testing/mythtv/trunk/mythtv/menu-xml/siriusmenu.xml
 create mode 100755 abs/core-testing/mythtv/trunk/mythtv/menu-xml/util_menu.xml.patch
 create mode 100755 abs/core-testing/mythtv/trunk/mythtv/menu-xml/xmmenu.xml
 create mode 100644 abs/core-testing/mythtv/trunk/mythtv/mpegrecorder-hdpvr-v2a.patch
 create mode 100755 abs/core-testing/mythtv/trunk/mythtv/myth.sh
 create mode 100755 abs/core-testing/mythtv/trunk/mythtv/mythbackend
 create mode 100755 abs/core-testing/mythtv/trunk/mythtv/mythbackend.sh
 create mode 100755 abs/core-testing/mythtv/trunk/mythtv/mythtv.install
 create mode 100644 abs/core-testing/mythtv/trunk/mythtv/smolt_jump.patch
 create mode 100644 abs/core-testing/mythtv/trunk/mythtv/svn_main_menu_popup.patch
 create mode 100644 abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD
 create mode 100644 abs/core-testing/mythtv/trunk/mythweather/PKGBUILD
 create mode 100755 abs/core-testing/mythtv/trunk/mythweb/PKGBUILD
 create mode 100755 abs/core-testing/mythtv/trunk/mythweb/dblogininit.inc
 create mode 100755 abs/core-testing/mythtv/trunk/mythweb/mythweb.install
 create mode 100755 abs/core-testing/mythtv/trunk/mythweb/mythweblighttpd.patch
 create mode 100755 abs/core-testing/mythtv/trunk/mythweb/xris/dblogininit.inc
 create mode 100755 abs/core-testing/mythtv/trunk/mythweb/xris/lighttpd.conf
 create mode 100755 abs/core-testing/mythtv/trunk/mythweb/xris/mythweblighttpd.patch
 delete mode 100644 abs/core-testing/mythtv/trunk/plugins/mytharchive/PKGBUILD
 delete mode 100644 abs/core-testing/mythtv/trunk/plugins/mythbrowser/PKGBUILD
 delete mode 100644 abs/core-testing/mythtv/trunk/plugins/mythcontrols/PKGBUILD
 delete mode 100644 abs/core-testing/mythtv/trunk/plugins/mythflix/PKGBUILD
 delete mode 100644 abs/core-testing/mythtv/trunk/plugins/mythgallery/PKGBUILD
 delete mode 100644 abs/core-testing/mythtv/trunk/plugins/mythgame/PKGBUILD
 delete mode 100644 abs/core-testing/mythtv/trunk/plugins/mythmovietime/PKGBUILD
 delete mode 100644 abs/core-testing/mythtv/trunk/plugins/mythmusic/PKGBUILD
 delete mode 100644 abs/core-testing/mythtv/trunk/plugins/mythmusic/music_flac.patch
 delete mode 100644 abs/core-testing/mythtv/trunk/plugins/mythnews/PKGBUILD
 delete mode 100644 abs/core-testing/mythtv/trunk/plugins/mythphone/PKGBUILD
 delete mode 100644 abs/core-testing/mythtv/trunk/plugins/mythvideo/PKGBUILD
 delete mode 100644 abs/core-testing/mythtv/trunk/plugins/mythweather/PKGBUILD
 delete mode 100755 abs/core-testing/mythtv/trunk/plugins/mythweb/PKGBUILD
 delete mode 100755 abs/core-testing/mythtv/trunk/plugins/mythweb/dblogininit.inc
 delete mode 100755 abs/core-testing/mythtv/trunk/plugins/mythweb/mythweb.install
 delete mode 100755 abs/core-testing/mythtv/trunk/plugins/mythweb/mythweblighttpd.patch
 delete mode 100755 abs/core-testing/mythtv/trunk/plugins/mythweb/xris/dblogininit.inc
 delete mode 100755 abs/core-testing/mythtv/trunk/plugins/mythweb/xris/lighttpd.conf
 delete mode 100755 abs/core-testing/mythtv/trunk/plugins/mythweb/xris/mythweblighttpd.patch

diff --git a/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD b/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD
new file mode 100644
index 0000000..4d3e179
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD
@@ -0,0 +1,41 @@
+pkgname=mytharchive-svn
+pkgver=16153
+pkgrel=3
+pkgdesc="MythTV plugin that lets you create DVDs from or archive your recorded shows."
+arch=('i686')
+url="http://www.mythtv.org"
+license=('GPL')
+depends=('mythtv-svn' 'libxmu' 'mysql-python' 'pil' 'dvdauthor')
+source=()
+conflicts=('mythtv-plugins-svn')
+groups=('mythtv-all-plugins-svn')
+_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
+_svnmod=mythplugins
+
+
+build() {
+   	PLUGIN=mytharchive
+   	cd $startdir/src/
+   	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+   	cd $startdir/src/mythplugins
+
+   	PLUGIN=mytharchive
+   	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
+	if [ $? != 0 ]
+	then
+		echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
+		msg "appending program lib"
+	fi
+	msg "Correcting configure    kde3 to kde"
+	 sed -i 's#kde3#kde#' configure || return 1
+	make distclean
+   	./configure  --enable-opengl --disable-all   --enable-create-archive --enable-create-dvd --enable-mytharchive || return 1
+	qmake mythplugins.pro || return 1
+	make qmake || return 1
+	msg "Correcting Makefile    kde3 to kde"
+	sed -i 's#kde3#kde#' ./mytharchive/mytharchive/Makefile || return 1
+   	make -j 2 || return 1
+	make INSTALL_ROOT=$startdir/pkg install
+}
+
+
diff --git a/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD b/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD
new file mode 100644
index 0000000..4c57cf0
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD
@@ -0,0 +1,35 @@
+
+pkgname=mythbrowser-svn
+pkgver=16153
+pkgrel=2
+pkgdesc="Mini web browser for MythTV"
+url="http://www.mythtv.org"
+arch=('i686')
+depends=('mythtv-svn' 'wget' 'libxvmc' 'kdelibs')
+conflicts=('mythtv-plugins-svn')
+groups=('mythtv-all-plugins-svn')
+license="GPL"
+source=()
+_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
+_svnmod=mythplugins
+
+build() {
+   cd $startdir/src/
+	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+   cd $startdir/src/mythplugins
+   pwd
+   PLUGIN=mythbrowser
+   grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
+   if [ $? != 0 ]
+   then
+	   	echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
+			msg "appending program lib"
+		fi
+	make distclean
+   ./configure  --enable-opengl --disable-all --enable-mythbrowser || return 1
+ #  sed -i 's#kde3#kde#' ./mythbrowser/mythbrowser/Makefile || return 1
+   make || return 1
+
+   make INSTALL_ROOT=$startdir/pkg install
+}
diff --git a/abs/core-testing/mythtv/trunk/mythcontrols/PKGBUILD b/abs/core-testing/mythtv/trunk/mythcontrols/PKGBUILD
new file mode 100644
index 0000000..f4d6da6
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythcontrols/PKGBUILD
@@ -0,0 +1,35 @@
+pkgname=mythcontrols-svn
+pkgver=16153
+pkgrel=5
+pkgdesc="Experimental controls for MythTV"
+url="http://www.mythtv.org"
+arch=('i686')
+depends=('mythtv'-svn)
+conflicts=('mythtv-plugins-svn')
+groups=('mythtv-all-plugins-svn')
+license="GPL"
+source=()
+_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
+_svnmod=mythplugins
+
+
+build() {
+	cd $startdir/src/
+	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+	cd $startdir/src/mythplugins
+PLUGIN=mythcontrols
+grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
+if [ $? != 0 ]
+then
+		echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
+			msg "appending program lib"
+		fi
+	make distclean
+   ./configure  --disable-all --enable-opengl --enable-mythcontrols
+
+   make -j 2 || return 1
+
+   make INSTALL_ROOT=$startdir/pkg install
+}
+
diff --git a/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD b/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD
new file mode 100644
index 0000000..9e8c92e
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD
@@ -0,0 +1,34 @@
+pkgname=mythflix-svn
+pkgver=16153
+pkgrel=2
+pkgdesc="Netflix access plugin for MythTV"
+url="http://www.mythtv.org"
+arch=('i686')
+depends=('mythtv-svn')
+conflicts=('mythtv-plugins-svn')
+groups=('mythtv-all-plugins-svn')
+license="GPL"
+source=()
+_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
+_svnmod=mythplugins
+
+
+build() {
+	cd $startdir/src/
+	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+	cd $startdir/src/mythplugins
+	PLUGIN=mythflix
+	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
+	if [ $? != 0 ]
+	then
+			echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
+				msg "appending program lib"
+			fi
+	make distclean
+   ./configure  --disable-all --enable-opengl --enable-mythflix 
+
+   make -j 2 || return 1
+
+   make INSTALL_ROOT=$startdir/pkg install
+}
diff --git a/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD b/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD
new file mode 100644
index 0000000..52fb732
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD
@@ -0,0 +1,36 @@
+pkgname=mythgallery-svn
+pkgver=16153
+pkgrel=3
+pkgdesc="Image gallery plugin for MythTV"
+url="http://www.mythtv.org"
+arch=('i686')
+depends=('mythtv-svn' 'libexif' 'libtiff')
+conflicts=('mythtv-plugins-svn')
+groups=('mythtv-all-plugins-svn')
+license="GPL"
+source=()
+_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
+_svnmod=mythplugins
+
+
+build() {
+	cd $startdir/src/
+	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+	cd $startdir/src/mythplugins
+	export QMAKESPEC='linux-g++'
+	PLUGIN=mythgallery
+	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
+	if [ $? != 0 ]
+	then
+			echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
+				msg "appending program lib"
+			fi
+	make distclean
+   ./configure  --disable-all --enable-opengl --enable-mythgallery --enable-exif
+
+   make -j 2 || return 1
+
+   make INSTALL_ROOT=$startdir/pkg install
+}
+
diff --git a/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD b/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD
new file mode 100644
index 0000000..8c4257f
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD
@@ -0,0 +1,36 @@
+pkgname=mythgame-svn
+pkgver=16153
+pkgrel=4
+pkgdesc="Emulation plugin for MythTV"
+url="http://www.mythtv.org"
+arch=('i686')
+depends=('mythtv-svn' 'zlib')
+conflicts=('mythtv-plugins-svn')
+groups=('mythtv-all-plugins-svn')
+license="GPL"
+source=()
+_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
+_svnmod=mythplugins
+
+
+build() {
+	cd $startdir/src/
+	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+	cd $startdir/src/mythplugins
+PLUGIN=mythgame
+grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
+if [ $? != 0 ]
+then
+		echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
+		msg	 "appending program lib"
+		fi
+	export QMAKESPEC='linux-g++'
+	make distclean
+   ./configure  --disable-all --enable-opengl --enable-mythgame 
+
+   make -j 2 || return 1
+
+   make INSTALL_ROOT=$startdir/pkg install
+}
+
diff --git a/abs/core-testing/mythtv/trunk/mythmovietime/PKGBUILD b/abs/core-testing/mythtv/trunk/mythmovietime/PKGBUILD
new file mode 100644
index 0000000..f83cdbf
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythmovietime/PKGBUILD
@@ -0,0 +1,36 @@
+pkgname=mythmovietime-svn
+pkgver=16153
+pkgrel=6
+pkgdesc="Emulation plugin for MythTV"
+url="http://www.mythtv.org"
+arch=('i686')
+depends=('mythtv-svn' 'zlib')
+conflicts=('mythtv-plugins-svn')
+groups=('mythtv-all-plugins-svn')
+license="GPL"
+source=()
+_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
+_svnmod=mythplugins
+
+
+build() {
+	cd $startdir/src/
+	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+	cd $startdir/src/mythplugins
+PLUGIN=mythmovietime
+grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
+if [ $? != 0 ]
+then
+		echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
+			msg "appending program lib"
+		fi
+	export QMAKESPEC='linux-g++'
+	make distclean
+   ./configure  --disable-all --enable-mythmovies 
+
+   make -j 2 || return 1
+
+   make INSTALL_ROOT=$startdir/pkg install
+}
+
diff --git a/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD b/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD
new file mode 100644
index 0000000..28cbe82
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD
@@ -0,0 +1,41 @@
+
+
+pkgname=mythmusic-svn
+pkgver=16153
+pkgrel=9
+pkgdesc="Music playing plugin for MythTV"
+url="http://www.mythtv.org"
+arch=('i686' 'x86_64')
+#depends=('mythtv-svn' 'libid3tag' 'libmad' 'libvorbis' 'flac>=1.1.4' 'libcdaudio' \
+#         'cdparanoia' 'fftw2' 'sdl' 'faad2' 'lame' )
+
+  depends=('mythtv-svn ' 'libid3tag' 'flac>=1.1.4 ' 'a52dec' 'libcdaudio' 'libcddb' 'libdvdread' 'libid3tag' 'libmad' 'libogg'  'libtheora' 'libvorbis' 'taglib' 'libvisual' 'cdparanoia'   'sdl' 'faad2' 'lame' 'fftw2double')
+
+conflicts=('mythtv-plugins-svn')
+groups=('mythtv-all-plugins-svn')
+license="GPL"
+source=()
+_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
+_svnmod=mythplugins
+
+
+build() {
+	cd $startdir/src/
+	make distclean
+	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+	cd $startdir/src/mythplugins
+PLUGIN=mythmusic
+grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
+if [ $? != 0 ]
+then
+		echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
+			msg "appending program lib"
+		fi
+
+#   ./configure  --disable-all --enable-mythmusic  
+
+   make  || return 1
+
+   make INSTALL_ROOT=$startdir/pkg install
+}
diff --git a/abs/core-testing/mythtv/trunk/mythmusic/music_flac.patch b/abs/core-testing/mythtv/trunk/mythmusic/music_flac.patch
new file mode 100644
index 0000000..b152249
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythmusic/music_flac.patch
@@ -0,0 +1,293 @@
+--- flacdecoder.cpp.old	2007-03-11 18:14:37.000000000 -0400
++++ flacdecoder.cpp	2007-03-11 18:15:34.000000000 -0400
+@@ -17,7 +17,7 @@
+ 
+ #include <qtimer.h>
+ 
+-static FLAC__SeekableStreamDecoderReadStatus flacread(const FLAC__SeekableStreamDecoder *decoder, FLAC__byte bufferp[], unsigned *bytes, void *client_data)
++static FLAC__StreamDecoderReadStatus flacread(const FLAC__StreamDecoder *decoder, FLAC__byte bufferp[], unsigned *bytes, void *client_data)
+ {
+     decoder = decoder;
+ 
+@@ -26,27 +26,27 @@
+ 
+     if (len == -1)
+     {
+-        return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_ERROR;
++        return FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM;
+     }
+    
+     *bytes = len;
+-    return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_OK;
++    return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
+ }
+ 
+-static FLAC__SeekableStreamDecoderSeekStatus flacseek(const FLAC__SeekableStreamDecoder *decoder, FLAC__uint64 absolute_byte_offset, void *client_data) 
++static FLAC__StreamDecoderSeekStatus flacseek(const FLAC__StreamDecoder *decoder, FLAC__uint64 absolute_byte_offset, void *client_data) 
+ {
+     decoder = decoder;
+     FlacDecoder *dflac = (FlacDecoder *)client_data;
+ 
+     if (!dflac->input()->isDirectAccess())
+-        return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_ERROR;
++        return FLAC__STREAM_DECODER_SEEK_STATUS_ERROR;
+ 
+     if (dflac->input()->at(absolute_byte_offset))
+-        return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_OK;
+-    return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_ERROR;
++        return FLAC__STREAM_DECODER_SEEK_STATUS_OK;
++    return FLAC__STREAM_DECODER_SEEK_STATUS_ERROR;
+ }
+ 
+-static FLAC__SeekableStreamDecoderTellStatus flactell(const FLAC__SeekableStreamDecoder *decoder, FLAC__uint64 *absolute_byte_offset, void *client_data)
++static FLAC__StreamDecoderTellStatus flactell(const FLAC__StreamDecoder *decoder, FLAC__uint64 *absolute_byte_offset, void *client_data)
+ {
+     decoder = decoder;
+     FlacDecoder *dflac = (FlacDecoder *)client_data;
+@@ -54,20 +54,20 @@
+     long t = dflac->input()->at();
+     *absolute_byte_offset = t;
+ 
+-    return FLAC__SEEKABLE_STREAM_DECODER_TELL_STATUS_OK;
++    return FLAC__STREAM_DECODER_TELL_STATUS_OK;
+ }
+ 
+-static FLAC__SeekableStreamDecoderLengthStatus flaclength(const FLAC__SeekableStreamDecoder *decoder, FLAC__uint64 *stream_length, void *client_data)
++static FLAC__StreamDecoderLengthStatus flaclength(const FLAC__StreamDecoder *decoder, FLAC__uint64 *stream_length, void *client_data)
+ {
+     decoder = decoder;
+ 
+     FlacDecoder *dflac = (FlacDecoder *)client_data;
+ 
+     *stream_length = dflac->input()->size();
+-    return FLAC__SEEKABLE_STREAM_DECODER_LENGTH_STATUS_OK;
++    return FLAC__STREAM_DECODER_LENGTH_STATUS_OK;
+ }
+ 
+-static FLAC__bool flaceof(const FLAC__SeekableStreamDecoder *decoder, void *client_data)
++static FLAC__bool flaceof(const FLAC__StreamDecoder *decoder, void *client_data)
+ {
+     decoder = decoder;
+ 
+@@ -76,7 +76,7 @@
+     return dflac->input()->atEnd();
+ }
+ 
+-static FLAC__StreamDecoderWriteStatus flacwrite(const FLAC__SeekableStreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer[], void *client_data)
++static FLAC__StreamDecoderWriteStatus flacwrite(const FLAC__StreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer[], void *client_data)
+ {
+     decoder = decoder;
+ 
+@@ -132,7 +132,7 @@
+     }
+ }
+ 
+-static void flacmetadata(const FLAC__SeekableStreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data)
++static void flacmetadata(const FLAC__StreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data)
+ {
+     decoder = decoder;
+ 
+@@ -156,11 +156,11 @@
+     }
+ }
+ 
+-static void flacerror(const FLAC__SeekableStreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data)
++static void flacerror(const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data)
+ {
+     decoder = decoder;
+ 
+-    FLAC__FileDecoder *file_decoder = (FLAC__FileDecoder *)client_data;
++    FLAC__StreamDecoder *file_decoder = (FLAC__StreamDecoder *)client_data;
+ 
+     file_decoder = file_decoder;
+     status = status;
+@@ -262,17 +262,8 @@
+         }
+     }
+ 
+-    decoder = FLAC__seekable_stream_decoder_new();
+-    FLAC__seekable_stream_decoder_set_md5_checking(decoder, false);
+-    FLAC__seekable_stream_decoder_set_read_callback(decoder, flacread);
+-    FLAC__seekable_stream_decoder_set_seek_callback(decoder, flacseek);
+-    FLAC__seekable_stream_decoder_set_tell_callback(decoder, flactell);
+-    FLAC__seekable_stream_decoder_set_length_callback(decoder, flaclength);
+-    FLAC__seekable_stream_decoder_set_eof_callback(decoder, flaceof);
+-    FLAC__seekable_stream_decoder_set_write_callback(decoder, flacwrite);
+-    FLAC__seekable_stream_decoder_set_metadata_callback(decoder, flacmetadata);
+-    FLAC__seekable_stream_decoder_set_error_callback(decoder, flacerror);
+-    FLAC__seekable_stream_decoder_set_client_data(decoder, this);
++    decoder = FLAC__stream_decoder_new();
++    FLAC__stream_decoder_set_md5_checking(decoder, false);
+ 
+     freq = 0;
+     bitrate = 0;
+@@ -281,8 +272,17 @@
+     totalTime = 0; 
+     totalTime = totalTime < 0 ? 0 : totalTime;
+ 
+-    FLAC__seekable_stream_decoder_init(decoder);
+-    FLAC__seekable_stream_decoder_process_until_end_of_metadata(decoder);
++    FLAC__stream_decoder_init_stream(decoder,
++                                     flacread,
++                                     flacseek,
++                                     flactell,
++                                     flaclength,
++                                     flaceof,
++                                     flacwrite,
++                                     flacmetadata,
++                                     flacerror,
++                                     this);
++    FLAC__stream_decoder_process_until_end_of_metadata(decoder);
+ 
+     inited = TRUE;
+     return TRUE;
+@@ -295,8 +295,8 @@
+ 
+ void FlacDecoder::deinit()
+ {
+-    FLAC__seekable_stream_decoder_finish(decoder);
+-    FLAC__seekable_stream_decoder_delete(decoder);
++    FLAC__stream_decoder_finish(decoder);
++    FLAC__stream_decoder_delete(decoder);
+ 
+     if (input()->isOpen())
+         input()->close();
+@@ -330,7 +330,7 @@
+     }
+ 
+     bool flacok = true;
+-    FLAC__SeekableStreamDecoderState decoderstate;
++    FLAC__StreamDecoderState decoderstate;
+ 
+     while (! done && ! finish) {
+         lock();
+@@ -340,12 +340,12 @@
+             FLAC__uint64 sample = (FLAC__uint64)(seekTime * 44100.0);
+             if (sample > totalsamples - 50)
+                 sample = totalsamples - 50;
+-            FLAC__seekable_stream_decoder_seek_absolute(decoder, sample);
++            FLAC__stream_decoder_seek_absolute(decoder, sample);
+             seekTime = -1.0;
+         }
+ 
+-        flacok = FLAC__seekable_stream_decoder_process_single(decoder);
+-        decoderstate = FLAC__seekable_stream_decoder_get_state(decoder);
++        flacok = FLAC__stream_decoder_process_single(decoder);
++        decoderstate = FLAC__stream_decoder_get_state(decoder);
+ 
+         if (decoderstate == 0 || decoderstate == 1)
+         {
+--- flacdecoder.h.old	2007-03-11 18:14:37.000000000 -0400
++++ flacdecoder.h	2007-03-11 18:14:12.000000000 -0400
+@@ -35,7 +35,7 @@
+     char *output_buf;
+     ulong output_bytes, output_at;
+ 
+-    FLAC__SeekableStreamDecoder *decoder;
++    FLAC__StreamDecoder *decoder;
+ 
+     unsigned int bks;
+     bool done, finish;
+--- flacencoder.cpp.old	2007-03-11 18:14:37.000000000 -0400
++++ flacencoder.cpp	2007-03-11 18:14:12.000000000 -0400
+@@ -9,7 +9,7 @@
+ #include "flacencoder.h"
+ #include "metaioflacvorbiscomment.h"
+ 
+-#include <FLAC/file_encoder.h>
++#include <FLAC/stream_encoder.h>
+ #include <FLAC/assert.h>
+ #include <mythtv/mythcontext.h>
+ 
+@@ -29,32 +29,32 @@
+     int rice_parameter_search_dist = 0;
+     int max_lpc_order = 8;
+ 
+-    encoder = FLAC__file_encoder_new();
++    encoder = FLAC__stream_encoder_new();
+ 
+-    FLAC__file_encoder_set_streamable_subset(encoder, true);
+-    FLAC__file_encoder_set_do_mid_side_stereo(encoder, do_mid_side);
+-    FLAC__file_encoder_set_loose_mid_side_stereo(encoder, loose_mid_side);
+-    FLAC__file_encoder_set_channels(encoder, NUM_CHANNELS);
+-    FLAC__file_encoder_set_bits_per_sample(encoder, 16);
+-    FLAC__file_encoder_set_sample_rate(encoder, 44100);
+-    FLAC__file_encoder_set_blocksize(encoder, blocksize);
+-    FLAC__file_encoder_set_max_lpc_order(encoder, max_lpc_order);
+-    FLAC__file_encoder_set_qlp_coeff_precision(encoder, qlp_coeff_precision);
+-    FLAC__file_encoder_set_do_qlp_coeff_prec_search(encoder, false);
+-    FLAC__file_encoder_set_do_escape_coding(encoder, do_escape_coding);
+-    FLAC__file_encoder_set_do_exhaustive_model_search(encoder, 
++    FLAC__stream_encoder_set_streamable_subset(encoder, true);
++    FLAC__stream_encoder_set_do_mid_side_stereo(encoder, do_mid_side);
++    FLAC__stream_encoder_set_loose_mid_side_stereo(encoder, loose_mid_side);
++    FLAC__stream_encoder_set_channels(encoder, NUM_CHANNELS);
++    FLAC__stream_encoder_set_bits_per_sample(encoder, 16);
++    FLAC__stream_encoder_set_sample_rate(encoder, 44100);
++    FLAC__stream_encoder_set_blocksize(encoder, blocksize);
++    FLAC__stream_encoder_set_max_lpc_order(encoder, max_lpc_order);
++    FLAC__stream_encoder_set_qlp_coeff_precision(encoder, qlp_coeff_precision);
++    FLAC__stream_encoder_set_do_qlp_coeff_prec_search(encoder, false);
++    FLAC__stream_encoder_set_do_escape_coding(encoder, do_escape_coding);
++    FLAC__stream_encoder_set_do_exhaustive_model_search(encoder, 
+                                                     do_exhaustive_model_search);
+-    FLAC__file_encoder_set_min_residual_partition_order(encoder, 
++    FLAC__stream_encoder_set_min_residual_partition_order(encoder, 
+                                                   min_residual_partition_order);
+-    FLAC__file_encoder_set_max_residual_partition_order(encoder, 
++    FLAC__stream_encoder_set_max_residual_partition_order(encoder, 
+                                                   max_residual_partition_order);
+-    FLAC__file_encoder_set_rice_parameter_search_dist(encoder, 
++    FLAC__stream_encoder_set_rice_parameter_search_dist(encoder, 
+                                                     rice_parameter_search_dist);
+ 
+-    FLAC__file_encoder_set_filename(encoder, outfile.local8Bit());
++    
+ 
+-    int ret = FLAC__file_encoder_init(encoder);
+-    if (ret != FLAC__FILE_ENCODER_OK)
++    int ret = FLAC__stream_encoder_init_file(encoder, outfile.local8Bit(), NULL, NULL);
++    if (ret != FLAC__STREAM_ENCODER_OK)
+     {
+         VERBOSE(VB_GENERAL, QString("Error initializing FLAC encoder."
+                                     " Got return code: %1").arg(ret));
+@@ -70,8 +70,8 @@
+ 
+     if (encoder)
+     {
+-        FLAC__file_encoder_finish(encoder);
+-        FLAC__file_encoder_delete(encoder);
++        FLAC__stream_encoder_finish(encoder);
++        FLAC__stream_encoder_delete(encoder);
+     }
+ 
+     if (metadata)
+@@ -102,7 +102,7 @@
+ 
+         if(sampleindex == MAX_SAMPLES || (length == 0 && sampleindex > 0) ) 
+         {
+-            if (!FLAC__file_encoder_process(encoder,
++            if (!FLAC__stream_encoder_process(encoder,
+                                             (const FLAC__int32 * const *) input,
+                                             sampleindex))
+             {
+--- flacencoder.h.old	2007-03-11 18:14:37.000000000 -0400
++++ flacencoder.h	2007-03-11 18:14:12.000000000 -0400
+@@ -4,7 +4,7 @@
+ #include <qstring.h>
+ 
+ #define HAVE_INTTYPES_H
+-#include <FLAC/file_encoder.h>
++#include <FLAC/stream_encoder.h>
+ 
+ #include "encoder.h"
+ 
+@@ -21,7 +21,7 @@
+     int addSamples(int16_t *bytes, unsigned int len);
+ 
+   private:
+-    FLAC__FileEncoder *encoder;
++    FLAC__StreamEncoder *encoder;
+     unsigned int sampleindex;
+     FLAC__int32 inputin[NUM_CHANNELS][MAX_SAMPLES];
+     FLAC__int32 *input[NUM_CHANNELS];
diff --git a/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD b/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD
new file mode 100644
index 0000000..4dafc20
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD
@@ -0,0 +1,34 @@
+pkgname=mythnews-svn
+pkgver=16153
+pkgrel=4
+pkgdesc="News checking plugin for MythTV"
+url="http://www.mythtv.org"
+arch=('i686')
+depends=('mythtv-svn')
+conflicts=('mythtv-plugins-svn')
+groups=('mythtv-all-plugins-svn')
+license="GPL"
+source=()
+_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
+_svnmod=mythplugins
+
+build() {
+	cd $startdir/src/
+	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+	cd $startdir/src/mythplugins
+	PLUGIN=mythnews
+	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
+	if [ $? != 0 ]
+	then
+			echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
+				msg "appending program lib"
+			fi
+	make distclean
+   ./configure --disable-all --enable-mythnews
+
+   make -j 2 || return 1
+
+   make INSTALL_ROOT=$startdir/pkg install
+}
+md5sums=('2a9fbf45ae58a3a35857ce8d7c4d12db')
diff --git a/abs/core-testing/mythtv/trunk/mythphone/PKGBUILD b/abs/core-testing/mythtv/trunk/mythphone/PKGBUILD
new file mode 100644
index 0000000..f6bf3ec
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythphone/PKGBUILD
@@ -0,0 +1,42 @@
+pkgname=mythphone-svn
+pkgver=16153
+pkgrel=3
+pkgdesc="Plugin that allows phone calls to be made to MythTv"
+url="http://www.mythtv.org"
+arch=('i686')
+depends=('mythtv-svn')
+conflicts=('mythtv-plugins-svn')
+groups=('mythtv-all-plugins-svn')
+license="GPL"
+source=()
+_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
+_svnmod=mythplugins
+
+
+build() {
+	cd $startdir/src/
+	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+	cd $startdir/src/mythplugins
+	make distclean
+	PLUGIN=mythphone
+	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
+	if [ $? != 0 ]
+	then
+		echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
+		msg  "appending program lib"
+	fi
+	
+	msg "Correcting configure    kde3 to kde"
+   	sed -i 's#kde3#kde#' configure || return 1
+   	./configure  --enable-opengl --disable-all --enable-mythphone || return 1
+	qmake mythplugins.pro || return 1
+	make qmake || return 1
+	
+	msg "Correcting Makefile    kde3 to kde"
+ 	sed -i 's#kde3#kde#' ./mythphone/mythphone/Makefile || return 1
+   	
+	make -j 2 || return 1
+	make INSTALL_ROOT=$startdir/pkg install
+}
+
diff --git a/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD b/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD
new file mode 100755
index 0000000..8cd0d04
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD
@@ -0,0 +1,36 @@
+pkgname=mythv-themes-svn
+pkgver=15924                           
+pkgrel=4
+pkgdesc="themes for mythtv" 
+url="http://www.mythtv.org" 
+license="GPL" 
+depends=( ) 
+#makedepends=('sqlite3' 'sed') 
+conflicts=() 
+replaces=() 
+backup=() 
+#install='mythtv.install' 
+source=() 
+arch=('i686')
+md5sums=() 
+_svntrunk=http://cvs.mythtv.org/svn/trunk/myththemes
+_svnmod=myththemes
+
+build() { 
+echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+#svn co http://cvs.mythtv.org/svn/trunk/mythtv
+#svn co http://cvs.mythtv.org/svn/trunk/mythplugins
+#svn co http://cvs.mythtv.org/svn/trunk/myththemes
+cd $startdir/src/myththemes
+   make distclean
+    ./configure  
+    #./configure --disable-all --enable-mythweather --enable-fftw --disable-aac  
+   make  || return 1
+   make INSTALL_ROOT=$startdir/pkg install
+#   cd $startdir/src/$pkgname
+#   cd mythmovietime
+#   make || return 1
+#   make INSTALL_ROOT=$startdir/pkg install
+
+}
diff --git a/abs/core-testing/mythtv/trunk/mythtv-svn/DeviceReadBuffer-polltimeout.2.patch b/abs/core-testing/mythtv/trunk/mythtv-svn/DeviceReadBuffer-polltimeout.2.patch
deleted file mode 100644
index 5bb713f..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv-svn/DeviceReadBuffer-polltimeout.2.patch
+++ /dev/null
@@ -1,219 +0,0 @@
-Index: libs/libmythtv/DeviceReadBuffer.h
-===================================================================
---- libs/libmythtv/DeviceReadBuffer.h	(revision 18515)
-+++ libs/libmythtv/DeviceReadBuffer.h	(working copy)
-@@ -59,7 +59,7 @@
-     void IncrReadPointer(uint len);
- 
-     bool HandlePausing(void);
--    bool Poll(void) const;
-+    bool Poll(void);
-     uint WaitForUnused(uint bytes_needed) const;
-     uint WaitForUsed  (uint bytes_needed) const;
- 
-Index: libs/libmythtv/DeviceReadBuffer.cpp
-===================================================================
---- libs/libmythtv/DeviceReadBuffer.cpp	(revision 18515)
-+++ libs/libmythtv/DeviceReadBuffer.cpp	(working copy)
-@@ -90,9 +90,14 @@
- 
- void DeviceReadBuffer::Start(void)
- {
--    lock.lock();
--    bool was_running = running;
--    lock.unlock();
-+    bool was_running;
-+
-+    {
-+        QMutexLocker locker(&lock);
-+        was_running = running;
-+        error = false;
-+    }
-+
-     if (was_running)
-     {
-         VERBOSE(VB_IMPORTANT, LOC_ERR + "Start(): Already running.");
-@@ -104,6 +109,8 @@
-     {
-         VERBOSE(VB_IMPORTANT,
-                 LOC_ERR + QString("Start(): pthread_create failed.") + ENO);
-+
-+        QMutexLocker locker(&lock);
-         error = true;
-     }
- }
-@@ -118,21 +125,25 @@
-     used          = 0;
-     readPtr       = buffer;
-     writePtr      = buffer;
-+
-+    error         = false;
- }
- 
- void DeviceReadBuffer::Stop(void)
- {
-     bool was_running = IsRunning();
--    lock.lock();
--    run = false;
--    lock.unlock();
- 
-     if (!was_running)
-     {
--        VERBOSE(VB_IMPORTANT, LOC_ERR + "Stop(): Not running.");
-+        VERBOSE(VB_IMPORTANT, LOC + "Stop(): Not running.");
-         return;
-     }
- 
-+    {
-+        QMutexLocker locker(&lock);
-+        run = false;
-+    }
-+
-     pthread_join(thread, NULL);
- }
- 
-@@ -229,10 +240,11 @@
- {
-     uint      errcnt = 0;
- 
--    lock.lock();
--    run     = true;
--    running = true;
--    lock.unlock();
-+    {
-+        QMutexLocker locker(&lock);
-+        run     = true;
-+        running = true;
-+    }
- 
-     while (run)
-     {
-@@ -248,6 +260,15 @@
-         if (using_poll && !Poll())
-             continue;
- 
-+        {
-+            QMutexLocker locker(&lock);
-+            if (error)
-+            {
-+                VERBOSE(VB_RECORD, LOC + "fill_ringbuffer: error state");
-+                break;
-+            }
-+        }
-+
-         // Limit read size for faster return from read
-         size_t read_size =
-             min(dev_read_size, (size_t) WaitForUnused(TSPacket::SIZE));
-@@ -268,9 +289,10 @@
-         }
-     }
- 
--    lock.lock();
--    running = false;
--    lock.unlock();
-+    {
-+        QMutexLocker locker(&lock);
-+        running = false;
-+    }
- }
- 
- bool DeviceReadBuffer::HandlePausing(void)
-@@ -293,7 +315,7 @@
-     return true;
- }
- 
--bool DeviceReadBuffer::Poll(void) const
-+bool DeviceReadBuffer::Poll(void)
- {
- #ifdef USING_MINGW
- #warning mingw DeviceReadBuffer::Poll
-@@ -302,31 +324,53 @@
-     return false;
- #else
-     bool retval = true;
--    while (true)
-+    uint timeout_cnt = 0;
-+
-+    for (;;)
-     {
-         struct pollfd polls;
-         polls.fd      = _stream_fd;
-         polls.events  = POLLIN;
-         polls.revents = 0;
- 
--        int ret = poll(&polls, 1 /*number of polls*/, 10 /*msec*/);
--        if (IsPauseRequested() || !IsOpen() || !run)
-+        int ret = poll(&polls, 1 /*number of polls*/, 250 /*msec*/);
-+
-+        if (polls.revents & (POLLERR | POLLHUP | POLLNVAL))
-         {
-+            VERBOSE(VB_IMPORTANT, LOC + "poll error");
-+            error = true;
-+            return true;
-+        }
-+
-+        if (!run || !IsOpen() || IsPauseRequested())
-+        {
-             retval = false;
-             break; // are we supposed to pause, stop, etc.
-         }
- 
-         if (ret > 0)
-             break; // we have data to read :)
--        if ((-1 == ret) && (EOVERFLOW == errno))
--            break; // we have an error to handle
--
--        if ((-1 == ret) && ((EAGAIN == errno) || (EINTR  == errno)))
--            continue; // errors that tell you to try again
--        if (ret == 0)
--            continue; // timed out, try again
--
--        usleep(2500);
-+        if (ret < 0)
-+        {
-+            if ((EOVERFLOW == errno))
-+                break; // we have an error to handle
-+            if ((EAGAIN == errno) || (EINTR  == errno))
-+                continue; // errors that tell you to try again
-+            usleep(2500);
-+        }
-+        else //  ret == 0
-+        {
-+            if (++timeout_cnt > 9)
-+            {
-+                VERBOSE(VB_RECORD, LOC_ERR + "Poll giving up");
-+                QMutexLocker locker(&lock);
-+                error = true;
-+                return true;
-+            }
-+            if (timeout_cnt % 2)
-+                VERBOSE(VB_RECORD, LOC_ERR + QString("Poll timeout (%1)")
-+                        .arg(timeout_cnt));
-+        }
-     }
-     return retval;
- #endif //!USING_MINGW
-@@ -360,9 +404,9 @@
- 
-         if (++errcnt > 5)
-         {
--            lock.lock();
-+            QMutexLocker locker(&lock);
-+            VERBOSE(VB_RECORD, LOC + "Too many errors.");
-             error = true;
--            lock.unlock();
-             return false;
-         }
- 
-@@ -376,10 +420,8 @@
-             VERBOSE(VB_IMPORTANT, LOC +
-                     QString("End-Of-File? fd(%1)").arg(_stream_fd));
- 
--            lock.lock();
-+            QMutexLocker locker(&lock);
-             eof = true;
--            lock.unlock();
--
-             return false;
-         }
-         usleep(500);
diff --git a/abs/core-testing/mythtv/trunk/mythtv-svn/PKGBUILD b/abs/core-testing/mythtv/trunk/mythtv-svn/PKGBUILD
deleted file mode 100755
index b5dc31d..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv-svn/PKGBUILD
+++ /dev/null
@@ -1,78 +0,0 @@
-pkgname=mythtv-svn
-pkgver=19295
-pkgrel=1
-pkgdesc="A personal video recorder for Linux"
-url="http://www.mythtv.org"
-license="GPL"
-depends=('lame' 'libmysqlclient' 'alsa-lib'  'wget' 'qt' 'x-server' 'freetype2' 'libmpeg2' 'libxml2' 'libraw1394' 'lirc' 'perl-date-manip' 'libavc1394' 'libdc1394' 'libiec61883')
-makedepends=('subversion')
-conflicts=(mythtv)
-replaces=()
-backup=()
-options=(!strip)
-MAKEFLAGS="-j6"
-install='mythtv.install'
-
-patchs=('DeviceReadBuffer-polltimeout.2.patch' 'hdpvr-v4lchannel-tweak.patch' 'mpegrecorder-hdpvr-v1.1.patch' 'mythcommflag-avidemux.2.patch')
-source=('mythbackend' 'myth.sh'  'smolt_jump.patch' 'svn_main_menu_popup.patch' `echo ${patchs[@]:0}` )
-arch=('i686')
-md5sums=()
-
-
-
-_svntrunk=http://cvs.mythtv.org/svn/trunk/mythtv
-_svnmod=mythtv
-
-build() {
-
-    svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-    cd $startdir/src/mythtv
-    echo "--------------------------applying patches----------------------------------------------------"
-	patch -Np0 -i  $startdir/src/smolt_jump.patch #|| return 1
-	patch -Np0 -i  $startdir/src/svn_main_menu_popup.patch #||return 1
-
-    for i in `echo ${patchs[@]:0} `
-    do
-        echo applying $i
-        echo "------------"
-        patch -Np0  -i ${startdir}/src/$i  #|| return 1
-    done
-    echo "--------------------------done   applying patches----------------------------------------------------"
-    sed -i -e "s/\`(svnversion \$\${SVNTREEDIR} 2>\/dev\/null) || echo Unknown\`/$pkgver/" version.pro
-    make distclean
-    ./configure --prefix=/usr --enable-xvmc --enable-xvmc-pro --enable-opengl-vsync --enable-dvb --enable-firewire --compile-type=release --with-bindings=perl --disable-audio-arts --disable-xrandr 
-    . /etc/profile
-    make
-    make INSTALL_ROOT=$startdir/pkg install
-    
-  #Patch the xml LinHES style
-  cp -r $startdir/menu-xml/*.xml $startdir/pkg/usr/share/mythtv
-  cd $startdir/pkg/usr/share/mythtv
-  patch -p0 < $startdir/menu-xml/mainmenu.xml.patch
-  patch -p0 < $startdir/menu-xml/optical_menu.xml.patch
-  patch -p0 < $startdir/menu-xml/library.xml.patch
-    
-    #   mkdir -p $startdir/pkg/usr/share/mythtv/contrib
-    #   mkdir -p $startdir/pkg/etc/rc.d
-    #   mkdir -p $startdir/pkg/var/log/mythtv
-    #   mkdir -p $startdir/pkg/etc/profile.d
-    #   install -m0755 ../myth.sh $startdir/pkg/etc/profile.d/
-    
-    # install contrib
-    #   mkdir -p $startdir/pkg/usr/local/share/mythtv/contrib || return 1
-    #   cp -rp contrib/* $startdir/pkg/usr/local/share/mythtv/contrib
-    #   echo "-release-fixes"   >  $startdir/pkg/usr/local/share/mythtv/.releasetype   
-    # install -m0755 themes/*.ttf $startdir/pkg/usr/local/share/mythtv/themes/
-    
-    
-    #   mkdir -p $startdir/pkg/usr/lib/
-    #   mv $startdir/pkg/usr/local/lib/perl5 $startdir/pkg/usr/lib/perl5
-    #  cd $startdir/src/mythtv/contrib
-    #  gcc -Wall -o firewire_tester firewire_tester.c -liec61883 -lraw1394
-    # install -m0755 firewire_tester $startdir/pkg/usr/local/bin/firewire_tester
-    #install -m0755  $startdir/pkg/usr/local/share/mythtv/contrib/optimize_mythdb.pl  $startdir/pkg/usr/local/bin/optimize_mythdb.pl 
-    #    cp $startdir/src/myth.find_orphans.pl $startdir/pkg/usr/local/share/mythtv/contrib/myth.find_orphans.pl
-    # install -m0755  $startdir/pkg/usr/local/share/mythtv/contrib/myth.find_orphans.pl  $startdir/pkg/usr/local/bin/myth.find_orphans.pl
-    
-
-}
diff --git a/abs/core-testing/mythtv/trunk/mythtv-svn/aacdecoder.cpp.patch b/abs/core-testing/mythtv/trunk/mythtv-svn/aacdecoder.cpp.patch
deleted file mode 100644
index 8796eb4..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv-svn/aacdecoder.cpp.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- mythmusic/mythmusic/aacdecoder.cpp.orig	2008-11-19 12:51:48.000000000 -0500
-+++ mythmusic/mythmusic/aacdecoder.cpp	2008-11-19 12:52:42.000000000 -0500
-@@ -17,6 +17,9 @@
- #define FAAD_MODIFIED
- #endif
- 
-+// LinHES need this undefined
-+#undef FAAD_MODIFIED
-+
- // ANSI C headers
- #include <cstdlib>
- 
diff --git a/abs/core-testing/mythtv/trunk/mythtv-svn/hdpvr-v4lchannel-tweak.patch b/abs/core-testing/mythtv/trunk/mythtv-svn/hdpvr-v4lchannel-tweak.patch
deleted file mode 100644
index 3535310..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv-svn/hdpvr-v4lchannel-tweak.patch
+++ /dev/null
@@ -1,139 +0,0 @@
-Index: libs/libmythtv/v4lchannel.h
-===================================================================
---- libs/libmythtv/v4lchannel.h	(revision 18874)
-+++ libs/libmythtv/v4lchannel.h	(working copy)
-@@ -103,6 +103,8 @@
-     VidModV4L2  videomode_v4l2; ///< Current video mode if 'usingv4l2' is true
- 
-     int         defaultFreqTable;
-+    int         prev_inputNumV4L;
-+    v4l2_std_id prev_vid_mode;
- };
- 
- #endif
-Index: libs/libmythtv/v4lchannel.cpp
-===================================================================
---- libs/libmythtv/v4lchannel.cpp	(revision 18874)
-+++ libs/libmythtv/v4lchannel.cpp	(working copy)
-@@ -40,7 +40,8 @@
-       device_name(QString::null),   driver_name(QString::null),
-       curList(NULL),                totalChannels(0),
-       currentFormat(""),            is_dtv(false),
--      usingv4l2(false),             defaultFreqTable(1)
-+      usingv4l2(false),             defaultFreqTable(1),
-+      prev_inputNumV4L(-1),         prev_vid_mode(-1)
- {
- }
- 
-@@ -795,62 +796,75 @@
-     {
-         VERBOSE(VB_CHANNEL, LOC + msg + "(v4l v2)");
- 
--        int ioctlval = ioctl(videofd, VIDIOC_S_INPUT, &inputNumV4L);
-+	int ioctlval;
-+	bool streamingDisabled = false;
-+	int  streamType = V4L2_BUF_TYPE_VIDEO_CAPTURE;
- 
--        // ConvertX (wis-go7007) requires streaming to be disabled
--        // before an input switch, do this if initial switch failed.
--        bool streamingDisabled = false;
--        int  streamType = V4L2_BUF_TYPE_VIDEO_CAPTURE;
--        if ((ioctlval < 0) && (errno == EBUSY))
-+        if (prev_inputNumV4L != inputNumV4L)
-         {
--            ioctlval = ioctl(videofd, VIDIOC_STREAMOFF, &streamType);
-+            ioctlval = ioctl(videofd, VIDIOC_S_INPUT, &inputNumV4L);
-+
-+            // ConvertX (wis-go7007) requires streaming to be disabled
-+            // before an input switch, do this if initial switch failed.
-+            if ((ioctlval < 0) && (errno == EBUSY))
-+            {
-+                ioctlval = ioctl(videofd, VIDIOC_STREAMOFF, &streamType);
-+                if (ioctlval < 0)
-+                {
-+                    VERBOSE(VB_IMPORTANT, LOC_ERR + msg +
-+                            "\n\t\t\twhile disabling streaming (v4l v2)" + ENO);
-+
-+                    ok = false;
-+                    ioctlval = 0;
-+                }
-+                else
-+                {
-+                    streamingDisabled = true;
-+
-+                    // Resend the input switch ioctl.
-+                    ioctlval = ioctl(videofd, VIDIOC_S_INPUT, &inputNumV4L);
-+                }
-+            }
-+
-             if (ioctlval < 0)
-             {
-                 VERBOSE(VB_IMPORTANT, LOC_ERR + msg +
--                        "\n\t\t\twhile disabling streaming (v4l v2)" + ENO);
-+                        "\n\t\t\twhile setting input (v4l v2)" + ENO);
- 
-                 ok = false;
--                ioctlval = 0;
-             }
--            else
--            {
--                streamingDisabled = true;
- 
--                // Resend the input switch ioctl.
--                ioctlval = ioctl(videofd, VIDIOC_S_INPUT, &inputNumV4L);
--            }
-+            prev_inputNumV4L = inputNumV4L;
-         }
- 
--        if (ioctlval < 0)
--        {
--            VERBOSE(VB_IMPORTANT, LOC_ERR + msg +
--                    "\n\t\t\twhile setting input (v4l v2)" + ENO);
--
--            ok = false;
--        }
--
-         v4l2_std_id vid_mode = format_to_mode(newFmt, 2);
--        ioctlval = ioctl(videofd, VIDIOC_S_STD, &vid_mode);
--        if (ioctlval < 0)
--        {
--            VERBOSE(VB_IMPORTANT, LOC_ERR + msg +
--                    "\n\t\t\twhile setting format (v4l v2)" + ENO);
- 
--            ok = false;
--        }
--
--        // ConvertX (wis-go7007) requires streaming to be disabled
--        // before an input switch, here we try to re-enable streaming.
--        if (streamingDisabled)
-+        if (prev_vid_mode != vid_mode)
-         {
--            ioctlval = ioctl(videofd, VIDIOC_STREAMON, &streamType);
-+            ioctlval = ioctl(videofd, VIDIOC_S_STD, &vid_mode);
-             if (ioctlval < 0)
-             {
-                 VERBOSE(VB_IMPORTANT, LOC_ERR + msg +
--                        "\n\t\t\twhile reenabling streaming (v4l v2)" + ENO);
-+                        "\n\t\t\twhile setting format (v4l v2)" + ENO);
- 
-                 ok = false;
-             }
-+
-+            // ConvertX (wis-go7007) requires streaming to be disabled
-+            // before an input switch, here we try to re-enable streaming.
-+            if (streamingDisabled)
-+            {
-+                ioctlval = ioctl(videofd, VIDIOC_STREAMON, &streamType);
-+                if (ioctlval < 0)
-+                {
-+                    VERBOSE(VB_IMPORTANT, LOC_ERR + msg +
-+                            "\n\t\t\twhile reenabling streaming (v4l v2)" +
-+                            ENO);
-+
-+                    ok = false;
-+                }
-+            }
-+            prev_vid_mode = vid_mode;
-         }
-     }
- 
diff --git a/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/HOST_SETTINGS.xml b/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/HOST_SETTINGS.xml
deleted file mode 100644
index f257920..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/HOST_SETTINGS.xml
+++ /dev/null
@@ -1,87 +0,0 @@
-<mythmenu name="HOST_SETTINGS">
-
-   <button>
-       <type>MV_NETWORK_SETUP_MENU</type>
-      <text>Network Settings</text>
-      <action>EXEC  mythinstall -s network </action>
-   </button>
-
-   <button>
-       <type>MV_SYSTEM_SETUP_MENU</type>
-      <text>System type</text>
-        <action>EXEC  mythinstall -s hostype </action>
-   </button>
-
-   <button>
-       <type>MV_MISC_SETUP_MENU</type>
-      <text>Misc Settings</text>
-       <action>EXEC  mythinstall -s misc </action>
-   </button>
-
-   <button>
-       <type>MV_SOFTWARE_MENU</type>
-      <text>Software</text>
-       <action>EXEC  mythinstall -s  plugins </action>
-   </button>
-
-   <button>
-      <type>MV_SHUTDOWN_SETUP_MENU</type>
-      <text>Shutdown settings</text>
-        <action>EXEC  mythinstall -s sleep </action>
-   </button>
-
-
-<button>
-   <type>MV_ADVANCED_X_SETUP_MENU</type>
-    <text>Display</text>
-    <action>EXEC  mythinstall -s advancedX</action>
-</button>
-
-<button>
-   <type>MV_ADVANCED_SETUP_MENU</type>
-    <text>Advanced settings</text>
-    <action>EXEC  mythinstall -s advanced</action>
-</button>
-
-
-<button>
-       <type>MV_AUDIO_SETUP_MENU</type>
-       <text>Audio settings</text>
-        <action>EXEC  mythinstall -s sound </action>
-</button>
-
-
-<button>
-       <type>MV_ACCESS_SETUP_MENU</type>
-       <text>Access</text>
-       <action>EXEC  mythinstall -s accesscontrol </action>
-</button>
-
-<button>
-       <type>MV_USER_SETUP_MENU</type>
-       <text>Password </text>
-       <action>EXEC  mythinstall -s user </action>
-</button>
-
-<button>
-       <type>MV_WEBACCESS_SETUP_MENU</type>
-       <text>Web security</text>
-       <action>EXEC  mythinstall -s webuser </action>
-</button>
-
-
-
-
-   <!--
-   <button>
-       <type>SETUP_MENU</type>
-       <text>Settings profile manager</text>
-        <action>EXEC  mythinstall -t </action>
-
-   </button>
-   -->
-
-
-
-
-</mythmenu>
diff --git a/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/is.xml b/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/is.xml
deleted file mode 100644
index 65935cf..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/is.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<mythmenu name="Internet Steams">
-   <button>
-     <type>MOVIETIMES</type>
-     <text>Apple Trailers</text>
-     <action>MENU appletrailer.xml</action>
-   </button>
-
-   <button>
-     <type>STREAM</type>
-     <text>MythStream</text>
-     <action>PLUGIN mythstream</action>
-     <depends>mythstream</depends>
-    </button>
-
-   <button>
-     <type>STREAM</type>
-     <text>Miro Player</text>
-     <action>EXEC /usr/bin/democracyplayer</action>
-   </button>
-
-   <button>
-     <type>KnoppMyth</type>
-     <text>Sirius Satellite Radio</text>
-     <action>MENU siriusmenu.xml</action>
-   </button>
-
-   <button>
-     <type>KnoppMyth</type>
-     <text>XM Satellite Radio</text>
-     <action>MENU xmmenu.xml</action>
-   </button>
-
-</mythmenu>
diff --git a/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/knoppmyth.xml b/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/knoppmyth.xml
deleted file mode 100644
index 8aa6134..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/knoppmyth.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<mythmenu name="KnoppMyth">
-
-   <button>
-     <type>BACKUP</type>
-     <text>Backup KnoppMyth</text>
-     <action>MENU mythbackup.xml</action>
-   </button>
-
-   <button>
-     <type>RESTORE</type>
-     <text>Restore KnoppMyth</text>
-     <action>MENU mythrestore.xml</action>
-   </button>
-   
-   <button>
-     <type>Motion</type>
-     <text>Motion</text>
-     <action>MENU motion.xml</action>
-   </button>
-<!--
-   <button>
-     <type>POWER</type>
-     <text>Power Off </text>
-     <action>EXEC /usr/bin/sudo halt</action>
-   </button>
-   
-   <button>
-     <type>POWER</type>
-     <text>Reboot</text>
-     <action>EXEC /usr/bin/sudo reboot</action>
-   </button>
-
-   <button>
-     <type>VERSION</type>
-     <text>Version</text>
-     <action>EXEC /usr/local/bin/ver.sh</action>
-   </button>
--->
-
-   <button>
-       <type>MV_SETUP_MENU</type>
-       <text>MythVantage Settings</text>
-       <action>MENU HOST_SETTINGS.xml</action>
-
-   </button>
-<!--
-   <button>
-       <type>MV_TEMPLATE</type>
-       <text>Settings profile manager</text>
-        <action>EXEC  mythinstall -t </action>
-
-   </button>
--->
-</mythmenu>
-
diff --git a/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/library.xml.patch b/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/library.xml.patch
deleted file mode 100644
index ef08f0c..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/library.xml.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- library.xml.orig	2008-11-13 11:26:10.000000000 -0500
-+++ library.xml	2008-11-19 11:55:55.000000000 -0500
-@@ -120,9 +120,7 @@
-    <button>
-      <type>STREAM</type>
-      <text>Play Online Streams</text>
--     <text lang="HE">נגן מדיה מכוונת</text>
--     <action>PLUGIN mythstream</action>
--     <depends>mythstream</depends>
-+     <action>MENU is.xml</action>
-    </button>
- 
-    <button>
diff --git a/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/mainmenu.xml.patch b/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/mainmenu.xml.patch
deleted file mode 100644
index f4f57f1..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/mainmenu.xml.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- mainmenu.xml.orig	2008-11-13 11:26:10.000000000 -0500
-+++ mainmenu.xml	2008-11-19 12:01:57.000000000 -0500
-@@ -188,6 +188,13 @@
-      <action>MENU util_menu.xml</action>
-    </button>
- 
-+
-+   <button>
-+     <type>MENU_UTILITIES_SETUP</type>
-+     <text>Service Menu</text>
-+     <action>MENU knoppmyth.xml</action>
-+   </button>
-+
-    <!-- <button>
-      <type>SHUTDOWN</type>
-      <text>Shutdown</text>
diff --git a/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/motion.xml b/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/motion.xml
deleted file mode 100644
index 23ebfe2..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/motion.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<mythmenu name="Motion">
-
-   <button>
-     <type>MOTION</type>
-     <text>Start Motion</text>
-     <action>EXEC sudo /etc/init.d/motion start</action>
-   </button>
-
-   <button>
-     <type>MOTION</type>
-     <text>Stop Motion</text>
-     <action>EXEC sudo /etc/init.d/motion stop</action>
-   </button>
-   
-   <button>
-     <type>MOTION</type>
-     <text>Clear Motion</text>
-     <action>EXEC /usr/local/bin/cm.sh</action>
-   </button>
-</mythmenu>
diff --git a/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/optical_menu.xml.patch b/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/optical_menu.xml.patch
deleted file mode 100644
index 7e016a5..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/optical_menu.xml.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- optical_menu.xml.orig	2008-11-19 11:52:44.000000000 -0500
-+++ optical_menu.xml	2008-11-19 12:32:19.000000000 -0500
-@@ -129,6 +129,12 @@
-    </button>
- 
-    <button>
-+      <type>DVD_RIP</type>
-+      <text>Import video files from DVD</text>
-+      <action>EXEC /usr/local/bin/importfiles.sh</action>
-+   </button>
-+
-+   <button>
-       <type>EJECT</type>
-       <text>Eject media</text>
-       <text lang="IT">Espelli Media</text>
diff --git a/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/setup.xml b/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/setup.xml
deleted file mode 100644
index f56bb6f..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/setup.xml
+++ /dev/null
@@ -1,111 +0,0 @@
-<mythmenu name="MAIN">
-
-   <button>
-     <type>SETUP_GENERAL</type>
-     <text>1. General</text>
-     <text lang="IT">1. Generale</text>
-     <text lang="PT">1. Geral</text>
-     <text lang="SV">1. Generellt</text>
-     <text lang="JA">1. 一般</text>
-     <text lang="DE">1. Allgemeines</text>
-     <text lang="FI">1. Yleiset</text>
-     <text lang="FR">1. Général</text>
-     <text lang="SI">1. Splošno</text>
-     <text lang="ET">1. Üldine</text>
-     <text lang="NB">1 Generelt</text>
-     <text lang="DK">1. Generelt</text>
-     <text lang="ES">1. General</text>
-     <text lang="CZ">1. Obecný</text>
-     <text lang="RU">1. Общие</text>
-     <action>GENERAL</action>
-   </button>
-
-   <button>
-     <type>SETUP_CAPTURE_CARDS</type>
-     <text>2. Capture cards</text>
-     <text lang="IT">2. Schede di Acquisizione</text>
-     <text lang="PT">2. Placas de Captura</text>
-     <text lang="SV">2. TV-kort</text>
-     <text lang="JA">2. キャプチャカード</text>
-     <text lang="DE">2. TV-Karten</text>
-     <text lang="FI">2. TV-kortit</text>
-     <text lang="FR">2. Cartes d'acquisition</text>
-     <text lang="SI">2. Kartice za zajem</text>
-     <text lang="ET">2. TV-kaardid</text>
-     <text lang="NB">2 TV-kort</text>
-     <text lang="DK">2. TV-kort</text>
-     <text lang="ES">2. Capturadoras</text>
-     <text lang="CZ">2. Zachytávací karty</text>
-     <text lang="RU">2. Карты захвата</text>
-     <action>CAPTURE CARDS</action>
-   </button>
-
-   <button>
-     <type>SETUP_VIDEO_SOURCES</type>
-     <text>3. Video sources</text>
-     <text lang="IT">3. Fonte Video</text>
-     <text lang="PT">3. Fontes de Vídeo</text>
-     <text lang="SV">3. Videokällor</text>
-     <text lang="JA">3. ビデオソース</text>
-     <text lang="DE">3. Videoquellen</text>
-     <text lang="FI">3. Kuvanlähteet</text>
-     <text lang="FR">3. Sources vidéo</text>
-     <text lang="SI">3. Video viri</text>
-     <text lang="ET">3. Videosisendid</text>
-     <text lang="NB">3 Videokilder</text>
-     <text lang="DK">3. Videokilder</text>
-     <text lang="ES">3. Fuentes de Vídeo</text>
-     <text lang="CZ">3. Zdroje obrazu</text>
-     <text lang="RU">3. Видео источники</text>
-     <action>VIDEO SOURCES</action>
-   </button>
-
-   <button>
-     <type>SETUP_INPUT_CONNECTIONS</type>
-     <text>4. Input connections</text>
-     <text lang="IT">4. Connessioni di Ingresso</text>
-     <text lang="PT">4. Ligações de Entrada</text>
-     <text lang="SV">4. Anslutningar</text>
-     <text lang="JA">4. 入力とソースの接続</text>
-     <text lang="DE">4. Verknüpfungen</text>
-     <text lang="FI">4. Sisääntuloasetukset</text>
-     <text lang="FR">4. Entrées Vidéos</text>
-     <text lang="SI">4. Vhodne povezave</text>
-     <text lang="ET">4. Sisendite ühendused</text>
-     <text lang="NB">4 Inndata</text>
-     <text lang="DK">4. Indgange</text>
-     <text lang="ES">4. Conexiones</text>
-     <text lang="CZ">4. Připojení vstupů</text>
-     <text lang="RU">4. Соединение входов</text>
-     <action>CARD INPUTS</action>
-   </button>
-
-   <button>
-     <type>SETUP_CHANNEL_EDITOR</type>
-     <text>5. Channel Editor</text>
-     <text lang="IT">5. Modifica Canali</text>
-     <text lang="SV">5. Kanaleditor</text>
-     <text lang="JA">5. チャンネル設定</text>
-     <text lang="DE">5. Sender bearbeiten</text>
-     <text lang="FI">5. Kanavanviritys</text>
-     <text lang="FR">5. Editeur de chaînes</text>
-     <text lang="SI">5. Urejanje kanalov</text>
-     <text lang="ET">5. Kanaliredaktor</text>
-     <text lang="NB">5 Kanalredigerer</text>
-     <text lang="DK">5. Kanal opsætning</text>
-     <text lang="ES">5. Editor Canales</text>
-     <text lang="CZ">5. Editor kanálů</text>
-     <text lang="RU">5. Редактор каналов</text>
-     <action>CHANNEL EDITOR</action>
-   </button>
-
-   <button>
-     <type>SETUP_STORAGE_GROUPS</type>
-     <text>6. Storage Directories</text>
-     <text lang="IT">6. Cartelle</text>
-     <text lang="FI">Tallennusryhmät</text>
-     <text lang="SV">Lagringsgrupper</text>
-     <action>STORAGE GROUPS</action>
-   </button>
-
-</mythmenu>
diff --git a/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/siriusmenu.xml b/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/siriusmenu.xml
deleted file mode 100644
index e317b36..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/siriusmenu.xml
+++ /dev/null
@@ -1,419 +0,0 @@
-<mythmenu name="SIRIUS">
-   <button>
-      <type>MUSIC</type>
-      <text>Sirius Hits 1</text>
-      <action>EXEC /usr/bin/cliSipie siriushits1</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>StarLite</text>
-      <action>EXEC /usr/bin/cliSipie starlite</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Sirius Love</text>
-      <action>EXEC /usr/bin/cliSipie siriuslove</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Movin EZ</text>
-      <action>EXEC /usr/bin/cliSipie movineasy</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Sirius Gold</text>
-      <action>EXEC /usr/bin/cliSipie siriusgold</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>'60s Vibrations</text>
-      <action>EXEC /usr/bin/cliSipie 60svibrations</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Totally '70s</text>
-      <action>EXEC /usr/bin/cliSipie totally70s</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Big '80s</text>
-      <action>EXEC /usr/bin/cliSipie big80s</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>ThePulse</text>
-      <action>EXEC /usr/bin/cliSipie thepulse</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Bridge</text>
-      <action>EXEC /usr/bin/cliSipie thebridge</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>BBC Radio 1</text>
-      <action>EXEC /usr/bin/cliSipie bbcradio1</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Super Shuffle</text>
-      <action>EXEC /usr/bin/cliSipie supershuffle</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Elvis Radio</text>
-      <action>EXEC /usr/bin/cliSipie elvisradio</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Classic Vinyl</text>
-      <action>EXEC /usr/bin/cliSipie classicvinyl</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Classic Rewind</text>
-      <action>EXEC /usr/bin/cliSipie classicrewind</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>TheVault</text>
-      <action>EXEC /usr/bin/cliSipie thevault</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Jam_ON</text>
-      <action>EXEC /usr/bin/cliSipie jamon</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Spectrum</text>
-      <action>EXEC /usr/bin/cliSipie thespectrum</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>BuzzSaw</text>
-      <action>EXEC /usr/bin/cliSipie buzzsaw</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Octane</text>
-      <action>EXEC /usr/bin/cliSipie octane</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Alt Nation</text>
-      <action>EXEC /usr/bin/cliSipie altnation</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>1st Wave</text>
-      <action>EXEC /usr/bin/cliSipie firstwave</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Hair Nation</text>
-      <action>EXEC /usr/bin/cliSipie hairnation</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>'90s Alternative</text>
-      <action>EXEC /usr/bin/cliSipie 90salternative</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Garage</text>
-      <action>EXEC /usr/bin/cliSipie undergroundgarage</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Left of Center</text>
-      <action>EXEC /usr/bin/cliSipie leftofcenter</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Hard Attack</text>
-      <action>EXEC /usr/bin/cliSipie hardattack</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Faction</text>
-      <action>EXEC /usr/bin/cliSipie faction</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Punk</text>
-      <action>EXEC /usr/bin/cliSipie punk</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>The Coffee House</text>
-      <action>EXEC /usr/bin/cliSipie coffeehouse</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Margaritaville</text>
-      <action>EXEC /usr/bin/cliSipie radiomargaritaville</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Sirius Disorder</text>
-      <action>EXEC /usr/bin/cliSipie siriusdisorder</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Reggae</text>
-      <action>EXEC /usr/bin/cliSipie reggaerhythms</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Area 33</text>
-      <action>EXEC /usr/bin/cliSipie area33</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Boombox</text>
-      <action>EXEC /usr/bin/cliSipie boombox</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Chill</text>
-      <action>EXEC /usr/bin/cliSipie chill</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>The Beat</text>
-      <action>EXEC /usr/bin/cliSipie thebeat</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Strobe</text>
-      <action>EXEC /usr/bin/cliSipie thestrobe</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Hip-Hop Nation</text>
-      <action>EXEC /usr/bin/cliSipie hiphopnation</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>BackSpin</text>
-      <action>EXEC /usr/bin/cliSipie backspin</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Shade 45</text>
-      <action>EXEC /usr/bin/cliSipie shade45</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Hot Jamz</text>
-      <action>EXEC /usr/bin/cliSipie hotjamz</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Heart  &amp; Soul</text>
-      <action>EXEC /usr/bin/cliSipie heartandsoul</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>SoulTown</text>
-      <action>EXEC /usr/bin/cliSipie soultown</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>New Country</text>
-      <action>EXEC /usr/bin/cliSipie newcountry</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Prime Country</text>
-      <action>EXEC /usr/bin/cliSipie primecountry</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Roadhouse</text>
-      <action>EXEC /usr/bin/cliSipie theroadhouse</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Outlaw Country</text>
-      <action>EXEC /usr/bin/cliSipie outlawcountry</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Bluegrass</text>
-      <action>EXEC /usr/bin/cliSipie bluegrass</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Spirit</text>
-      <action>EXEC /usr/bin/cliSipie spirit</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Praise</text>
-      <action>EXEC /usr/bin/cliSipie praise</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Planet Jazz</text>
-      <action>EXEC /usr/bin/cliSipie planetjazz</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>JazzCafe</text>
-      <action>EXEC /usr/bin/cliSipie jazzcafe</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>PureJazz</text>
-      <action>EXEC /usr/bin/cliSipie purejazz</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Spa 73</text>
-      <action>EXEC /usr/bin/cliSipie spa73</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Blues</text>
-      <action>EXEC /usr/bin/cliSipie siriusblues</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Siriusly Sinatra</text>
-      <action>EXEC /usr/bin/cliSipie siriuslysinatra</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Broadway's Best</text>
-      <action>EXEC /usr/bin/cliSipie broadwaysbest</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Symphony Hall</text>
-      <action>EXEC /usr/bin/cliSipie symphonyhall</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Met Opera Radio</text>
-      <action>EXEC /usr/bin/cliSipie metropolitanopera</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Sirius Pops</text>
-      <action>EXEC /usr/bin/cliSipie siriuspops</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Universo Latino</text>
-      <action>EXEC /usr/bin/cliSipie universolatino</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Rumbon</text>
-      <action>EXEC /usr/bin/cliSipie rumbon</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Martha Stewart</text>
-      <action>EXEC /usr/bin/cliSipie marthastewartlivingradio</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Sirius Stars</text>
-      <action>EXEC /usr/bin/cliSipie siriusstars</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>OutQ Gay Radio</text>
-      <action>EXEC /usr/bin/cliSipie siriusoutq</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Patriot</text>
-      <action>EXEC /usr/bin/cliSipie siriuspatriot</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Left</text>
-      <action>EXEC /usr/bin/cliSipie siriusleft</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>CNN</text>
-      <action>EXEC /usr/bin/cliSipie cnn</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>wrn</text>
-      <action>EXEC /usr/bin/cliSipie wrn</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Blue Collar Comedy</text>
-      <action>EXEC /usr/bin/cliSipie bluecollarcomedy</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Raw Dog Comedy</text>
-      <action>EXEC /usr/bin/cliSipie rawdog</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Laugh Break Comedy</text>
-      <action>EXEC /usr/bin/cliSipie laughbreak</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>thefoxxhole</text>
-      <action>EXEC /usr/bin/cliSipie thefoxxhole</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>lime</text>
-      <action>EXEC /usr/bin/cliSipie lime</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Kids Stuff</text>
-      <action>EXEC /usr/bin/cliSipie kidsstuff</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Catholic Channel</text>
-      <action>EXEC /usr/bin/cliSipie thecatholicchannel</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>EWTN</text>
-      <action>EXEC /usr/bin/cliSipie ewtnglobal</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>christiantalk</text>
-      <action>EXEC /usr/bin/cliSipie christiantalk</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Sirius NFL Radio</text>
-      <action>EXEC /usr/bin/cliSipie siriusnflradio</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Maxim Radio</text>
-      <action>EXEC /usr/bin/cliSipie maximradio</action>
-   </button>
-   <button>
-      <type>MUSIC</type>
-      <text>Cosmo Radio</text>
-      <action>EXEC /usr/bin/cliSipie cosmopolitanradio</action>
-   </button>
-   <button>
-     <type>TV_DELETE</type>
-     <text>Stop Listening</text>
-     <action>EXEC /usr/bin/sipie_kill</action>
-  </button>
-
-</mythmenu>
-
diff --git a/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/xmmenu.xml b/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/xmmenu.xml
deleted file mode 100644
index 6b26d11..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/xmmenu.xml
+++ /dev/null
@@ -1,574 +0,0 @@
-<!-- Current as of April 25, 2007 -->
-<mythmenu name="XM">
-
-	<button>
-		<type>MUSIC</type>
-		<text>The '40s</text>
-		<action>EXEC /usr/bin/xamp kill 4</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>The '50s</text>
-		<action>EXEC /usr/bin/xamp kill 5</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>The '60s</text>
-		<action>EXEC /usr/bin/xamp kill 6</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>The '70s</text>
-		<action>EXEC /usr/bin/xamp kill 7</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>The '80s</text>
-		<action>EXEC /usr/bin/xamp kill 8</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>The '90s</text>
-		<action>EXEC /usr/bin/xamp kill 9</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>America</text>
-		<action>EXEC /usr/bin/xamp kill 10</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>X Country</text>
-		<action>EXEC /usr/bin/xamp kill 12</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Willie's Place</text>
-		<action>EXEC /usr/bin/xamp kill 13</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Bluegrass Junction</text>
-		<action>EXEC /usr/bin/xamp kill 14</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>The Village</text>
-		<action>EXEC /usr/bin/xamp kill 15</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Highway 16</text>
-		<action>EXEC /usr/bin/xamp kill 16</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>US Country</text>
-		<action>EXEC /usr/bin/xamp kill 17</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>20 on 20</text>
-		<action>EXEC /usr/bin/xamp kill 20</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>The Heart</text>
-		<action>EXEC /usr/bin/xamp kill 23</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>The Blend</text>
-		<action>EXEC /usr/bin/xamp kill 25</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Flight 26</text>
-		<action>EXEC /usr/bin/xamp kill 26</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Cinemagic</text>
-		<action>EXEC /usr/bin/xamp kill 27</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>On Broadway</text>
-		<action>EXEC /usr/bin/xamp kill 28</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>U-Pop</text>
-		<action>EXEC /usr/bin/xamp kill 29</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>XM Hitlist</text>
-		<action>EXEC /usr/bin/xamp kill 30</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Torch</text>
-		<action>EXEC /usr/bin/xamp kill 31</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>The Message</text>
-		<action>EXEC /usr/bin/xamp kill 32</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Spirit</text>
-		<action>EXEC /usr/bin/xamp kill 33</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>enLighten</text>
-		<action>EXEC /usr/bin/xamp kill 34</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Deep Tracks</text>
-		<action>EXEC /usr/bin/xamp kill 40</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Boneyard</text>
-		<action>EXEC /usr/bin/xamp kill 41</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>XM Liquid Metal</text>
-		<action>EXEC /usr/bin/xamp kill 42</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>XMU</text>
-		<action>EXEC /usr/bin/xamp kill 43</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Fred</text>
-		<action>EXEC /usr/bin/xamp kill 44</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>XM Cafe</text>
-		<action>EXEC /usr/bin/xamp kill 45</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Top Tracks</text>
-		<action>EXEC /usr/bin/xamp kill 46</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Ethel</text>
-		<action>EXEC /usr/bin/xamp kill 47</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Squizz</text>
-		<action>EXEC /usr/bin/xamp kill 48</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Big Tracks</text>
-		<action>EXEC /usr/bin/xamp kill 49</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>The Loft</text>
-		<action>EXEC /usr/bin/xamp kill 50</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>XM Music Lab</text>
-		<action>EXEC /usr/bin/xamp kill 51</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>The Verge</text>
-		<action>EXEC /usr/bin/xamp kill 52</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Fungus</text>
-		<action>EXEC /usr/bin/xamp kill 53</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Lucy</text>
-		<action>EXEC /usr/bin/xamp kill 54</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Soul Street</text>
-		<action>EXEC /usr/bin/xamp kill 60</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>The Flow</text>
-		<action>EXEC /usr/bin/xamp kill 61</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Suite 62</text>
-		<action>EXEC /usr/bin/xamp kill 62</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>The Groove</text>
-		<action>EXEC /usr/bin/xamp kill 64</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>The Rhyme</text>
-		<action>EXEC /usr/bin/xamp kill 65</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>RAW</text>
-		<action>EXEC /usr/bin/xamp kill 66</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>The City</text>
-		<action>EXEC /usr/bin/xamp kill 67</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>The Heat</text>
-		<action>EXEC /usr/bin/xamp kill 68</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Real Jazz</text>
-		<action>EXEC /usr/bin/xamp kill 70</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Watercolors</text>
-		<action>EXEC /usr/bin/xamp kill 71</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Beyond Jazz</text>
-		<action>EXEC /usr/bin/xamp kill 72</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>High Standards</text>
-		<action>EXEC /usr/bin/xamp kill 73</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Bluesville</text>
-		<action>EXEC /usr/bin/xamp kill 74</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Hear Music</text>
-		<action>EXEC /usr/bin/xamp kill 75</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Fine Tuning</text>
-		<action>EXEC /usr/bin/xamp kill 76</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Audio Visions</text>
-		<action>EXEC /usr/bin/xamp kill 77</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Escape</text>
-		<action>EXEC /usr/bin/xamp kill 78</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>On The Rocks</text>
-		<action>EXEC /usr/bin/xamp kill 79</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>The Move</text>
-		<action>EXEC /usr/bin/xamp kill 80</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>BPM</text>
-		<action>EXEC /usr/bin/xamp kill 81</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>The System</text>
-		<action>EXEC /usr/bin/xamp kill 82</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Chrome</text>
-		<action>EXEC /usr/bin/xamp kill 83</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>XM-Chill</text>
-		<action>EXEC /usr/bin/xamp kill 84</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Fuego</text>
-		<action>EXEC /usr/bin/xamp kill 90</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Viva</text>
-		<action>EXEC /usr/bin/xamp kill 91</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Aguila</text>
-		<action>EXEC /usr/bin/xamp kill 92</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Caliente</text>
-		<action>EXEC /usr/bin/xamp kill 94</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Luna</text>
-		<action>EXEC /usr/bin/xamp kill 95</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Air Musique</text>
-		<action>EXEC /usr/bin/xamp kill 100</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>The Joint</text>
-		<action>EXEC /usr/bin/xamp kill 101</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Sur La Route</text>
-		<action>EXEC /usr/bin/xamp kill 102</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>World Zone</text>
-		<action>EXEC /usr/bin/xamp kill 103</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Ngoma</text>
-		<action>EXEC /usr/bin/xamp kill 104</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>XM Classics</text>
-		<action>EXEC /usr/bin/xamp kill 110</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Vox</text>
-		<action>EXEC /usr/bin/xamp kill 112</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>XM Pops</text>
-		<action>EXEC /usr/bin/xamp kill 113</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>XM Kids</text>
-		<action>EXEC /usr/bin/xamp kill 116</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Bob Edwards Show</text>
-		<action>EXEC /usr/bin/xamp kill 133</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>XM Comedy</text>
-		<action>EXEC /usr/bin/xamp kill 150</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Laugh USA</text>
-		<action>EXEC /usr/bin/xamp kill 151</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Special X</text>
-		<action>EXEC /usr/bin/xamp kill 154</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>The Agenda</text>
-		<action>EXEC /usr/bin/xamp kill 134</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Oprah and Friends</text>
-		<action>EXEC /usr/bin/xamp kill 156</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>The Virus</text>
-		<action>EXEC /usr/bin/xamp kill 202</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>1 Hit Wonders</text>
-		<action>EXEC /usr/bin/xamp kill 300</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Metalcore</text>
-		<action>EXEC /usr/bin/xamp kill 301</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>New Indie First</text>
-		<action>EXEC /usr/bin/xamp kill 302</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Late Night Mix</text>
-		<action>EXEC /usr/bin/xamp kill 303</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Sessions@AOL</text>
-		<action>EXEC /usr/bin/xamp kill 304</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>Shuffle</text>
-		<action>EXEC /usr/bin/xamp kill 305</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>New Rock First</text>
-		<action>EXEC /usr/bin/xamp kill 306</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>New Country First</text>
-		<action>EXEC /usr/bin/xamp kill 307</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>New Hip Hop First</text>
-		<action>EXEC /usr/bin/xamp kill 308</action>
-	</button>
-
-	<button>
-		<type>MUSIC</type>
-		<text>New Pop First</text>
-		<action>EXEC /usr/bin/xamp kill 309</action>
-	</button>
-
-	<button>
-		<type>TV_DELETE</type>
-		<text>Stop Listening</text>
-		<action>EXEC /usr/bin/xamp kill</action>
-	</button>
-
-</mythmenu>
diff --git a/abs/core-testing/mythtv/trunk/mythtv-svn/mpegrecorder-hdpvr-v1.1.patch b/abs/core-testing/mythtv/trunk/mythtv-svn/mpegrecorder-hdpvr-v1.1.patch
deleted file mode 100644
index f292b7f..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv-svn/mpegrecorder-hdpvr-v1.1.patch
+++ /dev/null
@@ -1,658 +0,0 @@
-Index: libs/libmythtv/mpegrecorder.h
-===================================================================
---- libs/libmythtv/mpegrecorder.h	(revision 19056)
-+++ libs/libmythtv/mpegrecorder.h	(working copy)
-@@ -80,11 +80,13 @@
-     uint GetFilteredAudioLayer(void) const;
-     uint GetFilteredAudioBitRate(uint audio_layer) const;
- 
-+    void RestartEncoding(void);
-     bool StartEncoding(int fd);
-     bool StopEncoding(int fd);
- 
-     void ResetForNewFile(void);
- 
-+    bool WaitFor_HDPVR(void);
-     void HandleResolutionChanges(void);
- 
-     inline bool CheckCC(uint pid, uint cc);
-@@ -104,7 +106,6 @@
-     // State
-     bool recording;
-     bool encoding;
--    bool needs_resolution;
-     mutable QMutex start_stop_encoding_lock;
-     QMutex recording_wait_lock;
-     QWaitCondition recording_wait;
-@@ -113,7 +114,7 @@
-     bool cleartimeonpause;
- 
-     // Encoding info
--    int width, height;
-+    uint width, height;
-     int bitrate, maxbitrate, streamtype, aspectratio;
-     int audtype, audsamplerate, audbitratel1, audbitratel2, audbitratel3;
-     int audvolume;
-Index: libs/libmythtv/mpegrecorder.cpp
-===================================================================
---- libs/libmythtv/mpegrecorder.cpp	(revision 19056)
-+++ libs/libmythtv/mpegrecorder.cpp	(working copy)
-@@ -19,6 +19,7 @@
- #include <sys/stat.h>
- #include <sys/ioctl.h>
- #include <sys/time.h>
-+#include <sys/poll.h>
- 
- // avlib headers
- extern "C" {
-@@ -86,7 +87,7 @@
-     requires_special_pause(false),
-     // State
-     recording(false),         encoding(false),
--    needs_resolution(false),  start_stop_encoding_lock(QMutex::Recursive),
-+    start_stop_encoding_lock(QMutex::Recursive),
-     recording_wait_lock(),    recording_wait(),
-     // Pausing state
-     cleartimeonpause(false),
-@@ -487,13 +488,21 @@
- 
- bool MpegRecorder::SetFormat(int chanfd)
- {
-+    uint   idx;
-     struct v4l2_format vfmt;
-     bzero(&vfmt, sizeof(vfmt));
- 
-     vfmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
- 
--    if (ioctl(chanfd, VIDIOC_G_FMT, &vfmt) < 0)
-+    for (idx = 0; idx < 20; ++idx)
-     {
-+        if (ioctl(chanfd, VIDIOC_G_FMT, &vfmt) == 0)
-+            break;
-+        usleep(100 * 1000);
-+    }
-+
-+    if (idx == 10)
-+    {
-         VERBOSE(VB_IMPORTANT, LOC_ERR + "Error getting format" + ENO);
-         return false;
-     }
-@@ -501,8 +510,15 @@
-     vfmt.fmt.pix.width = width;
-     vfmt.fmt.pix.height = height;
- 
--    if (ioctl(chanfd, VIDIOC_S_FMT, &vfmt) < 0)
-+    for (idx = 0; idx < 20; ++idx)
-     {
-+        if (ioctl(chanfd, VIDIOC_S_FMT, &vfmt) == 0)
-+            break;
-+        usleep(100 * 1000);
-+    }
-+
-+    if (idx == 20)
-+    {
-         VERBOSE(VB_IMPORTANT, LOC_ERR + "Error setting format" + ENO);
-         return false;
-     }
-@@ -513,10 +529,19 @@
- /// Set audio language mode
- bool MpegRecorder::SetLanguageMode(int chanfd)
- {
-+    uint   idx;
-     struct v4l2_tuner vt;
-     bzero(&vt, sizeof(struct v4l2_tuner));
--    if (ioctl(chanfd, VIDIOC_G_TUNER, &vt) < 0)
-+
-+    for (idx = 0; idx < 20; ++idx)
-     {
-+        if (ioctl(chanfd, VIDIOC_G_TUNER, &vt) == 0)
-+            break;
-+        usleep(100 * 1000);
-+    }
-+
-+    if (idx == 20)
-+    {
-         VERBOSE(VB_IMPORTANT, LOC_WARN + "Unable to get audio mode" + ENO);
-         return false;
-     }
-@@ -549,8 +574,15 @@
-         success = false;
-     }
- 
--    if (ioctl(chanfd, VIDIOC_S_TUNER, &vt) < 0)
-+    for (idx = 0; idx < 20; ++idx)
-     {
-+        if (ioctl(chanfd, VIDIOC_S_TUNER, &vt) == 0)
-+            break;
-+        usleep(100 * 1000);
-+    }
-+
-+    if (idx == 20)
-+    {
-         VERBOSE(VB_IMPORTANT, LOC_WARN + "Unable to set audio mode" + ENO);
-         success = false;
-     }
-@@ -561,10 +593,19 @@
- bool MpegRecorder::SetRecordingVolume(int chanfd)
- {
-     // Get volume min/max values
-+    uint   idx;
-     struct v4l2_queryctrl qctrl;
-     qctrl.id = V4L2_CID_AUDIO_VOLUME;
--    if (ioctl(chanfd, VIDIOC_QUERYCTRL, &qctrl) < 0)
-+
-+    for (idx = 0; idx < 20; ++idx)
-     {
-+        if (ioctl(chanfd, VIDIOC_QUERYCTRL, &qctrl) == 0)
-+            break;
-+        usleep(100 * 1000);
-+    }
-+
-+    if (idx == 20)
-+    {
-         VERBOSE(VB_IMPORTANT, LOC_WARN +
-                 "Unable to get recording volume parameters(max/min)" + ENO +
-                 "\n\t\t\tusing default range [0,65535].");
-@@ -582,8 +623,15 @@
-     ctrl.id = V4L2_CID_AUDIO_VOLUME;
-     ctrl.value = ctrl_volume;
- 
--    if (ioctl(chanfd, VIDIOC_S_CTRL, &ctrl) < 0)
-+    for (idx = 0; idx < 20; ++idx)
-     {
-+        if (ioctl(chanfd, VIDIOC_S_CTRL, &ctrl) == 0)
-+            break;
-+        usleep(100 * 1000);
-+    }
-+
-+    if (idx == 20)
-+    {
-         VERBOSE(VB_IMPORTANT, LOC_WARN +
-                 "Unable to set recording volume" + ENO + "\n\t\t\t" +
-                 "If you are using an AverMedia M179 card this is normal.");
-@@ -765,6 +813,7 @@
- 
-     for (uint i = 0; i < ext_ctrls.size(); i++)
-     {
-+        uint   idx;
-         struct v4l2_ext_controls ctrls;
-         bzero(&ctrls, sizeof(struct v4l2_ext_controls));
- 
-@@ -774,8 +823,15 @@
-         ctrls.count       = 1;
-         ctrls.controls    = &ext_ctrls[i];
-             
--        if (ioctl(fd, VIDIOC_S_EXT_CTRLS, &ctrls) < 0)
-+        for (idx = 0; idx < 20; ++idx)
-         {
-+            if (ioctl(fd, VIDIOC_S_EXT_CTRLS, &ctrls) == 0)
-+                break;
-+            usleep(100 * 1000);
-+        }
-+
-+        if (idx == 20)
-+        {
-             QMutexLocker locker(&control_description_lock);
-             VERBOSE(VB_IMPORTANT, QString("mpegrecorder.cpp:set_ctrls(): ") +
-                     QString("Could not set %1 to %2")
-@@ -814,6 +870,30 @@
-     {
-         maxbitrate = high_mpeg4peakbitrate;
-         bitrate    = high_mpeg4avgbitrate;
-+
-+        // query supported audio codecs and prefer AC3
-+        uint   idx;
-+        struct v4l2_queryctrl qctrl;
-+        qctrl.id = V4L2_CID_MPEG_AUDIO_ENCODING;
-+
-+        for (idx = 0; idx < 20; ++idx)
-+        {
-+            if (ioctl(chanfd, VIDIOC_QUERYCTRL, &qctrl) == 0)
-+                break;
-+            usleep(100 * 1000);
-+        }
-+
-+        if (idx == 20)
-+        {
-+            VERBOSE(VB_IMPORTANT, LOC_WARN +
-+                    "Unable to get supported audio codecs." + ENO);
-+        }
-+        else
-+        {
-+            if (qctrl.minimum != qctrl.maximum)
-+                add_ext_ctrl(ext_ctrls, V4L2_CID_MPEG_AUDIO_ENCODING,
-+                             qctrl.maximum);
-+        }
-     }
-     maxbitrate = std::max(maxbitrate, bitrate);
- 
-@@ -837,19 +917,36 @@
-     int audioinput = audiodevice.toUInt(&ok);
-     if (ok)
-     {
-+        uint   idx;
-         struct v4l2_audio ain;
-         bzero(&ain, sizeof(ain));
-         ain.index = audioinput;
--        if (ioctl(chanfd, VIDIOC_ENUMAUDIO, &ain) < 0)
-+
-+        for (idx = 0; idx < 20; ++idx)
-         {
-+            if (ioctl(chanfd, VIDIOC_ENUMAUDIO, &ain) == 0)
-+                break;
-+            usleep(100 * 1000);
-+        }
-+
-+        if (idx == 20)
-+        {
-             VERBOSE(VB_IMPORTANT, LOC_WARN +
-                     "Unable to get audio input.");
-         }
-         else
-         {
-             ain.index = audioinput;
--            if (ioctl(chanfd, VIDIOC_S_AUDIO, &ain) < 0)
-+
-+            for (idx = 0; idx < 20; ++idx)
-             {
-+                if (ioctl(chanfd, VIDIOC_S_AUDIO, &ain) == 0)
-+                    break;
-+                usleep(100 * 1000);
-+            }
-+
-+            if (idx == 20)
-+            {
-                 VERBOSE(VB_IMPORTANT, LOC_WARN +
-                         "Unable to set audio input.");
-             }
-@@ -1036,17 +1133,26 @@
-     if (deviceIsMpegFile)
-         elapsedTimer.start();
-     else if (_device_read_buffer)
--        _device_read_buffer->Start();
-+    {
-+        VERBOSE(VB_RECORD, LOC + "Initial startup of recorder");
- 
--    needs_resolution = (driver == "hdpvr");
-+        if (StartEncoding(readfd))
-+            _device_read_buffer->Start();
-+        else
-+        {
-+            VERBOSE(VB_IMPORTANT, LOC_ERR + "Failed to start recording");
-+            recording = false;
-+            QMutexLocker locker(&recording_wait_lock);
-+            recording_wait.wakeAll();
-+            _error = true;
-+        }
-+    }
- 
-     QByteArray vdevice = videodevice.toAscii();
-     while (encoding && !_error)
-     {
-         if (PauseAndWait(100))
-             continue;
--
--        HandleResolutionChanges();
-         
-         if (deviceIsMpegFile)
-         {
-@@ -1090,35 +1196,7 @@
-             {
-                 VERBOSE(VB_IMPORTANT, LOC_ERR + "Device error detected");
- 
--                _device_read_buffer->Stop();
--
--                QMutexLocker locker(&start_stop_encoding_lock);
--
--                StopEncoding(readfd);
--
--                // Make sure the next things in the file are a PAT & PMT
--                if (_stream_data->PATSingleProgram() &&
--                    _stream_data->PMTSingleProgram())
--                {
--                    bool tmp = _wait_for_keyframe_option;
--                    _wait_for_keyframe_option = false;
--                    HandleSingleProgramPAT(_stream_data->PATSingleProgram());
--                    HandleSingleProgramPMT(_stream_data->PMTSingleProgram());
--                    _wait_for_keyframe_option = tmp;
--                }
--
--                if (StartEncoding(readfd))
--                {
--                    _device_read_buffer->Start();
--                }
--                else
--                {
--                    if (0 != close(readfd))
--                        VERBOSE(VB_IMPORTANT, LOC_ERR + "Close error" + ENO);
--                    
--                    // Force card to be reopened on next iteration..
--                    readfd = -1;
--                }
-+                RestartEncoding();
-             }
-             else if (_device_read_buffer->IsEOF())
-             {
-@@ -1216,6 +1294,8 @@
-         }
-     }
- 
-+    VERBOSE(VB_RECORD, LOC + "StartRecording finishing up");
-+
-     if (_device_read_buffer)
-     {
-         if (_device_read_buffer->IsRunning())
-@@ -1224,6 +1304,7 @@
-         delete _device_read_buffer;
-         _device_read_buffer = NULL;
-     }
-+
-     StopEncoding(readfd);
- 
-     FinishRecording();
-@@ -1373,52 +1454,95 @@
- 
-         if (!paused)
-         {
-+            VERBOSE(VB_RECORD, LOC + "PauseAndWait pause");
-+
-+            // Some drivers require streaming to be disabled before
-+            // an input switch and other channel format setting.
-+            if (requires_special_pause)
-+                StopEncoding(readfd);
-+
-             if (_device_read_buffer)
-             {
-                 QMutex drb_lock;
-                 drb_lock.lock();
--
-                 _device_read_buffer->SetRequestPause(true);
--
-                 pauseWait.wait(&drb_lock, timeout);
-             }
-             else
--            {
--                paused = true;
-                 pauseWait.wakeAll();
--            }
- 
--            // Some drivers require streaming to be disabled before
--            // an input switch and other channel format setting.
--            if (requires_special_pause)
--                StopEncoding(readfd);
--
-+            paused = true;
-             if (tvrec)
-                 tvrec->RecorderPaused();
-         }
- 
-         unpauseWait.wait(&waitlock, timeout);
-     }
--    if (!request_pause)
-+
-+    if (!request_pause && paused)
-     {
--        if (paused)
-+        VERBOSE(VB_RECORD, LOC + "PauseAndWait unpause");
-+
-+        if (driver == "hdpvr")
-         {
--            // Some drivers require streaming to be disabled before
--            // an input switch and other channel format setting.
--            if (requires_special_pause)
--                StartEncoding(readfd);
-+            m_h264_parser.Reset();
-+            _wait_for_keyframe_option = true;
-+            _seen_sps = false;
- 
--            if (_device_read_buffer)
--                _device_read_buffer->SetRequestPause(false);
-+            // Sleep any less than 1.5 seconds, and the HD-PVR will
-+            // return the old resolution, when the resolution is changing.
-+            usleep(1500 * 1000);
-+        }
- 
--            if (_stream_data)
--                _stream_data->Reset(_stream_data->DesiredProgram());
--        }
-+        // Some drivers require streaming to be disabled before
-+        // an input switch and other channel format setting.
-+        if (requires_special_pause)
-+            StartEncoding(readfd);
-+        
-+        if (_device_read_buffer)
-+            _device_read_buffer->SetRequestPause(false);
-+        
-+        if (_stream_data)
-+            _stream_data->Reset(_stream_data->DesiredProgram());
-+
-         paused = false;
-     }
-+
-     return paused;
- }
- 
-+void MpegRecorder::RestartEncoding(void)
-+{
-+    VERBOSE(VB_RECORD, LOC + "RestartEncoding");
-+
-+    _device_read_buffer->Stop();
-+    
-+    QMutexLocker locker(&start_stop_encoding_lock);
-+    
-+    StopEncoding(readfd);
-+    
-+    // Make sure the next things in the file are a PAT & PMT
-+    if (_stream_data->PATSingleProgram() &&
-+        _stream_data->PMTSingleProgram())
-+    {
-+        _wait_for_keyframe_option = false;
-+        HandleSingleProgramPAT(_stream_data->PATSingleProgram());
-+        HandleSingleProgramPMT(_stream_data->PMTSingleProgram());
-+    }
-+    
-+    if (StartEncoding(readfd))
-+    {
-+        _device_read_buffer->Start();
-+    }
-+    else
-+    {
-+        if (0 != close(readfd))
-+            VERBOSE(VB_IMPORTANT, LOC_ERR + "Close error" + ENO);
-+        
-+        readfd = -1;
-+    }
-+}
-+
- bool MpegRecorder::StartEncoding(int fd)
- {
-     QMutexLocker locker(&start_stop_encoding_lock);
-@@ -1427,13 +1551,22 @@
-     memset(&command, 0, sizeof(struct v4l2_encoder_cmd));
-     command.cmd = V4L2_ENC_CMD_START;
- 
-+    if (driver == "hdpvr")
-+        HandleResolutionChanges();
-+
-     VERBOSE(VB_RECORD, LOC + "StartEncoding");
--    needs_resolution = (driver == "hdpvr");
- 
--    for (int idx = 0; idx < 10; ++idx)
-+    for (int idx = 0; idx < 20; ++idx)
-     {
-         if (ioctl(fd, VIDIOC_ENCODER_CMD, &command) == 0)
-         {
-+            if (driver == "hdpvr")
-+            {
-+                m_h264_parser.Reset();
-+                _wait_for_keyframe_option = true;
-+                _seen_sps = false;
-+            }
-+
-             VERBOSE(VB_RECORD, LOC + "Encoding started");
-             return true;
-         }
-@@ -1444,7 +1577,7 @@
-             return false;
-         }
- 
--        usleep(250 * 1000);
-+        usleep(100 * 1000);
-     }
- 
-     VERBOSE(VB_IMPORTANT, LOC_ERR + "StartEncoding - giving up" + ENO);
-@@ -1461,9 +1594,8 @@
- 
-     VERBOSE(VB_RECORD, LOC + "StopEncoding");
- 
--    for (int idx = 0; idx < 10; ++idx)
-+    for (int idx = 0; idx < 20; ++idx)
-     {
--
-         if (ioctl(fd, VIDIOC_ENCODER_CMD, &command) == 0)
-         {
-             VERBOSE(VB_RECORD, LOC + "Encoding stopped");
-@@ -1476,7 +1608,7 @@
-             return false;
-         }
- 
--        usleep(250 * 1000);
-+        usleep(100 * 1000);
-     }
- 
-     VERBOSE(VB_IMPORTANT, LOC_ERR + "StopEncoding - giving up" + ENO);
-@@ -1544,7 +1676,7 @@
- void MpegRecorder::HandleSingleProgramPMT(ProgramMapTable *pmt)
- {
-     if (!pmt)
--{
-+    {
-         return;
-     }
- 
-@@ -1564,27 +1696,89 @@
-         DTVRecorder::BufferedWrite(*(reinterpret_cast<TSPacket*>(&buf[i])));
- }
- 
-+bool MpegRecorder::WaitFor_HDPVR(void)
-+{
-+    // After a resolution change, it can take the HD-PVR a few
-+    // seconds before it is usable again.
-+
-+    // Tell it to start encoding, then wait for it to actually feed us
-+    // some data.
-+    QMutexLocker locker(&start_stop_encoding_lock);
-+
-+    struct v4l2_encoder_cmd command;
-+    struct pollfd polls;
-+    int    idx;
-+
-+    memset(&command, 0, sizeof(struct v4l2_encoder_cmd));
-+    command.cmd = V4L2_ENC_CMD_START;
-+
-+    for (idx = 0; idx < 20; ++idx)
-+    {
-+        if (ioctl(readfd, VIDIOC_ENCODER_CMD, &command) == 0)
-+            break;
-+        usleep(100 * 1000);
-+    }
-+
-+    if (idx == 20)
-+        return false;
-+
-+    polls.fd      = readfd;
-+    polls.events  = POLLIN;
-+    polls.revents = 0;
-+
-+    for (idx = 0; idx < 10; ++idx)
-+    {
-+        if (poll(&polls, 1, 250) > 0)
-+            break;
-+    }
-+
-+    if (idx == 10)
-+        return false;
-+
-+    // HD-PVR should now be "ready"
-+    command.cmd = V4L2_ENC_CMD_STOP;
-+
-+    for (idx = 0; idx < 20; ++idx)
-+    {
-+        if (ioctl(readfd, VIDIOC_ENCODER_CMD, &command) == 0)
-+            return true;
-+        usleep(100 * 1000);
-+    }
-+
-+    return false;
-+}
-+
- void MpegRecorder::HandleResolutionChanges(void)
- {
--    if (!needs_resolution)
--        return;
--
-     VERBOSE(VB_RECORD, LOC + "Checking Resolution");
-     struct v4l2_format vfmt;
-     memset(&vfmt, 0, sizeof(vfmt));
-     vfmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-             
-+    if (driver == "hdpvr")
-+        WaitFor_HDPVR();
-+
-+    uint idx;
-     uint pix = 0;
-+
-+    for (idx = 0; idx < 20; ++idx)
-+    {
-     if (0 == ioctl(chanfd, VIDIOC_G_FMT, &vfmt))
-     {
-         VERBOSE(VB_RECORD, LOC + QString("Got Resolution %1x%2")
-                 .arg(vfmt.fmt.pix.width).arg(vfmt.fmt.pix.height));
-         pix = vfmt.fmt.pix.width * vfmt.fmt.pix.height;
--        needs_resolution = false;
-+            break;
-+        }
-+        // Typically takes 0.9 seconds after a resolution change
-+        usleep(100 * 1000);
-     }
- 
-     if (!pix)
-+    {
-+        VERBOSE(VB_RECORD, LOC + "Giving up detecting resolution");
-         return; // nothing to do, we don't have a resolution yet
-+    }
- 
-     int old_max = maxbitrate, old_avg = bitrate;
-     if (pix <= 768*568)
-@@ -1609,13 +1803,14 @@
-         if (old_max == old_avg)
-         {
-             VERBOSE(VB_RECORD, LOC +
--                    QString("Old bitrate %1 CBR").arg(old_avg));
-+                    QString("Old bitrate %1 CBR for %2x%3")
-+                    .arg(old_avg).arg(width).arg(height));
-         }
-         else
-         {
-             VERBOSE(VB_RECORD, LOC +
--                    QString("Old bitrate %1/%2 VBR")
--                    .arg(old_avg).arg(old_max));
-+                    QString("Old bitrate %1/%2 VBR for %3x%4")
-+                    .arg(old_avg).arg(old_max).arg(width).arg(height));
-         }
- 
-         if (maxbitrate == bitrate)
-@@ -1642,12 +1837,6 @@
-                      maxbitrate * 1000);
- 
-         set_ctrls(readfd, ext_ctrls);
-+
-     }
--
--    // Restart streaming. Shouldn't be needed? seems to be with current driver.
--    QMutexLocker locker(&start_stop_encoding_lock);
--    StopEncoding(readfd);
--    StartEncoding(readfd);
--
--    needs_resolution = false;
- }
diff --git a/abs/core-testing/mythtv/trunk/mythtv-svn/myth.sh b/abs/core-testing/mythtv/trunk/mythtv-svn/myth.sh
deleted file mode 100755
index fb7122c..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv-svn/myth.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-export PATH=$PATH:/usr/local/bin
-# set core file size to 0
-ulimit -c 0
-export MALLOC_CHECK_=0
\ No newline at end of file
diff --git a/abs/core-testing/mythtv/trunk/mythtv-svn/mythbackend b/abs/core-testing/mythtv/trunk/mythtv-svn/mythbackend
deleted file mode 100755
index f96c6b7..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv-svn/mythbackend
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/bash
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-PID=`pidof -o %PPID /usr/bin/mythbackend`
-case "$1" in
-  start)
-    stat_busy "Starting MythTV Backend"
-    [ ! -e /var/run/mysqld.pid ] && echo -n "mysqld not started" && stat_fail && exit
-    [ -z "$PID" ] && /usr/local/bin/mythbackend -d -l /var/log/mythbackend.log -v quiet
-    if [ $? -gt 0 ]; then
-      stat_fail
-    else
-      echo $PID > /var/run/mythbackend.pid
-      add_daemon mythbackend
-      stat_done
-    fi
-    ;;
-  stop)
-    stat_busy "Stopping MythTV Backend"
-    [ ! -z "$PID" ]  && kill $PID &>/dev/null
-    if [ $? -gt 0 ]; then
-      stat_fail
-    else
-      rm_daemon mythbackend
-      stat_done
-    fi
-    ;;
-  restart)
-    $0 stop
-    $0 start
-    ;;
-  *)
-    echo "usage: $0 {start|stop|restart}"
-esac
-exit 0
diff --git a/abs/core-testing/mythtv/trunk/mythtv-svn/mythbackend.sh b/abs/core-testing/mythtv/trunk/mythtv-svn/mythbackend.sh
deleted file mode 100755
index e7a7b70..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv-svn/mythbackend.sh
+++ /dev/null
@@ -1,117 +0,0 @@
-#!/bin/bash
-#
-#	/etc/rc.d/init.d/mythbackend
-#
-# Starts the mythbackend as a daemon
-#
-# chkconfig: 345 90 10
-# description: Starts the mythbackend process as a daemon after the XWindows \
-#              system is started, in runlevel 5. This allows scheduled \
-#              recordings to occur without manual intervention.
-# processname: mythbackend
-
-# Copyright (c) by Michael Thomson <linux at m-thomson dot net>
-# With thanks to Stu Tomlinson <stu at nosnilmot dot com>
-#
-#  This program is free software; you can redistribute it and/or modify
-#  it under the terms of the GNU General Public License as published by
-#  the Free Software Foundation; either version 2 of the License, or
-#  (at your option) any later version.
-#
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with this program; if not, write to the Free Software
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-
-# Default values to use if none are supplied in the config file.
-# User who should start the mythbackend processes
-MBE_USER="root"
-# Directory holding the mythbackend binary
-MBE_LOCATION="/usr/local/bin/"
-# Name of mythbackend binary
-MBE_PROG="mythbackend"
-# Full path to mythbackend log file
-MBE_LOGFILE="/var/log/mythtv/mythbackend.log"
-
-# Source function library.
-. /etc/init.d/functions
-
-# Source config file if available
-if [ -f "/etc/sysconfig/mythbackend" ]; then
-  . /etc/sysconfig/mythbackend
-fi
-
-test -x ${MBE_LOCATION}${MBE_PROG} || exit 0
-
-RETVAL=0
-
-#
-#	See how we were called.
-#
-
-start() {
-	# Check if mythbackend is already running
-	if [ ! -f /var/lock/subsys/${MBE_PROG} ]; then
-	    echo -n "Starting ${MBE_PROG}: "
-	    # /usr/local/bin/mythbackend -d -l /some/log/file
-	    #daemon --user ${MBE_USER} ${MBE_LOCATION}${MBE_PROG} -d -l ${MBE_LOGFILE}
-	    ${MBE_LOCATION}${MBE_PROG} -d -l ${MBE_LOGFILE}
-	    RETVAL=$?
-	    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/${MBE_PROG}
-	    echo
-	fi
-	return $RETVAL
-}
-
-stop() {
-	echo -n "Stopping ${MBE_PROG}: "
-	killproc ${MBE_LOCATION}${MBE_PROG}
-	RETVAL=$?
-	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/${MBE_PROG}
-	echo
-        return $RETVAL
-}
-
-
-restart() {
-	stop
-	start
-}	
-
-reload() {
-	restart
-}	
-
-status_at() {
- 	status ${MBE_LOCATION}${MBE_PROG}
-}
-
-case "$1" in
-start)
-	start
-	;;
-stop)
-	stop
-	;;
-reload|restart)
-	restart
-	;;
-condrestart)
-	if [ -f /var/lock/subsys/${MBE_PROG} ]; then
-	    restart
-	fi
-	;;
-status)
-	status_at
-	;;
-*)
-	echo "Usage: $0 {start|stop|restart|condrestart|status}"
-	exit 1
-esac
-
-exit $?
-exit $RETVAL
diff --git a/abs/core-testing/mythtv/trunk/mythtv-svn/mythcommflag-avidemux.2.patch b/abs/core-testing/mythtv/trunk/mythtv-svn/mythcommflag-avidemux.2.patch
deleted file mode 100644
index d26645f..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv-svn/mythcommflag-avidemux.2.patch
+++ /dev/null
@@ -1,179 +0,0 @@
-Index: programs/mythcommflag/main.cpp
-===================================================================
---- programs/mythcommflag/main.cpp	(revision 18596)
-+++ programs/mythcommflag/main.cpp	(working copy)
-@@ -300,6 +300,132 @@
-     return COMMFLAG_EXIT_NO_ERROR_WITH_NO_BREAKS;
- }
- 
-+int GetAviDemux(QString list, QString chanid, QString starttime, const QString &outputfilename)
-+{
-+    QMap<long long, int> cutlist;
-+    QMap<long long, int>::Iterator it;
-+    QString result;
-+    int startValue = 0;
-+    long long myTotalFrames;
-+    long long myFrameRate;
-+
-+    ProgramInfo *pginfo =
-+        ProgramInfo::GetProgramFromRecorded(chanid, starttime);
-+
-+    NuppelVideoPlayer* nvp = new NuppelVideoPlayer("avidemux_export", pginfo);
-+
-+    myFrameRate = (long long)(nvp->GetFrameRate() * 1000);
-+    myTotalFrames = 1000000; //nvp->GetTotalFrameCount();
-+
-+    if (!pginfo)
-+    {
-+        VERBOSE(VB_IMPORTANT,
-+                QString("No program data exists for channel %1 at %2")
-+                .arg(chanid).arg(starttime));
-+        return COMMFLAG_BUGGY_EXIT_NO_CHAN_DATA;
-+    }
-+
-+    QString filename = pginfo->GetPlaybackURL(TRUE);
-+
-+    if (list == "cutlist")
-+        pginfo->GetCutList(cutlist);
-+    else
-+        pginfo->GetCommBreakList(cutlist);
-+
-+// Formatting of output data
-+
-+    for (it = cutlist.begin(); it != cutlist.end(); ++it)
-+    {
-+        if ((it.key() == 0) && (startValue == 0)) // Cutlist starts on first frame,
-+            {
-+            ++it;
-+            startValue = it.key();
-+            }
-+
-+        if ((it.key() != 0) && (startValue == 0)) // Cutlist starts on non-first frame
-+            {
-+            result += QString("app.addSegment(0,0,%1);").arg(it.key());  
-+            startValue = it.key();
-+            }
-+        else
-+           {
-+            if  ((*it == MARK_COMM_END) && (startValue != 0) ||
-+                (*it == MARK_CUT_END) && (startValue != 0))
-+                {
-+                 if (result != "")
-+                       result += "\n";
-+                       startValue = it.key();
-+                       result += QString("app.addSegment(0,%1,").arg(it.key()); // Value is a start value
-+                }
-+            else  
-+                {
-+                    result += QString("%1);").arg(it.key() - startValue); // Value is an end value
-+                }
-+           }
-+   }
-+
-+if (it.key() != myTotalFrames)
-+    {
-+        result += QString("%1);").arg(myTotalFrames);
-+    }
-+
-+// Governs the file output:
-+
-+    QString tmp = "";
-+    ostream *out = &cout;
-+
-+    if (outputfilename != "-"){
-+        QByteArray tmp = outputfilename.toLocal8Bit();
-+        out = new fstream(tmp.constData(), ios::app | ios::out );
-+        }
-+
-+    if (outputfilename == ""){
-+        VERBOSE(VB_IMPORTANT,
-+           QString("Error: AVIDemux output requires the use of the --outputfile option."));
-+           return COMMFLAG_EXIT_INVALID_CMDLINE;
-+        }
-+
-+        tmp = QString("//AD  <- Needed to identify//\n"
-+                        "//--automatically built--\n"
-+                        "//--Project:\n\n"
-+                        "var app = new Avidemux();\n\n"
-+                        "//** Video **\n"
-+                        "// 01 videos source\n" 
-+                        "app.load(\"%1\");\n\n"
-+                        "app.clearSegments();\n\n"
-+                        "%2\n"
-+                        "app.markerA=0;\n"
-+                        "app.markerB=%3;\n"
-+                        "app.rebuildIndex();\n\n"
-+                        "//** Postproc **\n"
-+                        "app.video.setPostProc(3,3,0);\n\n"
-+                        "app.video.setFps1000(%4);\n\n"
-+                        "//** Filters **\n\n"
-+                        "//** Video Codec conf **\n"
-+                        "app.video.codec(\"Copy\",\"CQ=4\",\"0 \");\n\n"
-+                        "//** Audio **\n"
-+                        "app.audio.reset();\n"
-+                        "app.audio.codec(\"copy\",128,0,\"\");\n"
-+                        "app.audio.normalizeMode=0;\n"
-+                        "app.audio.normalizeValue=0;\n"
-+                        "app.audio.delay=0;\n"
-+                        "app.audio.mixer(\"NONE\");\n"
-+                        "app.setContainer(\"AVI\");\n"
-+                        "setSuccess(1);\n"
-+                        "//app.Exit();\n\n"
-+                        "//End of script\n").arg(filename).arg(result).arg(myTotalFrames).arg(myFrameRate).toLocal8Bit().constData();
-+
-+        const QByteArray tmp2 = tmp.toLocal8Bit();
-+        *out << tmp2.constData() << endl;
-+
-+        VERBOSE(VB_IMPORTANT,
-+                QString("AVIDemux Project generated for %1 at %2 with filename %3.")
-+                .arg(chanid).arg(starttime).arg(outputfilename));
-+
-+    return COMMFLAG_EXIT_NO_ERROR_WITH_NO_BREAKS;
-+}
-+
-+
- void streamOutCommercialBreakList(
-     ostream &output, const QMap<long long, int> &commercialBreakList)
- {
-@@ -811,6 +937,8 @@
-     bool clearCutlist = false;
-     bool getCutlist = false;
-     bool getSkipList = false;
-+    bool getAviDemuxCutlist = false;
-+    bool getAviDemuxSkiplist = false;
-     QString newCutList = QString::null;
-     QMap<QString, QString> settingsOverride;
- 
-@@ -960,6 +1088,10 @@
-             getCutlist = true;
-         else if (!strcmp(a.argv()[argpos], "--getskiplist"))
-             getSkipList = true;
-+        else if (!strcmp(a.argv()[argpos], "--getcutlist-avidemux"))
-+            getAviDemuxCutlist = true;
-+        else if (!strcmp(a.argv()[argpos], "--getskiplist-avidemux"))
-+            getAviDemuxSkiplist = true;
-         else if (!strcmp(a.argv()[argpos], "--setcutlist"))
-             newCutList = (a.argv()[++argpos]);
-         else if (!strcmp(a.argv()[argpos], "-j"))
-@@ -1111,6 +1243,8 @@
-                     "                             #-#[,#-#]...  (ie, 1-100,1520-3012,4091-5094\n"
-                     "--getcutlist                 Display the current cutlist\n"
-                     "--getskiplist                Display the current Commercial Skip list\n"
-+                    "--getcutlist-avidemux        Export cutlist as AVIDemux Project File\n"
-+                    "--getskiplist-avidemux       Export skiplist as AVIDemux Project File\n"
-                     "-v or --verbose debug-level  Use '-v help' for level info\n"
-                     "--queue                      Insert flagging job into the JobQueue rather than\n"
-                     "                             running flagging in the foreground\n"
-@@ -1223,6 +1357,12 @@
-     if (!newCutList.isNull())
-         return SetCutList(chanid, starttime, newCutList);
- 
-+    if (getAviDemuxCutlist)
-+        return GetAviDemux("cutlist", chanid, starttime, outputfilename);
-+
-+    if (getAviDemuxSkiplist)
-+        return GetAviDemux("commflag", chanid, starttime, outputfilename);
-+
-     if (getCutlist)
-         return GetMarkupList("cutlist", chanid, starttime);
- 
diff --git a/abs/core-testing/mythtv/trunk/mythtv-svn/mythtv.install b/abs/core-testing/mythtv/trunk/mythtv-svn/mythtv.install
deleted file mode 100755
index 513852a..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv-svn/mythtv.install
+++ /dev/null
@@ -1,55 +0,0 @@
-
-# arg 1:  the new package version
-pre_install () {
-        echo "backing up the database"
-                dbver=`pacman -Q mythtv-svn | awk  ' { print $2 } '`
-        if [ ! -e /data/databases_backup ]
-        then
-                mkdir -p /data/database_backup
-        fi
-        mysqldump -u mythtv -pmythtv mythconverg -c > /data/database_backup/${dbver}.dump.sql
-}
-
-post_install() {
-  	mkdir -p /data/home
-        /usr/sbin/useradd -G users,video,audio,optical -m -d /data/home/mythtv mythtv
-        /usr/sbin/usermod -G users,video,audio,optical mythtv
-#        mkdir /var/log/mythtv
-#        chown -R mythtv:users /var/log/mythtv
-        dbver=`pacman -Q mythtv-svn | awk  ' { print $2 } '`
-        if [ ! -e /data/database_backup ]
-        then
-                mkdir -p /data/database_backup
-        fi
-	chown mythtv:nobody /data/database_backup
-	chmod g+s  /data/database_backup
-        
-	mysqldump -u mythtv -pmythtv mythconverg -c > /data/database_backup/${dbver}.dump.sql
-
-
-}
-pre_upgrade () {
- pre_install
-}
-
-# arg 1:  the new package version
-# arg 2:  the old package version
-post_upgrade() {
-  post_install
-
-  /bin/true
-}
-
-# arg 1:  the old package version
-pre_remove() {
-  /bin/true
-}
-
-# arg 1:  the old package version
-post_remove() {
-/bint/true
-}
-
-op=$1
-shift
-$op $*
diff --git a/abs/core-testing/mythtv/trunk/mythtv-svn/patches/DeviceReadBuffer-polltimeout.2.patch b/abs/core-testing/mythtv/trunk/mythtv-svn/patches/DeviceReadBuffer-polltimeout.2.patch
deleted file mode 100644
index 5bb713f..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv-svn/patches/DeviceReadBuffer-polltimeout.2.patch
+++ /dev/null
@@ -1,219 +0,0 @@
-Index: libs/libmythtv/DeviceReadBuffer.h
-===================================================================
---- libs/libmythtv/DeviceReadBuffer.h	(revision 18515)
-+++ libs/libmythtv/DeviceReadBuffer.h	(working copy)
-@@ -59,7 +59,7 @@
-     void IncrReadPointer(uint len);
- 
-     bool HandlePausing(void);
--    bool Poll(void) const;
-+    bool Poll(void);
-     uint WaitForUnused(uint bytes_needed) const;
-     uint WaitForUsed  (uint bytes_needed) const;
- 
-Index: libs/libmythtv/DeviceReadBuffer.cpp
-===================================================================
---- libs/libmythtv/DeviceReadBuffer.cpp	(revision 18515)
-+++ libs/libmythtv/DeviceReadBuffer.cpp	(working copy)
-@@ -90,9 +90,14 @@
- 
- void DeviceReadBuffer::Start(void)
- {
--    lock.lock();
--    bool was_running = running;
--    lock.unlock();
-+    bool was_running;
-+
-+    {
-+        QMutexLocker locker(&lock);
-+        was_running = running;
-+        error = false;
-+    }
-+
-     if (was_running)
-     {
-         VERBOSE(VB_IMPORTANT, LOC_ERR + "Start(): Already running.");
-@@ -104,6 +109,8 @@
-     {
-         VERBOSE(VB_IMPORTANT,
-                 LOC_ERR + QString("Start(): pthread_create failed.") + ENO);
-+
-+        QMutexLocker locker(&lock);
-         error = true;
-     }
- }
-@@ -118,21 +125,25 @@
-     used          = 0;
-     readPtr       = buffer;
-     writePtr      = buffer;
-+
-+    error         = false;
- }
- 
- void DeviceReadBuffer::Stop(void)
- {
-     bool was_running = IsRunning();
--    lock.lock();
--    run = false;
--    lock.unlock();
- 
-     if (!was_running)
-     {
--        VERBOSE(VB_IMPORTANT, LOC_ERR + "Stop(): Not running.");
-+        VERBOSE(VB_IMPORTANT, LOC + "Stop(): Not running.");
-         return;
-     }
- 
-+    {
-+        QMutexLocker locker(&lock);
-+        run = false;
-+    }
-+
-     pthread_join(thread, NULL);
- }
- 
-@@ -229,10 +240,11 @@
- {
-     uint      errcnt = 0;
- 
--    lock.lock();
--    run     = true;
--    running = true;
--    lock.unlock();
-+    {
-+        QMutexLocker locker(&lock);
-+        run     = true;
-+        running = true;
-+    }
- 
-     while (run)
-     {
-@@ -248,6 +260,15 @@
-         if (using_poll && !Poll())
-             continue;
- 
-+        {
-+            QMutexLocker locker(&lock);
-+            if (error)
-+            {
-+                VERBOSE(VB_RECORD, LOC + "fill_ringbuffer: error state");
-+                break;
-+            }
-+        }
-+
-         // Limit read size for faster return from read
-         size_t read_size =
-             min(dev_read_size, (size_t) WaitForUnused(TSPacket::SIZE));
-@@ -268,9 +289,10 @@
-         }
-     }
- 
--    lock.lock();
--    running = false;
--    lock.unlock();
-+    {
-+        QMutexLocker locker(&lock);
-+        running = false;
-+    }
- }
- 
- bool DeviceReadBuffer::HandlePausing(void)
-@@ -293,7 +315,7 @@
-     return true;
- }
- 
--bool DeviceReadBuffer::Poll(void) const
-+bool DeviceReadBuffer::Poll(void)
- {
- #ifdef USING_MINGW
- #warning mingw DeviceReadBuffer::Poll
-@@ -302,31 +324,53 @@
-     return false;
- #else
-     bool retval = true;
--    while (true)
-+    uint timeout_cnt = 0;
-+
-+    for (;;)
-     {
-         struct pollfd polls;
-         polls.fd      = _stream_fd;
-         polls.events  = POLLIN;
-         polls.revents = 0;
- 
--        int ret = poll(&polls, 1 /*number of polls*/, 10 /*msec*/);
--        if (IsPauseRequested() || !IsOpen() || !run)
-+        int ret = poll(&polls, 1 /*number of polls*/, 250 /*msec*/);
-+
-+        if (polls.revents & (POLLERR | POLLHUP | POLLNVAL))
-         {
-+            VERBOSE(VB_IMPORTANT, LOC + "poll error");
-+            error = true;
-+            return true;
-+        }
-+
-+        if (!run || !IsOpen() || IsPauseRequested())
-+        {
-             retval = false;
-             break; // are we supposed to pause, stop, etc.
-         }
- 
-         if (ret > 0)
-             break; // we have data to read :)
--        if ((-1 == ret) && (EOVERFLOW == errno))
--            break; // we have an error to handle
--
--        if ((-1 == ret) && ((EAGAIN == errno) || (EINTR  == errno)))
--            continue; // errors that tell you to try again
--        if (ret == 0)
--            continue; // timed out, try again
--
--        usleep(2500);
-+        if (ret < 0)
-+        {
-+            if ((EOVERFLOW == errno))
-+                break; // we have an error to handle
-+            if ((EAGAIN == errno) || (EINTR  == errno))
-+                continue; // errors that tell you to try again
-+            usleep(2500);
-+        }
-+        else //  ret == 0
-+        {
-+            if (++timeout_cnt > 9)
-+            {
-+                VERBOSE(VB_RECORD, LOC_ERR + "Poll giving up");
-+                QMutexLocker locker(&lock);
-+                error = true;
-+                return true;
-+            }
-+            if (timeout_cnt % 2)
-+                VERBOSE(VB_RECORD, LOC_ERR + QString("Poll timeout (%1)")
-+                        .arg(timeout_cnt));
-+        }
-     }
-     return retval;
- #endif //!USING_MINGW
-@@ -360,9 +404,9 @@
- 
-         if (++errcnt > 5)
-         {
--            lock.lock();
-+            QMutexLocker locker(&lock);
-+            VERBOSE(VB_RECORD, LOC + "Too many errors.");
-             error = true;
--            lock.unlock();
-             return false;
-         }
- 
-@@ -376,10 +420,8 @@
-             VERBOSE(VB_IMPORTANT, LOC +
-                     QString("End-Of-File? fd(%1)").arg(_stream_fd));
- 
--            lock.lock();
-+            QMutexLocker locker(&lock);
-             eof = true;
--            lock.unlock();
--
-             return false;
-         }
-         usleep(500);
diff --git a/abs/core-testing/mythtv/trunk/mythtv-svn/patches/aacdecoder.cpp.patch b/abs/core-testing/mythtv/trunk/mythtv-svn/patches/aacdecoder.cpp.patch
deleted file mode 100644
index 8796eb4..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv-svn/patches/aacdecoder.cpp.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- mythmusic/mythmusic/aacdecoder.cpp.orig	2008-11-19 12:51:48.000000000 -0500
-+++ mythmusic/mythmusic/aacdecoder.cpp	2008-11-19 12:52:42.000000000 -0500
-@@ -17,6 +17,9 @@
- #define FAAD_MODIFIED
- #endif
- 
-+// LinHES need this undefined
-+#undef FAAD_MODIFIED
-+
- // ANSI C headers
- #include <cstdlib>
- 
diff --git a/abs/core-testing/mythtv/trunk/mythtv-svn/patches/hdpvr-v4lchannel-tweak.patch b/abs/core-testing/mythtv/trunk/mythtv-svn/patches/hdpvr-v4lchannel-tweak.patch
deleted file mode 100644
index 3535310..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv-svn/patches/hdpvr-v4lchannel-tweak.patch
+++ /dev/null
@@ -1,139 +0,0 @@
-Index: libs/libmythtv/v4lchannel.h
-===================================================================
---- libs/libmythtv/v4lchannel.h	(revision 18874)
-+++ libs/libmythtv/v4lchannel.h	(working copy)
-@@ -103,6 +103,8 @@
-     VidModV4L2  videomode_v4l2; ///< Current video mode if 'usingv4l2' is true
- 
-     int         defaultFreqTable;
-+    int         prev_inputNumV4L;
-+    v4l2_std_id prev_vid_mode;
- };
- 
- #endif
-Index: libs/libmythtv/v4lchannel.cpp
-===================================================================
---- libs/libmythtv/v4lchannel.cpp	(revision 18874)
-+++ libs/libmythtv/v4lchannel.cpp	(working copy)
-@@ -40,7 +40,8 @@
-       device_name(QString::null),   driver_name(QString::null),
-       curList(NULL),                totalChannels(0),
-       currentFormat(""),            is_dtv(false),
--      usingv4l2(false),             defaultFreqTable(1)
-+      usingv4l2(false),             defaultFreqTable(1),
-+      prev_inputNumV4L(-1),         prev_vid_mode(-1)
- {
- }
- 
-@@ -795,62 +796,75 @@
-     {
-         VERBOSE(VB_CHANNEL, LOC + msg + "(v4l v2)");
- 
--        int ioctlval = ioctl(videofd, VIDIOC_S_INPUT, &inputNumV4L);
-+	int ioctlval;
-+	bool streamingDisabled = false;
-+	int  streamType = V4L2_BUF_TYPE_VIDEO_CAPTURE;
- 
--        // ConvertX (wis-go7007) requires streaming to be disabled
--        // before an input switch, do this if initial switch failed.
--        bool streamingDisabled = false;
--        int  streamType = V4L2_BUF_TYPE_VIDEO_CAPTURE;
--        if ((ioctlval < 0) && (errno == EBUSY))
-+        if (prev_inputNumV4L != inputNumV4L)
-         {
--            ioctlval = ioctl(videofd, VIDIOC_STREAMOFF, &streamType);
-+            ioctlval = ioctl(videofd, VIDIOC_S_INPUT, &inputNumV4L);
-+
-+            // ConvertX (wis-go7007) requires streaming to be disabled
-+            // before an input switch, do this if initial switch failed.
-+            if ((ioctlval < 0) && (errno == EBUSY))
-+            {
-+                ioctlval = ioctl(videofd, VIDIOC_STREAMOFF, &streamType);
-+                if (ioctlval < 0)
-+                {
-+                    VERBOSE(VB_IMPORTANT, LOC_ERR + msg +
-+                            "\n\t\t\twhile disabling streaming (v4l v2)" + ENO);
-+
-+                    ok = false;
-+                    ioctlval = 0;
-+                }
-+                else
-+                {
-+                    streamingDisabled = true;
-+
-+                    // Resend the input switch ioctl.
-+                    ioctlval = ioctl(videofd, VIDIOC_S_INPUT, &inputNumV4L);
-+                }
-+            }
-+
-             if (ioctlval < 0)
-             {
-                 VERBOSE(VB_IMPORTANT, LOC_ERR + msg +
--                        "\n\t\t\twhile disabling streaming (v4l v2)" + ENO);
-+                        "\n\t\t\twhile setting input (v4l v2)" + ENO);
- 
-                 ok = false;
--                ioctlval = 0;
-             }
--            else
--            {
--                streamingDisabled = true;
- 
--                // Resend the input switch ioctl.
--                ioctlval = ioctl(videofd, VIDIOC_S_INPUT, &inputNumV4L);
--            }
-+            prev_inputNumV4L = inputNumV4L;
-         }
- 
--        if (ioctlval < 0)
--        {
--            VERBOSE(VB_IMPORTANT, LOC_ERR + msg +
--                    "\n\t\t\twhile setting input (v4l v2)" + ENO);
--
--            ok = false;
--        }
--
-         v4l2_std_id vid_mode = format_to_mode(newFmt, 2);
--        ioctlval = ioctl(videofd, VIDIOC_S_STD, &vid_mode);
--        if (ioctlval < 0)
--        {
--            VERBOSE(VB_IMPORTANT, LOC_ERR + msg +
--                    "\n\t\t\twhile setting format (v4l v2)" + ENO);
- 
--            ok = false;
--        }
--
--        // ConvertX (wis-go7007) requires streaming to be disabled
--        // before an input switch, here we try to re-enable streaming.
--        if (streamingDisabled)
-+        if (prev_vid_mode != vid_mode)
-         {
--            ioctlval = ioctl(videofd, VIDIOC_STREAMON, &streamType);
-+            ioctlval = ioctl(videofd, VIDIOC_S_STD, &vid_mode);
-             if (ioctlval < 0)
-             {
-                 VERBOSE(VB_IMPORTANT, LOC_ERR + msg +
--                        "\n\t\t\twhile reenabling streaming (v4l v2)" + ENO);
-+                        "\n\t\t\twhile setting format (v4l v2)" + ENO);
- 
-                 ok = false;
-             }
-+
-+            // ConvertX (wis-go7007) requires streaming to be disabled
-+            // before an input switch, here we try to re-enable streaming.
-+            if (streamingDisabled)
-+            {
-+                ioctlval = ioctl(videofd, VIDIOC_STREAMON, &streamType);
-+                if (ioctlval < 0)
-+                {
-+                    VERBOSE(VB_IMPORTANT, LOC_ERR + msg +
-+                            "\n\t\t\twhile reenabling streaming (v4l v2)" +
-+                            ENO);
-+
-+                    ok = false;
-+                }
-+            }
-+            prev_vid_mode = vid_mode;
-         }
-     }
- 
diff --git a/abs/core-testing/mythtv/trunk/mythtv-svn/patches/mpegrecorder-hdpvr-v1.1.patch b/abs/core-testing/mythtv/trunk/mythtv-svn/patches/mpegrecorder-hdpvr-v1.1.patch
deleted file mode 100644
index f292b7f..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv-svn/patches/mpegrecorder-hdpvr-v1.1.patch
+++ /dev/null
@@ -1,658 +0,0 @@
-Index: libs/libmythtv/mpegrecorder.h
-===================================================================
---- libs/libmythtv/mpegrecorder.h	(revision 19056)
-+++ libs/libmythtv/mpegrecorder.h	(working copy)
-@@ -80,11 +80,13 @@
-     uint GetFilteredAudioLayer(void) const;
-     uint GetFilteredAudioBitRate(uint audio_layer) const;
- 
-+    void RestartEncoding(void);
-     bool StartEncoding(int fd);
-     bool StopEncoding(int fd);
- 
-     void ResetForNewFile(void);
- 
-+    bool WaitFor_HDPVR(void);
-     void HandleResolutionChanges(void);
- 
-     inline bool CheckCC(uint pid, uint cc);
-@@ -104,7 +106,6 @@
-     // State
-     bool recording;
-     bool encoding;
--    bool needs_resolution;
-     mutable QMutex start_stop_encoding_lock;
-     QMutex recording_wait_lock;
-     QWaitCondition recording_wait;
-@@ -113,7 +114,7 @@
-     bool cleartimeonpause;
- 
-     // Encoding info
--    int width, height;
-+    uint width, height;
-     int bitrate, maxbitrate, streamtype, aspectratio;
-     int audtype, audsamplerate, audbitratel1, audbitratel2, audbitratel3;
-     int audvolume;
-Index: libs/libmythtv/mpegrecorder.cpp
-===================================================================
---- libs/libmythtv/mpegrecorder.cpp	(revision 19056)
-+++ libs/libmythtv/mpegrecorder.cpp	(working copy)
-@@ -19,6 +19,7 @@
- #include <sys/stat.h>
- #include <sys/ioctl.h>
- #include <sys/time.h>
-+#include <sys/poll.h>
- 
- // avlib headers
- extern "C" {
-@@ -86,7 +87,7 @@
-     requires_special_pause(false),
-     // State
-     recording(false),         encoding(false),
--    needs_resolution(false),  start_stop_encoding_lock(QMutex::Recursive),
-+    start_stop_encoding_lock(QMutex::Recursive),
-     recording_wait_lock(),    recording_wait(),
-     // Pausing state
-     cleartimeonpause(false),
-@@ -487,13 +488,21 @@
- 
- bool MpegRecorder::SetFormat(int chanfd)
- {
-+    uint   idx;
-     struct v4l2_format vfmt;
-     bzero(&vfmt, sizeof(vfmt));
- 
-     vfmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
- 
--    if (ioctl(chanfd, VIDIOC_G_FMT, &vfmt) < 0)
-+    for (idx = 0; idx < 20; ++idx)
-     {
-+        if (ioctl(chanfd, VIDIOC_G_FMT, &vfmt) == 0)
-+            break;
-+        usleep(100 * 1000);
-+    }
-+
-+    if (idx == 10)
-+    {
-         VERBOSE(VB_IMPORTANT, LOC_ERR + "Error getting format" + ENO);
-         return false;
-     }
-@@ -501,8 +510,15 @@
-     vfmt.fmt.pix.width = width;
-     vfmt.fmt.pix.height = height;
- 
--    if (ioctl(chanfd, VIDIOC_S_FMT, &vfmt) < 0)
-+    for (idx = 0; idx < 20; ++idx)
-     {
-+        if (ioctl(chanfd, VIDIOC_S_FMT, &vfmt) == 0)
-+            break;
-+        usleep(100 * 1000);
-+    }
-+
-+    if (idx == 20)
-+    {
-         VERBOSE(VB_IMPORTANT, LOC_ERR + "Error setting format" + ENO);
-         return false;
-     }
-@@ -513,10 +529,19 @@
- /// Set audio language mode
- bool MpegRecorder::SetLanguageMode(int chanfd)
- {
-+    uint   idx;
-     struct v4l2_tuner vt;
-     bzero(&vt, sizeof(struct v4l2_tuner));
--    if (ioctl(chanfd, VIDIOC_G_TUNER, &vt) < 0)
-+
-+    for (idx = 0; idx < 20; ++idx)
-     {
-+        if (ioctl(chanfd, VIDIOC_G_TUNER, &vt) == 0)
-+            break;
-+        usleep(100 * 1000);
-+    }
-+
-+    if (idx == 20)
-+    {
-         VERBOSE(VB_IMPORTANT, LOC_WARN + "Unable to get audio mode" + ENO);
-         return false;
-     }
-@@ -549,8 +574,15 @@
-         success = false;
-     }
- 
--    if (ioctl(chanfd, VIDIOC_S_TUNER, &vt) < 0)
-+    for (idx = 0; idx < 20; ++idx)
-     {
-+        if (ioctl(chanfd, VIDIOC_S_TUNER, &vt) == 0)
-+            break;
-+        usleep(100 * 1000);
-+    }
-+
-+    if (idx == 20)
-+    {
-         VERBOSE(VB_IMPORTANT, LOC_WARN + "Unable to set audio mode" + ENO);
-         success = false;
-     }
-@@ -561,10 +593,19 @@
- bool MpegRecorder::SetRecordingVolume(int chanfd)
- {
-     // Get volume min/max values
-+    uint   idx;
-     struct v4l2_queryctrl qctrl;
-     qctrl.id = V4L2_CID_AUDIO_VOLUME;
--    if (ioctl(chanfd, VIDIOC_QUERYCTRL, &qctrl) < 0)
-+
-+    for (idx = 0; idx < 20; ++idx)
-     {
-+        if (ioctl(chanfd, VIDIOC_QUERYCTRL, &qctrl) == 0)
-+            break;
-+        usleep(100 * 1000);
-+    }
-+
-+    if (idx == 20)
-+    {
-         VERBOSE(VB_IMPORTANT, LOC_WARN +
-                 "Unable to get recording volume parameters(max/min)" + ENO +
-                 "\n\t\t\tusing default range [0,65535].");
-@@ -582,8 +623,15 @@
-     ctrl.id = V4L2_CID_AUDIO_VOLUME;
-     ctrl.value = ctrl_volume;
- 
--    if (ioctl(chanfd, VIDIOC_S_CTRL, &ctrl) < 0)
-+    for (idx = 0; idx < 20; ++idx)
-     {
-+        if (ioctl(chanfd, VIDIOC_S_CTRL, &ctrl) == 0)
-+            break;
-+        usleep(100 * 1000);
-+    }
-+
-+    if (idx == 20)
-+    {
-         VERBOSE(VB_IMPORTANT, LOC_WARN +
-                 "Unable to set recording volume" + ENO + "\n\t\t\t" +
-                 "If you are using an AverMedia M179 card this is normal.");
-@@ -765,6 +813,7 @@
- 
-     for (uint i = 0; i < ext_ctrls.size(); i++)
-     {
-+        uint   idx;
-         struct v4l2_ext_controls ctrls;
-         bzero(&ctrls, sizeof(struct v4l2_ext_controls));
- 
-@@ -774,8 +823,15 @@
-         ctrls.count       = 1;
-         ctrls.controls    = &ext_ctrls[i];
-             
--        if (ioctl(fd, VIDIOC_S_EXT_CTRLS, &ctrls) < 0)
-+        for (idx = 0; idx < 20; ++idx)
-         {
-+            if (ioctl(fd, VIDIOC_S_EXT_CTRLS, &ctrls) == 0)
-+                break;
-+            usleep(100 * 1000);
-+        }
-+
-+        if (idx == 20)
-+        {
-             QMutexLocker locker(&control_description_lock);
-             VERBOSE(VB_IMPORTANT, QString("mpegrecorder.cpp:set_ctrls(): ") +
-                     QString("Could not set %1 to %2")
-@@ -814,6 +870,30 @@
-     {
-         maxbitrate = high_mpeg4peakbitrate;
-         bitrate    = high_mpeg4avgbitrate;
-+
-+        // query supported audio codecs and prefer AC3
-+        uint   idx;
-+        struct v4l2_queryctrl qctrl;
-+        qctrl.id = V4L2_CID_MPEG_AUDIO_ENCODING;
-+
-+        for (idx = 0; idx < 20; ++idx)
-+        {
-+            if (ioctl(chanfd, VIDIOC_QUERYCTRL, &qctrl) == 0)
-+                break;
-+            usleep(100 * 1000);
-+        }
-+
-+        if (idx == 20)
-+        {
-+            VERBOSE(VB_IMPORTANT, LOC_WARN +
-+                    "Unable to get supported audio codecs." + ENO);
-+        }
-+        else
-+        {
-+            if (qctrl.minimum != qctrl.maximum)
-+                add_ext_ctrl(ext_ctrls, V4L2_CID_MPEG_AUDIO_ENCODING,
-+                             qctrl.maximum);
-+        }
-     }
-     maxbitrate = std::max(maxbitrate, bitrate);
- 
-@@ -837,19 +917,36 @@
-     int audioinput = audiodevice.toUInt(&ok);
-     if (ok)
-     {
-+        uint   idx;
-         struct v4l2_audio ain;
-         bzero(&ain, sizeof(ain));
-         ain.index = audioinput;
--        if (ioctl(chanfd, VIDIOC_ENUMAUDIO, &ain) < 0)
-+
-+        for (idx = 0; idx < 20; ++idx)
-         {
-+            if (ioctl(chanfd, VIDIOC_ENUMAUDIO, &ain) == 0)
-+                break;
-+            usleep(100 * 1000);
-+        }
-+
-+        if (idx == 20)
-+        {
-             VERBOSE(VB_IMPORTANT, LOC_WARN +
-                     "Unable to get audio input.");
-         }
-         else
-         {
-             ain.index = audioinput;
--            if (ioctl(chanfd, VIDIOC_S_AUDIO, &ain) < 0)
-+
-+            for (idx = 0; idx < 20; ++idx)
-             {
-+                if (ioctl(chanfd, VIDIOC_S_AUDIO, &ain) == 0)
-+                    break;
-+                usleep(100 * 1000);
-+            }
-+
-+            if (idx == 20)
-+            {
-                 VERBOSE(VB_IMPORTANT, LOC_WARN +
-                         "Unable to set audio input.");
-             }
-@@ -1036,17 +1133,26 @@
-     if (deviceIsMpegFile)
-         elapsedTimer.start();
-     else if (_device_read_buffer)
--        _device_read_buffer->Start();
-+    {
-+        VERBOSE(VB_RECORD, LOC + "Initial startup of recorder");
- 
--    needs_resolution = (driver == "hdpvr");
-+        if (StartEncoding(readfd))
-+            _device_read_buffer->Start();
-+        else
-+        {
-+            VERBOSE(VB_IMPORTANT, LOC_ERR + "Failed to start recording");
-+            recording = false;
-+            QMutexLocker locker(&recording_wait_lock);
-+            recording_wait.wakeAll();
-+            _error = true;
-+        }
-+    }
- 
-     QByteArray vdevice = videodevice.toAscii();
-     while (encoding && !_error)
-     {
-         if (PauseAndWait(100))
-             continue;
--
--        HandleResolutionChanges();
-         
-         if (deviceIsMpegFile)
-         {
-@@ -1090,35 +1196,7 @@
-             {
-                 VERBOSE(VB_IMPORTANT, LOC_ERR + "Device error detected");
- 
--                _device_read_buffer->Stop();
--
--                QMutexLocker locker(&start_stop_encoding_lock);
--
--                StopEncoding(readfd);
--
--                // Make sure the next things in the file are a PAT & PMT
--                if (_stream_data->PATSingleProgram() &&
--                    _stream_data->PMTSingleProgram())
--                {
--                    bool tmp = _wait_for_keyframe_option;
--                    _wait_for_keyframe_option = false;
--                    HandleSingleProgramPAT(_stream_data->PATSingleProgram());
--                    HandleSingleProgramPMT(_stream_data->PMTSingleProgram());
--                    _wait_for_keyframe_option = tmp;
--                }
--
--                if (StartEncoding(readfd))
--                {
--                    _device_read_buffer->Start();
--                }
--                else
--                {
--                    if (0 != close(readfd))
--                        VERBOSE(VB_IMPORTANT, LOC_ERR + "Close error" + ENO);
--                    
--                    // Force card to be reopened on next iteration..
--                    readfd = -1;
--                }
-+                RestartEncoding();
-             }
-             else if (_device_read_buffer->IsEOF())
-             {
-@@ -1216,6 +1294,8 @@
-         }
-     }
- 
-+    VERBOSE(VB_RECORD, LOC + "StartRecording finishing up");
-+
-     if (_device_read_buffer)
-     {
-         if (_device_read_buffer->IsRunning())
-@@ -1224,6 +1304,7 @@
-         delete _device_read_buffer;
-         _device_read_buffer = NULL;
-     }
-+
-     StopEncoding(readfd);
- 
-     FinishRecording();
-@@ -1373,52 +1454,95 @@
- 
-         if (!paused)
-         {
-+            VERBOSE(VB_RECORD, LOC + "PauseAndWait pause");
-+
-+            // Some drivers require streaming to be disabled before
-+            // an input switch and other channel format setting.
-+            if (requires_special_pause)
-+                StopEncoding(readfd);
-+
-             if (_device_read_buffer)
-             {
-                 QMutex drb_lock;
-                 drb_lock.lock();
--
-                 _device_read_buffer->SetRequestPause(true);
--
-                 pauseWait.wait(&drb_lock, timeout);
-             }
-             else
--            {
--                paused = true;
-                 pauseWait.wakeAll();
--            }
- 
--            // Some drivers require streaming to be disabled before
--            // an input switch and other channel format setting.
--            if (requires_special_pause)
--                StopEncoding(readfd);
--
-+            paused = true;
-             if (tvrec)
-                 tvrec->RecorderPaused();
-         }
- 
-         unpauseWait.wait(&waitlock, timeout);
-     }
--    if (!request_pause)
-+
-+    if (!request_pause && paused)
-     {
--        if (paused)
-+        VERBOSE(VB_RECORD, LOC + "PauseAndWait unpause");
-+
-+        if (driver == "hdpvr")
-         {
--            // Some drivers require streaming to be disabled before
--            // an input switch and other channel format setting.
--            if (requires_special_pause)
--                StartEncoding(readfd);
-+            m_h264_parser.Reset();
-+            _wait_for_keyframe_option = true;
-+            _seen_sps = false;
- 
--            if (_device_read_buffer)
--                _device_read_buffer->SetRequestPause(false);
-+            // Sleep any less than 1.5 seconds, and the HD-PVR will
-+            // return the old resolution, when the resolution is changing.
-+            usleep(1500 * 1000);
-+        }
- 
--            if (_stream_data)
--                _stream_data->Reset(_stream_data->DesiredProgram());
--        }
-+        // Some drivers require streaming to be disabled before
-+        // an input switch and other channel format setting.
-+        if (requires_special_pause)
-+            StartEncoding(readfd);
-+        
-+        if (_device_read_buffer)
-+            _device_read_buffer->SetRequestPause(false);
-+        
-+        if (_stream_data)
-+            _stream_data->Reset(_stream_data->DesiredProgram());
-+
-         paused = false;
-     }
-+
-     return paused;
- }
- 
-+void MpegRecorder::RestartEncoding(void)
-+{
-+    VERBOSE(VB_RECORD, LOC + "RestartEncoding");
-+
-+    _device_read_buffer->Stop();
-+    
-+    QMutexLocker locker(&start_stop_encoding_lock);
-+    
-+    StopEncoding(readfd);
-+    
-+    // Make sure the next things in the file are a PAT & PMT
-+    if (_stream_data->PATSingleProgram() &&
-+        _stream_data->PMTSingleProgram())
-+    {
-+        _wait_for_keyframe_option = false;
-+        HandleSingleProgramPAT(_stream_data->PATSingleProgram());
-+        HandleSingleProgramPMT(_stream_data->PMTSingleProgram());
-+    }
-+    
-+    if (StartEncoding(readfd))
-+    {
-+        _device_read_buffer->Start();
-+    }
-+    else
-+    {
-+        if (0 != close(readfd))
-+            VERBOSE(VB_IMPORTANT, LOC_ERR + "Close error" + ENO);
-+        
-+        readfd = -1;
-+    }
-+}
-+
- bool MpegRecorder::StartEncoding(int fd)
- {
-     QMutexLocker locker(&start_stop_encoding_lock);
-@@ -1427,13 +1551,22 @@
-     memset(&command, 0, sizeof(struct v4l2_encoder_cmd));
-     command.cmd = V4L2_ENC_CMD_START;
- 
-+    if (driver == "hdpvr")
-+        HandleResolutionChanges();
-+
-     VERBOSE(VB_RECORD, LOC + "StartEncoding");
--    needs_resolution = (driver == "hdpvr");
- 
--    for (int idx = 0; idx < 10; ++idx)
-+    for (int idx = 0; idx < 20; ++idx)
-     {
-         if (ioctl(fd, VIDIOC_ENCODER_CMD, &command) == 0)
-         {
-+            if (driver == "hdpvr")
-+            {
-+                m_h264_parser.Reset();
-+                _wait_for_keyframe_option = true;
-+                _seen_sps = false;
-+            }
-+
-             VERBOSE(VB_RECORD, LOC + "Encoding started");
-             return true;
-         }
-@@ -1444,7 +1577,7 @@
-             return false;
-         }
- 
--        usleep(250 * 1000);
-+        usleep(100 * 1000);
-     }
- 
-     VERBOSE(VB_IMPORTANT, LOC_ERR + "StartEncoding - giving up" + ENO);
-@@ -1461,9 +1594,8 @@
- 
-     VERBOSE(VB_RECORD, LOC + "StopEncoding");
- 
--    for (int idx = 0; idx < 10; ++idx)
-+    for (int idx = 0; idx < 20; ++idx)
-     {
--
-         if (ioctl(fd, VIDIOC_ENCODER_CMD, &command) == 0)
-         {
-             VERBOSE(VB_RECORD, LOC + "Encoding stopped");
-@@ -1476,7 +1608,7 @@
-             return false;
-         }
- 
--        usleep(250 * 1000);
-+        usleep(100 * 1000);
-     }
- 
-     VERBOSE(VB_IMPORTANT, LOC_ERR + "StopEncoding - giving up" + ENO);
-@@ -1544,7 +1676,7 @@
- void MpegRecorder::HandleSingleProgramPMT(ProgramMapTable *pmt)
- {
-     if (!pmt)
--{
-+    {
-         return;
-     }
- 
-@@ -1564,27 +1696,89 @@
-         DTVRecorder::BufferedWrite(*(reinterpret_cast<TSPacket*>(&buf[i])));
- }
- 
-+bool MpegRecorder::WaitFor_HDPVR(void)
-+{
-+    // After a resolution change, it can take the HD-PVR a few
-+    // seconds before it is usable again.
-+
-+    // Tell it to start encoding, then wait for it to actually feed us
-+    // some data.
-+    QMutexLocker locker(&start_stop_encoding_lock);
-+
-+    struct v4l2_encoder_cmd command;
-+    struct pollfd polls;
-+    int    idx;
-+
-+    memset(&command, 0, sizeof(struct v4l2_encoder_cmd));
-+    command.cmd = V4L2_ENC_CMD_START;
-+
-+    for (idx = 0; idx < 20; ++idx)
-+    {
-+        if (ioctl(readfd, VIDIOC_ENCODER_CMD, &command) == 0)
-+            break;
-+        usleep(100 * 1000);
-+    }
-+
-+    if (idx == 20)
-+        return false;
-+
-+    polls.fd      = readfd;
-+    polls.events  = POLLIN;
-+    polls.revents = 0;
-+
-+    for (idx = 0; idx < 10; ++idx)
-+    {
-+        if (poll(&polls, 1, 250) > 0)
-+            break;
-+    }
-+
-+    if (idx == 10)
-+        return false;
-+
-+    // HD-PVR should now be "ready"
-+    command.cmd = V4L2_ENC_CMD_STOP;
-+
-+    for (idx = 0; idx < 20; ++idx)
-+    {
-+        if (ioctl(readfd, VIDIOC_ENCODER_CMD, &command) == 0)
-+            return true;
-+        usleep(100 * 1000);
-+    }
-+
-+    return false;
-+}
-+
- void MpegRecorder::HandleResolutionChanges(void)
- {
--    if (!needs_resolution)
--        return;
--
-     VERBOSE(VB_RECORD, LOC + "Checking Resolution");
-     struct v4l2_format vfmt;
-     memset(&vfmt, 0, sizeof(vfmt));
-     vfmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-             
-+    if (driver == "hdpvr")
-+        WaitFor_HDPVR();
-+
-+    uint idx;
-     uint pix = 0;
-+
-+    for (idx = 0; idx < 20; ++idx)
-+    {
-     if (0 == ioctl(chanfd, VIDIOC_G_FMT, &vfmt))
-     {
-         VERBOSE(VB_RECORD, LOC + QString("Got Resolution %1x%2")
-                 .arg(vfmt.fmt.pix.width).arg(vfmt.fmt.pix.height));
-         pix = vfmt.fmt.pix.width * vfmt.fmt.pix.height;
--        needs_resolution = false;
-+            break;
-+        }
-+        // Typically takes 0.9 seconds after a resolution change
-+        usleep(100 * 1000);
-     }
- 
-     if (!pix)
-+    {
-+        VERBOSE(VB_RECORD, LOC + "Giving up detecting resolution");
-         return; // nothing to do, we don't have a resolution yet
-+    }
- 
-     int old_max = maxbitrate, old_avg = bitrate;
-     if (pix <= 768*568)
-@@ -1609,13 +1803,14 @@
-         if (old_max == old_avg)
-         {
-             VERBOSE(VB_RECORD, LOC +
--                    QString("Old bitrate %1 CBR").arg(old_avg));
-+                    QString("Old bitrate %1 CBR for %2x%3")
-+                    .arg(old_avg).arg(width).arg(height));
-         }
-         else
-         {
-             VERBOSE(VB_RECORD, LOC +
--                    QString("Old bitrate %1/%2 VBR")
--                    .arg(old_avg).arg(old_max));
-+                    QString("Old bitrate %1/%2 VBR for %3x%4")
-+                    .arg(old_avg).arg(old_max).arg(width).arg(height));
-         }
- 
-         if (maxbitrate == bitrate)
-@@ -1642,12 +1837,6 @@
-                      maxbitrate * 1000);
- 
-         set_ctrls(readfd, ext_ctrls);
-+
-     }
--
--    // Restart streaming. Shouldn't be needed? seems to be with current driver.
--    QMutexLocker locker(&start_stop_encoding_lock);
--    StopEncoding(readfd);
--    StartEncoding(readfd);
--
--    needs_resolution = false;
- }
diff --git a/abs/core-testing/mythtv/trunk/mythtv-svn/patches/mythcommflag-avidemux.2.patch b/abs/core-testing/mythtv/trunk/mythtv-svn/patches/mythcommflag-avidemux.2.patch
deleted file mode 100644
index d26645f..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv-svn/patches/mythcommflag-avidemux.2.patch
+++ /dev/null
@@ -1,179 +0,0 @@
-Index: programs/mythcommflag/main.cpp
-===================================================================
---- programs/mythcommflag/main.cpp	(revision 18596)
-+++ programs/mythcommflag/main.cpp	(working copy)
-@@ -300,6 +300,132 @@
-     return COMMFLAG_EXIT_NO_ERROR_WITH_NO_BREAKS;
- }
- 
-+int GetAviDemux(QString list, QString chanid, QString starttime, const QString &outputfilename)
-+{
-+    QMap<long long, int> cutlist;
-+    QMap<long long, int>::Iterator it;
-+    QString result;
-+    int startValue = 0;
-+    long long myTotalFrames;
-+    long long myFrameRate;
-+
-+    ProgramInfo *pginfo =
-+        ProgramInfo::GetProgramFromRecorded(chanid, starttime);
-+
-+    NuppelVideoPlayer* nvp = new NuppelVideoPlayer("avidemux_export", pginfo);
-+
-+    myFrameRate = (long long)(nvp->GetFrameRate() * 1000);
-+    myTotalFrames = 1000000; //nvp->GetTotalFrameCount();
-+
-+    if (!pginfo)
-+    {
-+        VERBOSE(VB_IMPORTANT,
-+                QString("No program data exists for channel %1 at %2")
-+                .arg(chanid).arg(starttime));
-+        return COMMFLAG_BUGGY_EXIT_NO_CHAN_DATA;
-+    }
-+
-+    QString filename = pginfo->GetPlaybackURL(TRUE);
-+
-+    if (list == "cutlist")
-+        pginfo->GetCutList(cutlist);
-+    else
-+        pginfo->GetCommBreakList(cutlist);
-+
-+// Formatting of output data
-+
-+    for (it = cutlist.begin(); it != cutlist.end(); ++it)
-+    {
-+        if ((it.key() == 0) && (startValue == 0)) // Cutlist starts on first frame,
-+            {
-+            ++it;
-+            startValue = it.key();
-+            }
-+
-+        if ((it.key() != 0) && (startValue == 0)) // Cutlist starts on non-first frame
-+            {
-+            result += QString("app.addSegment(0,0,%1);").arg(it.key());  
-+            startValue = it.key();
-+            }
-+        else
-+           {
-+            if  ((*it == MARK_COMM_END) && (startValue != 0) ||
-+                (*it == MARK_CUT_END) && (startValue != 0))
-+                {
-+                 if (result != "")
-+                       result += "\n";
-+                       startValue = it.key();
-+                       result += QString("app.addSegment(0,%1,").arg(it.key()); // Value is a start value
-+                }
-+            else  
-+                {
-+                    result += QString("%1);").arg(it.key() - startValue); // Value is an end value
-+                }
-+           }
-+   }
-+
-+if (it.key() != myTotalFrames)
-+    {
-+        result += QString("%1);").arg(myTotalFrames);
-+    }
-+
-+// Governs the file output:
-+
-+    QString tmp = "";
-+    ostream *out = &cout;
-+
-+    if (outputfilename != "-"){
-+        QByteArray tmp = outputfilename.toLocal8Bit();
-+        out = new fstream(tmp.constData(), ios::app | ios::out );
-+        }
-+
-+    if (outputfilename == ""){
-+        VERBOSE(VB_IMPORTANT,
-+           QString("Error: AVIDemux output requires the use of the --outputfile option."));
-+           return COMMFLAG_EXIT_INVALID_CMDLINE;
-+        }
-+
-+        tmp = QString("//AD  <- Needed to identify//\n"
-+                        "//--automatically built--\n"
-+                        "//--Project:\n\n"
-+                        "var app = new Avidemux();\n\n"
-+                        "//** Video **\n"
-+                        "// 01 videos source\n" 
-+                        "app.load(\"%1\");\n\n"
-+                        "app.clearSegments();\n\n"
-+                        "%2\n"
-+                        "app.markerA=0;\n"
-+                        "app.markerB=%3;\n"
-+                        "app.rebuildIndex();\n\n"
-+                        "//** Postproc **\n"
-+                        "app.video.setPostProc(3,3,0);\n\n"
-+                        "app.video.setFps1000(%4);\n\n"
-+                        "//** Filters **\n\n"
-+                        "//** Video Codec conf **\n"
-+                        "app.video.codec(\"Copy\",\"CQ=4\",\"0 \");\n\n"
-+                        "//** Audio **\n"
-+                        "app.audio.reset();\n"
-+                        "app.audio.codec(\"copy\",128,0,\"\");\n"
-+                        "app.audio.normalizeMode=0;\n"
-+                        "app.audio.normalizeValue=0;\n"
-+                        "app.audio.delay=0;\n"
-+                        "app.audio.mixer(\"NONE\");\n"
-+                        "app.setContainer(\"AVI\");\n"
-+                        "setSuccess(1);\n"
-+                        "//app.Exit();\n\n"
-+                        "//End of script\n").arg(filename).arg(result).arg(myTotalFrames).arg(myFrameRate).toLocal8Bit().constData();
-+
-+        const QByteArray tmp2 = tmp.toLocal8Bit();
-+        *out << tmp2.constData() << endl;
-+
-+        VERBOSE(VB_IMPORTANT,
-+                QString("AVIDemux Project generated for %1 at %2 with filename %3.")
-+                .arg(chanid).arg(starttime).arg(outputfilename));
-+
-+    return COMMFLAG_EXIT_NO_ERROR_WITH_NO_BREAKS;
-+}
-+
-+
- void streamOutCommercialBreakList(
-     ostream &output, const QMap<long long, int> &commercialBreakList)
- {
-@@ -811,6 +937,8 @@
-     bool clearCutlist = false;
-     bool getCutlist = false;
-     bool getSkipList = false;
-+    bool getAviDemuxCutlist = false;
-+    bool getAviDemuxSkiplist = false;
-     QString newCutList = QString::null;
-     QMap<QString, QString> settingsOverride;
- 
-@@ -960,6 +1088,10 @@
-             getCutlist = true;
-         else if (!strcmp(a.argv()[argpos], "--getskiplist"))
-             getSkipList = true;
-+        else if (!strcmp(a.argv()[argpos], "--getcutlist-avidemux"))
-+            getAviDemuxCutlist = true;
-+        else if (!strcmp(a.argv()[argpos], "--getskiplist-avidemux"))
-+            getAviDemuxSkiplist = true;
-         else if (!strcmp(a.argv()[argpos], "--setcutlist"))
-             newCutList = (a.argv()[++argpos]);
-         else if (!strcmp(a.argv()[argpos], "-j"))
-@@ -1111,6 +1243,8 @@
-                     "                             #-#[,#-#]...  (ie, 1-100,1520-3012,4091-5094\n"
-                     "--getcutlist                 Display the current cutlist\n"
-                     "--getskiplist                Display the current Commercial Skip list\n"
-+                    "--getcutlist-avidemux        Export cutlist as AVIDemux Project File\n"
-+                    "--getskiplist-avidemux       Export skiplist as AVIDemux Project File\n"
-                     "-v or --verbose debug-level  Use '-v help' for level info\n"
-                     "--queue                      Insert flagging job into the JobQueue rather than\n"
-                     "                             running flagging in the foreground\n"
-@@ -1223,6 +1357,12 @@
-     if (!newCutList.isNull())
-         return SetCutList(chanid, starttime, newCutList);
- 
-+    if (getAviDemuxCutlist)
-+        return GetAviDemux("cutlist", chanid, starttime, outputfilename);
-+
-+    if (getAviDemuxSkiplist)
-+        return GetAviDemux("commflag", chanid, starttime, outputfilename);
-+
-     if (getCutlist)
-         return GetMarkupList("cutlist", chanid, starttime);
- 
diff --git a/abs/core-testing/mythtv/trunk/mythtv-svn/smolt_jump.patch b/abs/core-testing/mythtv/trunk/mythtv-svn/smolt_jump.patch
deleted file mode 100644
index 0fc452a..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv-svn/smolt_jump.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Index: programs/mythfrontend/networkcontrol.cpp
-===================================================================
---- programs/mythfrontend/networkcontrol.cpp	(revision 19291)
-+++ programs/mythfrontend/networkcontrol.cpp	(working copy)
-@@ -83,6 +83,7 @@
-     jumpMap["zoneminderliveview"]    = "ZoneMinder Live View";
-     jumpMap["zoneminderevents"]      = "ZoneMinder Events";
-     jumpMap["snapshot"]              = "ScreenShot";
-+    jumpMap["mythsmolt"]             = "MythSmolt";
- 
-     // These jump point names match the (lowercased) locations from gContext
-     jumpMap["channelrecpriority"]    = "Channel Recording Priorities";
-@@ -191,7 +192,7 @@
-     pthread_create(&command_thread, NULL, CommandThread, this);
- 
-     gContext->addListener(this);
--    
-+
-     connect(this, SIGNAL(newConnection()), this, SLOT(newConnection()));
- }
- 
-@@ -307,7 +308,7 @@
-         cs = new QTextStream(s);
-         cs->setCodec("UTF-8");
-     }
--    
-+
-     if (client)
-     {
-         closedOldConn = true;
diff --git a/abs/core-testing/mythtv/trunk/mythtv-svn/svn_main_menu_popup.patch b/abs/core-testing/mythtv/trunk/mythtv-svn/svn_main_menu_popup.patch
deleted file mode 100644
index 5556683..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv-svn/svn_main_menu_popup.patch
+++ /dev/null
@@ -1,211 +0,0 @@
-Index: libs/libmythui/myththemedmenu.h
-===================================================================
---- libs/libmythui/myththemedmenu.h	(revision 19291)
-+++ libs/libmythui/myththemedmenu.h	(working copy)
-@@ -2,6 +2,7 @@
- #define MYTHTHEMEDMENU_H_
- 
- #include "mythscreentype.h"
-+#include "mythdialogbox.h"
- #include "mythuistatetype.h"
- #include "mythuibuttonlist.h"
- #include "xmlparsebase.h"
-@@ -77,6 +78,11 @@
-     void ReloadExitKey(void);
-     virtual void aboutToShow(void);
- 
-+    void doMenu();
-+    void aboutScreen();
-+    MythDialogBox *m_menuPopup;
-+    void customEvent(QEvent *event);
-+
-   protected:
-     virtual bool keyPressEvent(QKeyEvent *e);
- 
-Index: libs/libmythui/myththemedmenu.cpp
-===================================================================
---- libs/libmythui/myththemedmenu.cpp	(revision 19291)
-+++ libs/libmythui/myththemedmenu.cpp	(working copy)
-@@ -32,6 +32,7 @@
-     m_callbackdata = NULL;
- 
-     m_killable = false;
-+
- }
- 
- MythThemedMenuState::~MythThemedMenuState()
-@@ -95,7 +96,7 @@
-     m_exitModifier = -1;
-     m_menumode = "";
-     m_buttonList = NULL;
--
-+    m_menuPopup = NULL;
-     if (!m_state)
-     {
-         m_state = new MythThemedMenuState(parent, "themedmenustate");
-@@ -271,6 +272,10 @@
-                 m_wantpop = true;
-             }
-         }
-+        else if (action == "MENU")
-+        {
-+            doMenu();
-+        }
-         else
-             handled = false;
-     }
-@@ -292,6 +297,154 @@
-     updateLCD();
- }
- 
-+void MythThemedMenu::doMenu()
-+{
-+
-+    if (m_menuPopup)
-+        return;
-+    int allowsd =  GetMythDB()->GetNumSetting("AllowQuitShutdown");
-+    int override_menu = GetMythDB()->GetNumSetting("OverRideExitMenu");
-+    QString label = "System Menu";
-+    MythScreenStack *mainStack = GetMythMainWindow()->GetMainStack();
-+    m_menuPopup = new MythDialogBox(label, mainStack, "menuPopup");
-+    if (m_menuPopup->Create())
-+        mainStack->AddScreen(m_menuPopup);
-+    if ( override_menu == 0 )
-+    {
-+        if ( allowsd != 0 && allowsd !=4  )
-+        {
-+            m_menuPopup->SetReturnEvent(this,"popmenu_exit");
-+            m_menuPopup->AddButton("Shutdown");
-+            m_menuPopup->AddButton("Reboot");
-+        }
-+        else
-+        {
-+            m_menuPopup->SetReturnEvent(this,"popmenu_noexit");
-+        }
-+    }
-+    if ( override_menu == 5 )
-+    { // reboot
-+        m_menuPopup->SetReturnEvent(this,"popmenu_reboot");
-+        m_menuPopup->AddButton("Reboot");
-+    }
-+    else if ( override_menu == 2 || override_menu == 4 )
-+    { // shutdown
-+            m_menuPopup->SetReturnEvent(this,"popmenu_shutdown");
-+            m_menuPopup->AddButton("Shutdown");
-+    }
-+    else if ( override_menu == 3 || override_menu == 6 )
-+    { //    both
-+        m_menuPopup->SetReturnEvent(this,"popmenu_exit");
-+        m_menuPopup->AddButton("Shutdown");
-+        m_menuPopup->AddButton("Reboot");
-+    }
-+    else
-+    {
-+        m_menuPopup->SetReturnEvent(this,"popmenu_noexit");
-+    }
-+
-+    m_menuPopup->AddButton("About");
-+    m_menuPopup->AddButton("Cancel");
-+
-+}
-+void MythThemedMenu::aboutScreen()
-+{
-+
-+    extern const char *myth_source_version;
-+    extern const char *myth_source_path;
-+    QString distro_line;
-+    distro_line="";
-+
-+    QFile file("/etc/os_myth_release");
-+    if ( file.open(QFile::ReadOnly))
-+    {
-+        QTextStream t( &file );        // use a text stream
-+        distro_line = t.readLine();
-+        file.close();
-+    }
-+
-+    QString label = "";
-+    label.append(QObject::tr("Revision: ") + myth_source_version   + "  \n  Branch:" +  myth_source_path  + "\n" + distro_line );
-+
-+    MythScreenStack *mainStack = GetMythMainWindow()->GetMainStack();
-+    m_menuPopup = new MythDialogBox(label, mainStack, "About");
-+    if (m_menuPopup->Create())
-+        mainStack->AddScreen(m_menuPopup);
-+
-+    m_menuPopup->SetReturnEvent(this,"About");
-+    m_menuPopup->AddButton("OK!");
-+
-+}
-+
-+void MythThemedMenu::customEvent(QEvent *event)
-+{
-+    if (event->type() == kMythDialogBoxCompletionEventType)
-+    {
-+        DialogCompletionEvent *dce =
-+                dynamic_cast<DialogCompletionEvent*>(event);
-+        QString resultid= dce->GetId();
-+        int buttonnum  = dce->GetResult();
-+        QString halt_cmd=GetMythDB()->GetSetting("HaltCommand");
-+        QString reboot_cmd=GetMythDB()->GetSetting("RebootCommand");
-+
-+        if (resultid == "popmenu_exit")
-+        {
-+            if (buttonnum == 0)
-+            {
-+                if (!halt_cmd.isEmpty() )
-+                    system(halt_cmd.toAscii());
-+            }
-+
-+            if (buttonnum == 1)
-+            {
-+                if (!reboot_cmd.isEmpty() )
-+                    system(reboot_cmd.toAscii());
-+            }
-+
-+            if (buttonnum == 2)
-+            {
-+                aboutScreen();
-+            }
-+        }
-+
-+        if (resultid == "popmenu_noexit")
-+        {
-+            if (buttonnum == 0)
-+                aboutScreen();
-+        }
-+
-+        if (resultid == "popmenu_reboot")
-+        {
-+            if (buttonnum == 0)
-+            {
-+                if (!reboot_cmd.isEmpty() )
-+                    system(reboot_cmd.toAscii());
-+            }
-+
-+            if (buttonnum == 1)
-+            {
-+                aboutScreen();
-+            }
-+        }
-+
-+        if (resultid == "popmenu_shutdown")
-+        {
-+            if (buttonnum == 0)
-+            {
-+                if (!halt_cmd.isEmpty() )
-+                    system(halt_cmd.toAscii());
-+            }
-+
-+            if (buttonnum == 1)
-+            {
-+                aboutScreen();
-+            }
-+        }
-+
-+        m_menuPopup = NULL;
-+    }
-+}
-+
- /** \brief Parses the element's tags and set the ThemeButton's type,
-  *         text, depends, and action, then adds the button.
-  *
diff --git a/abs/core-testing/mythtv/trunk/mythtv-themes/PKGBUILD b/abs/core-testing/mythtv/trunk/mythtv-themes/PKGBUILD
deleted file mode 100755
index 8cd0d04..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv-themes/PKGBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-pkgname=mythv-themes-svn
-pkgver=15924                           
-pkgrel=4
-pkgdesc="themes for mythtv" 
-url="http://www.mythtv.org" 
-license="GPL" 
-depends=( ) 
-#makedepends=('sqlite3' 'sed') 
-conflicts=() 
-replaces=() 
-backup=() 
-#install='mythtv.install' 
-source=() 
-arch=('i686')
-md5sums=() 
-_svntrunk=http://cvs.mythtv.org/svn/trunk/myththemes
-_svnmod=myththemes
-
-build() { 
-echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-#svn co http://cvs.mythtv.org/svn/trunk/mythtv
-#svn co http://cvs.mythtv.org/svn/trunk/mythplugins
-#svn co http://cvs.mythtv.org/svn/trunk/myththemes
-cd $startdir/src/myththemes
-   make distclean
-    ./configure  
-    #./configure --disable-all --enable-mythweather --enable-fftw --disable-aac  
-   make  || return 1
-   make INSTALL_ROOT=$startdir/pkg install
-#   cd $startdir/src/$pkgname
-#   cd mythmovietime
-#   make || return 1
-#   make INSTALL_ROOT=$startdir/pkg install
-
-}
diff --git a/abs/core-testing/mythtv/trunk/mythtv/DeviceReadBuffer-polltimeout.2.patch b/abs/core-testing/mythtv/trunk/mythtv/DeviceReadBuffer-polltimeout.2.patch
new file mode 100644
index 0000000..5bb713f
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/DeviceReadBuffer-polltimeout.2.patch
@@ -0,0 +1,219 @@
+Index: libs/libmythtv/DeviceReadBuffer.h
+===================================================================
+--- libs/libmythtv/DeviceReadBuffer.h	(revision 18515)
++++ libs/libmythtv/DeviceReadBuffer.h	(working copy)
+@@ -59,7 +59,7 @@
+     void IncrReadPointer(uint len);
+ 
+     bool HandlePausing(void);
+-    bool Poll(void) const;
++    bool Poll(void);
+     uint WaitForUnused(uint bytes_needed) const;
+     uint WaitForUsed  (uint bytes_needed) const;
+ 
+Index: libs/libmythtv/DeviceReadBuffer.cpp
+===================================================================
+--- libs/libmythtv/DeviceReadBuffer.cpp	(revision 18515)
++++ libs/libmythtv/DeviceReadBuffer.cpp	(working copy)
+@@ -90,9 +90,14 @@
+ 
+ void DeviceReadBuffer::Start(void)
+ {
+-    lock.lock();
+-    bool was_running = running;
+-    lock.unlock();
++    bool was_running;
++
++    {
++        QMutexLocker locker(&lock);
++        was_running = running;
++        error = false;
++    }
++
+     if (was_running)
+     {
+         VERBOSE(VB_IMPORTANT, LOC_ERR + "Start(): Already running.");
+@@ -104,6 +109,8 @@
+     {
+         VERBOSE(VB_IMPORTANT,
+                 LOC_ERR + QString("Start(): pthread_create failed.") + ENO);
++
++        QMutexLocker locker(&lock);
+         error = true;
+     }
+ }
+@@ -118,21 +125,25 @@
+     used          = 0;
+     readPtr       = buffer;
+     writePtr      = buffer;
++
++    error         = false;
+ }
+ 
+ void DeviceReadBuffer::Stop(void)
+ {
+     bool was_running = IsRunning();
+-    lock.lock();
+-    run = false;
+-    lock.unlock();
+ 
+     if (!was_running)
+     {
+-        VERBOSE(VB_IMPORTANT, LOC_ERR + "Stop(): Not running.");
++        VERBOSE(VB_IMPORTANT, LOC + "Stop(): Not running.");
+         return;
+     }
+ 
++    {
++        QMutexLocker locker(&lock);
++        run = false;
++    }
++
+     pthread_join(thread, NULL);
+ }
+ 
+@@ -229,10 +240,11 @@
+ {
+     uint      errcnt = 0;
+ 
+-    lock.lock();
+-    run     = true;
+-    running = true;
+-    lock.unlock();
++    {
++        QMutexLocker locker(&lock);
++        run     = true;
++        running = true;
++    }
+ 
+     while (run)
+     {
+@@ -248,6 +260,15 @@
+         if (using_poll && !Poll())
+             continue;
+ 
++        {
++            QMutexLocker locker(&lock);
++            if (error)
++            {
++                VERBOSE(VB_RECORD, LOC + "fill_ringbuffer: error state");
++                break;
++            }
++        }
++
+         // Limit read size for faster return from read
+         size_t read_size =
+             min(dev_read_size, (size_t) WaitForUnused(TSPacket::SIZE));
+@@ -268,9 +289,10 @@
+         }
+     }
+ 
+-    lock.lock();
+-    running = false;
+-    lock.unlock();
++    {
++        QMutexLocker locker(&lock);
++        running = false;
++    }
+ }
+ 
+ bool DeviceReadBuffer::HandlePausing(void)
+@@ -293,7 +315,7 @@
+     return true;
+ }
+ 
+-bool DeviceReadBuffer::Poll(void) const
++bool DeviceReadBuffer::Poll(void)
+ {
+ #ifdef USING_MINGW
+ #warning mingw DeviceReadBuffer::Poll
+@@ -302,31 +324,53 @@
+     return false;
+ #else
+     bool retval = true;
+-    while (true)
++    uint timeout_cnt = 0;
++
++    for (;;)
+     {
+         struct pollfd polls;
+         polls.fd      = _stream_fd;
+         polls.events  = POLLIN;
+         polls.revents = 0;
+ 
+-        int ret = poll(&polls, 1 /*number of polls*/, 10 /*msec*/);
+-        if (IsPauseRequested() || !IsOpen() || !run)
++        int ret = poll(&polls, 1 /*number of polls*/, 250 /*msec*/);
++
++        if (polls.revents & (POLLERR | POLLHUP | POLLNVAL))
+         {
++            VERBOSE(VB_IMPORTANT, LOC + "poll error");
++            error = true;
++            return true;
++        }
++
++        if (!run || !IsOpen() || IsPauseRequested())
++        {
+             retval = false;
+             break; // are we supposed to pause, stop, etc.
+         }
+ 
+         if (ret > 0)
+             break; // we have data to read :)
+-        if ((-1 == ret) && (EOVERFLOW == errno))
+-            break; // we have an error to handle
+-
+-        if ((-1 == ret) && ((EAGAIN == errno) || (EINTR  == errno)))
+-            continue; // errors that tell you to try again
+-        if (ret == 0)
+-            continue; // timed out, try again
+-
+-        usleep(2500);
++        if (ret < 0)
++        {
++            if ((EOVERFLOW == errno))
++                break; // we have an error to handle
++            if ((EAGAIN == errno) || (EINTR  == errno))
++                continue; // errors that tell you to try again
++            usleep(2500);
++        }
++        else //  ret == 0
++        {
++            if (++timeout_cnt > 9)
++            {
++                VERBOSE(VB_RECORD, LOC_ERR + "Poll giving up");
++                QMutexLocker locker(&lock);
++                error = true;
++                return true;
++            }
++            if (timeout_cnt % 2)
++                VERBOSE(VB_RECORD, LOC_ERR + QString("Poll timeout (%1)")
++                        .arg(timeout_cnt));
++        }
+     }
+     return retval;
+ #endif //!USING_MINGW
+@@ -360,9 +404,9 @@
+ 
+         if (++errcnt > 5)
+         {
+-            lock.lock();
++            QMutexLocker locker(&lock);
++            VERBOSE(VB_RECORD, LOC + "Too many errors.");
+             error = true;
+-            lock.unlock();
+             return false;
+         }
+ 
+@@ -376,10 +420,8 @@
+             VERBOSE(VB_IMPORTANT, LOC +
+                     QString("End-Of-File? fd(%1)").arg(_stream_fd));
+ 
+-            lock.lock();
++            QMutexLocker locker(&lock);
+             eof = true;
+-            lock.unlock();
+-
+             return false;
+         }
+         usleep(500);
diff --git a/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD b/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD
new file mode 100755
index 0000000..d5560bd
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD
@@ -0,0 +1,76 @@
+pkgname=mythtv-svn
+pkgver=19295
+pkgrel=1
+pkgdesc="A personal video recorder for Linux"
+url="http://www.mythtv.org"
+license="GPL"
+depends=('lame' 'libmysqlclient' 'alsa-lib'  'wget' 'qt' 'x-server' 'freetype2' 'libmpeg2' 'libxml2' 'libraw1394' 'lirc' 'perl-date-manip' 'libavc1394' 'libdc1394' 'libiec61883')
+makedepends=('subversion')
+conflicts=(mythtv)
+replaces=()
+backup=()
+options=(!strip)
+MAKEFLAGS="-j6"
+install='mythtv.install'
+
+patchs=('svn_main_menu_popup.patch' 'smolt_jump.patch' 'DeviceReadBuffer-polltimeout.2.patch' 'mpegrecorder-hdpvr-v2a.patch' 'hdpvr-livetv.patch')
+source=('mythbackend' 'myth.sh' `echo ${patchs[@]:0}` )
+arch=('i686')
+md5sums=()
+
+_svntrunk=http://cvs.mythtv.org/svn/trunk/mythtv
+_svnmod=mythtv
+
+build() {
+
+#	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+	svn co $_svntrunk $_svnmod
+	cd $startdir/src/mythtv
+
+	echo "--------------------------applying patches----------------------------------------------------"
+	for i in `echo ${patchs[@]:0} `
+	do
+		echo applying $i
+		echo "-----------------------------"
+		patch -Np0  -i ${startdir}/src/$i  #|| return 1
+	done
+	echo "--------------------------done applying patches-----------------------------------------------"
+
+	sed -i -e "s/\`(svnversion \$\${SVNTREEDIR} 2>\/dev\/null) || echo Unknown\`/$pkgver/" version.pro
+	make distclean
+
+	# configure
+	./configure --prefix=/usr --cpu=${ARCH} \
+	--enable-vdpau --enable-xvmc --enable-xvmc-pro \
+	--enable-opengl-vsync --enable-libfaad --enable-dvb --enable-firewire \
+	--compile-type=release --with-bindings=perl,python \
+	--enable-audio-alsa --disable-audio-jack --disable-audio-arts || return 1
+
+	# build and install
+	. /etc/profile
+	make || return 1
+	make INSTALL_ROOT=$startdir/pkg install || return 1
+    
+	# install db schema, scripts and docs
+	install -m0644 database/mc.sql $startdir/pkg/usr/share/mythtv/ || return 1
+	install -D -m0755 ../mythbackend $startdir/pkg/etc/rc.d/mythbackend || return 1
+	cp -r docs $startdir/pkg/usr/share/mythtv/ || return 1
+	# cp ../QUICKSTART.archlinux $startdir/pkg/usr/share/mythtv/ || return 1
+
+	# install contrib
+	mkdir -p $startdir/pkg/usr/share/mythtv/contrib || return 1
+	install -m0755 contrib/* $startdir/pkg/usr/share/mythtv/contrib
+
+	# patch the xml LinHES style
+	cp -r $startdir/menu-xml/*.xml $startdir/pkg/usr/share/mythtv
+	cd $startdir/pkg/usr/share/mythtv
+	patch -p0 < $startdir/menu-xml/mainmenu.xml.patch
+	patch -p0 < $startdir/menu-xml/optical_menu.xml.patch
+	patch -p0 < $startdir/menu-xml/library.xml.patch
+	patch -p0 < $startdir/menu-xml/util_menu.xml.patch
+
+	# make log dir
+	mkdir -p $startdir/pkg/var/log/mythtv
+	chown 1000.1000 $startdir/pkg/var/log/mythtv
+
+}
diff --git a/abs/core-testing/mythtv/trunk/mythtv/aacdecoder.cpp.patch b/abs/core-testing/mythtv/trunk/mythtv/aacdecoder.cpp.patch
new file mode 100644
index 0000000..8796eb4
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/aacdecoder.cpp.patch
@@ -0,0 +1,12 @@
+--- mythmusic/mythmusic/aacdecoder.cpp.orig	2008-11-19 12:51:48.000000000 -0500
++++ mythmusic/mythmusic/aacdecoder.cpp	2008-11-19 12:52:42.000000000 -0500
+@@ -17,6 +17,9 @@
+ #define FAAD_MODIFIED
+ #endif
+ 
++// LinHES need this undefined
++#undef FAAD_MODIFIED
++
+ // ANSI C headers
+ #include <cstdlib>
+ 
diff --git a/abs/core-testing/mythtv/trunk/mythtv/compile_mythtv.sh b/abs/core-testing/mythtv/trunk/mythtv/compile_mythtv.sh
new file mode 100755
index 0000000..ca457e3
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/compile_mythtv.sh
@@ -0,0 +1,99 @@
+#!/bin/bash
+# compile_mythtv.sh
+# rev 0.5 - 1Nov2008
+#
+# This script will compile and install MythTV
+#
+
+PKG_MAINTAINER=nharris@eoimaging.com
+echo PKG_MAINTAINER is set to $PKG_MAINTAINER
+
+PKG_VER=0.22-svn`date +%Y%m%d`
+echo PKG_VER is set to $PKG_VER
+
+cd src/mythtv-trunk
+
+#
+# compile mythtv
+#
+echo Compiling mythtv
+cd mythtv
+export QTDIR=/usr/share/qt
+./configure --enable-opengl-vsync --cpu=i686 --enable-vdpau --enable-opengl-vsync --enable-libfaad --prefix=/usr
+#./configure --cpu=i686 --enable-dvb --enable-xvmc --enable-opengl-vsync --enable-xvmc-pro --enable-libfaad --prefix=/usr
+qmake mythtv.pro
+make || return 1
+
+#
+# install mythtv
+#
+#echo "MythTV 0.22 SVN build" > description-pak
+#checkinstall -D --default --pkgname mythtv --pkgversion $PKG_VER --maintainer $PKG_MAINTAINER
+#mv myth*.deb ../..
+sudo make install
+cd ..
+
+#
+# compile mythplugins
+#
+echo Compiling mythplugings
+cd mythplugins
+./configure --enable-all --cpu=i686 --prefix=/usr
+qmake mythplugins.pro
+make || return 1
+
+#
+# install mythplugins
+#
+#echo "MythTV 0.22 SVN build" > description-pak
+#checkinstall -D --default --pkgname mythplugins --pkgversion $PKG_VER --maintainer $PKG_MAINTAINER
+#mv myth*.deb ../..
+sudo make install
+cd ..
+
+#
+# compile myththemes
+#
+echo Compiling myththemes
+cd myththemes
+./configure --prefix=/usr
+qmake myththemes.pro
+make || return 1
+
+#
+# install myththemes
+#
+#echo "MythTV 0.22 SVN build" > description-pak
+#checkinstall -D --default --pkgname myththemes --pkgversion $PKG_VER --maintainer $PKG_MAINTAINER
+#mv myth*.deb ../..
+sudo make install
+cd ..
+
+#
+# compile additional themes
+#
+echo Compiling additional themes
+cd themes
+./configure --prefix=/usr
+qmake themes.pro
+make || return 1
+
+#
+# install additional themes
+#
+#echo "MythTV 0.22 SVN build" > description-pak
+#checkinstall -D --default --pkgname mythtv-themes --pkgversion $PKG_VER --maintainer $PKG_MAINTAINER
+#mv myth*.deb ../..
+sudo make install
+cd ..
+
+#
+# update mythweb
+#
+cd mythplugins/mythweb
+sudo cp -R * /data/srv/httpd/htdocs/mythweb
+sudo chown -R http:users /data/srv/httpd/htdocs/mythweb
+cd ../..
+
+echo "DONE!"
+
diff --git a/abs/core-testing/mythtv/trunk/mythtv/get_mythtv.sh b/abs/core-testing/mythtv/trunk/mythtv/get_mythtv.sh
new file mode 100755
index 0000000..c01ccf1
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/get_mythtv.sh
@@ -0,0 +1,77 @@
+#!/bin/bash
+# get_mythtv.sh
+# rev 0.5 - 1Nov2008
+BUILD_DIR=/home/nharris/mythtv
+
+cd $BUILD_DIR
+
+#
+# get the latest from SVN
+#
+if [ -d src ]
+then
+	cd src
+else
+	mkdir src
+	cd src
+fi
+
+if [ -d mythtv-trunk ]
+then
+	echo Updating mythtv from svn.
+	cd mythtv-trunk
+	cd mythtv
+	svn update
+	make clean
+	cd ../mythplugins
+	svn update
+	make clean
+	cd ../myththemes
+	svn update
+	make clean
+	cd ../themes
+	svn update
+	make clean
+	cd ..
+else
+	echo Creating mythtv from svn.
+	mkdir mythtv-trunk
+	cd mythtv-trunk
+	svn co http://svn.mythtv.org/svn/trunk/mythtv
+	svn co http://svn.mythtv.org/svn/trunk/mythplugins
+	svn co http://svn.mythtv.org/svn/trunk/myththemes
+	svn co http://svn.mythtv.org/svn/trunk/themes
+fi
+
+#
+# install patches
+#
+MYTH_PATCHES=$BUILD_DIR/patches
+cd $BUILD_DIR/src/mythtv-trunk/mythtv
+
+# HD-PVR support
+patch -p0 < $MYTH_PATCHES/DeviceReadBuffer-polltimeout.2.patch
+patch -p0 < $MYTH_PATCHES/mpegrecorder-hdpvr-v2a.patch
+patch -p0 < $MYTH_PATCHES/hdpvr-livetv.patch
+
+# LinHES popup menu
+patch -p0 < $MYTH_PATCHES/svn_main_menu_popup.patch
+
+# Arch build fix
+cd $BUILD_DIR/src/mythtv-trunk/mythplugins
+patch -p0 < $MYTH_PATCHES/aacdecoder.cpp.patch
+
+# Patch the xml LinHES style
+MENU_DIR=$BUILD_DIR/menu-xml
+MYTH_DIR=$BUILD_DIR/src/mythtv-trunk/mythtv/programs/mythfrontend
+cp $MENU_DIR/*.xml $MYTH_DIR
+cd $MYTH_DIR
+patch -p0 < $MENU_DIR/mainmenu.xml.patch
+patch -p0 < $MENU_DIR/optical_menu.xml.patch
+patch -p0 < $MENU_DIR/library.xml.patch
+
+#
+# END
+#
+cd $BUILD_DIR
+echo "DONE!"
diff --git a/abs/core-testing/mythtv/trunk/mythtv/hdpvr-livetv.patch b/abs/core-testing/mythtv/trunk/mythtv/hdpvr-livetv.patch
new file mode 100644
index 0000000..6297ae1
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/hdpvr-livetv.patch
@@ -0,0 +1,109 @@
+Index: libs/libmythtv/mpegrecorder.cpp
+===================================================================
+--- libs/libmythtv/mpegrecorder.cpp.orig
++++ libs/libmythtv/mpegrecorder.cpp
+@@ -1109,6 +1109,14 @@ void MpegRecorder::StartRecording(void)
+ 
+     if (driver == "hdpvr")
+     {
++        if (curRecording->recgroup == "LiveTV")
++        {
++            // Don't bother checking resolution, always use best bitrate
++            int maxbitrate = std::max(high_mpeg4peakbitrate,
++                                      high_mpeg4avgbitrate);
++            SetBitrate(high_mpeg4avgbitrate, maxbitrate, "LiveTV");
++        }
++
+         int progNum = 1;
+         MPEGStreamData *sd = new MPEGStreamData(progNum, true);
+         sd->SetRecordingType(_recording_type);
+@@ -1553,7 +1561,7 @@ bool MpegRecorder::StartEncoding(int fd)
+     memset(&command, 0, sizeof(struct v4l2_encoder_cmd));
+     command.cmd = V4L2_ENC_CMD_START;
+ 
+-    if (driver == "hdpvr")
++    if (driver == "hdpvr" && curRecording->recgroup != "LiveTV")
+         HandleResolutionChanges();
+ 
+     VERBOSE(VB_RECORD, LOC + "StartEncoding");
+@@ -1755,6 +1763,35 @@ bool MpegRecorder::WaitFor_HDPVR(void)
+     return false;
+ }
+ 
++void MpegRecorder::SetBitrate(int bitrate, int maxbitrate,
++                              const QString & reason)
++{
++    if (maxbitrate == bitrate)
++    {
++        VERBOSE(VB_RECORD, LOC + QString("%1 bitrate %2 kbps CBR")
++                .arg(reason).arg(bitrate));
++    }
++    else
++    {
++        VERBOSE(VB_RECORD, LOC + QString("%1 bitrate %2/%3 kbps VBR")
++                .arg(reason).arg(bitrate).arg(maxbitrate));
++    }
++
++    vector<struct v4l2_ext_control> ext_ctrls;
++    add_ext_ctrl(ext_ctrls, V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
++                 (maxbitrate == bitrate) ?
++                 V4L2_MPEG_VIDEO_BITRATE_MODE_CBR :
++                 V4L2_MPEG_VIDEO_BITRATE_MODE_VBR);
++
++    add_ext_ctrl(ext_ctrls, V4L2_CID_MPEG_VIDEO_BITRATE,
++                 bitrate * 1000);
++
++    add_ext_ctrl(ext_ctrls, V4L2_CID_MPEG_VIDEO_BITRATE_PEAK,
++                 maxbitrate * 1000);
++
++    set_ctrls(readfd, ext_ctrls);
++}
++
+ void MpegRecorder::HandleResolutionChanges(void)
+ {
+     VERBOSE(VB_RECORD, LOC + "Checking Resolution");
+@@ -1819,30 +1856,7 @@ void MpegRecorder::HandleResolutionChang
+                     .arg(old_avg).arg(old_max));
+         }
+ 
+-        if (maxbitrate == bitrate)
+-        {
+-            VERBOSE(VB_RECORD, LOC + QString("New bitrate %1 kbps CBR")
+-                    .arg(bitrate));
+-        }
+-        else
+-        {
+-            VERBOSE(VB_RECORD, LOC + QString("New bitrate %1/%2 kbps VBR")
+-                    .arg(bitrate).arg(maxbitrate));
+-        }
+-
+-        vector<struct v4l2_ext_control> ext_ctrls;
+-        add_ext_ctrl(ext_ctrls, V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
+-                     (maxbitrate == bitrate) ?
+-                     V4L2_MPEG_VIDEO_BITRATE_MODE_CBR :
+-                     V4L2_MPEG_VIDEO_BITRATE_MODE_VBR);
+-
+-        add_ext_ctrl(ext_ctrls, V4L2_CID_MPEG_VIDEO_BITRATE,
+-                     bitrate * 1000);
+-
+-        add_ext_ctrl(ext_ctrls, V4L2_CID_MPEG_VIDEO_BITRATE_PEAK,
+-                     maxbitrate * 1000);
+-
+-        set_ctrls(readfd, ext_ctrls);
+-
++        SetBitrate(bitrate, maxbitrate, "New");
+     }
+ }
++
+Index: libs/libmythtv/mpegrecorder.h
+===================================================================
+--- libs/libmythtv/mpegrecorder.h.orig
++++ libs/libmythtv/mpegrecorder.h
+@@ -87,6 +87,7 @@ class MpegRecorder : public DTVRecorder,
+     void ResetForNewFile(void);
+ 
+     bool WaitFor_HDPVR(void);
++    void SetBitrate(int bitrate, int maxbitrate, const QString & reason);
+     void HandleResolutionChanges(void);
+ 
+     inline bool CheckCC(uint pid, uint cc);
diff --git a/abs/core-testing/mythtv/trunk/mythtv/menu-xml/HOST_SETTINGS.xml b/abs/core-testing/mythtv/trunk/mythtv/menu-xml/HOST_SETTINGS.xml
new file mode 100755
index 0000000..f257920
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/menu-xml/HOST_SETTINGS.xml
@@ -0,0 +1,87 @@
+<mythmenu name="HOST_SETTINGS">
+
+   <button>
+       <type>MV_NETWORK_SETUP_MENU</type>
+      <text>Network Settings</text>
+      <action>EXEC  mythinstall -s network </action>
+   </button>
+
+   <button>
+       <type>MV_SYSTEM_SETUP_MENU</type>
+      <text>System type</text>
+        <action>EXEC  mythinstall -s hostype </action>
+   </button>
+
+   <button>
+       <type>MV_MISC_SETUP_MENU</type>
+      <text>Misc Settings</text>
+       <action>EXEC  mythinstall -s misc </action>
+   </button>
+
+   <button>
+       <type>MV_SOFTWARE_MENU</type>
+      <text>Software</text>
+       <action>EXEC  mythinstall -s  plugins </action>
+   </button>
+
+   <button>
+      <type>MV_SHUTDOWN_SETUP_MENU</type>
+      <text>Shutdown settings</text>
+        <action>EXEC  mythinstall -s sleep </action>
+   </button>
+
+
+<button>
+   <type>MV_ADVANCED_X_SETUP_MENU</type>
+    <text>Display</text>
+    <action>EXEC  mythinstall -s advancedX</action>
+</button>
+
+<button>
+   <type>MV_ADVANCED_SETUP_MENU</type>
+    <text>Advanced settings</text>
+    <action>EXEC  mythinstall -s advanced</action>
+</button>
+
+
+<button>
+       <type>MV_AUDIO_SETUP_MENU</type>
+       <text>Audio settings</text>
+        <action>EXEC  mythinstall -s sound </action>
+</button>
+
+
+<button>
+       <type>MV_ACCESS_SETUP_MENU</type>
+       <text>Access</text>
+       <action>EXEC  mythinstall -s accesscontrol </action>
+</button>
+
+<button>
+       <type>MV_USER_SETUP_MENU</type>
+       <text>Password </text>
+       <action>EXEC  mythinstall -s user </action>
+</button>
+
+<button>
+       <type>MV_WEBACCESS_SETUP_MENU</type>
+       <text>Web security</text>
+       <action>EXEC  mythinstall -s webuser </action>
+</button>
+
+
+
+
+   <!--
+   <button>
+       <type>SETUP_MENU</type>
+       <text>Settings profile manager</text>
+        <action>EXEC  mythinstall -t </action>
+
+   </button>
+   -->
+
+
+
+
+</mythmenu>
diff --git a/abs/core-testing/mythtv/trunk/mythtv/menu-xml/is.xml b/abs/core-testing/mythtv/trunk/mythtv/menu-xml/is.xml
new file mode 100755
index 0000000..88b7e6b
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/menu-xml/is.xml
@@ -0,0 +1,3 @@
+<mythmenu name="Internet Steams">
+
+</mythmenu>
diff --git a/abs/core-testing/mythtv/trunk/mythtv/menu-xml/library.xml.patch b/abs/core-testing/mythtv/trunk/mythtv/menu-xml/library.xml.patch
new file mode 100755
index 0000000..02df082
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/menu-xml/library.xml.patch
@@ -0,0 +1,13 @@
+--- library.xml.orig	2008-08-31 03:27:59.000000000 +0000
++++ library.xml	2009-01-26 15:04:16.000000000 +0000
+@@ -121,8 +121,8 @@
+      <type>STREAM</type>
+      <text>Play online streams</text>
+      <text lang="HE">נגן מדיה מכוונת</text>
+-     <action>PLUGIN mythstream</action>
+-     <depends>mythstream</depends>
++     <text>Online Streams</text>
++     <action>MENU is.xml</action>
+    </button>
+ 
+    <button>
diff --git a/abs/core-testing/mythtv/trunk/mythtv/menu-xml/linhes.xml b/abs/core-testing/mythtv/trunk/mythtv/menu-xml/linhes.xml
new file mode 100755
index 0000000..8bc929f
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/menu-xml/linhes.xml
@@ -0,0 +1,54 @@
+<mythmenu name="LinHES">
+
+   <button>
+     <type>SETUP_GENERAL</type>
+     <text>MythTV Configuration</text>
+     <text lang="IT">Impostazioni</text>
+     <text lang="ES">Configuración</text>
+     <text lang="CA">Configurar</text>
+     <text lang="FR">paramètres</text>
+     <text lang="DE">Zubehör / Konfiguration</text>
+     <text lang="DK">Tilbehør/Indstillinger</text>
+     <text lang="IS">Uppsetning</text>
+     <text lang="NL">Configuratie</text>
+     <text lang="PT">Utensílios</text>
+     <text lang="SV">Verktyg / Inställningar</text>
+     <text lang="JA">設定</text>
+     <text lang="FI">Oheis/Asetukset</text>
+     <text lang="ZH_TW">工具/設定</text>
+     <text lang="SI">Nastavitve</text>
+     <text lang="ET">Utiliidid / sätted</text>
+     <text lang="NB">Verktøy/Oppsett</text>
+     <text lang="CZ">Pomůcky</text>
+     <text lang="RU">Утилиты / Настройки</text>
+     <text lang="AR">تضبيطات</text>
+     <text lang="PL">Narzędzia / ustawienia</text>
+     <text lang="HE">עזרים / הגדרות</text>
+     <alttext lang="DE">Verschiedenes</alttext>
+     <alttext lang="SV">Inställningar</alttext>
+     <alttext lang="ET">Sätted</alttext>
+     <alttext lang="RU">Настройки</alttext>
+     <alttext lang="AR">تضبيطات</alttext>
+     <action>MENU util_menu.xml</action>
+   </button>
+
+   <button>
+     <type>LINHES_SETUP</type>
+     <text>LinHES Configuration</text>
+     <action>MENU HOST_SETTINGS.xml</action>
+   </button>
+
+   <button>
+     <type>BACKUP</type>
+     <text>Backup LinHES</text>
+     <action>MENU mythbackup.xml</action>
+   </button>
+
+   <button>
+     <type>RESTORE</type>
+     <text>Restore LinHES</text>
+     <action>MENU mythrestore.xml</action>
+   </button>
+   
+</mythmenu>
+
diff --git a/abs/core-testing/mythtv/trunk/mythtv/menu-xml/mainmenu.xml.patch b/abs/core-testing/mythtv/trunk/mythtv/menu-xml/mainmenu.xml.patch
new file mode 100755
index 0000000..a299325
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/menu-xml/mainmenu.xml.patch
@@ -0,0 +1,39 @@
+--- mainmenu.xml.orig	2009-01-09 02:45:07.000000000 +0000
++++ mainmenu.xml	2009-01-22 08:04:28.000000000 +0000
+@@ -158,34 +158,8 @@
+ 
+    <button>
+      <type>MENU_UTILITIES_SETUP</type>
+-     <text>Utilities / Setup</text>
+-     <text lang="IT">Impostazioni</text>
+-     <text lang="ES">Configuración</text>
+-     <text lang="CA">Configurar</text>
+-     <text lang="FR">paramètres</text>
+-     <text lang="DE">Zubehör / Konfiguration</text>
+-     <text lang="DK">Tilbehør/Indstillinger</text>
+-     <text lang="IS">Uppsetning</text>
+-     <text lang="NL">Configuratie</text>
+-     <text lang="PT">Utensílios</text>
+-     <text lang="SV">Verktyg / Inställningar</text>
+-     <text lang="JA">設定</text>
+-     <text lang="FI">Oheis/Asetukset</text>
+-     <text lang="ZH_TW">工具/設定</text>
+-     <text lang="SI">Nastavitve</text>
+-     <text lang="ET">Utiliidid / sätted</text>
+-     <text lang="NB">Verktøy/Oppsett</text>
+-     <text lang="CZ">Pomůcky</text>
+-     <text lang="RU">Утилиты / Настройки</text>
+-     <text lang="AR">تضبيطات</text>
+-     <text lang="PL">Narzędzia / ustawienia</text>
+-     <text lang="HE">עזרים / הגדרות</text>
+-     <alttext lang="DE">Verschiedenes</alttext>
+-     <alttext lang="SV">Inställningar</alttext>
+-     <alttext lang="ET">Sätted</alttext>
+-     <alttext lang="RU">Настройки</alttext>
+-     <alttext lang="AR">تضبيطات</alttext>
+-     <action>MENU util_menu.xml</action>
++     <text>Service Menu</text>
++     <action>MENU linhes.xml</action>
+    </button>
+ 
+    <!-- <button>
diff --git a/abs/core-testing/mythtv/trunk/mythtv/menu-xml/mythbackup.xml b/abs/core-testing/mythtv/trunk/mythtv/menu-xml/mythbackup.xml
new file mode 100755
index 0000000..656860d
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/menu-xml/mythbackup.xml
@@ -0,0 +1,20 @@
+<mythmenu name="LinHES">
+
+   <button>
+     <type>BACKUP</type>
+     <text>Do you wish to backup?</text>
+     <action>NONE</action>
+   </button>
+
+   <button>
+     <type>BACKUP</type>
+     <text>Yes</text>
+     <action>EXEC sudo /usr/LH/bin/mythbackup</action>
+   </button>
+   
+   <button>
+     <type>BACKUP</type>
+     <text>No</text>
+     <action>MENU linhes.xml</action>
+   </button>
+</mythmenu>
diff --git a/abs/core-testing/mythtv/trunk/mythtv/menu-xml/mythrestore.xml b/abs/core-testing/mythtv/trunk/mythtv/menu-xml/mythrestore.xml
new file mode 100755
index 0000000..05cb0a7
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/menu-xml/mythrestore.xml
@@ -0,0 +1,20 @@
+<mythmenu name="LinHES">
+
+   <button>
+     <type>RESTORE</type>
+     <text>Do you wish to restore?</text>
+     <action>NONE</action>
+   </button>
+
+   <button>
+     <type>RESTORE</type>
+     <text>Yes</text>
+     <action>EXEC sudo /usr/LH/bin/mythrestore</action>
+   </button>
+   
+   <button>
+     <type>BACKUP</type>
+     <text>No</text>
+     <action>MENU linhes.xml</action>
+   </button>
+</mythmenu>
diff --git a/abs/core-testing/mythtv/trunk/mythtv/menu-xml/optical_menu.xml.patch b/abs/core-testing/mythtv/trunk/mythtv/menu-xml/optical_menu.xml.patch
new file mode 100755
index 0000000..d1cb70c
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/menu-xml/optical_menu.xml.patch
@@ -0,0 +1,15 @@
+--- optical_menu.xml.orig	2008-10-02 22:46:30.000000000 +0000
++++ optical_menu.xml	2008-07-02 04:05:15.000000000 +0000
+@@ -129,6 +129,12 @@
+    </button>
+ 
+    <button>
++      <type>DVD_RIP</type>
++      <text>Import video files from DVD</text>
++      <action>EXEC /usr/LH/bin/importfiles.sh</action>
++   </button>
++
++   <button>
+       <type>EJECT</type>
+       <text>Eject media</text>
+       <text lang="IT">Espelli Media</text>
diff --git a/abs/core-testing/mythtv/trunk/mythtv/menu-xml/original/create_patch.sh b/abs/core-testing/mythtv/trunk/mythtv/menu-xml/original/create_patch.sh
new file mode 100755
index 0000000..34d8b8c
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/menu-xml/original/create_patch.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+for i in *.xml
+do
+	diff -u $i.orig $i > ../$i.patch
+done
diff --git a/abs/core-testing/mythtv/trunk/mythtv/menu-xml/setup.xml b/abs/core-testing/mythtv/trunk/mythtv/menu-xml/setup.xml
new file mode 100755
index 0000000..f56bb6f
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/menu-xml/setup.xml
@@ -0,0 +1,111 @@
+<mythmenu name="MAIN">
+
+   <button>
+     <type>SETUP_GENERAL</type>
+     <text>1. General</text>
+     <text lang="IT">1. Generale</text>
+     <text lang="PT">1. Geral</text>
+     <text lang="SV">1. Generellt</text>
+     <text lang="JA">1. 一般</text>
+     <text lang="DE">1. Allgemeines</text>
+     <text lang="FI">1. Yleiset</text>
+     <text lang="FR">1. Général</text>
+     <text lang="SI">1. Splošno</text>
+     <text lang="ET">1. Üldine</text>
+     <text lang="NB">1 Generelt</text>
+     <text lang="DK">1. Generelt</text>
+     <text lang="ES">1. General</text>
+     <text lang="CZ">1. Obecný</text>
+     <text lang="RU">1. Общие</text>
+     <action>GENERAL</action>
+   </button>
+
+   <button>
+     <type>SETUP_CAPTURE_CARDS</type>
+     <text>2. Capture cards</text>
+     <text lang="IT">2. Schede di Acquisizione</text>
+     <text lang="PT">2. Placas de Captura</text>
+     <text lang="SV">2. TV-kort</text>
+     <text lang="JA">2. キャプチャカード</text>
+     <text lang="DE">2. TV-Karten</text>
+     <text lang="FI">2. TV-kortit</text>
+     <text lang="FR">2. Cartes d'acquisition</text>
+     <text lang="SI">2. Kartice za zajem</text>
+     <text lang="ET">2. TV-kaardid</text>
+     <text lang="NB">2 TV-kort</text>
+     <text lang="DK">2. TV-kort</text>
+     <text lang="ES">2. Capturadoras</text>
+     <text lang="CZ">2. Zachytávací karty</text>
+     <text lang="RU">2. Карты захвата</text>
+     <action>CAPTURE CARDS</action>
+   </button>
+
+   <button>
+     <type>SETUP_VIDEO_SOURCES</type>
+     <text>3. Video sources</text>
+     <text lang="IT">3. Fonte Video</text>
+     <text lang="PT">3. Fontes de Vídeo</text>
+     <text lang="SV">3. Videokällor</text>
+     <text lang="JA">3. ビデオソース</text>
+     <text lang="DE">3. Videoquellen</text>
+     <text lang="FI">3. Kuvanlähteet</text>
+     <text lang="FR">3. Sources vidéo</text>
+     <text lang="SI">3. Video viri</text>
+     <text lang="ET">3. Videosisendid</text>
+     <text lang="NB">3 Videokilder</text>
+     <text lang="DK">3. Videokilder</text>
+     <text lang="ES">3. Fuentes de Vídeo</text>
+     <text lang="CZ">3. Zdroje obrazu</text>
+     <text lang="RU">3. Видео источники</text>
+     <action>VIDEO SOURCES</action>
+   </button>
+
+   <button>
+     <type>SETUP_INPUT_CONNECTIONS</type>
+     <text>4. Input connections</text>
+     <text lang="IT">4. Connessioni di Ingresso</text>
+     <text lang="PT">4. Ligações de Entrada</text>
+     <text lang="SV">4. Anslutningar</text>
+     <text lang="JA">4. 入力とソースの接続</text>
+     <text lang="DE">4. Verknüpfungen</text>
+     <text lang="FI">4. Sisääntuloasetukset</text>
+     <text lang="FR">4. Entrées Vidéos</text>
+     <text lang="SI">4. Vhodne povezave</text>
+     <text lang="ET">4. Sisendite ühendused</text>
+     <text lang="NB">4 Inndata</text>
+     <text lang="DK">4. Indgange</text>
+     <text lang="ES">4. Conexiones</text>
+     <text lang="CZ">4. Připojení vstupů</text>
+     <text lang="RU">4. Соединение входов</text>
+     <action>CARD INPUTS</action>
+   </button>
+
+   <button>
+     <type>SETUP_CHANNEL_EDITOR</type>
+     <text>5. Channel Editor</text>
+     <text lang="IT">5. Modifica Canali</text>
+     <text lang="SV">5. Kanaleditor</text>
+     <text lang="JA">5. チャンネル設定</text>
+     <text lang="DE">5. Sender bearbeiten</text>
+     <text lang="FI">5. Kanavanviritys</text>
+     <text lang="FR">5. Editeur de chaînes</text>
+     <text lang="SI">5. Urejanje kanalov</text>
+     <text lang="ET">5. Kanaliredaktor</text>
+     <text lang="NB">5 Kanalredigerer</text>
+     <text lang="DK">5. Kanal opsætning</text>
+     <text lang="ES">5. Editor Canales</text>
+     <text lang="CZ">5. Editor kanálů</text>
+     <text lang="RU">5. Редактор каналов</text>
+     <action>CHANNEL EDITOR</action>
+   </button>
+
+   <button>
+     <type>SETUP_STORAGE_GROUPS</type>
+     <text>6. Storage Directories</text>
+     <text lang="IT">6. Cartelle</text>
+     <text lang="FI">Tallennusryhmät</text>
+     <text lang="SV">Lagringsgrupper</text>
+     <action>STORAGE GROUPS</action>
+   </button>
+
+</mythmenu>
diff --git a/abs/core-testing/mythtv/trunk/mythtv/menu-xml/siriusmenu.xml b/abs/core-testing/mythtv/trunk/mythtv/menu-xml/siriusmenu.xml
new file mode 100755
index 0000000..e317b36
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/menu-xml/siriusmenu.xml
@@ -0,0 +1,419 @@
+<mythmenu name="SIRIUS">
+   <button>
+      <type>MUSIC</type>
+      <text>Sirius Hits 1</text>
+      <action>EXEC /usr/bin/cliSipie siriushits1</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>StarLite</text>
+      <action>EXEC /usr/bin/cliSipie starlite</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Sirius Love</text>
+      <action>EXEC /usr/bin/cliSipie siriuslove</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Movin EZ</text>
+      <action>EXEC /usr/bin/cliSipie movineasy</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Sirius Gold</text>
+      <action>EXEC /usr/bin/cliSipie siriusgold</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>'60s Vibrations</text>
+      <action>EXEC /usr/bin/cliSipie 60svibrations</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Totally '70s</text>
+      <action>EXEC /usr/bin/cliSipie totally70s</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Big '80s</text>
+      <action>EXEC /usr/bin/cliSipie big80s</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>ThePulse</text>
+      <action>EXEC /usr/bin/cliSipie thepulse</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Bridge</text>
+      <action>EXEC /usr/bin/cliSipie thebridge</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>BBC Radio 1</text>
+      <action>EXEC /usr/bin/cliSipie bbcradio1</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Super Shuffle</text>
+      <action>EXEC /usr/bin/cliSipie supershuffle</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Elvis Radio</text>
+      <action>EXEC /usr/bin/cliSipie elvisradio</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Classic Vinyl</text>
+      <action>EXEC /usr/bin/cliSipie classicvinyl</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Classic Rewind</text>
+      <action>EXEC /usr/bin/cliSipie classicrewind</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>TheVault</text>
+      <action>EXEC /usr/bin/cliSipie thevault</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Jam_ON</text>
+      <action>EXEC /usr/bin/cliSipie jamon</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Spectrum</text>
+      <action>EXEC /usr/bin/cliSipie thespectrum</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>BuzzSaw</text>
+      <action>EXEC /usr/bin/cliSipie buzzsaw</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Octane</text>
+      <action>EXEC /usr/bin/cliSipie octane</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Alt Nation</text>
+      <action>EXEC /usr/bin/cliSipie altnation</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>1st Wave</text>
+      <action>EXEC /usr/bin/cliSipie firstwave</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Hair Nation</text>
+      <action>EXEC /usr/bin/cliSipie hairnation</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>'90s Alternative</text>
+      <action>EXEC /usr/bin/cliSipie 90salternative</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Garage</text>
+      <action>EXEC /usr/bin/cliSipie undergroundgarage</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Left of Center</text>
+      <action>EXEC /usr/bin/cliSipie leftofcenter</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Hard Attack</text>
+      <action>EXEC /usr/bin/cliSipie hardattack</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Faction</text>
+      <action>EXEC /usr/bin/cliSipie faction</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Punk</text>
+      <action>EXEC /usr/bin/cliSipie punk</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>The Coffee House</text>
+      <action>EXEC /usr/bin/cliSipie coffeehouse</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Margaritaville</text>
+      <action>EXEC /usr/bin/cliSipie radiomargaritaville</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Sirius Disorder</text>
+      <action>EXEC /usr/bin/cliSipie siriusdisorder</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Reggae</text>
+      <action>EXEC /usr/bin/cliSipie reggaerhythms</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Area 33</text>
+      <action>EXEC /usr/bin/cliSipie area33</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Boombox</text>
+      <action>EXEC /usr/bin/cliSipie boombox</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Chill</text>
+      <action>EXEC /usr/bin/cliSipie chill</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>The Beat</text>
+      <action>EXEC /usr/bin/cliSipie thebeat</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Strobe</text>
+      <action>EXEC /usr/bin/cliSipie thestrobe</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Hip-Hop Nation</text>
+      <action>EXEC /usr/bin/cliSipie hiphopnation</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>BackSpin</text>
+      <action>EXEC /usr/bin/cliSipie backspin</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Shade 45</text>
+      <action>EXEC /usr/bin/cliSipie shade45</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Hot Jamz</text>
+      <action>EXEC /usr/bin/cliSipie hotjamz</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Heart  &amp; Soul</text>
+      <action>EXEC /usr/bin/cliSipie heartandsoul</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>SoulTown</text>
+      <action>EXEC /usr/bin/cliSipie soultown</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>New Country</text>
+      <action>EXEC /usr/bin/cliSipie newcountry</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Prime Country</text>
+      <action>EXEC /usr/bin/cliSipie primecountry</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Roadhouse</text>
+      <action>EXEC /usr/bin/cliSipie theroadhouse</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Outlaw Country</text>
+      <action>EXEC /usr/bin/cliSipie outlawcountry</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Bluegrass</text>
+      <action>EXEC /usr/bin/cliSipie bluegrass</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Spirit</text>
+      <action>EXEC /usr/bin/cliSipie spirit</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Praise</text>
+      <action>EXEC /usr/bin/cliSipie praise</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Planet Jazz</text>
+      <action>EXEC /usr/bin/cliSipie planetjazz</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>JazzCafe</text>
+      <action>EXEC /usr/bin/cliSipie jazzcafe</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>PureJazz</text>
+      <action>EXEC /usr/bin/cliSipie purejazz</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Spa 73</text>
+      <action>EXEC /usr/bin/cliSipie spa73</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Blues</text>
+      <action>EXEC /usr/bin/cliSipie siriusblues</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Siriusly Sinatra</text>
+      <action>EXEC /usr/bin/cliSipie siriuslysinatra</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Broadway's Best</text>
+      <action>EXEC /usr/bin/cliSipie broadwaysbest</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Symphony Hall</text>
+      <action>EXEC /usr/bin/cliSipie symphonyhall</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Met Opera Radio</text>
+      <action>EXEC /usr/bin/cliSipie metropolitanopera</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Sirius Pops</text>
+      <action>EXEC /usr/bin/cliSipie siriuspops</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Universo Latino</text>
+      <action>EXEC /usr/bin/cliSipie universolatino</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Rumbon</text>
+      <action>EXEC /usr/bin/cliSipie rumbon</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Martha Stewart</text>
+      <action>EXEC /usr/bin/cliSipie marthastewartlivingradio</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Sirius Stars</text>
+      <action>EXEC /usr/bin/cliSipie siriusstars</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>OutQ Gay Radio</text>
+      <action>EXEC /usr/bin/cliSipie siriusoutq</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Patriot</text>
+      <action>EXEC /usr/bin/cliSipie siriuspatriot</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Left</text>
+      <action>EXEC /usr/bin/cliSipie siriusleft</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>CNN</text>
+      <action>EXEC /usr/bin/cliSipie cnn</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>wrn</text>
+      <action>EXEC /usr/bin/cliSipie wrn</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Blue Collar Comedy</text>
+      <action>EXEC /usr/bin/cliSipie bluecollarcomedy</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Raw Dog Comedy</text>
+      <action>EXEC /usr/bin/cliSipie rawdog</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Laugh Break Comedy</text>
+      <action>EXEC /usr/bin/cliSipie laughbreak</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>thefoxxhole</text>
+      <action>EXEC /usr/bin/cliSipie thefoxxhole</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>lime</text>
+      <action>EXEC /usr/bin/cliSipie lime</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Kids Stuff</text>
+      <action>EXEC /usr/bin/cliSipie kidsstuff</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Catholic Channel</text>
+      <action>EXEC /usr/bin/cliSipie thecatholicchannel</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>EWTN</text>
+      <action>EXEC /usr/bin/cliSipie ewtnglobal</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>christiantalk</text>
+      <action>EXEC /usr/bin/cliSipie christiantalk</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Sirius NFL Radio</text>
+      <action>EXEC /usr/bin/cliSipie siriusnflradio</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Maxim Radio</text>
+      <action>EXEC /usr/bin/cliSipie maximradio</action>
+   </button>
+   <button>
+      <type>MUSIC</type>
+      <text>Cosmo Radio</text>
+      <action>EXEC /usr/bin/cliSipie cosmopolitanradio</action>
+   </button>
+   <button>
+     <type>TV_DELETE</type>
+     <text>Stop Listening</text>
+     <action>EXEC /usr/bin/sipie_kill</action>
+  </button>
+
+</mythmenu>
+
diff --git a/abs/core-testing/mythtv/trunk/mythtv/menu-xml/util_menu.xml.patch b/abs/core-testing/mythtv/trunk/mythtv/menu-xml/util_menu.xml.patch
new file mode 100755
index 0000000..26ac863
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/menu-xml/util_menu.xml.patch
@@ -0,0 +1,17 @@
+--- util_menu.xml.orig	2009-01-09 02:45:07.000000000 +0000
++++ util_menu.xml	2009-01-22 08:04:28.000000000 +0000
+@@ -76,7 +76,13 @@
+       <action>PLUGIN mythcontrols</action>
+       <depends>mythcontrols</depends>	
+    </button>
+-      
++
++   <button>
++      <type>VIDEO_SCREENSHOOTER</type>
++      <text>Thumbnail Generator</text>
++      <action>EXEC /usr/LH/bin/shootscreens-mythtv.sh</action>
++   </button>
++
+    <button>
+       <type>SETUP_MENU</type>
+       <text>Setup</text>
diff --git a/abs/core-testing/mythtv/trunk/mythtv/menu-xml/xmmenu.xml b/abs/core-testing/mythtv/trunk/mythtv/menu-xml/xmmenu.xml
new file mode 100755
index 0000000..6b26d11
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/menu-xml/xmmenu.xml
@@ -0,0 +1,574 @@
+<!-- Current as of April 25, 2007 -->
+<mythmenu name="XM">
+
+	<button>
+		<type>MUSIC</type>
+		<text>The '40s</text>
+		<action>EXEC /usr/bin/xamp kill 4</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>The '50s</text>
+		<action>EXEC /usr/bin/xamp kill 5</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>The '60s</text>
+		<action>EXEC /usr/bin/xamp kill 6</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>The '70s</text>
+		<action>EXEC /usr/bin/xamp kill 7</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>The '80s</text>
+		<action>EXEC /usr/bin/xamp kill 8</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>The '90s</text>
+		<action>EXEC /usr/bin/xamp kill 9</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>America</text>
+		<action>EXEC /usr/bin/xamp kill 10</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>X Country</text>
+		<action>EXEC /usr/bin/xamp kill 12</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Willie's Place</text>
+		<action>EXEC /usr/bin/xamp kill 13</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Bluegrass Junction</text>
+		<action>EXEC /usr/bin/xamp kill 14</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>The Village</text>
+		<action>EXEC /usr/bin/xamp kill 15</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Highway 16</text>
+		<action>EXEC /usr/bin/xamp kill 16</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>US Country</text>
+		<action>EXEC /usr/bin/xamp kill 17</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>20 on 20</text>
+		<action>EXEC /usr/bin/xamp kill 20</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>The Heart</text>
+		<action>EXEC /usr/bin/xamp kill 23</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>The Blend</text>
+		<action>EXEC /usr/bin/xamp kill 25</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Flight 26</text>
+		<action>EXEC /usr/bin/xamp kill 26</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Cinemagic</text>
+		<action>EXEC /usr/bin/xamp kill 27</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>On Broadway</text>
+		<action>EXEC /usr/bin/xamp kill 28</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>U-Pop</text>
+		<action>EXEC /usr/bin/xamp kill 29</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>XM Hitlist</text>
+		<action>EXEC /usr/bin/xamp kill 30</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Torch</text>
+		<action>EXEC /usr/bin/xamp kill 31</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>The Message</text>
+		<action>EXEC /usr/bin/xamp kill 32</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Spirit</text>
+		<action>EXEC /usr/bin/xamp kill 33</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>enLighten</text>
+		<action>EXEC /usr/bin/xamp kill 34</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Deep Tracks</text>
+		<action>EXEC /usr/bin/xamp kill 40</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Boneyard</text>
+		<action>EXEC /usr/bin/xamp kill 41</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>XM Liquid Metal</text>
+		<action>EXEC /usr/bin/xamp kill 42</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>XMU</text>
+		<action>EXEC /usr/bin/xamp kill 43</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Fred</text>
+		<action>EXEC /usr/bin/xamp kill 44</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>XM Cafe</text>
+		<action>EXEC /usr/bin/xamp kill 45</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Top Tracks</text>
+		<action>EXEC /usr/bin/xamp kill 46</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Ethel</text>
+		<action>EXEC /usr/bin/xamp kill 47</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Squizz</text>
+		<action>EXEC /usr/bin/xamp kill 48</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Big Tracks</text>
+		<action>EXEC /usr/bin/xamp kill 49</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>The Loft</text>
+		<action>EXEC /usr/bin/xamp kill 50</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>XM Music Lab</text>
+		<action>EXEC /usr/bin/xamp kill 51</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>The Verge</text>
+		<action>EXEC /usr/bin/xamp kill 52</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Fungus</text>
+		<action>EXEC /usr/bin/xamp kill 53</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Lucy</text>
+		<action>EXEC /usr/bin/xamp kill 54</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Soul Street</text>
+		<action>EXEC /usr/bin/xamp kill 60</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>The Flow</text>
+		<action>EXEC /usr/bin/xamp kill 61</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Suite 62</text>
+		<action>EXEC /usr/bin/xamp kill 62</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>The Groove</text>
+		<action>EXEC /usr/bin/xamp kill 64</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>The Rhyme</text>
+		<action>EXEC /usr/bin/xamp kill 65</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>RAW</text>
+		<action>EXEC /usr/bin/xamp kill 66</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>The City</text>
+		<action>EXEC /usr/bin/xamp kill 67</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>The Heat</text>
+		<action>EXEC /usr/bin/xamp kill 68</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Real Jazz</text>
+		<action>EXEC /usr/bin/xamp kill 70</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Watercolors</text>
+		<action>EXEC /usr/bin/xamp kill 71</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Beyond Jazz</text>
+		<action>EXEC /usr/bin/xamp kill 72</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>High Standards</text>
+		<action>EXEC /usr/bin/xamp kill 73</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Bluesville</text>
+		<action>EXEC /usr/bin/xamp kill 74</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Hear Music</text>
+		<action>EXEC /usr/bin/xamp kill 75</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Fine Tuning</text>
+		<action>EXEC /usr/bin/xamp kill 76</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Audio Visions</text>
+		<action>EXEC /usr/bin/xamp kill 77</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Escape</text>
+		<action>EXEC /usr/bin/xamp kill 78</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>On The Rocks</text>
+		<action>EXEC /usr/bin/xamp kill 79</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>The Move</text>
+		<action>EXEC /usr/bin/xamp kill 80</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>BPM</text>
+		<action>EXEC /usr/bin/xamp kill 81</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>The System</text>
+		<action>EXEC /usr/bin/xamp kill 82</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Chrome</text>
+		<action>EXEC /usr/bin/xamp kill 83</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>XM-Chill</text>
+		<action>EXEC /usr/bin/xamp kill 84</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Fuego</text>
+		<action>EXEC /usr/bin/xamp kill 90</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Viva</text>
+		<action>EXEC /usr/bin/xamp kill 91</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Aguila</text>
+		<action>EXEC /usr/bin/xamp kill 92</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Caliente</text>
+		<action>EXEC /usr/bin/xamp kill 94</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Luna</text>
+		<action>EXEC /usr/bin/xamp kill 95</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Air Musique</text>
+		<action>EXEC /usr/bin/xamp kill 100</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>The Joint</text>
+		<action>EXEC /usr/bin/xamp kill 101</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Sur La Route</text>
+		<action>EXEC /usr/bin/xamp kill 102</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>World Zone</text>
+		<action>EXEC /usr/bin/xamp kill 103</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Ngoma</text>
+		<action>EXEC /usr/bin/xamp kill 104</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>XM Classics</text>
+		<action>EXEC /usr/bin/xamp kill 110</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Vox</text>
+		<action>EXEC /usr/bin/xamp kill 112</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>XM Pops</text>
+		<action>EXEC /usr/bin/xamp kill 113</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>XM Kids</text>
+		<action>EXEC /usr/bin/xamp kill 116</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Bob Edwards Show</text>
+		<action>EXEC /usr/bin/xamp kill 133</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>XM Comedy</text>
+		<action>EXEC /usr/bin/xamp kill 150</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Laugh USA</text>
+		<action>EXEC /usr/bin/xamp kill 151</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Special X</text>
+		<action>EXEC /usr/bin/xamp kill 154</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>The Agenda</text>
+		<action>EXEC /usr/bin/xamp kill 134</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Oprah and Friends</text>
+		<action>EXEC /usr/bin/xamp kill 156</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>The Virus</text>
+		<action>EXEC /usr/bin/xamp kill 202</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>1 Hit Wonders</text>
+		<action>EXEC /usr/bin/xamp kill 300</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Metalcore</text>
+		<action>EXEC /usr/bin/xamp kill 301</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>New Indie First</text>
+		<action>EXEC /usr/bin/xamp kill 302</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Late Night Mix</text>
+		<action>EXEC /usr/bin/xamp kill 303</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Sessions@AOL</text>
+		<action>EXEC /usr/bin/xamp kill 304</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>Shuffle</text>
+		<action>EXEC /usr/bin/xamp kill 305</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>New Rock First</text>
+		<action>EXEC /usr/bin/xamp kill 306</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>New Country First</text>
+		<action>EXEC /usr/bin/xamp kill 307</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>New Hip Hop First</text>
+		<action>EXEC /usr/bin/xamp kill 308</action>
+	</button>
+
+	<button>
+		<type>MUSIC</type>
+		<text>New Pop First</text>
+		<action>EXEC /usr/bin/xamp kill 309</action>
+	</button>
+
+	<button>
+		<type>TV_DELETE</type>
+		<text>Stop Listening</text>
+		<action>EXEC /usr/bin/xamp kill</action>
+	</button>
+
+</mythmenu>
diff --git a/abs/core-testing/mythtv/trunk/mythtv/mpegrecorder-hdpvr-v2a.patch b/abs/core-testing/mythtv/trunk/mythtv/mpegrecorder-hdpvr-v2a.patch
new file mode 100644
index 0000000..dbef933
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/mpegrecorder-hdpvr-v2a.patch
@@ -0,0 +1,668 @@
+Index: libs/libmythtv/DeviceReadBuffer.cpp
+===================================================================
+--- libs/libmythtv/DeviceReadBuffer.cpp.orig
++++ libs/libmythtv/DeviceReadBuffer.cpp
+@@ -169,7 +169,17 @@ bool DeviceReadBuffer::IsPaused(void) co
+     return paused;
+ }
+ 
+-bool DeviceReadBuffer::WaitForUnpause(int timeout)
++bool DeviceReadBuffer::WaitForPaused(unsigned long timeout)
++{
++    QMutexLocker locker(&lock);
++
++    if (!paused)
++        pauseWait.wait(&lock, timeout);
++
++    return paused;
++}
++
++bool DeviceReadBuffer::WaitForUnpause(unsigned long timeout)
+ {
+     QMutexLocker locker(&lock);
+ 
+Index: libs/libmythtv/DeviceReadBuffer.h
+===================================================================
+--- libs/libmythtv/DeviceReadBuffer.h.orig
++++ libs/libmythtv/DeviceReadBuffer.h
+@@ -42,7 +42,8 @@ class DeviceReadBuffer
+ 
+     void SetRequestPause(bool request);
+     bool IsPaused(void) const;
+-    bool WaitForUnpause(int timeout);
++    bool WaitForUnpause(unsigned long timeout);
++    bool WaitForPaused(unsigned long timeout);
+     
+     bool IsErrored(void) const { return error; }
+     bool IsEOF(void)     const { return eof;   }
+Index: libs/libmythtv/mpegrecorder.cpp
+===================================================================
+--- libs/libmythtv/mpegrecorder.cpp.orig
++++ libs/libmythtv/mpegrecorder.cpp
+@@ -19,6 +19,7 @@ using namespace std;
+ #include <sys/stat.h>
+ #include <sys/ioctl.h>
+ #include <sys/time.h>
++#include <sys/poll.h>
+ 
+ // avlib headers
+ extern "C" {
+@@ -86,7 +87,7 @@ MpegRecorder::MpegRecorder(TVRec *rec) :
+     requires_special_pause(false),
+     // State
+     recording(false),             encoding(false),
+-    needs_resolution(false),      start_stop_encoding_lock(QMutex::Recursive),
++    start_stop_encoding_lock(QMutex::Recursive),
+     recording_wait_lock(),        recording_wait(),
+     // Pausing state
+     cleartimeonpause(false),
+@@ -493,12 +494,20 @@ bool MpegRecorder::OpenV4L2DeviceAsInput
+ 
+ bool MpegRecorder::SetFormat(int chanfd)
+ {
++    uint   idx;
+     struct v4l2_format vfmt;
+     bzero(&vfmt, sizeof(vfmt));
+ 
+     vfmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+ 
+-    if (ioctl(chanfd, VIDIOC_G_FMT, &vfmt) < 0)
++    for (idx = 0; idx < 20; ++idx)
++    {
++        if (ioctl(chanfd, VIDIOC_G_FMT, &vfmt) == 0)
++            break;
++        usleep(100 * 1000);
++    }
++
++    if (idx == 10)
+     {
+         VERBOSE(VB_IMPORTANT, LOC_ERR + "Error getting format" + ENO);
+         return false;
+@@ -507,7 +516,14 @@ bool MpegRecorder::SetFormat(int chanfd)
+     vfmt.fmt.pix.width = width;
+     vfmt.fmt.pix.height = height;
+ 
+-    if (ioctl(chanfd, VIDIOC_S_FMT, &vfmt) < 0)
++    for (idx = 0; idx < 20; ++idx)
++    {
++        if (ioctl(chanfd, VIDIOC_S_FMT, &vfmt) == 0)
++            break;
++        usleep(100 * 1000);
++    }
++
++    if (idx == 20)
+     {
+         VERBOSE(VB_IMPORTANT, LOC_ERR + "Error setting format" + ENO);
+         return false;
+@@ -519,9 +535,18 @@ bool MpegRecorder::SetFormat(int chanfd)
+ /// Set audio language mode
+ bool MpegRecorder::SetLanguageMode(int chanfd)
+ {
++    uint   idx;
+     struct v4l2_tuner vt;
+     bzero(&vt, sizeof(struct v4l2_tuner));
+-    if (ioctl(chanfd, VIDIOC_G_TUNER, &vt) < 0)
++
++    for (idx = 0; idx < 20; ++idx)
++    {
++        if (ioctl(chanfd, VIDIOC_G_TUNER, &vt) == 0)
++            break;
++        usleep(100 * 1000);
++    }
++
++    if (idx == 20)
+     {
+         VERBOSE(VB_IMPORTANT, LOC_WARN + "Unable to get audio mode" + ENO);
+         return false;
+@@ -555,7 +580,14 @@ bool MpegRecorder::SetLanguageMode(int c
+         success = false;
+     }
+ 
+-    if (ioctl(chanfd, VIDIOC_S_TUNER, &vt) < 0)
++    for (idx = 0; idx < 20; ++idx)
++    {
++        if (ioctl(chanfd, VIDIOC_S_TUNER, &vt) == 0)
++            break;
++        usleep(100 * 1000);
++    }
++
++    if (idx == 20)
+     {
+         VERBOSE(VB_IMPORTANT, LOC_WARN + "Unable to set audio mode" + ENO);
+         success = false;
+@@ -567,9 +599,18 @@ bool MpegRecorder::SetLanguageMode(int c
+ bool MpegRecorder::SetRecordingVolume(int chanfd)
+ {
+     // Get volume min/max values
++    uint   idx;
+     struct v4l2_queryctrl qctrl;
+     qctrl.id = V4L2_CID_AUDIO_VOLUME;
+-    if (ioctl(chanfd, VIDIOC_QUERYCTRL, &qctrl) < 0)
++
++    for (idx = 0; idx < 20; ++idx)
++    {
++        if (ioctl(chanfd, VIDIOC_QUERYCTRL, &qctrl) == 0)
++            break;
++        usleep(100 * 1000);
++    }
++
++    if (idx == 20)
+     {
+         VERBOSE(VB_IMPORTANT, LOC_WARN +
+                 "Unable to get recording volume parameters(max/min)" + ENO +
+@@ -588,7 +629,14 @@ bool MpegRecorder::SetRecordingVolume(in
+     ctrl.id = V4L2_CID_AUDIO_VOLUME;
+     ctrl.value = ctrl_volume;
+ 
+-    if (ioctl(chanfd, VIDIOC_S_CTRL, &ctrl) < 0)
++    for (idx = 0; idx < 20; ++idx)
++    {
++        if (ioctl(chanfd, VIDIOC_S_CTRL, &ctrl) == 0)
++            break;
++        usleep(100 * 1000);
++    }
++
++    if (idx == 20)
+     {
+         VERBOSE(VB_IMPORTANT, LOC_WARN +
+                 "Unable to set recording volume" + ENO + "\n\t\t\t" +
+@@ -771,6 +819,7 @@ static void set_ctrls(int fd, vector<str
+ 
+     for (uint i = 0; i < ext_ctrls.size(); i++)
+     {
++        uint   idx;
+         struct v4l2_ext_controls ctrls;
+         bzero(&ctrls, sizeof(struct v4l2_ext_controls));
+ 
+@@ -780,7 +829,14 @@ static void set_ctrls(int fd, vector<str
+         ctrls.count       = 1;
+         ctrls.controls    = &ext_ctrls[i];
+             
+-        if (ioctl(fd, VIDIOC_S_EXT_CTRLS, &ctrls) < 0)
++        for (idx = 0; idx < 20; ++idx)
++        {
++            if (ioctl(fd, VIDIOC_S_EXT_CTRLS, &ctrls) == 0)
++                break;
++            usleep(100 * 1000);
++        }
++
++        if (idx == 20)
+         {
+             QMutexLocker locker(&control_description_lock);
+             VERBOSE(VB_IMPORTANT, QString("mpegrecorder.cpp:set_ctrls(): ") +
+@@ -820,6 +876,30 @@ bool MpegRecorder::SetV4L2DeviceOptions(
+     {
+         maxbitrate = high_mpeg4peakbitrate;
+         bitrate    = high_mpeg4avgbitrate;
++
++        // query supported audio codecs and prefer AC3
++        uint   idx;
++        struct v4l2_queryctrl qctrl;
++        qctrl.id = V4L2_CID_MPEG_AUDIO_ENCODING;
++
++        for (idx = 0; idx < 20; ++idx)
++        {
++            if (ioctl(chanfd, VIDIOC_QUERYCTRL, &qctrl) == 0)
++                break;
++            usleep(100 * 1000);
++        }
++
++        if (idx == 20)
++        {
++            VERBOSE(VB_IMPORTANT, LOC_WARN +
++                    "Unable to get supported audio codecs." + ENO);
++        }
++        else
++        {
++            if (qctrl.minimum != qctrl.maximum)
++                add_ext_ctrl(ext_ctrls, V4L2_CID_MPEG_AUDIO_ENCODING,
++                             qctrl.maximum);
++        }
+     }
+     maxbitrate = std::max(maxbitrate, bitrate);
+ 
+@@ -843,10 +923,19 @@ bool MpegRecorder::SetV4L2DeviceOptions(
+     int audioinput = audiodevice.toUInt(&ok);
+     if (ok)
+     {
++        uint   idx;
+         struct v4l2_audio ain;
+         bzero(&ain, sizeof(ain));
+         ain.index = audioinput;
+-        if (ioctl(chanfd, VIDIOC_ENUMAUDIO, &ain) < 0)
++
++        for (idx = 0; idx < 20; ++idx)
++        {
++            if (ioctl(chanfd, VIDIOC_ENUMAUDIO, &ain) == 0)
++                break;
++            usleep(100 * 1000);
++        }
++
++        if (idx == 20)
+         {
+             VERBOSE(VB_IMPORTANT, LOC_WARN +
+                     "Unable to get audio input.");
+@@ -854,7 +943,15 @@ bool MpegRecorder::SetV4L2DeviceOptions(
+         else
+         {
+             ain.index = audioinput;
+-            if (ioctl(chanfd, VIDIOC_S_AUDIO, &ain) < 0)
++
++            for (idx = 0; idx < 20; ++idx)
++            {
++                if (ioctl(chanfd, VIDIOC_S_AUDIO, &ain) == 0)
++                    break;
++                usleep(100 * 1000);
++            }
++
++            if (idx == 20)
+             {
+                 VERBOSE(VB_IMPORTANT, LOC_WARN +
+                         "Unable to set audio input.");
+@@ -1042,17 +1139,26 @@ void MpegRecorder::StartRecording(void)
+     if (deviceIsMpegFile)
+         elapsedTimer.start();
+     else if (_device_read_buffer)
+-        _device_read_buffer->Start();
++    {
++        VERBOSE(VB_RECORD, LOC + "Initial startup of recorder");
+ 
+-    needs_resolution = (driver == "hdpvr");
++        if (StartEncoding(readfd))
++            _device_read_buffer->Start();
++        else
++        {
++            VERBOSE(VB_IMPORTANT, LOC_ERR + "Failed to start recording");
++            recording = false;
++            QMutexLocker locker(&recording_wait_lock);
++            recording_wait.wakeAll();
++            _error = true;
++        }
++    }
+ 
+     QByteArray vdevice = videodevice.toAscii();
+     while (encoding && !_error)
+     {
+         if (PauseAndWait(100))
+             continue;
+-
+-        HandleResolutionChanges();
+         
+         if (deviceIsMpegFile)
+         {
+@@ -1096,35 +1202,7 @@ void MpegRecorder::StartRecording(void)
+             {
+                 VERBOSE(VB_IMPORTANT, LOC_ERR + "Device error detected");
+ 
+-                _device_read_buffer->Stop();
+-
+-                QMutexLocker locker(&start_stop_encoding_lock);
+-
+-                StopEncoding(readfd);
+-
+-                // Make sure the next things in the file are a PAT & PMT
+-                if (_stream_data->PATSingleProgram() &&
+-                    _stream_data->PMTSingleProgram())
+-                {
+-                    bool tmp = _wait_for_keyframe_option;
+-                    _wait_for_keyframe_option = false;
+-                    HandleSingleProgramPAT(_stream_data->PATSingleProgram());
+-                    HandleSingleProgramPMT(_stream_data->PMTSingleProgram());
+-                    _wait_for_keyframe_option = tmp;
+-                }
+-
+-                if (StartEncoding(readfd))
+-                {
+-                    _device_read_buffer->Start();
+-                }
+-                else
+-                {
+-                    if (0 != close(readfd))
+-                        VERBOSE(VB_IMPORTANT, LOC_ERR + "Close error" + ENO);
+-                    
+-                    // Force card to be reopened on next iteration..
+-                    readfd = -1;
+-                }
++                RestartEncoding();
+             }
+             else if (_device_read_buffer->IsEOF())
+             {
+@@ -1222,6 +1300,8 @@ void MpegRecorder::StartRecording(void)
+         }
+     }
+ 
++    VERBOSE(VB_RECORD, LOC + "StartRecording finishing up");
++
+     if (_device_read_buffer)
+     {
+         if (_device_read_buffer->IsRunning())
+@@ -1230,6 +1310,7 @@ void MpegRecorder::StartRecording(void)
+         delete _device_read_buffer;
+         _device_read_buffer = NULL;
+     }
++
+     StopEncoding(readfd);
+ 
+     FinishRecording();
+@@ -1379,19 +1460,14 @@ bool MpegRecorder::PauseAndWait(int time
+ 
+         if (!paused)
+         {
++            VERBOSE(VB_RECORD, LOC + "PauseAndWait pause");
++
+             if (_device_read_buffer)
+             {
+                 QMutex drb_lock;
+                 drb_lock.lock();
+-
+                 _device_read_buffer->SetRequestPause(true);
+-
+-                pauseWait.wait(&drb_lock, timeout);
+-            }
+-            else
+-            {
+-                paused = true;
+-                pauseWait.wakeAll();
++                _device_read_buffer->WaitForPaused(4000);
+             }
+ 
+             // Some drivers require streaming to be disabled before
+@@ -1399,32 +1475,76 @@ bool MpegRecorder::PauseAndWait(int time
+             if (requires_special_pause)
+                 StopEncoding(readfd);
+ 
++            paused = true;
++            pauseWait.wakeAll();
++
+             if (tvrec)
+                 tvrec->RecorderPaused();
+         }
+ 
+         unpauseWait.wait(&waitlock, timeout);
+     }
+-    if (!request_pause)
++
++    if (!request_pause && paused)
+     {
+-        if (paused)
++        VERBOSE(VB_RECORD, LOC + "PauseAndWait unpause");
++
++        if (driver == "hdpvr")
+         {
+-            // Some drivers require streaming to be disabled before
+-            // an input switch and other channel format setting.
+-            if (requires_special_pause)
+-                StartEncoding(readfd);
++            m_h264_parser.Reset();
++            _wait_for_keyframe_option = true;
++            _seen_sps = false;
++        }
+ 
+-            if (_device_read_buffer)
+-                _device_read_buffer->SetRequestPause(false);
++        // Some drivers require streaming to be disabled before
++        // an input switch and other channel format setting.
++        if (requires_special_pause)
++            StartEncoding(readfd);
++        
++        if (_device_read_buffer)
++            _device_read_buffer->SetRequestPause(false);
++        
++        if (_stream_data)
++            _stream_data->Reset(_stream_data->DesiredProgram());
+ 
+-            if (_stream_data)
+-                _stream_data->Reset(_stream_data->DesiredProgram());
+-        }
+         paused = false;
+     }
++
+     return paused;
+ }
+ 
++void MpegRecorder::RestartEncoding(void)
++{
++    VERBOSE(VB_RECORD, LOC + "RestartEncoding");
++
++    _device_read_buffer->Stop();
++    
++    QMutexLocker locker(&start_stop_encoding_lock);
++    
++    StopEncoding(readfd);
++    
++    // Make sure the next things in the file are a PAT & PMT
++    if (_stream_data->PATSingleProgram() &&
++        _stream_data->PMTSingleProgram())
++    {
++        _wait_for_keyframe_option = false;
++        HandleSingleProgramPAT(_stream_data->PATSingleProgram());
++        HandleSingleProgramPMT(_stream_data->PMTSingleProgram());
++    }
++    
++    if (StartEncoding(readfd))
++    {
++        _device_read_buffer->Start();
++    }
++    else
++    {
++        if (0 != close(readfd))
++            VERBOSE(VB_IMPORTANT, LOC_ERR + "Close error" + ENO);
++        
++        readfd = -1;
++    }
++}
++
+ bool MpegRecorder::StartEncoding(int fd)
+ {
+     QMutexLocker locker(&start_stop_encoding_lock);
+@@ -1433,13 +1553,22 @@ bool MpegRecorder::StartEncoding(int fd)
+     memset(&command, 0, sizeof(struct v4l2_encoder_cmd));
+     command.cmd = V4L2_ENC_CMD_START;
+ 
++    if (driver == "hdpvr")
++        HandleResolutionChanges();
++
+     VERBOSE(VB_RECORD, LOC + "StartEncoding");
+-    needs_resolution = (driver == "hdpvr");
+ 
+-    for (int idx = 0; idx < 10; ++idx)
++    for (int idx = 0; idx < 20; ++idx)
+     {
+         if (ioctl(fd, VIDIOC_ENCODER_CMD, &command) == 0)
+         {
++            if (driver == "hdpvr")
++            {
++                m_h264_parser.Reset();
++                _wait_for_keyframe_option = true;
++                _seen_sps = false;
++            }
++
+             VERBOSE(VB_RECORD, LOC + "Encoding started");
+             return true;
+         }
+@@ -1450,7 +1579,7 @@ bool MpegRecorder::StartEncoding(int fd)
+             return false;
+         }
+ 
+-        usleep(250 * 1000);
++        usleep(100 * 1000);
+     }
+ 
+     VERBOSE(VB_IMPORTANT, LOC_ERR + "StartEncoding - giving up" + ENO);
+@@ -1467,9 +1596,8 @@ bool MpegRecorder::StopEncoding(int fd)
+ 
+     VERBOSE(VB_RECORD, LOC + "StopEncoding");
+ 
+-    for (int idx = 0; idx < 10; ++idx)
++    for (int idx = 0; idx < 20; ++idx)
+     {
+-
+         if (ioctl(fd, VIDIOC_ENCODER_CMD, &command) == 0)
+         {
+             VERBOSE(VB_RECORD, LOC + "Encoding stopped");
+@@ -1482,7 +1610,7 @@ bool MpegRecorder::StopEncoding(int fd)
+             return false;
+         }
+ 
+-        usleep(250 * 1000);
++        usleep(100 * 1000);
+     }
+ 
+     VERBOSE(VB_IMPORTANT, LOC_ERR + "StopEncoding - giving up" + ENO);
+@@ -1550,7 +1678,7 @@ void MpegRecorder::HandleSingleProgramPA
+ void MpegRecorder::HandleSingleProgramPMT(ProgramMapTable *pmt)
+ {
+     if (!pmt)
+-{
++    {
+         return;
+     }
+ 
+@@ -1570,27 +1698,94 @@ void MpegRecorder::HandleSingleProgramPM
+         DTVRecorder::BufferedWrite(*(reinterpret_cast<TSPacket*>(&buf[i])));
+ }
+ 
+-void MpegRecorder::HandleResolutionChanges(void)
++bool MpegRecorder::WaitFor_HDPVR(void)
+ {
+-    if (!needs_resolution)
+-        return;
++    // After a resolution change, it can take the HD-PVR a few
++    // seconds before it is usable again.
++
++    // Tell it to start encoding, then wait for it to actually feed us
++    // some data.
++    QMutexLocker locker(&start_stop_encoding_lock);
++
++
++    // Sleep any less than 1.5 seconds, and the HD-PVR will
++    // return the old resolution, when the resolution is changing.
++    usleep(1500 * 1000);
+ 
++    struct v4l2_encoder_cmd command;
++    struct pollfd polls;
++    int    idx;
++
++    memset(&command, 0, sizeof(struct v4l2_encoder_cmd));
++    command.cmd = V4L2_ENC_CMD_START;
++
++    for (idx = 0; idx < 20; ++idx)
++    {
++        if (ioctl(readfd, VIDIOC_ENCODER_CMD, &command) == 0)
++            break;
++        usleep(100 * 1000);
++    }
++
++    if (idx == 20)
++        return false;
++
++    polls.fd      = readfd;
++    polls.events  = POLLIN;
++    polls.revents = 0;
++
++    for (idx = 0; idx < 10; ++idx)
++    {
++        if (poll(&polls, 1, 250) > 0)
++            break;
++    }
++
++    if (idx == 10)
++        return false;
++
++    // HD-PVR should now be "ready"
++    command.cmd = V4L2_ENC_CMD_STOP;
++
++    for (idx = 0; idx < 20; ++idx)
++    {
++        if (ioctl(readfd, VIDIOC_ENCODER_CMD, &command) == 0)
++            return true;
++        usleep(100 * 1000);
++    }
++
++    return false;
++}
++
++void MpegRecorder::HandleResolutionChanges(void)
++{
+     VERBOSE(VB_RECORD, LOC + "Checking Resolution");
+     struct v4l2_format vfmt;
+     memset(&vfmt, 0, sizeof(vfmt));
+     vfmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+             
++    if (driver == "hdpvr")
++        WaitFor_HDPVR();
++
++    uint idx;
+     uint pix = 0;
++
++    for (idx = 0; idx < 20; ++idx)
++    {
+     if (0 == ioctl(chanfd, VIDIOC_G_FMT, &vfmt))
+     {
+         VERBOSE(VB_RECORD, LOC + QString("Got Resolution %1x%2")
+                 .arg(vfmt.fmt.pix.width).arg(vfmt.fmt.pix.height));
+         pix = vfmt.fmt.pix.width * vfmt.fmt.pix.height;
+-        needs_resolution = false;
++            break;
++        }
++        // Typically takes 0.9 seconds after a resolution change
++        usleep(100 * 1000);
+     }
+ 
+     if (!pix)
++    {
++        VERBOSE(VB_RECORD, LOC + "Giving up detecting resolution");
+         return; // nothing to do, we don't have a resolution yet
++    }
+ 
+     int old_max = maxbitrate, old_avg = bitrate;
+     if (pix <= 768*568)
+@@ -1648,12 +1843,6 @@ void MpegRecorder::HandleResolutionChang
+                      maxbitrate * 1000);
+ 
+         set_ctrls(readfd, ext_ctrls);
+-    }
+ 
+-    // Restart streaming. Shouldn't be needed? seems to be with current driver.
+-    QMutexLocker locker(&start_stop_encoding_lock);
+-    StopEncoding(readfd);
+-    StartEncoding(readfd);
+-
+-    needs_resolution = false;
++    }
+ }
+Index: libs/libmythtv/mpegrecorder.h
+===================================================================
+--- libs/libmythtv/mpegrecorder.h.orig
++++ libs/libmythtv/mpegrecorder.h
+@@ -80,11 +80,13 @@ class MpegRecorder : public DTVRecorder,
+     uint GetFilteredAudioLayer(void) const;
+     uint GetFilteredAudioBitRate(uint audio_layer) const;
+ 
++    void RestartEncoding(void);
+     bool StartEncoding(int fd);
+     bool StopEncoding(int fd);
+ 
+     void ResetForNewFile(void);
+ 
++    bool WaitFor_HDPVR(void);
+     void HandleResolutionChanges(void);
+ 
+     inline bool CheckCC(uint pid, uint cc);
+@@ -104,7 +106,6 @@ class MpegRecorder : public DTVRecorder,
+     // State
+     bool recording;
+     bool encoding;
+-    bool needs_resolution;
+     mutable QMutex start_stop_encoding_lock;
+     QMutex recording_wait_lock;
+     QWaitCondition recording_wait;
+@@ -113,7 +114,7 @@ class MpegRecorder : public DTVRecorder,
+     bool cleartimeonpause;
+ 
+     // Encoding info
+-    int width, height;
++    uint width, height;
+     int bitrate, maxbitrate, streamtype, aspectratio;
+     int audtype, audsamplerate, audbitratel1, audbitratel2, audbitratel3;
+     int audvolume;
diff --git a/abs/core-testing/mythtv/trunk/mythtv/myth.sh b/abs/core-testing/mythtv/trunk/mythtv/myth.sh
new file mode 100755
index 0000000..fb7122c
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/myth.sh
@@ -0,0 +1,4 @@
+export PATH=$PATH:/usr/local/bin
+# set core file size to 0
+ulimit -c 0
+export MALLOC_CHECK_=0
\ No newline at end of file
diff --git a/abs/core-testing/mythtv/trunk/mythtv/mythbackend b/abs/core-testing/mythtv/trunk/mythtv/mythbackend
new file mode 100755
index 0000000..93773a2
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/mythbackend
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/bin/mythbackend`
+case "$1" in
+  start)
+    stat_busy "Starting MythTV Backend"
+    [ ! -e /var/run/mysqld.pid ] && echo -n "mysqld not started" && stat_fail && exit
+    [ -z "$PID" ] && /usr/bin/mythbackend -d -l /var/log/mythbackend.log -v important 
+    if [ $? -gt 0 ]; then
+      stat_fail
+    else
+      echo $PID > /var/run/mythbackend.pid
+      add_daemon mythbackend
+      stat_done
+    fi
+    ;;
+  stop)
+    stat_busy "Stopping MythTV Backend"
+    [ ! -z "$PID" ]  && kill $PID &>/dev/null
+    if [ $? -gt 0 ]; then
+      stat_fail
+    else
+      rm_daemon mythbackend
+      stat_done
+    fi
+    ;;
+  restart)
+    $0 stop
+    sleep 1s 
+    $0 start
+    ;;
+  *)
+    echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/abs/core-testing/mythtv/trunk/mythtv/mythbackend.sh b/abs/core-testing/mythtv/trunk/mythtv/mythbackend.sh
new file mode 100755
index 0000000..e7a7b70
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/mythbackend.sh
@@ -0,0 +1,117 @@
+#!/bin/bash
+#
+#	/etc/rc.d/init.d/mythbackend
+#
+# Starts the mythbackend as a daemon
+#
+# chkconfig: 345 90 10
+# description: Starts the mythbackend process as a daemon after the XWindows \
+#              system is started, in runlevel 5. This allows scheduled \
+#              recordings to occur without manual intervention.
+# processname: mythbackend
+
+# Copyright (c) by Michael Thomson <linux at m-thomson dot net>
+# With thanks to Stu Tomlinson <stu at nosnilmot dot com>
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+
+# Default values to use if none are supplied in the config file.
+# User who should start the mythbackend processes
+MBE_USER="root"
+# Directory holding the mythbackend binary
+MBE_LOCATION="/usr/local/bin/"
+# Name of mythbackend binary
+MBE_PROG="mythbackend"
+# Full path to mythbackend log file
+MBE_LOGFILE="/var/log/mythtv/mythbackend.log"
+
+# Source function library.
+. /etc/init.d/functions
+
+# Source config file if available
+if [ -f "/etc/sysconfig/mythbackend" ]; then
+  . /etc/sysconfig/mythbackend
+fi
+
+test -x ${MBE_LOCATION}${MBE_PROG} || exit 0
+
+RETVAL=0
+
+#
+#	See how we were called.
+#
+
+start() {
+	# Check if mythbackend is already running
+	if [ ! -f /var/lock/subsys/${MBE_PROG} ]; then
+	    echo -n "Starting ${MBE_PROG}: "
+	    # /usr/local/bin/mythbackend -d -l /some/log/file
+	    #daemon --user ${MBE_USER} ${MBE_LOCATION}${MBE_PROG} -d -l ${MBE_LOGFILE}
+	    ${MBE_LOCATION}${MBE_PROG} -d -l ${MBE_LOGFILE}
+	    RETVAL=$?
+	    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/${MBE_PROG}
+	    echo
+	fi
+	return $RETVAL
+}
+
+stop() {
+	echo -n "Stopping ${MBE_PROG}: "
+	killproc ${MBE_LOCATION}${MBE_PROG}
+	RETVAL=$?
+	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/${MBE_PROG}
+	echo
+        return $RETVAL
+}
+
+
+restart() {
+	stop
+	start
+}	
+
+reload() {
+	restart
+}	
+
+status_at() {
+ 	status ${MBE_LOCATION}${MBE_PROG}
+}
+
+case "$1" in
+start)
+	start
+	;;
+stop)
+	stop
+	;;
+reload|restart)
+	restart
+	;;
+condrestart)
+	if [ -f /var/lock/subsys/${MBE_PROG} ]; then
+	    restart
+	fi
+	;;
+status)
+	status_at
+	;;
+*)
+	echo "Usage: $0 {start|stop|restart|condrestart|status}"
+	exit 1
+esac
+
+exit $?
+exit $RETVAL
diff --git a/abs/core-testing/mythtv/trunk/mythtv/mythtv.install b/abs/core-testing/mythtv/trunk/mythtv/mythtv.install
new file mode 100755
index 0000000..513852a
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/mythtv.install
@@ -0,0 +1,55 @@
+
+# arg 1:  the new package version
+pre_install () {
+        echo "backing up the database"
+                dbver=`pacman -Q mythtv-svn | awk  ' { print $2 } '`
+        if [ ! -e /data/databases_backup ]
+        then
+                mkdir -p /data/database_backup
+        fi
+        mysqldump -u mythtv -pmythtv mythconverg -c > /data/database_backup/${dbver}.dump.sql
+}
+
+post_install() {
+  	mkdir -p /data/home
+        /usr/sbin/useradd -G users,video,audio,optical -m -d /data/home/mythtv mythtv
+        /usr/sbin/usermod -G users,video,audio,optical mythtv
+#        mkdir /var/log/mythtv
+#        chown -R mythtv:users /var/log/mythtv
+        dbver=`pacman -Q mythtv-svn | awk  ' { print $2 } '`
+        if [ ! -e /data/database_backup ]
+        then
+                mkdir -p /data/database_backup
+        fi
+	chown mythtv:nobody /data/database_backup
+	chmod g+s  /data/database_backup
+        
+	mysqldump -u mythtv -pmythtv mythconverg -c > /data/database_backup/${dbver}.dump.sql
+
+
+}
+pre_upgrade () {
+ pre_install
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+post_upgrade() {
+  post_install
+
+  /bin/true
+}
+
+# arg 1:  the old package version
+pre_remove() {
+  /bin/true
+}
+
+# arg 1:  the old package version
+post_remove() {
+/bint/true
+}
+
+op=$1
+shift
+$op $*
diff --git a/abs/core-testing/mythtv/trunk/mythtv/smolt_jump.patch b/abs/core-testing/mythtv/trunk/mythtv/smolt_jump.patch
new file mode 100644
index 0000000..0fc452a
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/smolt_jump.patch
@@ -0,0 +1,30 @@
+Index: programs/mythfrontend/networkcontrol.cpp
+===================================================================
+--- programs/mythfrontend/networkcontrol.cpp	(revision 19291)
++++ programs/mythfrontend/networkcontrol.cpp	(working copy)
+@@ -83,6 +83,7 @@
+     jumpMap["zoneminderliveview"]    = "ZoneMinder Live View";
+     jumpMap["zoneminderevents"]      = "ZoneMinder Events";
+     jumpMap["snapshot"]              = "ScreenShot";
++    jumpMap["mythsmolt"]             = "MythSmolt";
+ 
+     // These jump point names match the (lowercased) locations from gContext
+     jumpMap["channelrecpriority"]    = "Channel Recording Priorities";
+@@ -191,7 +192,7 @@
+     pthread_create(&command_thread, NULL, CommandThread, this);
+ 
+     gContext->addListener(this);
+-    
++
+     connect(this, SIGNAL(newConnection()), this, SLOT(newConnection()));
+ }
+ 
+@@ -307,7 +308,7 @@
+         cs = new QTextStream(s);
+         cs->setCodec("UTF-8");
+     }
+-    
++
+     if (client)
+     {
+         closedOldConn = true;
diff --git a/abs/core-testing/mythtv/trunk/mythtv/svn_main_menu_popup.patch b/abs/core-testing/mythtv/trunk/mythtv/svn_main_menu_popup.patch
new file mode 100644
index 0000000..5556683
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/svn_main_menu_popup.patch
@@ -0,0 +1,211 @@
+Index: libs/libmythui/myththemedmenu.h
+===================================================================
+--- libs/libmythui/myththemedmenu.h	(revision 19291)
++++ libs/libmythui/myththemedmenu.h	(working copy)
+@@ -2,6 +2,7 @@
+ #define MYTHTHEMEDMENU_H_
+ 
+ #include "mythscreentype.h"
++#include "mythdialogbox.h"
+ #include "mythuistatetype.h"
+ #include "mythuibuttonlist.h"
+ #include "xmlparsebase.h"
+@@ -77,6 +78,11 @@
+     void ReloadExitKey(void);
+     virtual void aboutToShow(void);
+ 
++    void doMenu();
++    void aboutScreen();
++    MythDialogBox *m_menuPopup;
++    void customEvent(QEvent *event);
++
+   protected:
+     virtual bool keyPressEvent(QKeyEvent *e);
+ 
+Index: libs/libmythui/myththemedmenu.cpp
+===================================================================
+--- libs/libmythui/myththemedmenu.cpp	(revision 19291)
++++ libs/libmythui/myththemedmenu.cpp	(working copy)
+@@ -32,6 +32,7 @@
+     m_callbackdata = NULL;
+ 
+     m_killable = false;
++
+ }
+ 
+ MythThemedMenuState::~MythThemedMenuState()
+@@ -95,7 +96,7 @@
+     m_exitModifier = -1;
+     m_menumode = "";
+     m_buttonList = NULL;
+-
++    m_menuPopup = NULL;
+     if (!m_state)
+     {
+         m_state = new MythThemedMenuState(parent, "themedmenustate");
+@@ -271,6 +272,10 @@
+                 m_wantpop = true;
+             }
+         }
++        else if (action == "MENU")
++        {
++            doMenu();
++        }
+         else
+             handled = false;
+     }
+@@ -292,6 +297,154 @@
+     updateLCD();
+ }
+ 
++void MythThemedMenu::doMenu()
++{
++
++    if (m_menuPopup)
++        return;
++    int allowsd =  GetMythDB()->GetNumSetting("AllowQuitShutdown");
++    int override_menu = GetMythDB()->GetNumSetting("OverRideExitMenu");
++    QString label = "System Menu";
++    MythScreenStack *mainStack = GetMythMainWindow()->GetMainStack();
++    m_menuPopup = new MythDialogBox(label, mainStack, "menuPopup");
++    if (m_menuPopup->Create())
++        mainStack->AddScreen(m_menuPopup);
++    if ( override_menu == 0 )
++    {
++        if ( allowsd != 0 && allowsd !=4  )
++        {
++            m_menuPopup->SetReturnEvent(this,"popmenu_exit");
++            m_menuPopup->AddButton("Shutdown");
++            m_menuPopup->AddButton("Reboot");
++        }
++        else
++        {
++            m_menuPopup->SetReturnEvent(this,"popmenu_noexit");
++        }
++    }
++    if ( override_menu == 5 )
++    { // reboot
++        m_menuPopup->SetReturnEvent(this,"popmenu_reboot");
++        m_menuPopup->AddButton("Reboot");
++    }
++    else if ( override_menu == 2 || override_menu == 4 )
++    { // shutdown
++            m_menuPopup->SetReturnEvent(this,"popmenu_shutdown");
++            m_menuPopup->AddButton("Shutdown");
++    }
++    else if ( override_menu == 3 || override_menu == 6 )
++    { //    both
++        m_menuPopup->SetReturnEvent(this,"popmenu_exit");
++        m_menuPopup->AddButton("Shutdown");
++        m_menuPopup->AddButton("Reboot");
++    }
++    else
++    {
++        m_menuPopup->SetReturnEvent(this,"popmenu_noexit");
++    }
++
++    m_menuPopup->AddButton("About");
++    m_menuPopup->AddButton("Cancel");
++
++}
++void MythThemedMenu::aboutScreen()
++{
++
++    extern const char *myth_source_version;
++    extern const char *myth_source_path;
++    QString distro_line;
++    distro_line="";
++
++    QFile file("/etc/os_myth_release");
++    if ( file.open(QFile::ReadOnly))
++    {
++        QTextStream t( &file );        // use a text stream
++        distro_line = t.readLine();
++        file.close();
++    }
++
++    QString label = "";
++    label.append(QObject::tr("Revision: ") + myth_source_version   + "  \n  Branch:" +  myth_source_path  + "\n" + distro_line );
++
++    MythScreenStack *mainStack = GetMythMainWindow()->GetMainStack();
++    m_menuPopup = new MythDialogBox(label, mainStack, "About");
++    if (m_menuPopup->Create())
++        mainStack->AddScreen(m_menuPopup);
++
++    m_menuPopup->SetReturnEvent(this,"About");
++    m_menuPopup->AddButton("OK!");
++
++}
++
++void MythThemedMenu::customEvent(QEvent *event)
++{
++    if (event->type() == kMythDialogBoxCompletionEventType)
++    {
++        DialogCompletionEvent *dce =
++                dynamic_cast<DialogCompletionEvent*>(event);
++        QString resultid= dce->GetId();
++        int buttonnum  = dce->GetResult();
++        QString halt_cmd=GetMythDB()->GetSetting("HaltCommand");
++        QString reboot_cmd=GetMythDB()->GetSetting("RebootCommand");
++
++        if (resultid == "popmenu_exit")
++        {
++            if (buttonnum == 0)
++            {
++                if (!halt_cmd.isEmpty() )
++                    system(halt_cmd.toAscii());
++            }
++
++            if (buttonnum == 1)
++            {
++                if (!reboot_cmd.isEmpty() )
++                    system(reboot_cmd.toAscii());
++            }
++
++            if (buttonnum == 2)
++            {
++                aboutScreen();
++            }
++        }
++
++        if (resultid == "popmenu_noexit")
++        {
++            if (buttonnum == 0)
++                aboutScreen();
++        }
++
++        if (resultid == "popmenu_reboot")
++        {
++            if (buttonnum == 0)
++            {
++                if (!reboot_cmd.isEmpty() )
++                    system(reboot_cmd.toAscii());
++            }
++
++            if (buttonnum == 1)
++            {
++                aboutScreen();
++            }
++        }
++
++        if (resultid == "popmenu_shutdown")
++        {
++            if (buttonnum == 0)
++            {
++                if (!halt_cmd.isEmpty() )
++                    system(halt_cmd.toAscii());
++            }
++
++            if (buttonnum == 1)
++            {
++                aboutScreen();
++            }
++        }
++
++        m_menuPopup = NULL;
++    }
++}
++
+ /** \brief Parses the element's tags and set the ThemeButton's type,
+  *         text, depends, and action, then adds the button.
+  *
diff --git a/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD b/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD
new file mode 100644
index 0000000..4087034
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD
@@ -0,0 +1,36 @@
+pkgname=mythvideo-svn
+pkgver=16153
+pkgrel=2
+pkgdesc="Video playback and browsing plugin for MythTV"
+url="http://www.mythtv.org"
+arch=('i686')
+depends=('mythtv-svn'  'perlxml' 'perl-libwww' 'perl-uri' 'perl-xml-simple' 'ffmpeg')
+license="GPL"
+conflicts=('mythtv-plugins-svn')
+groups=('mythtv-all-plugins-svn')
+
+source=()
+_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
+_svnmod=mythplugins
+
+
+build() {
+	cd $startdir/src/
+	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+	cd $startdir/src/mythplugins
+  	make distclean 
+	PLUGIN=mythvideo
+	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
+	if [ $? != 0 ]
+	then
+			echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
+				msg "appending program lib"
+			fi
+   ./configure  --disable-all --enable-mythvideo  --enable-transcode  
+
+   make -j 2 || return 1
+
+   make INSTALL_ROOT=$startdir/pkg install
+}
+md5sums=('2a9fbf45ae58a3a35857ce8d7c4d12db')
diff --git a/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD b/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD
new file mode 100644
index 0000000..98542b9
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD
@@ -0,0 +1,35 @@
+pkgname=mythweather-svn
+pkgver=16153
+pkgrel=6
+pkgdesc="Weather checking plugin for MythTV"
+url="http://www.mythtv.org"
+arch=('i686')
+depends=('mythtv-svn' 'wget' 'perl-xml-sax' 'perl-soap-lite' 'perl-image-size'  'imagemagick')
+conflicts=('mythtv-plugins-svn')
+groups=('mythtv-all-plugins-svn')
+license="GPL"
+source=()
+_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
+_svnmod=mythplugins
+
+
+build() {
+	cd $startdir/src/
+	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+	cd $startdir/src/mythplugins
+	make distclean
+	PLUGIN=mythweather
+	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
+	if [ $? != 0 ]
+	then
+			echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
+				msg "appending program lib"
+			fi
+   ./configure  --enable-opengl --disable-all --enable-mythweather
+ 
+   make -j 2 || return 1
+
+   make INSTALL_ROOT=$startdir/pkg install
+}
+md5sums=('2a9fbf45ae58a3a35857ce8d7c4d12db')
diff --git a/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD b/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD
new file mode 100755
index 0000000..52eb059
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD
@@ -0,0 +1,35 @@
+pkgname=mythweb-svn
+pkgver=16153
+pkgrel=20
+pkgdesc="mythweb" 
+url="http://www.mythtv.org" 
+license="GPL" 
+arch=('i686')
+depends=(php fcgi libmysqlclient ) 
+conflicts=('mythweb' 'mythweb-fixes') 
+replaces=() 
+backup=() 
+install='mythweb.install' 
+source=(mythweblighttpd.patch dblogininit.inc ) 
+md5sums=() 
+_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
+_svnmod=mythplugins
+
+build() { 
+echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+#svn co http://cvs.mythtv.org/svn/trunk/mythtv
+#svn co http://cvs.mythtv.org/svn/trunk/mythplugins
+#svn co http://cvs.mythtv.org/svn/trunk/myththemes
+cd $startdir/src/mythplugins
+
+#take care of fing mythweb
+mkdir -p $startdir/pkg/data/srv/httpd/htdocs/
+cp -rp mythweb $startdir/pkg/data/srv/httpd/htdocs/
+cp -f $startdir/src/dblogininit.inc $startdir/pkg/data/srv/httpd/htdocs/mythweb/includes/
+cd  $startdir/pkg/data/srv/httpd/htdocs/mythweb/includes
+patch -p0 < $startdir/src/mythweblighttpd.patch
+
+chown -R nobody:nobody $startdir/pkg/data/srv/httpd/htdocs/mythweb
+chmod -R  775 $startdir/pkg/data/srv/httpd/htdocs/mythweb
+}
diff --git a/abs/core-testing/mythtv/trunk/mythweb/dblogininit.inc b/abs/core-testing/mythtv/trunk/mythweb/dblogininit.inc
new file mode 100755
index 0000000..c5395c5
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythweb/dblogininit.inc
@@ -0,0 +1,6 @@
+<?
+ $_SERVER["db_server"] = "localhost";
+ $_SERVER["db_name"] = "mythconverg";
+ $_SERVER["db_login"] = "mythtv";
+ $_SERVER["db_password"] = "mythtv";
+?>
diff --git a/abs/core-testing/mythtv/trunk/mythweb/mythweb.install b/abs/core-testing/mythtv/trunk/mythweb/mythweb.install
new file mode 100755
index 0000000..9162d98
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythweb/mythweb.install
@@ -0,0 +1,37 @@
+
+# arg 1:  the new package version
+pre_install () {
+/bin/true
+}
+
+post_install() {
+	cp /etc/lighttpd/lighttpd.conf /tmp
+	sed -e "s/# .*  \"mod_fastcgi\",/\"mod_fastcgi\"\,/g" /tmp/lighttpd.conf > /etc/lighttpd/lighttpd.conf
+ 
+
+}
+pre_upgrade () {
+ pre_install
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+post_upgrade() {
+  post_install
+
+  /bin/true
+}
+
+# arg 1:  the old package version
+pre_remove() {
+  /bin/true
+}
+
+# arg 1:  the old package version
+post_remove() {
+/bint/true
+}
+
+op=$1
+shift
+$op $*
diff --git a/abs/core-testing/mythtv/trunk/mythweb/mythweblighttpd.patch b/abs/core-testing/mythtv/trunk/mythweb/mythweblighttpd.patch
new file mode 100755
index 0000000..6403a88
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythweb/mythweblighttpd.patch
@@ -0,0 +1,13 @@
+--- database.php.orig	2007-12-31 21:25:30.000000000 +0000
++++ database.php	2007-12-31 21:25:50.000000000 +0000
+@@ -18,6 +18,10 @@
+         custom_error("Please install the MySQL libraries for PHP.\n"
+                     .'The package is usually called something like php-mysql.');
+     }
++     if (empty($_SERVER['db_server']) || empty($_SERVER['db_name']) || empty($_SERVER['db_login'])) {
++	      require_once 'dblogininit.inc';
++	      }
++	
+ 
+ // No database connection info defined?
+     if (empty($_SERVER['db_server']) || empty($_SERVER['db_name']) || empty($_SERVER['db_login'])) {
diff --git a/abs/core-testing/mythtv/trunk/mythweb/xris/dblogininit.inc b/abs/core-testing/mythtv/trunk/mythweb/xris/dblogininit.inc
new file mode 100755
index 0000000..c5395c5
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythweb/xris/dblogininit.inc
@@ -0,0 +1,6 @@
+<?
+ $_SERVER["db_server"] = "localhost";
+ $_SERVER["db_name"] = "mythconverg";
+ $_SERVER["db_login"] = "mythtv";
+ $_SERVER["db_password"] = "mythtv";
+?>
diff --git a/abs/core-testing/mythtv/trunk/mythweb/xris/lighttpd.conf b/abs/core-testing/mythtv/trunk/mythweb/xris/lighttpd.conf
new file mode 100755
index 0000000..ff4e7dd
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythweb/xris/lighttpd.conf
@@ -0,0 +1,332 @@
+# lighttpd configuration file
+
+############ Options you really have to take care of ####################
+
+## modules to load
+# at least mod_access and mod_accesslog should be loaded
+# all other module should only be loaded if really neccesary
+# - saves some time
+# - saves memory
+server.modules              = (
+                                "mod_rewrite",
+#                               "mod_redirect",
+#                               "mod_alias",
+                                "mod_access",
+#                               "mod_cml",
+#                               "mod_trigger_b4_dl",
+#                               "mod_auth",
+                                "mod_status",
+                                "mod_setenv",
+#fast_cgi needs to be enabled for mythweb, as all mythweb requests are passed to php-cgi.
+				"mod_fastcgi",
+#                               "mod_proxy",
+#                               "mod_simple_vhost",
+#                               "mod_evhost",
+#                               "mod_userdir",
+                                "mod_cgi",
+#                               "mod_compress",
+#                               "mod_ssi",
+#                               "mod_usertrack",
+#                               "mod_expire",
+#                               "mod_secdownload",
+#                               "mod_rrdtool",
+                                "mod_accesslog" )
+
+## a static document-root, for virtual-hosting take look at the
+## server.virtual-* options
+server.document-root        = "/data/srv/httpd/htdocs"
+
+## where to send error-messages to
+server.errorlog             = "/var/log/lighttpd/error.log"
+
+# files to check for if .../ is requested
+index-file.names            = ( "index.php", "index.html",
+                                "index.htm", "default.htm","mythweb.php")
+
+# mimetype mapping
+mimetype.assign             = (
+  ".pdf"          =>      "application/pdf",
+  ".sig"          =>      "application/pgp-signature",
+  ".spl"          =>      "application/futuresplash",
+  ".class"        =>      "application/octet-stream",
+  ".ps"           =>      "application/postscript",
+  ".torrent"      =>      "application/x-bittorrent",
+  ".dvi"          =>      "application/x-dvi",
+  ".gz"           =>      "application/x-gzip",
+  ".pac"          =>      "application/x-ns-proxy-autoconfig",
+  ".swf"          =>      "application/x-shockwave-flash",
+  ".tar.gz"       =>      "application/x-tgz",
+  ".tgz"          =>      "application/x-tgz",
+  ".tar"          =>      "application/x-tar",
+  ".zip"          =>      "application/zip",
+  ".mp3"          =>      "audio/mpeg",
+  ".m3u"          =>      "audio/x-mpegurl",
+  ".wma"          =>      "audio/x-ms-wma",
+  ".wax"          =>      "audio/x-ms-wax",
+  ".ogg"          =>      "application/ogg",
+  ".wav"          =>      "audio/x-wav",
+  ".gif"          =>      "image/gif",
+  ".jpg"          =>      "image/jpeg",
+  ".jpeg"         =>      "image/jpeg",
+  ".png"          =>      "image/png",
+  ".xbm"          =>      "image/x-xbitmap",
+  ".xpm"          =>      "image/x-xpixmap",
+  ".xwd"          =>      "image/x-xwindowdump",
+  ".css"          =>      "text/css",
+  ".html"         =>      "text/html",
+  ".htm"          =>      "text/html",
+  ".js"           =>      "text/javascript",
+  ".asc"          =>      "text/plain",
+  ".c"            =>      "text/plain",
+  ".cpp"          =>      "text/plain",
+  ".log"          =>      "text/plain",
+  ".conf"         =>      "text/plain",
+  ".text"         =>      "text/plain",
+  ".txt"          =>      "text/plain",
+  ".dtd"          =>      "text/xml",
+  ".xml"          =>      "text/xml",
+  ".mpeg"         =>      "video/mpeg",
+  ".mpg"          =>      "video/mpeg",
+  ".mov"          =>      "video/quicktime",
+  ".qt"           =>      "video/quicktime",
+  ".avi"          =>      "video/x-msvideo",
+  ".asf"          =>      "video/x-ms-asf",
+  ".asx"          =>      "video/x-ms-asf",
+  ".wmv"          =>      "video/x-ms-wmv",
+  ".bz2"          =>      "application/x-bzip",
+  ".tbz"          =>      "application/x-bzip-compressed-tar",
+  ".tar.bz2"      =>      "application/x-bzip-compressed-tar",
+  ".nuv"	  =>	  "video/nuppelvideo"
+ )
+
+
+# Use the "Content-Type" extended attribute to obtain mime type if possible
+mimetype.use-xattr        = "enable"
+
+
+## send a different Server: header
+## be nice and keep it at lighttpd
+#server.tag                 = "lighttpd"
+
+#### accesslog module
+accesslog.filename          = "/var/log/lighttpd/access.log"
+
+## deny access the file-extensions
+#
+# ~    is for backupfiles from vi, emacs, joe, ...
+# .inc is often used for code includes which should in general not be part
+#      of the document-root
+url.access-deny             = ( "~", ".inc" )
+
+$HTTP["url"] =~ "\.pdf$" {
+  server.range-requests = "disable"
+}
+
+######### Options that are good to be but not neccesary to be changed #######
+
+## bind to port (default: 80)
+#server.port                = 80
+
+## bind to localhost (default: all interfaces)
+#server.bind                = "grisu.home.kneschke.de"
+
+## error-handler for status 404
+#server.error-handler-404   = "/error-handler.html"
+#server.error-handler-404   = "/error-handler.php"
+
+## to help the rc.scripts
+server.pid-file            = "/var/run/lighttpd.pid"
+
+
+###### virtual hosts
+##
+##  If you want name-based virtual hosting add the next three settings and load
+##  mod_simple_vhost
+##
+## document-root =
+##   virtual-server-root + virtual-server-default-host + virtual-server-docroot
+## or
+##   virtual-server-root + http-host + virtual-server-docroot
+##
+#simple-vhost.server-root   = "/home/lighttpd/vhosts/"
+#simple-vhost.default-host  = "lighttpd.localhost"
+#simple-vhost.document-root = "/pages/"
+##
+## Format: <errorfile-prefix><status-code>.html
+## -> ..../status-404.html for 'File not found'
+#server.errorfile-prefix    = "/home/weigon/projects/lighttpd/doc/status-"
+
+## virtual directory listings
+#server.dir-listing         = "enable"
+
+## enable debugging
+#debug.log-request-header   = "enable"
+#debug.log-response-header  = "enable"
+#debug.log-request-handling = "enable"
+#debug.log-file-not-found   = "enable"
+
+### only root can use these options
+#
+# chroot() to directory (default: no chroot() )
+#server.chroot              = "/"
+
+## change uid to <uid> (default: don't care)
+server.username             = "nobody"
+
+## change uid to <uid> (default: don't care)
+server.groupname            = "nobody"
+
+#### compress module
+#compress.cache-dir         = "/home/lighttpd/cache/"
+#compress.filetype          = ("text/plain", "text/html")
+
+#### proxy module
+## read proxy.txt for more info
+#proxy.server               = ( ".php" =>
+#                               ( "localhost" =>
+#                                 (
+#                                   "host" => "192.168.0.101",
+#                                   "port" => 80
+#                                 )
+#                               )
+#                             )
+
+
+
+
+## fastcgi module
+## read fastcgi.txt for more info
+## adjust the value of bin-path for your system.  
+## If you intend to process alot of requests at the same time, increase
+##  the value of min-procs and max-procs
+
+fastcgi.server = ( ".php" =>
+ ( "localhost" =>
+   (
+     "socket" => "/tmp/php-fastcgi.socket",
+     "bin-path" => "/usr/bin/php-cgi",
+     "min-procs" => 0,
+     "max-procs" => 1,
+     "max-load-per-proc" => 1,
+     "idle-timeout" => 10,
+     # Fix PATH_INFO for PHP scripts that rely on it (like Wordpress and mythweb).
+      "broken-scriptfilename" => "enable"
+    )
+ )
+)
+
+
+#the rewrite rule for mythweb.
+#This assumes that mythweb is installed at document.root/mythweb
+
+ url.rewrite = (
+   "^/mythweb(/tv.*|/music.*|/video.*|/weather.*|/settings.*|/status.*|/backend_log.*)$" =>   "mythweb/mythweb.php/$1"
+ )
+
+
+#### CGI module
+cgi.assign                 = ( ".pl"  => "/usr/bin/perl")
+
+
+
+#### SSL engine
+#$SERVER["socket"] == "0.0.0.0:443" {
+#  ssl.engine                  = "enable"
+#  ssl.pemfile                 = "/home/lighttpd/ssl/server.pem"
+#  server.errorlog             = "/var/log/lighttpd/error-ssl.log"
+#  accesslog.filename          = "/var/log/lighttpd/access-ssl.log"
+#  server.document-root        = "/home/lighttpd/html-ssl"
+#}
+
+
+
+#### status module
+status.status-url          = "/server-status"
+status.config-url          = "/server-config"
+
+#### auth module
+## read authentication.txt for more info
+#auth.backend               = "plain"
+#auth.backend.plain.userfile = "lighttpd.user"
+#auth.backend.plain.groupfile = "lighttpd.group"
+
+#auth.backend.ldap.hostname = "localhost"
+#auth.backend.ldap.base-dn  = "dc=my-domain,dc=com"
+#auth.backend.ldap.filter   = "(uid=$)"
+#auth.require               = ( "/server-status" =>
+#                               (
+#                                 "method"  => "digest",
+#                                 "realm"   => "download archiv",
+#                                 "require" => "user=jan"
+#                               ),
+#                               "/server-info" =>
+#                               (
+#                                 "method"  => "digest",
+#                                 "realm"   => "download archiv",
+#                                 "require" => "valid-user"
+#                               )
+#                             )
+
+#### url handling modules (rewrite, redirect, access)
+#url.rewrite                = ( "^/$"             => "/server-status" )
+#url.redirect               = ( "^/wishlist/(.+)" => "http://www.123.org/$1" )
+
+#
+# define a pattern for the host url finding
+# %% => % sign
+# %0 => domain name + tld
+# %1 => tld
+# %2 => domain name without tld
+# %3 => subdomain 1 name
+# %4 => subdomain 2 name
+#
+#evhost.path-pattern        = "/home/storage/dev/www/%3/htdocs/"
+
+#### expire module
+#expire.url                 = ( "/buggy/" => "access 2 hours", "/asdhas/" => "access plus 1 seconds 2 minutes")
+
+#### ssi
+#ssi.extension              = ( ".shtml" )
+
+#### rrdtool
+#rrdtool.binary             = "/usr/bin/rrdtool"
+#rrdtool.db-name            = "/var/www/lighttpd.rrd"
+
+#### setenv
+#setenv.add-request-header  = ( "TRAV_ENV" => "mysql://user@host/db" )
+#setenv.add-response-header = ( "X-Secret-Message" => "42" )
+## for mod_trigger_b4_dl
+# trigger-before-download.gdbm-filename = "/home/weigon/testbase/trigger.db"
+# trigger-before-download.memcache-hosts = ( "127.0.0.1:11211" )
+# trigger-before-download.trigger-url = "^/trigger/"
+# trigger-before-download.download-url = "^/download/"
+# trigger-before-download.deny-url = "http://127.0.0.1/index.html"
+# trigger-before-download.trigger-timeout = 10
+
+## for mod_cml
+## don't forget to add index.cml to server.indexfiles
+# cml.extension               = ".cml"
+# cml.memcache-hosts          = ( "127.0.0.1:11211" )
+
+#### variable usage:
+## variable name without "." is auto prefixed by "var." and becomes "var.bar"
+#bar = 1
+#var.mystring = "foo"
+
+## integer add
+#bar += 1
+## string concat, with integer cast as string, result: "www.foo1.com"
+#server.name = "www." + mystring + var.bar + ".com"
+## array merge
+#index-file.names = (foo + ".php") + index-file.names
+#index-file.names += (foo + ".php")
+
+#### include
+#include /etc/lighttpd/lighttpd-inc.conf
+## same as above if you run: "lighttpd -f /etc/lighttpd/lighttpd.conf"
+#include "lighttpd-inc.conf"
+
+#### include_shell
+#include_shell "echo var.a=1"
+## the above is same as:
+#var.a=1
diff --git a/abs/core-testing/mythtv/trunk/mythweb/xris/mythweblighttpd.patch b/abs/core-testing/mythtv/trunk/mythweb/xris/mythweblighttpd.patch
new file mode 100755
index 0000000..bebc93e
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythweb/xris/mythweblighttpd.patch
@@ -0,0 +1,16 @@
+--- init.php.orig	2006-11-23 21:37:13.000000000 +0000
++++ init.php	2006-11-23 21:40:04.000000000 +0000
+@@ -75,7 +75,12 @@
+         custom_error("Please install the MySQL libraries for PHP.\n"
+                     .'The package is usually called something like php-mysql.');
+     }
+-
++    
++    
++// No database connection info defined?
++    if (empty($_SERVER['db_server']) || empty($_SERVER['db_name']) || empty($_SERVER['db_login'])) {
++    require_once 'dblogininit.inc';
++    }
+ // No database connection info defined?
+     if (empty($_SERVER['db_server']) || empty($_SERVER['db_name']) || empty($_SERVER['db_login'])) {
+         tailored_error('db_vars_error');
diff --git a/abs/core-testing/mythtv/trunk/plugins/mytharchive/PKGBUILD b/abs/core-testing/mythtv/trunk/plugins/mytharchive/PKGBUILD
deleted file mode 100644
index 4d3e179..0000000
--- a/abs/core-testing/mythtv/trunk/plugins/mytharchive/PKGBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-pkgname=mytharchive-svn
-pkgver=16153
-pkgrel=3
-pkgdesc="MythTV plugin that lets you create DVDs from or archive your recorded shows."
-arch=('i686')
-url="http://www.mythtv.org"
-license=('GPL')
-depends=('mythtv-svn' 'libxmu' 'mysql-python' 'pil' 'dvdauthor')
-source=()
-conflicts=('mythtv-plugins-svn')
-groups=('mythtv-all-plugins-svn')
-_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
-_svnmod=mythplugins
-
-
-build() {
-   	PLUGIN=mytharchive
-   	cd $startdir/src/
-   	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-   	cd $startdir/src/mythplugins
-
-   	PLUGIN=mytharchive
-   	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-	if [ $? != 0 ]
-	then
-		echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-		msg "appending program lib"
-	fi
-	msg "Correcting configure    kde3 to kde"
-	 sed -i 's#kde3#kde#' configure || return 1
-	make distclean
-   	./configure  --enable-opengl --disable-all   --enable-create-archive --enable-create-dvd --enable-mytharchive || return 1
-	qmake mythplugins.pro || return 1
-	make qmake || return 1
-	msg "Correcting Makefile    kde3 to kde"
-	sed -i 's#kde3#kde#' ./mytharchive/mytharchive/Makefile || return 1
-   	make -j 2 || return 1
-	make INSTALL_ROOT=$startdir/pkg install
-}
-
-
diff --git a/abs/core-testing/mythtv/trunk/plugins/mythbrowser/PKGBUILD b/abs/core-testing/mythtv/trunk/plugins/mythbrowser/PKGBUILD
deleted file mode 100644
index 4c57cf0..0000000
--- a/abs/core-testing/mythtv/trunk/plugins/mythbrowser/PKGBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-
-pkgname=mythbrowser-svn
-pkgver=16153
-pkgrel=2
-pkgdesc="Mini web browser for MythTV"
-url="http://www.mythtv.org"
-arch=('i686')
-depends=('mythtv-svn' 'wget' 'libxvmc' 'kdelibs')
-conflicts=('mythtv-plugins-svn')
-groups=('mythtv-all-plugins-svn')
-license="GPL"
-source=()
-_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
-_svnmod=mythplugins
-
-build() {
-   cd $startdir/src/
-	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-   cd $startdir/src/mythplugins
-   pwd
-   PLUGIN=mythbrowser
-   grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-   if [ $? != 0 ]
-   then
-	   	echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-			msg "appending program lib"
-		fi
-	make distclean
-   ./configure  --enable-opengl --disable-all --enable-mythbrowser || return 1
- #  sed -i 's#kde3#kde#' ./mythbrowser/mythbrowser/Makefile || return 1
-   make || return 1
-
-   make INSTALL_ROOT=$startdir/pkg install
-}
diff --git a/abs/core-testing/mythtv/trunk/plugins/mythcontrols/PKGBUILD b/abs/core-testing/mythtv/trunk/plugins/mythcontrols/PKGBUILD
deleted file mode 100644
index f4d6da6..0000000
--- a/abs/core-testing/mythtv/trunk/plugins/mythcontrols/PKGBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-pkgname=mythcontrols-svn
-pkgver=16153
-pkgrel=5
-pkgdesc="Experimental controls for MythTV"
-url="http://www.mythtv.org"
-arch=('i686')
-depends=('mythtv'-svn)
-conflicts=('mythtv-plugins-svn')
-groups=('mythtv-all-plugins-svn')
-license="GPL"
-source=()
-_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
-_svnmod=mythplugins
-
-
-build() {
-	cd $startdir/src/
-	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-	cd $startdir/src/mythplugins
-PLUGIN=mythcontrols
-grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-if [ $? != 0 ]
-then
-		echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-			msg "appending program lib"
-		fi
-	make distclean
-   ./configure  --disable-all --enable-opengl --enable-mythcontrols
-
-   make -j 2 || return 1
-
-   make INSTALL_ROOT=$startdir/pkg install
-}
-
diff --git a/abs/core-testing/mythtv/trunk/plugins/mythflix/PKGBUILD b/abs/core-testing/mythtv/trunk/plugins/mythflix/PKGBUILD
deleted file mode 100644
index 9e8c92e..0000000
--- a/abs/core-testing/mythtv/trunk/plugins/mythflix/PKGBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-pkgname=mythflix-svn
-pkgver=16153
-pkgrel=2
-pkgdesc="Netflix access plugin for MythTV"
-url="http://www.mythtv.org"
-arch=('i686')
-depends=('mythtv-svn')
-conflicts=('mythtv-plugins-svn')
-groups=('mythtv-all-plugins-svn')
-license="GPL"
-source=()
-_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
-_svnmod=mythplugins
-
-
-build() {
-	cd $startdir/src/
-	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-	cd $startdir/src/mythplugins
-	PLUGIN=mythflix
-	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-	if [ $? != 0 ]
-	then
-			echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-				msg "appending program lib"
-			fi
-	make distclean
-   ./configure  --disable-all --enable-opengl --enable-mythflix 
-
-   make -j 2 || return 1
-
-   make INSTALL_ROOT=$startdir/pkg install
-}
diff --git a/abs/core-testing/mythtv/trunk/plugins/mythgallery/PKGBUILD b/abs/core-testing/mythtv/trunk/plugins/mythgallery/PKGBUILD
deleted file mode 100644
index 52fb732..0000000
--- a/abs/core-testing/mythtv/trunk/plugins/mythgallery/PKGBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-pkgname=mythgallery-svn
-pkgver=16153
-pkgrel=3
-pkgdesc="Image gallery plugin for MythTV"
-url="http://www.mythtv.org"
-arch=('i686')
-depends=('mythtv-svn' 'libexif' 'libtiff')
-conflicts=('mythtv-plugins-svn')
-groups=('mythtv-all-plugins-svn')
-license="GPL"
-source=()
-_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
-_svnmod=mythplugins
-
-
-build() {
-	cd $startdir/src/
-	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-	cd $startdir/src/mythplugins
-	export QMAKESPEC='linux-g++'
-	PLUGIN=mythgallery
-	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-	if [ $? != 0 ]
-	then
-			echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-				msg "appending program lib"
-			fi
-	make distclean
-   ./configure  --disable-all --enable-opengl --enable-mythgallery --enable-exif
-
-   make -j 2 || return 1
-
-   make INSTALL_ROOT=$startdir/pkg install
-}
-
diff --git a/abs/core-testing/mythtv/trunk/plugins/mythgame/PKGBUILD b/abs/core-testing/mythtv/trunk/plugins/mythgame/PKGBUILD
deleted file mode 100644
index 8c4257f..0000000
--- a/abs/core-testing/mythtv/trunk/plugins/mythgame/PKGBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-pkgname=mythgame-svn
-pkgver=16153
-pkgrel=4
-pkgdesc="Emulation plugin for MythTV"
-url="http://www.mythtv.org"
-arch=('i686')
-depends=('mythtv-svn' 'zlib')
-conflicts=('mythtv-plugins-svn')
-groups=('mythtv-all-plugins-svn')
-license="GPL"
-source=()
-_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
-_svnmod=mythplugins
-
-
-build() {
-	cd $startdir/src/
-	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-	cd $startdir/src/mythplugins
-PLUGIN=mythgame
-grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-if [ $? != 0 ]
-then
-		echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-		msg	 "appending program lib"
-		fi
-	export QMAKESPEC='linux-g++'
-	make distclean
-   ./configure  --disable-all --enable-opengl --enable-mythgame 
-
-   make -j 2 || return 1
-
-   make INSTALL_ROOT=$startdir/pkg install
-}
-
diff --git a/abs/core-testing/mythtv/trunk/plugins/mythmovietime/PKGBUILD b/abs/core-testing/mythtv/trunk/plugins/mythmovietime/PKGBUILD
deleted file mode 100644
index f83cdbf..0000000
--- a/abs/core-testing/mythtv/trunk/plugins/mythmovietime/PKGBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-pkgname=mythmovietime-svn
-pkgver=16153
-pkgrel=6
-pkgdesc="Emulation plugin for MythTV"
-url="http://www.mythtv.org"
-arch=('i686')
-depends=('mythtv-svn' 'zlib')
-conflicts=('mythtv-plugins-svn')
-groups=('mythtv-all-plugins-svn')
-license="GPL"
-source=()
-_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
-_svnmod=mythplugins
-
-
-build() {
-	cd $startdir/src/
-	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-	cd $startdir/src/mythplugins
-PLUGIN=mythmovietime
-grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-if [ $? != 0 ]
-then
-		echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-			msg "appending program lib"
-		fi
-	export QMAKESPEC='linux-g++'
-	make distclean
-   ./configure  --disable-all --enable-mythmovies 
-
-   make -j 2 || return 1
-
-   make INSTALL_ROOT=$startdir/pkg install
-}
-
diff --git a/abs/core-testing/mythtv/trunk/plugins/mythmusic/PKGBUILD b/abs/core-testing/mythtv/trunk/plugins/mythmusic/PKGBUILD
deleted file mode 100644
index 28cbe82..0000000
--- a/abs/core-testing/mythtv/trunk/plugins/mythmusic/PKGBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-pkgname=mythmusic-svn
-pkgver=16153
-pkgrel=9
-pkgdesc="Music playing plugin for MythTV"
-url="http://www.mythtv.org"
-arch=('i686' 'x86_64')
-#depends=('mythtv-svn' 'libid3tag' 'libmad' 'libvorbis' 'flac>=1.1.4' 'libcdaudio' \
-#         'cdparanoia' 'fftw2' 'sdl' 'faad2' 'lame' )
-
-  depends=('mythtv-svn ' 'libid3tag' 'flac>=1.1.4 ' 'a52dec' 'libcdaudio' 'libcddb' 'libdvdread' 'libid3tag' 'libmad' 'libogg'  'libtheora' 'libvorbis' 'taglib' 'libvisual' 'cdparanoia'   'sdl' 'faad2' 'lame' 'fftw2double')
-
-conflicts=('mythtv-plugins-svn')
-groups=('mythtv-all-plugins-svn')
-license="GPL"
-source=()
-_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
-_svnmod=mythplugins
-
-
-build() {
-	cd $startdir/src/
-	make distclean
-	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-	cd $startdir/src/mythplugins
-PLUGIN=mythmusic
-grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-if [ $? != 0 ]
-then
-		echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-			msg "appending program lib"
-		fi
-
-#   ./configure  --disable-all --enable-mythmusic  
-
-   make  || return 1
-
-   make INSTALL_ROOT=$startdir/pkg install
-}
diff --git a/abs/core-testing/mythtv/trunk/plugins/mythmusic/music_flac.patch b/abs/core-testing/mythtv/trunk/plugins/mythmusic/music_flac.patch
deleted file mode 100644
index b152249..0000000
--- a/abs/core-testing/mythtv/trunk/plugins/mythmusic/music_flac.patch
+++ /dev/null
@@ -1,293 +0,0 @@
---- flacdecoder.cpp.old	2007-03-11 18:14:37.000000000 -0400
-+++ flacdecoder.cpp	2007-03-11 18:15:34.000000000 -0400
-@@ -17,7 +17,7 @@
- 
- #include <qtimer.h>
- 
--static FLAC__SeekableStreamDecoderReadStatus flacread(const FLAC__SeekableStreamDecoder *decoder, FLAC__byte bufferp[], unsigned *bytes, void *client_data)
-+static FLAC__StreamDecoderReadStatus flacread(const FLAC__StreamDecoder *decoder, FLAC__byte bufferp[], unsigned *bytes, void *client_data)
- {
-     decoder = decoder;
- 
-@@ -26,27 +26,27 @@
- 
-     if (len == -1)
-     {
--        return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_ERROR;
-+        return FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM;
-     }
-    
-     *bytes = len;
--    return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_OK;
-+    return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
- }
- 
--static FLAC__SeekableStreamDecoderSeekStatus flacseek(const FLAC__SeekableStreamDecoder *decoder, FLAC__uint64 absolute_byte_offset, void *client_data) 
-+static FLAC__StreamDecoderSeekStatus flacseek(const FLAC__StreamDecoder *decoder, FLAC__uint64 absolute_byte_offset, void *client_data) 
- {
-     decoder = decoder;
-     FlacDecoder *dflac = (FlacDecoder *)client_data;
- 
-     if (!dflac->input()->isDirectAccess())
--        return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_ERROR;
-+        return FLAC__STREAM_DECODER_SEEK_STATUS_ERROR;
- 
-     if (dflac->input()->at(absolute_byte_offset))
--        return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_OK;
--    return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_ERROR;
-+        return FLAC__STREAM_DECODER_SEEK_STATUS_OK;
-+    return FLAC__STREAM_DECODER_SEEK_STATUS_ERROR;
- }
- 
--static FLAC__SeekableStreamDecoderTellStatus flactell(const FLAC__SeekableStreamDecoder *decoder, FLAC__uint64 *absolute_byte_offset, void *client_data)
-+static FLAC__StreamDecoderTellStatus flactell(const FLAC__StreamDecoder *decoder, FLAC__uint64 *absolute_byte_offset, void *client_data)
- {
-     decoder = decoder;
-     FlacDecoder *dflac = (FlacDecoder *)client_data;
-@@ -54,20 +54,20 @@
-     long t = dflac->input()->at();
-     *absolute_byte_offset = t;
- 
--    return FLAC__SEEKABLE_STREAM_DECODER_TELL_STATUS_OK;
-+    return FLAC__STREAM_DECODER_TELL_STATUS_OK;
- }
- 
--static FLAC__SeekableStreamDecoderLengthStatus flaclength(const FLAC__SeekableStreamDecoder *decoder, FLAC__uint64 *stream_length, void *client_data)
-+static FLAC__StreamDecoderLengthStatus flaclength(const FLAC__StreamDecoder *decoder, FLAC__uint64 *stream_length, void *client_data)
- {
-     decoder = decoder;
- 
-     FlacDecoder *dflac = (FlacDecoder *)client_data;
- 
-     *stream_length = dflac->input()->size();
--    return FLAC__SEEKABLE_STREAM_DECODER_LENGTH_STATUS_OK;
-+    return FLAC__STREAM_DECODER_LENGTH_STATUS_OK;
- }
- 
--static FLAC__bool flaceof(const FLAC__SeekableStreamDecoder *decoder, void *client_data)
-+static FLAC__bool flaceof(const FLAC__StreamDecoder *decoder, void *client_data)
- {
-     decoder = decoder;
- 
-@@ -76,7 +76,7 @@
-     return dflac->input()->atEnd();
- }
- 
--static FLAC__StreamDecoderWriteStatus flacwrite(const FLAC__SeekableStreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer[], void *client_data)
-+static FLAC__StreamDecoderWriteStatus flacwrite(const FLAC__StreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer[], void *client_data)
- {
-     decoder = decoder;
- 
-@@ -132,7 +132,7 @@
-     }
- }
- 
--static void flacmetadata(const FLAC__SeekableStreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data)
-+static void flacmetadata(const FLAC__StreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data)
- {
-     decoder = decoder;
- 
-@@ -156,11 +156,11 @@
-     }
- }
- 
--static void flacerror(const FLAC__SeekableStreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data)
-+static void flacerror(const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data)
- {
-     decoder = decoder;
- 
--    FLAC__FileDecoder *file_decoder = (FLAC__FileDecoder *)client_data;
-+    FLAC__StreamDecoder *file_decoder = (FLAC__StreamDecoder *)client_data;
- 
-     file_decoder = file_decoder;
-     status = status;
-@@ -262,17 +262,8 @@
-         }
-     }
- 
--    decoder = FLAC__seekable_stream_decoder_new();
--    FLAC__seekable_stream_decoder_set_md5_checking(decoder, false);
--    FLAC__seekable_stream_decoder_set_read_callback(decoder, flacread);
--    FLAC__seekable_stream_decoder_set_seek_callback(decoder, flacseek);
--    FLAC__seekable_stream_decoder_set_tell_callback(decoder, flactell);
--    FLAC__seekable_stream_decoder_set_length_callback(decoder, flaclength);
--    FLAC__seekable_stream_decoder_set_eof_callback(decoder, flaceof);
--    FLAC__seekable_stream_decoder_set_write_callback(decoder, flacwrite);
--    FLAC__seekable_stream_decoder_set_metadata_callback(decoder, flacmetadata);
--    FLAC__seekable_stream_decoder_set_error_callback(decoder, flacerror);
--    FLAC__seekable_stream_decoder_set_client_data(decoder, this);
-+    decoder = FLAC__stream_decoder_new();
-+    FLAC__stream_decoder_set_md5_checking(decoder, false);
- 
-     freq = 0;
-     bitrate = 0;
-@@ -281,8 +272,17 @@
-     totalTime = 0; 
-     totalTime = totalTime < 0 ? 0 : totalTime;
- 
--    FLAC__seekable_stream_decoder_init(decoder);
--    FLAC__seekable_stream_decoder_process_until_end_of_metadata(decoder);
-+    FLAC__stream_decoder_init_stream(decoder,
-+                                     flacread,
-+                                     flacseek,
-+                                     flactell,
-+                                     flaclength,
-+                                     flaceof,
-+                                     flacwrite,
-+                                     flacmetadata,
-+                                     flacerror,
-+                                     this);
-+    FLAC__stream_decoder_process_until_end_of_metadata(decoder);
- 
-     inited = TRUE;
-     return TRUE;
-@@ -295,8 +295,8 @@
- 
- void FlacDecoder::deinit()
- {
--    FLAC__seekable_stream_decoder_finish(decoder);
--    FLAC__seekable_stream_decoder_delete(decoder);
-+    FLAC__stream_decoder_finish(decoder);
-+    FLAC__stream_decoder_delete(decoder);
- 
-     if (input()->isOpen())
-         input()->close();
-@@ -330,7 +330,7 @@
-     }
- 
-     bool flacok = true;
--    FLAC__SeekableStreamDecoderState decoderstate;
-+    FLAC__StreamDecoderState decoderstate;
- 
-     while (! done && ! finish) {
-         lock();
-@@ -340,12 +340,12 @@
-             FLAC__uint64 sample = (FLAC__uint64)(seekTime * 44100.0);
-             if (sample > totalsamples - 50)
-                 sample = totalsamples - 50;
--            FLAC__seekable_stream_decoder_seek_absolute(decoder, sample);
-+            FLAC__stream_decoder_seek_absolute(decoder, sample);
-             seekTime = -1.0;
-         }
- 
--        flacok = FLAC__seekable_stream_decoder_process_single(decoder);
--        decoderstate = FLAC__seekable_stream_decoder_get_state(decoder);
-+        flacok = FLAC__stream_decoder_process_single(decoder);
-+        decoderstate = FLAC__stream_decoder_get_state(decoder);
- 
-         if (decoderstate == 0 || decoderstate == 1)
-         {
---- flacdecoder.h.old	2007-03-11 18:14:37.000000000 -0400
-+++ flacdecoder.h	2007-03-11 18:14:12.000000000 -0400
-@@ -35,7 +35,7 @@
-     char *output_buf;
-     ulong output_bytes, output_at;
- 
--    FLAC__SeekableStreamDecoder *decoder;
-+    FLAC__StreamDecoder *decoder;
- 
-     unsigned int bks;
-     bool done, finish;
---- flacencoder.cpp.old	2007-03-11 18:14:37.000000000 -0400
-+++ flacencoder.cpp	2007-03-11 18:14:12.000000000 -0400
-@@ -9,7 +9,7 @@
- #include "flacencoder.h"
- #include "metaioflacvorbiscomment.h"
- 
--#include <FLAC/file_encoder.h>
-+#include <FLAC/stream_encoder.h>
- #include <FLAC/assert.h>
- #include <mythtv/mythcontext.h>
- 
-@@ -29,32 +29,32 @@
-     int rice_parameter_search_dist = 0;
-     int max_lpc_order = 8;
- 
--    encoder = FLAC__file_encoder_new();
-+    encoder = FLAC__stream_encoder_new();
- 
--    FLAC__file_encoder_set_streamable_subset(encoder, true);
--    FLAC__file_encoder_set_do_mid_side_stereo(encoder, do_mid_side);
--    FLAC__file_encoder_set_loose_mid_side_stereo(encoder, loose_mid_side);
--    FLAC__file_encoder_set_channels(encoder, NUM_CHANNELS);
--    FLAC__file_encoder_set_bits_per_sample(encoder, 16);
--    FLAC__file_encoder_set_sample_rate(encoder, 44100);
--    FLAC__file_encoder_set_blocksize(encoder, blocksize);
--    FLAC__file_encoder_set_max_lpc_order(encoder, max_lpc_order);
--    FLAC__file_encoder_set_qlp_coeff_precision(encoder, qlp_coeff_precision);
--    FLAC__file_encoder_set_do_qlp_coeff_prec_search(encoder, false);
--    FLAC__file_encoder_set_do_escape_coding(encoder, do_escape_coding);
--    FLAC__file_encoder_set_do_exhaustive_model_search(encoder, 
-+    FLAC__stream_encoder_set_streamable_subset(encoder, true);
-+    FLAC__stream_encoder_set_do_mid_side_stereo(encoder, do_mid_side);
-+    FLAC__stream_encoder_set_loose_mid_side_stereo(encoder, loose_mid_side);
-+    FLAC__stream_encoder_set_channels(encoder, NUM_CHANNELS);
-+    FLAC__stream_encoder_set_bits_per_sample(encoder, 16);
-+    FLAC__stream_encoder_set_sample_rate(encoder, 44100);
-+    FLAC__stream_encoder_set_blocksize(encoder, blocksize);
-+    FLAC__stream_encoder_set_max_lpc_order(encoder, max_lpc_order);
-+    FLAC__stream_encoder_set_qlp_coeff_precision(encoder, qlp_coeff_precision);
-+    FLAC__stream_encoder_set_do_qlp_coeff_prec_search(encoder, false);
-+    FLAC__stream_encoder_set_do_escape_coding(encoder, do_escape_coding);
-+    FLAC__stream_encoder_set_do_exhaustive_model_search(encoder, 
-                                                     do_exhaustive_model_search);
--    FLAC__file_encoder_set_min_residual_partition_order(encoder, 
-+    FLAC__stream_encoder_set_min_residual_partition_order(encoder, 
-                                                   min_residual_partition_order);
--    FLAC__file_encoder_set_max_residual_partition_order(encoder, 
-+    FLAC__stream_encoder_set_max_residual_partition_order(encoder, 
-                                                   max_residual_partition_order);
--    FLAC__file_encoder_set_rice_parameter_search_dist(encoder, 
-+    FLAC__stream_encoder_set_rice_parameter_search_dist(encoder, 
-                                                     rice_parameter_search_dist);
- 
--    FLAC__file_encoder_set_filename(encoder, outfile.local8Bit());
-+    
- 
--    int ret = FLAC__file_encoder_init(encoder);
--    if (ret != FLAC__FILE_ENCODER_OK)
-+    int ret = FLAC__stream_encoder_init_file(encoder, outfile.local8Bit(), NULL, NULL);
-+    if (ret != FLAC__STREAM_ENCODER_OK)
-     {
-         VERBOSE(VB_GENERAL, QString("Error initializing FLAC encoder."
-                                     " Got return code: %1").arg(ret));
-@@ -70,8 +70,8 @@
- 
-     if (encoder)
-     {
--        FLAC__file_encoder_finish(encoder);
--        FLAC__file_encoder_delete(encoder);
-+        FLAC__stream_encoder_finish(encoder);
-+        FLAC__stream_encoder_delete(encoder);
-     }
- 
-     if (metadata)
-@@ -102,7 +102,7 @@
- 
-         if(sampleindex == MAX_SAMPLES || (length == 0 && sampleindex > 0) ) 
-         {
--            if (!FLAC__file_encoder_process(encoder,
-+            if (!FLAC__stream_encoder_process(encoder,
-                                             (const FLAC__int32 * const *) input,
-                                             sampleindex))
-             {
---- flacencoder.h.old	2007-03-11 18:14:37.000000000 -0400
-+++ flacencoder.h	2007-03-11 18:14:12.000000000 -0400
-@@ -4,7 +4,7 @@
- #include <qstring.h>
- 
- #define HAVE_INTTYPES_H
--#include <FLAC/file_encoder.h>
-+#include <FLAC/stream_encoder.h>
- 
- #include "encoder.h"
- 
-@@ -21,7 +21,7 @@
-     int addSamples(int16_t *bytes, unsigned int len);
- 
-   private:
--    FLAC__FileEncoder *encoder;
-+    FLAC__StreamEncoder *encoder;
-     unsigned int sampleindex;
-     FLAC__int32 inputin[NUM_CHANNELS][MAX_SAMPLES];
-     FLAC__int32 *input[NUM_CHANNELS];
diff --git a/abs/core-testing/mythtv/trunk/plugins/mythnews/PKGBUILD b/abs/core-testing/mythtv/trunk/plugins/mythnews/PKGBUILD
deleted file mode 100644
index 4dafc20..0000000
--- a/abs/core-testing/mythtv/trunk/plugins/mythnews/PKGBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-pkgname=mythnews-svn
-pkgver=16153
-pkgrel=4
-pkgdesc="News checking plugin for MythTV"
-url="http://www.mythtv.org"
-arch=('i686')
-depends=('mythtv-svn')
-conflicts=('mythtv-plugins-svn')
-groups=('mythtv-all-plugins-svn')
-license="GPL"
-source=()
-_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
-_svnmod=mythplugins
-
-build() {
-	cd $startdir/src/
-	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-	cd $startdir/src/mythplugins
-	PLUGIN=mythnews
-	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-	if [ $? != 0 ]
-	then
-			echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-				msg "appending program lib"
-			fi
-	make distclean
-   ./configure --disable-all --enable-mythnews
-
-   make -j 2 || return 1
-
-   make INSTALL_ROOT=$startdir/pkg install
-}
-md5sums=('2a9fbf45ae58a3a35857ce8d7c4d12db')
diff --git a/abs/core-testing/mythtv/trunk/plugins/mythphone/PKGBUILD b/abs/core-testing/mythtv/trunk/plugins/mythphone/PKGBUILD
deleted file mode 100644
index f6bf3ec..0000000
--- a/abs/core-testing/mythtv/trunk/plugins/mythphone/PKGBUILD
+++ /dev/null
@@ -1,42 +0,0 @@
-pkgname=mythphone-svn
-pkgver=16153
-pkgrel=3
-pkgdesc="Plugin that allows phone calls to be made to MythTv"
-url="http://www.mythtv.org"
-arch=('i686')
-depends=('mythtv-svn')
-conflicts=('mythtv-plugins-svn')
-groups=('mythtv-all-plugins-svn')
-license="GPL"
-source=()
-_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
-_svnmod=mythplugins
-
-
-build() {
-	cd $startdir/src/
-	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-	cd $startdir/src/mythplugins
-	make distclean
-	PLUGIN=mythphone
-	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-	if [ $? != 0 ]
-	then
-		echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-		msg  "appending program lib"
-	fi
-	
-	msg "Correcting configure    kde3 to kde"
-   	sed -i 's#kde3#kde#' configure || return 1
-   	./configure  --enable-opengl --disable-all --enable-mythphone || return 1
-	qmake mythplugins.pro || return 1
-	make qmake || return 1
-	
-	msg "Correcting Makefile    kde3 to kde"
- 	sed -i 's#kde3#kde#' ./mythphone/mythphone/Makefile || return 1
-   	
-	make -j 2 || return 1
-	make INSTALL_ROOT=$startdir/pkg install
-}
-
diff --git a/abs/core-testing/mythtv/trunk/plugins/mythvideo/PKGBUILD b/abs/core-testing/mythtv/trunk/plugins/mythvideo/PKGBUILD
deleted file mode 100644
index 4087034..0000000
--- a/abs/core-testing/mythtv/trunk/plugins/mythvideo/PKGBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-pkgname=mythvideo-svn
-pkgver=16153
-pkgrel=2
-pkgdesc="Video playback and browsing plugin for MythTV"
-url="http://www.mythtv.org"
-arch=('i686')
-depends=('mythtv-svn'  'perlxml' 'perl-libwww' 'perl-uri' 'perl-xml-simple' 'ffmpeg')
-license="GPL"
-conflicts=('mythtv-plugins-svn')
-groups=('mythtv-all-plugins-svn')
-
-source=()
-_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
-_svnmod=mythplugins
-
-
-build() {
-	cd $startdir/src/
-	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-	cd $startdir/src/mythplugins
-  	make distclean 
-	PLUGIN=mythvideo
-	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-	if [ $? != 0 ]
-	then
-			echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-				msg "appending program lib"
-			fi
-   ./configure  --disable-all --enable-mythvideo  --enable-transcode  
-
-   make -j 2 || return 1
-
-   make INSTALL_ROOT=$startdir/pkg install
-}
-md5sums=('2a9fbf45ae58a3a35857ce8d7c4d12db')
diff --git a/abs/core-testing/mythtv/trunk/plugins/mythweather/PKGBUILD b/abs/core-testing/mythtv/trunk/plugins/mythweather/PKGBUILD
deleted file mode 100644
index 98542b9..0000000
--- a/abs/core-testing/mythtv/trunk/plugins/mythweather/PKGBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-pkgname=mythweather-svn
-pkgver=16153
-pkgrel=6
-pkgdesc="Weather checking plugin for MythTV"
-url="http://www.mythtv.org"
-arch=('i686')
-depends=('mythtv-svn' 'wget' 'perl-xml-sax' 'perl-soap-lite' 'perl-image-size'  'imagemagick')
-conflicts=('mythtv-plugins-svn')
-groups=('mythtv-all-plugins-svn')
-license="GPL"
-source=()
-_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
-_svnmod=mythplugins
-
-
-build() {
-	cd $startdir/src/
-	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-	cd $startdir/src/mythplugins
-	make distclean
-	PLUGIN=mythweather
-	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-	if [ $? != 0 ]
-	then
-			echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-				msg "appending program lib"
-			fi
-   ./configure  --enable-opengl --disable-all --enable-mythweather
- 
-   make -j 2 || return 1
-
-   make INSTALL_ROOT=$startdir/pkg install
-}
-md5sums=('2a9fbf45ae58a3a35857ce8d7c4d12db')
diff --git a/abs/core-testing/mythtv/trunk/plugins/mythweb/PKGBUILD b/abs/core-testing/mythtv/trunk/plugins/mythweb/PKGBUILD
deleted file mode 100755
index 52eb059..0000000
--- a/abs/core-testing/mythtv/trunk/plugins/mythweb/PKGBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-pkgname=mythweb-svn
-pkgver=16153
-pkgrel=20
-pkgdesc="mythweb" 
-url="http://www.mythtv.org" 
-license="GPL" 
-arch=('i686')
-depends=(php fcgi libmysqlclient ) 
-conflicts=('mythweb' 'mythweb-fixes') 
-replaces=() 
-backup=() 
-install='mythweb.install' 
-source=(mythweblighttpd.patch dblogininit.inc ) 
-md5sums=() 
-_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
-_svnmod=mythplugins
-
-build() { 
-echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-#svn co http://cvs.mythtv.org/svn/trunk/mythtv
-#svn co http://cvs.mythtv.org/svn/trunk/mythplugins
-#svn co http://cvs.mythtv.org/svn/trunk/myththemes
-cd $startdir/src/mythplugins
-
-#take care of fing mythweb
-mkdir -p $startdir/pkg/data/srv/httpd/htdocs/
-cp -rp mythweb $startdir/pkg/data/srv/httpd/htdocs/
-cp -f $startdir/src/dblogininit.inc $startdir/pkg/data/srv/httpd/htdocs/mythweb/includes/
-cd  $startdir/pkg/data/srv/httpd/htdocs/mythweb/includes
-patch -p0 < $startdir/src/mythweblighttpd.patch
-
-chown -R nobody:nobody $startdir/pkg/data/srv/httpd/htdocs/mythweb
-chmod -R  775 $startdir/pkg/data/srv/httpd/htdocs/mythweb
-}
diff --git a/abs/core-testing/mythtv/trunk/plugins/mythweb/dblogininit.inc b/abs/core-testing/mythtv/trunk/plugins/mythweb/dblogininit.inc
deleted file mode 100755
index c5395c5..0000000
--- a/abs/core-testing/mythtv/trunk/plugins/mythweb/dblogininit.inc
+++ /dev/null
@@ -1,6 +0,0 @@
-<?
- $_SERVER["db_server"] = "localhost";
- $_SERVER["db_name"] = "mythconverg";
- $_SERVER["db_login"] = "mythtv";
- $_SERVER["db_password"] = "mythtv";
-?>
diff --git a/abs/core-testing/mythtv/trunk/plugins/mythweb/mythweb.install b/abs/core-testing/mythtv/trunk/plugins/mythweb/mythweb.install
deleted file mode 100755
index 9162d98..0000000
--- a/abs/core-testing/mythtv/trunk/plugins/mythweb/mythweb.install
+++ /dev/null
@@ -1,37 +0,0 @@
-
-# arg 1:  the new package version
-pre_install () {
-/bin/true
-}
-
-post_install() {
-	cp /etc/lighttpd/lighttpd.conf /tmp
-	sed -e "s/# .*  \"mod_fastcgi\",/\"mod_fastcgi\"\,/g" /tmp/lighttpd.conf > /etc/lighttpd/lighttpd.conf
- 
-
-}
-pre_upgrade () {
- pre_install
-}
-
-# arg 1:  the new package version
-# arg 2:  the old package version
-post_upgrade() {
-  post_install
-
-  /bin/true
-}
-
-# arg 1:  the old package version
-pre_remove() {
-  /bin/true
-}
-
-# arg 1:  the old package version
-post_remove() {
-/bint/true
-}
-
-op=$1
-shift
-$op $*
diff --git a/abs/core-testing/mythtv/trunk/plugins/mythweb/mythweblighttpd.patch b/abs/core-testing/mythtv/trunk/plugins/mythweb/mythweblighttpd.patch
deleted file mode 100755
index 6403a88..0000000
--- a/abs/core-testing/mythtv/trunk/plugins/mythweb/mythweblighttpd.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- database.php.orig	2007-12-31 21:25:30.000000000 +0000
-+++ database.php	2007-12-31 21:25:50.000000000 +0000
-@@ -18,6 +18,10 @@
-         custom_error("Please install the MySQL libraries for PHP.\n"
-                     .'The package is usually called something like php-mysql.');
-     }
-+     if (empty($_SERVER['db_server']) || empty($_SERVER['db_name']) || empty($_SERVER['db_login'])) {
-+	      require_once 'dblogininit.inc';
-+	      }
-+	
- 
- // No database connection info defined?
-     if (empty($_SERVER['db_server']) || empty($_SERVER['db_name']) || empty($_SERVER['db_login'])) {
diff --git a/abs/core-testing/mythtv/trunk/plugins/mythweb/xris/dblogininit.inc b/abs/core-testing/mythtv/trunk/plugins/mythweb/xris/dblogininit.inc
deleted file mode 100755
index c5395c5..0000000
--- a/abs/core-testing/mythtv/trunk/plugins/mythweb/xris/dblogininit.inc
+++ /dev/null
@@ -1,6 +0,0 @@
-<?
- $_SERVER["db_server"] = "localhost";
- $_SERVER["db_name"] = "mythconverg";
- $_SERVER["db_login"] = "mythtv";
- $_SERVER["db_password"] = "mythtv";
-?>
diff --git a/abs/core-testing/mythtv/trunk/plugins/mythweb/xris/lighttpd.conf b/abs/core-testing/mythtv/trunk/plugins/mythweb/xris/lighttpd.conf
deleted file mode 100755
index ff4e7dd..0000000
--- a/abs/core-testing/mythtv/trunk/plugins/mythweb/xris/lighttpd.conf
+++ /dev/null
@@ -1,332 +0,0 @@
-# lighttpd configuration file
-
-############ Options you really have to take care of ####################
-
-## modules to load
-# at least mod_access and mod_accesslog should be loaded
-# all other module should only be loaded if really neccesary
-# - saves some time
-# - saves memory
-server.modules              = (
-                                "mod_rewrite",
-#                               "mod_redirect",
-#                               "mod_alias",
-                                "mod_access",
-#                               "mod_cml",
-#                               "mod_trigger_b4_dl",
-#                               "mod_auth",
-                                "mod_status",
-                                "mod_setenv",
-#fast_cgi needs to be enabled for mythweb, as all mythweb requests are passed to php-cgi.
-				"mod_fastcgi",
-#                               "mod_proxy",
-#                               "mod_simple_vhost",
-#                               "mod_evhost",
-#                               "mod_userdir",
-                                "mod_cgi",
-#                               "mod_compress",
-#                               "mod_ssi",
-#                               "mod_usertrack",
-#                               "mod_expire",
-#                               "mod_secdownload",
-#                               "mod_rrdtool",
-                                "mod_accesslog" )
-
-## a static document-root, for virtual-hosting take look at the
-## server.virtual-* options
-server.document-root        = "/data/srv/httpd/htdocs"
-
-## where to send error-messages to
-server.errorlog             = "/var/log/lighttpd/error.log"
-
-# files to check for if .../ is requested
-index-file.names            = ( "index.php", "index.html",
-                                "index.htm", "default.htm","mythweb.php")
-
-# mimetype mapping
-mimetype.assign             = (
-  ".pdf"          =>      "application/pdf",
-  ".sig"          =>      "application/pgp-signature",
-  ".spl"          =>      "application/futuresplash",
-  ".class"        =>      "application/octet-stream",
-  ".ps"           =>      "application/postscript",
-  ".torrent"      =>      "application/x-bittorrent",
-  ".dvi"          =>      "application/x-dvi",
-  ".gz"           =>      "application/x-gzip",
-  ".pac"          =>      "application/x-ns-proxy-autoconfig",
-  ".swf"          =>      "application/x-shockwave-flash",
-  ".tar.gz"       =>      "application/x-tgz",
-  ".tgz"          =>      "application/x-tgz",
-  ".tar"          =>      "application/x-tar",
-  ".zip"          =>      "application/zip",
-  ".mp3"          =>      "audio/mpeg",
-  ".m3u"          =>      "audio/x-mpegurl",
-  ".wma"          =>      "audio/x-ms-wma",
-  ".wax"          =>      "audio/x-ms-wax",
-  ".ogg"          =>      "application/ogg",
-  ".wav"          =>      "audio/x-wav",
-  ".gif"          =>      "image/gif",
-  ".jpg"          =>      "image/jpeg",
-  ".jpeg"         =>      "image/jpeg",
-  ".png"          =>      "image/png",
-  ".xbm"          =>      "image/x-xbitmap",
-  ".xpm"          =>      "image/x-xpixmap",
-  ".xwd"          =>      "image/x-xwindowdump",
-  ".css"          =>      "text/css",
-  ".html"         =>      "text/html",
-  ".htm"          =>      "text/html",
-  ".js"           =>      "text/javascript",
-  ".asc"          =>      "text/plain",
-  ".c"            =>      "text/plain",
-  ".cpp"          =>      "text/plain",
-  ".log"          =>      "text/plain",
-  ".conf"         =>      "text/plain",
-  ".text"         =>      "text/plain",
-  ".txt"          =>      "text/plain",
-  ".dtd"          =>      "text/xml",
-  ".xml"          =>      "text/xml",
-  ".mpeg"         =>      "video/mpeg",
-  ".mpg"          =>      "video/mpeg",
-  ".mov"          =>      "video/quicktime",
-  ".qt"           =>      "video/quicktime",
-  ".avi"          =>      "video/x-msvideo",
-  ".asf"          =>      "video/x-ms-asf",
-  ".asx"          =>      "video/x-ms-asf",
-  ".wmv"          =>      "video/x-ms-wmv",
-  ".bz2"          =>      "application/x-bzip",
-  ".tbz"          =>      "application/x-bzip-compressed-tar",
-  ".tar.bz2"      =>      "application/x-bzip-compressed-tar",
-  ".nuv"	  =>	  "video/nuppelvideo"
- )
-
-
-# Use the "Content-Type" extended attribute to obtain mime type if possible
-mimetype.use-xattr        = "enable"
-
-
-## send a different Server: header
-## be nice and keep it at lighttpd
-#server.tag                 = "lighttpd"
-
-#### accesslog module
-accesslog.filename          = "/var/log/lighttpd/access.log"
-
-## deny access the file-extensions
-#
-# ~    is for backupfiles from vi, emacs, joe, ...
-# .inc is often used for code includes which should in general not be part
-#      of the document-root
-url.access-deny             = ( "~", ".inc" )
-
-$HTTP["url"] =~ "\.pdf$" {
-  server.range-requests = "disable"
-}
-
-######### Options that are good to be but not neccesary to be changed #######
-
-## bind to port (default: 80)
-#server.port                = 80
-
-## bind to localhost (default: all interfaces)
-#server.bind                = "grisu.home.kneschke.de"
-
-## error-handler for status 404
-#server.error-handler-404   = "/error-handler.html"
-#server.error-handler-404   = "/error-handler.php"
-
-## to help the rc.scripts
-server.pid-file            = "/var/run/lighttpd.pid"
-
-
-###### virtual hosts
-##
-##  If you want name-based virtual hosting add the next three settings and load
-##  mod_simple_vhost
-##
-## document-root =
-##   virtual-server-root + virtual-server-default-host + virtual-server-docroot
-## or
-##   virtual-server-root + http-host + virtual-server-docroot
-##
-#simple-vhost.server-root   = "/home/lighttpd/vhosts/"
-#simple-vhost.default-host  = "lighttpd.localhost"
-#simple-vhost.document-root = "/pages/"
-##
-## Format: <errorfile-prefix><status-code>.html
-## -> ..../status-404.html for 'File not found'
-#server.errorfile-prefix    = "/home/weigon/projects/lighttpd/doc/status-"
-
-## virtual directory listings
-#server.dir-listing         = "enable"
-
-## enable debugging
-#debug.log-request-header   = "enable"
-#debug.log-response-header  = "enable"
-#debug.log-request-handling = "enable"
-#debug.log-file-not-found   = "enable"
-
-### only root can use these options
-#
-# chroot() to directory (default: no chroot() )
-#server.chroot              = "/"
-
-## change uid to <uid> (default: don't care)
-server.username             = "nobody"
-
-## change uid to <uid> (default: don't care)
-server.groupname            = "nobody"
-
-#### compress module
-#compress.cache-dir         = "/home/lighttpd/cache/"
-#compress.filetype          = ("text/plain", "text/html")
-
-#### proxy module
-## read proxy.txt for more info
-#proxy.server               = ( ".php" =>
-#                               ( "localhost" =>
-#                                 (
-#                                   "host" => "192.168.0.101",
-#                                   "port" => 80
-#                                 )
-#                               )
-#                             )
-
-
-
-
-## fastcgi module
-## read fastcgi.txt for more info
-## adjust the value of bin-path for your system.  
-## If you intend to process alot of requests at the same time, increase
-##  the value of min-procs and max-procs
-
-fastcgi.server = ( ".php" =>
- ( "localhost" =>
-   (
-     "socket" => "/tmp/php-fastcgi.socket",
-     "bin-path" => "/usr/bin/php-cgi",
-     "min-procs" => 0,
-     "max-procs" => 1,
-     "max-load-per-proc" => 1,
-     "idle-timeout" => 10,
-     # Fix PATH_INFO for PHP scripts that rely on it (like Wordpress and mythweb).
-      "broken-scriptfilename" => "enable"
-    )
- )
-)
-
-
-#the rewrite rule for mythweb.
-#This assumes that mythweb is installed at document.root/mythweb
-
- url.rewrite = (
-   "^/mythweb(/tv.*|/music.*|/video.*|/weather.*|/settings.*|/status.*|/backend_log.*)$" =>   "mythweb/mythweb.php/$1"
- )
-
-
-#### CGI module
-cgi.assign                 = ( ".pl"  => "/usr/bin/perl")
-
-
-
-#### SSL engine
-#$SERVER["socket"] == "0.0.0.0:443" {
-#  ssl.engine                  = "enable"
-#  ssl.pemfile                 = "/home/lighttpd/ssl/server.pem"
-#  server.errorlog             = "/var/log/lighttpd/error-ssl.log"
-#  accesslog.filename          = "/var/log/lighttpd/access-ssl.log"
-#  server.document-root        = "/home/lighttpd/html-ssl"
-#}
-
-
-
-#### status module
-status.status-url          = "/server-status"
-status.config-url          = "/server-config"
-
-#### auth module
-## read authentication.txt for more info
-#auth.backend               = "plain"
-#auth.backend.plain.userfile = "lighttpd.user"
-#auth.backend.plain.groupfile = "lighttpd.group"
-
-#auth.backend.ldap.hostname = "localhost"
-#auth.backend.ldap.base-dn  = "dc=my-domain,dc=com"
-#auth.backend.ldap.filter   = "(uid=$)"
-#auth.require               = ( "/server-status" =>
-#                               (
-#                                 "method"  => "digest",
-#                                 "realm"   => "download archiv",
-#                                 "require" => "user=jan"
-#                               ),
-#                               "/server-info" =>
-#                               (
-#                                 "method"  => "digest",
-#                                 "realm"   => "download archiv",
-#                                 "require" => "valid-user"
-#                               )
-#                             )
-
-#### url handling modules (rewrite, redirect, access)
-#url.rewrite                = ( "^/$"             => "/server-status" )
-#url.redirect               = ( "^/wishlist/(.+)" => "http://www.123.org/$1" )
-
-#
-# define a pattern for the host url finding
-# %% => % sign
-# %0 => domain name + tld
-# %1 => tld
-# %2 => domain name without tld
-# %3 => subdomain 1 name
-# %4 => subdomain 2 name
-#
-#evhost.path-pattern        = "/home/storage/dev/www/%3/htdocs/"
-
-#### expire module
-#expire.url                 = ( "/buggy/" => "access 2 hours", "/asdhas/" => "access plus 1 seconds 2 minutes")
-
-#### ssi
-#ssi.extension              = ( ".shtml" )
-
-#### rrdtool
-#rrdtool.binary             = "/usr/bin/rrdtool"
-#rrdtool.db-name            = "/var/www/lighttpd.rrd"
-
-#### setenv
-#setenv.add-request-header  = ( "TRAV_ENV" => "mysql://user@host/db" )
-#setenv.add-response-header = ( "X-Secret-Message" => "42" )
-## for mod_trigger_b4_dl
-# trigger-before-download.gdbm-filename = "/home/weigon/testbase/trigger.db"
-# trigger-before-download.memcache-hosts = ( "127.0.0.1:11211" )
-# trigger-before-download.trigger-url = "^/trigger/"
-# trigger-before-download.download-url = "^/download/"
-# trigger-before-download.deny-url = "http://127.0.0.1/index.html"
-# trigger-before-download.trigger-timeout = 10
-
-## for mod_cml
-## don't forget to add index.cml to server.indexfiles
-# cml.extension               = ".cml"
-# cml.memcache-hosts          = ( "127.0.0.1:11211" )
-
-#### variable usage:
-## variable name without "." is auto prefixed by "var." and becomes "var.bar"
-#bar = 1
-#var.mystring = "foo"
-
-## integer add
-#bar += 1
-## string concat, with integer cast as string, result: "www.foo1.com"
-#server.name = "www." + mystring + var.bar + ".com"
-## array merge
-#index-file.names = (foo + ".php") + index-file.names
-#index-file.names += (foo + ".php")
-
-#### include
-#include /etc/lighttpd/lighttpd-inc.conf
-## same as above if you run: "lighttpd -f /etc/lighttpd/lighttpd.conf"
-#include "lighttpd-inc.conf"
-
-#### include_shell
-#include_shell "echo var.a=1"
-## the above is same as:
-#var.a=1
diff --git a/abs/core-testing/mythtv/trunk/plugins/mythweb/xris/mythweblighttpd.patch b/abs/core-testing/mythtv/trunk/plugins/mythweb/xris/mythweblighttpd.patch
deleted file mode 100755
index bebc93e..0000000
--- a/abs/core-testing/mythtv/trunk/plugins/mythweb/xris/mythweblighttpd.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- init.php.orig	2006-11-23 21:37:13.000000000 +0000
-+++ init.php	2006-11-23 21:40:04.000000000 +0000
-@@ -75,7 +75,12 @@
-         custom_error("Please install the MySQL libraries for PHP.\n"
-                     .'The package is usually called something like php-mysql.');
-     }
--
-+    
-+    
-+// No database connection info defined?
-+    if (empty($_SERVER['db_server']) || empty($_SERVER['db_name']) || empty($_SERVER['db_login'])) {
-+    require_once 'dblogininit.inc';
-+    }
- // No database connection info defined?
-     if (empty($_SERVER['db_server']) || empty($_SERVER['db_name']) || empty($_SERVER['db_login'])) {
-         tailored_error('db_vars_error');
-- 
cgit v0.12