rpms/mythtv/devel .cvsignore, 1.3, 1.4 mythtv.spec, 1.60, 1.61 sources, 1.36, 1.37
by Jarod Wilson
Author: jarod
Update of /cvs/free/rpms/mythtv/devel
In directory se02.es.rpmfusion.net:/tmp/cvs-serv31434
Modified Files:
.cvsignore mythtv.spec sources
Log Message:
* Mon Feb 01 2010 Jarod Wilson <jarod(a)wilsonet.com> 0.23-0.1.svn.r23433
- Update to svn trunk, revision 23433
- Drop dropped mythflix plugin
- Add new mythnetvision plugin
Index: .cvsignore
===================================================================
RCS file: /cvs/free/rpms/mythtv/devel/.cvsignore,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- .cvsignore 18 Dec 2008 02:15:41 -0000 1.3
+++ .cvsignore 2 Feb 2010 04:01:24 -0000 1.4
@@ -4,3 +4,5 @@
mythtv-0.21.tar.bz2
mythtv-0.22.tar.bz2
mythplugins-0.22.tar.bz2
+mythtv-0.23.tar.bz2
+mythplugins-0.23.tar.bz2
Index: mythtv.spec
===================================================================
RCS file: /cvs/free/rpms/mythtv/devel/mythtv.spec,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -r1.60 -r1.61
--- mythtv.spec 22 Nov 2009 05:51:22 -0000 1.60
+++ mythtv.spec 2 Feb 2010 04:01:24 -0000 1.61
@@ -65,8 +65,8 @@
%define desktop_vendor RPMFusion
# SVN Revision number and branch ID
-%define _svnrev r22880
-%define branch release
+%define _svnrev r23433
+%define branch trunk
#
# Basic descriptive tags for this package:
@@ -77,11 +77,11 @@
Group: Applications/Multimedia
# Version/Release info
-Version: 0.22
+Version: 0.23
%if "%{branch}" == "trunk"
Release: 0.1.svn.%{_svnrev}%{?dist}
%else
-Release: 2%{?dist}
+Release: 1%{?dist}
%endif
# The primary license is GPLv2+, but bits are borrowed from a number of
@@ -108,7 +108,6 @@
# The following options are disabled by default. Use --with to enable them
%define with_directfb %{?_with_directfb: 1} %{!?_with_directfb: 0}
-%define with_xvmcnvidia %{?_with_xvmcnvidia: 1} %{?!_with_xvmcnvidia: 0}
# FAAC is non-free, so we disable it by default
%define with_faac %{?_with_faac: 1} %{?!_with_faac: 0}
@@ -126,6 +125,7 @@
%define with_mythweather %{?_without_mythweather: 0} %{!?_without_mythweather: 1}
%define with_mythweb %{?_without_mythweb: 0} %{!?_without_mythweb: 1}
%define with_mythzoneminder %{?_without_mythzoneminder: 0} %{!?_without_mythzoneminder: 1}
+%define with_mythnetvision %{?_without_mythnetvision: 0} %{!?_without_mythnetvision: 1}
################################################################################
@@ -193,6 +193,7 @@
BuildRequires: flac-devel >= 1.0.4
BuildRequires: gsm-devel
BuildRequires: lame-devel
+BuildRequires: libdca-devel
BuildRequires: libdvdnav-devel
BuildRequires: libdvdread-devel >= 0.9.4
# nb: libdvdcss will be dynamically loaded if installed
@@ -226,10 +227,6 @@
BuildRequires: directfb-devel
%endif
-%if %{with_xvmcnvidia}
-BuildRequires: xorg-x11-drv-nvidia-devel
-%endif
-
%if %{with_vdpau}
BuildRequires: libvdpau-devel
%endif
@@ -286,6 +283,9 @@
%if %{with_mythzoneminder}
%endif
+%if %{with_mythnetvision}
+%endif
+
%endif
################################################################################
@@ -399,6 +399,7 @@
Requires: flac-devel >= 1.0.4
Requires: gsm-devel
Requires: lame-devel
+Requires: libdca-devel
Requires: libdvdnav-devel
Requires: libdvdread-devel >= 0.9.4
Requires: libfame-devel >= 0.9.0
@@ -431,10 +432,6 @@
Requires: directfb-devel
%endif
-%if %{with_xvmcnvidia}
-Requires: xorg-x11-drv-nvidia-devel
-%endif
-
%if %{with_vdpau}
Requires: libvdpau-devel
%endif
@@ -524,6 +521,9 @@
# mythphone is now DOA, but we need this for upgrade path preservation.
Provides: mythphone = %{version}-%{release}
Obsoletes: mythphone < %{version}-%{release}
+# same deal for mythflix
+Provides: mythflix = %{version}-%{release}
+Obsoletes: mythflix < %{version}-%{release}
%description common
MythTV provides a unified graphical interface for recording and viewing
@@ -585,11 +585,11 @@
Requires: mythgame = %{version}-%{release}
Requires: mythnews = %{version}-%{release}
Requires: mythbrowser = %{version}-%{release}
-Requires: mythflix = %{version}-%{release}
Requires: mytharchive = %{version}-%{release}
Requires: mythzoneminder = %{version}-%{release}
Requires: mythmovies = %{version}-%{release}
Requires: mythweb = %{version}-%{release}
+Requires: mythnetvision = %{version}-%{release}
%description -n mythplugins
This is a consolidation of all the official MythTV plugins that used to be
@@ -639,18 +639,6 @@
%endif
################################################################################
-%if %{with_mythflix}
-
-%package -n mythflix
-Summary: A NetFlix module for MythTV
-Group: Applications/Multimedia
-Requires: mythtv-frontend-api = %{mythfeapiver}
-
-%description -n mythflix
-MythFlix is a NetFlix queue manager for MythTV.
-
-%endif
-################################################################################
%if %{with_mythgallery}
%package -n mythgallery
@@ -809,6 +797,20 @@
%endif
################################################################################
+%if %{with_mythnetvision}
+
+%package -n mythnetvision
+Summary: A MythTV module for Internet video on demand
+Group: Applications/Multimedia
+Requires: mythtv-frontend-api = %{mythfeapiver}
+Requires: mythbrowser = %{version}-%{release}
+
+%description -n mythnetvision
+A MythTV module that supports searching and browsing of Internet video
+on demand content.
+
+%endif
+################################################################################
# End of plugins
%endif
@@ -924,7 +926,6 @@
--enable-pthreads \
--enable-ffmpeg-pthreads \
--enable-joystick-menu \
- --enable-audio-arts \
--enable-audio-alsa \
--enable-audio-oss \
--enable-audio-jack \
@@ -945,9 +946,6 @@
--enable-libmp3lame \
--enable-libtheora --enable-libvorbis \
--enable-libxvid \
-%if %{with_xvmcnvidia}
- --xvmc-lib=XvMCNVIDIA_dynamic \
-%endif
%if %{with_vdpau}
--enable-vdpau \
%endif
@@ -984,6 +982,7 @@
# Insert rpm version-release for mythbackend --version output
find . -name version.pro -exec sed -i -e 's,myth_binary_version = \$\${BINARY_VERSION},myth_binary_version = %{version}-%{release} (%{_svnrev}),g' {} \;
+ find . -name version.pro -exec sed -i -e 's,svnversion \$\${SVNTREEDIR},echo "%{version}-%{release}",g' {} \;
# Make
make %{?_smp_mflags}
@@ -1028,11 +1027,6 @@
%else
--disable-mythbrowser \
%endif
- %if %{with_mythflix}
- --enable-mythflix \
- %else
- --disable-mythflix \
- %endif
%if %{with_mythgallery}
--enable-mythgallery \
--enable-exif \
@@ -1082,7 +1076,11 @@
%else
--disable-mythzoneminder \
%endif
- --enable-opengl \
+ %if %{with_mythnetvision}
+ --enable-mythnetvision \
+ %else
+ --disable-mythnetvision \
+ %endif--enable-opengl \
--enable-libvisual \
--enable-fftw \
--enable-sdl \
@@ -1205,7 +1203,7 @@
%pre backend
# Add the "mythtv" user, with membership in the video group
/usr/sbin/useradd -c "mythtvbackend User" \
- -s /sbin/nologin -r -d %{_varlibdir}/mythtv -G video mythtv 2> /dev/null || :
+ -s /sbin/nologin -r -d %{_localstatedir}/lib/mythtv -G video mythtv 2> /dev/null || :
%post backend
/sbin/chkconfig --add mythbackend
@@ -1320,10 +1318,8 @@
%defattr(-,root,root,-)
%dir %{python_sitelib}/MythTV/
%{python_sitelib}/MythTV/*
-%if 0%{?fedora} >= 9
%{python_sitelib}/MythTV-*.egg-info
%endif
-%endif
%if %{with_plugins}
%files -n mythplugins
@@ -1355,19 +1351,6 @@
%{_datadir}/mythtv/i18n/mythbrowser_*.qm
%endif
-%if %{with_mythflix}
-%files -n mythflix
-%defattr(-,root,root,-)
-%doc mythplugins-%{version}/mythflix/AUTHORS
-%doc mythplugins-%{version}/mythflix/COPYING
-%doc mythplugins-%{version}/mythflix/README
-%{_libdir}/mythtv/plugins/libmythflix.so
-%{_datadir}/mythtv/mythflix
-%{_datadir}/mythtv/i18n/mythflix_*.qm
-%{_datadir}/mythtv/i18n/mythflix_*.ts
-%{_datadir}/mythtv/netflix_menu.xml
-%endif
-
%if %{with_mythgallery}
%files -n mythgallery
%defattr(-,root,root,-)
@@ -1480,11 +1463,27 @@
%{_datadir}/mythtv/i18n/mythzoneminder_*.qm
%endif
+%if %{with_mythnetvision}
+%files -n mythnetvision
+%defattr(-,root,root,-)
+%doc mythplugins-%{version}/mythnetvision/AUTHORS
+%doc mythplugins-%{version}/mythnetvision/ChangeLog
+%doc mythplugins-%{version}/mythnetvision/README
+%{_libdir}/mythtv/plugins/libmythnetvision.so
+%{_datadir}/mythtv/mythnetvision
+%{_datadir}/mythtv/netvisionmenu.xml
+%endif
+
%endif
################################################################################
%changelog
+* Mon Feb 01 2010 Jarod Wilson <jarod(a)wilsonet.com> 0.23-0.1.svn.r23433
+- Update to svn trunk, revision 23433
+- Drop dropped mythflix plugin
+- Add new mythnetvision plugin
+
* Sat Nov 21 2009 Jarod Wilson <jarod(a)wilsonet.com> 0.22-2
- Update to release-0-22-fixes branch, svn revision 22880
Index: sources
===================================================================
RCS file: /cvs/free/rpms/mythtv/devel/sources,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -r1.36 -r1.37
--- sources 9 Nov 2009 15:11:56 -0000 1.36
+++ sources 2 Feb 2010 04:01:24 -0000 1.37
@@ -2,3 +2,5 @@
be3ab99952c2a3a135a7c4af90b08f15 mythtv-setup.png
09c8fa1058399a0c5db169a71561e985 mythplugins-0.22.tar.bz2
e8f8b5b6a51cd7be700e215b2a1bf2c0 mythtv-0.22.tar.bz2
+1cf28d6c34b08c5b8d8880f01eb2b0f2 mythtv-0.23.tar.bz2
+a29a6e07f72eef93247b07aad7e8ddf3 mythplugins-0.23.tar.bz2
14 years, 9 months
rpms/k3b-extras-freeworld/devel .cvsignore, 1.5, 1.6 k3b-extras-freeworld.spec, 1.13, 1.14 sources, 1.5, 1.6
by Rex Dieter
Author: rdieter
Update of /cvs/free/rpms/k3b-extras-freeworld/devel
In directory se02.es.rpmfusion.net:/tmp/cvs-serv30319
Modified Files:
.cvsignore k3b-extras-freeworld.spec sources
Log Message:
* Mon Feb 01 2010 Rex Dieter <rdieter(a)fedoraproject.org> - 1.70.0-1
- k3b-1.70.0 (beta1)
Index: .cvsignore
===================================================================
RCS file: /cvs/free/rpms/k3b-extras-freeworld/devel/.cvsignore,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- .cvsignore 18 Dec 2009 20:57:11 -0000 1.5
+++ .cvsignore 2 Feb 2010 03:51:29 -0000 1.6
@@ -1 +1 @@
-k3b-1.69.0alpha4.tar.bz2
+k3b-1.70.0beta1.tar.bz2
Index: k3b-extras-freeworld.spec
===================================================================
RCS file: /cvs/free/rpms/k3b-extras-freeworld/devel/k3b-extras-freeworld.spec,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- k3b-extras-freeworld.spec 18 Dec 2009 20:57:11 -0000 1.13
+++ k3b-extras-freeworld.spec 2 Feb 2010 03:51:29 -0000 1.14
@@ -1,10 +1,10 @@
-%define pre alpha4
+%define pre beta1
Name: k3b-extras-freeworld
Summary: Additional codec plugins for the k3b CD/DVD burning application
Epoch: 1
-Version: 1.69.0
+Version: 1.70.0
Release: 1%{?dist}
Group: Applications/Archiving
@@ -91,6 +91,9 @@
%changelog
+* Mon Feb 01 2010 Rex Dieter <rdieter(a)fedoraproject.org> - 1.70.0-1
+- k3b-1.70.0 (beta1)
+
* Fri Dec 18 2009 Rex Dieter <rdieter(a)fedoraproject.org> - 1.69.0-1
- k3b-1.69.0 (alpha4)
Index: sources
===================================================================
RCS file: /cvs/free/rpms/k3b-extras-freeworld/devel/sources,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- sources 18 Dec 2009 20:57:11 -0000 1.5
+++ sources 2 Feb 2010 03:51:29 -0000 1.6
@@ -1 +1 @@
-8e7c15565c806cb028e11764f8781b97 k3b-1.69.0alpha4.tar.bz2
+ccfe9c3a59f12707cec3d0c6e5ef78d4 k3b-1.70.0beta1.tar.bz2
14 years, 9 months
rpms/mythtv/F-10 mythplugins-0.22-svnfixes.patch, 1.1, 1.2 mythtv-0.22-svnfixes.patch, 1.1, 1.2 mythtv.spec, 1.25, 1.26
by Jarod Wilson
Author: jarod
Update of /cvs/free/rpms/mythtv/F-10
In directory se02.es.rpmfusion.net:/tmp/cvs-serv3119
Modified Files:
mythplugins-0.22-svnfixes.patch mythtv-0.22-svnfixes.patch
mythtv.spec
Log Message:
* Mon Feb 01 2010 Jarod Wilson <jarod(a)wilsonet.com> 0.22-5
- Update to release-0-22-fixes branch, svn revision 23433
- Fix mythtv user creation (rpm fusion bz#1027)
mythplugins-0.22-svnfixes.patch:
mythgallery/mythgallery/imageview.cpp | 2
mythmovies/ignyte/ignytegrabber.cpp | 2
mythmusic/mythmusic/main.cpp | 11
mythnews/mythnews/mythnews.cpp | 75 -
mythnews/mythnews/newssite.cpp | 12
mythvideo/mtd/dvdprobe.cpp | 56
mythvideo/mythvideo/main.cpp | 1
mythvideo/mythvideo/playercommand.cpp | 9
mythvideo/mythvideo/scripts/jamu-example.conf | 176 +-
mythvideo/mythvideo/scripts/jamu.py | 1307 +++++++++++-------
mythvideo/mythvideo/scripts/ttvdb.py | 51
mythvideo/mythvideo/videodlg.cpp | 26
mythvideo/mythvideo/videolist.cpp | 4
mythweather/mythweather/main.cpp | 4
mythweather/mythweather/scripts/uk_bbc/BBCLocation.pm | 27
15 files changed, 1100 insertions(+), 663 deletions(-)
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.1 -r 1.2 mythplugins-0.22-svnfixes.patch
Index: mythplugins-0.22-svnfixes.patch
===================================================================
RCS file: /cvs/free/rpms/mythtv/F-10/mythplugins-0.22-svnfixes.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- mythplugins-0.22-svnfixes.patch 22 Nov 2009 05:48:26 -0000 1.1
+++ mythplugins-0.22-svnfixes.patch 2 Feb 2010 02:58:37 -0000 1.2
@@ -1,3 +1,211 @@
+Index: mythplugins/mythweather/mythweather/scripts/uk_bbc/BBCLocation.pm
+===================================================================
+--- mythplugins/mythweather/mythweather/scripts/uk_bbc/BBCLocation.pm (revision 22751)
++++ mythplugins/mythweather/mythweather/scripts/uk_bbc/BBCLocation.pm (working copy)
+@@ -12,19 +12,17 @@
+
+ sub Search {
+
+- my $base_url = 'http://news.bbc.co.uk/weather/forecast/';
+- my $world_base_url = $base_url . '?lowgraphics=true&search=';
+- my $local_base_url = $base_url . '?lowgraphics=true&type=county_state&search=';
++ my $base_url = 'http://news.bbc.co.uk/weather/util/search/Search.xhtml?';
++ my $world_base_url = $base_url . 'lowgraphics=true®ion=world&search=';
++ my $local_base_url = $base_url . 'lowgraphics=true®ion=uk&search=';
+
+ my $search_string = shift;
+
+ my $world_response = get $world_base_url . $search_string;
+- die unless defined $world_response;
+ my $local_response = get $local_base_url . $search_string;
+- die unless defined $local_response;
+
+- &parseResults($world_response);
+- &parseResults($local_response);
++ &parseResults($world_response) if defined($world_response);
++ &parseResults($local_response) if defined($local_response);
+
+ if ( ($resultcount > 0 ) && ($#searchresults < 0) ) {
+ foreach my $url (@resulturl) {
+@@ -40,8 +38,6 @@
+ sub parseResults {
+ my $response = shift;
+ my $isresults = 0;
+- my $havename = 0;
+- my $haveid = 0;
+ my $resultline = "";
+
+ foreach (split("\n", $response)) {
+@@ -59,14 +55,14 @@
+ $resultcount = $1 if (/<strong>There \w{2,3} (\d*) forecasts? matching/);
+
+ # Collect result URLs
+- if (/<a id=\"result_\d*\" href \=\"?.*search\=.*/) {
++ if (/<a id=\"result_\d*\" .* href \=\"?.*search\=.*/) {
+ $url = $_;
+ $url =~ s/.*href \=\"(.*)\".*/$1/s;
+ push (@resulturl, $url);
+ }
+
+ # Collect location IDs and location names
+- elsif (/<a id=\"result_\d*\" href \=\"\/weather\/forecast\//) {
++ elsif (/<a id=\"result_\d*\" .* href \=\"\/weather\/forecast\//) {
+ $locid = $_;
+ $locid =~ s/.*\/weather\/forecast\/(\d{0,5})\?.*/$1/s;
+
+@@ -74,14 +70,11 @@
+ $locname =~ s/.*<a id=\"result_\d*\".*>(.*)<\/a>.*/$1/s;
+
+ $resultline = $locid . "::" . $locname;
+- push (@searchresults, $resultline);
++ if (! grep(/^$locid/, @searchresults)) {
++ push (@searchresults, $resultline);
++ }
+ }
+ }
+-
+- if ($havename && $haveid) {
+- push (@searchresults, $resultline);
+- last;
+- }
+ }
+
+ return @searchresults;
+Index: mythplugins/mythweather/mythweather/main.cpp
+===================================================================
+--- mythplugins/mythweather/mythweather/main.cpp (revision 23433)
++++ mythplugins/mythweather/mythweather/main.cpp (working copy)
+@@ -142,8 +142,10 @@
+ menu->setKillable();
+ if (menu->foundTheme())
+ {
+- if (LCD *lcd = LCD::Get())
++ if (LCD *lcd = LCD::Get()) {
++ lcd->setFunctionLEDs(FUNC_NEWS, false);
+ lcd->switchToTime();
++ }
+
+ GetMythMainWindow()->GetMainStack()->AddScreen(menu);
+ return 0;
+Index: mythplugins/mythmovies/ignyte/ignytegrabber.cpp
+===================================================================
+--- mythplugins/mythmovies/ignyte/ignytegrabber.cpp (revision 22751)
++++ mythplugins/mythmovies/ignyte/ignytegrabber.cpp (working copy)
+@@ -19,7 +19,7 @@
+ "</tns:GetTheatersAndMovies>\n"
+ "</soap:Body>\n"
+ "</soap:Envelope>\n");
+- QString server("ignyte.com");
++ QString server("www.ignyte.com");
+ QString path("/webservices/ignyte.whatsshowing.webservice/moviefunctions.asmx");
+ QString soapAction("http://www.ignyte.com/whatsshowing/GetTheatersAndMovies");
+ ms->doSoapRequest(server, path, soapAction, fields);
+Index: mythplugins/mythvideo/mtd/dvdprobe.cpp
+===================================================================
+--- mythplugins/mythvideo/mtd/dvdprobe.cpp (revision 22751)
++++ mythplugins/mythvideo/mtd/dvdprobe.cpp (working copy)
+@@ -47,6 +47,10 @@
+ }
+ }
+
++#define LOC_ERR QString("dvdprobe.cpp, Error: ")
++#define LOC_WARN QString("dvdprobe.cpp, Warning: ")
++#define LOC QString("dvdprobe.cpp: ")
++
+ DVDSubTitle::DVDSubTitle(int subtitle_id, const QString &a_language) :
+ id(subtitle_id), language(a_language.toUtf8())
+ {
+@@ -431,25 +435,47 @@
+ // Before touching libdvdread stuff
+ // (below), see if there's actually
+ // a drive with media in it
+- QFile dvdDevice(device);
+- if (!dvdDevice.exists())
+ {
+- // Device doesn't exist. Silly user
+- Reset();
+- return false;
++ QFile dvdDevice(device);
++ if (!dvdDevice.exists())
++ {
++ // Device doesn't exist. Silly user
++ Reset();
++ return false;
++ }
+ }
+
+- if (!dvdDevice.open(QIODevice::ReadOnly))
++ // On UNIX like file systems O_NONBLOCK should be used to
++ // indicate we don't want to do reading or writing, we
++ // just want to issue some ioctls. This will prevent the
++ // OS from helping out and shearing the fingers off any
++ // person's attempting to place a DVD in the drive when
++ // we call open.
++ int flags = O_RDONLY;
++#ifdef O_NONBLOCK
++ flags |= O_NONBLOCK;
++#endif
++
++ // Ideally we can open with exclusive flag.
++#ifdef O_EXCL
++ flags |= O_EXCL;
++#endif
++
++ int drive_handle = open(device.toLocal8Bit().constData(), flags);
++
++#ifdef O_EXCL
++ // If this failed with exclusive, try without.
++ if (drive_handle < 0)
+ {
+- // Can't open device.
+- Reset();
+- return false;
++ flags &= ~O_EXCL;
++ drive_handle = open(device.toLocal8Bit().constData(), flags);
+ }
++#endif
+
+- int drive_handle = dvdDevice.handle();
+-
+- if (drive_handle == -1)
++ if (drive_handle < 0)
+ {
++ VERBOSE(VB_IMPORTANT, LOC +
++ "Failed to open file descriptor for DVD." + ENO);
+ Reset();
+ return false;
+ }
+@@ -470,6 +496,7 @@
+ if (status < 0)
+ {
+ Reset();
++ close(drive_handle);
+ return false;
+ }
+
+@@ -483,6 +510,7 @@
+ // 3 = not ready
+ //
+ Reset();
++ close(drive_handle);
+ return false;
[...2630 lines suppressed...]
+-# The type of data is specified by the key value.
++# The type of data is specified by the key value.
+ # Valid keys are:
+ # poster - This is also know as a cover art or a cover image
+ # fanart
+@@ -485,32 +500,31 @@
+ # metadate - The video file's text description e.g. plot, director ... etc
+ #
+ # NOTE: At this time there is no TV Secondary source scripts available unless you write your own.
+-#
++#
+ [movies-secondary-sources]
+ #poster: /usr/local/share/mythtv/mythvideo/scripts/fetch_poster.py -P %%(imdb)s
+-#fanart:
++#fanart:
+ #metadata: /usr/local/share/mythtv/mythvideo/scripts/imdbpy.py -D %%(imdb)s
+
+ [tv-secondary-sources]
+ #poster:
+-#fanart:
++#fanart:
+ #banner:
+ #metadata:
+ # END Secondary sources section--------------------------------------------------------------------
+
+ # START regex section------------------------------------------------------------------------------
+-# NOTE: If you do not understand regex expressions DO NOT USE this section.
++# NOTE: If you do not understand regex expressions DO NOT USE this section.
+ # This section adds to the default regex strings used to parse file names when extracting
+ # the following: series name, season number, episode number
+ # NOTE: The "% (self.config['valid_filename_chars_regex'])" part of the string is assumed
+ # NOTE: ANY % percent sign in the expression must be doubled (e.g. a % must be changed to %% )
+ # NOTE: The key value (e.g. "regex01") must be unique for each value.
+ # NOTE: DO NOT surround the regex pattern string with the traditional ''' three single quotes
+-#
+-[regex]
++#
++[regex]
+ # This is an example video file name "foo_S01_12" where:
+ # series name is "foo", season number starts at "S" and episode number starts after '_'
+ # foo_S01_12
+ #regex01: ^(.+?)[ \._\-][Ss]([0-9]+)_([0-9]+)[^\\/]*$
+ # END regex section------------------------------------------------------------------------------
+-
Index: mythplugins/mythvideo/mythvideo/scripts/ttvdb.py
===================================================================
--- mythplugins/mythvideo/mythvideo/scripts/ttvdb.py (revision 22751)
@@ -3097,9 +4120,24 @@
if (!host.isEmpty())
{
QString combFileName = QString("%1.%2").arg(title)
+Index: mythplugins/mythvideo/mythvideo/videolist.cpp
+===================================================================
+--- mythplugins/mythvideo/mythvideo/videolist.cpp (revision 22751)
++++ mythplugins/mythvideo/mythvideo/videolist.cpp (working copy)
+@@ -1231,6 +1231,10 @@
+ prefix_to_node_map ptnm;
+
+ QStringList dirs = GetVideoDirs();
++
++ if (!dirs.size())
++ return;
++
+ QString test_prefix(dirs[0]);
+
+ meta_dir_node *video_root = &m_metadata_tree;
Index: mythplugins/mythvideo/mythvideo/main.cpp
===================================================================
---- mythplugins/mythvideo/mythvideo/main.cpp (revision 22880)
+--- mythplugins/mythvideo/mythvideo/main.cpp (revision 23433)
+++ mythplugins/mythvideo/mythvideo/main.cpp (working copy)
@@ -517,6 +517,7 @@
{
@@ -3111,7 +4149,7 @@
GetMythMainWindow()->GetMainStack()->AddScreen(diag);
Index: mythplugins/mythvideo/mythvideo/playercommand.cpp
===================================================================
---- mythplugins/mythvideo/mythvideo/playercommand.cpp (revision 22880)
+--- mythplugins/mythvideo/mythvideo/playercommand.cpp (revision 23433)
+++ mythplugins/mythvideo/mythvideo/playercommand.cpp (working copy)
@@ -5,6 +5,7 @@
#include <mythtv/libmythui/mythmainwindow.h>
@@ -3141,6 +4179,44 @@
}
QString VideoPlayerCommand::GetCommandDisplayName() const
+Index: mythplugins/mythnews/mythnews/newssite.cpp
+===================================================================
+--- mythplugins/mythnews/mythnews/newssite.cpp (revision 22751)
++++ mythplugins/mythnews/mythnews/newssite.cpp (working copy)
+@@ -314,6 +314,7 @@
+ QDomNode enclosureNode = itemNode.namedItem("enclosure");
+ QString enclosure = QString::null;
+ QString enclosure_type = QString::null;
++ QString thumbnail = QString::null;
+ if (!enclosureNode.isNull())
+ {
+ QDomAttr enclosureURL = enclosureNode.toElement()
+@@ -324,8 +325,16 @@
+
+ QDomAttr enclosureType = enclosureNode.toElement()
+ .attributeNode("type");
+- if (!enclosureType.isNull())
++ if (!enclosureType.isNull())
++ {
+ enclosure_type = enclosureType.value();
++
++ if (enclosure_type == "image/jpeg")
++ {
++ thumbnail = enclosure;
++ enclosure = QString::null;
++ }
++ }
+ }
+
+ //////////////////////////////////////////////////////////////
+@@ -341,7 +350,6 @@
+ itemNode = mediaGroup;
+
+ QDomNode thumbNode = itemNode.namedItem("media:thumbnail");
+- QString thumbnail = QString::null;
+ if (!thumbNode.isNull())
+ {
+ QDomAttr thumburl = thumbNode.toElement().attributeNode("url");
Index: mythplugins/mythnews/mythnews/mythnews.cpp
===================================================================
--- mythplugins/mythnews/mythnews/mythnews.cpp (revision 22751)
@@ -3192,7 +4268,17 @@
if (m_thumbnailImage)
m_thumbnailImage->Hide();
}
-@@ -352,31 +359,43 @@
+@@ -315,6 +322,9 @@
+ }
+ else
+ {
++ if (m_thumbnailImage)
++ m_thumbnailImage->Hide();
++
+ if (!site->imageURL().isEmpty())
+ {
+ QString fileprefix = GetConfDir();
+@@ -352,31 +362,43 @@
}
}
@@ -3250,7 +4336,7 @@
if (site)
{
if (m_titleText)
-@@ -388,7 +407,7 @@
+@@ -388,7 +410,7 @@
if (m_thumbnailImage && m_thumbnailImage->IsVisible())
m_thumbnailImage->Hide();
@@ -3259,7 +4345,7 @@
m_podcastImage->Show();
if (!site->imageURL().isEmpty())
-@@ -715,7 +734,8 @@
+@@ -715,7 +737,8 @@
.arg(formatSize(progress, 2))
.arg(formatSize(total, 2))
.arg(floor(fProgress*100));
@@ -3271,7 +4357,7 @@
usleep(100000);
Index: mythplugins/mythmusic/mythmusic/main.cpp
===================================================================
---- mythplugins/mythmusic/mythmusic/main.cpp (revision 22880)
+--- mythplugins/mythmusic/mythmusic/main.cpp (revision 23433)
+++ mythplugins/mythmusic/mythmusic/main.cpp (working copy)
@@ -21,6 +21,7 @@
#include <mythtv/compat.h>
@@ -3305,25 +4391,9 @@
}
int mythplugin_run(void)
-Index: mythplugins/mythweather/mythweather/main.cpp
-===================================================================
---- mythplugins/mythweather/mythweather/main.cpp (revision 22880)
-+++ mythplugins/mythweather/mythweather/main.cpp (working copy)
-@@ -142,8 +142,10 @@
- menu->setKillable();
- if (menu->foundTheme())
- {
-- if (LCD *lcd = LCD::Get())
-+ if (LCD *lcd = LCD::Get()) {
-+ lcd->setFunctionLEDs(FUNC_NEWS, false);
- lcd->switchToTime();
-+ }
-
- GetMythMainWindow()->GetMainStack()->AddScreen(menu);
- return 0;
Index: mythplugins/mythgallery/mythgallery/imageview.cpp
===================================================================
---- mythplugins/mythgallery/mythgallery/imageview.cpp (revision 22880)
+--- mythplugins/mythgallery/mythgallery/imageview.cpp (revision 23433)
+++ mythplugins/mythgallery/mythgallery/imageview.cpp (working copy)
@@ -152,9 +152,11 @@
mythtv-0.22-svnfixes.patch:
bindings/python/MythTV/MythTV.py | 26
configure | 5
contrib/channel_changers/6200ch/6200ch.c | 2
contrib/imports/mirobridge/mirobridge.py | 657 +++++-----
contrib/imports/mirobridge/mirobridge/mirobridge-example.conf | 105 -
docs/index.html | 2
docs/mythtv-HOWTO-11.html | 22
docs/mythtv-HOWTO-23.html | 8
docs/mythtv-HOWTO-5.html | 8
docs/mythtv-HOWTO-singlehtml.html | 40
docs/mythtv-HOWTO.html | 2
docs/mythtv-HOWTO.sgml | 61
docs/mythtv-HOWTO.txt | 152 +-
keys.txt | 27
libs/libmyth/audiooutputbase.cpp | 6
libs/libmyth/mythcontext.cpp | 5
libs/libmyth/mythdialogs.h | 10
libs/libmyth/programlist.cpp | 4
libs/libmyth/uilistbtntype.cpp | 3
libs/libmythdb/lcddevice.cpp | 90 +
libs/libmythdb/lcddevice.h | 86 +
libs/libmythdvdnav/dvdnav/dvdnav.c | 21
libs/libmythdvdnav/dvdnav/dvdnav.h | 5
libs/libmythdvdnav/dvdnav/vm/vm.c | 35
libs/libmythdvdnav/dvdnav/vm/vm.h | 1
libs/libmythtv/DVDRingBuffer.cpp | 46
libs/libmythtv/DVDRingBuffer.h | 7
libs/libmythtv/NuppelVideoPlayer.cpp | 46
libs/libmythtv/NuppelVideoPlayer.h | 3
libs/libmythtv/avformatdecoder.cpp | 133 +-
libs/libmythtv/firewiredevice.cpp | 3
libs/libmythtv/hdhrstreamhandler.cpp | 6
libs/libmythtv/mpeg/dvbdescriptors.h | 11
libs/libmythtv/osd.cpp | 2
libs/libmythtv/playercontext.cpp | 35
libs/libmythtv/recordinglist.cpp | 4
libs/libmythtv/recordingrule.cpp | 2
libs/libmythtv/tv_play.cpp | 21
libs/libmythtv/tv_rec.cpp | 5
libs/libmythtv/util-vdpau.cpp | 27
libs/libmythtv/videodisplayprofile.cpp | 27
libs/libmythtv/videodisplayprofile.h | 1
libs/libmythtv/videoout_xv.cpp | 2
libs/libmythui/DisplayResScreen.cpp | 19
libs/libmythui/mythmainwindow.cpp | 21
libs/libmythui/mythuibuttontree.cpp | 2
libs/libmythui/mythuihelper.cpp | 2
programs/mythbackend/main.cpp | 9
programs/mythbackend/scheduler.cpp | 10
programs/mythfilldatabase/main.cpp | 6
programs/mythfrontend/globalsettings.cpp | 54
programs/mythfrontend/guidegrid.cpp | 25
programs/mythfrontend/playbackbox.cpp | 1
programs/mythfrontend/statusbox.cpp | 4
programs/scripts/database/mythconverg_backup.pl | 4
programs/scripts/database/mythconverg_restore.pl | 34
themes/default-wide/recordings-ui.xml | 2
themes/default-wide/schedule-ui.xml | 6
themes/default/base.xml | 6
themes/default/recordings-ui.xml | 2
themes/default/schedule-ui.xml | 6
61 files changed, 1279 insertions(+), 698 deletions(-)
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.1 -r 1.2 mythtv-0.22-svnfixes.patch
Index: mythtv-0.22-svnfixes.patch
===================================================================
RCS file: /cvs/free/rpms/mythtv/F-10/mythtv-0.22-svnfixes.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- mythtv-0.22-svnfixes.patch 22 Nov 2009 05:48:26 -0000 1.1
+++ mythtv-0.22-svnfixes.patch 2 Feb 2010 02:58:37 -0000 1.2
@@ -65,6 +65,33 @@
</textarea>
<imagetype name="preview">
+Index: mythtv/themes/default/base.xml
+===================================================================
+--- mythtv/themes/default/base.xml (revision 22751)
++++ mythtv/themes/default/base.xml (working copy)
+@@ -49,11 +49,11 @@
+ </font>
+
+ <font name="basesmallblue" from="basesmall">
+- <color>#0492A7</color>
++ <color>#54d6e9</color>
+ </font>
+
+ <font name="basesmallred" from="basesmall">
+- <color>#800900</color>
++ <color>#ff6b48</color>
+ </font>
+
+ <font name="basemediumgrey" from="basemedium">
+@@ -65,7 +65,7 @@
+ </font>
+
+ <font name="basemediumred" from="basemedium">
+- <color>#800900</color>
++ <color>#ff6b48</color>
+ </font>
+
+ <font name="basemediumyellow" from="basemedium">
Index: mythtv/themes/default-wide/schedule-ui.xml
===================================================================
--- mythtv/themes/default-wide/schedule-ui.xml (revision 22751)
@@ -950,6 +977,580 @@
delete the selected view.
Program Finder
+Index: mythtv/libs/libmythtv/NuppelVideoPlayer.cpp
+===================================================================
+--- mythtv/libs/libmythtv/NuppelVideoPlayer.cpp (revision 22751)
++++ mythtv/libs/libmythtv/NuppelVideoPlayer.cpp (working copy)
+@@ -183,7 +183,7 @@
+ video_frame_rate(29.97f), video_aspect(4.0f / 3.0f),
+ forced_video_aspect(-1),
+ m_scan(kScan_Interlaced), m_scan_locked(false),
+- m_scan_tracker(0),
++ m_scan_tracker(0), m_scan_initialized(false),
+ keyframedist(30),
+ // Prebuffering (RingBuffer) control
+ prebuffering(false), prebuffer_tries(0), prebuffer_tries_total(0),
+@@ -244,7 +244,8 @@
+ decoder_lock(QMutex::Recursive),
+ next_play_speed(1.0f), next_normal_speed(true),
+ play_speed(1.0f), normal_speed(true),
+- frame_interval((int)(1000000.0f / 30)), ffrew_skip(1),
++ frame_interval((int)(1000000.0f / 30)), m_frame_interval(0),
++ ffrew_skip(1),
+ // Audio and video synchronization stuff
+ videosync(NULL), delay(0),
+ vsynctol(30/4), avsync_delay(0),
+@@ -544,6 +545,7 @@
+ audio_lock.lock();
+ if (audioOutput && unpauseaudio)
+ audio_paused = false;
++
+ audio_lock.unlock();
+ if (player_ctx->buffer)
+ player_ctx->buffer->Unpause();
+@@ -577,9 +579,11 @@
+ void NuppelVideoPlayer::PauseVideo(bool wait)
+ {
+ QMutexLocker locker(&pauseUnpauseLock);
+- video_actually_paused = false;
++
++ if (wait)
++ video_actually_paused = false;
+ pausevideo = true;
+-
++
+ for (uint i = 0; wait && !video_actually_paused; i++)
+ {
+ videoThreadPaused.wait(&pauseUnpauseLock, 250);
+@@ -607,6 +611,9 @@
+ if ((i % 10) == 9)
+ VERBOSE(VB_IMPORTANT, "Waited too long for video out to unpause");
+ }
++
++ if (videoOutput)
++ videoOutput->ExposeEvent();
+ }
+
+ void NuppelVideoPlayer::SetVideoActuallyPaused(bool val)
+@@ -1071,15 +1078,21 @@
+ if (!videoOutput || !videosync)
+ return; // hopefully this will be called again later...
+
++ if (m_scan_initialized &&
++ m_scan == scan &&
++ m_frame_interval == frame_interval)
++ return;
++
+ m_scan_locked = (scan != kScan_Detect);
+
+- if (scan == m_scan)
+- return;
++ m_scan_initialized = true;
++ m_frame_interval = frame_interval;
+
+ bool interlaced = is_interlaced(scan);
+ if (interlaced && !m_deint_possible)
+ {
+ m_scan = scan;
++ videosync->SetFrameInterval(frame_interval, false);
+ return;
+ }
+
+@@ -1113,11 +1126,8 @@
+ if (kScan_Progressive == scan)
+ {
+ m_double_process = false;
+- if (m_double_framerate)
+- {
+- m_double_framerate = false;
+- videosync->SetFrameInterval(frame_interval, false);
+- }
++ m_double_framerate = false;
++ videosync->SetFrameInterval(frame_interval, false);
+ videoOutput->SetDeinterlacingEnabled(false);
+ VERBOSE(VB_PLAYBACK, "Disabled deinterlacing");
+ }
+@@ -2587,9 +2597,11 @@
+ "\t\t\tdoubling video frame interval to slow down.").arg(diverge));
+ }
+
++ audio_lock.lock();
+ if (audioOutput && normal_speed)
+ {
+ long long currentaudiotime = audioOutput->GetAudiotime();
++ audio_lock.unlock();
+ #if 0
+ VERBOSE(VB_PLAYBACK+VB_TIMESTAMP, QString(
+ "A/V timecodes audio %1 video %2 frameinterval %3 "
+@@ -2652,7 +2664,9 @@
+ avsync_avg = 0;
+ avsync_oldavg = 0;
+ }
+- }
++ }
++ else
++ audio_lock.unlock();
+ }
+
+ void NuppelVideoPlayer::ShutdownAVSync(void)
+@@ -3073,7 +3087,7 @@
+ continue;
+ }
+
+- if (!pausevideo && nbframes == 1)
++ if (!video_actually_paused && nbframes == 1)
+ {
+ dvd_stillframe_showing = true;
+ PauseVideo(false);
+@@ -6848,8 +6862,12 @@
+ QString msg = "";
+
+ if (decoder)
++ {
+ msg = decoder->GetTrackDesc(type, GetTrack(type));
+-
++
++ if (player_ctx->buffer->isDVD())
++ player_ctx->buffer->DVD()->SetTrack(type, trackNo);
++ }
+ if (osd)
+ osd->SetSettingsText(msg, 3);
+ }
+Index: mythtv/libs/libmythtv/util-vdpau.cpp
+===================================================================
+--- mythtv/libs/libmythtv/util-vdpau.cpp (revision 22751)
++++ mythtv/libs/libmythtv/util-vdpau.cpp (working copy)
+@@ -28,14 +28,35 @@
+
+ #define ARSIZE(x) (sizeof(x) / sizeof((x)[0]))
+
++static const QString kVDPAUWarning =
++"WARNING - please read the following carefully:-\n\n"
++"* The VDPAU device has reported that you have run out of video memory. *\n"
++"* MythTV requires at least 512Mb of video memory for full functionality. *\n"
++"* If you are using an integrated GPU, please ensure you have allocated *\n"
++"* the maximum amount of shared memory in the BIOS settings. *\n"
++"* Systems with only 256Mb of video memory are not supported. *\n\n"
[...2873 lines suppressed...]
++ dirpath2 = u"%s%s" % (copy_dir, u'folder.png')
if os.path.isfile(dirpath) or os.path.isfile(dirpath2): # See if a folder cover already exists
pass
else:
@@ -3062,7 +4772,23 @@
else:
try: # Miro Channel icon copy for the new subdirectory
useImageMagick(u'convert "%s" "%s"' % (video[u'channel_icon'], dirpath))
-@@ -2655,7 +2697,7 @@
+@@ -2641,21 +2728,21 @@
+ # Gracefully close the Miro database and shutdown the Miro Front and Back ends
+ app.controller.shutdown()
+ time.sleep(5) # Let the shutdown processing complete
+- sys.exit(False)
++ sys.exit(1)
+
+ # Copy the Miro video file
+ save_video_filename = video[u'videoFilename'] # This filename is needed later for deleting in Miro
+ ext = getExtention(video[u'videoFilename'])
+ if ext.lower() == u'm4v':
+ ext = u'mpg'
+- filepath = u"%s%s - %s.%s" % (channels_to_copy[dir_key], video[u'channelTitle'], video[u'title'], ext)
++ filepath = u"%s%s - %s.%s" % (copy_dir, sanitiseFileName(video[u'channelTitle']), sanitiseFileName(video[u'title']), ext)
+ if simulation:
+ logger.info(u"Simulation: Copying the Miro video (%s) to the MythVideo directory (%s)." % (video[u'videoFilename'], filepath))
+ else:
try: # Miro video copied into a MythVideo directory
shutil.copy2(video[u'videoFilename'], filepath)
statistics[u'Miros_MythVideos_copied']+=1
@@ -3071,7 +4797,13 @@
video[u'videoFilename'] = filepath.replace(storagegroups[u'mythvideo'], u'')
else:
video[u'videoFilename'] = filepath
-@@ -2669,7 +2711,7 @@
+@@ -2664,51 +2751,51 @@
+ # Gracefully close the Miro database and shutdown the Miro Front and Back ends
+ app.controller.shutdown()
+ time.sleep(5) # Let the shutdown processing complete
+- sys.exit(False)
++ sys.exit(1)
+
# Copy the Channel or item's icon
if video[u'channel_icon'] and not video[u'channelTitle'].lower() in channel_icon_override:
pass
@@ -3080,33 +4812,75 @@
if video[u'item_icon']:
video[u'channel_icon'] = video[u'item_icon']
if video[u'channel_icon']:
-@@ -2689,7 +2731,7 @@
- except OSError:
- pass
- shutil.copy2(video[u'channel_icon'], filepath)
+ ext = getExtention(video[u'channel_icon'])
+ if video[u'channelTitle'].lower() in channel_icon_override:
+- filepath = u"%s%s - %s%s.%s" % (vid_graphics_dirs[u'posterdir'], video[u'channelTitle'], video[u'title'], graphic_suffix[u'posterdir'], ext)
++ filepath = u"%s%s - %s%s.%s" % (vid_graphics_dirs[u'posterdir'], sanitiseFileName(video[u'channelTitle']), sanitiseFileName(video[u'title']), graphic_suffix[u'posterdir'], ext)
+ else:
+- filepath = u"%s%s%s.%s" % (vid_graphics_dirs[u'posterdir'], video[u'channelTitle'], graphic_suffix[u'posterdir'], ext)
+- # There may already be a Channel icon available or it is a symlink which needs to be replaced
+- if not os.path.isfile(filepath) or os.path.islink(filepath):
+- if simulation:
+- logger.info(u"Simulation: Copying the Channel Icon (%s) to the poster directory (%s)." % (video[u'channel_icon'], filepath))
++ filepath = u"%s%s%s.%s" % (vid_graphics_dirs[u'posterdir'], sanitiseFileName(video[u'channelTitle']), graphic_suffix[u'posterdir'], ext)
++ # There may already be a Channel icon available or it is a symlink which needs to be replaced
++ if not os.path.isfile(filepath) or os.path.islink(filepath):
++ if simulation:
++ logger.info(u"Simulation: Copying the Channel Icon (%s) to the poster directory (%s)." % (video[u'channel_icon'], filepath))
++ else:
++ try: # Miro Channel icon copied into a MythVideo directory
++ try: # Remove any old symlink file
++ os.remove(filepath)
++ except OSError:
++ pass
++ shutil.copy2(video[u'channel_icon'], filepath)
++ if u'posterdir' in storagegroups.keys() and not local_only:
++ video[u'channel_icon'] = filepath.replace(storagegroups[u'posterdir'], u'')
++ else:
++ video[u'channel_icon'] = filepath
++ except:
++ logger.critical(u"Copying the Channel Icon (%s) to the poster directory (%s).\n This maybe a permissions error (mirobridge.py does not have permission to write to the directory)." % (video[u'channel_icon'], filepath))
++ # Gracefully close the Miro database and shutdown the Miro Front and Back ends
++ app.controller.shutdown()
++ time.sleep(5) # Let the shutdown processing complete
++ sys.exit(1)
+ else:
+- try: # Miro Channel icon copied into a MythVideo directory
+- try: # Remove any old symlink file
+- os.remove(filepath)
+- except OSError:
+- pass
+- shutil.copy2(video[u'channel_icon'], filepath)
- if u'posterdir' in storagegroups.keys():
-+ if u'posterdir' in storagegroups.keys() and not local_only:
- video[u'channel_icon'] = filepath.replace(storagegroups[u'posterdir'], u'')
- else:
- video[u'channel_icon'] = filepath
-@@ -2700,14 +2742,14 @@
- time.sleep(5) # Let the shutdown processing complete
- sys.exit(False)
- else:
+- video[u'channel_icon'] = filepath.replace(storagegroups[u'posterdir'], u'')
+- else:
+- video[u'channel_icon'] = filepath
+- except:
+- logger.critical(u"Copying the Channel Icon (%s) to the poster directory (%s).\n This maybe a permissions error (mirobridge.py does not have permission to write to the directory)." % (video[u'channel_icon'], filepath))
+- # Gracefully close the Miro database and shutdown the Miro Front and Back ends
+- app.controller.shutdown()
+- time.sleep(5) # Let the shutdown processing complete
+- sys.exit(False)
+- else:
- if u'posterdir' in storagegroups.keys():
-+ if u'posterdir' in storagegroups.keys() and not local_only:
- video[u'channel_icon'] = filepath.replace(storagegroups[u'posterdir'], u'')
- else:
- video[u'channel_icon'] = filepath
+- video[u'channel_icon'] = filepath.replace(storagegroups[u'posterdir'], u'')
+- else:
+- video[u'channel_icon'] = filepath
++ if u'posterdir' in storagegroups.keys() and not local_only:
++ video[u'channel_icon'] = filepath.replace(storagegroups[u'posterdir'], u'')
++ else:
++ video[u'channel_icon'] = filepath
# There may already be a Screenshot available or it is a symlink which needs to be replaced
if video[u'screenshot']:
- ext = getExtention(video[u'screenshot'])
+- filepath = u"%s%s - %s%s.%s" % (vid_graphics_dirs[u'episodeimagedir'], video[u'channelTitle'], video[u'title'], graphic_suffix[u'episodeimagedir'], ext)
+ ext = getExtention(video[u'screenshot'])
- filepath = u"%s%s - %s%s.%s" % (vid_graphics_dirs[u'episodeimagedir'], video[u'channelTitle'], video[u'title'], graphic_suffix[u'episodeimagedir'], ext)
++ filepath = u"%s%s - %s%s.%s" % (vid_graphics_dirs[u'episodeimagedir'], sanitiseFileName(video[u'channelTitle']), sanitiseFileName(video[u'title']), graphic_suffix[u'episodeimagedir'], ext)
else:
filepath = u''
-@@ -2724,7 +2766,7 @@
+
+@@ -2724,7 +2811,7 @@
pass
shutil.copy2(video[u'screenshot'], filepath)
displayMessage(u"Copied Miro screenshot file (%s) to MythVideo (%s)" % (video[u'screenshot'], filepath))
@@ -3115,9 +4889,12 @@
video[u'screenshot'] = filepath.replace(storagegroups[u'episodeimagedir'], u'')
else:
video[u'screenshot'] = filepath
-@@ -2735,17 +2777,16 @@
+@@ -2733,19 +2820,18 @@
+ # Gracefully close the Miro database and shutdown the Miro Front and Back ends
+ app.controller.shutdown()
time.sleep(5) # Let the shutdown processing complete
- sys.exit(False)
+- sys.exit(False)
++ sys.exit(1)
elif video[u'screenshot']:
- if u'episodeimagedir' in storagegroups.keys():
+ if u'episodeimagedir' in storagegroups.keys() and not local_only:
@@ -3136,7 +4913,7 @@
# Gracefully close the Miro database and shutdown the Miro Front and Back ends
app.controller.shutdown()
time.sleep(5) # Let the shutdown processing complete
-@@ -2756,7 +2797,7 @@
+@@ -2756,7 +2842,7 @@
#
# Check if the user does not want any channels Added to the "Watch Recordings" screen
@@ -3145,7 +4922,13 @@
for video in unwatched:
watched.append(video)
unwatched = []
-@@ -2780,7 +2821,7 @@
+@@ -2775,12 +2861,12 @@
+ displayMessage(u"There are no Miro unwatched video items to add as MythTV Recorded videos.")
+ if not updateMythRecorded(unwatched):
+ logger.critical(u"Updating MythTV Recording with Miro video files failed." % str(base_video_dir))
+- sys.exit(False)
++ sys.exit(1)
+
#
# Add and delete MythVideo records for played Miro Videos
# Add and delete symbolic links to Miro Videos and subdirectories
@@ -3154,7 +4937,21 @@
#
if len(channel_watch_only): # If the user does not want any channels moved to MythVideo exit
if channel_watch_only[0].lower() == u'all':
-@@ -2808,4 +2849,3 @@
+@@ -2791,7 +2877,7 @@
+ displayMessage(u"There are no Miro watched items to add to MythVideo")
+ if not updateMythVideo(watched):
+ logger.critical(u"Updating MythVideo with Miro video files failed.")
+- sys.exit(False)
++ sys.exit(1)
+
+ printStatistics()
+ return True
+@@ -2804,8 +2890,7 @@
+ #
+ if myapp.alreadyrunning():
+ print u'\nMiro Bridge is already running only one instance can run at a time\n\n'
+- sys.exit(False)
++ sys.exit(1)
main()
displayMessage(u"Miro Bridge Processing completed")
Index: mythtv.spec
===================================================================
RCS file: /cvs/free/rpms/mythtv/F-10/mythtv.spec,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- mythtv.spec 22 Nov 2009 05:48:26 -0000 1.25
+++ mythtv.spec 2 Feb 2010 02:58:37 -0000 1.26
@@ -65,7 +65,7 @@
%define desktop_vendor RPMFusion
# SVN Revision number and branch ID
-%define _svnrev r22880
+%define _svnrev r23433
%define branch release
#
@@ -81,7 +81,7 @@
%if "%{branch}" == "trunk"
Release: 0.1.svn.%{_svnrev}%{?dist}
%else
-Release: 2%{?dist}
+Release: 5%{?dist}
%endif
# The primary license is GPLv2+, but bits are borrowed from a number of
@@ -1205,7 +1205,7 @@
%pre backend
# Add the "mythtv" user, with membership in the video group
/usr/sbin/useradd -c "mythtvbackend User" \
- -s /sbin/nologin -r -d %{_varlibdir}/mythtv -G video mythtv 2> /dev/null || :
+ -s /sbin/nologin -r -d %{_localstatedir}/lib/mythtv -G video mythtv 2> /dev/null || :
%post backend
/sbin/chkconfig --add mythbackend
@@ -1485,6 +1485,17 @@
################################################################################
%changelog
+* Mon Feb 01 2010 Jarod Wilson <jarod(a)wilsonet.com> 0.22-5
+- Update to release-0-22-fixes branch, svn revision 23433
+- Fix mythtv user creation (rpm fusion bz#1027)
+
+* Mon Jan 04 2010 Jarod Wilson <jarod(a)wilsonet.com> 0.22-4
+- Update to release-0-22-fixes branch, svn revision 23074
+
+* Fri Dec 18 2009 Jarod Wilson <jarod(a)wilsonet.com> 0.22-3
+- Update to release-0-22-fixes branch, svn revision 22981
+- Contains targeted fixes for DVD playback, among other things
+
* Sat Nov 21 2009 Jarod Wilson <jarod(a)wilsonet.com> 0.22-2
- Update to release-0-22-fixes branch, svn revision 22880
14 years, 9 months
rpms/mythtv/F-11 mythplugins-0.22-svnfixes.patch, 1.1, 1.2 mythtv-0.22-svnfixes.patch, 1.1, 1.2 mythtv.spec, 1.41, 1.42
by Jarod Wilson
Author: jarod
Update of /cvs/free/rpms/mythtv/F-11
In directory se02.es.rpmfusion.net:/tmp/cvs-serv2970
Modified Files:
mythplugins-0.22-svnfixes.patch mythtv-0.22-svnfixes.patch
mythtv.spec
Log Message:
* Mon Feb 01 2010 Jarod Wilson <jarod(a)wilsonet.com> 0.22-5
- Update to release-0-22-fixes branch, svn revision 23433
- Fix mythtv user creation (rpm fusion bz#1027)
mythplugins-0.22-svnfixes.patch:
mythgallery/mythgallery/imageview.cpp | 2
mythmovies/ignyte/ignytegrabber.cpp | 2
mythmusic/mythmusic/main.cpp | 11
mythnews/mythnews/mythnews.cpp | 75 -
mythnews/mythnews/newssite.cpp | 12
mythvideo/mtd/dvdprobe.cpp | 56
mythvideo/mythvideo/main.cpp | 1
mythvideo/mythvideo/playercommand.cpp | 9
mythvideo/mythvideo/scripts/jamu-example.conf | 176 +-
mythvideo/mythvideo/scripts/jamu.py | 1307 +++++++++++-------
mythvideo/mythvideo/scripts/ttvdb.py | 51
mythvideo/mythvideo/videodlg.cpp | 26
mythvideo/mythvideo/videolist.cpp | 4
mythweather/mythweather/main.cpp | 4
mythweather/mythweather/scripts/uk_bbc/BBCLocation.pm | 27
15 files changed, 1100 insertions(+), 663 deletions(-)
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.1 -r 1.2 mythplugins-0.22-svnfixes.patch
Index: mythplugins-0.22-svnfixes.patch
===================================================================
RCS file: /cvs/free/rpms/mythtv/F-11/mythplugins-0.22-svnfixes.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- mythplugins-0.22-svnfixes.patch 22 Nov 2009 05:48:27 -0000 1.1
+++ mythplugins-0.22-svnfixes.patch 2 Feb 2010 02:56:45 -0000 1.2
@@ -1,3 +1,211 @@
+Index: mythplugins/mythweather/mythweather/scripts/uk_bbc/BBCLocation.pm
+===================================================================
+--- mythplugins/mythweather/mythweather/scripts/uk_bbc/BBCLocation.pm (revision 22751)
++++ mythplugins/mythweather/mythweather/scripts/uk_bbc/BBCLocation.pm (working copy)
+@@ -12,19 +12,17 @@
+
+ sub Search {
+
+- my $base_url = 'http://news.bbc.co.uk/weather/forecast/';
+- my $world_base_url = $base_url . '?lowgraphics=true&search=';
+- my $local_base_url = $base_url . '?lowgraphics=true&type=county_state&search=';
++ my $base_url = 'http://news.bbc.co.uk/weather/util/search/Search.xhtml?';
++ my $world_base_url = $base_url . 'lowgraphics=true®ion=world&search=';
++ my $local_base_url = $base_url . 'lowgraphics=true®ion=uk&search=';
+
+ my $search_string = shift;
+
+ my $world_response = get $world_base_url . $search_string;
+- die unless defined $world_response;
+ my $local_response = get $local_base_url . $search_string;
+- die unless defined $local_response;
+
+- &parseResults($world_response);
+- &parseResults($local_response);
++ &parseResults($world_response) if defined($world_response);
++ &parseResults($local_response) if defined($local_response);
+
+ if ( ($resultcount > 0 ) && ($#searchresults < 0) ) {
+ foreach my $url (@resulturl) {
+@@ -40,8 +38,6 @@
+ sub parseResults {
+ my $response = shift;
+ my $isresults = 0;
+- my $havename = 0;
+- my $haveid = 0;
+ my $resultline = "";
+
+ foreach (split("\n", $response)) {
+@@ -59,14 +55,14 @@
+ $resultcount = $1 if (/<strong>There \w{2,3} (\d*) forecasts? matching/);
+
+ # Collect result URLs
+- if (/<a id=\"result_\d*\" href \=\"?.*search\=.*/) {
++ if (/<a id=\"result_\d*\" .* href \=\"?.*search\=.*/) {
+ $url = $_;
+ $url =~ s/.*href \=\"(.*)\".*/$1/s;
+ push (@resulturl, $url);
+ }
+
+ # Collect location IDs and location names
+- elsif (/<a id=\"result_\d*\" href \=\"\/weather\/forecast\//) {
++ elsif (/<a id=\"result_\d*\" .* href \=\"\/weather\/forecast\//) {
+ $locid = $_;
+ $locid =~ s/.*\/weather\/forecast\/(\d{0,5})\?.*/$1/s;
+
+@@ -74,14 +70,11 @@
+ $locname =~ s/.*<a id=\"result_\d*\".*>(.*)<\/a>.*/$1/s;
+
+ $resultline = $locid . "::" . $locname;
+- push (@searchresults, $resultline);
++ if (! grep(/^$locid/, @searchresults)) {
++ push (@searchresults, $resultline);
++ }
+ }
+ }
+-
+- if ($havename && $haveid) {
+- push (@searchresults, $resultline);
+- last;
+- }
+ }
+
+ return @searchresults;
+Index: mythplugins/mythweather/mythweather/main.cpp
+===================================================================
+--- mythplugins/mythweather/mythweather/main.cpp (revision 23433)
++++ mythplugins/mythweather/mythweather/main.cpp (working copy)
+@@ -142,8 +142,10 @@
+ menu->setKillable();
+ if (menu->foundTheme())
+ {
+- if (LCD *lcd = LCD::Get())
++ if (LCD *lcd = LCD::Get()) {
++ lcd->setFunctionLEDs(FUNC_NEWS, false);
+ lcd->switchToTime();
++ }
+
+ GetMythMainWindow()->GetMainStack()->AddScreen(menu);
+ return 0;
+Index: mythplugins/mythmovies/ignyte/ignytegrabber.cpp
+===================================================================
+--- mythplugins/mythmovies/ignyte/ignytegrabber.cpp (revision 22751)
++++ mythplugins/mythmovies/ignyte/ignytegrabber.cpp (working copy)
+@@ -19,7 +19,7 @@
+ "</tns:GetTheatersAndMovies>\n"
+ "</soap:Body>\n"
+ "</soap:Envelope>\n");
+- QString server("ignyte.com");
++ QString server("www.ignyte.com");
+ QString path("/webservices/ignyte.whatsshowing.webservice/moviefunctions.asmx");
+ QString soapAction("http://www.ignyte.com/whatsshowing/GetTheatersAndMovies");
+ ms->doSoapRequest(server, path, soapAction, fields);
+Index: mythplugins/mythvideo/mtd/dvdprobe.cpp
+===================================================================
+--- mythplugins/mythvideo/mtd/dvdprobe.cpp (revision 22751)
++++ mythplugins/mythvideo/mtd/dvdprobe.cpp (working copy)
+@@ -47,6 +47,10 @@
+ }
+ }
+
++#define LOC_ERR QString("dvdprobe.cpp, Error: ")
++#define LOC_WARN QString("dvdprobe.cpp, Warning: ")
++#define LOC QString("dvdprobe.cpp: ")
++
+ DVDSubTitle::DVDSubTitle(int subtitle_id, const QString &a_language) :
+ id(subtitle_id), language(a_language.toUtf8())
+ {
+@@ -431,25 +435,47 @@
+ // Before touching libdvdread stuff
+ // (below), see if there's actually
+ // a drive with media in it
+- QFile dvdDevice(device);
+- if (!dvdDevice.exists())
+ {
+- // Device doesn't exist. Silly user
+- Reset();
+- return false;
++ QFile dvdDevice(device);
++ if (!dvdDevice.exists())
++ {
++ // Device doesn't exist. Silly user
++ Reset();
++ return false;
++ }
+ }
+
+- if (!dvdDevice.open(QIODevice::ReadOnly))
++ // On UNIX like file systems O_NONBLOCK should be used to
++ // indicate we don't want to do reading or writing, we
++ // just want to issue some ioctls. This will prevent the
++ // OS from helping out and shearing the fingers off any
++ // person's attempting to place a DVD in the drive when
++ // we call open.
++ int flags = O_RDONLY;
++#ifdef O_NONBLOCK
++ flags |= O_NONBLOCK;
++#endif
++
++ // Ideally we can open with exclusive flag.
++#ifdef O_EXCL
++ flags |= O_EXCL;
++#endif
++
++ int drive_handle = open(device.toLocal8Bit().constData(), flags);
++
++#ifdef O_EXCL
++ // If this failed with exclusive, try without.
++ if (drive_handle < 0)
+ {
+- // Can't open device.
+- Reset();
+- return false;
++ flags &= ~O_EXCL;
++ drive_handle = open(device.toLocal8Bit().constData(), flags);
+ }
++#endif
+
+- int drive_handle = dvdDevice.handle();
+-
+- if (drive_handle == -1)
++ if (drive_handle < 0)
+ {
++ VERBOSE(VB_IMPORTANT, LOC +
++ "Failed to open file descriptor for DVD." + ENO);
+ Reset();
+ return false;
+ }
+@@ -470,6 +496,7 @@
+ if (status < 0)
+ {
+ Reset();
++ close(drive_handle);
+ return false;
+ }
+
+@@ -483,6 +510,7 @@
+ // 3 = not ready
+ //
+ Reset();
++ close(drive_handle);
+ return false;
[...2630 lines suppressed...]
+-# The type of data is specified by the key value.
++# The type of data is specified by the key value.
+ # Valid keys are:
+ # poster - This is also know as a cover art or a cover image
+ # fanart
+@@ -485,32 +500,31 @@
+ # metadate - The video file's text description e.g. plot, director ... etc
+ #
+ # NOTE: At this time there is no TV Secondary source scripts available unless you write your own.
+-#
++#
+ [movies-secondary-sources]
+ #poster: /usr/local/share/mythtv/mythvideo/scripts/fetch_poster.py -P %%(imdb)s
+-#fanart:
++#fanart:
+ #metadata: /usr/local/share/mythtv/mythvideo/scripts/imdbpy.py -D %%(imdb)s
+
+ [tv-secondary-sources]
+ #poster:
+-#fanart:
++#fanart:
+ #banner:
+ #metadata:
+ # END Secondary sources section--------------------------------------------------------------------
+
+ # START regex section------------------------------------------------------------------------------
+-# NOTE: If you do not understand regex expressions DO NOT USE this section.
++# NOTE: If you do not understand regex expressions DO NOT USE this section.
+ # This section adds to the default regex strings used to parse file names when extracting
+ # the following: series name, season number, episode number
+ # NOTE: The "% (self.config['valid_filename_chars_regex'])" part of the string is assumed
+ # NOTE: ANY % percent sign in the expression must be doubled (e.g. a % must be changed to %% )
+ # NOTE: The key value (e.g. "regex01") must be unique for each value.
+ # NOTE: DO NOT surround the regex pattern string with the traditional ''' three single quotes
+-#
+-[regex]
++#
++[regex]
+ # This is an example video file name "foo_S01_12" where:
+ # series name is "foo", season number starts at "S" and episode number starts after '_'
+ # foo_S01_12
+ #regex01: ^(.+?)[ \._\-][Ss]([0-9]+)_([0-9]+)[^\\/]*$
+ # END regex section------------------------------------------------------------------------------
+-
Index: mythplugins/mythvideo/mythvideo/scripts/ttvdb.py
===================================================================
--- mythplugins/mythvideo/mythvideo/scripts/ttvdb.py (revision 22751)
@@ -3097,9 +4120,24 @@
if (!host.isEmpty())
{
QString combFileName = QString("%1.%2").arg(title)
+Index: mythplugins/mythvideo/mythvideo/videolist.cpp
+===================================================================
+--- mythplugins/mythvideo/mythvideo/videolist.cpp (revision 22751)
++++ mythplugins/mythvideo/mythvideo/videolist.cpp (working copy)
+@@ -1231,6 +1231,10 @@
+ prefix_to_node_map ptnm;
+
+ QStringList dirs = GetVideoDirs();
++
++ if (!dirs.size())
++ return;
++
+ QString test_prefix(dirs[0]);
+
+ meta_dir_node *video_root = &m_metadata_tree;
Index: mythplugins/mythvideo/mythvideo/main.cpp
===================================================================
---- mythplugins/mythvideo/mythvideo/main.cpp (revision 22880)
+--- mythplugins/mythvideo/mythvideo/main.cpp (revision 23433)
+++ mythplugins/mythvideo/mythvideo/main.cpp (working copy)
@@ -517,6 +517,7 @@
{
@@ -3111,7 +4149,7 @@
GetMythMainWindow()->GetMainStack()->AddScreen(diag);
Index: mythplugins/mythvideo/mythvideo/playercommand.cpp
===================================================================
---- mythplugins/mythvideo/mythvideo/playercommand.cpp (revision 22880)
+--- mythplugins/mythvideo/mythvideo/playercommand.cpp (revision 23433)
+++ mythplugins/mythvideo/mythvideo/playercommand.cpp (working copy)
@@ -5,6 +5,7 @@
#include <mythtv/libmythui/mythmainwindow.h>
@@ -3141,6 +4179,44 @@
}
QString VideoPlayerCommand::GetCommandDisplayName() const
+Index: mythplugins/mythnews/mythnews/newssite.cpp
+===================================================================
+--- mythplugins/mythnews/mythnews/newssite.cpp (revision 22751)
++++ mythplugins/mythnews/mythnews/newssite.cpp (working copy)
+@@ -314,6 +314,7 @@
+ QDomNode enclosureNode = itemNode.namedItem("enclosure");
+ QString enclosure = QString::null;
+ QString enclosure_type = QString::null;
++ QString thumbnail = QString::null;
+ if (!enclosureNode.isNull())
+ {
+ QDomAttr enclosureURL = enclosureNode.toElement()
+@@ -324,8 +325,16 @@
+
+ QDomAttr enclosureType = enclosureNode.toElement()
+ .attributeNode("type");
+- if (!enclosureType.isNull())
++ if (!enclosureType.isNull())
++ {
+ enclosure_type = enclosureType.value();
++
++ if (enclosure_type == "image/jpeg")
++ {
++ thumbnail = enclosure;
++ enclosure = QString::null;
++ }
++ }
+ }
+
+ //////////////////////////////////////////////////////////////
+@@ -341,7 +350,6 @@
+ itemNode = mediaGroup;
+
+ QDomNode thumbNode = itemNode.namedItem("media:thumbnail");
+- QString thumbnail = QString::null;
+ if (!thumbNode.isNull())
+ {
+ QDomAttr thumburl = thumbNode.toElement().attributeNode("url");
Index: mythplugins/mythnews/mythnews/mythnews.cpp
===================================================================
--- mythplugins/mythnews/mythnews/mythnews.cpp (revision 22751)
@@ -3192,7 +4268,17 @@
if (m_thumbnailImage)
m_thumbnailImage->Hide();
}
-@@ -352,31 +359,43 @@
+@@ -315,6 +322,9 @@
+ }
+ else
+ {
++ if (m_thumbnailImage)
++ m_thumbnailImage->Hide();
++
+ if (!site->imageURL().isEmpty())
+ {
+ QString fileprefix = GetConfDir();
+@@ -352,31 +362,43 @@
}
}
@@ -3250,7 +4336,7 @@
if (site)
{
if (m_titleText)
-@@ -388,7 +407,7 @@
+@@ -388,7 +410,7 @@
if (m_thumbnailImage && m_thumbnailImage->IsVisible())
m_thumbnailImage->Hide();
@@ -3259,7 +4345,7 @@
m_podcastImage->Show();
if (!site->imageURL().isEmpty())
-@@ -715,7 +734,8 @@
+@@ -715,7 +737,8 @@
.arg(formatSize(progress, 2))
.arg(formatSize(total, 2))
.arg(floor(fProgress*100));
@@ -3271,7 +4357,7 @@
usleep(100000);
Index: mythplugins/mythmusic/mythmusic/main.cpp
===================================================================
---- mythplugins/mythmusic/mythmusic/main.cpp (revision 22880)
+--- mythplugins/mythmusic/mythmusic/main.cpp (revision 23433)
+++ mythplugins/mythmusic/mythmusic/main.cpp (working copy)
@@ -21,6 +21,7 @@
#include <mythtv/compat.h>
@@ -3305,25 +4391,9 @@
}
int mythplugin_run(void)
-Index: mythplugins/mythweather/mythweather/main.cpp
-===================================================================
---- mythplugins/mythweather/mythweather/main.cpp (revision 22880)
-+++ mythplugins/mythweather/mythweather/main.cpp (working copy)
-@@ -142,8 +142,10 @@
- menu->setKillable();
- if (menu->foundTheme())
- {
-- if (LCD *lcd = LCD::Get())
-+ if (LCD *lcd = LCD::Get()) {
-+ lcd->setFunctionLEDs(FUNC_NEWS, false);
- lcd->switchToTime();
-+ }
-
- GetMythMainWindow()->GetMainStack()->AddScreen(menu);
- return 0;
Index: mythplugins/mythgallery/mythgallery/imageview.cpp
===================================================================
---- mythplugins/mythgallery/mythgallery/imageview.cpp (revision 22880)
+--- mythplugins/mythgallery/mythgallery/imageview.cpp (revision 23433)
+++ mythplugins/mythgallery/mythgallery/imageview.cpp (working copy)
@@ -152,9 +152,11 @@
mythtv-0.22-svnfixes.patch:
bindings/python/MythTV/MythTV.py | 26
configure | 5
contrib/channel_changers/6200ch/6200ch.c | 2
contrib/imports/mirobridge/mirobridge.py | 657 +++++-----
contrib/imports/mirobridge/mirobridge/mirobridge-example.conf | 105 -
docs/index.html | 2
docs/mythtv-HOWTO-11.html | 22
docs/mythtv-HOWTO-23.html | 8
docs/mythtv-HOWTO-5.html | 8
docs/mythtv-HOWTO-singlehtml.html | 40
docs/mythtv-HOWTO.html | 2
docs/mythtv-HOWTO.sgml | 61
docs/mythtv-HOWTO.txt | 152 +-
keys.txt | 27
libs/libmyth/audiooutputbase.cpp | 6
libs/libmyth/mythcontext.cpp | 5
libs/libmyth/mythdialogs.h | 10
libs/libmyth/programlist.cpp | 4
libs/libmyth/uilistbtntype.cpp | 3
libs/libmythdb/lcddevice.cpp | 90 +
libs/libmythdb/lcddevice.h | 86 +
libs/libmythdvdnav/dvdnav/dvdnav.c | 21
libs/libmythdvdnav/dvdnav/dvdnav.h | 5
libs/libmythdvdnav/dvdnav/vm/vm.c | 35
libs/libmythdvdnav/dvdnav/vm/vm.h | 1
libs/libmythtv/DVDRingBuffer.cpp | 46
libs/libmythtv/DVDRingBuffer.h | 7
libs/libmythtv/NuppelVideoPlayer.cpp | 46
libs/libmythtv/NuppelVideoPlayer.h | 3
libs/libmythtv/avformatdecoder.cpp | 133 +-
libs/libmythtv/firewiredevice.cpp | 3
libs/libmythtv/hdhrstreamhandler.cpp | 6
libs/libmythtv/mpeg/dvbdescriptors.h | 11
libs/libmythtv/osd.cpp | 2
libs/libmythtv/playercontext.cpp | 35
libs/libmythtv/recordinglist.cpp | 4
libs/libmythtv/recordingrule.cpp | 2
libs/libmythtv/tv_play.cpp | 21
libs/libmythtv/tv_rec.cpp | 5
libs/libmythtv/util-vdpau.cpp | 27
libs/libmythtv/videodisplayprofile.cpp | 27
libs/libmythtv/videodisplayprofile.h | 1
libs/libmythtv/videoout_xv.cpp | 2
libs/libmythui/DisplayResScreen.cpp | 19
libs/libmythui/mythmainwindow.cpp | 21
libs/libmythui/mythuibuttontree.cpp | 2
libs/libmythui/mythuihelper.cpp | 2
programs/mythbackend/main.cpp | 9
programs/mythbackend/scheduler.cpp | 10
programs/mythfilldatabase/main.cpp | 6
programs/mythfrontend/globalsettings.cpp | 54
programs/mythfrontend/guidegrid.cpp | 25
programs/mythfrontend/playbackbox.cpp | 1
programs/mythfrontend/statusbox.cpp | 4
programs/scripts/database/mythconverg_backup.pl | 4
programs/scripts/database/mythconverg_restore.pl | 34
themes/default-wide/recordings-ui.xml | 2
themes/default-wide/schedule-ui.xml | 6
themes/default/base.xml | 6
themes/default/recordings-ui.xml | 2
themes/default/schedule-ui.xml | 6
61 files changed, 1279 insertions(+), 698 deletions(-)
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.1 -r 1.2 mythtv-0.22-svnfixes.patch
Index: mythtv-0.22-svnfixes.patch
===================================================================
RCS file: /cvs/free/rpms/mythtv/F-11/mythtv-0.22-svnfixes.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- mythtv-0.22-svnfixes.patch 22 Nov 2009 05:48:27 -0000 1.1
+++ mythtv-0.22-svnfixes.patch 2 Feb 2010 02:56:45 -0000 1.2
@@ -65,6 +65,33 @@
</textarea>
<imagetype name="preview">
+Index: mythtv/themes/default/base.xml
+===================================================================
+--- mythtv/themes/default/base.xml (revision 22751)
++++ mythtv/themes/default/base.xml (working copy)
+@@ -49,11 +49,11 @@
+ </font>
+
+ <font name="basesmallblue" from="basesmall">
+- <color>#0492A7</color>
++ <color>#54d6e9</color>
+ </font>
+
+ <font name="basesmallred" from="basesmall">
+- <color>#800900</color>
++ <color>#ff6b48</color>
+ </font>
+
+ <font name="basemediumgrey" from="basemedium">
+@@ -65,7 +65,7 @@
+ </font>
+
+ <font name="basemediumred" from="basemedium">
+- <color>#800900</color>
++ <color>#ff6b48</color>
+ </font>
+
+ <font name="basemediumyellow" from="basemedium">
Index: mythtv/themes/default-wide/schedule-ui.xml
===================================================================
--- mythtv/themes/default-wide/schedule-ui.xml (revision 22751)
@@ -950,6 +977,580 @@
delete the selected view.
Program Finder
+Index: mythtv/libs/libmythtv/NuppelVideoPlayer.cpp
+===================================================================
+--- mythtv/libs/libmythtv/NuppelVideoPlayer.cpp (revision 22751)
++++ mythtv/libs/libmythtv/NuppelVideoPlayer.cpp (working copy)
+@@ -183,7 +183,7 @@
+ video_frame_rate(29.97f), video_aspect(4.0f / 3.0f),
+ forced_video_aspect(-1),
+ m_scan(kScan_Interlaced), m_scan_locked(false),
+- m_scan_tracker(0),
++ m_scan_tracker(0), m_scan_initialized(false),
+ keyframedist(30),
+ // Prebuffering (RingBuffer) control
+ prebuffering(false), prebuffer_tries(0), prebuffer_tries_total(0),
+@@ -244,7 +244,8 @@
+ decoder_lock(QMutex::Recursive),
+ next_play_speed(1.0f), next_normal_speed(true),
+ play_speed(1.0f), normal_speed(true),
+- frame_interval((int)(1000000.0f / 30)), ffrew_skip(1),
++ frame_interval((int)(1000000.0f / 30)), m_frame_interval(0),
++ ffrew_skip(1),
+ // Audio and video synchronization stuff
+ videosync(NULL), delay(0),
+ vsynctol(30/4), avsync_delay(0),
+@@ -544,6 +545,7 @@
+ audio_lock.lock();
+ if (audioOutput && unpauseaudio)
+ audio_paused = false;
++
+ audio_lock.unlock();
+ if (player_ctx->buffer)
+ player_ctx->buffer->Unpause();
+@@ -577,9 +579,11 @@
+ void NuppelVideoPlayer::PauseVideo(bool wait)
+ {
+ QMutexLocker locker(&pauseUnpauseLock);
+- video_actually_paused = false;
++
++ if (wait)
++ video_actually_paused = false;
+ pausevideo = true;
+-
++
+ for (uint i = 0; wait && !video_actually_paused; i++)
+ {
+ videoThreadPaused.wait(&pauseUnpauseLock, 250);
+@@ -607,6 +611,9 @@
+ if ((i % 10) == 9)
+ VERBOSE(VB_IMPORTANT, "Waited too long for video out to unpause");
+ }
++
++ if (videoOutput)
++ videoOutput->ExposeEvent();
+ }
+
+ void NuppelVideoPlayer::SetVideoActuallyPaused(bool val)
+@@ -1071,15 +1078,21 @@
+ if (!videoOutput || !videosync)
+ return; // hopefully this will be called again later...
+
++ if (m_scan_initialized &&
++ m_scan == scan &&
++ m_frame_interval == frame_interval)
++ return;
++
+ m_scan_locked = (scan != kScan_Detect);
+
+- if (scan == m_scan)
+- return;
++ m_scan_initialized = true;
++ m_frame_interval = frame_interval;
+
+ bool interlaced = is_interlaced(scan);
+ if (interlaced && !m_deint_possible)
+ {
+ m_scan = scan;
++ videosync->SetFrameInterval(frame_interval, false);
+ return;
+ }
+
+@@ -1113,11 +1126,8 @@
+ if (kScan_Progressive == scan)
+ {
+ m_double_process = false;
+- if (m_double_framerate)
+- {
+- m_double_framerate = false;
+- videosync->SetFrameInterval(frame_interval, false);
+- }
++ m_double_framerate = false;
++ videosync->SetFrameInterval(frame_interval, false);
+ videoOutput->SetDeinterlacingEnabled(false);
+ VERBOSE(VB_PLAYBACK, "Disabled deinterlacing");
+ }
+@@ -2587,9 +2597,11 @@
+ "\t\t\tdoubling video frame interval to slow down.").arg(diverge));
+ }
+
++ audio_lock.lock();
+ if (audioOutput && normal_speed)
+ {
+ long long currentaudiotime = audioOutput->GetAudiotime();
++ audio_lock.unlock();
+ #if 0
+ VERBOSE(VB_PLAYBACK+VB_TIMESTAMP, QString(
+ "A/V timecodes audio %1 video %2 frameinterval %3 "
+@@ -2652,7 +2664,9 @@
+ avsync_avg = 0;
+ avsync_oldavg = 0;
+ }
+- }
++ }
++ else
++ audio_lock.unlock();
+ }
+
+ void NuppelVideoPlayer::ShutdownAVSync(void)
+@@ -3073,7 +3087,7 @@
+ continue;
+ }
+
+- if (!pausevideo && nbframes == 1)
++ if (!video_actually_paused && nbframes == 1)
+ {
+ dvd_stillframe_showing = true;
+ PauseVideo(false);
+@@ -6848,8 +6862,12 @@
+ QString msg = "";
+
+ if (decoder)
++ {
+ msg = decoder->GetTrackDesc(type, GetTrack(type));
+-
++
++ if (player_ctx->buffer->isDVD())
++ player_ctx->buffer->DVD()->SetTrack(type, trackNo);
++ }
+ if (osd)
+ osd->SetSettingsText(msg, 3);
+ }
+Index: mythtv/libs/libmythtv/util-vdpau.cpp
+===================================================================
+--- mythtv/libs/libmythtv/util-vdpau.cpp (revision 22751)
++++ mythtv/libs/libmythtv/util-vdpau.cpp (working copy)
+@@ -28,14 +28,35 @@
+
+ #define ARSIZE(x) (sizeof(x) / sizeof((x)[0]))
+
++static const QString kVDPAUWarning =
++"WARNING - please read the following carefully:-\n\n"
++"* The VDPAU device has reported that you have run out of video memory. *\n"
++"* MythTV requires at least 512Mb of video memory for full functionality. *\n"
++"* If you are using an integrated GPU, please ensure you have allocated *\n"
++"* the maximum amount of shared memory in the BIOS settings. *\n"
++"* Systems with only 256Mb of video memory are not supported. *\n\n"
[...2873 lines suppressed...]
++ dirpath2 = u"%s%s" % (copy_dir, u'folder.png')
if os.path.isfile(dirpath) or os.path.isfile(dirpath2): # See if a folder cover already exists
pass
else:
@@ -3062,7 +4772,23 @@
else:
try: # Miro Channel icon copy for the new subdirectory
useImageMagick(u'convert "%s" "%s"' % (video[u'channel_icon'], dirpath))
-@@ -2655,7 +2697,7 @@
+@@ -2641,21 +2728,21 @@
+ # Gracefully close the Miro database and shutdown the Miro Front and Back ends
+ app.controller.shutdown()
+ time.sleep(5) # Let the shutdown processing complete
+- sys.exit(False)
++ sys.exit(1)
+
+ # Copy the Miro video file
+ save_video_filename = video[u'videoFilename'] # This filename is needed later for deleting in Miro
+ ext = getExtention(video[u'videoFilename'])
+ if ext.lower() == u'm4v':
+ ext = u'mpg'
+- filepath = u"%s%s - %s.%s" % (channels_to_copy[dir_key], video[u'channelTitle'], video[u'title'], ext)
++ filepath = u"%s%s - %s.%s" % (copy_dir, sanitiseFileName(video[u'channelTitle']), sanitiseFileName(video[u'title']), ext)
+ if simulation:
+ logger.info(u"Simulation: Copying the Miro video (%s) to the MythVideo directory (%s)." % (video[u'videoFilename'], filepath))
+ else:
try: # Miro video copied into a MythVideo directory
shutil.copy2(video[u'videoFilename'], filepath)
statistics[u'Miros_MythVideos_copied']+=1
@@ -3071,7 +4797,13 @@
video[u'videoFilename'] = filepath.replace(storagegroups[u'mythvideo'], u'')
else:
video[u'videoFilename'] = filepath
-@@ -2669,7 +2711,7 @@
+@@ -2664,51 +2751,51 @@
+ # Gracefully close the Miro database and shutdown the Miro Front and Back ends
+ app.controller.shutdown()
+ time.sleep(5) # Let the shutdown processing complete
+- sys.exit(False)
++ sys.exit(1)
+
# Copy the Channel or item's icon
if video[u'channel_icon'] and not video[u'channelTitle'].lower() in channel_icon_override:
pass
@@ -3080,33 +4812,75 @@
if video[u'item_icon']:
video[u'channel_icon'] = video[u'item_icon']
if video[u'channel_icon']:
-@@ -2689,7 +2731,7 @@
- except OSError:
- pass
- shutil.copy2(video[u'channel_icon'], filepath)
+ ext = getExtention(video[u'channel_icon'])
+ if video[u'channelTitle'].lower() in channel_icon_override:
+- filepath = u"%s%s - %s%s.%s" % (vid_graphics_dirs[u'posterdir'], video[u'channelTitle'], video[u'title'], graphic_suffix[u'posterdir'], ext)
++ filepath = u"%s%s - %s%s.%s" % (vid_graphics_dirs[u'posterdir'], sanitiseFileName(video[u'channelTitle']), sanitiseFileName(video[u'title']), graphic_suffix[u'posterdir'], ext)
+ else:
+- filepath = u"%s%s%s.%s" % (vid_graphics_dirs[u'posterdir'], video[u'channelTitle'], graphic_suffix[u'posterdir'], ext)
+- # There may already be a Channel icon available or it is a symlink which needs to be replaced
+- if not os.path.isfile(filepath) or os.path.islink(filepath):
+- if simulation:
+- logger.info(u"Simulation: Copying the Channel Icon (%s) to the poster directory (%s)." % (video[u'channel_icon'], filepath))
++ filepath = u"%s%s%s.%s" % (vid_graphics_dirs[u'posterdir'], sanitiseFileName(video[u'channelTitle']), graphic_suffix[u'posterdir'], ext)
++ # There may already be a Channel icon available or it is a symlink which needs to be replaced
++ if not os.path.isfile(filepath) or os.path.islink(filepath):
++ if simulation:
++ logger.info(u"Simulation: Copying the Channel Icon (%s) to the poster directory (%s)." % (video[u'channel_icon'], filepath))
++ else:
++ try: # Miro Channel icon copied into a MythVideo directory
++ try: # Remove any old symlink file
++ os.remove(filepath)
++ except OSError:
++ pass
++ shutil.copy2(video[u'channel_icon'], filepath)
++ if u'posterdir' in storagegroups.keys() and not local_only:
++ video[u'channel_icon'] = filepath.replace(storagegroups[u'posterdir'], u'')
++ else:
++ video[u'channel_icon'] = filepath
++ except:
++ logger.critical(u"Copying the Channel Icon (%s) to the poster directory (%s).\n This maybe a permissions error (mirobridge.py does not have permission to write to the directory)." % (video[u'channel_icon'], filepath))
++ # Gracefully close the Miro database and shutdown the Miro Front and Back ends
++ app.controller.shutdown()
++ time.sleep(5) # Let the shutdown processing complete
++ sys.exit(1)
+ else:
+- try: # Miro Channel icon copied into a MythVideo directory
+- try: # Remove any old symlink file
+- os.remove(filepath)
+- except OSError:
+- pass
+- shutil.copy2(video[u'channel_icon'], filepath)
- if u'posterdir' in storagegroups.keys():
-+ if u'posterdir' in storagegroups.keys() and not local_only:
- video[u'channel_icon'] = filepath.replace(storagegroups[u'posterdir'], u'')
- else:
- video[u'channel_icon'] = filepath
-@@ -2700,14 +2742,14 @@
- time.sleep(5) # Let the shutdown processing complete
- sys.exit(False)
- else:
+- video[u'channel_icon'] = filepath.replace(storagegroups[u'posterdir'], u'')
+- else:
+- video[u'channel_icon'] = filepath
+- except:
+- logger.critical(u"Copying the Channel Icon (%s) to the poster directory (%s).\n This maybe a permissions error (mirobridge.py does not have permission to write to the directory)." % (video[u'channel_icon'], filepath))
+- # Gracefully close the Miro database and shutdown the Miro Front and Back ends
+- app.controller.shutdown()
+- time.sleep(5) # Let the shutdown processing complete
+- sys.exit(False)
+- else:
- if u'posterdir' in storagegroups.keys():
-+ if u'posterdir' in storagegroups.keys() and not local_only:
- video[u'channel_icon'] = filepath.replace(storagegroups[u'posterdir'], u'')
- else:
- video[u'channel_icon'] = filepath
+- video[u'channel_icon'] = filepath.replace(storagegroups[u'posterdir'], u'')
+- else:
+- video[u'channel_icon'] = filepath
++ if u'posterdir' in storagegroups.keys() and not local_only:
++ video[u'channel_icon'] = filepath.replace(storagegroups[u'posterdir'], u'')
++ else:
++ video[u'channel_icon'] = filepath
# There may already be a Screenshot available or it is a symlink which needs to be replaced
if video[u'screenshot']:
- ext = getExtention(video[u'screenshot'])
+- filepath = u"%s%s - %s%s.%s" % (vid_graphics_dirs[u'episodeimagedir'], video[u'channelTitle'], video[u'title'], graphic_suffix[u'episodeimagedir'], ext)
+ ext = getExtention(video[u'screenshot'])
- filepath = u"%s%s - %s%s.%s" % (vid_graphics_dirs[u'episodeimagedir'], video[u'channelTitle'], video[u'title'], graphic_suffix[u'episodeimagedir'], ext)
++ filepath = u"%s%s - %s%s.%s" % (vid_graphics_dirs[u'episodeimagedir'], sanitiseFileName(video[u'channelTitle']), sanitiseFileName(video[u'title']), graphic_suffix[u'episodeimagedir'], ext)
else:
filepath = u''
-@@ -2724,7 +2766,7 @@
+
+@@ -2724,7 +2811,7 @@
pass
shutil.copy2(video[u'screenshot'], filepath)
displayMessage(u"Copied Miro screenshot file (%s) to MythVideo (%s)" % (video[u'screenshot'], filepath))
@@ -3115,9 +4889,12 @@
video[u'screenshot'] = filepath.replace(storagegroups[u'episodeimagedir'], u'')
else:
video[u'screenshot'] = filepath
-@@ -2735,17 +2777,16 @@
+@@ -2733,19 +2820,18 @@
+ # Gracefully close the Miro database and shutdown the Miro Front and Back ends
+ app.controller.shutdown()
time.sleep(5) # Let the shutdown processing complete
- sys.exit(False)
+- sys.exit(False)
++ sys.exit(1)
elif video[u'screenshot']:
- if u'episodeimagedir' in storagegroups.keys():
+ if u'episodeimagedir' in storagegroups.keys() and not local_only:
@@ -3136,7 +4913,7 @@
# Gracefully close the Miro database and shutdown the Miro Front and Back ends
app.controller.shutdown()
time.sleep(5) # Let the shutdown processing complete
-@@ -2756,7 +2797,7 @@
+@@ -2756,7 +2842,7 @@
#
# Check if the user does not want any channels Added to the "Watch Recordings" screen
@@ -3145,7 +4922,13 @@
for video in unwatched:
watched.append(video)
unwatched = []
-@@ -2780,7 +2821,7 @@
+@@ -2775,12 +2861,12 @@
+ displayMessage(u"There are no Miro unwatched video items to add as MythTV Recorded videos.")
+ if not updateMythRecorded(unwatched):
+ logger.critical(u"Updating MythTV Recording with Miro video files failed." % str(base_video_dir))
+- sys.exit(False)
++ sys.exit(1)
+
#
# Add and delete MythVideo records for played Miro Videos
# Add and delete symbolic links to Miro Videos and subdirectories
@@ -3154,7 +4937,21 @@
#
if len(channel_watch_only): # If the user does not want any channels moved to MythVideo exit
if channel_watch_only[0].lower() == u'all':
-@@ -2808,4 +2849,3 @@
+@@ -2791,7 +2877,7 @@
+ displayMessage(u"There are no Miro watched items to add to MythVideo")
+ if not updateMythVideo(watched):
+ logger.critical(u"Updating MythVideo with Miro video files failed.")
+- sys.exit(False)
++ sys.exit(1)
+
+ printStatistics()
+ return True
+@@ -2804,8 +2890,7 @@
+ #
+ if myapp.alreadyrunning():
+ print u'\nMiro Bridge is already running only one instance can run at a time\n\n'
+- sys.exit(False)
++ sys.exit(1)
main()
displayMessage(u"Miro Bridge Processing completed")
Index: mythtv.spec
===================================================================
RCS file: /cvs/free/rpms/mythtv/F-11/mythtv.spec,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -r1.41 -r1.42
--- mythtv.spec 22 Nov 2009 05:48:27 -0000 1.41
+++ mythtv.spec 2 Feb 2010 02:56:45 -0000 1.42
@@ -65,7 +65,7 @@
%define desktop_vendor RPMFusion
# SVN Revision number and branch ID
-%define _svnrev r22880
+%define _svnrev r23433
%define branch release
#
@@ -81,7 +81,7 @@
%if "%{branch}" == "trunk"
Release: 0.1.svn.%{_svnrev}%{?dist}
%else
-Release: 2%{?dist}
+Release: 5%{?dist}
%endif
# The primary license is GPLv2+, but bits are borrowed from a number of
@@ -1205,7 +1205,7 @@
%pre backend
# Add the "mythtv" user, with membership in the video group
/usr/sbin/useradd -c "mythtvbackend User" \
- -s /sbin/nologin -r -d %{_varlibdir}/mythtv -G video mythtv 2> /dev/null || :
+ -s /sbin/nologin -r -d %{_localstatedir}/lib/mythtv -G video mythtv 2> /dev/null || :
%post backend
/sbin/chkconfig --add mythbackend
@@ -1485,6 +1485,17 @@
################################################################################
%changelog
+* Mon Feb 01 2010 Jarod Wilson <jarod(a)wilsonet.com> 0.22-5
+- Update to release-0-22-fixes branch, svn revision 23433
+- Fix mythtv user creation (rpm fusion bz#1027)
+
+* Mon Jan 04 2010 Jarod Wilson <jarod(a)wilsonet.com> 0.22-4
+- Update to release-0-22-fixes branch, svn revision 23074
+
+* Fri Dec 18 2009 Jarod Wilson <jarod(a)wilsonet.com> 0.22-3
+- Update to release-0-22-fixes branch, svn revision 22981
+- Contains targeted fixes for DVD playback, among other things
+
* Sat Nov 21 2009 Jarod Wilson <jarod(a)wilsonet.com> 0.22-2
- Update to release-0-22-fixes branch, svn revision 22880
14 years, 9 months
rpms/mythtv/F-12 mythtv.spec,1.60,1.61
by Jarod Wilson
Author: jarod
Update of /cvs/free/rpms/mythtv/F-12
In directory se02.es.rpmfusion.net:/tmp/cvs-serv1946
Modified Files:
mythtv.spec
Log Message:
* Mon Feb 01 2010 Jarod Wilson <jarod(a)wilsonet.com> 0.22-5
- Update to release-0-22-fixes branch, svn revision 23433
- Fix mythtv user creation (rpm fusion bz#1027)
Index: mythtv.spec
===================================================================
RCS file: /cvs/free/rpms/mythtv/F-12/mythtv.spec,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -r1.60 -r1.61
--- mythtv.spec 2 Feb 2010 02:44:32 -0000 1.60
+++ mythtv.spec 2 Feb 2010 02:50:42 -0000 1.61
@@ -1205,7 +1205,7 @@
%pre backend
# Add the "mythtv" user, with membership in the video group
/usr/sbin/useradd -c "mythtvbackend User" \
- -s /sbin/nologin -r -d %{_varlibdir}/mythtv -G video mythtv 2> /dev/null || :
+ -s /sbin/nologin -r -d %{_localstatedir}/lib/mythtv -G video mythtv 2> /dev/null || :
%post backend
/sbin/chkconfig --add mythbackend
@@ -1487,6 +1487,7 @@
%changelog
* Mon Feb 01 2010 Jarod Wilson <jarod(a)wilsonet.com> 0.22-5
- Update to release-0-22-fixes branch, svn revision 23433
+- Fix mythtv user creation (rpm fusion bz#1027)
* Mon Jan 04 2010 Jarod Wilson <jarod(a)wilsonet.com> 0.22-4
- Update to release-0-22-fixes branch, svn revision 23074
14 years, 9 months
rpms/mythtv/F-12 mythplugins-0.22-svnfixes.patch, 1.1, 1.2 mythtv-0.22-svnfixes.patch, 1.1, 1.2 mythtv.spec, 1.59, 1.60
by Jarod Wilson
Author: jarod
Update of /cvs/free/rpms/mythtv/F-12
In directory se02.es.rpmfusion.net:/tmp/cvs-serv1252
Modified Files:
mythplugins-0.22-svnfixes.patch mythtv-0.22-svnfixes.patch
mythtv.spec
Log Message:
* Mon Feb 01 2010 Jarod Wilson <jarod(a)wilsonet.com> 0.22-5
- Update to release-0-22-fixes branch, svn revision 23433
mythplugins-0.22-svnfixes.patch:
mythgallery/mythgallery/imageview.cpp | 2
mythmovies/ignyte/ignytegrabber.cpp | 2
mythmusic/mythmusic/main.cpp | 11
mythnews/mythnews/mythnews.cpp | 75 -
mythnews/mythnews/newssite.cpp | 12
mythvideo/mtd/dvdprobe.cpp | 56
mythvideo/mythvideo/main.cpp | 1
mythvideo/mythvideo/playercommand.cpp | 9
mythvideo/mythvideo/scripts/jamu-example.conf | 176 +-
mythvideo/mythvideo/scripts/jamu.py | 1307 +++++++++++-------
mythvideo/mythvideo/scripts/ttvdb.py | 51
mythvideo/mythvideo/videodlg.cpp | 26
mythvideo/mythvideo/videolist.cpp | 4
mythweather/mythweather/main.cpp | 4
mythweather/mythweather/scripts/uk_bbc/BBCLocation.pm | 27
15 files changed, 1100 insertions(+), 663 deletions(-)
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.1 -r 1.2 mythplugins-0.22-svnfixes.patch
Index: mythplugins-0.22-svnfixes.patch
===================================================================
RCS file: /cvs/free/rpms/mythtv/F-12/mythplugins-0.22-svnfixes.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- mythplugins-0.22-svnfixes.patch 22 Nov 2009 05:04:40 -0000 1.1
+++ mythplugins-0.22-svnfixes.patch 2 Feb 2010 02:44:32 -0000 1.2
@@ -1,3 +1,211 @@
+Index: mythplugins/mythweather/mythweather/scripts/uk_bbc/BBCLocation.pm
+===================================================================
+--- mythplugins/mythweather/mythweather/scripts/uk_bbc/BBCLocation.pm (revision 22751)
++++ mythplugins/mythweather/mythweather/scripts/uk_bbc/BBCLocation.pm (working copy)
+@@ -12,19 +12,17 @@
+
+ sub Search {
+
+- my $base_url = 'http://news.bbc.co.uk/weather/forecast/';
+- my $world_base_url = $base_url . '?lowgraphics=true&search=';
+- my $local_base_url = $base_url . '?lowgraphics=true&type=county_state&search=';
++ my $base_url = 'http://news.bbc.co.uk/weather/util/search/Search.xhtml?';
++ my $world_base_url = $base_url . 'lowgraphics=true®ion=world&search=';
++ my $local_base_url = $base_url . 'lowgraphics=true®ion=uk&search=';
+
+ my $search_string = shift;
+
+ my $world_response = get $world_base_url . $search_string;
+- die unless defined $world_response;
+ my $local_response = get $local_base_url . $search_string;
+- die unless defined $local_response;
+
+- &parseResults($world_response);
+- &parseResults($local_response);
++ &parseResults($world_response) if defined($world_response);
++ &parseResults($local_response) if defined($local_response);
+
+ if ( ($resultcount > 0 ) && ($#searchresults < 0) ) {
+ foreach my $url (@resulturl) {
+@@ -40,8 +38,6 @@
+ sub parseResults {
+ my $response = shift;
+ my $isresults = 0;
+- my $havename = 0;
+- my $haveid = 0;
+ my $resultline = "";
+
+ foreach (split("\n", $response)) {
+@@ -59,14 +55,14 @@
+ $resultcount = $1 if (/<strong>There \w{2,3} (\d*) forecasts? matching/);
+
+ # Collect result URLs
+- if (/<a id=\"result_\d*\" href \=\"?.*search\=.*/) {
++ if (/<a id=\"result_\d*\" .* href \=\"?.*search\=.*/) {
+ $url = $_;
+ $url =~ s/.*href \=\"(.*)\".*/$1/s;
+ push (@resulturl, $url);
+ }
+
+ # Collect location IDs and location names
+- elsif (/<a id=\"result_\d*\" href \=\"\/weather\/forecast\//) {
++ elsif (/<a id=\"result_\d*\" .* href \=\"\/weather\/forecast\//) {
+ $locid = $_;
+ $locid =~ s/.*\/weather\/forecast\/(\d{0,5})\?.*/$1/s;
+
+@@ -74,14 +70,11 @@
+ $locname =~ s/.*<a id=\"result_\d*\".*>(.*)<\/a>.*/$1/s;
+
+ $resultline = $locid . "::" . $locname;
+- push (@searchresults, $resultline);
++ if (! grep(/^$locid/, @searchresults)) {
++ push (@searchresults, $resultline);
++ }
+ }
+ }
+-
+- if ($havename && $haveid) {
+- push (@searchresults, $resultline);
+- last;
+- }
+ }
+
+ return @searchresults;
+Index: mythplugins/mythweather/mythweather/main.cpp
+===================================================================
+--- mythplugins/mythweather/mythweather/main.cpp (revision 23433)
++++ mythplugins/mythweather/mythweather/main.cpp (working copy)
+@@ -142,8 +142,10 @@
+ menu->setKillable();
+ if (menu->foundTheme())
+ {
+- if (LCD *lcd = LCD::Get())
++ if (LCD *lcd = LCD::Get()) {
++ lcd->setFunctionLEDs(FUNC_NEWS, false);
+ lcd->switchToTime();
++ }
+
+ GetMythMainWindow()->GetMainStack()->AddScreen(menu);
+ return 0;
+Index: mythplugins/mythmovies/ignyte/ignytegrabber.cpp
+===================================================================
+--- mythplugins/mythmovies/ignyte/ignytegrabber.cpp (revision 22751)
++++ mythplugins/mythmovies/ignyte/ignytegrabber.cpp (working copy)
+@@ -19,7 +19,7 @@
+ "</tns:GetTheatersAndMovies>\n"
+ "</soap:Body>\n"
+ "</soap:Envelope>\n");
+- QString server("ignyte.com");
++ QString server("www.ignyte.com");
+ QString path("/webservices/ignyte.whatsshowing.webservice/moviefunctions.asmx");
+ QString soapAction("http://www.ignyte.com/whatsshowing/GetTheatersAndMovies");
+ ms->doSoapRequest(server, path, soapAction, fields);
+Index: mythplugins/mythvideo/mtd/dvdprobe.cpp
+===================================================================
+--- mythplugins/mythvideo/mtd/dvdprobe.cpp (revision 22751)
++++ mythplugins/mythvideo/mtd/dvdprobe.cpp (working copy)
+@@ -47,6 +47,10 @@
+ }
+ }
+
++#define LOC_ERR QString("dvdprobe.cpp, Error: ")
++#define LOC_WARN QString("dvdprobe.cpp, Warning: ")
++#define LOC QString("dvdprobe.cpp: ")
++
+ DVDSubTitle::DVDSubTitle(int subtitle_id, const QString &a_language) :
+ id(subtitle_id), language(a_language.toUtf8())
+ {
+@@ -431,25 +435,47 @@
+ // Before touching libdvdread stuff
+ // (below), see if there's actually
+ // a drive with media in it
+- QFile dvdDevice(device);
+- if (!dvdDevice.exists())
+ {
+- // Device doesn't exist. Silly user
+- Reset();
+- return false;
++ QFile dvdDevice(device);
++ if (!dvdDevice.exists())
++ {
++ // Device doesn't exist. Silly user
++ Reset();
++ return false;
++ }
+ }
+
+- if (!dvdDevice.open(QIODevice::ReadOnly))
++ // On UNIX like file systems O_NONBLOCK should be used to
++ // indicate we don't want to do reading or writing, we
++ // just want to issue some ioctls. This will prevent the
++ // OS from helping out and shearing the fingers off any
++ // person's attempting to place a DVD in the drive when
++ // we call open.
++ int flags = O_RDONLY;
++#ifdef O_NONBLOCK
++ flags |= O_NONBLOCK;
++#endif
++
++ // Ideally we can open with exclusive flag.
++#ifdef O_EXCL
++ flags |= O_EXCL;
++#endif
++
++ int drive_handle = open(device.toLocal8Bit().constData(), flags);
++
++#ifdef O_EXCL
++ // If this failed with exclusive, try without.
++ if (drive_handle < 0)
+ {
+- // Can't open device.
+- Reset();
+- return false;
++ flags &= ~O_EXCL;
++ drive_handle = open(device.toLocal8Bit().constData(), flags);
+ }
++#endif
+
+- int drive_handle = dvdDevice.handle();
+-
+- if (drive_handle == -1)
++ if (drive_handle < 0)
+ {
++ VERBOSE(VB_IMPORTANT, LOC +
++ "Failed to open file descriptor for DVD." + ENO);
+ Reset();
+ return false;
+ }
+@@ -470,6 +496,7 @@
+ if (status < 0)
+ {
+ Reset();
++ close(drive_handle);
+ return false;
+ }
+
+@@ -483,6 +510,7 @@
+ // 3 = not ready
+ //
+ Reset();
++ close(drive_handle);
+ return false;
[...2630 lines suppressed...]
+-# The type of data is specified by the key value.
++# The type of data is specified by the key value.
+ # Valid keys are:
+ # poster - This is also know as a cover art or a cover image
+ # fanart
+@@ -485,32 +500,31 @@
+ # metadate - The video file's text description e.g. plot, director ... etc
+ #
+ # NOTE: At this time there is no TV Secondary source scripts available unless you write your own.
+-#
++#
+ [movies-secondary-sources]
+ #poster: /usr/local/share/mythtv/mythvideo/scripts/fetch_poster.py -P %%(imdb)s
+-#fanart:
++#fanart:
+ #metadata: /usr/local/share/mythtv/mythvideo/scripts/imdbpy.py -D %%(imdb)s
+
+ [tv-secondary-sources]
+ #poster:
+-#fanart:
++#fanart:
+ #banner:
+ #metadata:
+ # END Secondary sources section--------------------------------------------------------------------
+
+ # START regex section------------------------------------------------------------------------------
+-# NOTE: If you do not understand regex expressions DO NOT USE this section.
++# NOTE: If you do not understand regex expressions DO NOT USE this section.
+ # This section adds to the default regex strings used to parse file names when extracting
+ # the following: series name, season number, episode number
+ # NOTE: The "% (self.config['valid_filename_chars_regex'])" part of the string is assumed
+ # NOTE: ANY % percent sign in the expression must be doubled (e.g. a % must be changed to %% )
+ # NOTE: The key value (e.g. "regex01") must be unique for each value.
+ # NOTE: DO NOT surround the regex pattern string with the traditional ''' three single quotes
+-#
+-[regex]
++#
++[regex]
+ # This is an example video file name "foo_S01_12" where:
+ # series name is "foo", season number starts at "S" and episode number starts after '_'
+ # foo_S01_12
+ #regex01: ^(.+?)[ \._\-][Ss]([0-9]+)_([0-9]+)[^\\/]*$
+ # END regex section------------------------------------------------------------------------------
+-
Index: mythplugins/mythvideo/mythvideo/scripts/ttvdb.py
===================================================================
--- mythplugins/mythvideo/mythvideo/scripts/ttvdb.py (revision 22751)
@@ -3097,9 +4120,24 @@
if (!host.isEmpty())
{
QString combFileName = QString("%1.%2").arg(title)
+Index: mythplugins/mythvideo/mythvideo/videolist.cpp
+===================================================================
+--- mythplugins/mythvideo/mythvideo/videolist.cpp (revision 22751)
++++ mythplugins/mythvideo/mythvideo/videolist.cpp (working copy)
+@@ -1231,6 +1231,10 @@
+ prefix_to_node_map ptnm;
+
+ QStringList dirs = GetVideoDirs();
++
++ if (!dirs.size())
++ return;
++
+ QString test_prefix(dirs[0]);
+
+ meta_dir_node *video_root = &m_metadata_tree;
Index: mythplugins/mythvideo/mythvideo/main.cpp
===================================================================
---- mythplugins/mythvideo/mythvideo/main.cpp (revision 22880)
+--- mythplugins/mythvideo/mythvideo/main.cpp (revision 23433)
+++ mythplugins/mythvideo/mythvideo/main.cpp (working copy)
@@ -517,6 +517,7 @@
{
@@ -3111,7 +4149,7 @@
GetMythMainWindow()->GetMainStack()->AddScreen(diag);
Index: mythplugins/mythvideo/mythvideo/playercommand.cpp
===================================================================
---- mythplugins/mythvideo/mythvideo/playercommand.cpp (revision 22880)
+--- mythplugins/mythvideo/mythvideo/playercommand.cpp (revision 23433)
+++ mythplugins/mythvideo/mythvideo/playercommand.cpp (working copy)
@@ -5,6 +5,7 @@
#include <mythtv/libmythui/mythmainwindow.h>
@@ -3141,6 +4179,44 @@
}
QString VideoPlayerCommand::GetCommandDisplayName() const
+Index: mythplugins/mythnews/mythnews/newssite.cpp
+===================================================================
+--- mythplugins/mythnews/mythnews/newssite.cpp (revision 22751)
++++ mythplugins/mythnews/mythnews/newssite.cpp (working copy)
+@@ -314,6 +314,7 @@
+ QDomNode enclosureNode = itemNode.namedItem("enclosure");
+ QString enclosure = QString::null;
+ QString enclosure_type = QString::null;
++ QString thumbnail = QString::null;
+ if (!enclosureNode.isNull())
+ {
+ QDomAttr enclosureURL = enclosureNode.toElement()
+@@ -324,8 +325,16 @@
+
+ QDomAttr enclosureType = enclosureNode.toElement()
+ .attributeNode("type");
+- if (!enclosureType.isNull())
++ if (!enclosureType.isNull())
++ {
+ enclosure_type = enclosureType.value();
++
++ if (enclosure_type == "image/jpeg")
++ {
++ thumbnail = enclosure;
++ enclosure = QString::null;
++ }
++ }
+ }
+
+ //////////////////////////////////////////////////////////////
+@@ -341,7 +350,6 @@
+ itemNode = mediaGroup;
+
+ QDomNode thumbNode = itemNode.namedItem("media:thumbnail");
+- QString thumbnail = QString::null;
+ if (!thumbNode.isNull())
+ {
+ QDomAttr thumburl = thumbNode.toElement().attributeNode("url");
Index: mythplugins/mythnews/mythnews/mythnews.cpp
===================================================================
--- mythplugins/mythnews/mythnews/mythnews.cpp (revision 22751)
@@ -3192,7 +4268,17 @@
if (m_thumbnailImage)
m_thumbnailImage->Hide();
}
-@@ -352,31 +359,43 @@
+@@ -315,6 +322,9 @@
+ }
+ else
+ {
++ if (m_thumbnailImage)
++ m_thumbnailImage->Hide();
++
+ if (!site->imageURL().isEmpty())
+ {
+ QString fileprefix = GetConfDir();
+@@ -352,31 +362,43 @@
}
}
@@ -3250,7 +4336,7 @@
if (site)
{
if (m_titleText)
-@@ -388,7 +407,7 @@
+@@ -388,7 +410,7 @@
if (m_thumbnailImage && m_thumbnailImage->IsVisible())
m_thumbnailImage->Hide();
@@ -3259,7 +4345,7 @@
m_podcastImage->Show();
if (!site->imageURL().isEmpty())
-@@ -715,7 +734,8 @@
+@@ -715,7 +737,8 @@
.arg(formatSize(progress, 2))
.arg(formatSize(total, 2))
.arg(floor(fProgress*100));
@@ -3271,7 +4357,7 @@
usleep(100000);
Index: mythplugins/mythmusic/mythmusic/main.cpp
===================================================================
---- mythplugins/mythmusic/mythmusic/main.cpp (revision 22880)
+--- mythplugins/mythmusic/mythmusic/main.cpp (revision 23433)
+++ mythplugins/mythmusic/mythmusic/main.cpp (working copy)
@@ -21,6 +21,7 @@
#include <mythtv/compat.h>
@@ -3305,25 +4391,9 @@
}
int mythplugin_run(void)
-Index: mythplugins/mythweather/mythweather/main.cpp
-===================================================================
---- mythplugins/mythweather/mythweather/main.cpp (revision 22880)
-+++ mythplugins/mythweather/mythweather/main.cpp (working copy)
-@@ -142,8 +142,10 @@
- menu->setKillable();
- if (menu->foundTheme())
- {
-- if (LCD *lcd = LCD::Get())
-+ if (LCD *lcd = LCD::Get()) {
-+ lcd->setFunctionLEDs(FUNC_NEWS, false);
- lcd->switchToTime();
-+ }
-
- GetMythMainWindow()->GetMainStack()->AddScreen(menu);
- return 0;
Index: mythplugins/mythgallery/mythgallery/imageview.cpp
===================================================================
---- mythplugins/mythgallery/mythgallery/imageview.cpp (revision 22880)
+--- mythplugins/mythgallery/mythgallery/imageview.cpp (revision 23433)
+++ mythplugins/mythgallery/mythgallery/imageview.cpp (working copy)
@@ -152,9 +152,11 @@
mythtv-0.22-svnfixes.patch:
bindings/python/MythTV/MythTV.py | 26
configure | 5
contrib/channel_changers/6200ch/6200ch.c | 2
contrib/imports/mirobridge/mirobridge.py | 657 +++++-----
contrib/imports/mirobridge/mirobridge/mirobridge-example.conf | 105 -
docs/index.html | 2
docs/mythtv-HOWTO-11.html | 22
docs/mythtv-HOWTO-23.html | 8
docs/mythtv-HOWTO-5.html | 8
docs/mythtv-HOWTO-singlehtml.html | 40
docs/mythtv-HOWTO.html | 2
docs/mythtv-HOWTO.sgml | 61
docs/mythtv-HOWTO.txt | 152 +-
keys.txt | 27
libs/libmyth/audiooutputbase.cpp | 6
libs/libmyth/mythcontext.cpp | 5
libs/libmyth/mythdialogs.h | 10
libs/libmyth/programlist.cpp | 4
libs/libmyth/uilistbtntype.cpp | 3
libs/libmythdb/lcddevice.cpp | 90 +
libs/libmythdb/lcddevice.h | 86 +
libs/libmythdvdnav/dvdnav/dvdnav.c | 21
libs/libmythdvdnav/dvdnav/dvdnav.h | 5
libs/libmythdvdnav/dvdnav/vm/vm.c | 35
libs/libmythdvdnav/dvdnav/vm/vm.h | 1
libs/libmythtv/DVDRingBuffer.cpp | 46
libs/libmythtv/DVDRingBuffer.h | 7
libs/libmythtv/NuppelVideoPlayer.cpp | 46
libs/libmythtv/NuppelVideoPlayer.h | 3
libs/libmythtv/avformatdecoder.cpp | 133 +-
libs/libmythtv/firewiredevice.cpp | 3
libs/libmythtv/hdhrstreamhandler.cpp | 6
libs/libmythtv/mpeg/dvbdescriptors.h | 11
libs/libmythtv/osd.cpp | 2
libs/libmythtv/playercontext.cpp | 35
libs/libmythtv/recordinglist.cpp | 4
libs/libmythtv/recordingrule.cpp | 2
libs/libmythtv/tv_play.cpp | 21
libs/libmythtv/tv_rec.cpp | 5
libs/libmythtv/util-vdpau.cpp | 27
libs/libmythtv/videodisplayprofile.cpp | 27
libs/libmythtv/videodisplayprofile.h | 1
libs/libmythtv/videoout_xv.cpp | 2
libs/libmythui/DisplayResScreen.cpp | 19
libs/libmythui/mythmainwindow.cpp | 21
libs/libmythui/mythuibuttontree.cpp | 2
libs/libmythui/mythuihelper.cpp | 2
programs/mythbackend/main.cpp | 9
programs/mythbackend/scheduler.cpp | 10
programs/mythfilldatabase/main.cpp | 6
programs/mythfrontend/globalsettings.cpp | 54
programs/mythfrontend/guidegrid.cpp | 25
programs/mythfrontend/playbackbox.cpp | 1
programs/mythfrontend/statusbox.cpp | 4
programs/scripts/database/mythconverg_backup.pl | 4
programs/scripts/database/mythconverg_restore.pl | 34
themes/default-wide/recordings-ui.xml | 2
themes/default-wide/schedule-ui.xml | 6
themes/default/base.xml | 6
themes/default/recordings-ui.xml | 2
themes/default/schedule-ui.xml | 6
61 files changed, 1279 insertions(+), 698 deletions(-)
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.1 -r 1.2 mythtv-0.22-svnfixes.patch
Index: mythtv-0.22-svnfixes.patch
===================================================================
RCS file: /cvs/free/rpms/mythtv/F-12/mythtv-0.22-svnfixes.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- mythtv-0.22-svnfixes.patch 22 Nov 2009 05:04:40 -0000 1.1
+++ mythtv-0.22-svnfixes.patch 2 Feb 2010 02:44:32 -0000 1.2
@@ -65,6 +65,33 @@
</textarea>
<imagetype name="preview">
+Index: mythtv/themes/default/base.xml
+===================================================================
+--- mythtv/themes/default/base.xml (revision 22751)
++++ mythtv/themes/default/base.xml (working copy)
+@@ -49,11 +49,11 @@
+ </font>
+
+ <font name="basesmallblue" from="basesmall">
+- <color>#0492A7</color>
++ <color>#54d6e9</color>
+ </font>
+
+ <font name="basesmallred" from="basesmall">
+- <color>#800900</color>
++ <color>#ff6b48</color>
+ </font>
+
+ <font name="basemediumgrey" from="basemedium">
+@@ -65,7 +65,7 @@
+ </font>
+
+ <font name="basemediumred" from="basemedium">
+- <color>#800900</color>
++ <color>#ff6b48</color>
+ </font>
+
+ <font name="basemediumyellow" from="basemedium">
Index: mythtv/themes/default-wide/schedule-ui.xml
===================================================================
--- mythtv/themes/default-wide/schedule-ui.xml (revision 22751)
@@ -950,6 +977,580 @@
delete the selected view.
Program Finder
+Index: mythtv/libs/libmythtv/NuppelVideoPlayer.cpp
+===================================================================
+--- mythtv/libs/libmythtv/NuppelVideoPlayer.cpp (revision 22751)
++++ mythtv/libs/libmythtv/NuppelVideoPlayer.cpp (working copy)
+@@ -183,7 +183,7 @@
+ video_frame_rate(29.97f), video_aspect(4.0f / 3.0f),
+ forced_video_aspect(-1),
+ m_scan(kScan_Interlaced), m_scan_locked(false),
+- m_scan_tracker(0),
++ m_scan_tracker(0), m_scan_initialized(false),
+ keyframedist(30),
+ // Prebuffering (RingBuffer) control
+ prebuffering(false), prebuffer_tries(0), prebuffer_tries_total(0),
+@@ -244,7 +244,8 @@
+ decoder_lock(QMutex::Recursive),
+ next_play_speed(1.0f), next_normal_speed(true),
+ play_speed(1.0f), normal_speed(true),
+- frame_interval((int)(1000000.0f / 30)), ffrew_skip(1),
++ frame_interval((int)(1000000.0f / 30)), m_frame_interval(0),
++ ffrew_skip(1),
+ // Audio and video synchronization stuff
+ videosync(NULL), delay(0),
+ vsynctol(30/4), avsync_delay(0),
+@@ -544,6 +545,7 @@
+ audio_lock.lock();
+ if (audioOutput && unpauseaudio)
+ audio_paused = false;
++
+ audio_lock.unlock();
+ if (player_ctx->buffer)
+ player_ctx->buffer->Unpause();
+@@ -577,9 +579,11 @@
+ void NuppelVideoPlayer::PauseVideo(bool wait)
+ {
+ QMutexLocker locker(&pauseUnpauseLock);
+- video_actually_paused = false;
++
++ if (wait)
++ video_actually_paused = false;
+ pausevideo = true;
+-
++
+ for (uint i = 0; wait && !video_actually_paused; i++)
+ {
+ videoThreadPaused.wait(&pauseUnpauseLock, 250);
+@@ -607,6 +611,9 @@
+ if ((i % 10) == 9)
+ VERBOSE(VB_IMPORTANT, "Waited too long for video out to unpause");
+ }
++
++ if (videoOutput)
++ videoOutput->ExposeEvent();
+ }
+
+ void NuppelVideoPlayer::SetVideoActuallyPaused(bool val)
+@@ -1071,15 +1078,21 @@
+ if (!videoOutput || !videosync)
+ return; // hopefully this will be called again later...
+
++ if (m_scan_initialized &&
++ m_scan == scan &&
++ m_frame_interval == frame_interval)
++ return;
++
+ m_scan_locked = (scan != kScan_Detect);
+
+- if (scan == m_scan)
+- return;
++ m_scan_initialized = true;
++ m_frame_interval = frame_interval;
+
+ bool interlaced = is_interlaced(scan);
+ if (interlaced && !m_deint_possible)
+ {
+ m_scan = scan;
++ videosync->SetFrameInterval(frame_interval, false);
+ return;
+ }
+
+@@ -1113,11 +1126,8 @@
+ if (kScan_Progressive == scan)
+ {
+ m_double_process = false;
+- if (m_double_framerate)
+- {
+- m_double_framerate = false;
+- videosync->SetFrameInterval(frame_interval, false);
+- }
++ m_double_framerate = false;
++ videosync->SetFrameInterval(frame_interval, false);
+ videoOutput->SetDeinterlacingEnabled(false);
+ VERBOSE(VB_PLAYBACK, "Disabled deinterlacing");
+ }
+@@ -2587,9 +2597,11 @@
+ "\t\t\tdoubling video frame interval to slow down.").arg(diverge));
+ }
+
++ audio_lock.lock();
+ if (audioOutput && normal_speed)
+ {
+ long long currentaudiotime = audioOutput->GetAudiotime();
++ audio_lock.unlock();
+ #if 0
+ VERBOSE(VB_PLAYBACK+VB_TIMESTAMP, QString(
+ "A/V timecodes audio %1 video %2 frameinterval %3 "
+@@ -2652,7 +2664,9 @@
+ avsync_avg = 0;
+ avsync_oldavg = 0;
+ }
+- }
++ }
++ else
++ audio_lock.unlock();
+ }
+
+ void NuppelVideoPlayer::ShutdownAVSync(void)
+@@ -3073,7 +3087,7 @@
+ continue;
+ }
+
+- if (!pausevideo && nbframes == 1)
++ if (!video_actually_paused && nbframes == 1)
+ {
+ dvd_stillframe_showing = true;
+ PauseVideo(false);
+@@ -6848,8 +6862,12 @@
+ QString msg = "";
+
+ if (decoder)
++ {
+ msg = decoder->GetTrackDesc(type, GetTrack(type));
+-
++
++ if (player_ctx->buffer->isDVD())
++ player_ctx->buffer->DVD()->SetTrack(type, trackNo);
++ }
+ if (osd)
+ osd->SetSettingsText(msg, 3);
+ }
+Index: mythtv/libs/libmythtv/util-vdpau.cpp
+===================================================================
+--- mythtv/libs/libmythtv/util-vdpau.cpp (revision 22751)
++++ mythtv/libs/libmythtv/util-vdpau.cpp (working copy)
+@@ -28,14 +28,35 @@
+
+ #define ARSIZE(x) (sizeof(x) / sizeof((x)[0]))
+
++static const QString kVDPAUWarning =
++"WARNING - please read the following carefully:-\n\n"
++"* The VDPAU device has reported that you have run out of video memory. *\n"
++"* MythTV requires at least 512Mb of video memory for full functionality. *\n"
++"* If you are using an integrated GPU, please ensure you have allocated *\n"
++"* the maximum amount of shared memory in the BIOS settings. *\n"
++"* Systems with only 256Mb of video memory are not supported. *\n\n"
[...2873 lines suppressed...]
++ dirpath2 = u"%s%s" % (copy_dir, u'folder.png')
if os.path.isfile(dirpath) or os.path.isfile(dirpath2): # See if a folder cover already exists
pass
else:
@@ -3062,7 +4772,23 @@
else:
try: # Miro Channel icon copy for the new subdirectory
useImageMagick(u'convert "%s" "%s"' % (video[u'channel_icon'], dirpath))
-@@ -2655,7 +2697,7 @@
+@@ -2641,21 +2728,21 @@
+ # Gracefully close the Miro database and shutdown the Miro Front and Back ends
+ app.controller.shutdown()
+ time.sleep(5) # Let the shutdown processing complete
+- sys.exit(False)
++ sys.exit(1)
+
+ # Copy the Miro video file
+ save_video_filename = video[u'videoFilename'] # This filename is needed later for deleting in Miro
+ ext = getExtention(video[u'videoFilename'])
+ if ext.lower() == u'm4v':
+ ext = u'mpg'
+- filepath = u"%s%s - %s.%s" % (channels_to_copy[dir_key], video[u'channelTitle'], video[u'title'], ext)
++ filepath = u"%s%s - %s.%s" % (copy_dir, sanitiseFileName(video[u'channelTitle']), sanitiseFileName(video[u'title']), ext)
+ if simulation:
+ logger.info(u"Simulation: Copying the Miro video (%s) to the MythVideo directory (%s)." % (video[u'videoFilename'], filepath))
+ else:
try: # Miro video copied into a MythVideo directory
shutil.copy2(video[u'videoFilename'], filepath)
statistics[u'Miros_MythVideos_copied']+=1
@@ -3071,7 +4797,13 @@
video[u'videoFilename'] = filepath.replace(storagegroups[u'mythvideo'], u'')
else:
video[u'videoFilename'] = filepath
-@@ -2669,7 +2711,7 @@
+@@ -2664,51 +2751,51 @@
+ # Gracefully close the Miro database and shutdown the Miro Front and Back ends
+ app.controller.shutdown()
+ time.sleep(5) # Let the shutdown processing complete
+- sys.exit(False)
++ sys.exit(1)
+
# Copy the Channel or item's icon
if video[u'channel_icon'] and not video[u'channelTitle'].lower() in channel_icon_override:
pass
@@ -3080,33 +4812,75 @@
if video[u'item_icon']:
video[u'channel_icon'] = video[u'item_icon']
if video[u'channel_icon']:
-@@ -2689,7 +2731,7 @@
- except OSError:
- pass
- shutil.copy2(video[u'channel_icon'], filepath)
+ ext = getExtention(video[u'channel_icon'])
+ if video[u'channelTitle'].lower() in channel_icon_override:
+- filepath = u"%s%s - %s%s.%s" % (vid_graphics_dirs[u'posterdir'], video[u'channelTitle'], video[u'title'], graphic_suffix[u'posterdir'], ext)
++ filepath = u"%s%s - %s%s.%s" % (vid_graphics_dirs[u'posterdir'], sanitiseFileName(video[u'channelTitle']), sanitiseFileName(video[u'title']), graphic_suffix[u'posterdir'], ext)
+ else:
+- filepath = u"%s%s%s.%s" % (vid_graphics_dirs[u'posterdir'], video[u'channelTitle'], graphic_suffix[u'posterdir'], ext)
+- # There may already be a Channel icon available or it is a symlink which needs to be replaced
+- if not os.path.isfile(filepath) or os.path.islink(filepath):
+- if simulation:
+- logger.info(u"Simulation: Copying the Channel Icon (%s) to the poster directory (%s)." % (video[u'channel_icon'], filepath))
++ filepath = u"%s%s%s.%s" % (vid_graphics_dirs[u'posterdir'], sanitiseFileName(video[u'channelTitle']), graphic_suffix[u'posterdir'], ext)
++ # There may already be a Channel icon available or it is a symlink which needs to be replaced
++ if not os.path.isfile(filepath) or os.path.islink(filepath):
++ if simulation:
++ logger.info(u"Simulation: Copying the Channel Icon (%s) to the poster directory (%s)." % (video[u'channel_icon'], filepath))
++ else:
++ try: # Miro Channel icon copied into a MythVideo directory
++ try: # Remove any old symlink file
++ os.remove(filepath)
++ except OSError:
++ pass
++ shutil.copy2(video[u'channel_icon'], filepath)
++ if u'posterdir' in storagegroups.keys() and not local_only:
++ video[u'channel_icon'] = filepath.replace(storagegroups[u'posterdir'], u'')
++ else:
++ video[u'channel_icon'] = filepath
++ except:
++ logger.critical(u"Copying the Channel Icon (%s) to the poster directory (%s).\n This maybe a permissions error (mirobridge.py does not have permission to write to the directory)." % (video[u'channel_icon'], filepath))
++ # Gracefully close the Miro database and shutdown the Miro Front and Back ends
++ app.controller.shutdown()
++ time.sleep(5) # Let the shutdown processing complete
++ sys.exit(1)
+ else:
+- try: # Miro Channel icon copied into a MythVideo directory
+- try: # Remove any old symlink file
+- os.remove(filepath)
+- except OSError:
+- pass
+- shutil.copy2(video[u'channel_icon'], filepath)
- if u'posterdir' in storagegroups.keys():
-+ if u'posterdir' in storagegroups.keys() and not local_only:
- video[u'channel_icon'] = filepath.replace(storagegroups[u'posterdir'], u'')
- else:
- video[u'channel_icon'] = filepath
-@@ -2700,14 +2742,14 @@
- time.sleep(5) # Let the shutdown processing complete
- sys.exit(False)
- else:
+- video[u'channel_icon'] = filepath.replace(storagegroups[u'posterdir'], u'')
+- else:
+- video[u'channel_icon'] = filepath
+- except:
+- logger.critical(u"Copying the Channel Icon (%s) to the poster directory (%s).\n This maybe a permissions error (mirobridge.py does not have permission to write to the directory)." % (video[u'channel_icon'], filepath))
+- # Gracefully close the Miro database and shutdown the Miro Front and Back ends
+- app.controller.shutdown()
+- time.sleep(5) # Let the shutdown processing complete
+- sys.exit(False)
+- else:
- if u'posterdir' in storagegroups.keys():
-+ if u'posterdir' in storagegroups.keys() and not local_only:
- video[u'channel_icon'] = filepath.replace(storagegroups[u'posterdir'], u'')
- else:
- video[u'channel_icon'] = filepath
+- video[u'channel_icon'] = filepath.replace(storagegroups[u'posterdir'], u'')
+- else:
+- video[u'channel_icon'] = filepath
++ if u'posterdir' in storagegroups.keys() and not local_only:
++ video[u'channel_icon'] = filepath.replace(storagegroups[u'posterdir'], u'')
++ else:
++ video[u'channel_icon'] = filepath
# There may already be a Screenshot available or it is a symlink which needs to be replaced
if video[u'screenshot']:
- ext = getExtention(video[u'screenshot'])
+- filepath = u"%s%s - %s%s.%s" % (vid_graphics_dirs[u'episodeimagedir'], video[u'channelTitle'], video[u'title'], graphic_suffix[u'episodeimagedir'], ext)
+ ext = getExtention(video[u'screenshot'])
- filepath = u"%s%s - %s%s.%s" % (vid_graphics_dirs[u'episodeimagedir'], video[u'channelTitle'], video[u'title'], graphic_suffix[u'episodeimagedir'], ext)
++ filepath = u"%s%s - %s%s.%s" % (vid_graphics_dirs[u'episodeimagedir'], sanitiseFileName(video[u'channelTitle']), sanitiseFileName(video[u'title']), graphic_suffix[u'episodeimagedir'], ext)
else:
filepath = u''
-@@ -2724,7 +2766,7 @@
+
+@@ -2724,7 +2811,7 @@
pass
shutil.copy2(video[u'screenshot'], filepath)
displayMessage(u"Copied Miro screenshot file (%s) to MythVideo (%s)" % (video[u'screenshot'], filepath))
@@ -3115,9 +4889,12 @@
video[u'screenshot'] = filepath.replace(storagegroups[u'episodeimagedir'], u'')
else:
video[u'screenshot'] = filepath
-@@ -2735,17 +2777,16 @@
+@@ -2733,19 +2820,18 @@
+ # Gracefully close the Miro database and shutdown the Miro Front and Back ends
+ app.controller.shutdown()
time.sleep(5) # Let the shutdown processing complete
- sys.exit(False)
+- sys.exit(False)
++ sys.exit(1)
elif video[u'screenshot']:
- if u'episodeimagedir' in storagegroups.keys():
+ if u'episodeimagedir' in storagegroups.keys() and not local_only:
@@ -3136,7 +4913,7 @@
# Gracefully close the Miro database and shutdown the Miro Front and Back ends
app.controller.shutdown()
time.sleep(5) # Let the shutdown processing complete
-@@ -2756,7 +2797,7 @@
+@@ -2756,7 +2842,7 @@
#
# Check if the user does not want any channels Added to the "Watch Recordings" screen
@@ -3145,7 +4922,13 @@
for video in unwatched:
watched.append(video)
unwatched = []
-@@ -2780,7 +2821,7 @@
+@@ -2775,12 +2861,12 @@
+ displayMessage(u"There are no Miro unwatched video items to add as MythTV Recorded videos.")
+ if not updateMythRecorded(unwatched):
+ logger.critical(u"Updating MythTV Recording with Miro video files failed." % str(base_video_dir))
+- sys.exit(False)
++ sys.exit(1)
+
#
# Add and delete MythVideo records for played Miro Videos
# Add and delete symbolic links to Miro Videos and subdirectories
@@ -3154,7 +4937,21 @@
#
if len(channel_watch_only): # If the user does not want any channels moved to MythVideo exit
if channel_watch_only[0].lower() == u'all':
-@@ -2808,4 +2849,3 @@
+@@ -2791,7 +2877,7 @@
+ displayMessage(u"There are no Miro watched items to add to MythVideo")
+ if not updateMythVideo(watched):
+ logger.critical(u"Updating MythVideo with Miro video files failed.")
+- sys.exit(False)
++ sys.exit(1)
+
+ printStatistics()
+ return True
+@@ -2804,8 +2890,7 @@
+ #
+ if myapp.alreadyrunning():
+ print u'\nMiro Bridge is already running only one instance can run at a time\n\n'
+- sys.exit(False)
++ sys.exit(1)
main()
displayMessage(u"Miro Bridge Processing completed")
Index: mythtv.spec
===================================================================
RCS file: /cvs/free/rpms/mythtv/F-12/mythtv.spec,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -r1.59 -r1.60
--- mythtv.spec 22 Nov 2009 05:03:14 -0000 1.59
+++ mythtv.spec 2 Feb 2010 02:44:32 -0000 1.60
@@ -65,7 +65,7 @@
%define desktop_vendor RPMFusion
# SVN Revision number and branch ID
-%define _svnrev r22880
+%define _svnrev r23433
%define branch release
#
@@ -81,7 +81,7 @@
%if "%{branch}" == "trunk"
Release: 0.1.svn.%{_svnrev}%{?dist}
%else
-Release: 2%{?dist}
+Release: 5%{?dist}
%endif
# The primary license is GPLv2+, but bits are borrowed from a number of
@@ -1485,6 +1485,16 @@
################################################################################
%changelog
+* Mon Feb 01 2010 Jarod Wilson <jarod(a)wilsonet.com> 0.22-5
+- Update to release-0-22-fixes branch, svn revision 23433
+
+* Mon Jan 04 2010 Jarod Wilson <jarod(a)wilsonet.com> 0.22-4
+- Update to release-0-22-fixes branch, svn revision 23074
+
+* Fri Dec 18 2009 Jarod Wilson <jarod(a)wilsonet.com> 0.22-3
+- Update to release-0-22-fixes branch, svn revision 22981
+- Contains targeted fixes for DVD playback, among other things
+
* Sat Nov 21 2009 Jarod Wilson <jarod(a)wilsonet.com> 0.22-2
- Update to release-0-22-fixes branch, svn revision 22880
14 years, 9 months
rpms/thunderbird-enigmail/devel thunderbird-clipboard-crash.patch, NONE, 1.1 .cvsignore, 1.5, 1.6 sources, 1.5, 1.6 thunderbird-enigmail.spec, 1.4, 1.5 thunderbird-mozconfig, 1.2, 1.3
by Remi Collet
Author: remi
Update of /cvs/free/rpms/thunderbird-enigmail/devel
In directory se02.es.rpmfusion.net:/tmp/cvs-serv793
Modified Files:
.cvsignore sources thunderbird-enigmail.spec
thunderbird-mozconfig
Added Files:
thunderbird-clipboard-crash.patch
Log Message:
update to anigmail 1.0.1 (build against thunderbird 3.0.1)
thunderbird-clipboard-crash.patch:
nsClipboard.cpp | 4 ++--
nsDragService.cpp | 21 +++++++++------------
2 files changed, 11 insertions(+), 14 deletions(-)
--- NEW FILE thunderbird-clipboard-crash.patch ---
diff -r 7f1f309a34f8 widget/src/gtk2/nsClipboard.cpp
--- a/mozilla/widget/src/gtk2/nsClipboard.cpp Thu Oct 22 12:45:52 2009 +0800
+++ b/mozilla/widget/src/gtk2/nsClipboard.cpp Fri Nov 13 11:19:27 2009 +0100
@@ -424,25 +424,25 @@ nsClipboard::HasDataMatchingFlavors(cons
for (PRUint32 i = 0; i < aLength && !*_retval; i++) {
// We special case text/unicode here.
if (!strcmp(aFlavorList[i], kUnicodeMime) &&
gtk_selection_data_targets_include_text(selection_data)) {
*_retval = PR_TRUE;
break;
}
for (PRInt32 j = 0; j < n_targets; j++) {
gchar *atom_name = gdk_atom_name(targets[j]);
- if (!strcmp(atom_name, aFlavorList[i]))
+ if (!g_strcmp0(atom_name, aFlavorList[i]))
*_retval = PR_TRUE;
// X clipboard wants image/jpeg, not image/jpg
- if (!strcmp(aFlavorList[i], kJPEGImageMime) && !strcmp(atom_name, "image/jpeg"))
+ if (!g_strcmp0(aFlavorList[i], kJPEGImageMime) && !g_strcmp0(atom_name, "image/jpeg"))
*_retval = PR_TRUE;
g_free(atom_name);
if (*_retval)
break;
}
}
gtk_selection_data_free(selection_data);
g_free(targets);
diff -r 7f1f309a34f8 widget/src/gtk2/nsDragService.cpp
--- a/mozilla/widget/src/gtk2/nsDragService.cpp Thu Oct 22 12:45:52 2009 +0800
+++ b/mozilla/widget/src/gtk2/nsDragService.cpp Fri Nov 13 11:19:27 2009 +0100
@@ -824,50 +824,47 @@ nsDragService::IsDataFlavorSupported(con
// check the target context vs. this flavor, one at a time
GList *tmp;
for (tmp = mTargetDragContext->targets; tmp; tmp = tmp->next) {
/* Bug 331198 */
GdkAtom atom = GDK_POINTER_TO_ATOM(tmp->data);
gchar *name = NULL;
name = gdk_atom_name(atom);
PR_LOG(sDragLm, PR_LOG_DEBUG,
("checking %s against %s\n", name, aDataFlavor));
- if (name && (strcmp(name, aDataFlavor) == 0)) {
+ if (g_strcmp0(name, aDataFlavor) == 0) {
PR_LOG(sDragLm, PR_LOG_DEBUG, ("good!\n"));
*_retval = PR_TRUE;
}
// check for automatic text/uri-list -> text/x-moz-url mapping
if (*_retval == PR_FALSE &&
- name &&
- (strcmp(name, gTextUriListType) == 0) &&
- (strcmp(aDataFlavor, kURLMime) == 0)) {
+ (g_strcmp0(name, gTextUriListType) == 0) &&
+ (g_strcmp0(aDataFlavor, kURLMime) == 0)) {
PR_LOG(sDragLm, PR_LOG_DEBUG,
("good! ( it's text/uri-list and \
we're checking against text/x-moz-url )\n"));
*_retval = PR_TRUE;
}
// check for automatic _NETSCAPE_URL -> text/x-moz-url mapping
if (*_retval == PR_FALSE &&
- name &&
- (strcmp(name, gMozUrlType) == 0) &&
- (strcmp(aDataFlavor, kURLMime) == 0)) {
+ (g_strcmp0(name, gMozUrlType) == 0) &&
+ (g_strcmp0(aDataFlavor, kURLMime) == 0)) {
PR_LOG(sDragLm, PR_LOG_DEBUG,
("good! ( it's _NETSCAPE_URL and \
we're checking against text/x-moz-url )\n"));
*_retval = PR_TRUE;
}
// check for auto text/plain -> text/unicode mapping
if (*_retval == PR_FALSE &&
- name &&
- (strcmp(name, kTextMime) == 0) &&
- ((strcmp(aDataFlavor, kUnicodeMime) == 0) ||
- (strcmp(aDataFlavor, kFileMime) == 0))) {
+ (g_strcmp0(name, kTextMime) == 0) &&
+ ((g_strcmp0(aDataFlavor, kUnicodeMime) == 0) ||
+ (g_strcmp0(aDataFlavor, kFileMime) == 0))) {
PR_LOG(sDragLm, PR_LOG_DEBUG,
("good! ( it's text plain and we're checking \
against text/unicode or application/x-moz-file)\n"));
*_retval = PR_TRUE;
}
g_free(name);
}
return NS_OK;
}
@@ -974,21 +971,21 @@ nsDragService::IsTargetContextList(void)
GList *tmp;
// walk the list of context targets and see if one of them is a list
// of items.
for (tmp = mTargetDragContext->targets; tmp; tmp = tmp->next) {
/* Bug 331198 */
GdkAtom atom = GDK_POINTER_TO_ATOM(tmp->data);
gchar *name = NULL;
name = gdk_atom_name(atom);
- if (strcmp(name, gMimeListType) == 0)
+ if (g_strcmp0(name, gMimeListType) == 0)
retval = PR_TRUE;
g_free(name);
if (retval)
break;
}
return retval;
}
// Maximum time to wait for a "drag_received" arrived, in microseconds
#define NS_DND_TIMEOUT 500000
Index: .cvsignore
===================================================================
RCS file: /cvs/free/rpms/thunderbird-enigmail/devel/.cvsignore,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- .cvsignore 30 Nov 2009 17:09:06 -0000 1.5
+++ .cvsignore 1 Feb 2010 16:13:54 -0000 1.6
@@ -1,2 +1,2 @@
-thunderbird-3.0rc1.source.tar.bz2
-enigmail-1.0.0.tar.gz
+thunderbird-3.0.1.source.tar.bz2
+enigmail-1.0.1.tar.gz
Index: sources
===================================================================
RCS file: /cvs/free/rpms/thunderbird-enigmail/devel/sources,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- sources 30 Nov 2009 17:09:06 -0000 1.5
+++ sources 1 Feb 2010 16:13:54 -0000 1.6
@@ -1,2 +1,2 @@
-f9da82698c8171a4cf68bdd234065844 thunderbird-3.0rc1.source.tar.bz2
-e3a6d379f1a72ac023751bdde2de750a enigmail-1.0.0.tar.gz
+f004aa5ddf2a30b5df96e06df416b0c9 thunderbird-3.0.1.source.tar.bz2
+508ca9ab0396afb49e82eda88014924b enigmail-1.0.1.tar.gz
Index: thunderbird-enigmail.spec
===================================================================
RCS file: /cvs/free/rpms/thunderbird-enigmail/devel/thunderbird-enigmail.spec,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- thunderbird-enigmail.spec 30 Nov 2009 17:09:06 -0000 1.4
+++ thunderbird-enigmail.spec 1 Feb 2010 16:13:54 -0000 1.5
@@ -1,13 +1,12 @@
-%define nspr_version 4.8
-%define nss_version 3.12.3.99
-%define cairo_version 1.6.0
-%define freetype_version 2.1.9
-%define sqlite_version 3.6.14
-%define version_internal 3.0rc1
-%define build_langpacks 1
-%define moz_objdir objdir-tb
+%global nspr_version 4.8
+%global nss_version 3.12.3.99
+%global cairo_version 1.8.8
+%global freetype_version 2.1.9
+%global sqlite_version 3.6.14
+%global build_langpacks 1
+%global moz_objdir objdir-tb
-%global thunver 3.0
+%global thunver 3.0.1
#global CVS 20091121
# The tarball is pretty inconsistent with directory structure.
@@ -16,14 +15,16 @@
# IMPORTANT: If there is no top level directory, this should be
# set to the cwd, ie: '.'
#%define tarballdir .
-%define tarballdir comm-1.9.1
+%global tarballdir comm-1.9.1
-%define mozappdir %{_libdir}/thunderbird-%{thunver}
-%define official_branding 1
+%global official_branding 1
+
+%global version_internal 3.0
+%global mozappdir %{_libdir}/%{name}-%{version_internal}
Summary: Authentication and encryption extension for Mozilla Thunderbird
Name: thunderbird-enigmail
-Version: 1.0.0
+Version: 1.0.1
%if 0%{?CVS}
Release: 0.1.cvs%{CVS}%{?dist}
%else
@@ -32,7 +33,7 @@
URL: http://enigmail.mozdev.org/
License: MPLv1.1 or GPLv2+
Group: Applications/Internet
-Source0: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{versio...
+Source0: http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/%{thunve...
Source10: thunderbird-mozconfig
Source11: thunderbird-mozconfig-branded
@@ -57,7 +58,9 @@
# Build patches
Patch1: mozilla-jemalloc.patch
Patch2: thunderbird-shared-error.patch
-Patch3: thunderbird-3.0-ppc64.patch
+Patch4: thunderbird-clipboard-crash.patch
+
+Patch9: thunderbird-3.0-ppc64.patch
%if %{official_branding}
@@ -136,7 +139,9 @@
%patch1 -p0 -b .jemalloc
%patch2 -p1 -b .shared-error
-%patch3 -p0 -b .ppc64
+%patch4 -p1 -b .clipboard-crash
+
+%patch9 -p0 -b .ppc64
%if %{official_branding}
# Required by Mozilla Corporation
@@ -275,6 +280,9 @@
#===============================================================================
%changelog
+* Mon Feb 01 2010 Remi Collet <rpms(a)famillecollet.com> 1.0.1-1
+- Enigmail 1.0.1 (against thunderbird 3.0.1)
+
* Mon Nov 30 2009 Remi Collet <rpms(a)famillecollet.com> 1.0.0-1
- Enigmail 1.0 (against thunderbird 3.0rc1)
Index: thunderbird-mozconfig
===================================================================
RCS file: /cvs/free/rpms/thunderbird-enigmail/devel/thunderbird-mozconfig,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- thunderbird-mozconfig 21 Nov 2009 12:38:17 -0000 1.2
+++ thunderbird-mozconfig 1 Feb 2010 16:13:54 -0000 1.3
@@ -25,8 +25,8 @@
ac_add_options --enable-system-cairo
ac_add_options --enable-svg
ac_add_options --enable-canvas
-ac_add_options --disable-crashreporter
ac_add_options --enable-system-hunspell
+ac_add_options --disable-crashreporter
export BUILD_OFFICIAL=1
export MOZILLA_OFFICIAL=1
14 years, 9 months