rpms/mythtv/F-16 mythbackend.init, 1.1, 1.2 mythbackend.service, 1.4, 1.5 mythtv-0.25-fixes.patch, 1.1, 1.2 mythtv.spec, 1.89, 1.90

Richard Shaw hobbes1069 at rpmfusion.org
Wed Apr 18 22:44:55 CEST 2012


Author: hobbes1069

Update of /cvs/free/rpms/mythtv/F-16
In directory old02.ovh.rpmfusion.lan:/tmp/cvs-serv2310

Modified Files:
	mythbackend.init mythbackend.service mythtv-0.25-fixes.patch 
	mythtv.spec 
Log Message:
* Wed Apr 18 2012 Richard Shaw <hobbes1069 at gmail.com> - 0.25-2
- Update to latest fixes/0.25.
- Change --logfile to --logpath for init files.
- Obsolete mythvideo in spec file.



Index: mythbackend.init
===================================================================
RCS file: /cvs/free/rpms/mythtv/F-16/mythbackend.init,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- mythbackend.init	3 Mar 2011 02:45:10 -0000	1.1
+++ mythbackend.init	18 Apr 2012 20:44:54 -0000	1.2
@@ -22,7 +22,7 @@
 binary=/usr/bin/mythbackend
 prog=mythbackend
 RETVAL=0
-OPTIONS="$OPTIONS --daemon --user ${MYTHBACKEND_USER} --logfile /var/log/mythtv/$prog.log --pidfile /var/run/$prog.pid"
+OPTIONS="$OPTIONS --daemon --user ${MYTHBACKEND_USER} --logpath /var/log/mythtv --pidfile /var/run/$prog.pid"
 
 start() {
   echo -n $"Starting $prog: "


Index: mythbackend.service
===================================================================
RCS file: /cvs/free/rpms/mythtv/F-16/mythbackend.service,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- mythbackend.service	1 Mar 2012 14:32:51 -0000	1.4
+++ mythbackend.service	18 Apr 2012 20:44:54 -0000	1.5
@@ -39,7 +39,7 @@
 Environment=MYTHCONFDIR=/etc/mythtv
 Environment=HOME=/usr/share/mythtv
 User=mythtv
-ExecStart=/usr/bin/mythbackend --logfile /var/log/mythtv/mythbackend.log
+ExecStart=/usr/bin/mythbackend --logpath /var/log/mythtv
 
 [Install]
 WantedBy=multi-user.target

mythtv-0.25-fixes.patch:
 mythplugins/mytharchive/i18n/mytharchive_fi.qm                 |binary
 mythplugins/mytharchive/i18n/mytharchive_fi.ts                 |  238 
 mythplugins/mythbrowser/i18n/mythbrowser_fi.qm                 |binary
 mythplugins/mythbrowser/i18n/mythbrowser_fi.ts                 |   44 
 mythplugins/mythgallery/i18n/mythgallery_fi.qm                 |binary
 mythplugins/mythgallery/i18n/mythgallery_fi.ts                 |  264 
 mythplugins/mythgame/i18n/mythgame_fi.qm                       |binary
 mythplugins/mythgame/i18n/mythgame_fi.ts                       |  178 
 mythplugins/mythmusic/i18n/mythmusic_fi.qm                     |binary
 mythplugins/mythmusic/i18n/mythmusic_fi.ts                     | 2219 +++++-
 mythplugins/mythnetvision/i18n/mythnetvision_fi.qm             |binary
 mythplugins/mythnetvision/i18n/mythnetvision_fi.ts             |   96 
 mythplugins/mythnetvision/mythnetvision/nettree.cpp            |    8 
 mythplugins/mythnetvision/mythnetvision/rsseditor.cpp          |    6 
 mythplugins/mythnews/i18n/mythnews_fi.qm                       |binary
 mythplugins/mythnews/i18n/mythnews_fi.ts                       |   44 
 mythplugins/mythweather/i18n/mythweather_fi.qm                 |binary
 mythplugins/mythweather/i18n/mythweather_fi.ts                 |   60 
 mythplugins/mythzoneminder/i18n/mythzoneminder_fi.qm           |binary
 mythplugins/mythzoneminder/i18n/mythzoneminder_fi.ts           |   84 
 mythplugins/mythzoneminder/mythzmserver/zmserver.cpp           |    3 
 mythtv/VERSION                                                 |    2 
 mythtv/bindings/python/MythTV/mythproto.py                     |    2 
 mythtv/bindings/python/MythTV/static.py                        |    2 
 mythtv/docs/doxygen-create-developer-docs.cfg                  |    2 
 mythtv/filters/yadif/filter_yadif.c                            |    2 
 mythtv/i18n/mythfrontend_fi.qm                                 |binary
 mythtv/i18n/mythfrontend_fi.ts                                 | 3662 ++++++----
 mythtv/i18n/mythfrontend_nb.qm                                 |binary
 mythtv/i18n/mythfrontend_nb.ts                                 |    2 
 mythtv/libs/libmyth/audio/audiooutputbase.cpp                  |   11 
 mythtv/libs/libmyth/remoteutil.cpp                             |   16 
 mythtv/libs/libmyth/remoteutil.h                               |    1 
 mythtv/libs/libmyth/rssparse.h                                 |    1 
 mythtv/libs/libmythbase/compat.h                               |    2 
 mythtv/libs/libmythbase/logging.cpp                            |    3 
 mythtv/libs/libmythprotoserver/requesthandler/deletethread.cpp |    6 
 mythtv/libs/libmythsoundtouch/STTypes.h                        |    2 
 mythtv/libs/libmythsoundtouch/libmythsoundtouch.pro            |    1 
 mythtv/libs/libmythtv/audioinput.h                             |    1 
 mythtv/libs/libmythtv/dvdringbuffer.cpp                        |   49 
 mythtv/libs/libmythtv/mythairplayserver.cpp                    |    2 
 mythtv/libs/libmythtv/mythraopdevice.cpp                       |    3 
 mythtv/libs/libmythtv/playercontext.h                          |    4 
 mythtv/libs/libmythtv/ringbuffer.cpp                           |    8 
 mythtv/libs/libmythtv/tv_play.cpp                              |   26 
 mythtv/libs/libmythtv/tvremoteutil.cpp                         |   55 
 mythtv/libs/libmythtv/tvremoteutil.h                           |    7 
 mythtv/libs/libmythtv/videoout_xv.cpp                          |    7 
 mythtv/libs/libmythtv/videoout_xv.h                            |    1 
 mythtv/libs/libmythtv/videooutbase.cpp                         |   28 
 mythtv/libs/libmythupnp/httprequest.cpp                        |    1 
 mythtv/programs/mythfrontend/guidegrid.cpp                     |    4 
 mythtv/programs/mythfrontend/scheduleeditor.cpp                |    7 
 mythtv/programs/mythtranscode/transcode.h                      |    5 
 mythtv/programs/mythutil/markuputils.cpp                       |    4 
 56 files changed, 5278 insertions(+), 1895 deletions(-)

Index: mythtv-0.25-fixes.patch
===================================================================
RCS file: /cvs/free/rpms/mythtv/F-16/mythtv-0.25-fixes.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- mythtv-0.25-fixes.patch	13 Apr 2012 21:18:34 -0000	1.1
+++ mythtv-0.25-fixes.patch	18 Apr 2012 20:44:54 -0000	1.2
@@ -10,6 +10,8 @@
  mythplugins/mythmusic/i18n/mythmusic_fi.ts         | 2219 ++++++++++--
  mythplugins/mythnetvision/i18n/mythnetvision_fi.qm |  Bin 10270 -> 11758 bytes
  mythplugins/mythnetvision/i18n/mythnetvision_fi.ts |   96 +-
+ .../mythnetvision/mythnetvision/nettree.cpp        |    8 +-
+ .../mythnetvision/mythnetvision/rsseditor.cpp      |    6 -
  mythplugins/mythnews/i18n/mythnews_fi.qm           |  Bin 4889 -> 4512 bytes
  mythplugins/mythnews/i18n/mythnews_fi.ts           |   44 +-
  mythplugins/mythweather/i18n/mythweather_fi.qm     |  Bin 24061 -> 23685 bytes
@@ -18,17 +20,41 @@
  .../mythzoneminder/i18n/mythzoneminder_fi.ts       |   84 +-
  .../mythzoneminder/mythzmserver/zmserver.cpp       |    3 -
  mythtv/VERSION                                     |    2 +-
+ mythtv/bindings/python/MythTV/mythproto.py         |    2 +-
+ mythtv/bindings/python/MythTV/static.py            |    2 +-
  mythtv/docs/doxygen-create-developer-docs.cfg      |    2 +-
  mythtv/filters/yadif/filter_yadif.c                |    2 +-
  mythtv/i18n/mythfrontend_fi.qm                     |  Bin 532091 -> 613881 bytes
  mythtv/i18n/mythfrontend_fi.ts                     | 3662 +++++++++++++-------
+ mythtv/i18n/mythfrontend_nb.qm                     |  Bin 603663 -> 603587 bytes
+ mythtv/i18n/mythfrontend_nb.ts                     |    2 +-
+ mythtv/libs/libmyth/audio/audiooutputbase.cpp      |   11 +-
+ mythtv/libs/libmyth/remoteutil.cpp                 |   16 -
+ mythtv/libs/libmyth/remoteutil.h                   |    1 -
  mythtv/libs/libmyth/rssparse.h                     |    1 +
  mythtv/libs/libmythbase/compat.h                   |    2 +
+ mythtv/libs/libmythbase/logging.cpp                |    3 +-
+ .../requesthandler/deletethread.cpp                |    6 +-
+ mythtv/libs/libmythsoundtouch/STTypes.h            |    2 +-
+ .../libs/libmythsoundtouch/libmythsoundtouch.pro   |    1 +
  mythtv/libs/libmythtv/audioinput.h                 |    1 +
- mythtv/libs/libmythtv/tv_play.cpp                  |    4 +-
+ mythtv/libs/libmythtv/dvdringbuffer.cpp            |   49 +-
+ mythtv/libs/libmythtv/mythairplayserver.cpp        |    2 +-
+ mythtv/libs/libmythtv/mythraopdevice.cpp           |    3 +-
+ mythtv/libs/libmythtv/playercontext.h              |    4 +-
+ mythtv/libs/libmythtv/ringbuffer.cpp               |    8 +-
+ mythtv/libs/libmythtv/tv_play.cpp                  |   26 +-
+ mythtv/libs/libmythtv/tvremoteutil.cpp             |   55 +-
+ mythtv/libs/libmythtv/tvremoteutil.h               |    7 +-
+ mythtv/libs/libmythtv/videoout_xv.cpp              |    7 +-
+ mythtv/libs/libmythtv/videoout_xv.h                |    1 +
+ mythtv/libs/libmythtv/videooutbase.cpp             |   28 +-
+ mythtv/libs/libmythupnp/httprequest.cpp            |    1 +
  mythtv/programs/mythfrontend/guidegrid.cpp         |    4 +-
+ mythtv/programs/mythfrontend/scheduleeditor.cpp    |    7 +-
+ mythtv/programs/mythtranscode/transcode.h          |    5 +-
  mythtv/programs/mythutil/markuputils.cpp           |    4 +-
- 30 files changed, 5131 insertions(+), 1783 deletions(-)
+ 56 files changed, 5278 insertions(+), 1895 deletions(-)
 
 diff --git a/mythplugins/mytharchive/i18n/mytharchive_fi.qm b/mythplugins/mytharchive/i18n/mytharchive_fi.qm
 index 2fc0f91..8e2d841 100644
@@ -5009,6 +5035,49 @@
      </message>
  </context>
  </TS>
+diff --git a/mythplugins/mythnetvision/mythnetvision/nettree.cpp b/mythplugins/mythnetvision/mythnetvision/nettree.cpp
+index d07765f..49efc8b 100644
+--- a/mythplugins/mythnetvision/mythnetvision/nettree.cpp
++++ b/mythplugins/mythnetvision/mythnetvision/nettree.cpp
+@@ -472,7 +472,12 @@ void NetTree::showMenu(void)
+ 
+     ResultItem *item = NULL;
+     if (m_type == DLG_TREE)
+-        item = qVariantValue<ResultItem *>(m_siteMap->GetCurrentNode()->GetData());
++    {
++        MythGenericTree *node = m_siteMap->GetCurrentNode();
++
++        if (node)
++            item = qVariantValue<ResultItem *>(node->GetData());
++    }
+     else
+     {
+         MythGenericTree *node = GetNodePtrFromButton(m_siteButtonList->GetItemCurrent());
+@@ -481,7 +486,6 @@ void NetTree::showMenu(void)
+             item = qVariantValue<ResultItem *>(node->GetData());
+     }
+ 
+-
+     if (item)
+     {
+         if (item->GetDownloadable())
+diff --git a/mythplugins/mythnetvision/mythnetvision/rsseditor.cpp b/mythplugins/mythnetvision/mythnetvision/rsseditor.cpp
+index 93d87d2..3035816 100644
+--- a/mythplugins/mythnetvision/mythnetvision/rsseditor.cpp
++++ b/mythplugins/mythnetvision/mythnetvision/rsseditor.cpp
+@@ -223,12 +223,6 @@ void RSSEditPopup::slotSave(QNetworkReply* reply)
+     QString author = m_authorEdit->GetText();
+     QString file = m_thumbImage->GetFilename();
+ 
+-    bool download;
+-    if (m_download->GetCheckState() == MythUIStateType::Full)
+-        download = true;
+-    else
+-        download = false;
+-
+     LOG(VB_GENERAL, LOG_DEBUG, QString("Text to Parse: %1").arg(text));
+ 
+     QDomElement root = document.documentElement();
 diff --git a/mythplugins/mythnews/i18n/mythnews_fi.qm b/mythplugins/mythnews/i18n/mythnews_fi.qm
 index dbecb06..ba012fb 100644
 Binary files a/mythplugins/mythnews/i18n/mythnews_fi.qm and b/mythplugins/mythnews/i18n/mythnews_fi.qm differ
@@ -5466,6 +5535,32 @@
 -SOURCE_VERSION="v0.25pre"
 \ No newline at end of file
 +SOURCE_VERSION="v0.25"
+diff --git a/mythtv/bindings/python/MythTV/mythproto.py b/mythtv/bindings/python/MythTV/mythproto.py
+index 41a39e8..9a891cb 100644
+--- a/mythtv/bindings/python/MythTV/mythproto.py
++++ b/mythtv/bindings/python/MythTV/mythproto.py
+@@ -657,7 +657,7 @@ class FileOps( BECache ):
+ 
+     def getHash(self, file, sgroup, host=None):
+         """FileOps.getHash(file, storagegroup, host) -> hash string"""
+-        m = [file, sgroup]
++        m = ['QUERY_FILE_HASH', file, sgroup]
+         if host:
+             m.append(host)
+         return self.backendCommand(BACKEND_SEP.join(m))
+diff --git a/mythtv/bindings/python/MythTV/static.py b/mythtv/bindings/python/MythTV/static.py
+index 6b587b2..f539706 100644
+--- a/mythtv/bindings/python/MythTV/static.py
++++ b/mythtv/bindings/python/MythTV/static.py
+@@ -4,7 +4,7 @@
+ Contains any static and global variables for MythTV Python Bindings
+ """
+ 
+-OWN_VERSION = (0,25,-1,3)
++OWN_VERSION = (0,25,0,1)
+ SCHEMA_VERSION = 1299
+ NVSCHEMA_VERSION = 1007
+ MUSICSCHEMA_VERSION = 1018
 diff --git a/mythtv/docs/doxygen-create-developer-docs.cfg b/mythtv/docs/doxygen-create-developer-docs.cfg
 index f246d5a..ab9a6bd 100644
 --- a/mythtv/docs/doxygen-create-developer-docs.cfg
@@ -12066,6 +12161,97 @@
      </message>
  </context>
  <context>
+diff --git a/mythtv/i18n/mythfrontend_nb.qm b/mythtv/i18n/mythfrontend_nb.qm
+index f6eb6c7..e4f4fb5 100644
+Binary files a/mythtv/i18n/mythfrontend_nb.qm and b/mythtv/i18n/mythfrontend_nb.qm differ
+diff --git a/mythtv/i18n/mythfrontend_nb.ts b/mythtv/i18n/mythfrontend_nb.ts
+index 46a3d9e..0e87bb7 100644
+--- a/mythtv/i18n/mythfrontend_nb.ts
++++ b/mythtv/i18n/mythfrontend_nb.ts
+@@ -23852,7 +23852,7 @@ Hvis du velger &quot;Bruk standardavspiller&quot; vil avspillerkommandoen for en
+     <message>
+         <location filename="../themes/themestrings.h" line="155"/>
+         <source>%DATE%, %TIME%</source>
+-        <translation>%DATO%, %TID%</translation>
++        <translation>%DATE%, %TIME%</translation>
+     </message>
+     <message>
+         <location filename="../themes/themestrings.h" line="610"/>
+diff --git a/mythtv/libs/libmyth/audio/audiooutputbase.cpp b/mythtv/libs/libmyth/audio/audiooutputbase.cpp
+index f6a7a36..370884b 100644
+--- a/mythtv/libs/libmyth/audio/audiooutputbase.cpp
++++ b/mythtv/libs/libmyth/audio/audiooutputbase.cpp
+@@ -103,7 +103,7 @@ AudioOutputBase::AudioOutputBase(const AudioSettings &settings) :
+     src_out(NULL),              kAudioSRCOutputSize(0),
+     memory_corruption_test2(0xdeadbeef),
+     memory_corruption_test3(0xdeadbeef),
+-    m_configure_succeeded(true),m_length_last_data(0),
++    m_configure_succeeded(false),m_length_last_data(0),
+     m_spdifenc(NULL)
+ {
+     src_in = (float *)AOALIGN(src_in_buf);
+@@ -318,6 +318,12 @@ void AudioOutputBase::SetStretchFactorLocked(float lstretchfactor)
+         return;
+ 
+     stretchfactor = lstretchfactor;
++
++    int channels = needs_upmix || needs_downmix ?
++        configured_channels : source_channels;
++    if (channels < 1 || channels > 8)
++        return;
++
+     eff_stretchfactor = (int)(100000.0f * lstretchfactor + 0.5);
+     if (pSoundStretch)
+     {
+@@ -329,8 +335,7 @@ void AudioOutputBase::SetStretchFactorLocked(float lstretchfactor)
+         VBGENERAL(QString("Using time stretch %1").arg(stretchfactor));
+         pSoundStretch = new soundtouch::SoundTouch();
+         pSoundStretch->setSampleRate(samplerate);
+-        pSoundStretch->setChannels(needs_upmix || needs_downmix ?
+-            configured_channels : source_channels);
++        pSoundStretch->setChannels(channels);
+         pSoundStretch->setTempo(stretchfactor);
+         pSoundStretch->setSetting(SETTING_SEQUENCE_MS, 35);
+         /* If we weren't already processing we need to turn on float conversion
+diff --git a/mythtv/libs/libmyth/remoteutil.cpp b/mythtv/libs/libmyth/remoteutil.cpp
+index a326c5e..ca37630 100644
+--- a/mythtv/libs/libmyth/remoteutil.cpp
++++ b/mythtv/libs/libmyth/remoteutil.cpp
+@@ -208,22 +208,6 @@ vector<ProgramInfo *> *RemoteGetConflictList(const ProgramInfo *pginfo)
+     return retlist;
+ }
+ 
+-vector<uint> RemoteRequestFreeRecorderList(void)
+-{
+-    vector<uint> list;
+-
+-    QStringList strlist("GET_FREE_RECORDER_LIST");
+-
+-    if (!gCoreContext->SendReceiveStringList(strlist, true))
+-        return list;
+-
+-    QStringList::const_iterator it = strlist.begin();
+-    for (; it != strlist.end(); ++it) 
+-        list.push_back((*it).toUInt());
+-
+-    return list;
+-}
+-
+ QDateTime RemoteGetPreviewLastModified(const ProgramInfo *pginfo)
+ {
+     QDateTime retdatetime;
+diff --git a/mythtv/libs/libmyth/remoteutil.h b/mythtv/libs/libmyth/remoteutil.h
+index affd4ec..7acff6a 100644
+--- a/mythtv/libs/libmyth/remoteutil.h
++++ b/mythtv/libs/libmyth/remoteutil.h
+@@ -31,7 +31,6 @@ void RemoteGetAllExpiringRecordings(vector<ProgramInfo *> &expiringlist);
+ MPUBLIC uint RemoteGetRecordingList(vector<ProgramInfo *> &reclist,
+                                     QStringList &strList);
+ MPUBLIC vector<ProgramInfo *> *RemoteGetConflictList(const ProgramInfo *pginfo);
+-MPUBLIC vector<uint> RemoteRequestFreeRecorderList(void);
+ MPUBLIC QDateTime RemoteGetPreviewLastModified(const ProgramInfo *pginfo);
+ MPUBLIC QDateTime RemoteGetPreviewIfModified(
+     const ProgramInfo &pginfo, const QString &cachefile);
 diff --git a/mythtv/libs/libmyth/rssparse.h b/mythtv/libs/libmyth/rssparse.h
 index 7408ac4..dfe1427 100644
 --- a/mythtv/libs/libmyth/rssparse.h
@@ -12091,6 +12277,69 @@
  #endif
  
  #ifdef USING_MINGW
+diff --git a/mythtv/libs/libmythbase/logging.cpp b/mythtv/libs/libmythbase/logging.cpp
+index aaf2401..bc5004a 100644
+--- a/mythtv/libs/libmythbase/logging.cpp
++++ b/mythtv/libs/libmythbase/logging.cpp
+@@ -1297,7 +1297,8 @@ int syslogGetFacility(QString facility)
+ #else
+     CODE *name;
+     int i;
+-    char *string = (char *)facility.toLocal8Bit().constData();
++    QByteArray ba = facility.toLocal8Bit();
++    char *string = (char *)ba.constData();
+ 
+     for (i = 0, name = &facilitynames[0];
+          name->c_name && strcmp(name->c_name, string); i++, name++);
+diff --git a/mythtv/libs/libmythprotoserver/requesthandler/deletethread.cpp b/mythtv/libs/libmythprotoserver/requesthandler/deletethread.cpp
+index f5c8f27..e55fe14 100644
+--- a/mythtv/libs/libmythprotoserver/requesthandler/deletethread.cpp
++++ b/mythtv/libs/libmythprotoserver/requesthandler/deletethread.cpp
+@@ -105,7 +105,8 @@ void DeleteThread::ProcessNew(void)
+         //    continue;
+ 
+         QString path = handler->m_path;
+-        const char *cpath = handler->m_path.toLocal8Bit().constData();
++        QByteArray cpath_ba = handler->m_path.toLocal8Bit();
++        const char *cpath = cpath_ba.constData();
+ 
+         QFileInfo finfo(handler->m_path);
+         if (finfo.isSymLink())
+@@ -137,7 +138,8 @@ void DeleteThread::ProcessNew(void)
+                 // an external directory with no link into mythtv
+                 handler->DeleteSucceeded();
+                 handler->m_path = tmppath;
+-                cpath = handler->m_path.toLocal8Bit().constData();
++                cpath_ba = handler->m_path.toLocal8Bit();
++                cpath = cpath_ba.constData();
+             }
+             else
+             {
+diff --git a/mythtv/libs/libmythsoundtouch/STTypes.h b/mythtv/libs/libmythsoundtouch/STTypes.h
+index 9812825..a8680d7 100644
+--- a/mythtv/libs/libmythsoundtouch/STTypes.h
++++ b/mythtv/libs/libmythsoundtouch/STTypes.h
+@@ -56,7 +56,7 @@ typedef unsigned long   ulong;
+ 
+ #endif  // _WINDEF_H
+ 
+-    #define MULTICHANNEL 6
++    #define MULTICHANNEL 8
+ 
+ namespace soundtouch
+ {
+diff --git a/mythtv/libs/libmythsoundtouch/libmythsoundtouch.pro b/mythtv/libs/libmythsoundtouch/libmythsoundtouch.pro
+index 2b88e61..3b681a8 100644
+--- a/mythtv/libs/libmythsoundtouch/libmythsoundtouch.pro
++++ b/mythtv/libs/libmythsoundtouch/libmythsoundtouch.pro
+@@ -18,6 +18,7 @@ HEADERS += cpu_detect.h
+ HEADERS += FIRFilter.h
+ HEADERS += RateTransposer.h
+ HEADERS += TDStretch.h
++HEADERS += STTypes.h
+ 
+ SOURCES += AAFilter.cpp
+ SOURCES += FIRFilter.cpp
 diff --git a/mythtv/libs/libmythtv/audioinput.h b/mythtv/libs/libmythtv/audioinput.h
 index 67f05d1..9155349 100644
 --- a/mythtv/libs/libmythtv/audioinput.h
@@ -12103,8 +12352,174 @@
  
  class AudioInput
  {
+diff --git a/mythtv/libs/libmythtv/dvdringbuffer.cpp b/mythtv/libs/libmythtv/dvdringbuffer.cpp
+index 5a445a0..3a0573a 100644
+--- a/mythtv/libs/libmythtv/dvdringbuffer.cpp
++++ b/mythtv/libs/libmythtv/dvdringbuffer.cpp
+@@ -352,8 +352,6 @@ bool DVDRingBuffer::OpenFile(const QString &lfilename, uint retry_ms)
+         res = dvdnav_get_number_of_titles(m_dvdnav, &num_titles);
+     }
+ 
+-    int start_title = 1;
+-
+     if (res == DVDNAV_STATUS_ERR)
+     {
+         LOG(VB_GENERAL, LOG_ERR,
+@@ -364,49 +362,9 @@ bool DVDRingBuffer::OpenFile(const QString &lfilename, uint retry_ms)
+         LOG(VB_GENERAL, LOG_INFO,
+             LOC + QString("There are %1 titles on the disk")
+                 .arg(num_titles));
++     }
+ 
+-        // We do this once and chose the first title with a reasonanble length,
+-        // cache the results for those we probe and probe the remainder as
+-        // needed
+-        if (!m_chapterMap.size())
+-        {
+-            for (int i = 1; i < num_titles + 1; i++)
+-            {
+-                uint64_t duration = GetChapterTimes(i);
+-                if (duration < 1 || !m_chapterMap.contains(i))
+-                    continue;
+-
+-                LOG(VB_GENERAL, LOG_INFO, LOC +
+-                    QString("Title %1: chapters %2 duration %3")
+-                            .arg(i).arg(m_chapterMap.value(i).size())
+-                            .arg(duration));
+-
+-                if (duration > 60)
+-                    break;
+-            }
+-        }
+-
+-        QMapIterator<uint, QList<uint64_t> > it(m_chapterMap);
+-        uint64_t longest = 0;
+-        while (it.hasNext())
+-        {
+-            it.next();
+-            if (it.value().size())
+-            {
+-                uint title = it.key();
+-                uint64_t last = it.value().last();
+-                if (last > longest)
+-                {
+-                    start_title = title;
+-                    longest = last;
+-                }
+-            }
+-        }
+-    }
+-
+-    LOG(VB_GENERAL, LOG_INFO,
+-        LOC + QString("Starting with title %1").arg(start_title));
+-    dvdnav_title_play(m_dvdnav, start_title);
++    dvdnav_title_play(m_dvdnav, 1);
+ 
+     // Check we aren't starting in a still frame (which will probably fail as
+     // ffmpeg will be unable to create a decoder)
+@@ -424,6 +382,9 @@ bool DVDRingBuffer::OpenFile(const QString &lfilename, uint retry_ms)
+     dvdnav_get_angle_info(m_dvdnav, &m_currentAngle, &m_currentTitleAngleCount);
+     SetDVDSpeed();
+ 
++    // Populate the chapter list for this title, used in the OSD menu
++    GetChapterTimes(m_title);
++
+     LOG(VB_PLAYBACK, LOG_INFO, LOC +
+             QString("DVD Serial Number %1").arg(m_serialnumber));
+ 
+diff --git a/mythtv/libs/libmythtv/mythairplayserver.cpp b/mythtv/libs/libmythtv/mythairplayserver.cpp
+index 9cea0b7..18aa13f 100644
+--- a/mythtv/libs/libmythtv/mythairplayserver.cpp
++++ b/mythtv/libs/libmythtv/mythairplayserver.cpp
+@@ -329,7 +329,7 @@ void MythAirplayServer::Start(void)
+     int baseport = m_setupPort;
+     while (m_setupPort < baseport + AIRPLAY_PORT_RANGE)
+     {
+-        if (listen(m_setupPort))
++        if (listen(QNetworkInterface::allAddresses(), m_setupPort, false))
+         {
+             LOG(VB_GENERAL, LOG_INFO, LOC +
+                 QString("Listening for connections on port %1")
+diff --git a/mythtv/libs/libmythtv/mythraopdevice.cpp b/mythtv/libs/libmythtv/mythraopdevice.cpp
+index 82a6a61..887de97 100644
+--- a/mythtv/libs/libmythtv/mythraopdevice.cpp
++++ b/mythtv/libs/libmythtv/mythraopdevice.cpp
+@@ -1,6 +1,7 @@
+ #include <QTimer>
+ #include <QtEndian>
+ #include <QTcpSocket>
++#include <QNetworkInterface>
+ 
+ #include "mthread.h"
+ #include "mythlogging.h"
+@@ -131,7 +132,7 @@ void MythRAOPDevice::Start(void)
+     int baseport = m_setupPort;
+     while (m_setupPort < baseport + RAOP_PORT_RANGE)
+     {
+-        if (listen(m_setupPort))
++        if (listen(QNetworkInterface::allAddresses(), m_setupPort, false))
+         {
+             LOG(VB_GENERAL, LOG_INFO, LOC +
+                 QString("Listening for connections on port %1").arg(m_setupPort));
+diff --git a/mythtv/libs/libmythtv/playercontext.h b/mythtv/libs/libmythtv/playercontext.h
+index 5854de4..a4ce9f1 100644
+--- a/mythtv/libs/libmythtv/playercontext.h
++++ b/mythtv/libs/libmythtv/playercontext.h
+@@ -11,6 +11,7 @@ using namespace std;
+ #include <QMutex>
+ #include <QHash>
+ #include <QRect>
++#include <QObject>
+ #include "mythtvexp.h"
+ #include "mythdeque.h"
+ #include "tv.h"
+@@ -42,8 +43,9 @@ typedef enum
+ typedef deque<QString>         StringDeque;
+ typedef QHash<QString,QString> InfoMap;
+ 
+-class MTV_PUBLIC PlayerContext
++class MTV_PUBLIC PlayerContext : public QObject
+ {
++    Q_OBJECT
+   public:
+     PlayerContext(const QString &inUseID = QString("Unknown"));
+     ~PlayerContext();
+diff --git a/mythtv/libs/libmythtv/ringbuffer.cpp b/mythtv/libs/libmythtv/ringbuffer.cpp
+index e3f0a5a..3883de2 100644
+--- a/mythtv/libs/libmythtv/ringbuffer.cpp
++++ b/mythtv/libs/libmythtv/ringbuffer.cpp
+@@ -724,6 +724,7 @@ void RingBuffer::run(void)
+     struct timeval lastread, now;
+     int readtimeavg = 300;
+     bool ignore_for_read_timing = true;
++    bool did_set_oldfile = false;
+ 
+     gettimeofday(&lastread, NULL); // this is just to keep gcc happy
+ 
+@@ -842,8 +843,12 @@ void RingBuffer::run(void)
+                     "Reading enough data to start playback");
+             }
+ 
+-            if (remotefile && livetvchain && livetvchain->HasNext())
++            if (!did_set_oldfile && remotefile && livetvchain &&
++                livetvchain->HasNext())
++            {
+                 remotefile->SetTimeout(true);
++                did_set_oldfile = true;
++            }
+ 
+             LOG(VB_FILE, LOG_DEBUG, LOC +
+                 QString("safe_read(...@%1, %2) -- begin")
+@@ -917,6 +922,7 @@ void RingBuffer::run(void)
+                     {
+                         livetvchain->SwitchToNext(true);
+                         setswitchtonext = true;
++                        did_set_oldfile = false;
+                     }
+                 }
+                 else
 diff --git a/mythtv/libs/libmythtv/tv_play.cpp b/mythtv/libs/libmythtv/tv_play.cpp
-index d1133c5..badcb03 100644
+index d1133c5..912b46f 100644
 --- a/mythtv/libs/libmythtv/tv_play.cpp
 +++ b/mythtv/libs/libmythtv/tv_play.cpp
 @@ -456,7 +456,7 @@ bool TV::StartTV(ProgramInfo *tvrec, uint flags)
@@ -12116,7 +12531,47 @@
  
      LOG(VB_PLAYBACK, LOG_INFO, LOC + "StartTV -- end");
  
-@@ -7066,7 +7066,7 @@ void TV::ChangeChannel(PlayerContext *ctx, uint chanid, const QString &chan)
+@@ -2172,7 +2172,9 @@ void TV::HandleStateChange(PlayerContext *mctx, PlayerContext *ctx)
+             if (reclist.size())
+             {
+                 RemoteEncoder *testrec = NULL;
+-                testrec = RemoteRequestFreeRecorderFromList(reclist);
++                vector<uint> excluded_cardids;
++                testrec = RemoteRequestFreeRecorderFromList(reclist,
++                                                            excluded_cardids);
+                 if (testrec && testrec->IsValidRecorder())
+                 {
+                     ctx->SetRecorder(testrec);
+@@ -6366,13 +6368,11 @@ void TV::DoSkipCommercials(PlayerContext *ctx, int direction)
+ void TV::SwitchSource(PlayerContext *ctx, uint source_direction)
+ {
+     QMap<uint,InputInfo> sources;
+-    vector<uint> cardids = RemoteRequestFreeRecorderList();
+     uint         cardid  = ctx->GetCardID();
+-    cardids.push_back(cardid);
+-    stable_sort(cardids.begin(), cardids.end());
+-
+     vector<uint> excluded_cardids;
+     excluded_cardids.push_back(cardid);
++    vector<uint> cardids = RemoteRequestFreeRecorderList(excluded_cardids);
++    stable_sort(cardids.begin(), cardids.end());
+ 
+     InfoMap info;
+     ctx->recorder->GetChannelInfo(info);
+@@ -6491,7 +6491,11 @@ void TV::SwitchCards(PlayerContext *ctx,
+     }
+ 
+     if (!reclist.empty())
+-        testrec = RemoteRequestFreeRecorderFromList(reclist);
++    {
++        vector<uint> excluded_cardids;
++        excluded_cardids.push_back(ctx->GetCardID());
++        testrec = RemoteRequestFreeRecorderFromList(reclist, excluded_cardids);
++    }
+ 
+     if (testrec && testrec->IsValidRecorder())
+     {
+@@ -7066,7 +7070,7 @@ void TV::ChangeChannel(PlayerContext *ctx, uint chanid, const QString &chan)
      bool getit = false;
      if (ctx->recorder)
      {
@@ -12125,6 +12580,220 @@
          {
              getit = true;
          }
+@@ -7127,7 +7131,9 @@ void TV::ChangeChannel(PlayerContext *ctx, uint chanid, const QString &chan)
+     if (reclist.size())
+     {
+         RemoteEncoder *testrec = NULL;
+-        testrec = RemoteRequestFreeRecorderFromList(reclist);
++        vector<uint> excluded_cardids;
++        excluded_cardids.push_back(ctx->GetCardID());
++        testrec = RemoteRequestFreeRecorderFromList(reclist, excluded_cardids);
+         if (!testrec || !testrec->IsValidRecorder())
+         {
+             ClearInputQueues(ctx, true);
+@@ -7838,7 +7844,7 @@ QSet<uint> TV::IsTunableOn(
+         excluded_cards.push_back(ctx->GetCardID());
+ 
+     uint sourceid = ChannelUtil::GetSourceIDForChannel(chanid);
+-    vector<uint> connected   = RemoteRequestFreeRecorderList();
++    vector<uint> connected   = RemoteRequestFreeRecorderList(excluded_cards);
+     vector<uint> interesting = CardUtil::GetCardIDs(sourceid);
+ 
+     // filter disconnected cards
+diff --git a/mythtv/libs/libmythtv/tvremoteutil.cpp b/mythtv/libs/libmythtv/tvremoteutil.cpp
+index d348d64..a73cc52 100644
+--- a/mythtv/libs/libmythtv/tvremoteutil.cpp
++++ b/mythtv/libs/libmythtv/tvremoteutil.cpp
+@@ -147,9 +147,48 @@ RemoteEncoder *RemoteRequestNextFreeRecorder(int curr)
+ /**
+  * Given a list of recorder numbers, return the first available.
+  */
+-RemoteEncoder *RemoteRequestFreeRecorderFromList(
+-    const QStringList &qualifiedRecorders)
++vector<uint> RemoteRequestFreeRecorderList(const vector<uint> &excluded_cardids)
+ {
++#if 0
++    vector<uint> list;
++
++    QStringList strlist("GET_FREE_RECORDER_LIST");
++
++    if (!gCoreContext->SendReceiveStringList(strlist, true))
++        return list;
++
++    QStringList::const_iterator it = strlist.begin();
++    for (; it != strlist.end(); ++it) 
++        list.push_back((*it).toUInt());
++
++    return list;
++#endif
++    vector<uint> result;
++    vector<uint> cards = CardUtil::GetCardList();
++    for (uint i = 0; i < cards.size(); i++)
++    {
++        vector<InputInfo> inputs =
++            RemoteRequestFreeInputList(cards[i], excluded_cardids);
++        for (uint j = 0; j < inputs.size(); j++)
++        {
++            if (find(result.begin(),
++                     result.end(),
++                     inputs[j].cardid) == result.end())
++                result.push_back(inputs[j].cardid);
++        }
++    }
++    QString msg("RemoteRequestFreeRecorderList returned {");
++    for (uint k = 0; k < result.size(); k++)
++        msg += QString(" %1").arg(result[k]);
++    msg += "}";
++    LOG(VB_CHANNEL, LOG_INFO, msg);
++    return result;
++}
++
++RemoteEncoder *RemoteRequestFreeRecorderFromList
++(const QStringList &qualifiedRecorders, const vector<uint> &excluded_cardids)
++{
++#if 0
+     QStringList strlist( "GET_FREE_RECORDER_LIST" );
+ 
+     if (!gCoreContext->SendReceiveStringList(strlist, true))
+@@ -169,6 +208,18 @@ RemoteEncoder *RemoteRequestFreeRecorderFromList(
+     }
+     // didn't find anything. just return NULL.
+     return NULL;
++#endif
++    vector<uint> freeRecorders =
++        RemoteRequestFreeRecorderList(excluded_cardids);
++    for (QStringList::const_iterator recIter = qualifiedRecorders.begin();
++         recIter != qualifiedRecorders.end(); ++recIter)
++    {
++        if (find(freeRecorders.begin(),
++                 freeRecorders.end(),
++                 (*recIter).toUInt()) != freeRecorders.end())
++            return RemoteGetExistingRecorder((*recIter).toInt());
++    }
++    return NULL;
+ }
+ 
+ RemoteEncoder *RemoteRequestRecorder(void)
+diff --git a/mythtv/libs/libmythtv/tvremoteutil.h b/mythtv/libs/libmythtv/tvremoteutil.h
+index b982e55..1a4af11 100644
+--- a/mythtv/libs/libmythtv/tvremoteutil.h
++++ b/mythtv/libs/libmythtv/tvremoteutil.h
+@@ -37,11 +37,12 @@ MTV_PUBLIC void RemoteStopRecording(const ProgramInfo *pginfo);
+ MTV_PUBLIC void RemoteCancelNextRecording(uint cardid, bool cancel);
+ MTV_PUBLIC RemoteEncoder *RemoteRequestRecorder(void);
+ MTV_PUBLIC RemoteEncoder *RemoteRequestNextFreeRecorder(int curr);
+-MTV_PUBLIC
+-RemoteEncoder *RemoteRequestFreeRecorderFromList(
+-    const QStringList &qualifiedRecorders);
++MTV_PUBLIC RemoteEncoder *RemoteRequestFreeRecorderFromList
++(const QStringList &qualifiedRecorders, const vector<uint> &excluded_cardids);
+ MTV_PUBLIC RemoteEncoder *RemoteGetExistingRecorder(const ProgramInfo *pginfo);
+ MTV_PUBLIC RemoteEncoder *RemoteGetExistingRecorder(int recordernum);
++MTV_PUBLIC vector<uint>
++RemoteRequestFreeRecorderList(const vector<uint> &excluded_cardids);
+ MTV_PUBLIC vector<InputInfo> RemoteRequestFreeInputList(
+     uint cardid, const vector<uint> &excluded_cardids);
+ MTV_PUBLIC InputInfo RemoteRequestBusyInputID(uint cardid);
+diff --git a/mythtv/libs/libmythtv/videoout_xv.cpp b/mythtv/libs/libmythtv/videoout_xv.cpp
+index f2f5827..01e7580 100644
+--- a/mythtv/libs/libmythtv/videoout_xv.cpp
++++ b/mythtv/libs/libmythtv/videoout_xv.cpp
+@@ -147,6 +147,7 @@ VideoOutputXv::VideoOutputXv()
+       xv_port(-1),      xv_hue_base(0),
+       xv_colorkey(0),   xv_draw_colorkey(false),
+       xv_chroma(0),     xv_set_defaults(false),
++      xv_use_picture_controls(true),
+ 
+       chroma_osd(NULL)
+ {
+@@ -610,6 +611,8 @@ bool VideoOutputXv::InitXVideo()
+             .arg(adaptor_name));
+ 
+     xv_hue_base = VideoOutput::CalcHueBase(adaptor_name);
++    xv_use_picture_controls =
++        adaptor_name != "Intel(R) Video Overlay";
+ 
+     bool foundimageformat = false;
+     int ids[] = { GUID_YV12_PLANAR, GUID_I420_PLANAR, GUID_IYUV_PLANAR, };
+@@ -854,7 +857,9 @@ bool VideoOutputXv::InitSetupBuffers(void)
+     if (xv_port && (VideoOutputSubType() >= XVideo))
+         save_port_attributes(xv_port);
+ 
+-    InitPictureAttributes();
++    // Initialize the picture controls if we need to..
++    if (xv_use_picture_controls)
++        InitPictureAttributes();
+ 
+     return true;
+ }
+diff --git a/mythtv/libs/libmythtv/videoout_xv.h b/mythtv/libs/libmythtv/videoout_xv.h
+index 8ba0317..c8297f2 100644
+--- a/mythtv/libs/libmythtv/videoout_xv.h
++++ b/mythtv/libs/libmythtv/videoout_xv.h
+@@ -153,6 +153,7 @@ class VideoOutputXv : public VideoOutput
+     bool                 xv_set_defaults;
+     buffer_map_t         xv_buffers;
+     bool                 xv_need_bobdeint_repaint;
++    bool                 xv_use_picture_controls;
+     QMap<PictureAttribute,int> xv_attribute_min;
+     QMap<PictureAttribute,int> xv_attribute_max;
+     QMap<PictureAttribute,int> xv_attribute_def;
+diff --git a/mythtv/libs/libmythtv/videooutbase.cpp b/mythtv/libs/libmythtv/videooutbase.cpp
+index 59e4bb1..443570f 100644
+--- a/mythtv/libs/libmythtv/videooutbase.cpp
++++ b/mythtv/libs/libmythtv/videooutbase.cpp
+@@ -1829,18 +1829,32 @@ void VideoOutput::InitDisplayMeasurements(uint width, uint height, bool resize)
+ 
+ int VideoOutput::CalcHueBase(const QString &adaptor_name)
+ {
++    int hue_adj = 50;
++
+     // XVideo adjustments
+     if ((adaptor_name == "ATI Radeon Video Overlay") ||
++        (adaptor_name == "XA G3D Textured Video") || /* ATI in VMWare*/
++        (adaptor_name == "Radeon Textured Video") || /* ATI */
++        (adaptor_name == "AMD Radeon AVIVO Video") || /* ATI */
+         (adaptor_name == "XV_SWOV" /* VIA 10K & 12K */) ||
+         (adaptor_name == "Savage Streams Engine" /* S3 Prosavage DDR-K */) ||
+-        (adaptor_name == "SIS 300/315/330 series Video Overlay"))
++        (adaptor_name == "SIS 300/315/330 series Video Overlay") ||
++        adaptor_name.toLower().contains("xvba")) /* VAAPI */
+     {
+-        return 50;
++        hue_adj = 50;
++    }
++    else if (adaptor_name.left(4) == "NV17") /* nVidia */
++    {
++        hue_adj = 0;
++    }
++    else
++    {
++        LOG(VB_GENERAL, LOG_INFO, LOC +
++            QString("CalcHueBase(%1): Unknown adaptor, hue may be wrong.")
++            .arg(adaptor_name));
++        LOG(VB_GENERAL, LOG_INFO, LOC +
++            "Please open a ticket if you need to adjust the hue.");
+     }
+ 
+-    // VAAPI
+-    if (adaptor_name.toLower().contains("xvba"))
+-        return 50;
+-
+-    return 0; //< nVidia normal
++    return hue_adj;
+ }
+diff --git a/mythtv/libs/libmythupnp/httprequest.cpp b/mythtv/libs/libmythupnp/httprequest.cpp
+index e0a93cc..4885de3 100644
+--- a/mythtv/libs/libmythupnp/httprequest.cpp
++++ b/mythtv/libs/libmythupnp/httprequest.cpp
+@@ -62,6 +62,7 @@ static MIMETypes g_MIMETypes[] =
+     { "qjs" , "application/javascript"     },
+     { "txt" , "text/plain"                 },
+     { "xml" , "text/xml"                   },
++    { "xslt", "text/xml"                   },
+     { "pdf" , "application/pdf"            },
+     { "avi" , "video/avi"                  },
+     { "css" , "text/css"                   },
 diff --git a/mythtv/programs/mythfrontend/guidegrid.cpp b/mythtv/programs/mythfrontend/guidegrid.cpp
 index 6dbf1aa..17d5fad 100644
 --- a/mythtv/programs/mythfrontend/guidegrid.cpp
@@ -12143,6 +12812,49 @@
              {
                  enter();
              }
+diff --git a/mythtv/programs/mythfrontend/scheduleeditor.cpp b/mythtv/programs/mythfrontend/scheduleeditor.cpp
+index 4f85c70..877371a 100644
+--- a/mythtv/programs/mythfrontend/scheduleeditor.cpp
++++ b/mythtv/programs/mythfrontend/scheduleeditor.cpp
+@@ -1476,12 +1476,7 @@ void MetadataOptions::PerformQuery()
+ 
+ void MetadataOptions::OnSearchListSelection(MetadataLookup *lookup)
+ {
+-    if (!lookup)
+-        return;
+-
+-    m_lookup = lookup;
+-
+-    m_metadataFactory->Lookup(lookup);
++    QueryComplete(lookup);
+ }
+ 
+ void MetadataOptions::OnImageSearchListSelection(ArtworkInfo info,
+diff --git a/mythtv/programs/mythtranscode/transcode.h b/mythtv/programs/mythtranscode/transcode.h
+index a99a871..ce5b909 100644
+--- a/mythtv/programs/mythtranscode/transcode.h
++++ b/mythtv/programs/mythtranscode/transcode.h
+@@ -1,9 +1,10 @@
++#include <QPointer>
+ #include "recordingprofile.h"
+ #include "fifowriter.h"
+ #include "transcodedefs.h"
+ #include "programtypes.h"
++#include "playercontext.h"
+ 
+-class PlayerContext;
+ class ProgramInfo;
+ class NuppelVideoRecorder;
+ class MythPlayer;
+@@ -49,7 +50,7 @@ class Transcode : public QObject
+     int                     keyframedist;
+     NuppelVideoRecorder    *nvr;
+     MythPlayer             *player;
+-    PlayerContext          *player_ctx;
++    QPointer<PlayerContext> player_ctx;
+     RingBuffer             *inRingBuffer;
+     RingBuffer             *outRingBuffer;
+     FIFOWriter             *fifow;
 diff --git a/mythtv/programs/mythutil/markuputils.cpp b/mythtv/programs/mythutil/markuputils.cpp
 index 94fc136..fee2df3 100644
 --- a/mythtv/programs/mythutil/markuputils.cpp


Index: mythtv.spec
===================================================================
RCS file: /cvs/free/rpms/mythtv/F-16/mythtv.spec,v
retrieving revision 1.89
retrieving revision 1.90
diff -u -r1.89 -r1.90
--- mythtv.spec	13 Apr 2012 21:18:34 -0000	1.89
+++ mythtv.spec	18 Apr 2012 20:44:54 -0000	1.90
@@ -86,7 +86,7 @@
 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
@@ -143,7 +143,7 @@
 Source1:   MythTV-mythweb-v%{version}-0-%{githash3}.tar.gz
 
 Patch0:    mythtv-0.25-fixes.patch
-#Patch1:    mythplugins-%{version}-fixes.patch
+#Patch1:    mythweb-%{version}-fixes.patch
 Patch2:    mythtv_0.25_gcc_4.7.patch
 
 Source10:  PACKAGE-LICENSING
@@ -352,16 +352,15 @@
 Requires:  mythtv-frontend    = %{version}-%{release}
 Requires:  mythtv-setup       = %{version}-%{release}
 Requires:  perl-MythTV        = %{version}-%{release}
+Requires:  php-MythTV         = %{version}-%{release}
 Requires:  python-MythTV      = %{version}-%{release}
 Requires:  mythplugins        = %{version}-%{release}
-
 Requires:  mysql-server >= 5, mysql >= 5
-# XMLTV is not yet packaged for rpmfusion
-#Requires: xmltv
+Requires:  xmltv
 
 # Generate the required mythtv-frontend-api version string here so we only
 # have to do it once.
-%define mythfeapiver %(echo %{version} | awk -F. '{print $1 "." $2}')
+%global mythfeapiver %(echo %{version} | awk -F. '{print $1 "." $2}')
 
 ################################################################################
 
@@ -522,6 +521,8 @@
 Provides:  mythtv-frontend-api = %{mythfeapiver}
 Obsoletes: mythcontrols        < %{version}-%{release}
 Provides:  mythcontrols        = %{version}-%{release}
+Obsoletes: mythvideo           < %{version}-%{release}
+Provides:  mythvideo           = %{version}-%{release}
 
 %description frontend
 MythTV provides a unified graphical interface for recording and viewing
@@ -781,6 +782,7 @@
 Requires:  php >= 5.1
 Requires:  php-mysql
 Requires:  php-process
+Requires:  php-MythTV
 
 %description -n mythweb
 The web interface to MythTV.
@@ -1175,7 +1177,7 @@
 
     mkdir -p %{buildroot}%{_sysconfdir}/httpd/conf.d
     cp %{SOURCE401} %{buildroot}%{_sysconfdir}/httpd/conf.d/
-# drop .htaccess file, settings handled in the above
+    # drop .htaccess file, settings handled in the above
     rm -f %{buildroot}%{_datadir}/mythweb/data/.htaccess
     popd
 %endif
@@ -1498,6 +1500,11 @@
 ################################################################################
 
 %changelog
+* Wed Apr 18 2012 Richard Shaw <hobbes1069 at gmail.com> - 0.25-2
+- Update to latest fixes/0.25.
+- Change --logfile to --logpath for init files.
+- Obsolete mythvideo in spec file.
+
 * Tue Mar 20 2012 Richard Shaw <hobbes1069 at gmail.com> - 0.25-1
 - Update to latest release 0.25.
 


More information about the rpmfusion-commits mailing list