Author: jarod
Update of /cvs/free/rpms/mythtv/F-12
In directory se02.es.rpmfusion.net:/tmp/cvs-serv10538
Modified Files:
mythbackend.init mythtv-0.23-svnfixes.patch mythtv.spec
Log Message:
* Mon Jun 21 2010 Jarod Wilson <jarod(a)wilsonet.com> 0.23-5
- Update to release-0-23-fixes branch, svn revision 25150
- Further improvements to run as non-root (rpmfusion bz#1295)
- One more try at a 32-bit x86 F11 i586 build w/both mmx and no cmov
Index: mythbackend.init
===================================================================
RCS file: /cvs/free/rpms/mythtv/F-12/mythbackend.init,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- mythbackend.init 18 Jun 2010 12:00:22 -0000 1.3
+++ mythbackend.init 21 Jun 2010 14:51:40 -0000 1.4
@@ -29,7 +29,8 @@
touch /var/run/mythbackend.pid
if [ "${MYTHBACKEND_USER}" != root ]; then
chown ${MYTHBACKEND_USER}:${MYTHBACKEND_USER} /var/run/mythbackend.pid
- /usr/bin/setfacl -m u:${MYTHBACKEND_USER}:rw- -R /dev/dvb/
+ /usr/bin/setfacl -m u:${MYTHBACKEND_USER}:rwx -R /dev/dvb/
+ /usr/bin/setfacl -m u:${MYTHBACKEND_USER}:rwx -R /dev/snd/
/usr/bin/setfacl -m u:${MYTHBACKEND_USER}:rw- /dev/video*
fi
export MYTHCONFDIR="$MYTHTV_HOME"
@@ -47,6 +48,7 @@
RETVAL=$?
if [ "${MYTHBACKEND_USER}" != root ]; then
/usr/bin/setfacl -x u:${MYTHBACKEND_USER} -R /dev/dvb/
+ /usr/bin/setfacl -x u:${MYTHBACKEND_USER} -R /dev/snd/
/usr/bin/setfacl -x u:${MYTHBACKEND_USER} /dev/video*
fi
echo
mythtv-0.23-svnfixes.patch:
VERSION | 1
bindings/perl/IO/Socket/INET/MythTV.pm | 4 -
bindings/perl/MythTV.pm | 11 +-
bindings/perl/MythTV/Channel.pm | 64 ++++++++--------
bindings/perl/MythTV/Program.pm | 4 -
bindings/perl/MythTV/Recording.pm | 4 -
bindings/perl/MythTV/StorageGroup.pm | 4 -
bindings/python/MythTV/MythData.py | 4 -
bindings/python/MythTV/MythFunc.py | 13 ++-
configure | 18 ++--
contrib/config_files/lirc/lircrc.native.example.mceusb2 | 2
contrib/icons/master_iconmap/channel_icons.pl | 4 -
contrib/maintenance/flush_deleted_recgroup.pl | 4 -
contrib/maintenance/optimize_mythdb.pl | 4 -
contrib/user_jobs/firewire_primer.pl | 4 -
contrib/user_jobs/mythlink.pl | 4 -
libs/libavcodec/libavcodec.pro | 5 -
libs/libmyth/audiooutput.h | 1
libs/libmyth/audiooutputbase.cpp | 5 -
libs/libmyth/audiooutputbase.h | 1
libs/libmyth/audiooutputpulse.cpp | 13 ++-
libs/libmyth/mediamonitor-darwin.cpp | 29 +++++--
libs/libmyth/mythcontext.cpp | 9 +-
libs/libmyth/schemawizard.cpp | 17 ++++
libs/libmythdb/mythdirs.cpp | 5 -
libs/libmythdb/mythsocket.cpp | 19 ++++
libs/libmythdb/mythsocket.h | 4 +
libs/libmythdb/mythsocketthread.cpp | 4 -
libs/libmythdb/mythversion.h | 6 -
libs/libmythdvdnav/libmythdvdnav.pro | 3
libs/libmythsoundtouch/AAFilter.cpp | 2
libs/libmythsoundtouch/AAFilter.h | 2
libs/libmythsoundtouch/BPMDetect.h | 2
libs/libmythsoundtouch/FIFOSampleBuffer.cpp | 2
libs/libmythsoundtouch/FIFOSampleBuffer.h | 2
libs/libmythsoundtouch/FIFOSamplePipe.h | 2
libs/libmythsoundtouch/FIRFilter.cpp | 2
libs/libmythsoundtouch/FIRFilter.h | 2
libs/libmythsoundtouch/RateTransposer.cpp | 2
libs/libmythsoundtouch/RateTransposer.h | 2
libs/libmythsoundtouch/STTypes.h | 2
libs/libmythsoundtouch/SoundTouch.cpp | 2
libs/libmythsoundtouch/SoundTouch.h | 2
libs/libmythsoundtouch/TDStretch.cpp | 2
libs/libmythsoundtouch/TDStretch.h | 2
libs/libmythsoundtouch/cpu_detect.h | 2
libs/libmythsoundtouch/cpu_detect_x86_gcc.cpp | 2
libs/libmythsoundtouch/mmx_gcc.cpp | 2
libs/libmythtv/NuppelVideoPlayer.cpp | 7 +
libs/libmythtv/NuppelVideoPlayer.h | 1
libs/libmythtv/avformatdecoder.cpp | 33 +++++++-
libs/libmythtv/dbcheck.cpp | 9 --
libs/libmythtv/jobqueue.h | 1
libs/libmythtv/tv_play.cpp | 19 +---
libs/libmythtv/tv_play.h | 2
libs/libmythtv/videoout_d3d.cpp | 4 -
libs/libmythtv/videoout_d3d.h | 2
libs/libmythtv/videoout_quartz.cpp | 9 +-
libs/libmythtv/videoout_quartz.h | 2
libs/libmythui/mythfontmanager.cpp | 6 -
libs/libmythui/mythmainwindow.cpp | 12 +--
libs/libmythui/mythsystem.cpp | 4 -
libs/libmythui/mythuitext.cpp | 12 +--
libs/libmythui/xmlparsebase.cpp | 6 -
libs/libswscale/libswscale.pro | 6 +
programs/mythbackend/filetransfer.cpp | 3
programs/mythbackend/main.cpp | 7 +
programs/mythbackend/mainserver.cpp | 11 --
programs/mythcommflag/main.cpp | 35 +++++++-
programs/mythtranscode/transcode.cpp | 5 +
programs/mythtv-setup/main.cpp | 2
settings.pro | 2
version.pro | 2
73 files changed, 324 insertions(+), 184 deletions(-)
Index: mythtv-0.23-svnfixes.patch
===================================================================
RCS file: /cvs/free/rpms/mythtv/F-12/mythtv-0.23-svnfixes.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- mythtv-0.23-svnfixes.patch 18 Jun 2010 12:00:23 -0000 1.3
+++ mythtv-0.23-svnfixes.patch 21 Jun 2010 14:51:40 -0000 1.4
@@ -406,6 +406,50 @@
QMAKE_CFLAGS_SHLIB =
}
+diff -Naurp mythtv-0.23-release/libs/libmyth/audiooutputbase.cpp
mythtv-0.23/libs/libmyth/audiooutputbase.cpp
+--- mythtv-0.23-release/libs/libmyth/audiooutputbase.cpp 2010-04-14 06:36:02.000000000
-0400
++++ mythtv-0.23/libs/libmyth/audiooutputbase.cpp 2010-06-18 06:50:18.720005000 -0400
+@@ -848,7 +848,8 @@ bool AudioOutputBase::AddSamples(char *b
+ {
+ // Convert to floats
+ short *buf_ptr = (short*)buffer;
+- for (int sample = 0; sample < samples * audio_channels; sample++)
++ int numSamples = (samples * abps) / sizeof(short);
++ for (int sample = 0; sample < numSamples; sample++)
+ {
+ src_in[sample] = (float)buf_ptr[sample] / (1.0 * 0x8000);
+ }
+@@ -861,7 +862,7 @@ bool AudioOutputBase::AddSamples(char *b
+ QString("Error occurred while resampling audio: %1")
+ .arg(src_strerror(error)));
+ src_float_to_short_array(src_data.data_out, (short int*)tmp_buff,
+- src_data.output_frames_gen*audio_channels);
++ (src_data.output_frames_gen*abps)/sizeof(short));
+
+ _AddSamples(tmp_buff, true, src_data.output_frames_gen, timecode);
+ }
+diff -Naurp mythtv-0.23-release/libs/libmyth/audiooutputbase.h
mythtv-0.23/libs/libmyth/audiooutputbase.h
+--- mythtv-0.23-release/libs/libmyth/audiooutputbase.h 2009-11-14 04:49:04.000000000
-0500
++++ mythtv-0.23/libs/libmyth/audiooutputbase.h 2010-06-18 06:50:18.720005000 -0400
+@@ -57,6 +57,7 @@ class AudioOutputBase : public AudioOutp
+ virtual void SetTimecode(long long timecode);
+ virtual bool IsPaused(void) const { return audio_actually_paused; }
+ virtual void Pause(bool paused);
++ virtual bool CanPassthrough(void) const { return !need_resampler; }
+
+ // Wait for all data to finish playing
+ virtual void Drain(void);
+diff -Naurp mythtv-0.23-release/libs/libmyth/audiooutput.h
mythtv-0.23/libs/libmyth/audiooutput.h
+--- mythtv-0.23-release/libs/libmyth/audiooutput.h 2009-10-13 22:57:05.000000000 -0400
++++ mythtv-0.23/libs/libmyth/audiooutput.h 2010-06-18 06:50:18.720005000 -0400
+@@ -49,6 +49,7 @@ class MPUBLIC AudioOutput : public Volum
+ virtual void SetTimecode(long long timecode) = 0;
+ virtual bool IsPaused(void) const = 0;
+ virtual void Pause(bool paused) = 0;
++ virtual bool CanPassthrough(void) const = 0;
+
+ // Wait for all data to finish playing
+ virtual void Drain(void) = 0;
diff -Naurp mythtv-0.23-release/libs/libmyth/audiooutputpulse.cpp
mythtv-0.23/libs/libmyth/audiooutputpulse.cpp
--- mythtv-0.23-release/libs/libmyth/audiooutputpulse.cpp 2009-11-16 11:18:35.000000000
-0500
+++ mythtv-0.23/libs/libmyth/audiooutputpulse.cpp 2010-06-07 23:31:50.923907000 -0400
@@ -429,6 +473,75 @@
soundcard_buffer_size = 16 * fragment_size;
buffer_settings.maxlength = soundcard_buffer_size;
buffer_settings.tlength = fragment_size * 4;
+diff -Naurp mythtv-0.23-release/libs/libmyth/mediamonitor-darwin.cpp
mythtv-0.23/libs/libmyth/mediamonitor-darwin.cpp
+--- mythtv-0.23-release/libs/libmyth/mediamonitor-darwin.cpp 2009-11-28
10:55:09.000000000 -0500
++++ mythtv-0.23/libs/libmyth/mediamonitor-darwin.cpp 2010-06-17 23:48:36.374058000 -0400
+@@ -1,7 +1,7 @@
+ /**
+ * \file mediamonitor-darwin.cpp
+ * \brief MythMediaMonitor for Darwin/Mac OS X.
+- * \version $Id$
++ * \version $Id$
+ * \author Andrew Kimpton, Nigel Pearson
+ */
+
+@@ -178,11 +178,11 @@ static char * getVolName(CFDictionaryRef
+
+ name = (CFStringRef)
+ CFDictionaryGetValue(diskDetails, kDADiskDescriptionVolumeNameKey);
+- if (name)
+- size = CFStringGetLength(name) + 1;
+- else
+- size = 9; // 'Untitled\0'
+
++ if (!name)
++ return NULL;
++
++ size = CFStringGetLength(name) + 1;
+ volName = (char *) malloc(size);
+ if (!volName)
+ {
+@@ -191,9 +191,11 @@ static char * getVolName(CFDictionaryRef
+ return NULL;
+ }
+
+- if (!name || !CFStringGetCString(name, volName, size,
+- kCFStringEncodingUTF8))
+- strcpy(volName, "Untitled");
++ if (!CFStringGetCString(name, volName, size, kCFStringEncodingUTF8))
++ {
++ free(volName);
++ return NULL;
++ }
+
+ return volName;
+ }
+@@ -291,8 +293,14 @@ void diskAppearedCallback(DADiskRef disk
+
+ // Get the volume and model name for more user-friendly interaction
+ volName = getVolName(details);
+- model = getModel(details);
++ if (!volName)
++ {
++ VERBOSE(VB_MEDIA, msg + "No volume name for dev " + BSDname);
++ CFRelease(details);
++ return;
++ }
+
++ model = getModel(details);
+ mediaType = MediaTypeForBSDName(BSDname);
+ isCDorDVD = (mediaType == MEDIATYPE_DVD) || (mediaType == MEDIATYPE_AUDIO);
+
+@@ -326,6 +334,9 @@ void diskChangedCallback(DADiskRef disk,
+ CFDictionaryRef details = DADiskCopyDescription(disk);
+ char *volName = getVolName(details);
+
++ VERBOSE(VB_MEDIA, QString("Disk %1 - changed name to '%2'.")
++ .arg(BSDname).arg(volName));
++
+ reinterpret_cast<MonitorThreadDarwin *>(context)
+ ->diskRename(BSDname, volName);
+ CFRelease(details);
diff -Naurp mythtv-0.23-release/libs/libmyth/mythcontext.cpp
mythtv-0.23/libs/libmyth/mythcontext.cpp
--- mythtv-0.23-release/libs/libmyth/mythcontext.cpp 2010-03-23 20:43:43.000000000 -0400
+++ mythtv-0.23/libs/libmyth/mythcontext.cpp 2010-05-14 18:39:42.189261000 -0400
@@ -511,6 +624,104 @@
confdir.replace("$HOME", QDir::homePath());
}
else
+diff -Naurp mythtv-0.23-release/libs/libmythdb/mythsocket.cpp
mythtv-0.23/libs/libmythdb/mythsocket.cpp
+--- mythtv-0.23-release/libs/libmythdb/mythsocket.cpp 2010-02-10 12:02:19.000000000
-0500
++++ mythtv-0.23/libs/libmythdb/mythsocket.cpp 2010-06-17 09:23:59.559532000 -0400
+@@ -34,6 +34,7 @@ MythSocketThread *MythSocket::s_readyrea
+
+ MythSocket::MythSocket(int socket, MythSocketCBs *cb)
+ : MSocketDevice(MSocketDevice::Stream), m_cb(cb),
++ m_useReadyReadCallback(true),
+ m_state(Idle), m_addr(), m_port(0),
+ m_ref_count(0), m_notifyread(false)
+ {
+@@ -200,6 +201,24 @@ void MythSocket::close(void)
+ }
+ }
+
++bool MythSocket::closedByRemote(void)
++{
++ fd_set rfds;
++ FD_ZERO(&rfds);
++ FD_SET(socket(), &rfds);
++
++ struct timeval to;
++ to.tv_sec = 0;
++ to.tv_usec = 1000;
++
++ int rval = select(socket() + 1, &rfds, NULL, NULL, &to);
++
++ if (rval > 0 && FD_ISSET(socket(), &rfds) &&
!bytesAvailable())
++ return true;
++
++ return false;
++}
++
+ qint64 MythSocket::readBlock(char *data, quint64 len)
+ {
+ VERBOSE(VB_SOCKET|VB_EXTRA, LOC + QString("readBlock(0x%1, %2) called")
+diff -Naurp mythtv-0.23-release/libs/libmythdb/mythsocket.h
mythtv-0.23/libs/libmythdb/mythsocket.h
+--- mythtv-0.23-release/libs/libmythdb/mythsocket.h 2009-11-16 11:18:35.000000000 -0500
++++ mythtv-0.23/libs/libmythdb/mythsocket.h 2010-06-17 09:23:59.559532000 -0400
+@@ -29,6 +29,7 @@ class MPUBLIC MythSocket : public MSocke
+ };
+
+ void close(void);
++ bool closedByRemote(void);
+ void deleteLater(void);
+
+ void UpRef(void);
+@@ -43,6 +44,8 @@ class MPUBLIC MythSocket : public MSocke
+
+ void setSocket(int socket, Type type = MSocketDevice::Stream);
+ void setCallbacks(MythSocketCBs *cb);
++ void useReadyReadCallback(bool useReadyReadCallback = true)
++ { m_useReadyReadCallback = useReadyReadCallback; }
+
+ qint64 readBlock(char *data, quint64 len);
+ qint64 writeBlock(const char *data, quint64 len);
+@@ -73,6 +76,7 @@ class MPUBLIC MythSocket : public MSocke
+ void setState(const State state);
+
+ MythSocketCBs *m_cb;
++ bool m_useReadyReadCallback;
+ State m_state;
+ QHostAddress m_addr;
+ quint16 m_port;
+diff -Naurp mythtv-0.23-release/libs/libmythdb/mythsocketthread.cpp
mythtv-0.23/libs/libmythdb/mythsocketthread.cpp
+--- mythtv-0.23-release/libs/libmythdb/mythsocketthread.cpp 2010-02-10 12:02:19.000000000
-0500
++++ mythtv-0.23/libs/libmythdb/mythsocketthread.cpp 2010-06-17 09:23:59.559532000 -0400
+@@ -153,12 +153,12 @@ void MythSocketThread::ReadyToBeRead(Myt
+ VERBOSE(VB_SOCKET, SLOC(sock) + "socket is readable");
+ int bytesAvail = sock->bytesAvailable();
+
+- if (bytesAvail == 0)
++ if (bytesAvail == 0 && sock->closedByRemote())
+ {
+ VERBOSE(VB_SOCKET, SLOC(sock) + "socket closed");
+ sock->close();
+ }
+- else if (sock->m_cb)
++ else if (bytesAvail > 0 && sock->m_cb &&
sock->m_useReadyReadCallback)
+ {
+ sock->m_notifyread = true;
+ VERBOSE(VB_SOCKET, SLOC(sock) + "calling m_cb->readyRead()");
+diff -Naurp mythtv-0.23-release/libs/libmythdb/mythversion.h
mythtv-0.23/libs/libmythdb/mythversion.h
+--- mythtv-0.23-release/libs/libmythdb/mythversion.h 2010-04-29 20:59:58.000000000 -0400
++++ mythtv-0.23/libs/libmythdb/mythversion.h 2010-06-17 09:23:59.559532000 -0400
+@@ -9,9 +9,9 @@
+ #endif
+
+ /// Update this whenever the plug-in API changes.
+-/// Including changes in the libmythdb, libmyth and libmythui class methods
+-/// used by plug-ins.
+-#define MYTH_BINARY_VERSION "0.23.20100429-1"
++/// Including changes in the libmythdb, libmyth, libmythtv, libmythav* and
++/// libmythui class methods used by plug-ins.
++#define MYTH_BINARY_VERSION "0.23.201000617-1"
+
+ /** \brief Increment this whenever the MythTV network protocol changes.
+ *
diff -Naurp mythtv-0.23-release/libs/libmythdvdnav/libmythdvdnav.pro
mythtv-0.23/libs/libmythdvdnav/libmythdvdnav.pro
--- mythtv-0.23-release/libs/libmythdvdnav/libmythdvdnav.pro 2009-10-15
11:47:54.000000000 -0400
+++ mythtv-0.23/libs/libmythdvdnav/libmythdvdnav.pro 2010-05-11 11:07:54.320600000 -0400
@@ -742,7 +953,7 @@
// $Id$
diff -Naurp mythtv-0.23-release/libs/libmythtv/avformatdecoder.cpp
mythtv-0.23/libs/libmythtv/avformatdecoder.cpp
--- mythtv-0.23-release/libs/libmythtv/avformatdecoder.cpp 2010-04-29 20:08:03.000000000
-0400
-+++ mythtv-0.23/libs/libmythtv/avformatdecoder.cpp 2010-06-10 00:02:51.816777000 -0400
++++ mythtv-0.23/libs/libmythtv/avformatdecoder.cpp 2010-06-18 06:50:18.720005000 -0400
@@ -1291,6 +1291,14 @@ static float normalized_fps(AVStream *st
fps = tmpfps;
}
@@ -818,6 +1029,14 @@
long long temppts = pts;
+@@ -4617,6 +4639,7 @@ bool AvFormatDecoder::DoPassThrough(cons
+ else if (ctx->codec_id == CODEC_ID_DTS)
+ passthru = allow_dts_passthru && !internal_vol;
+
++ passthru &= GetNVP()->CanPassthrough();
+ passthru &= !transcoding && !disable_passthru;
+ // Don't know any cards that support spdif clocked at < 44100
+ // Some US cable transmissions have 2ch 32k AC-3 streams
diff -Naurp mythtv-0.23-release/libs/libmythtv/dbcheck.cpp
mythtv-0.23/libs/libmythtv/dbcheck.cpp
--- mythtv-0.23-release/libs/libmythtv/dbcheck.cpp 2010-03-06 22:11:52.000000000 -0500
+++ mythtv-0.23/libs/libmythtv/dbcheck.cpp 2010-05-23 19:30:49.920201000 -0400
@@ -837,6 +1056,45 @@
// Pop up messages, questions, warnings, et c.
switch (DBup->PromptForUpgrade("TV", upgradeAllowed,
+diff -Naurp mythtv-0.23-release/libs/libmythtv/jobqueue.h
mythtv-0.23/libs/libmythtv/jobqueue.h
+--- mythtv-0.23-release/libs/libmythtv/jobqueue.h 2010-01-31 22:49:37.000000000 -0500
++++ mythtv-0.23/libs/libmythtv/jobqueue.h 2010-06-17 12:33:12.060417000 -0400
+@@ -2,6 +2,7 @@
+ #define JOBQUEUE_H_
+
+ #include <pthread.h>
++#include <sys/types.h>
+
+ #include <QWaitCondition>
+ #include <QObject>
+diff -Naurp mythtv-0.23-release/libs/libmythtv/NuppelVideoPlayer.cpp
mythtv-0.23/libs/libmythtv/NuppelVideoPlayer.cpp
+--- mythtv-0.23-release/libs/libmythtv/NuppelVideoPlayer.cpp 2010-04-27
22:54:52.000000000 -0400
++++ mythtv-0.23/libs/libmythtv/NuppelVideoPlayer.cpp 2010-06-18 06:50:18.720005000 -0400
+@@ -5134,6 +5134,13 @@ bool NuppelVideoPlayer::ToggleUpmix()
+ return false;
+ }
+
++bool NuppelVideoPlayer::CanPassthrough()
++{
++ if (audioOutput)
++ return audioOutput->CanPassthrough();
++ return false;
++}
++
+ void NuppelVideoPlayer::Zoom(ZoomDirection direction)
+ {
+ if (videoOutput)
+diff -Naurp mythtv-0.23-release/libs/libmythtv/NuppelVideoPlayer.h
mythtv-0.23/libs/libmythtv/NuppelVideoPlayer.h
+--- mythtv-0.23-release/libs/libmythtv/NuppelVideoPlayer.h 2010-03-08 19:33:51.000000000
-0500
++++ mythtv-0.23/libs/libmythtv/NuppelVideoPlayer.h 2010-06-18 06:50:18.720005000 -0400
+@@ -165,6 +165,7 @@ class MPUBLIC NuppelVideoPlayer : public
+ void ToggleAspectOverride(AspectOverrideMode aspectMode = kAspect_Toggle);
+ void ToggleAdjustFill(AdjustFillMode adjustfillMode = kAdjustFill_Toggle);
+ bool ToggleUpmix(void);
++ bool CanPassthrough(void);
+
+ // Gets
+ QSize GetVideoBufferSize(void) const { return video_dim; }
diff -Naurp mythtv-0.23-release/libs/libmythtv/tv_play.cpp
mythtv-0.23/libs/libmythtv/tv_play.cpp
--- mythtv-0.23-release/libs/libmythtv/tv_play.cpp 2010-04-27 22:54:52.000000000 -0400
+++ mythtv-0.23/libs/libmythtv/tv_play.cpp 2010-05-17 21:42:52.462765000 -0400
@@ -914,6 +1172,76 @@
void SwitchInputs(PlayerContext*, uint inputid);
void ToggleInputs(PlayerContext*, uint inputid = 0);
void SwitchCards(PlayerContext*,
+diff -Naurp mythtv-0.23-release/libs/libmythtv/videoout_d3d.cpp
mythtv-0.23/libs/libmythtv/videoout_d3d.cpp
+--- mythtv-0.23-release/libs/libmythtv/videoout_d3d.cpp 2010-03-06 22:11:52.000000000
-0500
++++ mythtv-0.23/libs/libmythtv/videoout_d3d.cpp 2010-06-19 01:57:23.850116000 -0400
+@@ -1252,13 +1252,13 @@ void VideoOutputD3D::Show(FrameScanType
+ SetThreadExecutionState(ES_SYSTEM_REQUIRED | ES_DISPLAY_REQUIRED);
+ }
+
+-void VideoOutputD3D::EmbedInWidget(WId wid, int x, int y, int w, int h)
++void VideoOutputD3D::EmbedInWidget(int x, int y, int w, int h)
+ {
+ if (windows[0].IsEmbedding())
+ return;
+
+ VideoOutput::EmbedInWidget(x, y, w, h);
+- m_hEmbedWnd = wid;
++ // TODO: Initialise m_hEmbedWnd?
+ }
+
+ void VideoOutputD3D::StopEmbedding(void)
+diff -Naurp mythtv-0.23-release/libs/libmythtv/videoout_d3d.h
mythtv-0.23/libs/libmythtv/videoout_d3d.h
+--- mythtv-0.23-release/libs/libmythtv/videoout_d3d.h 2010-02-03 10:39:11.000000000
-0500
++++ mythtv-0.23/libs/libmythtv/videoout_d3d.h 2010-06-18 03:11:40.067331000 -0400
+@@ -115,7 +115,7 @@ class VideoOutputD3D : public VideoOutpu
+ void UpdatePauseFrame(void);
+ void DrawUnusedRects(bool) {;}
+ void Zoom(ZoomDirection direction);
+- void EmbedInWidget(WId wid, int x, int y, int w, int h);
++ void EmbedInWidget(int x, int y, int w, int h);
+ void StopEmbedding(void);
+ bool hasFullScreenOSD(void) const { return m_d3d_osd; }
+ static QStringList GetAllowedRenderers(MythCodecID myth_codec_id,
+diff -Naurp mythtv-0.23-release/libs/libmythtv/videoout_quartz.cpp
mythtv-0.23/libs/libmythtv/videoout_quartz.cpp
+--- mythtv-0.23-release/libs/libmythtv/videoout_quartz.cpp 2010-03-06 22:11:52.000000000
-0500
++++ mythtv-0.23/libs/libmythtv/videoout_quartz.cpp 2010-06-18 03:11:40.067331000 -0400
+@@ -18,7 +18,7 @@
+ * on any screen except, you guessed it, the main screen.
+ *
+ * = REVISION
+- * $Id$
++ * $Id$
+ *
+ * = AUTHORS
+ * Nigel Pearson, Jeremiah Morris
+@@ -1598,11 +1598,10 @@ void VideoOutputQuartz::DeleteQuartzBuff
+ vbuffers.DeleteBuffers();
+ }
+
+-void VideoOutputQuartz::EmbedInWidget(WId wid, int x, int y, int w, int h)
++void VideoOutputQuartz::EmbedInWidget(int x, int y, int w, int h)
+ {
+- VERBOSE(VB_PLAYBACK,
+- (LOC + "EmbedInWidget(wid=%1, x=%2, y=%3, w=%4, h=%5)")
+- .arg(wid).arg(x).arg(y).arg(w).arg(h));
++ VERBOSE(VB_PLAYBACK, (LOC + "EmbedInWidget(x=%1, y=%2, w=%3, h=%4)")
++ .arg(x).arg(y).arg(w).arg(h));
+
+ if (windows[0].IsEmbedding())
+ return;
+diff -Naurp mythtv-0.23-release/libs/libmythtv/videoout_quartz.h
mythtv-0.23/libs/libmythtv/videoout_quartz.h
+--- mythtv-0.23-release/libs/libmythtv/videoout_quartz.h 2010-02-03 10:39:11.000000000
-0500
++++ mythtv-0.23/libs/libmythtv/videoout_quartz.h 2010-06-18 03:11:40.067331000 -0400
+@@ -34,7 +34,7 @@ class VideoOutputQuartz : public VideoOu
+ void Zoom(ZoomDirection direction);
+ void ToggleAdjustFill(AdjustFillMode adjustFill);
+
+- void EmbedInWidget(WId wid, int x, int y, int w, int h);
++ void EmbedInWidget(int x, int y, int w, int h);
+ void StopEmbedding(void);
+
+ DisplayInfo GetDisplayInfo(void);
diff -Naurp mythtv-0.23-release/libs/libmythui/mythfontmanager.cpp
mythtv-0.23/libs/libmythui/mythfontmanager.cpp
--- mythtv-0.23-release/libs/libmythui/mythfontmanager.cpp 2010-02-24 02:41:32.000000000
-0500
+++ mythtv-0.23/libs/libmythui/mythfontmanager.cpp 2010-06-08 18:21:22.370095000 -0400
@@ -994,6 +1322,38 @@
}
#endif
+diff -Naurp mythtv-0.23-release/libs/libmythui/mythuitext.cpp
mythtv-0.23/libs/libmythui/mythuitext.cpp
+--- mythtv-0.23-release/libs/libmythui/mythuitext.cpp 2010-03-28 16:39:26.000000000
-0400
++++ mythtv-0.23/libs/libmythui/mythuitext.cpp 2010-06-20 13:40:58.513407000 -0400
+@@ -347,13 +347,14 @@ void MythUIText::FillCutMessage()
+ if (isNumber && m_TemplateText.contains("%n"))
+ {
+ m_CutMessage = qApp->translate("ThemeUI",
+- qPrintable(m_TemplateText), "",
+- QCoreApplication::CodecForTr,
+- qAbs(value));
++ m_TemplateText.toUtf8(), NULL,
++ QCoreApplication::UnicodeUTF8,
++ qAbs(value));
+ }
+ else if (m_TemplateText.contains("%1"))
+ {
+- QString tmp = qApp->translate("ThemeUI",
qPrintable(m_TemplateText));
++ QString tmp = qApp->translate("ThemeUI",
m_TemplateText.toUtf8(),
++ NULL, QCoreApplication::UnicodeUTF8);
+ m_CutMessage = tmp.arg(m_Message);
+ }
+ }
+@@ -577,7 +578,8 @@ bool MythUIText::ParseElement(
+ if (element.attribute("lang","").isEmpty())
+ {
+ m_Message = qApp->translate("ThemeUI",
+- qPrintable(getFirstText(element)));
++ getFirstText(element).toUtf8(), NULL,
++ QCoreApplication::UnicodeUTF8);
+ }
+ else if (element.attribute("lang","").toLower() ==
+ GetMythUI()->GetLanguageAndVariant())
diff -Naurp mythtv-0.23-release/libs/libmythui/xmlparsebase.cpp
mythtv-0.23/libs/libmythui/xmlparsebase.cpp
--- mythtv-0.23-release/libs/libmythui/xmlparsebase.cpp 2010-03-02 12:36:30.000000000
-0500
+++ mythtv-0.23/libs/libmythui/xmlparsebase.cpp 2010-05-15 09:04:12.458568000 -0400
@@ -1042,6 +1402,19 @@
!profile:QMAKE_CFLAGS_DEBUG += -O
+diff -Naurp mythtv-0.23-release/programs/mythbackend/filetransfer.cpp
mythtv-0.23/programs/mythbackend/filetransfer.cpp
+--- mythtv-0.23-release/programs/mythbackend/filetransfer.cpp 2010-03-10
10:37:33.000000000 -0500
++++ mythtv-0.23/programs/mythbackend/filetransfer.cpp 2010-06-17 09:23:59.559532000
-0400
+@@ -41,6 +41,9 @@ FileTransfer::FileTransfer(QString &file
+ pginfo->pathname = pginfo->GetPlaybackURL();
+ pginfo->MarkAsInUse(true, kFileTransferInUseID);
+ }
++
++ if (write)
++ remote->useReadyReadCallback(false);
+ }
+
+ FileTransfer::~FileTransfer()
diff -Naurp mythtv-0.23-release/programs/mythbackend/main.cpp
mythtv-0.23/programs/mythbackend/main.cpp
--- mythtv-0.23-release/programs/mythbackend/main.cpp 2010-04-09 07:29:00.000000000
-0400
+++ mythtv-0.23/programs/mythbackend/main.cpp 2010-05-13 14:45:33.347492000 -0400
@@ -1075,6 +1448,28 @@
}
if (pidfs)
+diff -Naurp mythtv-0.23-release/programs/mythbackend/mainserver.cpp
mythtv-0.23/programs/mythbackend/mainserver.cpp
+--- mythtv-0.23-release/programs/mythbackend/mainserver.cpp 2010-04-10 17:19:56.000000000
-0400
++++ mythtv-0.23/programs/mythbackend/mainserver.cpp 2010-06-17 09:23:59.559532000 -0400
+@@ -1270,15 +1270,10 @@ void MainServer::HandleAnnounce(QStringL
+ else
+ filename = LocalFilePath(qurl, wantgroup);
+
+- if (writemode)
+- {
+- socket->setCallbacks(NULL);
+- ft = new FileTransfer(filename, socket, true);
+- }
+- else if (retries >= 0)
+- ft = new FileTransfer(filename, socket, usereadahead, retries);
++ if (retries < 0)
++ ft = new FileTransfer(filename, socket, writemode);
+ else
+- ft = new FileTransfer(filename, socket, false);
++ ft = new FileTransfer(filename, socket, usereadahead, retries);
+
+ sockListLock.lockForWrite();
+ fileTransferList.push_back(ft);
diff -Naurp mythtv-0.23-release/programs/mythcommflag/main.cpp
mythtv-0.23/programs/mythcommflag/main.cpp
--- mythtv-0.23-release/programs/mythcommflag/main.cpp 2010-02-10 12:02:19.000000000
-0500
+++ mythtv-0.23/programs/mythcommflag/main.cpp 2010-05-13 20:49:59.310980000 -0400
@@ -1141,6 +1536,21 @@
time_now = time(NULL);
if (!quiet)
+diff -Naurp mythtv-0.23-release/programs/mythtranscode/transcode.cpp
mythtv-0.23/programs/mythtranscode/transcode.cpp
+--- mythtv-0.23-release/programs/mythtranscode/transcode.cpp 2010-04-03
13:16:58.000000000 -0400
++++ mythtv-0.23/programs/mythtranscode/transcode.cpp 2010-06-18 06:50:18.720005000 -0400
+@@ -217,6 +217,11 @@ class AudioReencodeBuffer : public Audio
+ // Do nothing
+ return false;
+ }
++ virtual bool CanPassthrough(void) const
++ {
++ // Do nothing
++ return false;
++ }
+
+ virtual void SetSWVolume(int new_volume, bool save)
+ {
diff -Naurp mythtv-0.23-release/programs/mythtv-setup/main.cpp
mythtv-0.23/programs/mythtv-setup/main.cpp
--- mythtv-0.23-release/programs/mythtv-setup/main.cpp 2010-03-11 22:54:16.000000000
-0500
+++ mythtv-0.23/programs/mythtv-setup/main.cpp 2010-05-12 11:25:27.228749000 -0400
Index: mythtv.spec
===================================================================
RCS file: /cvs/free/rpms/mythtv/F-12/mythtv.spec,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -r1.69 -r1.70
--- mythtv.spec 18 Jun 2010 12:00:23 -0000 1.69
+++ mythtv.spec 21 Jun 2010 14:51:40 -0000 1.70
@@ -65,7 +65,7 @@
%define desktop_vendor RPMFusion
# SVN Revision number and branch ID
-%define _svnrev r25124
+%define _svnrev r25150
%define branch release-0-23-fixes
#
@@ -81,7 +81,7 @@
%if "%{branch}" == "trunk"
Release: 0.1.svn.%{_svnrev}%{?dist}
%else
-Release: 4%{?dist}
+Release: 5%{?dist}
%endif
# The primary license is GPLv2+, but bits are borrowed from a number of
@@ -966,8 +966,12 @@
--extra-cflags="%{optflags} -fomit-frame-pointer" \
--extra-cxxflags="%{optflags} -fomit-frame-pointer" \
%endif
-%ifarch %{ix86}
- --cpu=%{_target_cpu} --tune=%{_target_cpu} --enable-mmx \
+%ifarch i586
+ # --cpu=i586 will result in mmx being disabled
+ --cpu=pentium-mmx --tune=i586 --enable-mmx \
+%endif
+%ifarch i686
+ --cpu=i686 --tune=i686 --enable-mmx \
%endif
%if %{with_proc_opt}
--enable-proc-opt \
@@ -1479,6 +1483,11 @@
################################################################################
%changelog
+* Mon Jun 21 2010 Jarod Wilson <jarod(a)wilsonet.com> 0.23-5
+- Update to release-0-23-fixes branch, svn revision 25150
+- Further improvements to run as non-root (rpmfusion bz#1295)
+- One more try at a 32-bit x86 F11 i586 build w/both mmx and no cmov
+
* Wed Jun 16 2010 Jarod Wilson <jarod(a)wilsonet.com> 0.23-4
- Update to release-0-23-fixes branch, svn revision 25124
- Add anti-vuvuzela-filter patch from mythtv ticket #8568, because