rpms/mythtv/EL-6 mythtv-0.25.1-hls_profile.patch, NONE, 1.1 mythtv-0.25.1-php54.patch, NONE, 1.1 mythtv-0.25.2-fixes.patch, NONE, 1.1 ChangeLog, 1.1, 1.2 mythbackend.service, 1.1, 1.2 mythtv.spec, 1.87, 1.88 sources, 1.53, 1.54 mythtv-0.25.1-fixes.patch, 1.1, NONE

Richard Shaw hobbes1069 at rpmfusion.org
Sun Aug 26 14:02:39 CEST 2012


Author: hobbes1069

Update of /cvs/free/rpms/mythtv/EL-6
In directory old02.ovh.rpmfusion.lan:/tmp/cvs-serv2462

Modified Files:
	ChangeLog mythbackend.service mythtv.spec sources 
Added Files:
	mythtv-0.25.1-hls_profile.patch mythtv-0.25.1-php54.patch 
	mythtv-0.25.2-fixes.patch 
Removed Files:
	mythtv-0.25.1-fixes.patch 
Log Message:
* Sat Aug 25 2012 Richard Shaw <hobbes1069 at gmail.com> - 0.25.2-2
- Update to latest fixes/0.25.
- Fix mythbackend looking in the wrong directory for config.xml (BZ#2450).


mythtv-0.25.1-hls_profile.patch:
 avformatwriter.cpp |   28 +++++++++++++++++++++++-----
 1 file changed, 23 insertions(+), 5 deletions(-)

--- NEW FILE mythtv-0.25.1-hls_profile.patch ---
diff --git a/mythtv/libs/libmythtv/avformatwriter.cpp b/mythtv/libs/libmythtv/avformatwriter.cpp
index 0c2d5be..dd9b585 100644
--- a/mythtv/libs/libmythtv/avformatwriter.cpp
+++ b/mythtv/libs/libmythtv/avformatwriter.cpp
@@ -427,7 +427,7 @@ AVStream* AVFormatWriter::AddVideoStream(void)
         c->coder_type            = 0;
         c->max_b_frames          = 0;
         c->slices                = 8;
-        c->level                 = 13;
+
         c->flags                |= CODEC_FLAG_LOOP_FILTER;
         c->me_cmp               |= 1;
         c->partitions           |= X264_PART_I8X8
@@ -448,12 +448,30 @@ AVStream* AVFormatWriter::AddVideoStream(void)
         c->refs                  = 3;
         c->directpred            = 1;
         c->rc_lookahead          = 0;
+        c->trellis               = 0;
 
         c->flags2               |= CODEC_FLAG2_FASTPSKIP;
-        c->flags2               |= CODEC_FLAG2_8X8DCT;
-        c->flags2               ^= CODEC_FLAG2_8X8DCT;
-        c->flags2               |= CODEC_FLAG2_WPRED;
-        c->flags2               ^= CODEC_FLAG2_WPRED;
+        c->flags2               |= CODEC_FLAG2_MIXED_REFS;
+
+        if ((c->height <= 240) &&
+            (c->width  <= 320) &&
+            (c->bit_rate <= 768000))
+        {
+            c->level             = 13;
+        }
+        else if (c->width >= 960)
+        {
+            if (c->width >= 1024)
+                c->level             = 41;
+            else
+                c->level             = 31;
+
+            c->flags2           |= CODEC_FLAG2_WPRED;
+        }
+        else
+        {
+            c->level             = 30;
+        }
     }
 
     if(m_ctx->oformat->flags & AVFMT_GLOBALHEADER)

mythtv-0.25.1-php54.patch:
 MythBase.php |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE mythtv-0.25.1-php54.patch ---
commit cd670ec7bf5f04f1ba67b5a7cbc00374479eb9b0
Author: Chris Petersen <cpetersen at mythtv.org>
Date:   Wed Jun 13 21:01:18 2012 -0700

    Partial support for PHP 5.4
    
    Bindings portions of the patch re #10504

diff --git a/mythtv/bindings/php/MythBase.php b/mythtv/bindings/php/MythBase.php
index 9b41efc..563e6fb 100644
--- a/mythtv/bindings/php/MythBase.php
+++ b/mythtv/bindings/php/MythBase.php
@@ -47,7 +47,7 @@ class MythBase {
 
     public function __destruct() {
         if (!is_null($this->cacheKey))
-            Cache::setObject($this->cacheKey, &$this, $this->cacheLifetime);
+            Cache::setObject($this->cacheKey, $this, $this->cacheLifetime);
         $this->cacheKey = null;
     }
 

mythtv-0.25.2-fixes.patch:
 checksums/mythplugins-0.25.2.md5sum             |    1 
 checksums/mythtv-0.25.2.md5sum                  |    1 
 mythplugins/mythmusic/mythmusic/musicplayer.cpp |    7 
 mythplugins/mythmusic/mythmusic/polygon.h       |    4 
 mythtv/bindings/python/MythTV/dataheap.py       |    2 
 mythtv/html/setup/wizard-network.qsp            |    4 
 mythtv/libs/libmythbase/serverpool.cpp          |  196 +++++++++++++++---------
 mythtv/libs/libmythtv/firewirerecorder.cpp      |    1 
 mythtv/libs/libmythtv/streamhandler.cpp         |   34 +---
 mythtv/libs/libmythtv/streamhandler.h           |    6 
 mythtv/libs/libmythtv/subtitlescreen.cpp        |    6 
 mythtv/libs/libmythtv/subtitlescreen.h          |    7 
 mythtv/programs/mythbackend/main_helpers.cpp    |    2 
 mythtv/themes/defaultmenu/mainmenu.xml          |    1 
 14 files changed, 176 insertions(+), 96 deletions(-)

--- NEW FILE mythtv-0.25.2-fixes.patch ---
 checksums/mythplugins-0.25.2.md5sum             |    1 +
 checksums/mythtv-0.25.2.md5sum                  |    1 +
 mythplugins/mythmusic/mythmusic/musicplayer.cpp |    7 +
 mythplugins/mythmusic/mythmusic/polygon.h       |    4 +-
 mythtv/bindings/python/MythTV/dataheap.py       |    2 +
 mythtv/html/setup/wizard-network.qsp            |    4 +
 mythtv/libs/libmythbase/serverpool.cpp          |  196 +++++++++++++++--------
 mythtv/libs/libmythtv/firewirerecorder.cpp      |    1 +
 mythtv/libs/libmythtv/streamhandler.cpp         |   34 ++---
 mythtv/libs/libmythtv/streamhandler.h           |    6 +-
 mythtv/libs/libmythtv/subtitlescreen.cpp        |    6 +-
 mythtv/libs/libmythtv/subtitlescreen.h          |    7 +-
 mythtv/programs/mythbackend/main_helpers.cpp    |    2 +-
 mythtv/themes/defaultmenu/mainmenu.xml          |    1 +
 14 files changed, 176 insertions(+), 96 deletions(-)

diff --git a/checksums/mythplugins-0.25.2.md5sum b/checksums/mythplugins-0.25.2.md5sum
new file mode 100644
index 0000000..16f5965
--- /dev/null
+++ b/checksums/mythplugins-0.25.2.md5sum
@@ -0,0 +1 @@
+80466458a82759d213fe69af63d6dc80  mythplugins-0.25.2.tar.bz2
diff --git a/checksums/mythtv-0.25.2.md5sum b/checksums/mythtv-0.25.2.md5sum
new file mode 100644
index 0000000..f02e863
--- /dev/null
+++ b/checksums/mythtv-0.25.2.md5sum
@@ -0,0 +1 @@
+2bf8c0aa75e88d39747e59c27aa6072e  mythtv-0.25.2.tar.bz2
diff --git a/mythplugins/mythmusic/mythmusic/musicplayer.cpp b/mythplugins/mythmusic/mythmusic/musicplayer.cpp
index b0cccf5..d94e08f 100644
--- a/mythplugins/mythmusic/mythmusic/musicplayer.cpp
+++ b/mythplugins/mythmusic/mythmusic/musicplayer.cpp
@@ -105,6 +105,7 @@ MusicPlayer::~MusicPlayer()
         m_cdWatcher->stop();
         m_cdWatcher->wait();
         delete m_cdWatcher;
+        m_cdWatcher = NULL;
     }
 
     if (!hasClient())
@@ -283,6 +284,12 @@ void MusicPlayer::stop(bool stopAll)
         m_output = NULL;
     }
 
+    if (stopAll && m_cdWatcher)
+    {
+        m_cdWatcher->stop();
+        m_cdWatcher->wait();
+    }
+
     // because we don't actually stop the audio output we have to fake a Stopped
     // event so any listeners can act on it
     OutputEvent oe(OutputEvent::Stopped);
diff --git a/mythplugins/mythmusic/mythmusic/polygon.h b/mythplugins/mythmusic/mythmusic/polygon.h
index 2884d8e..d859d5d 100644
--- a/mythplugins/mythmusic/mythmusic/polygon.h
+++ b/mythplugins/mythmusic/mythmusic/polygon.h
@@ -18,13 +18,13 @@ class Bitmap
         delete[] data;
         width = w;
         height = h;
-        data = new Pixel[w*h+extra];
+        data = new Pixel[2*w*h+extra];
         clear();
     }
   
     void clear()
     {
-        memset(data,0,sizeof(Pixel)*(width*height+extra));
+        memset(data,0,sizeof (Pixel)*(2*width*height+extra));
     }
 };
 #endif
diff --git a/mythtv/bindings/python/MythTV/dataheap.py b/mythtv/bindings/python/MythTV/dataheap.py
index dd832ba..ae817e7 100644
--- a/mythtv/bindings/python/MythTV/dataheap.py
+++ b/mythtv/bindings/python/MythTV/dataheap.py
@@ -612,6 +612,7 @@ class Job( DBDataWrite, JOBTYPE, JOBCMD, JOBFLAG, JOBSTATUS ):
     def fromRecorded(cls, rec, type, status=None, schedruntime=None,
                                hostname=None, args=None, flags=None):
         job = cls(db=rec._db)
+        job.type = type
         job.chanid = rec.chanid
         job.starttime = rec.starttime
         if status:
@@ -632,6 +633,7 @@ class Job( DBDataWrite, JOBTYPE, JOBCMD, JOBFLAG, JOBSTATUS ):
         if prog.rectype != prog.rsRecorded:
             raise MythError('Invalid recording type for Job.')
         job = cls(db=prog._db)
+        job.type = type
         job.chanid = prog.chanid
         job.starttime = prog.recstartts
         if status:
diff --git a/mythtv/html/setup/wizard-network.qsp b/mythtv/html/setup/wizard-network.qsp
index 03c37ac..59b67a9 100644
--- a/mythtv/html/setup/wizard-network.qsp
+++ b/mythtv/html/setup/wizard-network.qsp
@@ -13,6 +13,10 @@
         <td id='BackendServerIP6_cell'>&nbsp;
             <a href="javascript:showSettingHelp('BackendServerIP6')">[?]</a>
             </td></tr>
+    <tr><th align=right><i18n>Use Link-Local</i18n>:</th>
+        <td id='AllowLinkLocal_cell'>&nbsp;
+            <a href="javascript:showSettingHelp('AllowLinkLocal')">[?]</a>
+            </td></tr>
     <tr><th align=right><i18n>Security PIN</i18n>:</th>
         <td><input id='SecurityPin' type='password' size=10>
             <a href="javascript:showSettingHelp('SecurityPin')">[?]</a>
diff --git a/mythtv/libs/libmythbase/serverpool.cpp b/mythtv/libs/libmythbase/serverpool.cpp
index 609e190..745e329 100644
--- a/mythtv/libs/libmythbase/serverpool.cpp
+++ b/mythtv/libs/libmythbase/serverpool.cpp
@@ -20,6 +20,13 @@ static QList<QNetworkAddressEntry> naList_4;
 static QList<QNetworkAddressEntry> naList_6;
 static QReadWriteLock naLock;
 
+static QPair<QHostAddress, int> kLinkLocal  =
+                            QHostAddress::parseSubnet("169.254.0.0/16");
+#if !defined(QT_NO_IPV6)
+static QPair<QHostAddress, int> kLinkLocal6 =
+                            QHostAddress::parseSubnet("fe80::/10");
+#endif
+
 class PrivUdpSocket : public QUdpSocket
 {
 public:
@@ -38,7 +45,7 @@ public:
     {
 #if !defined(QT_NO_IPV6)
         if (addr.protocol() == QAbstractSocket::IPv6Protocol &&
-            addr.isInSubnet(QHostAddress::parseSubnet("fe80::/10")) &&
+            addr.isInSubnet(kLinkLocal6) &&
             host.ip().scopeId() != addr.scopeId())
         {
             return false;
@@ -92,6 +99,7 @@ void ServerPool::SelectDefaultListen(bool force)
     QHostAddress config_v6(gCoreContext->GetSetting("BackendServerIP6"));
     bool v6IsSet = config_v6.isNull() ? true : false;
 #endif
+    bool allowLinkLocal = gCoreContext->GetNumSetting("AllowLinkLocal", true) > 0;
 
     // loop through all available interfaces
     QList<QNetworkInterface> IFs = QNetworkInterface::allInterfaces();
@@ -102,97 +110,147 @@ void ServerPool::SelectDefaultListen(bool force)
             continue;
 
         QList<QNetworkAddressEntry> IPs = qni->addressEntries();
-        QList<QNetworkAddressEntry>::const_iterator qnai;
+        QList<QNetworkAddressEntry>::iterator qnai;
         for (qnai = IPs.begin(); qnai != IPs.end(); ++qnai)
         {
             QHostAddress ip = qnai->ip();
-            if (naList_4.contains(*qnai))
-                // already defined, skip
-                continue;
-            else if (!config_v4.isNull() && (ip == config_v4))
+#if !defined(QT_NO_IPV6)
+            if (ip.protocol() == QAbstractSocket::IPv4Protocol)
             {
-                // IPv4 address is defined, add it
-                LOG(VB_GENERAL, LOG_DEBUG,
+#endif
+                if (naList_4.contains(*qnai))
+                    // already defined, skip
+                    continue;
+
+                else if (!config_v4.isNull() && (ip == config_v4))
+                {
+                    // IPv4 address is defined, add it
+                    LOG(VB_GENERAL, LOG_DEBUG,
                         QString("Adding BackendServerIP to address list."));
-                naList_4.append(*qnai);
-                v4IsSet = true;
-            }
-            else if (ip == QHostAddress::LocalHost)
-            {
-                // always listen on LocalHost
-                LOG(VB_GENERAL, LOG_DEBUG,
-                        QString("Adding IPv4 loopback to address list."));
-                naList_4.append(*qnai);
-                if (!v4IsSet && (config_v4 == ip))
+                    naList_4.append(*qnai);
                     v4IsSet = true;
-            }
-            else if (config_v4.isNull() &&
-                     (ip.protocol() == QAbstractSocket::IPv4Protocol))
-            {
-                // IPv4 address is not defined, populate one
-                // restrict autoconfiguration to RFC1918 private networks
-                if (ip.isInSubnet(QHostAddress::parseSubnet("10.0.0.0/8")) ||
-                    ip.isInSubnet(QHostAddress::parseSubnet("172.16.0.0/12")) ||
-                    ip.isInSubnet(QHostAddress::parseSubnet("192.168.0.0/16")))
+
+                }
+
+                else if (ip == QHostAddress::LocalHost)
                 {
+                    // always listen on LocalHost
                     LOG(VB_GENERAL, LOG_DEBUG,
-                            QString("Adding '%1' to address list.")
-                                .arg(ip.toString()));
+                        QString("Adding IPv4 loopback to address list."));
+                    naList_4.append(*qnai);
+                    if (!v4IsSet && (config_v4 == ip))
+                        v4IsSet = true;
+                }
+
+                else if (ip.isInSubnet(kLinkLocal) && allowLinkLocal)
+                {
+                    // optionally listen on linklocal
+                    // the next clause will enable it anyway if no IP address
+                    // has been set
+                    LOG(VB_GENERAL, LOG_DEBUG,
+                            QString("Adding link-local '%1' to address list.")
+                                .arg(PRETTYIP_(ip)));
                     naList_4.append(*qnai);
                 }
+
+                else if (config_v4.isNull())
+                {
+                    // IPv4 address is not defined, populate one
+                    // restrict autoconfiguration to RFC1918 private networks
+                    static QPair<QHostAddress, int>
+                       privNet1 = QHostAddress::parseSubnet("10.0.0.0/8"),
+                       privNet2 = QHostAddress::parseSubnet("172.16.0.0/12"),
+                       privNet3 = QHostAddress::parseSubnet("192.168.0.0/16");
+
+                    if (ip.isInSubnet(privNet1) || ip.isInSubnet(privNet2) ||
+                        ip.isInSubnet(privNet3))
+                    {
+                        LOG(VB_GENERAL, LOG_DEBUG,
+                                QString("Adding '%1' to address list.")
+                                    .arg(PRETTYIP_(ip)));
+                        naList_4.append(*qnai);
+                    }
+                    else if (ip.isInSubnet(kLinkLocal))
+                    {
+                        LOG(VB_GENERAL, LOG_DEBUG,
+                            QString("Adding link-local '%1' to address list.")
+                                    .arg(PRETTYIP_(ip)));
+                        naList_4.append(*qnai);
+                    }
+                    else
+                        LOG(VB_GENERAL, LOG_DEBUG, QString("Skipping "
+                           "non-private address during IPv4 autoselection: %1")
+                                    .arg(PRETTYIP_(ip)));
+                }
+
                 else
-                    LOG(VB_GENERAL, LOG_DEBUG, QString("Skipping non-private "
-                            "address during IPv4 autoselection: %1")
-                                .arg(ip.toString()));
-            }
+                    LOG(VB_GENERAL, LOG_DEBUG, QString("Skipping address: %1")
+                                .arg(PRETTYIP_(ip)));
+
 #if !defined(QT_NO_IPV6)
-            else if (naList_6.contains(*qnai))
-                // already defined, skip
-                continue;
-            else if (!config_v6.isNull() && (ip == config_v6))
+            }
+            else
             {
+                if (ip.isInSubnet(kLinkLocal6))
+                {
+                    // set scope id for link local address
+                    ip.setScopeId(qni->name());
+                    qnai->setIp(ip);
+                }
+
+                if (naList_6.contains(*qnai))
+                    // already defined, skip
+                    continue;
+
+                else if ((!config_v6.isNull()) && (ip == config_v6))
+                {
                 // IPv6 address is defined, add it
-                LOG(VB_GENERAL, LOG_DEBUG,
+                    LOG(VB_GENERAL, LOG_DEBUG,
                         QString("Adding BackendServerIP6 to address list."));
-                naList_6.append(*qnai);
-                v6IsSet = true;
-            }
-            else if (ip == QHostAddress::LocalHostIPv6)
-            {
-                // always listen on LocalHost
-                LOG(VB_GENERAL, LOG_DEBUG,
-                        QString("Adding IPv6 loopback to address list."));
-                naList_6.append(*qnai);
-                if (!v6IsSet && (config_v6 == ip))
+                    naList_6.append(*qnai);
                     v6IsSet = true;
-            }
-            else if (config_v6.isNull() &&
-                     (ip.protocol() == QAbstractSocket::IPv6Protocol))
-            {
-                bool linklocal = false;
-                if (ip.isInSubnet(QHostAddress::parseSubnet("fe80::/10")))
+                }
+
+                else if (ip == QHostAddress::LocalHostIPv6)
                 {
-                    // Link-local address, find its scope ID (interface name)
-                    QNetworkAddressEntry ae = *qnai;
-                    QHostAddress ha = ip;
-                    ha.setScopeId(qni->name());
-                    ae.setIp(ha);
-                    naList_6.append(ae);
-                    linklocal = true;
+                // always listen on LocalHost
+                    LOG(VB_GENERAL, LOG_DEBUG,
+                            QString("Adding IPv6 loopback to address list."));
+                    naList_6.append(*qnai);
+                    if (!v6IsSet && (config_v6 == ip))
+                        v6IsSet = true;
                 }
-                else
+
+                else if (ip.isInSubnet(kLinkLocal6) && allowLinkLocal)
+                {
+                    // optionally listen on linklocal
+                    // the next clause will enable it anyway if no IP address
+                    // has been set
+                    LOG(VB_GENERAL, LOG_DEBUG,
+                            QString("Adding link-local '%1' to address list.")
+                                .arg(ip.toString()));
+                    naList_6.append(*qnai);
+                }
+
+                else if (config_v6.isNull())
                 {
+                    if (ip.isInSubnet(kLinkLocal6))
+                        LOG(VB_GENERAL, LOG_DEBUG,
+                            QString("Adding link-local '%1' to address list.")
+                                .arg(PRETTYIP_(ip)));
+                    else
+                        LOG(VB_GENERAL, LOG_DEBUG,
+                            QString("Adding '%1' to address list.")
+                                .arg(PRETTYIP_(ip)));
+
                     naList_6.append(*qnai);
                 }
-                LOG(VB_GENERAL, LOG_DEBUG,
-                        QString("Adding%1 '%2' to address list.")
-                    .arg(linklocal ? " link-local" : "")
-                            .arg(PRETTYIP_(ip)));
+
+                else
+                    LOG(VB_GENERAL, LOG_DEBUG, QString("Skipping address: %1")
+                                .arg(PRETTYIP_(ip)));
             }
 #endif
-            else
-                LOG(VB_GENERAL, LOG_DEBUG, QString("Skipping address: %1")
-                    .arg(PRETTYIP_(ip)));
         }
     }
 
diff --git a/mythtv/libs/libmythtv/firewirerecorder.cpp b/mythtv/libs/libmythtv/firewirerecorder.cpp
index 9caa28e..fbb5ed0 100644
--- a/mythtv/libs/libmythtv/firewirerecorder.cpp
+++ b/mythtv/libs/libmythtv/firewirerecorder.cpp
@@ -210,6 +210,7 @@ bool FirewireRecorder::PauseAndWait(int timeout)
     {
         LOG(VB_RECORD, LOG_INFO, LOC +
             QString("PauseAndWait(%1) -- unpause").arg(timeout));
+        paused = false;
         StartStreaming();
         unpauseWait.wakeAll();
     }
diff --git a/mythtv/libs/libmythtv/streamhandler.cpp b/mythtv/libs/libmythtv/streamhandler.cpp
index 2b0a7b6..fbe9399 100644
--- a/mythtv/libs/libmythtv/streamhandler.cpp
+++ b/mythtv/libs/libmythtv/streamhandler.cpp
@@ -26,9 +26,15 @@ StreamHandler::StreamHandler(const QString &device) :
 
 StreamHandler::~StreamHandler()
 {
-    if (!_stream_data_list.empty())
+    QMutexLocker locker(&_add_rm_lock);
+
     {
-        LOG(VB_GENERAL, LOG_ERR, LOC + "dtor & _stream_data_list not empty");
+        QMutexLocker locker2(&_listener_lock);
+        if (!_stream_data_list.empty())
+        {
+            LOG(VB_GENERAL, LOG_ERR, LOC +
+                "dtor & _stream_data_list not empty");
+        }
     }
 
     // This should never be triggered.. just to be safe..
@@ -41,6 +47,8 @@ void StreamHandler::AddListener(MPEGStreamData *data,
                                 bool needs_buffering,
                                 QString output_file)
 {
+    QMutexLocker locker(&_add_rm_lock);
+
     LOG(VB_RECORD, LOG_INFO, LOC + QString("AddListener(0x%1) -- begin")
                 .arg((uint64_t)data,0,16));
     if (!data)
@@ -93,6 +101,8 @@ void StreamHandler::AddListener(MPEGStreamData *data,
 
 void StreamHandler::RemoveListener(MPEGStreamData *data)
 {
+    QMutexLocker locker(&_add_rm_lock);
+
     LOG(VB_RECORD, LOG_INFO, LOC + QString("RemoveListener(0x%1) -- begin")
                 .arg((uint64_t)data,0,16));
     if (!data)
@@ -158,12 +168,6 @@ void StreamHandler::Start(void)
     while (!_running && !_error && _running_desired)
         _running_state_changed.wait(&_start_stop_lock, 100);
 
-    if (!_running_desired)
-    {
-        LOG(VB_GENERAL, LOG_WARNING, LOC +
-            "Programmer Error: Stop called before Start finished");
-    }
-
     if (_error)
     {
         LOG(VB_GENERAL, LOG_WARNING, LOC + "Start failed");
@@ -175,17 +179,9 @@ void StreamHandler::Stop(void)
 {
     QMutexLocker locker(&_start_stop_lock);
 
-    do
-    {
-        SetRunningDesired(false);
-        while (!_running_desired && _running)
-            _running_state_changed.wait(&_start_stop_lock, 100);
-        if (_running_desired)
-        {
-            LOG(VB_GENERAL, LOG_WARNING, LOC +
-                "Programmer Error: Start called before Stop finished");
-        }
-    } while (_running_desired);
+    SetRunningDesired(false);
+    while (_running)
+        _running_state_changed.wait(&_start_stop_lock, 100);
 
     wait();
 }
diff --git a/mythtv/libs/libmythtv/streamhandler.h b/mythtv/libs/libmythtv/streamhandler.h
index 1db0584..8f97cdb 100644
--- a/mythtv/libs/libmythtv/streamhandler.h
+++ b/mythtv/libs/libmythtv/streamhandler.h
@@ -45,7 +45,9 @@ class PIDInfo
 typedef QMap<uint,PIDInfo*> PIDInfoMap;
 
 // locking order
-// _pid_lock -> _listener_lock -> _start_stop_lock
+// _pid_lock -> _listener_lock
+// _add_rm_lock -> _listener_lock
+//              -> _start_stop_lock
 
 class StreamHandler : protected MThread, public DeviceReaderCB
 {
@@ -101,6 +103,8 @@ class StreamHandler : protected MThread, public DeviceReaderCB
     bool              _needs_buffering;
     bool              _allow_section_reader;
 
+    QMutex            _add_rm_lock;
+
     mutable QMutex    _start_stop_lock;
     volatile bool     _running_desired;
     volatile bool     _error;
diff --git a/mythtv/libs/libmythtv/subtitlescreen.cpp b/mythtv/libs/libmythtv/subtitlescreen.cpp
index 9ec70e9..43dc711 100644
--- a/mythtv/libs/libmythtv/subtitlescreen.cpp
+++ b/mythtv/libs/libmythtv/subtitlescreen.cpp
@@ -922,7 +922,8 @@ void FormattedTextSubtitle::InitFromCC608(vector<CC608Text*> &buffers,
             CC708CharacterAttribute attr(isItalic, isBold, isUnderline,
                                          clr[min(max(0, color), 7)],
                                          useBackground);
-            FormattedTextChunk chunk(captionText, attr, parent);
+            FormattedTextChunk chunk(captionText, attr, parent,
+                                     cc->teletextmode);
             line.chunks += chunk;
             LOG(VB_VBI, LOG_INFO,
                 QString("Adding cc608 chunk (%1,%2): %3")
@@ -1089,6 +1090,7 @@ bool FormattedTextChunk::Split(FormattedTextChunk &newChunk)
             QString("Failed to split chunk '%1'").arg(text));
         return false;
     }
+    newChunk.isTeletext = isTeletext;
     newChunk.parent = parent;
     newChunk.format = format;
     newChunk.text = text.mid(lastSpace + 1).trimmed() + ' ';
@@ -1119,6 +1121,8 @@ QString FormattedTextChunk::ToLogString(void) const
         .arg(format.boldface);
     str += QString("font=%1 ").arg(format.font_tag);
     str += QString(" text='%1'").arg(text);
+    if (isTeletext)
+        str += " DEPRECATED_608_TELETEXT";
     return str;
 }
 
diff --git a/mythtv/libs/libmythtv/subtitlescreen.h b/mythtv/libs/libmythtv/subtitlescreen.h
index 44b3f6a..8821dff 100644
--- a/mythtv/libs/libmythtv/subtitlescreen.h
+++ b/mythtv/libs/libmythtv/subtitlescreen.h
@@ -110,11 +110,11 @@ class FormattedTextChunk
 {
   public:
     FormattedTextChunk(const QString &t, CC708CharacterAttribute formatting,
-                       SubtitleScreen *p)
-        : text(t), format(formatting), parent(p)
+                       SubtitleScreen *p, bool teletext = false)
+        : text(t), format(formatting), parent(p), isTeletext(teletext)
     {
     }
-    FormattedTextChunk(void) : parent(NULL) {}
+    FormattedTextChunk(void) : parent(NULL), isTeletext(false) {}
 
     QSize CalcSize(float layoutSpacing = 0.0f) const
     {
@@ -130,6 +130,7 @@ class FormattedTextChunk
     QString text;
     CC708CharacterAttribute format;
     SubtitleScreen *parent; // where fonts and sizes are kept
+    bool isTeletext;
 };
 
 class FormattedTextLine
diff --git a/mythtv/programs/mythbackend/main_helpers.cpp b/mythtv/programs/mythbackend/main_helpers.cpp
index 5017af4..28d5a4a 100644
--- a/mythtv/programs/mythbackend/main_helpers.cpp
+++ b/mythtv/programs/mythbackend/main_helpers.cpp
@@ -405,7 +405,7 @@ int handle_command(const MythBackendCommandLineParser &cmdline)
         return (ok) ? GENERIC_EXIT_OK : GENERIC_EXIT_CONNECT_ERROR;
     }
 
-    if (!cmdline.toBool("printexpire"))
+    if (cmdline.toBool("printexpire"))
     {
         expirer = new AutoExpire();
         expirer->PrintExpireList(cmdline.toString("printexpire"));
diff --git a/mythtv/themes/defaultmenu/mainmenu.xml b/mythtv/themes/defaultmenu/mainmenu.xml
index 1c72a92..b747575 100644
--- a/mythtv/themes/defaultmenu/mainmenu.xml
+++ b/mythtv/themes/defaultmenu/mainmenu.xml
@@ -41,6 +41,7 @@
         <text>Setup</text>
         <description>Configure MythTV and plugins</description>
         <action>MENU main_settings.xml</action>
+        <password>SetupPinCode</password>
     </button>
 
 </mythmenu>


Index: ChangeLog
===================================================================
RCS file: /cvs/free/rpms/mythtv/EL-6/ChangeLog,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ChangeLog	6 Jul 2012 18:13:11 -0000	1.1
+++ ChangeLog	26 Aug 2012 12:02:38 -0000	1.2
@@ -1,530 +1,129 @@
-commit 1d41f74720f0c89ef73e25fe7586e33caf946802
-Author: Jim Stichnoth <jstichnoth at mythtv.org>
-Date:   Fri Jun 22 16:32:27 2012 -0700
-
-    Allow visualizations to be turned on during playback.
-    
-    In particular, allow the Audio>Visualizations submenu to appear in the
-    Playback OSD menu.
-    (cherry picked from commit 85e3a38349713330d30628dfeb33059b8d9c60bf)
-
-commit 6ae8bec70b17027f858793da48f1227adabd2d38
-Author: Stuart Morgan <smorgan at mythtv.org>
-Date:   Thu Jul 5 00:02:08 2012 +0100
-
-    Fix a bug resulting in multiple copies of the same track being inserted into the database
-
-commit 11d7795503b869aeb09b66d55f0430fcf504f924
-Author: Stuart Morgan <smorgan at mythtv.org>
-Date:   Wed Jul 4 20:03:11 2012 +0100
-
-    Protect the reschedule queue with a seperate lock to fix a backend deadlock.
-    
-     Fixes a deadlock in mythbackend caused when a reschedule request occurs
-     immedately prior to a recording starting.
-    
-     The recorder thread locks the scheduler when starting a recording. The pending
-     reschedule request handled in the event loop waits for the scheduler lock to be
-     released blocking the event loop. The backend is now stopped from handling any
-     further events or protocol requests, meanwhile the recorder is waiting on
-     events to be processed before it will release the lock resulting in an
-     irrecoverable deadlock (or hang) and the failure of the recording.
-    
-     This deadlock was more likely to be triggered for users of EIT because it will
-     ask for a reschedule every 5 minutes in addition to any reschedules triggered
-     through other means.
-    
-     Refs #10771
-
-commit 48ac7cfb51e82c3ddbaab489810b560fb8271531
-Author: Stuart Morgan <smorgan at mythtv.org>
-Date:   Wed Jul 4 19:42:15 2012 +0100
-
-    Revert "Protect the reschedule queue with a seperate lock to fix a backend deadlock."
-    
-    This reverts commit 5eb97790f3c36f9d2524275e545189cafda9d48a.
-    
-    While this seems to work well in master, it appears to make the
-    situation worse in 0.25 and I really don't have the time to figure out
-    why. Anyone experiencing the pre-existing deadlock will need to
-    upgrade to 0.26 when it's released. Refs #10771
-
-commit 67522d8a9ddfef6512a9d1f0a75f0f1cfef72e0e
-Author: Gavin Hurlbut <ghurlbut at mythtv.org>
-Date:   Tue Jul 3 23:50:23 2012 -0700
-
-    Reworked all of the NOAA/NWS Weather Scripts
-    
-    Seems weather.gov has moved the urls for nearly all their data services.  On
-    top of that, the SOAP response is gzip encoded by default, and SOAP::Lite is
-    stupid and can't handle it.  Also, we were missing the Units parameter which
-    is now required.
-    
-    Fixes #10821
-    (cherry picked from commit b8a78aeb35167a676a7e25c342a1869e8016d76a)
-
-commit 1282eb3fa007911f34aee70f1f0b8dadbd8918c6
-Author: Gavin Hurlbut <ghurlbut at mythtv.org>
-Date:   Sun Jul 1 22:50:07 2012 -0700
-
-    Minor formatting, plus add back the bufferMutex
-
-commit 0969941c7706067560d94002712be9b2fbc076f8
-Merge: 65913e7 199342e
-Author: Gavin Hurlbut <ghurlbut at mythtv.org>
-Date:   Sun Jul 1 22:45:31 2012 -0700
-
-    Merge remote branch 'glidos/fixes/0.25' into fixes/0.25
-
-commit 65913e707c404abbba89274a78feefa24c4d658c
-Author: Stuart Morgan <smorgan at mythtv.org>
-Date:   Fri Jun 29 23:37:28 2012 +0100
-
-    Fix incorrect cast causing loss of integer precision in RingBuffer
-    (cherry picked from commit 7aea3131a8801c09617012d3e892ec4fa68f626a)
-
-commit 5eb97790f3c36f9d2524275e545189cafda9d48a
-Author: Stuart Morgan <smorgan at mythtv.org>
-Date:   Fri Jun 29 13:28:45 2012 +0100
-
-    Protect the reschedule queue with a seperate lock to fix a backend deadlock.
-    
-    Fixes a deadlock in mythbackend caused when a reschedule request occurs
-    immedately prior to a recording starting.
-    
-    The recorder thread locks the scheduler when starting a recording. The pending
-    reschedule request handled in the event loop waits for the scheduler lock to be
-    released blocking the event loop. The backend is now stopped from handling any
-    further events or protocol requests, meanwhile the recorder is waiting on
-    events to be processed before it will release the lock resulting in an
-    irrecoverable deadlock (or hang) and the failure of the recording.
-    
-    This deadlock was more likely to be triggered for users of EIT because it will
-    ask for a reschedule every 5 minutes in addition to any reschedules triggered
-    through other means.
-    
-    Refs #10771
-    
-    Backported from master 788bc510ede427e43e77e8aaf53d8cf047d89b46
-
-commit 5b843c1287e546a7d49f59b3ae911c17279c43f5
-Author: David Engel <dengel at mythtv.org>
-Date:   Wed Jun 27 17:06:49 2012 -0500
-
-    Don't create a watch list for the "Deleted" recording group.
-    
-    Fixes #10854.
-    
-    (cherry picked from commit 22ed71e4d9eeddccae0e1b4f40321e3f624e7b4e)
-
-commit a3f400ebeb43dcaf31ba11ba742e4731e6dae20b
-Author: Daniel Thor Kristjansson <dkristjansson at mythtv.org>
-Date:   Tue Jun 26 13:23:41 2012 -0400
-
-    Clean up deferred deletes MThreadPool.
-    
-    In case someone uses QObject::deleteLater() within a QRunnable
-    passed to MThreadPool, this adds a cleanup of those when done
-    with the QRunnable.
-
-commit 25dd4ce330e7b36d1c8e5e14d94a4dcdcd4cd021
-Author: Stuart Morgan <smorgan at mythtv.org>
-Date:   Mon Jun 25 11:43:28 2012 +0100
-
-    Move QUERY_FILETRANSFER handling to improve backend performance.
-    
-    This significantly reduces the backend CPU usage for me when streaming a
-    recording or other file to the frontend.
-    
-    Each time we send a command to the backend we perform a number of string
-    comparisons to find the correct handler. In the cases where that same command
-    is sent regularly, maybe several times a second those comparisons can stack up
-    to result in a high CPU load. This can be avoided by moving the most frequently
-    used commands to the top of the list thereby avoiding a couple of dozen or more
-    comparisons each time.
-    
-    There may be other commands that should be moved to the top with similar
-    benefit.
-    (cherry picked from commit 529853d11587ebee0b77753272d6dcc1a5404a11)
-
-commit ce8f9e25a627d4b164361a5328c3e013dd68476e
-Author: Stuart Morgan <smorgan at mythtv.org>
-Date:   Sun Jun 24 10:36:28 2012 +0100
-
-    Following Freesats switch from Astra 2D to Astra 1G update the transport ids associated with Freesat EIT fixups
-    (cherry picked from commit 0312ff912a743178f2ef54967866b42c894d7c4b)
-
-commit 73bc45e0e3d4bf5c137bd57b091bd4a23d0bce8d
-Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Thu Jun 21 01:39:44 2012 -0400
-
-    Add Genre list and associated Movie search
-    (cherry picked from commit 6e7725de7d8507c3675aa89b17a49da06abc7cc2)
-
-commit 97f8819df59cba6b7b522ac71bfc46aa09b17527
-Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Thu Jun 21 01:11:56 2012 -0400
-
-    Add Studio search method.
-    (cherry picked from commit c2bb6aee239e1e53ba95da232ed84ee5da21685b)
-
-commit 42b63d3ae53d8bd31fff7331a54b3cae093825b2
+commit 46cab93562429cd19029402a2387f63a72aeb898
 Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Thu Jun 21 01:43:59 2012 -0400
+Date:   Tue Jul 31 14:21:22 2012 -0400
 
-    Add TMDBv3 file missed during previous backports.
+    Correct --printexpire option in mythbackend.
+    
+    This corrects logic that was accidentally inverted in 8bc8dd54, and
+    allows `mythbackend --printexpire` to be used again.
+    (cherry picked from commit a9f18c63bfb23494ee83a8ba76d82fc320617067)
 
-commit 6aa7fbe106dbf88c2c067a0184a52d814cef1978
+commit 8ab229a8bed860fb0855797c683655a7465e2ee4
+Merge: a4cdc9e 1c496c8
 Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Wed Jun 20 04:18:37 2012 -0400
+Date:   Tue Jul 31 14:22:32 2012 -0400
 
-    Changes seconds to milliseconds in poller loop.
-    
-    This corrects the timeout duration in the poller loop used to read data
-    from external programs.  Code was written assuming timeouts in floating
-    point seconds, while poll() API takes milliseconds.  Ahh.. consistency..
-    
-    Fixes #10837
-    (cherry picked from commit 76433930fed60342a4b2929c6ff94a8413673e5b)
+    Merge branch 'fixes/0.25' of code.mythtv.org:mythtv into fixes/0.25
 
-commit effb32be550172b9341e17b493d209e468c5be17
-Author: Daniel Thor Kristjansson <danielk at cuymedia.net>
-Date:   Sat Jun 16 14:22:48 2012 -0400
+commit 1c496c81662eabda444452071eb18f2fd375d4d0
+Author: Kyle <klillis at gmail.com>
+Date:   Mon Jul 30 13:34:11 2012 -0400
 
-    Match Lock with Unlock in OutboundRequestHandler::DoConnectToMaster() socket error handling code.
+    Fixes #10897. Clear paused when we unpause FirewireRecorder.
     
-    This was fixed in [f2a0d748] in trunk.
+    Signed-off-by: Daniel Thor Kristjansson <danielk at cuymedia.net>
 
-commit 67883dde998c45ad587a3f687c8e86507ffe324a
+commit 9c199a42258f2a19dd1c8d3b934e6eb04f1757ce
 Author: Daniel Thor Kristjansson <dkristjansson at mythtv.org>
-Date:   Wed Jun 6 13:24:29 2012 -0400
-
-    Fixes #10685. Handle job queue properly for back-to-back recordings.
+Date:   Tue Jul 24 12:13:16 2012 -0400
 
-commit 35c3c97b70c987dc77dff06b16862abac3aa51b1
-Author: Daniel Thor Kristjansson <danielk at cuymedia.net>
-Date:   Sat Jun 16 14:15:57 2012 -0400
-
-    Fix use of deleted socket in MythCoreContext::ConnectEventSocket()
+    Fixes #10870. Fix Start/Stop race condition in StreamHandler.
     
-    This was fixed in [f2a0d748] in trunk.
-
-commit 3a9dea901cd46ac240c022bbeee79841f738042d
-Author: Daniel Kristjansson <danielk at cuymedia.net>
-Date:   Mon May 28 12:02:16 2012 -0400
-
-    Refs #10712. Add error checking, proper formatting, and improve debugging of previous commit.
-
-commit 18e0f2fd2d6b5b7724e8df0ee893817e192a4903
-Author: Simon Sinister <simon.sinister at sbcglobal.net>
-Date:   Mon May 28 11:50:53 2012 -0400
-
-    Fixes #10712. Add support for HDHR Prime without CableCard.
+    This is a backport of [445faaa47].
 
-commit 05839fa0dd4c521affb811282d640e628230b40b
-Author: Daniel Kristjansson <danielk at cuymedia.net>
-Date:   Mon May 28 11:46:59 2012 -0400
-
-    Use correct RecordingInfo* in FinishedRecording()'s SendMythSystemRecEvent().
-
-commit 1555f0381252a7231e655efa351c3931d3caa595
-Author: Daniel Thor Kristjansson <danielk at cuymedia.net>
-Date:   Sat Jun 9 13:46:32 2012 -0400
+commit a72e341a4653a1b683b7ae5ac87bcaa3092d20fa
+Author: Stuart Morgan <smorgan at mythtv.org>
+Date:   Sun Jul 29 12:42:41 2012 +0100
 
-    Define USING_MINGW when building programs with MinGW
+    Restore setup pincode following [57adc5d120] - 'Flatten the Setup Menus in the default menu theme' which dropped util_menu.xml but failed to carry over the <password> markup.
+    (cherry picked from commit 134417fe3bf7170f3419d2388a6c26afe16c4927)
 
-commit 6a9af0260bf4d7c80e77a7889e999c4f0bb91867
+commit 3256849b14cc882536a153e7fbe4724adf03260c
 Author: Jim Stichnoth <jstichnoth at mythtv.org>
-Date:   Fri Jun 15 11:18:23 2012 -0700
+Date:   Tue Jul 24 10:56:15 2012 -0700
 
-    Subtitles: Be less aggressive about auto-selecting a forced track.
-    
-    1. Don't favor a forced subtitle track if DefaultCCMode=1 (i.e., the
-    user already wants subtitles or captions which are likely to also
-    contain the force subtitles).
-    
-    2. Don't favor a forced subtitle track if AllowForcedSubtitles=0
-    (i.e., the user doesn't want to be inflicted with forced subtitles).
-    
-    3. Only favor a forced track if it is a subtitle track.  (Do any other
-    track types ever have the forced flag set?)
-    
-    Note that this still may not be perfect, e.g. a user may end up
-    auto-displaying cc608 captions where a forced subtitle track is still
-    needed for the complete experience.
-    
-    Refs #10808
-    (cherry picked from commit 689a7b5d526099c2ec533701625ae62ddbba6d44)
+    Subtitles: backport some code to enable cc608 TT deprecation log message.
 
-commit 3b41cb7ae550bf0cf58cad8fe814d6bd7c03df0f
+commit 39fad46248bbcbe5ab27068e73fb7c5a91bc155b
 Author: Jim Stichnoth <jstichnoth at mythtv.org>
-Date:   Fri Jun 15 07:07:04 2012 -0700
-
-    Subtitles: Favor forced tracks for auto-track selection.  Refs #10808
-    
-    For first-time auto-track selection, we put highest priority on forced
-    tracks, second priority on user language preference, and third
-    priority on track order.
-    
-    This changes the previous behavior only by adding the forced flag to
-    the criteria.
-    (cherry picked from commit ea554c9cbe5fc86c4a4e301eb9f97fd90abbe7a4)
-
-commit 56fd9e2cd63c4700f90f6e0b9326d36bc38cff92
-Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Mon May 21 02:32:30 2012 -0400
-
-    Move interactive access to separate script.
-    
-    This removes the interactive behavior of tmdb_api.py and places it in a
-    new script.  The script can be run from the source directory, but does
-    not get installed with the library.
-    (cherry picked from commit 76c8c518ff8dcc1206a984d2a5c12503f194870a)
-
-commit cdc03f4b09fd6a77893aa1df5948f128dd86b391
-Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Thu May 3 02:56:30 2012 -0400
-
-    Add method to search for movies similar to current.
-    (cherry picked from commit 30a0d398cc5f40487a69ddcc3beff77b09052def)
-
-commit 1c03ae068b8acb9bbde6dd439af482498e3b89ff
-Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Thu May 3 02:43:07 2012 -0400
+Date:   Tue Jul 24 08:23:53 2012 -0700
 
-    Clean up __repr__ methods, and impose soft 80-character line limit.
-    (cherry picked from commit 676cbb1aaf9c8d19d207ec9575ffaa9665d8e710)
-
-commit c9be5e2eec12cdbfbf5556aefadb1ee63cba1160
-Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Thu May 3 01:12:28 2012 -0400
-
-    Improve handling of invalid responses from TMDB
+    Subtitles: Put a "DEPRECATED_608_TELETEXT" message into the logs.
     
-    When an HTML error is received from the TMDB API, this will now attempt
-    to process a specific error type from the returned JSON.  If no error
-    type is given, or the resposnse was not JSON, it will raise the previous
-    TMDBHTTPError.
-    (cherry picked from commit 7425634d7b92f8bbe9abdc8b50c4148c96c87f40)
-
-commit f7f76e55b0ff198d19b3dce2474f98f934717a48
-Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Tue May 1 15:50:44 2012 -0400
-
-    Use `date` rather than `datetime` for storing dates.
-    (cherry picked from commit c2ef5d143f1bfc9931ef9f7487fda3b93780fe8f)
-
-commit e900fa37b2680d79cf26096a89555a31121b00f2
-Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Mon Apr 30 20:07:29 2012 -0400
-
-    Correct file cache error handling to ignore rather than raise errors.
-    (cherry picked from commit 27dff377fe6612b870a4cf28b9c058567be1a3bb)
-
-commit d590289d80ffffc792b4e386f1f2bbbcea3478dc
-Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Mon Apr 30 16:50:20 2012 -0400
-
-    Use `date` type rather than `datetime` for 'releasedate attribute'.
-    (cherry picked from commit 5b86d8bb95c69205d8669bb23c30ccd6b8514c4b)
-
-commit 5f5ca21fbd51ec0771034abc45e1b607c0b8db50
-Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Mon Apr 30 16:49:57 2012 -0400
-
-    Bypass aborts resulting from attempting to process empty strings.
-    (cherry picked from commit aa0e26f1abc7370d8840abdfd8ced2fdf2ef76f7)
+    Support for CEA-608 teletext captions is to be removed.  Allow users
+    to check whether they would be affected.  Refs #10786.
+    (cherry picked from commit 7b1aef85ec92658acb91c1ff019aed909e5df30a)
 
-commit 7563f810ae017226023b476b7a5d0f9d863aa3f3
-Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Mon Apr 30 02:12:12 2012 -0400
+commit 9e0d839be7667056dc65b79711dda84159a1b13d
+Author: Stuart Morgan <smorgan at mythtv.org>
+Date:   Tue Jul 24 14:11:47 2012 +0100
 
-    Correct missed changes in __init__.py
-    (cherry picked from commit 361e06851f02f5a70f554fcee0890a7a37e6ad95)
+    Set m_cdWatcher to NULL after deletion, fixes segfault on exiting frontend. Fixes #10936
+    (cherry picked from commit de851dd273eaa80689a427f915c7db40d015e0ba)
 
-commit b277cc3bd8a723c2621e80d0d9506a46c7f5ca9a
-Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Mon Apr 30 01:59:11 2012 -0400
+commit 10a68895e1fcd5c409058d2eb61fe59e78736235
+Author: Stuart Morgan <smorgan at mythtv.org>
+Date:   Sun Jul 22 23:24:40 2012 +0100
 
-    Add adult filter for people searches
-    (cherry picked from commit b28c566ef2b6a6379821bcc9023f84cba04b4e05)
+    Fix segfault after music scan completes.
+    (cherry picked from commit b2379ae9b8d42c23c3feee26b52a1f0a2ebef394)
 
-commit 81dabbc40b0b3fdc1b542a9d7fe9da74f0fbbefd
-Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Sat Apr 14 18:26:59 2012 -0400
+commit ed58b3a818a1796340ba0f085a53159eb1d52266
+Author: Stuart Morgan <smorgan at mythtv.org>
+Date:   Sat Jul 21 23:53:41 2012 +0100
 
-    Add assorted authenticated methods.
+    Fix for Synaesthesia memory corruption
     
-    This adds methods for setting ratings and favorite status against
-    movies, as well as pulling lists of movies for which those have been
-    set. This adds a bypass in the cache to not operate on anything with a
-    lifetime of '0'.
-    (cherry picked from commit fb7c7cd3dfd4692e6c5acc61f0d2fd927b04d50e)
-
-commit 9439a827f3c1178ad33a81a326d5e0ed87cdca31
-Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Sat Apr 14 17:31:20 2012 -0400
-
-    Add basic session handling and passthrough.
-    (cherry picked from commit 3debcd531d8ed454b8ed9f4b61da6e03690ce13c)
-
-commit 1493687d26482b777d07eb02f5fda77d0b501cef
-Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Sat Apr 14 15:30:26 2012 -0400
-
-    Corrects handling of '0' for cast ordering.
-    (cherry picked from commit 500454560030795a7c914cb985c30711e302d65a)
-
-commit 59cc85156d402eb2bdd91c088d44407fb8e6df3a
-Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Wed Apr 11 01:28:27 2012 -0400
-
-    Improve file cache performance.
+    We were allocating just half the required space and consequently
+    writing beyond the end of the array. This consistently caused
+    segfaults for me when using the Synaesthesia visualiser.
     
-    This reworks the cache framework, and alters the file cache engine to
-    support incremental writes. This allows the results from 256 queries to
-    be stored before having to rewrite the file. Previously, having to
-    rewrite the entire cache file on each step would take longer than
-    actually querying TMDB once the cache stored more than ~100 entries.
+    This fix appears to be consistent with the code used in other projects
+    which were also derived from the original Synaesthia project.
     
-    May be a bit fragile.
-    (cherry picked from commit 23fa543ceb2690340e74d257a6bc86f817c02be6)
+    e.g. GStreamer/Source/gst-plugins-ugly/gst/synaesthesia/synaescope.c
+    (cherry picked from commit e331017f2d1ee9be82da9c0b64ca4435ec3efd1e)
 
-commit 2fd53643f8911e92c01fb49ca3cd2710d735831b
+commit a4cdc9e01295991056cdc8c5411e70937b1a4842
+Merge: 450ed91 f0e2ad8
 Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Wed Apr 11 01:24:21 2012 -0400
+Date:   Fri Jul 20 21:06:48 2012 -0400
 
-    Fix Cache exceptions.
-    (cherry picked from commit 642de961e034072eaf6342c01451b040f0b9ab3b)
+    Merge branch 'fixes/0.25' of code.mythtv.org:mythtv into fixes/0.25
 
-commit b0e61cffcced4170c1fe8821155a830f9f38056a
-Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Wed Apr 11 01:23:18 2012 -0400
-
-    Remove empty space.
-    (cherry picked from commit c35f455ee4bf2dbaac87f6ce2fca2f489cd2d209)
-
-commit ac4a15845876f5802ce78152543e1cb19ec9e04e
-Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Mon Apr 2 13:28:11 2012 -0400
-
-    Adds proper encoding to strings being passed to a request.
-    (cherry picked from commit e0d604111ba9f09e4f161d4280ea132e0e4a1990)
-
-commit 802d86c668bacd3e6089ad9c5c9b2cd092d344bf
-Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Sun Apr 1 03:14:49 2012 -0400
-
-    Add slice support to search result pager.
-    (cherry picked from commit 86b54a14992a24c3f727efd5247842ee2d2393c3)
-
-commit 9c3fb94c1136f270d4a02a4ff294e6484b3b7d83
-Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Sat Mar 31 20:14:52 2012 -0400
+commit f0e2ad85dbdd6dd4041a8b1e7d8b17e7b8746b63
+Author: Jean-Yves Avenard <jyavenard at mythtv.org>
+Date:   Wed Jul 18 20:49:11 2012 +1000
 
-    Update Logo() class with proper image sizes from Configuration().
-    (cherry picked from commit 2198d9ef21d5aaf47550084b8904e3da73137956)
-
-commit 47b77a6bd2b17ea5962d1c78751e33305cdd1aa2
-Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Sat Mar 31 20:03:41 2012 -0400
-
-    Correct Studio.logo processing.
-    (cherry picked from commit 2e4bc644b0d2b0277a18ffa0b0e66aa18c17dfc6)
-
-commit 8ec550daa5a9a75c65b57fd5d3b62692bcb1e93b
-Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Sat Mar 31 19:52:53 2012 -0400
-
-    Allow locale fallthrough for movie images and alternate titles.
-    
-    When fallthrough is enabled, queries for backdrops, posters, and
-    alternate titles will not filter for the selected locale, but will
-    instead sort the results to place those matching the specified locale at
-    the top of the list.
+    Make AllowLinkLocal default to true
     
-    Also resolves an issue where Request() was incorrectly passing 'None' as
-    an argument when no locale was set.
-    (cherry picked from commit ddc0cb0550b8de72e4ddad874ad05865b3b50c3f)
-
-commit e0462f253faf920793bb76a84869cb98b4b4a218
-Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Sat Mar 31 19:15:39 2012 -0400
-
-    Allow Datalists to be sorted natively without supplying a key.
-    (cherry picked from commit 61045e47bca155fb40ec2de47d01cd86bd28992b)
+    Signed-off-by: Jean-Yves Avenard <jyavenard at mythtv.org>
 
-commit afc068223b062e6579586d10be2f7d0d1441524d
+commit 4b82e27e6c89bac9d60c3a56f1d924979c80c746
 Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Fri Mar 30 00:49:19 2012 -0400
+Date:   Wed Jul 18 01:50:46 2012 -0400
 
-    Correct cache file selection logic inverted by 4663490f8fa.
-    (cherry picked from commit 75a14b7da282f15fc84819418ec845e86559eaf2)
-
-commit d750957b9b841d15d2c208e13df57e39419a1eb5
-Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Fri Mar 30 00:48:04 2012 -0400
-
-    Update README for additional options.
-    (cherry picked from commit 166655c70bb4ac340c6e559b167114f3e08bbdc0)
-
-commit a2cb6df059542bf62f627f79310e9a891d4e891d
-Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Fri Mar 30 00:41:31 2012 -0400
-
-    Add support for additional Studio information.
-    (cherry picked from commit e99630e023a6ae8033bba27528e9a3ca45e72c1e)
-
-commit ea43a7777f68d4b317138904b6e53616c10a9d52
-Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Thu Mar 29 23:43:12 2012 -0400
-
-    Add 'adult' and 'alias' to Person class.
-    (cherry picked from commit 38922793f5732d10c4dfbcf6d421d40667812675)
-
-commit 4e2e129393ecef050134d605888bfec2c565599c
-Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Thu Mar 29 14:15:19 2012 -0400
-
-    Improves cache file selection for Windows.
-    (cherry picked from commit 263d8680de3566f2109b76b4b1d4d2779b967d10)
+    Correct bad copy/paste in ServerPool.
+    
+    Signed-off-by: Jean-Yves Avenard <jyavenard at mythtv.org>
 
-commit 631ae1075c35107d759c83fa1faa519841949397
+commit e4ba7d74aee6bd437e747772046a8836fa9ae5cb
 Author: Raymond Wagner <rwagner at mythtv.org>
-Date:   Thu Mar 29 13:36:54 2012 -0400
-
-    Add __contains__ for proper lookup in cache Engines class.
-    (cherry picked from commit 08bffa5f6df497f28fe3481fe80b517628b0f1a3)
-
-commit 648f0aec326c03b39091fda8ac64450d0f0e76e3
-Author: Michael T. Dean <mdean at mythtv.org>
-Date:   Thu Jun 7 00:17:48 2012 -0400
+Date:   Sat Jul 14 01:57:46 2012 -0400
 
-    Fix exists check in mythcommflag
+    Rework IP selection so link-local is always used.
     
-    for files that aren't visible to the master backend.  Thanks to fedora a
-    ready2think for the patch.  Fixes #10810.
-    (cherry picked from commit c5803f1dc6b1da7d77222c43ce074bb04d9bc983)
-
-commit 016db04aff2bc8c2de1d4af9d920366ed568910b
-Author: Stuart Morgan <smorgan at mythtv.org>
-Date:   Wed Jun 6 22:05:19 2012 +0100
-
-    Give more space for the channel number in the Terra OSD
-    (cherry picked from commit f842d1b1f68a6b7a0933bbd7dac1e8d381fc9fee)
-
-commit 199342ef7a3fe6230a11de547b2a8df6d07dff34
-Author: Paul Gardiner <paul at glidos.site>
-Date:   Sun May 27 11:44:30 2012 +0100
-
-    Calculate timecodes more accurately (suggeseted by JYA)
+    This adds an option to mythtv-setup that makes link-local addresses
+    listened to by default.  This behavior can still be disabled, to block
+    off network access.
     
-    Also add comments explaining the algorithm.
+    Signed-off-by: Jean-Yves Avenard <jyavenard at mythtv.org>
 
-commit 34711d84919ea49221461d41566669de1500a0d8
-Author: Paul Gardiner <paul at glidos.site>
-Date:   Fri May 4 17:09:57 2012 +0100
+commit 450ed915d3a13b84489ecdebdad6fca18fc8c312
+Author: GDragon <gdragon at jetcom.org>
+Date:   Mon Jul 9 15:33:31 2012 -0400
 
-    Fix passthrough case of mythtrancode running in fifo mode
+    Properly set job type in fromProgram and fromRecorded methods.
     
-    Also simplify AudiReencodeBuffer::AddData()
+    Signed-off-by: Raymond Wagner <rwagner at mythtv.org>
+    (cherry picked from commit 868a566c1d635be3e60f83438f87b6f21d9f1780)


Index: mythbackend.service
===================================================================
RCS file: /cvs/free/rpms/mythtv/EL-6/mythbackend.service,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- mythbackend.service	6 Jul 2012 18:13:11 -0000	1.1
+++ mythbackend.service	26 Aug 2012 12:02:38 -0000	1.2
@@ -28,19 +28,38 @@
 # The MythTV package ships with a default udev
 # rule file located in: /lib/udev/rules.d/99-mythbackend.rules
 
-
 [Unit]
 Description=MythTV backend service
-After=network.target mysqld.service
-# uncomment the following line if you will be using the mythweb plugin.
+After=network.target mysqld.service time-sync.target
+# Uncomment the following line if you will be using the mythweb plugin on the
+# same system as mythbackend.
 #Wants=httpd.service
 
 [Service]
+# Type=simple is recommended. If using Type=forking you will need to specify a
+# pidfile so systemd knows how to find the forked process PID, otherwise it
+# presumes that the process being started will be the remaining process.
+#Type=forking
 Type=simple
+
+# Default setting assumes a system wide install. Otherwise it should be set to 
+# the folder containing the .mythtv subfolder containing the config.xml file
 Environment=MYTHCONFDIR=/etc/mythtv
-Environment=HOME=/usr/share/mythtv
+
+# systemd changes execution from the calling user (possibly root) to this user
+# if you have permissions problems or obscure errors try logging in as mythtv
 User=mythtv
+
+# Uncomment one of the following...
+# Use sysloging rather than separate logging:
+#ExecStart=/usr/bin/mythbackend --syslog local7
+# If Type=forking is set you must specify the --daemon and --pidfile options:
+#ExecStart=/usr/bin/mythbackend --daemon --logpath /var/log/mythtv --loglevel crit --pidfile /run/mythbackend.pid
+# Default setting for Type=simple.
 ExecStart=/usr/bin/mythbackend --logpath /var/log/mythtv
 
+# Whether systemd will continue over-watch and restart on any halt
+#Restart=Restart-always
+
 [Install]
 WantedBy=multi-user.target


Index: mythtv.spec
===================================================================
RCS file: /cvs/free/rpms/mythtv/EL-6/mythtv.spec,v
retrieving revision 1.87
retrieving revision 1.88
diff -u -r1.87 -r1.88
--- mythtv.spec	6 Jul 2012 18:11:28 -0000	1.87
+++ mythtv.spec	26 Aug 2012 12:02:38 -0000	1.88
@@ -60,13 +60,12 @@
 
 # Git revision and branch ID
 # 0.25 release: git tag v0.25.1
-%define _gitrev c2c276d
+%define _gitrev v0.25.2-15-g46cab93
+%define branch fixes/0.25
 
 # Mythtv and plugins from github.com
-%global githash1 gc2c276d
-%global githash2 4c30a85
-
-%define branch fixes/0.25
+%global githash1 g4e44650
+%global githash2 19087cb
 
 #
 # Basic descriptive tags for this package:
@@ -77,12 +76,12 @@
 Group:          Applications/Multimedia
 
 # Version/Release info
-Version:        0.25.1
+Version:        0.25.2
 %if "%{branch}" == "master"
 Release:        0.1.git.%{_gitrev}%{?dist}
 #Release: 0.1.rc1%{?dist}
 %else
-Release:        1%{?dist}
+Release:        2%{?dist}
 %endif
 
 # The primary license is GPLv2+, but bits are borrowed from a number of
@@ -135,7 +134,12 @@
 # https://github.com/MythTV/mythtv/tarball/v0.25
 Source0:   MythTV-%{name}-v%{version}-0-%{githash1}.tar.gz
 
-Patch0:    mythtv-0.25.1-fixes.patch
+Patch0:    mythtv-0.25.2-fixes.patch
+
+# Fixes for PHP 5.4
+Patch1:    mythtv-0.25.1-php54.patch
+# Adapative HLS profile based on resolution.
+Patch2:    mythtv-0.25.1-hls_profile.patch
 
 Source10:  PACKAGE-LICENSING
 Source11:  ChangeLog
@@ -509,7 +513,7 @@
 Requires:  perl(XML::Simple)
 Requires:  mythtv-common       = %{version}-%{release}
 Requires:  mythtv-base-themes  = %{version}
-Requires:  python-MythTV python-lxml
+Requires:  python-MythTV
 Provides:  mythtv-frontend-api = %{mythfeapiver}
 Obsoletes: mythvideo           < %{version}-%{release}
 Provides:  mythvideo           = %{version}-%{release}
@@ -617,6 +621,7 @@
 
 Requires:       MySQL-python
 Requires:       PyXML
+Requires:       python-lxml
 
 %description -n python-MythTV
 Provides a python-based interface to interacting with MythTV.
@@ -806,6 +811,8 @@
     fi
 
 %patch0 -p1 -b .mythtv
+%patch1 -p1 -b .php54
+%patch2 -p1 -b .hls_profile
 
 # Install ChangeLog
 install -m 0644 %{SOURCE11} .
@@ -828,14 +835,14 @@
     cp -a %{SOURCE10} .
     cp -a %{SOURCE106} %{SOURCE107} %{SOURCE108} %{SOURCE109} .
 
+# Make sure we use -O2 and not -O3
+    sed -i '/speed_cflags=/d' configure
+
 # Prevent all of those nasty installs to ../../../../../bin/whatever
 #    echo "QMAKE_PROJECT_DEPTH = 0" >> mythtv.pro
 #    echo "QMAKE_PROJECT_DEPTH = 0" >> settings.pro
 #    chmod 644 settings.pro
 
-# We also need Xv libs to build XvMCNVIDIA
-#    sed -i -e 's,VENDOR_XVMC_LIBS="-lXvMCNVIDIA",VENDOR_XVMC_LIBS="-lXvMCNVIDIA -lXv",' configure
-
 popd
 
 
@@ -1213,10 +1220,7 @@
 %doc mythtv/contrib
 
 %files common
-%dir %{_sysconfdir}/mythtv
 %dir %{_datadir}/mythtv
-%config(noreplace) %{_sysconfdir}/mythtv/mysql.txt
-%config(noreplace) %{_sysconfdir}/mythtv/config.xml
 %{_bindir}/mythccextractor
 %{_bindir}/mythcommflag
 %{_bindir}/mythmetadatalookup
@@ -1228,6 +1232,10 @@
 %{_datadir}/mythtv/locales/
 %{_datadir}/mythtv/metadata/
 %{_datadir}/mythtv/hardwareprofile/
+%attr(-,mythtv,mythtv)
+%dir %{_sysconfdir}/mythtv
+%config(noreplace) %{_sysconfdir}/mythtv/mysql.txt
+%config(noreplace) %{_sysconfdir}/mythtv/config.xml
 
 %files backend
 %{_bindir}/mythbackend
@@ -1285,7 +1293,7 @@
 %{_datadir}/pixmaps/myth*.png
 %{_datadir}/mythtv/metadata/
 # Myth Video is now Video Gallery
-%attr(-,mythtv,mythtv) %{_localstatedir}/lib/mythvideo
+%attr(0775,mythtv,mythtv) %{_localstatedir}/lib/mythvideo
 
 %files base-themes
 %{_datadir}/mythtv/themes/
@@ -1357,7 +1365,7 @@
 %doc mythplugins/mythgallery/README
 %{_libdir}/mythtv/plugins/libmythgallery.so
 %{_datadir}/mythtv/i18n/mythgallery_*.qm
-%attr(-,mythtv,mythtv) %{_localstatedir}/lib/pictures
+%attr(0775,mythtv,mythtv) %{_localstatedir}/lib/pictures
 %endif
 
 %if %{with_mythgame}
@@ -1379,7 +1387,7 @@
 %doc mythplugins/mythmusic/COPYING
 %doc mythplugins/mythmusic/README
 %{_libdir}/mythtv/plugins/libmythmusic.so
-%{_localstatedir}/lib/mythmusic
+%attr(0775,mythtv,mythtv) %{_localstatedir}/lib/mythmusic
 %{_datadir}/mythtv/musicmenu.xml
 %{_datadir}/mythtv/music_settings.xml
 %{_datadir}/mythtv/i18n/mythmusic_*.qm
@@ -1433,6 +1441,18 @@
 
 
 %changelog
+* Sat Aug 25 2012 Richard Shaw <hobbes1069 at gmail.com> - 0.25.2-2
+- Update to latest fixes/0.25.
+- Fix mythbackend looking in the wrong directory for config.xml (BZ#2450).
+
+* Mon Jul 16 2012 Richard Shaw <hobbes1069 at gmail.com> - 0.25.2-1
+- Patch HLS for adapative x264 profile.
+- Make sure mythbackend starts after time has synced.
+- Update to latest fixes/0.25.
+
+* Fri Jul 06 2012 Richard Shaw <hobbes1069 at gmail.com> - 0.25.1-2
+- Patch for PHP 5.4 warnings.
+
 * Tue Jun 05 2012 Richard Shaw <hobbes1069 at gmail.com> - 0.25.1-1
 - Update to latest fixes/0.25.
 - Move mythweb to a stand alone package.


Index: sources
===================================================================
RCS file: /cvs/free/rpms/mythtv/EL-6/sources,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -r1.53 -r1.54
--- sources	6 Jul 2012 18:11:28 -0000	1.53
+++ sources	26 Aug 2012 12:02:38 -0000	1.54
@@ -1 +1 @@
-fb9dd6b59786e579237fa579d49f104c  MythTV-mythtv-v0.25.1-0-gc2c276d.tar.gz
+05d3402459bf7380cf54cc6066c149a3  MythTV-mythtv-v0.25.2-0-g4e44650.tar.gz


--- mythtv-0.25.1-fixes.patch DELETED ---


More information about the rpmfusion-commits mailing list