summaryrefslogtreecommitdiffstats
path: root/abs/core-testing/mythtv/trunk/mythtv-svn
diff options
context:
space:
mode:
authorNathan Harris <nharris@eoimaging.com>2009-02-08 22:20:20 (GMT)
committerNathan Harris <nharris@eoimaging.com>2009-02-08 22:20:20 (GMT)
commitd2cbfc286c25f31f20433e9149a0e62c4aaf900f (patch)
treedf940ae978797d62f346f465b91736b45d096649 /abs/core-testing/mythtv/trunk/mythtv-svn
parent7ee47af1a90327ecdd7ff9d790f2022545366b55 (diff)
downloadlinhes_pkgbuild-d2cbfc286c25f31f20433e9149a0e62c4aaf900f.zip
linhes_pkgbuild-d2cbfc286c25f31f20433e9149a0e62c4aaf900f.tar.gz
linhes_pkgbuild-d2cbfc286c25f31f20433e9149a0e62c4aaf900f.tar.bz2
The new structure... does not work yet.
Diffstat (limited to 'abs/core-testing/mythtv/trunk/mythtv-svn')
-rw-r--r--abs/core-testing/mythtv/trunk/mythtv-svn/DeviceReadBuffer-polltimeout.2.patch219
-rwxr-xr-xabs/core-testing/mythtv/trunk/mythtv-svn/PKGBUILD78
-rw-r--r--abs/core-testing/mythtv/trunk/mythtv-svn/aacdecoder.cpp.patch12
-rw-r--r--abs/core-testing/mythtv/trunk/mythtv-svn/hdpvr-v4lchannel-tweak.patch139
-rw-r--r--abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/HOST_SETTINGS.xml87
-rw-r--r--abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/is.xml33
-rw-r--r--abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/knoppmyth.xml55
-rw-r--r--abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/library.xml.patch13
-rw-r--r--abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/mainmenu.xml.patch16
-rw-r--r--abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/motion.xml20
-rw-r--r--abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/optical_menu.xml.patch15
-rw-r--r--abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/setup.xml111
-rw-r--r--abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/siriusmenu.xml419
-rw-r--r--abs/core-testing/mythtv/trunk/mythtv-svn/menu-xml/xmmenu.xml574
-rw-r--r--abs/core-testing/mythtv/trunk/mythtv-svn/mpegrecorder-hdpvr-v1.1.patch658
-rwxr-xr-xabs/core-testing/mythtv/trunk/mythtv-svn/myth.sh4
-rwxr-xr-xabs/core-testing/mythtv/trunk/mythtv-svn/mythbackend37
-rwxr-xr-xabs/core-testing/mythtv/trunk/mythtv-svn/mythbackend.sh117
-rw-r--r--abs/core-testing/mythtv/trunk/mythtv-svn/mythcommflag-avidemux.2.patch179
-rwxr-xr-xabs/core-testing/mythtv/trunk/mythtv-svn/mythtv.install55
-rw-r--r--abs/core-testing/mythtv/trunk/mythtv-svn/patches/DeviceReadBuffer-polltimeout.2.patch219
-rw-r--r--abs/core-testing/mythtv/trunk/mythtv-svn/patches/aacdecoder.cpp.patch12
-rw-r--r--abs/core-testing/mythtv/trunk/mythtv-svn/patches/hdpvr-v4lchannel-tweak.patch139
-rw-r--r--abs/core-testing/mythtv/trunk/mythtv-svn/patches/mpegrecorder-hdpvr-v1.1.patch658
-rw-r--r--abs/core-testing/mythtv/trunk/mythtv-svn/patches/mythcommflag-avidemux.2.patch179
-rw-r--r--abs/core-testing/mythtv/trunk/mythtv-svn/smolt_jump.patch30
-rw-r--r--abs/core-testing/mythtv/trunk/mythtv-svn/svn_main_menu_popup.patch211
27 files changed, 0 insertions, 4289 deletions
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.
- *