From 84249e85222f40c8b6855d9822f52d273a3d979f Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Wed, 18 Feb 2009 08:38:40 -0800
Subject: Ensured mythtv owns all of /home/mythtv.

---
 abs/core-testing/LinHES-system/LinHES-run | 1 +
 abs/core-testing/LinHES-system/PKGBUILD   | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/abs/core-testing/LinHES-system/LinHES-run b/abs/core-testing/LinHES-system/LinHES-run
index fe79722..ae6651f 100644
--- a/abs/core-testing/LinHES-system/LinHES-run
+++ b/abs/core-testing/LinHES-system/LinHES-run
@@ -36,6 +36,7 @@ then
                 sudo sv stop mythbackend
                 xterm -fn *18* -e sudo taskset -c 0 /usr/bin/mythtv-setup
                 sudo sv start mythbackend
+		sudo chown -R mythtv.mythtv /home/mythtv
                 nice -n 19 mythfilldatabase --quiet &
         fi
         rm ~/.configure
diff --git a/abs/core-testing/LinHES-system/PKGBUILD b/abs/core-testing/LinHES-system/PKGBUILD
index 39f0cde..874b085 100644
--- a/abs/core-testing/LinHES-system/PKGBUILD
+++ b/abs/core-testing/LinHES-system/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=LinHES-system
 pkgver=1.0
-pkgrel=28
+pkgrel=29
 arch=('i686')
 MVDIR=$startdir/pkg/usr/LH
 BINDIR=$startdir/pkg/usr/bin
-- 
cgit v0.12


From 416f9c590b6de5de7eeb8eb19b26571626f35a7f Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Wed, 18 Feb 2009 14:18:48 -0500
Subject: updated to latest with new patches

---
 .../mythtv/trunk/mythmusic/aacdecoder.cpp.patch    |  12 +
 abs/core-testing/mythtv/trunk/mythtv/PKGBUILD      |  12 +-
 .../mythtv/trunk/mythtv/aacdecoder.cpp.patch       |  12 -
 .../mythtv/trunk/mythtv/hdpvr-livetv.patch         | 109 ----
 .../mythtv/hdpvr_audio_codec_selection-v1.1.diff   |  96 +++
 .../trunk/mythtv/mpegrecorder-hdpvr-v2a.patch      | 668 ---------------------
 6 files changed, 114 insertions(+), 795 deletions(-)
 create mode 100644 abs/core-testing/mythtv/trunk/mythmusic/aacdecoder.cpp.patch
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv/aacdecoder.cpp.patch
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv/hdpvr-livetv.patch
 create mode 100644 abs/core-testing/mythtv/trunk/mythtv/hdpvr_audio_codec_selection-v1.1.diff
 delete mode 100644 abs/core-testing/mythtv/trunk/mythtv/mpegrecorder-hdpvr-v2a.patch

diff --git a/abs/core-testing/mythtv/trunk/mythmusic/aacdecoder.cpp.patch b/abs/core-testing/mythtv/trunk/mythmusic/aacdecoder.cpp.patch
new file mode 100644
index 0000000..8796eb4
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythmusic/aacdecoder.cpp.patch
@@ -0,0 +1,12 @@
+--- mythmusic/mythmusic/aacdecoder.cpp.orig	2008-11-19 12:51:48.000000000 -0500
++++ mythmusic/mythmusic/aacdecoder.cpp	2008-11-19 12:52:42.000000000 -0500
+@@ -17,6 +17,9 @@
+ #define FAAD_MODIFIED
+ #endif
+ 
++// LinHES need this undefined
++#undef FAAD_MODIFIED
++
+ // ANSI C headers
+ #include <cstdlib>
+ 
diff --git a/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD b/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD
index 4277f16..4c03923 100755
--- a/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=mythtv-svn
-pkgver=19974
-pkgrel=3
+pkgver=20018
+pkgrel=1
 pkgdesc="A personal video recorder for Linux"
 url="http://www.mythtv.org"
 license="GPL"
@@ -10,16 +10,16 @@ makedepends=('libgl' 'subversion')
 conflicts=('mythtv')
 replaces=()
 groups=('pvr')
-backup=()
+#backup=()
 #options=(!strip)
 #MAKEFLAGS="-j6"
 install='mythtv.install'
 
-patchs=('smolt_jump.patch' 'DeviceReadBuffer-polltimeout.2.patch' 'mpegrecorder-hdpvr-v2a.patch' 'hdpvr-livetv.patch')
-#patchs=('svn_main_menu_popup.patch' 'smolt_jump.patch' 'DeviceReadBuffer-polltimeout.2.patch' 'mpegrecorder-hdpvr-v2a.patch' 'hdpvr-livetv.patch')
+patchs=('smolt_jump.patch' 'DeviceReadBuffer-polltimeout.2.patch' 'hdpvr_audio_codec_selection-v1.1.diff')
+#patchs=('svn_main_menu_popup.patch' 'smolt_jump.patch' 'DeviceReadBuffer-polltimeout.2.patch' 'hdpvr_audio_codec_selection-v1.1.diff')
 source=('mythbackend' 'myth.sh' `echo ${patchs[@]:0}` )
 arch=('i686' 'x86_64')
-md5sums=()
+#md5sums=()
 
 _svntrunk=http://cvs.mythtv.org/svn/trunk/mythtv
 _svnmod=mythtv
diff --git a/abs/core-testing/mythtv/trunk/mythtv/aacdecoder.cpp.patch b/abs/core-testing/mythtv/trunk/mythtv/aacdecoder.cpp.patch
deleted file mode 100644
index 8796eb4..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv/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/hdpvr-livetv.patch b/abs/core-testing/mythtv/trunk/mythtv/hdpvr-livetv.patch
deleted file mode 100644
index 6297ae1..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv/hdpvr-livetv.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-Index: libs/libmythtv/mpegrecorder.cpp
-===================================================================
---- libs/libmythtv/mpegrecorder.cpp.orig
-+++ libs/libmythtv/mpegrecorder.cpp
-@@ -1109,6 +1109,14 @@ void MpegRecorder::StartRecording(void)
- 
-     if (driver == "hdpvr")
-     {
-+        if (curRecording->recgroup == "LiveTV")
-+        {
-+            // Don't bother checking resolution, always use best bitrate
-+            int maxbitrate = std::max(high_mpeg4peakbitrate,
-+                                      high_mpeg4avgbitrate);
-+            SetBitrate(high_mpeg4avgbitrate, maxbitrate, "LiveTV");
-+        }
-+
-         int progNum = 1;
-         MPEGStreamData *sd = new MPEGStreamData(progNum, true);
-         sd->SetRecordingType(_recording_type);
-@@ -1553,7 +1561,7 @@ bool MpegRecorder::StartEncoding(int fd)
-     memset(&command, 0, sizeof(struct v4l2_encoder_cmd));
-     command.cmd = V4L2_ENC_CMD_START;
- 
--    if (driver == "hdpvr")
-+    if (driver == "hdpvr" && curRecording->recgroup != "LiveTV")
-         HandleResolutionChanges();
- 
-     VERBOSE(VB_RECORD, LOC + "StartEncoding");
-@@ -1755,6 +1763,35 @@ bool MpegRecorder::WaitFor_HDPVR(void)
-     return false;
- }
- 
-+void MpegRecorder::SetBitrate(int bitrate, int maxbitrate,
-+                              const QString & reason)
-+{
-+    if (maxbitrate == bitrate)
-+    {
-+        VERBOSE(VB_RECORD, LOC + QString("%1 bitrate %2 kbps CBR")
-+                .arg(reason).arg(bitrate));
-+    }
-+    else
-+    {
-+        VERBOSE(VB_RECORD, LOC + QString("%1 bitrate %2/%3 kbps VBR")
-+                .arg(reason).arg(bitrate).arg(maxbitrate));
-+    }
-+
-+    vector<struct v4l2_ext_control> ext_ctrls;
-+    add_ext_ctrl(ext_ctrls, V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
-+                 (maxbitrate == bitrate) ?
-+                 V4L2_MPEG_VIDEO_BITRATE_MODE_CBR :
-+                 V4L2_MPEG_VIDEO_BITRATE_MODE_VBR);
-+
-+    add_ext_ctrl(ext_ctrls, V4L2_CID_MPEG_VIDEO_BITRATE,
-+                 bitrate * 1000);
-+
-+    add_ext_ctrl(ext_ctrls, V4L2_CID_MPEG_VIDEO_BITRATE_PEAK,
-+                 maxbitrate * 1000);
-+
-+    set_ctrls(readfd, ext_ctrls);
-+}
-+
- void MpegRecorder::HandleResolutionChanges(void)
- {
-     VERBOSE(VB_RECORD, LOC + "Checking Resolution");
-@@ -1819,30 +1856,7 @@ void MpegRecorder::HandleResolutionChang
-                     .arg(old_avg).arg(old_max));
-         }
- 
--        if (maxbitrate == bitrate)
--        {
--            VERBOSE(VB_RECORD, LOC + QString("New bitrate %1 kbps CBR")
--                    .arg(bitrate));
--        }
--        else
--        {
--            VERBOSE(VB_RECORD, LOC + QString("New bitrate %1/%2 kbps VBR")
--                    .arg(bitrate).arg(maxbitrate));
--        }
--
--        vector<struct v4l2_ext_control> ext_ctrls;
--        add_ext_ctrl(ext_ctrls, V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
--                     (maxbitrate == bitrate) ?
--                     V4L2_MPEG_VIDEO_BITRATE_MODE_CBR :
--                     V4L2_MPEG_VIDEO_BITRATE_MODE_VBR);
--
--        add_ext_ctrl(ext_ctrls, V4L2_CID_MPEG_VIDEO_BITRATE,
--                     bitrate * 1000);
--
--        add_ext_ctrl(ext_ctrls, V4L2_CID_MPEG_VIDEO_BITRATE_PEAK,
--                     maxbitrate * 1000);
--
--        set_ctrls(readfd, ext_ctrls);
--
-+        SetBitrate(bitrate, maxbitrate, "New");
-     }
- }
-+
-Index: libs/libmythtv/mpegrecorder.h
-===================================================================
---- libs/libmythtv/mpegrecorder.h.orig
-+++ libs/libmythtv/mpegrecorder.h
-@@ -87,6 +87,7 @@ class MpegRecorder : public DTVRecorder,
-     void ResetForNewFile(void);
- 
-     bool WaitFor_HDPVR(void);
-+    void SetBitrate(int bitrate, int maxbitrate, const QString & reason);
-     void HandleResolutionChanges(void);
- 
-     inline bool CheckCC(uint pid, uint cc);
diff --git a/abs/core-testing/mythtv/trunk/mythtv/hdpvr_audio_codec_selection-v1.1.diff b/abs/core-testing/mythtv/trunk/mythtv/hdpvr_audio_codec_selection-v1.1.diff
new file mode 100644
index 0000000..7589dd3
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/mythtv/hdpvr_audio_codec_selection-v1.1.diff
@@ -0,0 +1,96 @@
+Index: libs/libmythtv/mpegrecorder.cpp
+===================================================================
+--- libs/libmythtv/mpegrecorder.cpp	(revision 19989)
++++ libs/libmythtv/mpegrecorder.cpp	(working copy)
+@@ -285,6 +285,13 @@
+                     QString("%1 is invalid").arg(value));
+         }
+     }
++    else if (opt == "audiocodec")
++    {
++        if (value == "AAC Hardware Encoder")
++            audtype = 4;
++        else if (value == "AC3 Hardware Encoder")
++            audtype = 5;
++    }
+     else
+     {
+         RecorderBase::SetOption(opt, value);
+@@ -340,6 +347,8 @@
+     SetIntOption(profile, "medium_mpeg4peakbitrate");
+     SetIntOption(profile, "high_mpeg4avgbitrate");
+     SetIntOption(profile, "high_mpeg4peakbitrate");
++
++    SetStrOption(profile, "audiocodec");
+ }
+ 
+ // same as the base class, it just doesn't complain if an option is missing
+@@ -829,6 +838,22 @@
+     {
+         maxbitrate = high_mpeg4peakbitrate;
+         bitrate    = high_mpeg4avgbitrate;
++
++        // query supported audio codecs
++        struct v4l2_queryctrl qctrl;
++        qctrl.id = V4L2_CID_MPEG_AUDIO_ENCODING;
++
++        if (ioctl(chanfd, VIDIOC_QUERYCTRL, &qctrl) < 0)
++        {
++            VERBOSE(VB_IMPORTANT, LOC_WARN +
++                    "Unable to get supported audio codecs." + ENO);
++        }
++        else
++        {
++            uint audio_encoding = max(min(audtype-1, qctrl.maximum), qctrl.minimum);
++            add_ext_ctrl(ext_ctrls, V4L2_CID_MPEG_AUDIO_ENCODING,
++                         audio_encoding);
++        }
+     }
+     maxbitrate = std::max(maxbitrate, bitrate);
+ 
+Index: libs/libmythtv/recordingprofile.cpp
+===================================================================
+--- libs/libmythtv/recordingprofile.cpp	(revision 19988)
++++ libs/libmythtv/recordingprofile.cpp	(working copy)
+@@ -424,6 +424,15 @@
+         params->addChild(new SampleRate(parent));
+         params->addChild(new BTTVVolume(parent));
+         addTarget("Uncompressed", params);
++
++        params = new VerticalConfigurationGroup(false);
++        params->setLabel("AC3 Hardware Encoder");
++        addTarget("AC3 Hardware Encoder", params);
++
++        params = new VerticalConfigurationGroup(false);
++        params->setLabel("AAC Hardware Encoder");
++        addTarget("AAC Hardware Encoder", params);
++
+     };
+ 
+     void selectCodecs(QString groupType)
+@@ -432,6 +441,11 @@
+         {
+             if (groupType == "MPEG")
+                codecName->addSelection("MPEG-2 Hardware Encoder");
++            else if (groupType == "HDPVR")
++            {
++                codecName->addSelection("AC3 Hardware Encoder");
++                codecName->addSelection("AAC Hardware Encoder");
++            }
+             else
+             {
+                 // V4L, TRANSCODE (and any undefined types)
+@@ -1260,11 +1274,8 @@
+         videoSettings = new VideoCompressionSettings(*this, profileName);
+         addChild(videoSettings);
+ 
+-        if (type.toUpper() != "HDPVR")
+-        {
+-            audioSettings = new AudioCompressionSettings(*this, profileName);
+-            addChild(audioSettings);
+-        }
++        audioSettings = new AudioCompressionSettings(*this, profileName);
++        addChild(audioSettings);
+ 
+         if (!profileName.isEmpty() && profileName.left(11) == "Transcoders")
+         {
diff --git a/abs/core-testing/mythtv/trunk/mythtv/mpegrecorder-hdpvr-v2a.patch b/abs/core-testing/mythtv/trunk/mythtv/mpegrecorder-hdpvr-v2a.patch
deleted file mode 100644
index dbef933..0000000
--- a/abs/core-testing/mythtv/trunk/mythtv/mpegrecorder-hdpvr-v2a.patch
+++ /dev/null
@@ -1,668 +0,0 @@
-Index: libs/libmythtv/DeviceReadBuffer.cpp
-===================================================================
---- libs/libmythtv/DeviceReadBuffer.cpp.orig
-+++ libs/libmythtv/DeviceReadBuffer.cpp
-@@ -169,7 +169,17 @@ bool DeviceReadBuffer::IsPaused(void) co
-     return paused;
- }
- 
--bool DeviceReadBuffer::WaitForUnpause(int timeout)
-+bool DeviceReadBuffer::WaitForPaused(unsigned long timeout)
-+{
-+    QMutexLocker locker(&lock);
-+
-+    if (!paused)
-+        pauseWait.wait(&lock, timeout);
-+
-+    return paused;
-+}
-+
-+bool DeviceReadBuffer::WaitForUnpause(unsigned long timeout)
- {
-     QMutexLocker locker(&lock);
- 
-Index: libs/libmythtv/DeviceReadBuffer.h
-===================================================================
---- libs/libmythtv/DeviceReadBuffer.h.orig
-+++ libs/libmythtv/DeviceReadBuffer.h
-@@ -42,7 +42,8 @@ class DeviceReadBuffer
- 
-     void SetRequestPause(bool request);
-     bool IsPaused(void) const;
--    bool WaitForUnpause(int timeout);
-+    bool WaitForUnpause(unsigned long timeout);
-+    bool WaitForPaused(unsigned long timeout);
-     
-     bool IsErrored(void) const { return error; }
-     bool IsEOF(void)     const { return eof;   }
-Index: libs/libmythtv/mpegrecorder.cpp
-===================================================================
---- libs/libmythtv/mpegrecorder.cpp.orig
-+++ libs/libmythtv/mpegrecorder.cpp
-@@ -19,6 +19,7 @@ using namespace std;
- #include <sys/stat.h>
- #include <sys/ioctl.h>
- #include <sys/time.h>
-+#include <sys/poll.h>
- 
- // avlib headers
- extern "C" {
-@@ -86,7 +87,7 @@ MpegRecorder::MpegRecorder(TVRec *rec) :
-     requires_special_pause(false),
-     // State
-     recording(false),             encoding(false),
--    needs_resolution(false),      start_stop_encoding_lock(QMutex::Recursive),
-+    start_stop_encoding_lock(QMutex::Recursive),
-     recording_wait_lock(),        recording_wait(),
-     // Pausing state
-     cleartimeonpause(false),
-@@ -493,12 +494,20 @@ bool MpegRecorder::OpenV4L2DeviceAsInput
- 
- bool MpegRecorder::SetFormat(int chanfd)
- {
-+    uint   idx;
-     struct v4l2_format vfmt;
-     bzero(&vfmt, sizeof(vfmt));
- 
-     vfmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
- 
--    if (ioctl(chanfd, VIDIOC_G_FMT, &vfmt) < 0)
-+    for (idx = 0; idx < 20; ++idx)
-+    {
-+        if (ioctl(chanfd, VIDIOC_G_FMT, &vfmt) == 0)
-+            break;
-+        usleep(100 * 1000);
-+    }
-+
-+    if (idx == 10)
-     {
-         VERBOSE(VB_IMPORTANT, LOC_ERR + "Error getting format" + ENO);
-         return false;
-@@ -507,7 +516,14 @@ bool MpegRecorder::SetFormat(int chanfd)
-     vfmt.fmt.pix.width = width;
-     vfmt.fmt.pix.height = height;
- 
--    if (ioctl(chanfd, VIDIOC_S_FMT, &vfmt) < 0)
-+    for (idx = 0; idx < 20; ++idx)
-+    {
-+        if (ioctl(chanfd, VIDIOC_S_FMT, &vfmt) == 0)
-+            break;
-+        usleep(100 * 1000);
-+    }
-+
-+    if (idx == 20)
-     {
-         VERBOSE(VB_IMPORTANT, LOC_ERR + "Error setting format" + ENO);
-         return false;
-@@ -519,9 +535,18 @@ bool MpegRecorder::SetFormat(int chanfd)
- /// Set audio language mode
- bool MpegRecorder::SetLanguageMode(int chanfd)
- {
-+    uint   idx;
-     struct v4l2_tuner vt;
-     bzero(&vt, sizeof(struct v4l2_tuner));
--    if (ioctl(chanfd, VIDIOC_G_TUNER, &vt) < 0)
-+
-+    for (idx = 0; idx < 20; ++idx)
-+    {
-+        if (ioctl(chanfd, VIDIOC_G_TUNER, &vt) == 0)
-+            break;
-+        usleep(100 * 1000);
-+    }
-+
-+    if (idx == 20)
-     {
-         VERBOSE(VB_IMPORTANT, LOC_WARN + "Unable to get audio mode" + ENO);
-         return false;
-@@ -555,7 +580,14 @@ bool MpegRecorder::SetLanguageMode(int c
-         success = false;
-     }
- 
--    if (ioctl(chanfd, VIDIOC_S_TUNER, &vt) < 0)
-+    for (idx = 0; idx < 20; ++idx)
-+    {
-+        if (ioctl(chanfd, VIDIOC_S_TUNER, &vt) == 0)
-+            break;
-+        usleep(100 * 1000);
-+    }
-+
-+    if (idx == 20)
-     {
-         VERBOSE(VB_IMPORTANT, LOC_WARN + "Unable to set audio mode" + ENO);
-         success = false;
-@@ -567,9 +599,18 @@ bool MpegRecorder::SetLanguageMode(int c
- bool MpegRecorder::SetRecordingVolume(int chanfd)
- {
-     // Get volume min/max values
-+    uint   idx;
-     struct v4l2_queryctrl qctrl;
-     qctrl.id = V4L2_CID_AUDIO_VOLUME;
--    if (ioctl(chanfd, VIDIOC_QUERYCTRL, &qctrl) < 0)
-+
-+    for (idx = 0; idx < 20; ++idx)
-+    {
-+        if (ioctl(chanfd, VIDIOC_QUERYCTRL, &qctrl) == 0)
-+            break;
-+        usleep(100 * 1000);
-+    }
-+
-+    if (idx == 20)
-     {
-         VERBOSE(VB_IMPORTANT, LOC_WARN +
-                 "Unable to get recording volume parameters(max/min)" + ENO +
-@@ -588,7 +629,14 @@ bool MpegRecorder::SetRecordingVolume(in
-     ctrl.id = V4L2_CID_AUDIO_VOLUME;
-     ctrl.value = ctrl_volume;
- 
--    if (ioctl(chanfd, VIDIOC_S_CTRL, &ctrl) < 0)
-+    for (idx = 0; idx < 20; ++idx)
-+    {
-+        if (ioctl(chanfd, VIDIOC_S_CTRL, &ctrl) == 0)
-+            break;
-+        usleep(100 * 1000);
-+    }
-+
-+    if (idx == 20)
-     {
-         VERBOSE(VB_IMPORTANT, LOC_WARN +
-                 "Unable to set recording volume" + ENO + "\n\t\t\t" +
-@@ -771,6 +819,7 @@ static void set_ctrls(int fd, vector<str
- 
-     for (uint i = 0; i < ext_ctrls.size(); i++)
-     {
-+        uint   idx;
-         struct v4l2_ext_controls ctrls;
-         bzero(&ctrls, sizeof(struct v4l2_ext_controls));
- 
-@@ -780,7 +829,14 @@ static void set_ctrls(int fd, vector<str
-         ctrls.count       = 1;
-         ctrls.controls    = &ext_ctrls[i];
-             
--        if (ioctl(fd, VIDIOC_S_EXT_CTRLS, &ctrls) < 0)
-+        for (idx = 0; idx < 20; ++idx)
-+        {
-+            if (ioctl(fd, VIDIOC_S_EXT_CTRLS, &ctrls) == 0)
-+                break;
-+            usleep(100 * 1000);
-+        }
-+
-+        if (idx == 20)
-         {
-             QMutexLocker locker(&control_description_lock);
-             VERBOSE(VB_IMPORTANT, QString("mpegrecorder.cpp:set_ctrls(): ") +
-@@ -820,6 +876,30 @@ bool MpegRecorder::SetV4L2DeviceOptions(
-     {
-         maxbitrate = high_mpeg4peakbitrate;
-         bitrate    = high_mpeg4avgbitrate;
-+
-+        // query supported audio codecs and prefer AC3
-+        uint   idx;
-+        struct v4l2_queryctrl qctrl;
-+        qctrl.id = V4L2_CID_MPEG_AUDIO_ENCODING;
-+
-+        for (idx = 0; idx < 20; ++idx)
-+        {
-+            if (ioctl(chanfd, VIDIOC_QUERYCTRL, &qctrl) == 0)
-+                break;
-+            usleep(100 * 1000);
-+        }
-+
-+        if (idx == 20)
-+        {
-+            VERBOSE(VB_IMPORTANT, LOC_WARN +
-+                    "Unable to get supported audio codecs." + ENO);
-+        }
-+        else
-+        {
-+            if (qctrl.minimum != qctrl.maximum)
-+                add_ext_ctrl(ext_ctrls, V4L2_CID_MPEG_AUDIO_ENCODING,
-+                             qctrl.maximum);
-+        }
-     }
-     maxbitrate = std::max(maxbitrate, bitrate);
- 
-@@ -843,10 +923,19 @@ bool MpegRecorder::SetV4L2DeviceOptions(
-     int audioinput = audiodevice.toUInt(&ok);
-     if (ok)
-     {
-+        uint   idx;
-         struct v4l2_audio ain;
-         bzero(&ain, sizeof(ain));
-         ain.index = audioinput;
--        if (ioctl(chanfd, VIDIOC_ENUMAUDIO, &ain) < 0)
-+
-+        for (idx = 0; idx < 20; ++idx)
-+        {
-+            if (ioctl(chanfd, VIDIOC_ENUMAUDIO, &ain) == 0)
-+                break;
-+            usleep(100 * 1000);
-+        }
-+
-+        if (idx == 20)
-         {
-             VERBOSE(VB_IMPORTANT, LOC_WARN +
-                     "Unable to get audio input.");
-@@ -854,7 +943,15 @@ bool MpegRecorder::SetV4L2DeviceOptions(
-         else
-         {
-             ain.index = audioinput;
--            if (ioctl(chanfd, VIDIOC_S_AUDIO, &ain) < 0)
-+
-+            for (idx = 0; idx < 20; ++idx)
-+            {
-+                if (ioctl(chanfd, VIDIOC_S_AUDIO, &ain) == 0)
-+                    break;
-+                usleep(100 * 1000);
-+            }
-+
-+            if (idx == 20)
-             {
-                 VERBOSE(VB_IMPORTANT, LOC_WARN +
-                         "Unable to set audio input.");
-@@ -1042,17 +1139,26 @@ void MpegRecorder::StartRecording(void)
-     if (deviceIsMpegFile)
-         elapsedTimer.start();
-     else if (_device_read_buffer)
--        _device_read_buffer->Start();
-+    {
-+        VERBOSE(VB_RECORD, LOC + "Initial startup of recorder");
- 
--    needs_resolution = (driver == "hdpvr");
-+        if (StartEncoding(readfd))
-+            _device_read_buffer->Start();
-+        else
-+        {
-+            VERBOSE(VB_IMPORTANT, LOC_ERR + "Failed to start recording");
-+            recording = false;
-+            QMutexLocker locker(&recording_wait_lock);
-+            recording_wait.wakeAll();
-+            _error = true;
-+        }
-+    }
- 
-     QByteArray vdevice = videodevice.toAscii();
-     while (encoding && !_error)
-     {
-         if (PauseAndWait(100))
-             continue;
--
--        HandleResolutionChanges();
-         
-         if (deviceIsMpegFile)
-         {
-@@ -1096,35 +1202,7 @@ void MpegRecorder::StartRecording(void)
-             {
-                 VERBOSE(VB_IMPORTANT, LOC_ERR + "Device error detected");
- 
--                _device_read_buffer->Stop();
--
--                QMutexLocker locker(&start_stop_encoding_lock);
--
--                StopEncoding(readfd);
--
--                // Make sure the next things in the file are a PAT & PMT
--                if (_stream_data->PATSingleProgram() &&
--                    _stream_data->PMTSingleProgram())
--                {
--                    bool tmp = _wait_for_keyframe_option;
--                    _wait_for_keyframe_option = false;
--                    HandleSingleProgramPAT(_stream_data->PATSingleProgram());
--                    HandleSingleProgramPMT(_stream_data->PMTSingleProgram());
--                    _wait_for_keyframe_option = tmp;
--                }
--
--                if (StartEncoding(readfd))
--                {
--                    _device_read_buffer->Start();
--                }
--                else
--                {
--                    if (0 != close(readfd))
--                        VERBOSE(VB_IMPORTANT, LOC_ERR + "Close error" + ENO);
--                    
--                    // Force card to be reopened on next iteration..
--                    readfd = -1;
--                }
-+                RestartEncoding();
-             }
-             else if (_device_read_buffer->IsEOF())
-             {
-@@ -1222,6 +1300,8 @@ void MpegRecorder::StartRecording(void)
-         }
-     }
- 
-+    VERBOSE(VB_RECORD, LOC + "StartRecording finishing up");
-+
-     if (_device_read_buffer)
-     {
-         if (_device_read_buffer->IsRunning())
-@@ -1230,6 +1310,7 @@ void MpegRecorder::StartRecording(void)
-         delete _device_read_buffer;
-         _device_read_buffer = NULL;
-     }
-+
-     StopEncoding(readfd);
- 
-     FinishRecording();
-@@ -1379,19 +1460,14 @@ bool MpegRecorder::PauseAndWait(int time
- 
-         if (!paused)
-         {
-+            VERBOSE(VB_RECORD, LOC + "PauseAndWait pause");
-+
-             if (_device_read_buffer)
-             {
-                 QMutex drb_lock;
-                 drb_lock.lock();
--
-                 _device_read_buffer->SetRequestPause(true);
--
--                pauseWait.wait(&drb_lock, timeout);
--            }
--            else
--            {
--                paused = true;
--                pauseWait.wakeAll();
-+                _device_read_buffer->WaitForPaused(4000);
-             }
- 
-             // Some drivers require streaming to be disabled before
-@@ -1399,32 +1475,76 @@ bool MpegRecorder::PauseAndWait(int time
-             if (requires_special_pause)
-                 StopEncoding(readfd);
- 
-+            paused = true;
-+            pauseWait.wakeAll();
-+
-             if (tvrec)
-                 tvrec->RecorderPaused();
-         }
- 
-         unpauseWait.wait(&waitlock, timeout);
-     }
--    if (!request_pause)
-+
-+    if (!request_pause && paused)
-     {
--        if (paused)
-+        VERBOSE(VB_RECORD, LOC + "PauseAndWait unpause");
-+
-+        if (driver == "hdpvr")
-         {
--            // Some drivers require streaming to be disabled before
--            // an input switch and other channel format setting.
--            if (requires_special_pause)
--                StartEncoding(readfd);
-+            m_h264_parser.Reset();
-+            _wait_for_keyframe_option = true;
-+            _seen_sps = false;
-+        }
- 
--            if (_device_read_buffer)
--                _device_read_buffer->SetRequestPause(false);
-+        // Some drivers require streaming to be disabled before
-+        // an input switch and other channel format setting.
-+        if (requires_special_pause)
-+            StartEncoding(readfd);
-+        
-+        if (_device_read_buffer)
-+            _device_read_buffer->SetRequestPause(false);
-+        
-+        if (_stream_data)
-+            _stream_data->Reset(_stream_data->DesiredProgram());
- 
--            if (_stream_data)
--                _stream_data->Reset(_stream_data->DesiredProgram());
--        }
-         paused = false;
-     }
-+
-     return paused;
- }
- 
-+void MpegRecorder::RestartEncoding(void)
-+{
-+    VERBOSE(VB_RECORD, LOC + "RestartEncoding");
-+
-+    _device_read_buffer->Stop();
-+    
-+    QMutexLocker locker(&start_stop_encoding_lock);
-+    
-+    StopEncoding(readfd);
-+    
-+    // Make sure the next things in the file are a PAT & PMT
-+    if (_stream_data->PATSingleProgram() &&
-+        _stream_data->PMTSingleProgram())
-+    {
-+        _wait_for_keyframe_option = false;
-+        HandleSingleProgramPAT(_stream_data->PATSingleProgram());
-+        HandleSingleProgramPMT(_stream_data->PMTSingleProgram());
-+    }
-+    
-+    if (StartEncoding(readfd))
-+    {
-+        _device_read_buffer->Start();
-+    }
-+    else
-+    {
-+        if (0 != close(readfd))
-+            VERBOSE(VB_IMPORTANT, LOC_ERR + "Close error" + ENO);
-+        
-+        readfd = -1;
-+    }
-+}
-+
- bool MpegRecorder::StartEncoding(int fd)
- {
-     QMutexLocker locker(&start_stop_encoding_lock);
-@@ -1433,13 +1553,22 @@ bool MpegRecorder::StartEncoding(int fd)
-     memset(&command, 0, sizeof(struct v4l2_encoder_cmd));
-     command.cmd = V4L2_ENC_CMD_START;
- 
-+    if (driver == "hdpvr")
-+        HandleResolutionChanges();
-+
-     VERBOSE(VB_RECORD, LOC + "StartEncoding");
--    needs_resolution = (driver == "hdpvr");
- 
--    for (int idx = 0; idx < 10; ++idx)
-+    for (int idx = 0; idx < 20; ++idx)
-     {
-         if (ioctl(fd, VIDIOC_ENCODER_CMD, &command) == 0)
-         {
-+            if (driver == "hdpvr")
-+            {
-+                m_h264_parser.Reset();
-+                _wait_for_keyframe_option = true;
-+                _seen_sps = false;
-+            }
-+
-             VERBOSE(VB_RECORD, LOC + "Encoding started");
-             return true;
-         }
-@@ -1450,7 +1579,7 @@ bool MpegRecorder::StartEncoding(int fd)
-             return false;
-         }
- 
--        usleep(250 * 1000);
-+        usleep(100 * 1000);
-     }
- 
-     VERBOSE(VB_IMPORTANT, LOC_ERR + "StartEncoding - giving up" + ENO);
-@@ -1467,9 +1596,8 @@ bool MpegRecorder::StopEncoding(int fd)
- 
-     VERBOSE(VB_RECORD, LOC + "StopEncoding");
- 
--    for (int idx = 0; idx < 10; ++idx)
-+    for (int idx = 0; idx < 20; ++idx)
-     {
--
-         if (ioctl(fd, VIDIOC_ENCODER_CMD, &command) == 0)
-         {
-             VERBOSE(VB_RECORD, LOC + "Encoding stopped");
-@@ -1482,7 +1610,7 @@ bool MpegRecorder::StopEncoding(int fd)
-             return false;
-         }
- 
--        usleep(250 * 1000);
-+        usleep(100 * 1000);
-     }
- 
-     VERBOSE(VB_IMPORTANT, LOC_ERR + "StopEncoding - giving up" + ENO);
-@@ -1550,7 +1678,7 @@ void MpegRecorder::HandleSingleProgramPA
- void MpegRecorder::HandleSingleProgramPMT(ProgramMapTable *pmt)
- {
-     if (!pmt)
--{
-+    {
-         return;
-     }
- 
-@@ -1570,27 +1698,94 @@ void MpegRecorder::HandleSingleProgramPM
-         DTVRecorder::BufferedWrite(*(reinterpret_cast<TSPacket*>(&buf[i])));
- }
- 
--void MpegRecorder::HandleResolutionChanges(void)
-+bool MpegRecorder::WaitFor_HDPVR(void)
- {
--    if (!needs_resolution)
--        return;
-+    // After a resolution change, it can take the HD-PVR a few
-+    // seconds before it is usable again.
-+
-+    // Tell it to start encoding, then wait for it to actually feed us
-+    // some data.
-+    QMutexLocker locker(&start_stop_encoding_lock);
-+
-+
-+    // Sleep any less than 1.5 seconds, and the HD-PVR will
-+    // return the old resolution, when the resolution is changing.
-+    usleep(1500 * 1000);
- 
-+    struct v4l2_encoder_cmd command;
-+    struct pollfd polls;
-+    int    idx;
-+
-+    memset(&command, 0, sizeof(struct v4l2_encoder_cmd));
-+    command.cmd = V4L2_ENC_CMD_START;
-+
-+    for (idx = 0; idx < 20; ++idx)
-+    {
-+        if (ioctl(readfd, VIDIOC_ENCODER_CMD, &command) == 0)
-+            break;
-+        usleep(100 * 1000);
-+    }
-+
-+    if (idx == 20)
-+        return false;
-+
-+    polls.fd      = readfd;
-+    polls.events  = POLLIN;
-+    polls.revents = 0;
-+
-+    for (idx = 0; idx < 10; ++idx)
-+    {
-+        if (poll(&polls, 1, 250) > 0)
-+            break;
-+    }
-+
-+    if (idx == 10)
-+        return false;
-+
-+    // HD-PVR should now be "ready"
-+    command.cmd = V4L2_ENC_CMD_STOP;
-+
-+    for (idx = 0; idx < 20; ++idx)
-+    {
-+        if (ioctl(readfd, VIDIOC_ENCODER_CMD, &command) == 0)
-+            return true;
-+        usleep(100 * 1000);
-+    }
-+
-+    return false;
-+}
-+
-+void MpegRecorder::HandleResolutionChanges(void)
-+{
-     VERBOSE(VB_RECORD, LOC + "Checking Resolution");
-     struct v4l2_format vfmt;
-     memset(&vfmt, 0, sizeof(vfmt));
-     vfmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-             
-+    if (driver == "hdpvr")
-+        WaitFor_HDPVR();
-+
-+    uint idx;
-     uint pix = 0;
-+
-+    for (idx = 0; idx < 20; ++idx)
-+    {
-     if (0 == ioctl(chanfd, VIDIOC_G_FMT, &vfmt))
-     {
-         VERBOSE(VB_RECORD, LOC + QString("Got Resolution %1x%2")
-                 .arg(vfmt.fmt.pix.width).arg(vfmt.fmt.pix.height));
-         pix = vfmt.fmt.pix.width * vfmt.fmt.pix.height;
--        needs_resolution = false;
-+            break;
-+        }
-+        // Typically takes 0.9 seconds after a resolution change
-+        usleep(100 * 1000);
-     }
- 
-     if (!pix)
-+    {
-+        VERBOSE(VB_RECORD, LOC + "Giving up detecting resolution");
-         return; // nothing to do, we don't have a resolution yet
-+    }
- 
-     int old_max = maxbitrate, old_avg = bitrate;
-     if (pix <= 768*568)
-@@ -1648,12 +1843,6 @@ void MpegRecorder::HandleResolutionChang
-                      maxbitrate * 1000);
- 
-         set_ctrls(readfd, ext_ctrls);
--    }
- 
--    // Restart streaming. Shouldn't be needed? seems to be with current driver.
--    QMutexLocker locker(&start_stop_encoding_lock);
--    StopEncoding(readfd);
--    StartEncoding(readfd);
--
--    needs_resolution = false;
-+    }
- }
-Index: libs/libmythtv/mpegrecorder.h
-===================================================================
---- libs/libmythtv/mpegrecorder.h.orig
-+++ libs/libmythtv/mpegrecorder.h
-@@ -80,11 +80,13 @@ class MpegRecorder : public DTVRecorder,
-     uint GetFilteredAudioLayer(void) const;
-     uint GetFilteredAudioBitRate(uint audio_layer) const;
- 
-+    void RestartEncoding(void);
-     bool StartEncoding(int fd);
-     bool StopEncoding(int fd);
- 
-     void ResetForNewFile(void);
- 
-+    bool WaitFor_HDPVR(void);
-     void HandleResolutionChanges(void);
- 
-     inline bool CheckCC(uint pid, uint cc);
-@@ -104,7 +106,6 @@ class MpegRecorder : public DTVRecorder,
-     // State
-     bool recording;
-     bool encoding;
--    bool needs_resolution;
-     mutable QMutex start_stop_encoding_lock;
-     QMutex recording_wait_lock;
-     QWaitCondition recording_wait;
-@@ -113,7 +114,7 @@ class MpegRecorder : public DTVRecorder,
-     bool cleartimeonpause;
- 
-     // Encoding info
--    int width, height;
-+    uint width, height;
-     int bitrate, maxbitrate, streamtype, aspectratio;
-     int audtype, audsamplerate, audbitratel1, audbitratel2, audbitratel3;
-     int audvolume;
-- 
cgit v0.12


From 5d16b87724588c302083e89e4b9e9ec797271d66 Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Wed, 18 Feb 2009 16:01:42 -0500
Subject: builds fine, but not tested

---
 abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD   |  67 +++--
 .../mythtv/trunk/mythmusic/music_flac.patch        | 293 ---------------------
 2 files changed, 38 insertions(+), 322 deletions(-)
 delete mode 100644 abs/core-testing/mythtv/trunk/mythmusic/music_flac.patch

diff --git a/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD b/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD
index 28cbe82..73fb925 100644
--- a/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD
@@ -1,41 +1,50 @@
-
-
 pkgname=mythmusic-svn
-pkgver=16153
-pkgrel=9
+pkgver=20018
+pkgrel=1
 pkgdesc="Music playing plugin for MythTV"
 url="http://www.mythtv.org"
+license="GPL"
 arch=('i686' 'x86_64')
-#depends=('mythtv-svn' 'libid3tag' 'libmad' 'libvorbis' 'flac>=1.1.4' 'libcdaudio' \
-#         'cdparanoia' 'fftw2' 'sdl' 'faad2' 'lame' )
 
-  depends=('mythtv-svn ' 'libid3tag' 'flac>=1.1.4 ' 'a52dec' 'libcdaudio' 'libcddb' 'libdvdread' 'libid3tag' 'libmad' 'libogg'  'libtheora' 'libvorbis' 'taglib' 'libvisual' 'cdparanoia'   'sdl' 'faad2' 'lame' 'fftw2double')
+depends=("mythtv-svn" 'libid3tag' 'libmad' 'libvorbis' 'flac>=1.1.4' 'libcdaudio' \
+         'cdparanoia' 'fftw2' 'sdl' 'faad2>=2.6.1' 'lame' 'taglib' \
+         'libvisual-plugins' 'libvisual-projectm')
+conflicts=('mythmusic')
+groups=('mythtv-extras-svn')
 
-conflicts=('mythtv-plugins-svn')
-groups=('mythtv-all-plugins-svn')
-license="GPL"
-source=()
+patches=('aacdecoder.cpp.patch')
+source=(`echo ${patches[@]:0}`)
 _svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
 _svnmod=mythplugins
 
 
 build() {
-	cd $startdir/src/
-	make distclean
-	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-	cd $startdir/src/mythplugins
-PLUGIN=mythmusic
-grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-if [ $? != 0 ]
-then
-		echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-			msg "appending program lib"
-		fi
-
-#   ./configure  --disable-all --enable-mythmusic  
-
-   make  || return 1
-
-   make INSTALL_ROOT=$startdir/pkg install
+
+	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+#	svn co $_svntrunk --config-dir ./ $_svnmod
+
+	cd $startdir/src/$_svnmod
+
+	echo "--------------------------applying patches----------------------------------------------------"
+	for i in `echo ${patches[@]:0} `
+	do
+		echo applying $i
+		echo "-----------------------------"
+		patch -Np0  -i ${startdir}/src/$i  || return 1
+	done
+	echo "--------------------------done applying patches-----------------------------------------------"
+	
+	[ "$CARCH" = "i686"   ] && ARCH="i686"
+	[ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+
+	# configure
+	./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \
+	--enable-mythmusic --enable-libvisual --enable-fftw --enable-sdl \
+	--enable-aac || return 1
+
+	# build and install
+	. /etc/profile
+	make || return 1
+	make INSTALL_ROOT=$startdir/pkg install || return 1
+
 }
diff --git a/abs/core-testing/mythtv/trunk/mythmusic/music_flac.patch b/abs/core-testing/mythtv/trunk/mythmusic/music_flac.patch
deleted file mode 100644
index b152249..0000000
--- a/abs/core-testing/mythtv/trunk/mythmusic/music_flac.patch
+++ /dev/null
@@ -1,293 +0,0 @@
---- flacdecoder.cpp.old	2007-03-11 18:14:37.000000000 -0400
-+++ flacdecoder.cpp	2007-03-11 18:15:34.000000000 -0400
-@@ -17,7 +17,7 @@
- 
- #include <qtimer.h>
- 
--static FLAC__SeekableStreamDecoderReadStatus flacread(const FLAC__SeekableStreamDecoder *decoder, FLAC__byte bufferp[], unsigned *bytes, void *client_data)
-+static FLAC__StreamDecoderReadStatus flacread(const FLAC__StreamDecoder *decoder, FLAC__byte bufferp[], unsigned *bytes, void *client_data)
- {
-     decoder = decoder;
- 
-@@ -26,27 +26,27 @@
- 
-     if (len == -1)
-     {
--        return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_ERROR;
-+        return FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM;
-     }
-    
-     *bytes = len;
--    return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_OK;
-+    return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
- }
- 
--static FLAC__SeekableStreamDecoderSeekStatus flacseek(const FLAC__SeekableStreamDecoder *decoder, FLAC__uint64 absolute_byte_offset, void *client_data) 
-+static FLAC__StreamDecoderSeekStatus flacseek(const FLAC__StreamDecoder *decoder, FLAC__uint64 absolute_byte_offset, void *client_data) 
- {
-     decoder = decoder;
-     FlacDecoder *dflac = (FlacDecoder *)client_data;
- 
-     if (!dflac->input()->isDirectAccess())
--        return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_ERROR;
-+        return FLAC__STREAM_DECODER_SEEK_STATUS_ERROR;
- 
-     if (dflac->input()->at(absolute_byte_offset))
--        return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_OK;
--    return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_ERROR;
-+        return FLAC__STREAM_DECODER_SEEK_STATUS_OK;
-+    return FLAC__STREAM_DECODER_SEEK_STATUS_ERROR;
- }
- 
--static FLAC__SeekableStreamDecoderTellStatus flactell(const FLAC__SeekableStreamDecoder *decoder, FLAC__uint64 *absolute_byte_offset, void *client_data)
-+static FLAC__StreamDecoderTellStatus flactell(const FLAC__StreamDecoder *decoder, FLAC__uint64 *absolute_byte_offset, void *client_data)
- {
-     decoder = decoder;
-     FlacDecoder *dflac = (FlacDecoder *)client_data;
-@@ -54,20 +54,20 @@
-     long t = dflac->input()->at();
-     *absolute_byte_offset = t;
- 
--    return FLAC__SEEKABLE_STREAM_DECODER_TELL_STATUS_OK;
-+    return FLAC__STREAM_DECODER_TELL_STATUS_OK;
- }
- 
--static FLAC__SeekableStreamDecoderLengthStatus flaclength(const FLAC__SeekableStreamDecoder *decoder, FLAC__uint64 *stream_length, void *client_data)
-+static FLAC__StreamDecoderLengthStatus flaclength(const FLAC__StreamDecoder *decoder, FLAC__uint64 *stream_length, void *client_data)
- {
-     decoder = decoder;
- 
-     FlacDecoder *dflac = (FlacDecoder *)client_data;
- 
-     *stream_length = dflac->input()->size();
--    return FLAC__SEEKABLE_STREAM_DECODER_LENGTH_STATUS_OK;
-+    return FLAC__STREAM_DECODER_LENGTH_STATUS_OK;
- }
- 
--static FLAC__bool flaceof(const FLAC__SeekableStreamDecoder *decoder, void *client_data)
-+static FLAC__bool flaceof(const FLAC__StreamDecoder *decoder, void *client_data)
- {
-     decoder = decoder;
- 
-@@ -76,7 +76,7 @@
-     return dflac->input()->atEnd();
- }
- 
--static FLAC__StreamDecoderWriteStatus flacwrite(const FLAC__SeekableStreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer[], void *client_data)
-+static FLAC__StreamDecoderWriteStatus flacwrite(const FLAC__StreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer[], void *client_data)
- {
-     decoder = decoder;
- 
-@@ -132,7 +132,7 @@
-     }
- }
- 
--static void flacmetadata(const FLAC__SeekableStreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data)
-+static void flacmetadata(const FLAC__StreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data)
- {
-     decoder = decoder;
- 
-@@ -156,11 +156,11 @@
-     }
- }
- 
--static void flacerror(const FLAC__SeekableStreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data)
-+static void flacerror(const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data)
- {
-     decoder = decoder;
- 
--    FLAC__FileDecoder *file_decoder = (FLAC__FileDecoder *)client_data;
-+    FLAC__StreamDecoder *file_decoder = (FLAC__StreamDecoder *)client_data;
- 
-     file_decoder = file_decoder;
-     status = status;
-@@ -262,17 +262,8 @@
-         }
-     }
- 
--    decoder = FLAC__seekable_stream_decoder_new();
--    FLAC__seekable_stream_decoder_set_md5_checking(decoder, false);
--    FLAC__seekable_stream_decoder_set_read_callback(decoder, flacread);
--    FLAC__seekable_stream_decoder_set_seek_callback(decoder, flacseek);
--    FLAC__seekable_stream_decoder_set_tell_callback(decoder, flactell);
--    FLAC__seekable_stream_decoder_set_length_callback(decoder, flaclength);
--    FLAC__seekable_stream_decoder_set_eof_callback(decoder, flaceof);
--    FLAC__seekable_stream_decoder_set_write_callback(decoder, flacwrite);
--    FLAC__seekable_stream_decoder_set_metadata_callback(decoder, flacmetadata);
--    FLAC__seekable_stream_decoder_set_error_callback(decoder, flacerror);
--    FLAC__seekable_stream_decoder_set_client_data(decoder, this);
-+    decoder = FLAC__stream_decoder_new();
-+    FLAC__stream_decoder_set_md5_checking(decoder, false);
- 
-     freq = 0;
-     bitrate = 0;
-@@ -281,8 +272,17 @@
-     totalTime = 0; 
-     totalTime = totalTime < 0 ? 0 : totalTime;
- 
--    FLAC__seekable_stream_decoder_init(decoder);
--    FLAC__seekable_stream_decoder_process_until_end_of_metadata(decoder);
-+    FLAC__stream_decoder_init_stream(decoder,
-+                                     flacread,
-+                                     flacseek,
-+                                     flactell,
-+                                     flaclength,
-+                                     flaceof,
-+                                     flacwrite,
-+                                     flacmetadata,
-+                                     flacerror,
-+                                     this);
-+    FLAC__stream_decoder_process_until_end_of_metadata(decoder);
- 
-     inited = TRUE;
-     return TRUE;
-@@ -295,8 +295,8 @@
- 
- void FlacDecoder::deinit()
- {
--    FLAC__seekable_stream_decoder_finish(decoder);
--    FLAC__seekable_stream_decoder_delete(decoder);
-+    FLAC__stream_decoder_finish(decoder);
-+    FLAC__stream_decoder_delete(decoder);
- 
-     if (input()->isOpen())
-         input()->close();
-@@ -330,7 +330,7 @@
-     }
- 
-     bool flacok = true;
--    FLAC__SeekableStreamDecoderState decoderstate;
-+    FLAC__StreamDecoderState decoderstate;
- 
-     while (! done && ! finish) {
-         lock();
-@@ -340,12 +340,12 @@
-             FLAC__uint64 sample = (FLAC__uint64)(seekTime * 44100.0);
-             if (sample > totalsamples - 50)
-                 sample = totalsamples - 50;
--            FLAC__seekable_stream_decoder_seek_absolute(decoder, sample);
-+            FLAC__stream_decoder_seek_absolute(decoder, sample);
-             seekTime = -1.0;
-         }
- 
--        flacok = FLAC__seekable_stream_decoder_process_single(decoder);
--        decoderstate = FLAC__seekable_stream_decoder_get_state(decoder);
-+        flacok = FLAC__stream_decoder_process_single(decoder);
-+        decoderstate = FLAC__stream_decoder_get_state(decoder);
- 
-         if (decoderstate == 0 || decoderstate == 1)
-         {
---- flacdecoder.h.old	2007-03-11 18:14:37.000000000 -0400
-+++ flacdecoder.h	2007-03-11 18:14:12.000000000 -0400
-@@ -35,7 +35,7 @@
-     char *output_buf;
-     ulong output_bytes, output_at;
- 
--    FLAC__SeekableStreamDecoder *decoder;
-+    FLAC__StreamDecoder *decoder;
- 
-     unsigned int bks;
-     bool done, finish;
---- flacencoder.cpp.old	2007-03-11 18:14:37.000000000 -0400
-+++ flacencoder.cpp	2007-03-11 18:14:12.000000000 -0400
-@@ -9,7 +9,7 @@
- #include "flacencoder.h"
- #include "metaioflacvorbiscomment.h"
- 
--#include <FLAC/file_encoder.h>
-+#include <FLAC/stream_encoder.h>
- #include <FLAC/assert.h>
- #include <mythtv/mythcontext.h>
- 
-@@ -29,32 +29,32 @@
-     int rice_parameter_search_dist = 0;
-     int max_lpc_order = 8;
- 
--    encoder = FLAC__file_encoder_new();
-+    encoder = FLAC__stream_encoder_new();
- 
--    FLAC__file_encoder_set_streamable_subset(encoder, true);
--    FLAC__file_encoder_set_do_mid_side_stereo(encoder, do_mid_side);
--    FLAC__file_encoder_set_loose_mid_side_stereo(encoder, loose_mid_side);
--    FLAC__file_encoder_set_channels(encoder, NUM_CHANNELS);
--    FLAC__file_encoder_set_bits_per_sample(encoder, 16);
--    FLAC__file_encoder_set_sample_rate(encoder, 44100);
--    FLAC__file_encoder_set_blocksize(encoder, blocksize);
--    FLAC__file_encoder_set_max_lpc_order(encoder, max_lpc_order);
--    FLAC__file_encoder_set_qlp_coeff_precision(encoder, qlp_coeff_precision);
--    FLAC__file_encoder_set_do_qlp_coeff_prec_search(encoder, false);
--    FLAC__file_encoder_set_do_escape_coding(encoder, do_escape_coding);
--    FLAC__file_encoder_set_do_exhaustive_model_search(encoder, 
-+    FLAC__stream_encoder_set_streamable_subset(encoder, true);
-+    FLAC__stream_encoder_set_do_mid_side_stereo(encoder, do_mid_side);
-+    FLAC__stream_encoder_set_loose_mid_side_stereo(encoder, loose_mid_side);
-+    FLAC__stream_encoder_set_channels(encoder, NUM_CHANNELS);
-+    FLAC__stream_encoder_set_bits_per_sample(encoder, 16);
-+    FLAC__stream_encoder_set_sample_rate(encoder, 44100);
-+    FLAC__stream_encoder_set_blocksize(encoder, blocksize);
-+    FLAC__stream_encoder_set_max_lpc_order(encoder, max_lpc_order);
-+    FLAC__stream_encoder_set_qlp_coeff_precision(encoder, qlp_coeff_precision);
-+    FLAC__stream_encoder_set_do_qlp_coeff_prec_search(encoder, false);
-+    FLAC__stream_encoder_set_do_escape_coding(encoder, do_escape_coding);
-+    FLAC__stream_encoder_set_do_exhaustive_model_search(encoder, 
-                                                     do_exhaustive_model_search);
--    FLAC__file_encoder_set_min_residual_partition_order(encoder, 
-+    FLAC__stream_encoder_set_min_residual_partition_order(encoder, 
-                                                   min_residual_partition_order);
--    FLAC__file_encoder_set_max_residual_partition_order(encoder, 
-+    FLAC__stream_encoder_set_max_residual_partition_order(encoder, 
-                                                   max_residual_partition_order);
--    FLAC__file_encoder_set_rice_parameter_search_dist(encoder, 
-+    FLAC__stream_encoder_set_rice_parameter_search_dist(encoder, 
-                                                     rice_parameter_search_dist);
- 
--    FLAC__file_encoder_set_filename(encoder, outfile.local8Bit());
-+    
- 
--    int ret = FLAC__file_encoder_init(encoder);
--    if (ret != FLAC__FILE_ENCODER_OK)
-+    int ret = FLAC__stream_encoder_init_file(encoder, outfile.local8Bit(), NULL, NULL);
-+    if (ret != FLAC__STREAM_ENCODER_OK)
-     {
-         VERBOSE(VB_GENERAL, QString("Error initializing FLAC encoder."
-                                     " Got return code: %1").arg(ret));
-@@ -70,8 +70,8 @@
- 
-     if (encoder)
-     {
--        FLAC__file_encoder_finish(encoder);
--        FLAC__file_encoder_delete(encoder);
-+        FLAC__stream_encoder_finish(encoder);
-+        FLAC__stream_encoder_delete(encoder);
-     }
- 
-     if (metadata)
-@@ -102,7 +102,7 @@
- 
-         if(sampleindex == MAX_SAMPLES || (length == 0 && sampleindex > 0) ) 
-         {
--            if (!FLAC__file_encoder_process(encoder,
-+            if (!FLAC__stream_encoder_process(encoder,
-                                             (const FLAC__int32 * const *) input,
-                                             sampleindex))
-             {
---- flacencoder.h.old	2007-03-11 18:14:37.000000000 -0400
-+++ flacencoder.h	2007-03-11 18:14:12.000000000 -0400
-@@ -4,7 +4,7 @@
- #include <qstring.h>
- 
- #define HAVE_INTTYPES_H
--#include <FLAC/file_encoder.h>
-+#include <FLAC/stream_encoder.h>
- 
- #include "encoder.h"
- 
-@@ -21,7 +21,7 @@
-     int addSamples(int16_t *bytes, unsigned int len);
- 
-   private:
--    FLAC__FileEncoder *encoder;
-+    FLAC__StreamEncoder *encoder;
-     unsigned int sampleindex;
-     FLAC__int32 inputin[NUM_CHANNELS][MAX_SAMPLES];
-     FLAC__int32 *input[NUM_CHANNELS];
-- 
cgit v0.12


From ed4d89720f883775b54a0d202e93a0bc5ba328f1 Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Wed, 18 Feb 2009 16:16:35 -0500
Subject: builds fine, but not tested

---
 abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD | 68 ++++++++++++----------
 1 file changed, 37 insertions(+), 31 deletions(-)

diff --git a/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD b/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD
index 4d3e179..a1013c8 100644
--- a/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD
@@ -1,41 +1,47 @@
 pkgname=mytharchive-svn
-pkgver=16153
-pkgrel=3
+pkgver=20018
+pkgrel=1
 pkgdesc="MythTV plugin that lets you create DVDs from or archive your recorded shows."
-arch=('i686')
 url="http://www.mythtv.org"
-license=('GPL')
-depends=('mythtv-svn' 'libxmu' 'mysql-python' 'pil' 'dvdauthor')
-source=()
-conflicts=('mythtv-plugins-svn')
-groups=('mythtv-all-plugins-svn')
+license="GPL"
+arch=('i686' 'x86_64')
+
+depends=("mythtv-svn" 'libxmu' 'mysql-python' 'pil' 'dvdauthor')
+conflicts=('mytharchive')
+groups=('mythtv-extras-svn')
+
+patches=()
+source=(`echo ${patches[@]:0}`)
 _svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
 _svnmod=mythplugins
 
 
 build() {
-   	PLUGIN=mytharchive
-   	cd $startdir/src/
-   	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-   	cd $startdir/src/mythplugins
-
-   	PLUGIN=mytharchive
-   	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-	if [ $? != 0 ]
-	then
-		echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-		msg "appending program lib"
-	fi
-	msg "Correcting configure    kde3 to kde"
-	 sed -i 's#kde3#kde#' configure || return 1
-	make distclean
-   	./configure  --enable-opengl --disable-all   --enable-create-archive --enable-create-dvd --enable-mytharchive || return 1
-	qmake mythplugins.pro || return 1
-	make qmake || return 1
-	msg "Correcting Makefile    kde3 to kde"
-	sed -i 's#kde3#kde#' ./mytharchive/mytharchive/Makefile || return 1
-   	make -j 2 || return 1
-	make INSTALL_ROOT=$startdir/pkg install
-}
 
+	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+#	svn co $_svntrunk --config-dir ./ $_svnmod
+
+	cd $startdir/src/$_svnmod
 
+	echo "--------------------------applying patches----------------------------------------------------"
+	for i in `echo ${patches[@]:0} `
+	do
+		echo applying $i
+		echo "-----------------------------"
+		patch -Np0  -i ${startdir}/src/$i  || return 1
+	done
+	echo "--------------------------done applying patches-----------------------------------------------"
+	
+	[ "$CARCH" = "i686"   ] && ARCH="i686"
+	[ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+
+	# configure
+	./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \
+	--enable-mytharchive || return 1
+
+	# build and install
+	. /etc/profile
+	make || return 1
+	make INSTALL_ROOT=$startdir/pkg install || return 1
+
+}
-- 
cgit v0.12


From d58d84a6536bca6a625e11a7b37ee02a93dac3d8 Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Wed, 18 Feb 2009 16:32:02 -0500
Subject: builds fine, but not tested

---
 abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD | 64 +++++++++++++---------
 1 file changed, 38 insertions(+), 26 deletions(-)

diff --git a/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD b/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD
index 4c57cf0..f265481 100644
--- a/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD
@@ -1,35 +1,47 @@
-
 pkgname=mythbrowser-svn
-pkgver=16153
-pkgrel=2
+pkgver=20018
+pkgrel=1
 pkgdesc="Mini web browser for MythTV"
 url="http://www.mythtv.org"
-arch=('i686')
-depends=('mythtv-svn' 'wget' 'libxvmc' 'kdelibs')
-conflicts=('mythtv-plugins-svn')
-groups=('mythtv-all-plugins-svn')
 license="GPL"
-source=()
+arch=('i686' 'x86_64')
+
+depends=('mythtv-svn' 'wget')
+conflicts=('mythbrowser')
+groups=('mythtv-extras-svn')
+
+patches=()
+source=(`echo ${patches[@]:0}`)
 _svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
 _svnmod=mythplugins
 
+
 build() {
-   cd $startdir/src/
-	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-   cd $startdir/src/mythplugins
-   pwd
-   PLUGIN=mythbrowser
-   grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-   if [ $? != 0 ]
-   then
-	   	echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-			msg "appending program lib"
-		fi
-	make distclean
-   ./configure  --enable-opengl --disable-all --enable-mythbrowser || return 1
- #  sed -i 's#kde3#kde#' ./mythbrowser/mythbrowser/Makefile || return 1
-   make || return 1
-
-   make INSTALL_ROOT=$startdir/pkg install
+
+	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+#	svn co $_svntrunk --config-dir ./ $_svnmod
+
+	cd $startdir/src/$_svnmod
+
+	echo "--------------------------applying patches----------------------------------------------------"
+	for i in `echo ${patches[@]:0} `
+	do
+		echo applying $i
+		echo "-----------------------------"
+		patch -Np0  -i ${startdir}/src/$i  || return 1
+	done
+	echo "--------------------------done applying patches-----------------------------------------------"
+	
+	[ "$CARCH" = "i686"   ] && ARCH="i686"
+	[ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+
+	# configure
+	./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \
+	--enable-mythbrowser || return 1
+
+	# build and install
+	. /etc/profile
+	make || return 1
+	make INSTALL_ROOT=$startdir/pkg install || return 1
+
 }
-- 
cgit v0.12


From 173be7a324bcd856138d8b97fea6bf20ead35a5a Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Wed, 18 Feb 2009 16:40:54 -0500
Subject: no mythcontrols in SVN

---
 .../mythtv/trunk/mythcontrols/PKGBUILD             | 35 ----------------------
 1 file changed, 35 deletions(-)
 delete mode 100644 abs/core-testing/mythtv/trunk/mythcontrols/PKGBUILD

diff --git a/abs/core-testing/mythtv/trunk/mythcontrols/PKGBUILD b/abs/core-testing/mythtv/trunk/mythcontrols/PKGBUILD
deleted file mode 100644
index f4d6da6..0000000
--- a/abs/core-testing/mythtv/trunk/mythcontrols/PKGBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-pkgname=mythcontrols-svn
-pkgver=16153
-pkgrel=5
-pkgdesc="Experimental controls for MythTV"
-url="http://www.mythtv.org"
-arch=('i686')
-depends=('mythtv'-svn)
-conflicts=('mythtv-plugins-svn')
-groups=('mythtv-all-plugins-svn')
-license="GPL"
-source=()
-_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
-_svnmod=mythplugins
-
-
-build() {
-	cd $startdir/src/
-	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-	cd $startdir/src/mythplugins
-PLUGIN=mythcontrols
-grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-if [ $? != 0 ]
-then
-		echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-			msg "appending program lib"
-		fi
-	make distclean
-   ./configure  --disable-all --enable-opengl --enable-mythcontrols
-
-   make -j 2 || return 1
-
-   make INSTALL_ROOT=$startdir/pkg install
-}
-
-- 
cgit v0.12


From 01ae00b3779f3319f00ef33398232603ed22d30e Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Wed, 18 Feb 2009 16:46:13 -0500
Subject: builds fine, but not tested

---
 abs/core-testing/mythtv/trunk/mythflix/PKGBUILD | 61 +++++++++++++++----------
 1 file changed, 37 insertions(+), 24 deletions(-)

diff --git a/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD b/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD
index 9e8c92e..2c3bbb3 100644
--- a/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD
@@ -1,34 +1,47 @@
 pkgname=mythflix-svn
-pkgver=16153
-pkgrel=2
+pkgver=20018
+pkgrel=1
 pkgdesc="Netflix access plugin for MythTV"
 url="http://www.mythtv.org"
-arch=('i686')
-depends=('mythtv-svn')
-conflicts=('mythtv-plugins-svn')
-groups=('mythtv-all-plugins-svn')
 license="GPL"
-source=()
+arch=('i686' 'x86_64')
+
+depends=('mythtv-svn')
+conflicts=('mythflix')
+groups=('mythtv-extras-svn')
+
+patches=()
+source=(`echo ${patches[@]:0}`)
 _svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
 _svnmod=mythplugins
 
 
 build() {
-	cd $startdir/src/
-	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-	cd $startdir/src/mythplugins
-	PLUGIN=mythflix
-	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-	if [ $? != 0 ]
-	then
-			echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-				msg "appending program lib"
-			fi
-	make distclean
-   ./configure  --disable-all --enable-opengl --enable-mythflix 
-
-   make -j 2 || return 1
-
-   make INSTALL_ROOT=$startdir/pkg install
+
+	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+#	svn co $_svntrunk --config-dir ./ $_svnmod
+
+	cd $startdir/src/$_svnmod
+
+	echo "--------------------------applying patches----------------------------------------------------"
+	for i in `echo ${patches[@]:0} `
+	do
+		echo applying $i
+		echo "-----------------------------"
+		patch -Np0  -i ${startdir}/src/$i  || return 1
+	done
+	echo "--------------------------done applying patches-----------------------------------------------"
+	
+	[ "$CARCH" = "i686"   ] && ARCH="i686"
+	[ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+
+	# configure
+	./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \
+	--enable-mythflix || return 1
+
+	# build and install
+	. /etc/profile
+	make || return 1
+	make INSTALL_ROOT=$startdir/pkg install || return 1
+
 }
-- 
cgit v0.12


From 0768fd247ab83931c94fde0901abdbacfe5113ab Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Wed, 18 Feb 2009 16:53:30 -0500
Subject: builds fine, but not tested

---
 abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD | 63 +++++++++++++---------
 1 file changed, 37 insertions(+), 26 deletions(-)

diff --git a/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD b/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD
index 52fb732..339ed35 100644
--- a/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD
@@ -1,36 +1,47 @@
 pkgname=mythgallery-svn
-pkgver=16153
-pkgrel=3
+pkgver=20018
+pkgrel=1
 pkgdesc="Image gallery plugin for MythTV"
 url="http://www.mythtv.org"
-arch=('i686')
-depends=('mythtv-svn' 'libexif' 'libtiff')
-conflicts=('mythtv-plugins-svn')
-groups=('mythtv-all-plugins-svn')
 license="GPL"
-source=()
+arch=('i686' 'x86_64')
+
+depends=('mythtv-svn' 'libexif' 'libtiff')
+conflicts=('mythgallery')
+groups=('mythtv-extras-svn')
+
+patches=()
+source=(`echo ${patches[@]:0}`)
 _svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
 _svnmod=mythplugins
 
 
 build() {
-	cd $startdir/src/
-	echo svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
- 	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
-	cd $startdir/src/mythplugins
-	export QMAKESPEC='linux-g++'
-	PLUGIN=mythgallery
-	grep -q  programs-libs.pro  $PLUGIN/$PLUGIN/$PLUGIN.pro
-	if [ $? != 0 ]
-	then
-			echo "include ( ../../programs-libs.pro )" >> $PLUGIN/$PLUGIN/$PLUGIN.pro
-				msg "appending program lib"
-			fi
-	make distclean
-   ./configure  --disable-all --enable-opengl --enable-mythgallery --enable-exif
-
-   make -j 2 || return 1
-
-   make INSTALL_ROOT=$startdir/pkg install
-}
 
+	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+#	svn co $_svntrunk --config-dir ./ $_svnmod
+
+	cd $startdir/src/$_svnmod
+
+	echo "--------------------------applying patches----------------------------------------------------"
+	for i in `echo ${patches[@]:0} `
+	do
+		echo applying $i
+		echo "-----------------------------"
+		patch -Np0  -i ${startdir}/src/$i  || return 1
+	done
+	echo "--------------------------done applying patches-----------------------------------------------"
+	
+	[ "$CARCH" = "i686"   ] && ARCH="i686"
+	[ "$CARCH" = "x86_64" ] && ARCH="x86-64"
+
+	# configure
+	./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \
+	--enable-mythgallery || return 1
+
+	# build and install
+	. /etc/profile
+	make || return 1
+	make INSTALL_ROOT=$startdir/pkg install || return 1
+
+}
-- 
cgit v0.12