rpms/libquicktime/devel libquicktime.spec,1.32,1.33
by Nicolas Chauvet
Author: kwizart
Update of /cvs/free/rpms/libquicktime/devel
In directory old02.ovh.rpmfusion.lan:/tmp/cvs-serv6725
Modified Files:
libquicktime.spec
Log Message:
Rebuilt
Index: libquicktime.spec
===================================================================
RCS file: /cvs/free/rpms/libquicktime/devel/libquicktime.spec,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- libquicktime.spec 20 Jan 2013 22:06:12 -0000 1.32
+++ libquicktime.spec 7 May 2013 14:44:03 -0000 1.33
@@ -1,7 +1,7 @@
Summary: Library for reading and writing Quicktime files
Name: libquicktime
Version: 1.2.4
-Release: 5%{?dist}
+Release: 6%{?dist}
License: LGPLv2+
Group: System Environment/Libraries
URL: http://libquicktime.sourceforge.net/
@@ -129,6 +129,9 @@
# --------------------------------------------------------------------
%changelog
+* Tue May 07 2013 Nicolas Chauvet <kwizart(a)gmail.com> - 1.2.4-6
+- Rebuilt for x264
+
* Sun Jan 20 2013 Nicolas Chauvet <kwizart(a)gmail.com> - 1.2.4-5
- Rebuilt for FFmpeg/x264
11 years, 6 months
rpms/xbmc/devel xbmc-12.2-dvdread.patch, NONE, 1.1 xbmc-12.2-hdhomerun.patch, NONE, 1.1 .cvsignore, 1.19, 1.20 sources, 1.21, 1.22 xbmc-generate-tarball-xz.sh, 1.19, 1.20 xbmc.spec, 1.60, 1.61 xbmc-10-disable-zlib-in-cximage.patch, 1.1, NONE xbmc-12.0-dvdread.patch, 1.1, NONE xbmc-12.0-fix-crash-on-player-stop.patch, 1.1, NONE xbmc-12.0-fix-pa-buffer-overruns.patch, 1.1, NONE xbmc-12.0-hdhomerun.patch, 1.2, NONE
by Ken Dreyer
Author: ktdreyer
Update of /cvs/free/rpms/xbmc/devel
In directory old02.ovh.rpmfusion.lan:/tmp/cvs-serv7932
Modified Files:
.cvsignore sources xbmc-generate-tarball-xz.sh xbmc.spec
Added Files:
xbmc-12.2-dvdread.patch xbmc-12.2-hdhomerun.patch
Removed Files:
xbmc-10-disable-zlib-in-cximage.patch xbmc-12.0-dvdread.patch
xbmc-12.0-fix-crash-on-player-stop.patch
xbmc-12.0-fix-pa-buffer-overruns.patch
xbmc-12.0-hdhomerun.patch
Log Message:
* Mon May 06 2013 Ken Dreyer <ktdreyer(a)ktdreyer.com> - 12.2-1
- Update to Frodo 12.2
- Rebase hdhomerun and dvdread patches onto 12.2
- Drop upstreamed PA patches
- Drop unused cximage zlib patch
xbmc-12.2-dvdread.patch:
bootstrap.mk | 5 -----
configure.in | 21 +--------------------
lib/libdvd/Makefile.in | 20 +++++++-------------
3 files changed, 8 insertions(+), 38 deletions(-)
--- NEW FILE xbmc-12.2-dvdread.patch ---
commit 9f9845af842a376d5bdf70742785e7727695fd03
Author: Ken Dreyer <ktdreyer(a)ktdreyer.com>
Date: Mon May 6 17:07:40 2013 -0600
Fedora: use external dvdread
Original patch by Alex Lancaster <alexlan[AT]fedoraproject org>
diff --git a/bootstrap.mk b/bootstrap.mk
index 8bc4795..1fc31a4 100644
--- a/bootstrap.mk
+++ b/bootstrap.mk
@@ -8,7 +8,6 @@ ifneq ($(wildcard lib/libdvd/libdvdcss/configure.ac),)
BOOTSTRAP_SUBDIRS += lib/libdvd/libdvdcss/configure.ac
DVD_CSS=lib/libdvd/libdvdcss/configure
endif
-BOOTSTRAP_SUBDIRS += lib/libdvd/libdvdread/configure.ac
BOOTSTRAP_SUBDIRS += lib/libdvd/libdvdnav/configure.ac
ifneq ($(wildcard pvr-addons/Makefile.am),)
@@ -18,10 +17,6 @@ endif
BOOTSTRAP_TARGETS=$(basename $(BOOTSTRAP_SUBDIRS))
all: $(BOOTSTRAP_TARGETS)
-#preserve order for libdvd. dvdcss (if present) -> dvdread -> dvdnav.
-lib/libdvd/libdvdread/configure: $(DVD_CSS)
-lib/libdvd/libdvdnav/configure: lib/libdvd/libdvdread/configure
-
%: %.ac
autoreconf -vif $(@D)
-@rm -rf $((a)D)/autom4te.cache
diff --git a/configure.in b/configure.in
index e98cc95..e922043 100644
--- a/configure.in
+++ b/configure.in
@@ -2616,28 +2616,9 @@ XB_CONFIG_MODULE([lib/libdvd/libdvdcss], [
--with-pic
], [$SKIP_CONFIG_DVDCSS])
-XB_CONFIG_MODULE([lib/libdvd/libdvdread], [
- ./configure2 \
- --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../libdvdcss/src" \
- --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
- --host=$host_alias \
- --build=$build_alias \
- --target=$target_alias \
- --enable-static \
- --disable-shared \
- --disable-strip \
- --disable-opts \
- --cc="$CC" &&
- $MAKE dvdread-config &&
- mkdir -p `pwd`/../includes/dvdread
- cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
-], [0])
-
XB_CONFIG_MODULE([lib/libdvd/libdvdnav], [
./configure2 \
- --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes" \
- --extra-ldflags="-L`pwd`/../libdvdread/obj" \
- --with-dvdread-config="`pwd`/../libdvdread/obj/dvdread-config" \
+ --extra-cflags="$CFLAGS -fPIC -DPIC" \
--prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
--host=$host_alias \
--build=$build_alias \
diff --git a/lib/libdvd/Makefile.in b/lib/libdvd/Makefile.in
index 69d2286..1f5eebb 100644
--- a/lib/libdvd/Makefile.in
+++ b/lib/libdvd/Makefile.in
@@ -5,8 +5,7 @@ CXX=@CXX@
SYSDIR=@abs_top_srcdir@/system/players/dvdplayer
SOS= libdvdnav-$(ARCH).so
-DIRS= libdvdread \
- libdvdnav
+DIRS= libdvdnav
WRAPPER=@abs_top_srcdir(a)/xbmc/cores/DllLoader/exports/wrapper.o
WRAPPER_MACH_ALIAS=@abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper_mach_alias
@@ -14,7 +13,7 @@ WRAPPER_MACH_ALIAS=@abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper_mach_al
ifeq ($(findstring osx,$(ARCH)),osx)
LDFLAGS +=-bundle -undefined dynamic_lookup -read_only_relocs suppress
else
-LDFLAGS += -shared -fPIC -rdynamic
+LDFLAGS += -shared -fPIC -rdynamic -ldvdread
endif
ifeq ($(ARCH), powerpc-osx)
@@ -35,8 +34,7 @@ SLIB=$(addprefix $(SYSDIR)/, $(SOS))
DISTCLEAN_FILES=includes/dvdread/*.h \
includes/dvdcss/*.h \
- libdvdnav/config.h \
- libdvdread/config.h
+ libdvdnav/config.h
.PHONY: $(DIRS) compile
@@ -48,9 +46,9 @@ $(SYSDIR)/libdvdcss-$(ARCH).so: $($(WRAPPER)) libdvdcss/src/.libs/libdvdcss.a
$(CC) $(LDFLAGS) -Wl,-alias_list,$(WRAPPER_MACH_ALIAS) -o $@ \
$(WRAPPER) libdvdcss/src/*.o $(BUNDLE1_O)
-$(SYSDIR)/libdvdnav-$(ARCH).so: $($(WRAPPER)) $(DVDCSS_A) libdvdread/obj/libdvdread.a libdvdnav/obj/libdvdnav.a
+$(SYSDIR)/libdvdnav-$(ARCH).so: $($(WRAPPER)) $(DVDCSS_A) libdvdnav/obj/libdvdnav.a
$(CC) $(LDFLAGS) -Wl,-alias_list,$(WRAPPER_MACH_ALIAS) -o $@ \
- $(WRAPPER) $(DVDCSS_O) libdvdread/obj/*.o libdvdnav/obj/*.o $(BUNDLE1_O)
+ $(WRAPPER) $(DVDCSS_O) libdvdnav/obj/*.o $(BUNDLE1_O)
else
@@ -59,8 +57,8 @@ $(SYSDIR)/libdvdcss-$(ARCH).so: $(WRAPPER) libdvdcss/src/.libs/libdvdcss.a
libdvdcss/src/*.o -Wl,--unresolved-symbols=ignore-all -lm \
`cat $(WRAPPER:.o=.def)` $(WRAPPER)
-$(SYSDIR)/libdvdnav-$(ARCH).so: $(WRAPPER) $(DVDCSS_A) libdvdread/obj/libdvdread.a libdvdnav/obj/libdvdnav.a
- $(CC) -o $@ $(LDFLAGS) -Wl,--soname,$@ $(DVDCSS_O) libdvdread/obj/*.o libdvdnav/obj/*.o -lm \
+$(SYSDIR)/libdvdnav-$(ARCH).so: $(WRAPPER) $(DVDCSS_A) libdvdnav/obj/libdvdnav.a
+ $(CC) -o $@ $(LDFLAGS) -Wl,--soname,$@ $(DVDCSS_O) libdvdnav/obj/*.o -lm \
-Wl,--unresolved-symbols=ignore-all \
`cat $(WRAPPER:.o=.def)` $(WRAPPER)
@@ -70,10 +68,6 @@ libdvdcss/src/.libs/libdvdcss.a: libdvdcss;
libdvdcss: compile
$(MAKE) -C $@
-libdvdread/obj/libdvdread.a: libdvdread;
-libdvdread: compile
- $(MAKE) -C $@
-
libdvdnav/obj/libdvdnav.a: libdvdnav;
libdvdnav: compile
$(MAKE) -C $@
xbmc-12.2-hdhomerun.patch:
Makefile.in | 5 --
configure.in | 1
xbmc/filesystem/DllHDHomeRun.h | 78 +++++++++++++++++++++++++++--------------
3 files changed, 53 insertions(+), 31 deletions(-)
--- NEW FILE xbmc-12.2-hdhomerun.patch ---
commit ef5c269992b32d67de7547e9f530b6c971381f45
Author: Ken Dreyer <ktdreyer(a)ktdreyer.com>
Date: Fri Aug 24 19:34:47 2012 -0600
Fedora: use external hdhomerun
Original patch by Alex Lancaster <alexlan[AT]fedoraproject org>
diff --git a/Makefile.in b/Makefile.in
index 39dc6f9..79877b4 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -179,7 +179,6 @@ endif
LIB_DIRS=\
lib/cximage-6.0 \
lib/libexif \
- lib/libhdhomerun \
lib/cpluff \
lib/xbmc-dll-symbols
@@ -352,8 +351,6 @@ libexif: dllloader
$(MAKE) -C lib/libexif
cmyth: dllloader
$(MAKE) -C lib/cmyth
-libhdhomerun: dllloader
- $(MAKE) -C lib/libhdhomerun
papcodecs: dllloader dvdpcodecs
test -d system/players/paplayer || mkdir system/players/paplayer
$(MAKE) -C lib/xbadpcm
@@ -382,7 +379,7 @@ endif
codecs: papcodecs dvdpcodecs
-libs: libhdhomerun imagelib libexif system/libcpluff-@ARCH@.so $(CMYTH)
+libs: imagelib libexif system/libcpluff-@ARCH@.so $(CMYTH)
externals: codecs libs visualizations screensavers libaddon pvraddons
diff --git a/configure.in b/configure.in
index e922043..b61f0dd 100644
--- a/configure.in
+++ b/configure.in
@@ -2331,7 +2331,6 @@ OUTPUT_FILES="Makefile \
lib/libexif/Makefile \
lib/libXDAAP/Makefile \
lib/cmyth/Makefile \
- lib/libhdhomerun/Makefile \
lib/libsquish/Makefile \
lib/cximage-6.0/Makefile \
lib/addons/script.module.pil/Makefile \
diff --git a/xbmc/filesystem/DllHDHomeRun.h b/xbmc/filesystem/DllHDHomeRun.h
index 1667fde..48bdae3 100644
--- a/xbmc/filesystem/DllHDHomeRun.h
+++ b/xbmc/filesystem/DllHDHomeRun.h
@@ -20,7 +20,7 @@
*/
#include "DynamicDll.h"
-#include "lib/libhdhomerun/hdhomerun.h"
+#include <hdhomerun/hdhomerun.h>
class DllHdHomeRunInterface
{
@@ -41,30 +41,56 @@ public:
class DllHdHomeRun : public DllDynamic, public DllHdHomeRunInterface
{
- DECLARE_DLL_WRAPPER(DllHdHomeRun, DLL_PATH_LIBHDHOMERUN)
- DEFINE_METHOD5(int, discover_find_devices_custom, (uint32_t p1, uint32_t p2, uint32_t p3, struct hdhomerun_discover_device_t p4[], int p5))
- DEFINE_METHOD2(struct hdhomerun_device_t*, device_create_from_str, (const char* p1, struct hdhomerun_debug_t *p2))
- DEFINE_METHOD1(void, device_destroy, (struct hdhomerun_device_t* p1))
- DEFINE_METHOD1(int, device_stream_start, (struct hdhomerun_device_t* p1))
- DEFINE_METHOD3(uint8_t*, device_stream_recv, (struct hdhomerun_device_t* p1, size_t p2, size_t* p3))
- DEFINE_METHOD1(void, device_stream_stop, (struct hdhomerun_device_t* p1))
- DEFINE_METHOD2(int, device_set_tuner_channel, (struct hdhomerun_device_t *p1, const char *p2))
- DEFINE_METHOD2(int, device_set_tuner_program, (struct hdhomerun_device_t *p1, const char *p2))
- DEFINE_METHOD2(int, device_set_tuner_from_str, (struct hdhomerun_device_t *p1, const char *p2))
- DEFINE_METHOD2(void, device_set_tuner, (struct hdhomerun_device_t *p1, unsigned int p2))
- DEFINE_METHOD3(int, device_get_tuner_status, (struct hdhomerun_device_t *p1, char **p2, struct hdhomerun_tuner_status_t *p3));
- BEGIN_METHOD_RESOLVE()
- RESOLVE_METHOD_RENAME(hdhomerun_discover_find_devices_custom, discover_find_devices_custom)
- RESOLVE_METHOD_RENAME(hdhomerun_device_create_from_str, device_create_from_str)
- RESOLVE_METHOD_RENAME(hdhomerun_device_destroy, device_destroy)
- RESOLVE_METHOD_RENAME(hdhomerun_device_stream_start, device_stream_start)
- RESOLVE_METHOD_RENAME(hdhomerun_device_stream_recv, device_stream_recv)
- RESOLVE_METHOD_RENAME(hdhomerun_device_stream_stop, device_stream_stop)
- RESOLVE_METHOD_RENAME(hdhomerun_device_set_tuner_channel, device_set_tuner_channel)
- RESOLVE_METHOD_RENAME(hdhomerun_device_set_tuner_program, device_set_tuner_program)
- RESOLVE_METHOD_RENAME(hdhomerun_device_set_tuner_from_str, device_set_tuner_from_str)
- RESOLVE_METHOD_RENAME(hdhomerun_device_set_tuner, device_set_tuner)
- RESOLVE_METHOD_RENAME(hdhomerun_device_get_tuner_status, device_get_tuner_status)
- END_METHOD_RESOLVE()
+public:
+ virtual ~DllHdHomeRun () {};
+
+ virtual int discover_find_devices_custom (uint32_t p1, uint32_t p2, uint32_t p3, struct hdhomerun_discover_device_t p4[], int p5)
+ { return ::hdhomerun_discover_find_devices_custom (p1, p2, p3, p4, p5); }
+
+ virtual struct hdhomerun_device_t *device_create_from_str (const char* p1, struct hdhomerun_debug_t *p2)
+ { return ::hdhomerun_device_create_from_str (p1, p2); }
+
+ virtual void device_destroy (struct hdhomerun_device_t* p1)
+ { ::hdhomerun_device_destroy (p1); }
+
+ virtual int device_stream_start (struct hdhomerun_device_t* p1)
+ { return ::hdhomerun_device_stream_start (p1); }
+
+
+ virtual uint8_t *device_stream_recv (struct hdhomerun_device_t* p1, size_t p2, size_t* p3)
+ {
+ uint8_t *retval;
+
+ size_t tmp = *p3;
+ retval = ::hdhomerun_device_stream_recv (p1, p2, &tmp);
+ *p3 = tmp;
+
+ return retval;
+ }
+
+ virtual void device_stream_stop (struct hdhomerun_device_t* p1)
+ { ::hdhomerun_device_stream_stop (p1); }
+
+ virtual int device_set_tuner_channel (struct hdhomerun_device_t *p1, const char *p2)
+ { return ::hdhomerun_device_set_tuner_channel (p1, p2); }
+
+ virtual int device_set_tuner_program (struct hdhomerun_device_t *p1, const char *p2)
+ { return ::hdhomerun_device_set_tuner_program (p1, p2); }
+
+
+ virtual int device_set_tuner_from_str (struct hdhomerun_device_t *p1, const char *p2)
+ { return ::hdhomerun_device_set_tuner_from_str (p1, p2); }
+
+
+ virtual void device_set_tuner (struct hdhomerun_device_t *p1, unsigned int p2)
+ { ::hdhomerun_device_set_tuner (p1, p2); }
+
+ virtual int device_get_tuner_status (struct hdhomerun_device_t *p1, char **p2, struct hdhomerun_tuner_status_t *p3)
+ { return ::hdhomerun_device_get_tuner_status (p1, p2, p3); }
+
+ // DLL faking.
+ virtual bool ResolveExports() { return true; }
+ virtual bool Load() { return true; }
+ virtual void Unload() {}
};
Index: .cvsignore
===================================================================
RCS file: /cvs/free/rpms/xbmc/devel/.cvsignore,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- .cvsignore 27 Apr 2013 05:39:41 -0000 1.19
+++ .cvsignore 7 May 2013 02:05:24 -0000 1.20
@@ -1,2 +1,2 @@
-xbmc-12.1-patched.tar.xz
+xbmc-12.2-patched.tar.xz
xbmc-pvr-addons-590f862-patched.tar.xz
Index: sources
===================================================================
RCS file: /cvs/free/rpms/xbmc/devel/sources,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- sources 27 Apr 2013 05:39:42 -0000 1.21
+++ sources 7 May 2013 02:05:24 -0000 1.22
@@ -1,2 +1,2 @@
-2823cb9a9a1a5b2d9bcbbf6b091a8236 xbmc-12.1-patched.tar.xz
+c64af8503660aba9d025d6e12eaf2864 xbmc-12.2-patched.tar.xz
1b1b6234d0167e1743991ce38c6f8bf7 xbmc-pvr-addons-590f862-patched.tar.xz
Index: xbmc-generate-tarball-xz.sh
===================================================================
RCS file: /cvs/free/rpms/xbmc/devel/xbmc-generate-tarball-xz.sh,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- xbmc-generate-tarball-xz.sh 27 Apr 2013 05:39:42 -0000 1.19
+++ xbmc-generate-tarball-xz.sh 7 May 2013 02:05:24 -0000 1.20
@@ -1,7 +1,7 @@
#!/bin/sh
MAJORVERSION=12
-MINORVERSION=1
+MINORVERSION=2
#PRERELEASE=Frodo_rc3
VERSION=${MAJORVERSION}.${MINORVERSION}${PRERELEASE:+-${PRERELEASE}}
Index: xbmc.spec
===================================================================
RCS file: /cvs/free/rpms/xbmc/devel/xbmc.spec,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -r1.60 -r1.61
--- xbmc.spec 27 Apr 2013 05:39:42 -0000 1.60
+++ xbmc.spec 7 May 2013 02:05:24 -0000 1.61
@@ -4,8 +4,8 @@
#global DIRVERSION %{version}-%{PRERELEASE}
Name: xbmc
-Version: 12.1
-Release: 2%{?dist}
+Version: 12.2
+Release: 1%{?dist}
URL: http://www.xbmc.org/
Source0: %{name}-%{DIRVERSION}-patched.tar.xz
@@ -31,22 +31,12 @@
# filed ticket, but patch still needs work
# http://trac.xbmc.org/ticket/9658
-Patch2: xbmc-12.0-dvdread.patch
-
-# and new problem with zlib in cximage
-# trac ticket filed: http://trac.xbmc.org/ticket/9659
-# but patch not attached because it needs work
-Patch3: xbmc-10-disable-zlib-in-cximage.patch
+Patch2: xbmc-12.2-dvdread.patch
# need to file trac ticket, this patch just forces external hdhomerun
# functionality, needs to be able fallback internal version
-Patch4: xbmc-12.0-hdhomerun.patch
+Patch3: xbmc-12.2-hdhomerun.patch
-# Add better support for PA.
-# These patches are upstream in https://github.com/xbmc/xbmc/pull/2240, but
-# they are not in the Frodo (12.x) branch.
-Patch5: xbmc-12.0-fix-crash-on-player-stop.patch
-Patch6: xbmc-12.0-fix-pa-buffer-overruns.patch
# Optional deps (not in EPEL)
# (libbluray in EPEL 6 is too old.)
@@ -230,9 +220,8 @@
%setup -q -a 2 -n %{name}-%{DIRVERSION}
%patch1 -p1
-%patch2 -p0
-#patch3 -p0
-%patch4 -p1
+%patch2 -p1
+%patch3 -p1
%if 0%{?_with_hdhomerun}
%else
@@ -338,6 +327,12 @@
#%%{_includedir}/xbmc/xbmcclient.h
%changelog
+* Mon May 06 2013 Ken Dreyer <ktdreyer(a)ktdreyer.com> - 12.2-1
+- Update to Frodo 12.2
+- Rebase hdhomerun and dvdread patches onto 12.2
+- Drop upstreamed PA patches
+- Drop unused cximage zlib patch
+
* Thu Apr 25 2013 Ken Dreyer <ktdreyer(a)ktdreyer.com> - 12.1-2
- Add patches for PA (https://github.com/xbmc/xbmc/pull/2240). Fixes #2655
@@ -358,7 +353,7 @@
pre-release updates
- Remove obsolete MythTV PVR add-on patch from tsp branch
-* Wed Dec 27 2012 Ken Dreyer <ktdreyer(a)ktdreyer.com> - 12.0-0.4.Frodo_rc2
+* Wed Dec 26 2012 Ken Dreyer <ktdreyer(a)ktdreyer.com> - 12.0-0.4.Frodo_rc2
- Update to Frodo RC 2
- Update PVR addons snapshot to the latest Git version
@@ -380,7 +375,7 @@
- Rebase HDHomeRun removal to match upstream's file names
- Conditionally disable libssh BR (unavailable in EL6)
-* Tue Nov 14 2012 Ken Dreyer <ktdreyer(a)ktdreyer.com> - 12.0-0.2.Frodo_alpha7
+* Mon Nov 19 2012 Ken Dreyer <ktdreyer(a)ktdreyer.com> - 12.0-0.2.Frodo_alpha7
- Add pvr addons
* Tue Nov 13 2012 Ken Dreyer <ktdreyer(a)ktdreyer.com> - 12.0-0.1.Frodo_alpha7
@@ -399,7 +394,7 @@
- Add CFLAGS option to recognize Samba 4.0 (in f18+)
- Rebase patches to 12.0/Frodo where necessary
-* Sun Aug 28 2012 Ken Dreyer <ktdreyer@ktdreyer..com> - 12.8-0.1.Frodo_alpha4
+* Sun Aug 26 2012 Ken Dreyer <ktdreyer@ktdreyer..com> - 12.8-0.1.Frodo_alpha4
- Upgrade to Frodo alpha 4
* Wed Jul 11 2012 Nicolas Chauvet <kwizart(a)gmail.com> - 11.0-8
--- xbmc-10-disable-zlib-in-cximage.patch DELETED ---
--- xbmc-12.0-dvdread.patch DELETED ---
--- xbmc-12.0-fix-crash-on-player-stop.patch DELETED ---
--- xbmc-12.0-fix-pa-buffer-overruns.patch DELETED ---
--- xbmc-12.0-hdhomerun.patch DELETED ---
11 years, 6 months
rpms/mythtv/devel ChangeLog, 1.8, 1.9 mythtv-0.26-fixes.patch, 1.5, 1.6 mythtv.spec, 1.120, 1.121
by Richard Shaw
Author: hobbes1069
Update of /cvs/free/rpms/mythtv/devel
In directory old02.ovh.rpmfusion.lan:/tmp/cvs-serv12092
Modified Files:
ChangeLog mythtv-0.26-fixes.patch mythtv.spec
Log Message:
* Mon May 06 2013 Richard Shaw <hobbes1069(a)gmail.com> - 0.26.0-9
- Update to latest fixes/0.26, v0.26.0-153-gb02d25a.
- Fixes long standing issue with transcoding on EL.
http://code.mythtv.org/trac/ticket/2077
Index: ChangeLog
===================================================================
RCS file: /cvs/free/rpms/mythtv/devel/ChangeLog,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- ChangeLog 27 Apr 2013 13:06:20 -0000 1.8
+++ ChangeLog 6 May 2013 13:46:55 -0000 1.9
@@ -1,3 +1,65 @@
+commit b02d25a46a2f5f3457bb9249f6071a16a9e771ee
+Author: Paul Harrison <pharrison(a)mythtv.org>
+Date: Wed May 1 15:23:31 2013 +0100
+
+ mythmusic: Save playlists to DB when changed not at frontend exit
+
+ This changes things so any changes to playlists are saved to the database
+ immediately rather than cached and saved when the frontend exits.
+
+ This fixes a problem were you could lose edits to a playlist if the FE is not
+ shutdown cleanly like when using the idle timer to shutdown or if you shutdown
+ the computer from the FE exit menu.
+ (cherry picked from commit 70143c30dfb67812ecd6cb29e66a10353579054f)
+
+ Fixes #11228
+
+commit da89ee585f417584d74cbaee42467dabdc758261
+Author: Karl Dietz <dekarl(a)mythtv.org>
+Date: Wed Apr 24 12:49:56 2013 +0200
+
+ add NULL check missed in [a9b90652]
+
+ found by Jim Stichnoth
+
+ Refs #2077
+ (cherry picked from commit f04a8e42b)
+
+commit 61174b20ebba8f1ac595960fffc39f9dad7e4610
+Author: Karl Dietz <dekarl(a)mythtv.org>
+Date: Mon Apr 22 13:17:22 2013 +0200
+
+ update mythtranscode to work with ac3 with newer ffmpeg
+
+ ffmpeg has moved the duration/size of the audio frame to another place, so look
+ there
+
+ links used to figure it out how to move forward
+ http://ffmpeg.org/trac/ffmpeg/ticket/1240
+ http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=364c71c80e9124a2624e...
+ http://code.mythtv.org/trac/ticket/2077#comment:42
+
+ thanks to Nicolas Pöhlmann for finding the commit that broke it
+
+ Refs: #2077
+ (cherry picked from commit a9b906528)
+
+commit 2ed4e2931a120ba1e2d1a642d074b3e258f015ce
+Author: Paul Harrison <pharrison(a)mythtv.org>
+Date: Tue Apr 30 20:47:29 2013 +0100
+
+ MythNews: improve media:content parsing in rss feeds
+
+ * use the medium or type attributes to determine whether the content is an
+ image or video. Previously we ignored the type and ended up trying to play
+ an image.
+
+ * if we haven't found any thumbnail image then use any images found in the
+ media:content as the thumbnail. Fixes #11161.
+
+ * parse all the media:content items not just the first one we find.
+ (cherry picked from commit 7d9c51eb75ae37f39a57eb969c0ad7e532738e8a)
+
commit 5f45c0bd684c875f19d59974a5fe51a56731bf16
Author: tycholursen <tycholursen(a)gmail.com>
Date: Mon Apr 22 07:42:22 2013 -0400
mythtv-0.26-fixes.patch:
README.rst | 1
mythplugins/mytharchive/i18n/mytharchive_es_es.qm |binary
mythplugins/mytharchive/i18n/mytharchive_es_es.ts | 45
mythplugins/mytharchive/mytharchive/exportnative.cpp | 13
mythplugins/mytharchive/mytharchive/importnative.cpp | 12
mythplugins/mytharchive/mytharchive/logviewer.cpp | 53
mythplugins/mytharchive/mytharchive/mythburn.cpp | 5
mythplugins/mytharchive/mytharchivehelper/main.cpp | 421 -
mythplugins/mytharchive/mythburn/encoder_profiles/ffmpeg_dvd_ntsc.xml | 24
mythplugins/mytharchive/mythburn/encoder_profiles/ffmpeg_dvd_pal.xml | 24
mythplugins/mytharchive/mythburn/scripts/mythburn.py | 17
mythplugins/mythgallery/i18n/mythgallery_es_es.ts | 4
mythplugins/mythgame/i18n/mythgame_es_es.ts | 4
mythplugins/mythmusic/i18n/mythmusic_es_es.ts | 68
mythplugins/mythmusic/i18n/mythmusic_it.qm |binary
mythplugins/mythmusic/i18n/mythmusic_it.ts | 3790 +++++++---
mythplugins/mythmusic/mythmusic/cddb.cpp | 6
mythplugins/mythmusic/mythmusic/cdrip.cpp | 2
mythplugins/mythmusic/mythmusic/decoderhandler.cpp | 9
mythplugins/mythmusic/mythmusic/main.cpp | 73
mythplugins/mythmusic/mythmusic/metadata.cpp | 5
mythplugins/mythmusic/mythmusic/musiccommon.cpp | 13
mythplugins/mythmusic/mythmusic/playersettings.cpp | 2
mythplugins/mythmusic/mythmusic/playlist.cpp | 76
mythplugins/mythmusic/mythmusic/playlist.h | 11
mythplugins/mythmusic/mythmusic/playlistcontainer.cpp | 256
mythplugins/mythmusic/mythmusic/playlistcontainer.h | 48
mythplugins/mythmusic/mythmusic/pls.cpp | 209
mythplugins/mythmusic/mythmusic/pls.h | 14
mythplugins/mythmusic/mythmusic/shoutcast.cpp | 20
mythplugins/mythmusic/mythmusic/visualizationsettings.cpp | 6
mythplugins/mythmusic/theme/default-wide/music-base.xml | 7
mythplugins/mythmusic/theme/default-wide/music-ui.xml | 6
mythplugins/mythmusic/theme/default/music-base.xml | 7
mythplugins/mythmusic/theme/default/stream-ui.xml | 450 +
mythplugins/mythnews/mythnews/newssite.cpp | 66
mythplugins/mythweather/i18n/mythweather_es_es.qm |binary
mythplugins/mythweather/i18n/mythweather_es_es.ts | 3
mythplugins/mythweather/i18n/mythweather_pl.qm |binary
mythplugins/mythweather/i18n/mythweather_pl.ts | 3
mythtv/bindings/perl/Makefile.PL | 1
mythtv/bindings/perl/MythTV.pm | 20
mythtv/bindings/python/MythTV/altdict.py | 2
mythtv/bindings/python/MythTV/dataheap.py | 58
mythtv/bindings/python/MythTV/static.py | 2
mythtv/bindings/python/MythTV/system.py | 4
mythtv/bindings/python/MythTV/utility/dt.py | 12
mythtv/bindings/python/setup.py | 2
mythtv/contrib/imports/mirobridge/mirobridge.py | 101
mythtv/external/FFmpeg/libavcodec/h264.c | 3
mythtv/external/FFmpeg/libavcodec/h264_refs.c | 3
mythtv/external/FFmpeg/libavcodec/pcm.c | 5
mythtv/external/FFmpeg/libavformat/avidec.c | 9
mythtv/external/FFmpeg/libavformat/mpegts-mythtv.c | 1
mythtv/external/FFmpeg/libavformat/utils.c | 4
mythtv/i18n/mythfrontend_da.qm |binary
mythtv/i18n/mythfrontend_da.ts | 1208 +--
mythtv/i18n/mythfrontend_es_es.qm |binary
mythtv/i18n/mythfrontend_es_es.ts | 2180 +++--
mythtv/i18n/mythfrontend_pl.qm |binary
mythtv/i18n/mythfrontend_pl.ts | 2733 +++----
mythtv/libs/libmyth/audio/audiooutputbase.cpp | 2
mythtv/libs/libmyth/mythcontext.cpp | 2
mythtv/libs/libmyth/mythmediamonitor.cpp | 2
mythtv/libs/libmyth/programinfo.cpp | 22
mythtv/libs/libmythbase/mythdate.cpp | 6
mythtv/libs/libmythbase/mythdownloadmanager.cpp | 2
mythtv/libs/libmythbase/mythsystem.cpp | 5
mythtv/libs/libmythbase/mythversion.h | 2
mythtv/libs/libmythbase/signalhandling.cpp | 8
mythtv/libs/libmythdvdnav/dvdnav/dvd_types.h | 11
mythtv/libs/libmythdvdnav/dvdnav/dvdnav.c | 15
mythtv/libs/libmythdvdnav/dvdnav/dvdnav.h | 9
mythtv/libs/libmythdvdnav/dvdnav/dvdnav_internal.h | 8
mythtv/libs/libmythdvdnav/dvdnav/highlight.c | 60
mythtv/libs/libmythdvdnav/dvdnav/vm/vm.c | 3
mythtv/libs/libmythdvdnav/dvdread/ifo_read.c | 141
mythtv/libs/libmythdvdnav/dvdread/ifo_types.h | 2
mythtv/libs/libmythtv/AirPlay/mythraopconnection.cpp | 153
mythtv/libs/libmythtv/Bluray/bdringbuffer.h | 6
mythtv/libs/libmythtv/Bluray/mythbdplayer.cpp | 4
mythtv/libs/libmythtv/DVD/avformatdecoderdvd.cpp | 6
mythtv/libs/libmythtv/DVD/avformatdecoderdvd.h | 1
mythtv/libs/libmythtv/DVD/dvdringbuffer.cpp | 74
mythtv/libs/libmythtv/DVD/dvdringbuffer.h | 6
mythtv/libs/libmythtv/DVD/mythdvdplayer.cpp | 23
mythtv/libs/libmythtv/DeviceReadBuffer.cpp | 7
mythtv/libs/libmythtv/HLS/httplivestreambuffer.cpp | 35
mythtv/libs/libmythtv/ThreadedFileWriter.cpp | 2
mythtv/libs/libmythtv/analogsignalmonitor.cpp | 6
mythtv/libs/libmythtv/analogsignalmonitor.h | 1
mythtv/libs/libmythtv/asirecorder.cpp | 15
mythtv/libs/libmythtv/asirecorder.h | 1
mythtv/libs/libmythtv/asisignalmonitor.cpp | 6
mythtv/libs/libmythtv/asisignalmonitor.h | 1
mythtv/libs/libmythtv/avformatdecoder.cpp | 230
mythtv/libs/libmythtv/avformatdecoder.h | 6
mythtv/libs/libmythtv/avfringbuffer.cpp | 4
mythtv/libs/libmythtv/avfringbuffer.h | 6
mythtv/libs/libmythtv/cc708window.cpp | 2
mythtv/libs/libmythtv/cetonrecorder.cpp | 14
mythtv/libs/libmythtv/cetonrecorder.h | 1
mythtv/libs/libmythtv/cetonsignalmonitor.cpp | 6
mythtv/libs/libmythtv/cetonsignalmonitor.h | 1
mythtv/libs/libmythtv/decoderbase.h | 6
mythtv/libs/libmythtv/diseqcsettings.cpp | 4
mythtv/libs/libmythtv/dtvrecorder.cpp | 342
mythtv/libs/libmythtv/dtvrecorder.h | 8
mythtv/libs/libmythtv/dvbrecorder.cpp | 14
mythtv/libs/libmythtv/dvbrecorder.h | 1
mythtv/libs/libmythtv/dvbsignalmonitor.cpp | 6
mythtv/libs/libmythtv/dvbsignalmonitor.h | 1
mythtv/libs/libmythtv/eithelper.cpp | 15
mythtv/libs/libmythtv/filtermanager.cpp | 38
mythtv/libs/libmythtv/firewiredevice.cpp | 1
mythtv/libs/libmythtv/firewiresignalmonitor.cpp | 6
mythtv/libs/libmythtv/firewiresignalmonitor.h | 1
mythtv/libs/libmythtv/hdhrrecorder.cpp | 14
mythtv/libs/libmythtv/hdhrrecorder.h | 1
mythtv/libs/libmythtv/hdhrsignalmonitor.cpp | 6
mythtv/libs/libmythtv/hdhrsignalmonitor.h | 1
mythtv/libs/libmythtv/iptvsignalmonitor.cpp | 6
mythtv/libs/libmythtv/iptvsignalmonitor.h | 1
mythtv/libs/libmythtv/mpeg/mpegstreamdata.cpp | 8
mythtv/libs/libmythtv/mpeg/streamlisteners.h | 5
mythtv/libs/libmythtv/mpegrecorder.cpp | 11
mythtv/libs/libmythtv/mythccextractorplayer.cpp | 12
mythtv/libs/libmythtv/mythccextractorplayer.h | 2
mythtv/libs/libmythtv/mythcommflagplayer.cpp | 21
mythtv/libs/libmythtv/mythplayer.cpp | 43
mythtv/libs/libmythtv/openglvideo.cpp | 1
mythtv/libs/libmythtv/recordingprofile.cpp | 2
mythtv/libs/libmythtv/ringbuffer.h | 4
mythtv/libs/libmythtv/signalmonitor.cpp | 1
mythtv/libs/libmythtv/signalmonitor.h | 1
mythtv/libs/libmythtv/tv_play.cpp | 13
mythtv/libs/libmythtv/tv_rec.cpp | 6
mythtv/libs/libmythtv/videoout_openglvaapi.cpp | 1
mythtv/libs/libmythtv/videosource.cpp | 87
mythtv/libs/libmythui/DisplayRes.cpp | 36
mythtv/libs/libmythui/DisplayResScreen.h | 6
mythtv/libs/libmythui/DisplayResX.cpp | 4
mythtv/libs/libmythui/libmythui.pro | 1
mythtv/libs/libmythui/mythscreenstack.cpp | 2
mythtv/libs/libmythui/mythuibuttonlist.cpp | 2
mythtv/libs/libmythui/mythuieditbar.cpp | 2
mythtv/libs/libmythui/mythuiimage.cpp | 3
mythtv/libs/libmythui/mythuitype.cpp | 11
mythtv/libs/libmythui/mythuiwebbrowser.cpp | 10
mythtv/locales/nl_nl.xml | 37
mythtv/programs/mythavtest/main.cpp | 5
mythtv/programs/mythbackend/autoexpire.cpp | 4
mythtv/programs/mythbackend/autoexpire.h | 1
mythtv/programs/mythbackend/main.cpp | 5
mythtv/programs/mythbackend/main_helpers.cpp | 4
mythtv/programs/mythbackend/mainserver.cpp | 18
mythtv/programs/mythbackend/scheduler.cpp | 72
mythtv/programs/mythccextractor/main.cpp | 5
mythtv/programs/mythcommflag/README.txt | 10
mythtv/programs/mythcommflag/main.cpp | 5
mythtv/programs/mythfilldatabase/main.cpp | 5
mythtv/programs/mythfilldatabase/xmltvparser.cpp | 12
mythtv/programs/mythfrontend/guidegrid.cpp | 17
mythtv/programs/mythfrontend/main.cpp | 5
mythtv/programs/mythfrontend/playbackbox.cpp | 51
mythtv/programs/mythfrontend/playbackbox.h | 6
mythtv/programs/mythfrontend/scheduleeditor.cpp | 2
mythtv/programs/mythfrontend/services/frontend.cpp | 2
mythtv/programs/mythfrontend/statusbox.cpp | 8
mythtv/programs/mythjobqueue/main.cpp | 5
mythtv/programs/mythlcdserver/main.cpp | 5
mythtv/programs/mythlogserver/main.cpp | 5
mythtv/programs/mythmediaserver/main.cpp | 5
mythtv/programs/mythmetadatalookup/main.cpp | 5
mythtv/programs/mythpreviewgen/main.cpp | 5
mythtv/programs/mythshutdown/commandlineparser.cpp | 14
mythtv/programs/mythshutdown/main.cpp | 55
mythtv/programs/mythtranscode/main.cpp | 5
mythtv/programs/mythtranscode/mpeg2fix.cpp | 7
mythtv/programs/mythtranscode/mpeg2fix.h | 4
mythtv/programs/mythtranscode/transcode.cpp | 6
mythtv/programs/mythtv-setup/backendsettings.cpp | 20
mythtv/programs/mythtv-setup/main.cpp | 5
mythtv/programs/mythutil/main.cpp | 6
mythtv/programs/mythwelcome/main.cpp | 5
mythtv/programs/scripts/hardwareprofile/distros/mythtv_data/data_mythtv.py | 20
mythtv/programs/scripts/internetcontent/nv_python_libs/youtube/youtube_api.py | 27
mythtv/programs/scripts/metadata/Movie/tmdb3.py | 109
mythtv/themes/MythCenter-wide/htmls/progdetails_page1.html | 4
mythtv/themes/MythCenter-wide/htmls/progdetails_page2.html | 4
mythtv/themes/MythCenter-wide/music-base.xml | 7
mythtv/themes/MythCenter-wide/music-ui.xml | 6
mythtv/themes/MythCenter-wide/schedule-ui.xml | 4
mythtv/themes/MythCenter/htmls/progdetails_page1.html | 4
mythtv/themes/MythCenter/htmls/progdetails_page2.html | 4
mythtv/themes/MythCenter/schedule-ui.xml | 2
mythtv/themes/Terra/weather-ui.xml | 49
197 files changed, 8828 insertions(+), 5648 deletions(-)
Index: mythtv-0.26-fixes.patch
===================================================================
RCS file: /cvs/free/rpms/mythtv/devel/mythtv-0.26-fixes.patch,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- mythtv-0.26-fixes.patch 27 Apr 2013 13:06:20 -0000 1.5
+++ mythtv-0.26-fixes.patch 6 May 2013 13:46:55 -0000 1.6
@@ -17,8 +17,14 @@
mythplugins/mythmusic/mythmusic/cddb.cpp | 6 +-
mythplugins/mythmusic/mythmusic/cdrip.cpp | 2 +-
mythplugins/mythmusic/mythmusic/decoderhandler.cpp | 9 +-
- mythplugins/mythmusic/mythmusic/musiccommon.cpp | 12 +-
+ mythplugins/mythmusic/mythmusic/main.cpp | 73 +-
+ mythplugins/mythmusic/mythmusic/metadata.cpp | 5 +-
+ mythplugins/mythmusic/mythmusic/musiccommon.cpp | 13 +-
mythplugins/mythmusic/mythmusic/playersettings.cpp | 2 +-
+ mythplugins/mythmusic/mythmusic/playlist.cpp | 76 +-
+ mythplugins/mythmusic/mythmusic/playlist.h | 11 +-
+ .../mythmusic/mythmusic/playlistcontainer.cpp | 256 +-
+ .../mythmusic/mythmusic/playlistcontainer.h | 48 +-
mythplugins/mythmusic/mythmusic/pls.cpp | 209 +-
mythplugins/mythmusic/mythmusic/pls.h | 14 +-
mythplugins/mythmusic/mythmusic/shoutcast.cpp | 20 +-
@@ -27,6 +33,7 @@
.../mythmusic/theme/default-wide/music-ui.xml | 6 +-
mythplugins/mythmusic/theme/default/music-base.xml | 7 +
mythplugins/mythmusic/theme/default/stream-ui.xml | 450 +++
+ mythplugins/mythnews/mythnews/newssite.cpp | 66 +-
mythplugins/mythweather/i18n/mythweather_es_es.qm | Bin 23630 -> 23631 bytes
mythplugins/mythweather/i18n/mythweather_es_es.ts | 3 +-
mythplugins/mythweather/i18n/mythweather_pl.qm | Bin 23846 -> 23847 bytes
@@ -169,6 +176,8 @@
mythtv/programs/mythshutdown/commandlineparser.cpp | 14 +-
mythtv/programs/mythshutdown/main.cpp | 55 +-
mythtv/programs/mythtranscode/main.cpp | 5 +-
+ mythtv/programs/mythtranscode/mpeg2fix.cpp | 7 +-
+ mythtv/programs/mythtranscode/mpeg2fix.h | 4 +
mythtv/programs/mythtranscode/transcode.cpp | 6 +
mythtv/programs/mythtv-setup/backendsettings.cpp | 20 +-
mythtv/programs/mythtv-setup/main.cpp | 5 +-
@@ -186,7 +195,7 @@
.../themes/MythCenter/htmls/progdetails_page2.html | 4 +-
mythtv/themes/MythCenter/schedule-ui.xml | 2 +-
mythtv/themes/Terra/weather-ui.xml | 49 +-
- 188 files changed, 8609 insertions(+), 5320 deletions(-)
+ 197 files changed, 8828 insertions(+), 5648 deletions(-)
diff --git a/README.rst b/README.rst
index a151d89..576e0dc 100644
@@ -6934,11 +6943,161 @@
doStart((m_playlist.size() > 0));
}
+diff --git a/mythplugins/mythmusic/mythmusic/main.cpp b/mythplugins/mythmusic/mythmusic/main.cpp
+index c40fda7..7da4aa2 100644
+--- a/mythplugins/mythmusic/mythmusic/main.cpp
++++ b/mythplugins/mythmusic/mythmusic/main.cpp
+@@ -65,71 +65,6 @@ static QString chooseCD(void)
+ return MediaMonitor::defaultCDdevice();
+ }
+
+-static void SavePending(int pending)
+-{
+- // Temporary Hack until mythmusic
+- // has a proper settings/setup
+-
+- MSqlQuery query(MSqlQuery::InitCon());
+- query.prepare("SELECT * FROM settings "
+- "WHERE value = :LASTPUSH "
+- "AND hostname = :HOST ;");
+- query.bindValue(":LASTPUSH", "LastMusicPlaylistPush");
+- query.bindValue(":HOST", gCoreContext->GetHostName());
+-
+- if (query.exec() && query.size() == 0)
+- {
+- // first run from this host / recent version
+- query.prepare("INSERT INTO settings (value,data,hostname) VALUES "
+- "(:LASTPUSH, :DATA, :HOST );");
+- query.bindValue(":LASTPUSH", "LastMusicPlaylistPush");
+- query.bindValue(":DATA", pending);
+- query.bindValue(":HOST", gCoreContext->GetHostName());
+-
+- if (!query.exec())
+- MythDB::DBError("SavePending - inserting LastMusicPlaylistPush",
+- query);
+- }
+- else if (query.size() == 1)
+- {
+- // ah, just right
+- query.prepare("UPDATE settings SET data = :DATA "
+- "WHERE value = :LASTPUSH "
+- "AND hostname = :HOST ;");
+- query.bindValue(":DATA", pending);
+- query.bindValue(":LASTPUSH", "LastMusicPlaylistPush");
+- query.bindValue(":HOST", gCoreContext->GetHostName());
+-
+- if (!query.exec())
+- MythDB::DBError("SavePending - updating LastMusicPlaylistPush",
+- query);
+- }
+- else
+- {
+- // correct thor's diabolical plot to
+- // consume all table space
+-
+- query.prepare("DELETE FROM settings WHERE "
+- "WHERE value = :LASTPUSH "
+- "AND hostname = :HOST ;");
+- query.bindValue(":LASTPUSH", "LastMusicPlaylistPush");
+- query.bindValue(":HOST", gCoreContext->GetHostName());
+- if (!query.exec())
+- MythDB::DBError("SavePending - deleting LastMusicPlaylistPush",
+- query);
+-
+- query.prepare("INSERT INTO settings (value,data,hostname) VALUES "
+- "(:LASTPUSH, :DATA, :HOST );");
+- query.bindValue(":LASTPUSH", "LastMusicPlaylistPush");
+- query.bindValue(":DATA", pending);
+- query.bindValue(":HOST", gCoreContext->GetHostName());
+-
+- if (!query.exec())
+- MythDB::DBError("SavePending - inserting LastMusicPlaylistPush (2)",
+- query);
+- }
+-}
+-
+ static void loadMusic()
+ {
+ // only do this once
+@@ -183,8 +118,7 @@ static void loadMusic()
+ AllMusic *all_music = new AllMusic();
+
+ // Load all playlists into RAM (once!)
+- PlaylistContainer *all_playlists = new PlaylistContainer(
+- all_music, gCoreContext->GetHostName());
++ PlaylistContainer *all_playlists = new PlaylistContainer(all_music);
+
+ gMusicData->all_music = all_music;
+ gMusicData->all_streams = new AllStream();
+@@ -197,7 +131,6 @@ static void loadMusic()
+ qApp->processEvents();
+ usleep(50000);
+ }
+- gMusicData->all_playlists->postLoad();
+
+ gMusicData->all_streams->createPlaylist();
+
+@@ -312,8 +245,6 @@ static void runScan(void)
+ if (gMusicData->all_playlists && gMusicData->all_playlists->cleanOutThreads())
+ {
+ gMusicData->all_playlists->save();
+- int x = gMusicData->all_playlists->getPending();
+- SavePending(x);
+ }
+
+ // force a complete reload of the tracks and playlists
+@@ -708,8 +639,6 @@ void mythplugin_destroy(void)
+ if (gMusicData->all_playlists && gMusicData->all_playlists->cleanOutThreads())
+ {
+ gMusicData->all_playlists->save();
+- int x = gMusicData->all_playlists->getPending();
+- SavePending(x);
+ }
+
+ delete gPlayer;
+diff --git a/mythplugins/mythmusic/mythmusic/metadata.cpp b/mythplugins/mythmusic/mythmusic/metadata.cpp
+index 5e53092..9559ac5 100644
+--- a/mythplugins/mythmusic/mythmusic/metadata.cpp
++++ b/mythplugins/mythmusic/mythmusic/metadata.cpp
+@@ -1451,6 +1451,8 @@ void AllStream::updateStream(Metadata* mdata)
+
+ void AllStream::createPlaylist(void)
+ {
++ gMusicData->all_playlists->getStreamPlaylist()->disableSaves();
++
+ gMusicData->all_playlists->getStreamPlaylist()->removeAllTracks();
+
+ for (int x = 0; x < m_streamList.count(); x++)
+@@ -1458,6 +1460,8 @@ void AllStream::createPlaylist(void)
+ Metadata *mdata = m_streamList.at(x);
+ gMusicData->all_playlists->getStreamPlaylist()->addTrack(mdata->ID(), false);
+ }
++
++ gMusicData->all_playlists->getStreamPlaylist()->enableSaves();
+ }
+
+ /**************************************************************************/
+@@ -1834,7 +1838,6 @@ void MusicData::reloadMusic(void)
+ qApp->processEvents();
+ usleep(50000);
+ }
+- all_playlists->postLoad();
+
+ if (busy)
+ busy->Close();
diff --git a/mythplugins/mythmusic/mythmusic/musiccommon.cpp b/mythplugins/mythmusic/mythmusic/musiccommon.cpp
-index c549da8..7f0dcc8 100644
+index c549da8..f719c29 100644
--- a/mythplugins/mythmusic/mythmusic/musiccommon.cpp
+++ b/mythplugins/mythmusic/mythmusic/musiccommon.cpp
-@@ -1544,7 +1544,11 @@ void MusicCommon::customEvent(QEvent *event)
+@@ -1471,6 +1471,7 @@ void MusicCommon::customEvent(QEvent *event)
+ QString songList = gPlayer->getPlaylist()->toRawSonglist();
+ playlist->removeAllTracks();
+ playlist->fillSongsFromSonglist(songList);
++ playlist->changed();
+ gPlayer->playlistChanged(playlist->getID());
+ }
+ }
+@@ -1544,7 +1545,11 @@ void MusicCommon::customEvent(QEvent *event)
Metadata *mdata = qVariantValue<Metadata*> (item->GetData());
if (mdata && mdata->ID() == (Metadata::IdType) trackID)
{
@@ -6951,7 +7110,7 @@
break;
}
}
-@@ -1564,6 +1568,9 @@ void MusicCommon::customEvent(QEvent *event)
+@@ -1564,6 +1569,9 @@ void MusicCommon::customEvent(QEvent *event)
m_currentTrack, &m_playlistPlayedTime);
updatePlaylistStats();
updateTrackInfo(gPlayer->getCurrentMetadata());
@@ -6961,7 +7120,7 @@
}
else if (event->type() == MusicPlayerEvent::TrackAddedEvent)
{
-@@ -1608,6 +1615,9 @@ void MusicCommon::customEvent(QEvent *event)
+@@ -1608,6 +1616,9 @@ void MusicCommon::customEvent(QEvent *event)
item->DisplayState("default", "playstate");
}
}
@@ -6984,6 +7143,847 @@
m_resumeMode->SetHelpText(tr("Resume playback at either the beginning of the "
"active play queue, the beginning of the last track, "
+diff --git a/mythplugins/mythmusic/mythmusic/playlist.cpp b/mythplugins/mythmusic/mythmusic/playlist.cpp
+index 311172b..32ad0c2 100644
+--- a/mythplugins/mythmusic/mythmusic/playlist.cpp
++++ b/mythplugins/mythmusic/mythmusic/playlist.cpp
+@@ -43,13 +43,19 @@ bool Playlist::checkTrack(int a_track_id) const
+ return false;
+ }
+
+-void Playlist::copyTracks(Playlist *to_ptr, bool update_display) const
++void Playlist::copyTracks(Playlist *to_ptr, bool update_display)
+ {
++ disableSaves();
++
+ SongList::const_iterator it = m_songs.begin();
+ for (; it != m_songs.end(); ++it)
+ {
+ to_ptr->addTrack(*it, update_display);
+ }
++
++ enableSaves();
++
++ changed();
+ }
+
+ /// Given a tracks ID, add that track to this playlist
+@@ -76,7 +82,7 @@ void Playlist::addTrack(Metadata *mdata, bool update_display)
+ m_shuffledSongs.push_back(mdata);
+ m_songMap.insert(mdata->ID(), mdata);
+
+- m_changed = true;
++ changed();
+
+ if (update_display)
+ gPlayer->activePlaylistChanged(mdata->ID(), false);
+@@ -88,7 +94,7 @@ void Playlist::removeAllTracks(void)
+ m_songMap.clear();
+ m_shuffledSongs.clear();
+
+- m_changed = true;
++ changed();
+ }
+
+ void Playlist::removeTrack(int the_track)
+@@ -101,6 +107,8 @@ void Playlist::removeTrack(int the_track)
+ m_shuffledSongs.removeAll(*it);
+ }
+
++ changed();
++
+ gPlayer->activePlaylistChanged(the_track, true);
+ }
+
+@@ -137,7 +145,7 @@ void Playlist::moveTrackUpDown(bool flag, Metadata* mdata)
+ m_shuffledSongs.removeAt(where_its_at);
+ m_shuffledSongs.insert(insertion_point, mdata);
+
+- m_changed = true;
++ changed();
+ }
+
+ Playlist::Playlist(void) :
+@@ -145,6 +153,7 @@ Playlist::Playlist(void) :
+ m_name(QObject::tr("oops")),
+ m_parent(NULL),
+ m_changed(false),
++ m_doSave(true),
+ m_progress(NULL),
+ m_proc(NULL),
+ m_procExitVal(0)
+@@ -536,7 +545,6 @@ void Playlist::loadPlaylist(QString a_name, QString a_host)
+ MSqlQuery query(MSqlQuery::InitCon());
+
+ if (m_name == "default_playlist_storage" ||
+- m_name == "backup_playlist_storage" ||
+ m_name == "stream_playlist")
+ {
+ query.prepare("SELECT playlist_id, playlist_name, playlist_songs "
+@@ -547,7 +555,7 @@ void Playlist::loadPlaylist(QString a_name, QString a_host)
+ else
+ {
+ // Technically this is never called as this function
+- // is only used to load the default/backup playlists.
++ // is only used to load the default playlist.
+ query.prepare("SELECT playlist_id, playlist_name, playlist_songs "
+ "FROM music_playlists "
+ "WHERE playlist_name = :NAME"
+@@ -564,10 +572,6 @@ void Playlist::loadPlaylist(QString a_name, QString a_host)
+ m_name = query.value(1).toString();
+ rawSonglist = query.value(2).toString();
+ }
+- if (m_name == "default_playlist_storage")
+- m_name = QObject::tr("Default Playlist");
+- if (m_name == "backup_playlist_storage")
+- m_name = "and they should **REALLY** never see this";
+ }
+ else
+ {
+@@ -576,7 +580,6 @@ void Playlist::loadPlaylist(QString a_name, QString a_host)
+ // of an existing playlist
+ rawSonglist.clear();
+ savePlaylist(a_name, a_host);
+- m_changed = true;
+ }
+
+ fillSongsFromSonglist(rawSonglist);
+@@ -607,8 +610,6 @@ void Playlist::loadPlaylistByID(int id, QString a_host)
+
+ if (m_name == "default_playlist_storage")
+ m_name = QObject::tr("Default Playlist");
+- if (m_name == "backup_playlist_storage")
+- m_name = "and they should **REALLY** never see this";
+
+ fillSongsFromSonglist(rawSonglist);
+ }
+@@ -616,6 +617,7 @@ void Playlist::loadPlaylistByID(int id, QString a_host)
+ void Playlist::fillSongsFromSonglist(QString songList)
+ {
+ Metadata::IdType id;
++ bool badTrack = false;
+
+ QStringList list = songList.split(",", QString::SkipEmptyParts);
+ QStringList::iterator it = list.begin();
+@@ -634,8 +636,7 @@ void Playlist::fillSongsFromSonglist(QString songList)
+ }
+ else
+ {
+- m_changed = true;
+-
++ badTrack = true;
+ LOG(VB_GENERAL, LOG_ERR, LOC + QString("Got a bad track %1").arg(id));
+ }
+ }
+@@ -650,8 +651,7 @@ void Playlist::fillSongsFromSonglist(QString songList)
+ }
+ else
+ {
+- m_changed = true;
+-
++ badTrack = true;
+ LOG(VB_GENERAL, LOG_ERR, LOC + QString("Got a bad track %1").arg(id));
+ }
+ }
+@@ -662,10 +662,12 @@ void Playlist::fillSongsFromSonglist(QString songList)
+ else
+ shuffleTracks(MusicPlayer::SHUFFLE_OFF);
+
++ if (badTrack)
++ changed();
++
+ gPlayer->activePlaylistChanged(-1, false);
+ }
+
+-//FIXME:: this needs checking
+ void Playlist::fillSonglistFromQuery(QString whereClause,
+ bool removeDuplicates,
+ InsertPLOption insertOption,
+@@ -674,6 +676,7 @@ void Playlist::fillSonglistFromQuery(QString whereClause,
+ QString orig_songlist = toRawSonglist();
+ QString new_songlist;
+
++ disableSaves();
+ removeAllTracks();
+
+ MSqlQuery query(MSqlQuery::InitCon());
+@@ -699,6 +702,8 @@ void Playlist::fillSonglistFromQuery(QString whereClause,
+ MythDB::DBError("Load songlist from query", query);
+ new_songlist.clear();
+ fillSongsFromSonglist(new_songlist);
++ enableSaves();
++ changed();
+ return;
+ }
+
+@@ -754,6 +759,9 @@ void Playlist::fillSonglistFromQuery(QString whereClause,
+ }
+
+ fillSongsFromSonglist(new_songlist);
++
++ enableSaves();
++ changed();
+ }
+
+ // songList is a list of trackIDs to add
+@@ -765,6 +773,8 @@ void Playlist::fillSonglistFromList(const QList<int> &songList,
+ QString orig_songlist = toRawSonglist();
+ QString new_songlist;
+
++ disableSaves();
++
+ removeAllTracks();
+
+ for (int x = 0; x < songList.count(); x++)
+@@ -819,11 +829,10 @@ void Playlist::fillSonglistFromList(const QList<int> &songList,
+ }
+
+ fillSongsFromSonglist(new_songlist);
+-}
+
+-void Playlist::fillSongsFromCD()
+-{
+- //FIXME: is this still needed?
++ enableSaves();
++
++ changed();
+ }
+
+ QString Playlist::toRawSonglist(bool shuffled)
+@@ -939,29 +948,35 @@ void Playlist::fillSonglistFromSmartPlaylist(QString category, QString name,
+ if (limitTo > 0)
+ whereClause += " LIMIT " + QString::number(limitTo);
+
+- //m_name = name; // Set Playlist name to match smart playlist name
+-
+ fillSonglistFromQuery(whereClause, removeDuplicates,
+ insertOption, currentTrackID);
+ }
+
++void Playlist::changed(void)
++{
++ m_changed = true;
++
++ if (m_doSave)
++ savePlaylist(m_name, gCoreContext->GetHostName());
++}
++
+ void Playlist::savePlaylist(QString a_name, QString a_host)
+ {
++ LOG(VB_GENERAL, LOG_DEBUG, LOC + "Saving playlist: " + a_name);
++
+ m_name = a_name.simplified();
+- if (m_name.length() < 1)
++ if (m_name.isEmpty())
+ {
+ LOG(VB_GENERAL, LOG_WARNING, LOC + "Not saving unnamed playlist");
+ return;
+ }
+
+- if (a_host.length() < 1)
++ if (a_host.isEmpty())
+ {
+ LOG(VB_GENERAL, LOG_WARNING, LOC +
+ "Not saving playlist without a host name");
+ return;
+ }
+- if (m_name.length() < 1)
+- return;
+
+ QString rawSonglist = toRawSonglist(true);
+
+@@ -970,8 +985,7 @@ void Playlist::savePlaylist(QString a_name, QString a_host)
+
+ getStats(&songcount, &playtime);
+
+- bool save_host = ("default_playlist_storage" == a_name
+- || "backup_playlist_storage" == a_name);
++ bool save_host = ("default_playlist_storage" == a_name);
+ if (m_playlistid > 0)
+ {
+ QString str_query = "UPDATE music_playlists SET "
+@@ -1014,6 +1028,8 @@ void Playlist::savePlaylist(QString a_name, QString a_host)
+
+ if (m_playlistid < 1)
+ m_playlistid = query.lastInsertId().toInt();
++
++ m_changed = false;
+ }
+
+ QString Playlist::removeDuplicateTracks(const QString &orig_songlist, const QString &new_songlist)
+diff --git a/mythplugins/mythmusic/mythmusic/playlist.h b/mythplugins/mythmusic/mythmusic/playlist.h
+index 469dc4e..25b84cc 100644
+--- a/mythplugins/mythmusic/mythmusic/playlist.h
++++ b/mythplugins/mythmusic/mythmusic/playlist.h
+@@ -53,7 +53,6 @@ class Playlist : public QObject
+
+ void describeYourself(void) const; // debugging
+
+- void fillSongsFromCD();
+ void fillSongsFromSonglist(QString songList);
+ void fillSonglistFromQuery(QString whereClause,
+ bool removeDuplicates = false,
+@@ -85,10 +84,15 @@ class Playlist : public QObject
+ void removeTrack(int the_track_id);
+ void removeAllTracks(void);
+
+- void copyTracks(Playlist *to_ptr, bool update_display) const;
++ void copyTracks(Playlist *to_ptr, bool update_display);
+
+ bool hasChanged(void) { return m_changed; }
+- void Changed(void) { m_changed = true; }
++ void changed(void);
++
++ /// whether any changes should be saved to the DB
++ void disableSaves(void) { m_doSave = false; }
++ void enableSaves(void) { m_doSave = true; }
++ bool doSaves(void) { return m_doSave; }
+
+ QString getName(void) { return m_name; }
+ void setName(QString a_name) { m_name = a_name; }
+@@ -118,6 +122,7 @@ class Playlist : public QObject
+ QMap<int, Metadata*> m_songMap;
+ PlaylistContainer *m_parent;
+ bool m_changed;
++ bool m_doSave;
+ MythProgressDialog *m_progress;
+ MythSystem *m_proc;
+ uint m_procExitVal;
+diff --git a/mythplugins/mythmusic/mythmusic/playlistcontainer.cpp b/mythplugins/mythmusic/mythmusic/playlistcontainer.cpp
+index 715811c..2c35068 100644
+--- a/mythplugins/mythmusic/mythmusic/playlistcontainer.cpp
++++ b/mythplugins/mythmusic/mythmusic/playlistcontainer.cpp
+@@ -28,95 +28,85 @@ void PlaylistLoadingThread::run()
+
+ void PlaylistContainer::clearCDList()
+ {
+- cd_playlist.clear();
++ m_cdPlaylist.clear();
+ }
+
+ void PlaylistContainer::addCDTrack(int track)
+ {
+- cd_playlist.push_back(track);
++ m_cdPlaylist.push_back(track);
+ }
+
+ void PlaylistContainer::removeCDTrack(int track)
+ {
+- cd_playlist.removeAll(track);
++ m_cdPlaylist.removeAll(track);
+ }
+
+ bool PlaylistContainer::checkCDTrack(int track)
+ {
+- return cd_playlist.contains(track);
++ return m_cdPlaylist.contains(track);
+ }
+
+-PlaylistContainer::PlaylistContainer(
+- AllMusic *all_music, const QString &host_name) :
+- active_playlist(NULL), backup_playlist(NULL),
+- stream_playlist(NULL),
+- all_other_playlists(NULL), all_available_music(all_music),
+- pending_writeback_index(-1),
++PlaylistContainer::PlaylistContainer(AllMusic *all_music) :
++ m_activePlaylist(NULL), m_streamPlaylist(NULL),
++ m_allPlaylists(NULL), m_allMusic(all_music),
+
+- playlists_loader(new PlaylistLoadingThread(this, all_music)),
+- done_loading(false), my_host(host_name),
++ m_playlistsLoader(new PlaylistLoadingThread(this, all_music)),
++ m_doneLoading(false), m_myHost(gCoreContext->GetHostName()),
+
+- RatingWeight( gCoreContext->GetNumSetting("IntelliRatingWeight", 2)),
+- PlayCountWeight(gCoreContext->GetNumSetting("IntelliPlayCountWeight", 2)),
+- LastPlayWeight( gCoreContext->GetNumSetting("IntelliLastPlayWeight", 2)),
+- RandomWeight( gCoreContext->GetNumSetting("IntelliRandomWeight", 2))
++ m_ratingWeight( gCoreContext->GetNumSetting("IntelliRatingWeight", 2)),
++ m_playCountWeight(gCoreContext->GetNumSetting("IntelliPlayCountWeight", 2)),
++ m_lastPlayWeight( gCoreContext->GetNumSetting("IntelliLastPlayWeight", 2)),
++ m_randomWeight( gCoreContext->GetNumSetting("IntelliRandomWeight", 2))
+ {
+- playlists_loader->start();
++ m_playlistsLoader->start();
+ }
+
+ PlaylistContainer::~PlaylistContainer()
+ {
+- playlists_loader->wait();
+- delete playlists_loader;
+- playlists_loader = NULL;
+-
+- if (active_playlist)
+- delete active_playlist;
+- if (backup_playlist)
+- delete backup_playlist;
+- if (stream_playlist)
+- delete stream_playlist;
+- if (all_other_playlists)
++ m_playlistsLoader->wait();
++ delete m_playlistsLoader;
++ m_playlistsLoader = NULL;
++
++ if (m_activePlaylist)
++ delete m_activePlaylist;
++ if (m_streamPlaylist)
++ delete m_streamPlaylist;
++ if (m_allPlaylists)
+ {
+- while (!all_other_playlists->empty())
++ while (!m_allPlaylists->empty())
+ {
+- delete all_other_playlists->front();
+- all_other_playlists->pop_front();
++ delete m_allPlaylists->front();
++ m_allPlaylists->pop_front();
+ }
+- delete all_other_playlists;
++ delete m_allPlaylists;
+ }
+ }
+
+ void PlaylistContainer::FillIntelliWeights(int &rating, int &playcount,
+ int &lastplay, int &random)
+ {
+- rating = RatingWeight;
+- playcount = PlayCountWeight;
+- lastplay = LastPlayWeight;
+- random = RandomWeight;
++ rating = m_randomWeight;
++ playcount = m_playCountWeight;
++ lastplay = m_lastPlayWeight;
++ random = m_randomWeight;
+ }
+
+ void PlaylistContainer::load()
+ {
+- done_loading = false;
+- active_playlist = new Playlist();
+- active_playlist->setParent(this);
++ m_doneLoading = false;
++ m_activePlaylist = new Playlist();
++ m_activePlaylist->setParent(this);
+
+- backup_playlist = new Playlist();
+- backup_playlist->setParent(this);
++ m_streamPlaylist = new Playlist();
++ m_streamPlaylist->setParent(this);
+
+- stream_playlist = new Playlist();
+- stream_playlist->setParent(this);
++ m_allPlaylists = new QList<Playlist*>;
+
+- all_other_playlists = new QList<Playlist*>;
++ m_cdPlaylist.clear();
+
+- cd_playlist.clear();
++ m_activePlaylist->loadPlaylist("default_playlist_storage", m_myHost);
+
+- active_playlist->loadPlaylist("default_playlist_storage", my_host);
+-
+- backup_playlist->loadPlaylist("backup_playlist_storage", my_host);
+-
+- stream_playlist->loadPlaylist("stream_playlist", my_host);
++ m_streamPlaylist->loadPlaylist("stream_playlist", m_myHost);
+
+ MSqlQuery query(MSqlQuery::InitCon());
+ query.prepare("SELECT playlist_id FROM music_playlists "
+@@ -128,7 +118,7 @@ void PlaylistContainer::load()
+ query.bindValue(":DEFAULT", "default_playlist_storage");
+ query.bindValue(":BACKUP", "backup_playlist_storage");
+ query.bindValue(":STREAM", "stream_playlist");
+- query.bindValue(":HOST", my_host);
++ query.bindValue(":HOST", m_myHost);
+
+ if (!query.exec())
+ {
+@@ -141,26 +131,21 @@ void PlaylistContainer::load()
+ Playlist *temp_playlist = new Playlist();
+ // No, we don't destruct this ...
+ temp_playlist->setParent(this);
+- temp_playlist->loadPlaylistByID(query.value(0).toInt(), my_host);
+- all_other_playlists->push_back(temp_playlist);
++ temp_playlist->loadPlaylistByID(query.value(0).toInt(), m_myHost);
++ m_allPlaylists->push_back(temp_playlist);
+ // ... cause it's sitting on this PtrList
+ }
+ }
+- postLoad();
+-
+- pending_writeback_index = 0;
+
+- int x = gCoreContext->GetNumSetting("LastMusicPlaylistPush");
+- setPending(x);
+- done_loading = true;
++ m_doneLoading = true;
+ }
+
+ void PlaylistContainer::describeYourself(void) const
+ {
+ // Debugging
+- active_playlist->describeYourself();
+- QList<Playlist*>::const_iterator it = all_other_playlists->begin();
+- for (; it != all_other_playlists->end(); ++it)
++ m_activePlaylist->describeYourself();
++ QList<Playlist*>::const_iterator it = m_allPlaylists->begin();
++ for (; it != m_allPlaylists->end(); ++it)
+ (*it)->describeYourself();
+ }
+
+@@ -169,13 +154,13 @@ Playlist *PlaylistContainer::getPlaylist(int id)
+ // return a pointer to a playlist
+ // by id;
+
+- if (active_playlist->getID() == id)
++ if (m_activePlaylist->getID() == id)
+ {
+- return active_playlist;
++ return m_activePlaylist;
+ }
+
+- QList<Playlist*>::iterator it = all_other_playlists->begin();
+- for (; it != all_other_playlists->end(); ++it)
++ QList<Playlist*>::iterator it = m_allPlaylists->begin();
++ for (; it != m_allPlaylists->end(); ++it)
+ {
+ if ((*it)->getID() == id)
+ return *it;
+@@ -191,8 +176,8 @@ Playlist *PlaylistContainer::getPlaylist(const QString &name)
+ // return a pointer to a playlist
+ // by name;
+
+- QList<Playlist*>::iterator it = all_other_playlists->begin();
+- for (; it != all_other_playlists->end(); ++it)
++ QList<Playlist*>::iterator it = m_allPlaylists->begin();
++ for (; it != m_allPlaylists->end(); ++it)
+ {
+ if ((*it)->getName() == name)
+ return *it;
+@@ -204,16 +189,15 @@ Playlist *PlaylistContainer::getPlaylist(const QString &name)
+
+ void PlaylistContainer::save(void)
+ {
+- QList<Playlist*>::const_iterator it = all_other_playlists->begin();
+- for (; it != all_other_playlists->end(); ++it)
++ QList<Playlist*>::const_iterator it = m_allPlaylists->begin();
++ for (; it != m_allPlaylists->end(); ++it)
+ {
+ if ((*it)->hasChanged())
+- (*it)->savePlaylist((*it)->getName(), my_host);
++ (*it)->savePlaylist((*it)->getName(), m_myHost);
+ }
+
+- active_playlist->savePlaylist("default_playlist_storage", my_host);
+- backup_playlist->savePlaylist("backup_playlist_storage", my_host);
+- stream_playlist->savePlaylist("stream_playlist", my_host);
++ m_activePlaylist->savePlaylist("default_playlist_storage", m_myHost);
++ m_streamPlaylist->savePlaylist("stream_playlist", m_myHost);
+ }
+
+ void PlaylistContainer::createNewPlaylist(QString name)
+@@ -222,9 +206,9 @@ void PlaylistContainer::createNewPlaylist(QString name)
+ new_list->setParent(this);
+
+ // Need to touch the database to get persistent ID
+- new_list->savePlaylist(name, my_host);
+- new_list->Changed();
+- all_other_playlists->push_back(new_list);
++ new_list->savePlaylist(name, m_myHost);
++
++ m_allPlaylists->push_back(new_list);
+ }
+
+ void PlaylistContainer::copyNewPlaylist(QString name)
+@@ -233,41 +217,15 @@ void PlaylistContainer::copyNewPlaylist(QString name)
+ new_list->setParent(this);
+
+ // Need to touch the database to get persistent ID
+- new_list->savePlaylist(name, my_host);
+- new_list->Changed();
+- all_other_playlists->push_back(new_list);
+- active_playlist->copyTracks(new_list, false);
+- pending_writeback_index = 0;
+-}
++ new_list->savePlaylist(name, m_myHost);
+
+-void PlaylistContainer::popBackPlaylist()
+-{
+- Playlist *destination = getPlaylist(pending_writeback_index);
+- if (!destination)
+- {
+- LOG(VB_GENERAL, LOG_WARNING, LOC + "popBackPlaylist() " +
+- QString("Unknown playlist: %1") .arg(pending_writeback_index));
+- return;
+- }
+- destination->removeAllTracks();
+- destination->Changed();
+- active_playlist->copyTracks(destination, false);
+- active_playlist->removeAllTracks();
+- backup_playlist->copyTracks(active_playlist, true);
+- pending_writeback_index = 0;
+-
+- active_playlist->Changed();
+- backup_playlist->Changed();
++ m_allPlaylists->push_back(new_list);
++ m_activePlaylist->copyTracks(new_list, false);
+ }
+
+ void PlaylistContainer::copyToActive(int index)
+ {
+- backup_playlist->removeAllTracks();
+- active_playlist->copyTracks(backup_playlist, false);
+-
+- pending_writeback_index = index;
+-
+- active_playlist->removeAllTracks();
++ m_activePlaylist->removeAllTracks();
+ Playlist *copy_from = getPlaylist(index);
+ if (!copy_from)
+ {
+@@ -275,20 +233,16 @@ void PlaylistContainer::copyToActive(int index)
+ QString("Unknown playlist: %1").arg(index));
+ return;
+ }
+- copy_from->copyTracks(active_playlist, true);
+-
+- active_playlist->Changed();
+- backup_playlist->Changed();
++ copy_from->copyTracks(m_activePlaylist, true);
+ }
+
+-
+ void PlaylistContainer::renamePlaylist(int index, QString new_name)
+ {
+ Playlist *list_to_rename = getPlaylist(index);
+ if (list_to_rename)
+ {
+ list_to_rename->setName(new_name);
+- list_to_rename->Changed();
++ list_to_rename->changed();
+ }
+ }
+
+@@ -301,21 +255,9 @@ void PlaylistContainer::deletePlaylist(int kill_me)
+ QString("Unknown playlist: %1").arg(kill_me));
+ return;
+ }
+- // First, we need to take out any **track** on any other
+- // playlist that is actually a reference to this
+- // playlist
+
+- if (kill_me == pending_writeback_index)
+- popBackPlaylist();
+-
+- active_playlist->removeTrack(kill_me * -1);
+-
+- QList<Playlist*>::iterator it = all_other_playlists->begin();
+- for (; it != all_other_playlists->end(); ++it)
+- {
+- if ((*it) != list_to_kill)
+- (*it)->removeTrack(kill_me * -1);
+- }
++ list_to_kill->removeAllTracks();
++ m_allPlaylists->removeAll(list_to_kill);
+
+ MSqlQuery query(MSqlQuery::InitCon());
+ query.prepare("DELETE FROM music_playlists WHERE playlist_id = :ID ;");
+@@ -325,22 +267,20 @@ void PlaylistContainer::deletePlaylist(int kill_me)
+ {
+ MythDB::DBError("playlist delete", query);
+ }
+- list_to_kill->removeAllTracks();
+- all_other_playlists->removeAll(list_to_kill);
+ }
+
+
+ QString PlaylistContainer::getPlaylistName(int index, bool &reference)
+ {
+- if (active_playlist)
++ if (m_activePlaylist)
+ {
+- if (active_playlist->getID() == index)
++ if (m_activePlaylist->getID() == index)
+ {
+- return active_playlist->getName();
++ return m_activePlaylist->getName();
+ }
+
+- QList<Playlist*>::iterator it = all_other_playlists->begin();
+- for (; it != all_other_playlists->end(); ++it)
++ QList<Playlist*>::iterator it = m_allPlaylists->begin();
++ for (; it != m_allPlaylists->end(); ++it)
+ {
+ if ((*it)->getID() == index)
+ return (*it)->getName();
+@@ -354,42 +294,13 @@ QString PlaylistContainer::getPlaylistName(int index, bool &reference)
+ return QObject::tr("Something is Wrong");
+ }
+
+-
+-void PlaylistContainer::postLoad()
+-{
+- //FIXME remove this and the other post load stuff?
+-
+- // Now that everything is loaded, we need to recheck all
+- // tracks and update those that refer to a playlist
+-#if 0
+- active_playlist->postLoad();
+- backup_playlist->postLoad();
+-
+- QList<Playlist*>::iterator it = all_other_playlists->begin();
+- for (; it != all_other_playlists->end(); ++it)
+- (*it)->postLoad();
+-#endif
+-}
+-
+-bool PlaylistContainer::pendingWriteback()
+-{
+- if (pending_writeback_index > 0)
+- {
+- return true;
+- }
+- return false;
+-}
+-
+ bool PlaylistContainer::nameIsUnique(QString a_name, int which_id)
+ {
+ if (a_name == "default_playlist_storage")
+ return false;
+
+- if (a_name == "backup_playlist_storage")
+- return false;
+-
+- QList<Playlist*>::iterator it = all_other_playlists->begin();
+- for (; it != all_other_playlists->end(); ++it)
++ QList<Playlist*>::iterator it = m_allPlaylists->begin();
++ for (; it != m_allPlaylists->end(); ++it)
+ {
+ if ((*it)->getName() == a_name && (*it)->getID() != which_id)
+ return false;
+@@ -402,8 +313,8 @@ QStringList PlaylistContainer::getPlaylistNames(void)
+ {
+ QStringList res;
+
+- QList<Playlist*>::iterator it = all_other_playlists->begin();
+- for (; it != all_other_playlists->end(); ++it)
++ QList<Playlist*>::iterator it = m_allPlaylists->begin();
++ for (; it != m_allPlaylists->end(); ++it)
+ {
+ res.append((*it)->getName());
+ }
+@@ -413,20 +324,15 @@ QStringList PlaylistContainer::getPlaylistNames(void)
+
+ bool PlaylistContainer::cleanOutThreads()
+ {
+- if (playlists_loader->isFinished())
++ if (m_playlistsLoader->isFinished())
+ {
+ return true;
+ }
+- playlists_loader->wait();
++ m_playlistsLoader->wait();
+ return false;
+ }
+
+ void PlaylistContainer::clearActive()
+ {
+- backup_playlist->removeAllTracks();
+- active_playlist->removeAllTracks();
+- backup_playlist->Changed();
+- active_playlist->Changed();
+- pending_writeback_index = 0;
++ m_activePlaylist->removeAllTracks();
+ }
+-
+diff --git a/mythplugins/mythmusic/mythmusic/playlistcontainer.h b/mythplugins/mythmusic/mythmusic/playlistcontainer.h
+index a2f826b..7550713 100644
+--- a/mythplugins/mythmusic/mythmusic/playlistcontainer.h
++++ b/mythplugins/mythmusic/mythmusic/playlistcontainer.h
+@@ -20,16 +20,16 @@ class PlaylistLoadingThread : public MThread
+ class PlaylistContainer
+ {
+ public:
+- PlaylistContainer(AllMusic *all_music, const QString &host_name);
++ PlaylistContainer(AllMusic *all_music);
+ ~PlaylistContainer();
+
+ void load();
+ void describeYourself(void) const; // debugging
+
+- Playlist* getActive(void) { return active_playlist; }
++ Playlist* getActive(void) { return m_activePlaylist; }
+ Playlist* getPlaylist(int id);
+ Playlist* getPlaylist(const QString &name);
+- Playlist* getStreamPlaylist(void) { return stream_playlist; }
++ Playlist* getStreamPlaylist(void) { return m_streamPlaylist; }
+
+ void clearCDList();
+ void addCDTrack(int x);
+@@ -43,47 +43,37 @@ class PlaylistContainer
+
+ QString getPlaylistName(int index, bool &reference);
+
+- void postLoad();
+-
+ void deletePlaylist(int index);
+ void renamePlaylist(int index, QString new_name);
+
+- void popBackPlaylist();
+- bool pendingWriteback();
+- void setPending(int x) {pending_writeback_index = x;}
+- int getPending() {return pending_writeback_index;}
+-
+ bool nameIsUnique(QString a_name, int which_id);
+
+ void clearActive();
+
+- bool doneLoading(){return done_loading;}
++ bool doneLoading(){return m_doneLoading;}
+
+ bool cleanOutThreads();
+
+ void FillIntelliWeights(int &rating, int &playcount,
+ int &lastplay, int &random);
+- QList<Playlist*> *getPlaylists(void) { return all_other_playlists; }
++ QList<Playlist*> *getPlaylists(void) { return m_allPlaylists; }
+ QStringList getPlaylistNames(void);
+
+ private:
+- Playlist *active_playlist;
+- Playlist *backup_playlist;
+- Playlist *stream_playlist;
+- QList<int> cd_playlist;
+- QList<Playlist*> *all_other_playlists;
+- AllMusic *all_available_music;
+-
+- int pending_writeback_index;
+-
+- PlaylistLoadingThread *playlists_loader;
+- bool done_loading;
+- QString my_host;
+-
+- int RatingWeight;
+- int PlayCountWeight;
+- int LastPlayWeight;
+- int RandomWeight;
++ Playlist *m_activePlaylist;
++ Playlist *m_streamPlaylist;
++ QList<int> m_cdPlaylist;
++ QList<Playlist*> *m_allPlaylists;
++ AllMusic *m_allMusic;
++
++ PlaylistLoadingThread *m_playlistsLoader;
++ bool m_doneLoading;
++ QString m_myHost;
++
++ int m_ratingWeight;
++ int m_playCountWeight;
++ int m_lastPlayWeight;
++ int m_randomWeight;
+ };
+
+ #endif // _PLAYLIST_CONTAINER_H_
diff --git a/mythplugins/mythmusic/mythmusic/pls.cpp b/mythplugins/mythmusic/mythmusic/pls.cpp
index 0cb8de8..f2fa96e 100644
--- a/mythplugins/mythmusic/mythmusic/pls.cpp
@@ -7879,6 +8879,102 @@
+ </window>
+
+</mythuitheme>
+diff --git a/mythplugins/mythnews/mythnews/newssite.cpp b/mythplugins/mythnews/mythnews/newssite.cpp
+index 2268853..e25cb6d 100644
+--- a/mythplugins/mythnews/mythnews/newssite.cpp
++++ b/mythplugins/mythnews/mythnews/newssite.cpp
+@@ -286,6 +286,26 @@ void NewsSite::process(void)
+
+ }
+
++static bool isImage(const QString &mimeType)
++{
++ if (mimeType == "image/png" || mimeType == "image/jpeg" ||
++ mimeType == "image/jpg" || mimeType == "image/gif" ||
++ mimeType == "image/bmp")
++ return true;
++
++ return false;
++}
++
++static bool isVideo(const QString &mimeType)
++{
++ if (mimeType == "video/mpeg" || mimeType == "video/x-ms-wmv" ||
++ mimeType == "application/x-troff-msvideo" || mimeType == "video/avi" ||
++ mimeType == "video/msvideo" || mimeType == "video/x-msvideo")
++ return true;
++
++ return false;
++}
++
+ void NewsSite::parseRSS(QDomDocument domDoc)
+ {
+ QMutexLocker locker(&m_lock);
+@@ -349,6 +369,7 @@ void NewsSite::parseRSS(QDomDocument domDoc)
+ //////////////////////////////////////////////////////////////
+ // From this point forward, we process RSS 2.0 media tags.
+ // Please put all other tag processing before this comment.
++ // See http://www.rssboard.org/media-rss for details
+ //////////////////////////////////////////////////////////////
+
+ // Some media: tags can be enclosed in a media:group item.
+@@ -380,26 +401,41 @@ void NewsSite::parseRSS(QDomDocument domDoc)
+ if (!descNode.isNull())
+ description = descNode.toElement().text().simplified();
+
+- if (enclosure.isEmpty())
++ // parse any media:content items looking for any images or videos
++ QDomElement e = itemNode.toElement();
++ QDomNodeList mediaNodes = e.elementsByTagName("media:content");
++ for (int x = 0; x < mediaNodes.count(); x++)
+ {
+- QDomNode contentNode = itemNode.namedItem("media:content");
+- if (!contentNode.isNull())
+- {
+- QDomAttr enclosureURL = contentNode.toElement()
+- .attributeNode("url");
++ QString medium;
++ QString type;
++ QString url;
+
+- if (!enclosureURL.isNull())
+- enclosure = enclosureURL.value();
++ QDomElement mediaElement = mediaNodes.at(x).toElement();
+
+- QDomAttr enclosureType = contentNode.toElement()
+- .attributeNode("type");
++ if (mediaElement.isNull())
++ continue;
+
+- if (!enclosureType.isNull())
+- enclosure_type = enclosureType.value();
+- }
+- }
++ if (mediaElement.hasAttribute("medium"))
++ medium = mediaElement.attributeNode("medium").value();
++
++ if (mediaElement.hasAttribute("type"))
++ type = mediaElement.attributeNode("type").value();
+
+- (void) enclosure_type; // not currently used...
++ if (mediaElement.hasAttribute("url"))
++ url = mediaElement.attributeNode("url").value();
++
++ LOG(VB_GENERAL, LOG_DEBUG,
++ QString("parseRSS found media:content: medium: %1, type: %2, url: 3")
++ .arg(medium).arg(type).arg(url));
++
++ // if this is an image use it as the thumbnail if we haven't found one yet
++ if (thumbnail.isEmpty() && (medium == "image" || isImage(type)))
++ thumbnail = url;
++
++ // if this is a video use it as the enclosure if we haven't found one yet
++ if (enclosure.isEmpty() && (medium == "video" || isVideo(type)))
++ enclosure = url;
++ }
+
+ insertNewsArticle(NewsArticle(title, description, url,
+ thumbnail, mediaurl, enclosure));
diff --git a/mythplugins/mythweather/i18n/mythweather_es_es.qm b/mythplugins/mythweather/i18n/mythweather_es_es.qm
index deab269..8968bb3 100644
Binary files a/mythplugins/mythweather/i18n/mythweather_es_es.qm and b/mythplugins/mythweather/i18n/mythweather_es_es.qm differ
@@ -31170,6 +32266,59 @@
SignalHandler::Init(signallist);
signal(SIGHUP, SIG_IGN);
#endif
+diff --git a/mythtv/programs/mythtranscode/mpeg2fix.cpp b/mythtv/programs/mythtranscode/mpeg2fix.cpp
+index 23184f1..224b7b8 100644
+--- a/mythtv/programs/mythtranscode/mpeg2fix.cpp
++++ b/mythtv/programs/mythtranscode/mpeg2fix.cpp
+@@ -2356,13 +2356,14 @@ int MPEG2fixup::Start()
+ {
+ FrameList *af = (*it);
+ AVCodecContext *CC = getCodecContext(it.key());
++ AVCodecParserContext *CPC = getCodecParserContext(it.key());
+ bool backwardsPTS = false;
+
+ while (af->count())
+ {
+ // What to do if the CC is corrupt?
+ // Just wait and hope it repairs itself
+- if (CC->sample_rate == 0 || CC->frame_size == 0)
++ if (CC->sample_rate == 0 || !CPC || CPC->duration == 0)
+ break;
+
+ // The order of processing frames is critical to making
+@@ -2378,7 +2379,7 @@ int MPEG2fixup::Start()
+ // the audio frame
+ int64_t nextPTS, tmpPTS;
+ int64_t incPTS =
+- 90000LL * (int64_t)CC->frame_size / CC->sample_rate;
++ 90000LL * (int64_t)CPC->duration / CC->sample_rate;
+
+ if (poq.UpdateOrigPTS(it.key(), origaPTS[it.key()],
+ af->first()->pkt) < 0)
+@@ -2447,7 +2448,7 @@ int MPEG2fixup::Start()
+ }
+
+ nextPTS = add2x33(af->first()->pkt.pts,
+- 90000LL * (int64_t)CC->frame_size / CC->sample_rate);
++ 90000LL * (int64_t)CPC->duration / CC->sample_rate);
+
+ if ((cutState[it.key()] == 1 &&
+ cmp2x33(nextPTS, cutStartPTS) > 0) ||
+diff --git a/mythtv/programs/mythtranscode/mpeg2fix.h b/mythtv/programs/mythtranscode/mpeg2fix.h
+index fe74ac0..8796803 100644
+--- a/mythtv/programs/mythtranscode/mpeg2fix.h
++++ b/mythtv/programs/mythtranscode/mpeg2fix.h
+@@ -218,6 +218,10 @@ class MPEG2fixup
+ {
+ return inputFC->streams[id]->codec;
+ }
++ AVCodecParserContext *getCodecParserContext(int id)
++ {
++ return inputFC->streams[id]->parser;
++ }
+
+ void dumpList(FrameList *list);
+
diff --git a/mythtv/programs/mythtranscode/transcode.cpp b/mythtv/programs/mythtranscode/transcode.cpp
index c75b86a..e08f534 100755
--- a/mythtv/programs/mythtranscode/transcode.cpp
Index: mythtv.spec
===================================================================
RCS file: /cvs/free/rpms/mythtv/devel/mythtv.spec,v
retrieving revision 1.120
retrieving revision 1.121
diff -u -r1.120 -r1.121
--- mythtv.spec 27 Apr 2013 13:06:21 -0000 1.120
+++ mythtv.spec 6 May 2013 13:46:56 -0000 1.121
@@ -60,7 +60,7 @@
%define desktop_vendor RPMFusion
# Git revision and branch ID
-%define _gitrev v0.26.0-149-g5f45c0b
+%define _gitrev v0.26.0-153-gb02d25a
%define branch fixes/0.26
# Mythtv and plugins from github.com
@@ -80,7 +80,7 @@
%if "%{branch}" == "master"
Release: 0.1.git.%{_gitrev}%{?dist}
%else
-Release: 8%{?dist}
+Release: 9%{?dist}
%endif
# The primary license is GPLv2+, but bits are borrowed from a number of
@@ -1458,6 +1458,11 @@
%changelog
+* Mon May 06 2013 Richard Shaw <hobbes1069(a)gmail.com> - 0.26.0-9
+- Update to latest fixes/0.26, v0.26.0-153-gb02d25a.
+- Fixes long standing issue with transcoding on EL.
+ http://code.mythtv.org/trac/ticket/2077
+
* Sat Apr 27 2013 Richard Shaw <hobbes1069(a)gmail.com> - 0.26.0-8
- Update to latest fixes/0.26, v0.26.0-149-g5f45c0b.
11 years, 6 months
rpms/mplayer/devel mplayer.spec,1.68,1.69
by Julian Sikorski
Author: belegdol
Update of /cvs/free/rpms/mplayer/devel
In directory old02.ovh.rpmfusion.lan:/tmp/cvs-serv20603
Modified Files:
mplayer.spec
Log Message:
* Mon May 06 2013 Julian Sikorski <belegdol(a)fedoraproject.org> - 1.1-8.20130416svn
- Rebuilt for x264-0.130
Index: mplayer.spec
===================================================================
RCS file: /cvs/free/rpms/mplayer/devel/mplayer.spec,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -r1.68 -r1.69
--- mplayer.spec 21 Apr 2013 19:57:43 -0000 1.68
+++ mplayer.spec 6 May 2013 05:16:40 -0000 1.69
@@ -6,7 +6,7 @@
Name: mplayer
Version: 1.1
-Release: 7.%{?pre}%{?dist}
+Release: 8.%{?pre}%{?dist}
Summary: Movie player playing most video formats and DVDs
%if 0%{!?_without_amr:1}
@@ -380,6 +380,9 @@
%{_datadir}/mplayer/*.fp
%changelog
+* Mon May 06 2013 Julian Sikorski <belegdol(a)fedoraproject.org> - 1.1-8.20130416svn
+- Rebuilt for x264-0.130
+
* Sun Apr 21 2013 Julian Sikorski <belegdol(a)fedoraproject.org> - 1.1-7.20130416svn
- 20130416 snapshot
11 years, 6 months
rpms/ffmpeg/devel ffmpeg.spec,1.81,1.82
by Julian Sikorski
Author: belegdol
Update of /cvs/free/rpms/ffmpeg/devel
In directory old02.ovh.rpmfusion.lan:/tmp/cvs-serv12543
Modified Files:
ffmpeg.spec
Log Message:
* Sun May 05 2013 Julian Sikorski <belegdol(a)fedoraproject.org> - 1.2-2
- Rebuilt for x264-0.130
Index: ffmpeg.spec
===================================================================
RCS file: /cvs/free/rpms/ffmpeg/devel/ffmpeg.spec,v
retrieving revision 1.81
retrieving revision 1.82
diff -u -r1.81 -r1.82
--- ffmpeg.spec 23 Mar 2013 06:57:48 -0000 1.81
+++ ffmpeg.spec 5 May 2013 20:18:41 -0000 1.82
@@ -17,7 +17,7 @@
Summary: Digital VCR and streaming server
Name: ffmpeg
Version: 1.2
-Release: 1%{?date}%{?date:git}%{?rel}%{?dist}
+Release: 2%{?date}%{?date:git}%{?rel}%{?dist}
%if 0%{?_with_amr:1}
License: GPLv3+
%else
@@ -283,6 +283,9 @@
%changelog
+* Sun May 05 2013 Julian Sikorski <belegdol(a)fedoraproject.org> - 1.2-2
+- Rebuilt for x264-0.130
+
* Mon Mar 18 2013 Julian Sikorski <belegdol(a)fedoraproject.org> - 1.2-1
- Updated to 1.2
11 years, 6 months
rpms/ffmpeg-compat/devel ffmpeg-0.6.6-compile-fix.patch, NONE, 1.1 ffmpeg-compat.spec, 1.7, 1.8
by jwrdegoede
Author: jwrdegoede
Update of /cvs/free/rpms/ffmpeg-compat/devel
In directory old02.ovh.rpmfusion.lan:/tmp/cvs-serv8786
Modified Files:
ffmpeg-compat.spec
Added Files:
ffmpeg-0.6.6-compile-fix.patch
Log Message:
* Sun May 5 2013 Hans de Goede <j.w.r.degoede(a)gmail.com> - 0.6.6-6
- Rebuilt for x264 0.130
ffmpeg-0.6.6-compile-fix.patch:
vaapi_mpeg4.c | 1 +
1 file changed, 1 insertion(+)
--- NEW FILE ffmpeg-0.6.6-compile-fix.patch ---
diff -up ffmpeg-0.6.6/libavcodec/vaapi_mpeg4.c~ ffmpeg-0.6.6/libavcodec/vaapi_mpeg4.c
--- ffmpeg-0.6.6/libavcodec/vaapi_mpeg4.c~ 2012-06-09 22:09:09.000000000 +0200
+++ ffmpeg-0.6.6/libavcodec/vaapi_mpeg4.c 2013-05-05 20:34:05.537171756 +0200
@@ -21,6 +21,7 @@
*/
#include "vaapi_internal.h"
+#include "h263.h"
/** Reconstruct bitstream intra_dc_vlc_thr */
static int mpeg4_get_intra_dc_vlc_thr(MpegEncContext *s)
Index: ffmpeg-compat.spec
===================================================================
RCS file: /cvs/free/rpms/ffmpeg-compat/devel/ffmpeg-compat.spec,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- ffmpeg-compat.spec 20 Jan 2013 22:08:06 -0000 1.7
+++ ffmpeg-compat.spec 5 May 2013 18:33:34 -0000 1.8
@@ -10,7 +10,7 @@
Summary: Digital VCR and streaming server
Name: ffmpeg-compat
Version: 0.6.6
-Release: 5%{?dist}
+Release: 6%{?dist}
%if 0%{?_with_amr:1}
License: GPLv3+
%else
@@ -20,6 +20,7 @@
URL: http://ffmpeg.org/
Source0: http://ffmpeg.org/releases/ffmpeg-%{version}.tar.bz2
Source1: ffmpeg-snapshot.sh
+Patch0: ffmpeg-0.6.6-compile-fix.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: bzip2-devel
@@ -113,6 +114,7 @@
%prep
%setup -q -n ffmpeg-%{version}
+%patch0 -p1
%build
mkdir generic
@@ -226,6 +228,9 @@
%changelog
+* Sun May 5 2013 Hans de Goede <j.w.r.degoede(a)gmail.com> - 0.6.6-6
+- Rebuilt for x264 0.130
+
* Sun Jan 20 2013 Nicolas Chauvet <kwizart(a)gmail.com> - 0.6.6-5
- Rebuilt for FFmpeg/x264
11 years, 6 months
rpms/avidemux/devel avidemux.spec,1.75,1.76
by Richard Shaw
Author: hobbes1069
Update of /cvs/free/rpms/avidemux/devel
In directory old02.ovh.rpmfusion.lan:/tmp/cvs-serv24381
Modified Files:
avidemux.spec
Log Message:
* Sun May 05 2013 Richard Shaw <hobbes1069(a)gmail.com> - 2.6.3-2
- Rebuild for updated x264.
Index: avidemux.spec
===================================================================
RCS file: /cvs/free/rpms/avidemux/devel/avidemux.spec,v
retrieving revision 1.75
retrieving revision 1.76
diff -u -r1.75 -r1.76
--- avidemux.spec 31 Mar 2013 15:42:40 -0000 1.75
+++ avidemux.spec 5 May 2013 12:28:32 -0000 1.76
@@ -2,7 +2,7 @@
Name: avidemux
Version: 2.6.3
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Graphical video editing and transcoding tool
License: GPLv2+
@@ -353,6 +353,9 @@
%{_includedir}/avidemux/
%changelog
+* Sun May 05 2013 Richard Shaw <hobbes1069(a)gmail.com> - 2.6.3-2
+- Rebuild for updated x264.
+
* Wed Mar 20 2013 Richard Shaw <hobbes1069(a)gmail.com> - 2.6.3-1
- Update to latest bugfix release.
11 years, 6 months
rpms/audacity-freeworld/devel audacity.png,1.1,NONE
by jwrdegoede
Author: jwrdegoede
Update of /cvs/free/rpms/audacity-freeworld/devel
In directory old02.ovh.rpmfusion.lan:/tmp/cvs-serv20340
Removed Files:
audacity.png
Log Message:
Remove unused audacity.png file from CVS
11 years, 6 months
rpms/audacity-freeworld/devel audacity-2.0.2-desktop.in.patch, NONE, 1.1 audacity-2.0.3-non-dl-ffmpeg.patch, NONE, 1.1 .cvsignore, 1.14, 1.15 audacity-freeworld.spec, 1.26, 1.27 sources, 1.14, 1.15 audacity-2.0.1-desktop.in.patch, 1.1, NONE
by jwrdegoede
Author: jwrdegoede
Update of /cvs/free/rpms/audacity-freeworld/devel
In directory old02.ovh.rpmfusion.lan:/tmp/cvs-serv20175
Modified Files:
.cvsignore audacity-freeworld.spec sources
Added Files:
audacity-2.0.2-desktop.in.patch
audacity-2.0.3-non-dl-ffmpeg.patch
Removed Files:
audacity-2.0.1-desktop.in.patch
Log Message:
* Sat May 4 2013 Hans de Goede <j.w.r.degoede(a)gmail.com> - 2.0.3-1
- New upstream release 2.0.3
- Fix FTBFS by using ffmpeg-compat (rf#2707)
- Disable dynamic loading to force proper Requires for the used libs
audacity-2.0.2-desktop.in.patch:
audacity.desktop.in | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
--- NEW FILE audacity-2.0.2-desktop.in.patch ---
--- src/audacity.desktop.in.orig 2012-08-21 18:48:21.000000000 +1000
+++ src/audacity.desktop.in 2012-08-21 22:34:31.376045927 +1000
@@ -5,16 +5,16 @@
GenericName=Sound Editor
GenericName[de]=Audio-Editor
GenericName[ru]=Редактор звуковых файлов
-Comment=Record and edit audio files
+Comment=Record and edit audio files with multitrack capability
Comment[de]=Audio-Dateien aufnehmen und bearbeiten
Comment[ru]=Запись и редактирование звуковых файлов
Icon=@AUDACITY_NAME@
Type=Application
-Categories=AudioVideo;Audio;AudioVideoEditing;
+Categories=AudioVideo;Audio;GTK;GNOME;Sequencer;X-Jack;AudioVideoEditing;
Exec=@AUDACITY_NAME@ %F
StartupNotify=false
Terminal=false
-MimeType=application/x-audacity-project;@MIMETYPES@
+MimeType=application/x-audacity-project;@MIMETYPES@audio/x-aifc;audio/x-mp3;audio/midi;
audacity-2.0.3-non-dl-ffmpeg.patch:
FFmpeg.h | 6 ++++++
1 file changed, 6 insertions(+)
--- NEW FILE audacity-2.0.3-non-dl-ffmpeg.patch ---
--- audacity-src-2.0.3/src/FFmpeg.h 2013-01-18 16:50:58.000000000 +0100
+++ audacity-src-2.0.3.new/src/FFmpeg.h 2013-05-04 17:39:13.754469535 +0200
@@ -38,11 +38,17 @@
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
+ #include <libavformat/avio.h>
#include <libavutil/fifo.h>
#include <libavutil/mathematics.h>
#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(52, 102, 0)
#define AVIOContext ByteIOContext
+ #if defined(DISABLE_DYNAMIC_LOADING_FFMPEG)
+ #define avio_read get_buffer
+ #define avio_seek url_fseek
+ #define avio_close url_fclose
+ #endif
#endif
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(52, 94, 1)
Index: .cvsignore
===================================================================
RCS file: /cvs/free/rpms/audacity-freeworld/devel/.cvsignore,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- .cvsignore 4 Jul 2012 22:10:27 -0000 1.14
+++ .cvsignore 4 May 2013 17:48:37 -0000 1.15
@@ -1 +1 @@
-audacity-minsrc-2.0.1.tar.bz2
+audacity-minsrc-2.0.3.tar.xz
Index: audacity-freeworld.spec
===================================================================
RCS file: /cvs/free/rpms/audacity-freeworld/devel/audacity-freeworld.spec,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- audacity-freeworld.spec 3 Mar 2013 21:35:10 -0000 1.26
+++ audacity-freeworld.spec 4 May 2013 17:48:37 -0000 1.27
@@ -1,10 +1,7 @@
-# Compile options:
-# --with mp3 : enable mp3 support
-
Name: audacity-freeworld
-Version: 2.0.1
-Release: 2%{?dist}
+Version: 2.0.3
+Release: 1%{?dist}
Summary: Multitrack audio editor
Group: Applications/Multimedia
License: GPLv2
@@ -15,7 +12,7 @@
# use for upstream source releases:
#Source0: http://downloads.sf.net/sourceforge/audacity/audacity-minsrc-%#{version}-...
-Source0: http://audacity.googlecode.com/files/audacity-minsrc-%{version}.tar.bz2
+Source0: http://audacity.googlecode.com/files/audacity-minsrc-%{version}.tar.xz
%define tartopdir audacity-src-%{version}
Patch1: audacity-2.0.1-libmp3lame-default.patch
@@ -24,12 +21,12 @@
# remove audio/mpeg, audio/x-mp3
# enable startup notification
# add categories Sequencer X-Jack AudioVideoEditing for F-12 Studio feature
-Patch3: audacity-2.0.1-desktop.in.patch
+Patch3: audacity-2.0.2-desktop.in.patch
+Patch4: audacity-2.0.3-non-dl-ffmpeg.patch
Provides: audacity-nonfree = %{version}-%{release}
Obsoletes: audacity-nonfree < %{version}-%{release}
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: alsa-lib-devel
BuildRequires: desktop-file-utils
BuildRequires: expat-devel
@@ -40,22 +37,21 @@
BuildRequires: libid3tag-devel
BuildRequires: taglib-devel
BuildRequires: libogg-devel
-BuildRequires: libsamplerate-devel
BuildRequires: libsndfile-devel
BuildRequires: libvorbis-devel
+BuildRequires: portaudio-devel >= 19-16
BuildRequires: soundtouch-devel
-%if 0%{?fedora} < 11
-BuildRequires: vamp-plugin-sdk-devel
-%else
+BuildRequires: soxr-devel
BuildRequires: vamp-plugin-sdk-devel >= 2.0
-%endif
BuildRequires: zip
BuildRequires: zlib-devel
BuildRequires: wxGTK-devel
BuildRequires: libmad-devel
-BuildRequires: ffmpeg-devel
+BuildRequires: ffmpeg-compat-devel
BuildRequires: lame-devel
-
+BuildRequires: twolame-devel
+# For new symbols in portaudio
+Requires: portaudio%{?_isa} >= 19-16
%description
Audacity is a cross-platform multitrack audio editor. It allows you to
@@ -85,31 +81,49 @@
sed -i -e 's!libmp3lame.so\([^.]\)!libmp3lame.so.0\1!g' $i
done
-%patch3 -p1 -b .desktop.old
+%patch3 -b .desktop.old
+%patch4 -p1
%build
+export PKG_CONFIG_PATH=%{_libdir}/ffmpeg-compat/pkgconfig/
%configure \
+ --disable-dynamic-loading \
--with-help \
--with-libsndfile=system \
+ --with-libsoxr=system \
--without-libresample \
- --with-libsamplerate=system \
+ --without-libsamplerate \
--with-libflac=system \
--with-ladspa \
--with-vorbis=system \
--with-id3tag=system \
--with-expat=system \
--with-soundtouch=system \
+ --with-libvamp=system \
+ --with-portaudio=system \
--with-ffmpeg=system \
- --with-libmad=system
+ --with-libmad=system \
+ --with-libtwolame=system \
+ --with-lame=system \
+%ifnarch %{ix86} x86_64
+ --disable-sse \
+%else
+ %{nil}
+%endif
+
+# ensure we use the system headers for these, note we do this after
+# configure as it wants to run sub-configures in these dirs
+for i in ffmpeg libresample libsoxr libvamp portaudio-v19; do
+ rm -rf lib-src/$i
+done
+
# _smp_mflags cause problems
make
%install
-rm -rf ${RPM_BUILD_ROOT}
-
-make DESTDIR=${RPM_BUILD_ROOT} install
+%make_install
# Audacity 1.3.8-beta complains if the help/manual directories
# don't exist.
@@ -117,31 +131,33 @@
%{find_lang} %{realname}
-desktop-file-install \
- --vendor fedora \
- --delete-original \
- --dir $RPM_BUILD_ROOT%{_datadir}/applications \
- $RPM_BUILD_ROOT%{_datadir}/applications/audacity.desktop
-
-
-%clean
-rm -rf ${RPM_BUILD_ROOT}
+desktop-file-install --dir $RPM_BUILD_ROOT%{_datadir}/applications \
+%if 0%{?fedora} && 0%{?fedora} < 19
+ --vendor fedora --delete-original \
+%endif
+ $RPM_BUILD_ROOT%{_datadir}/applications/audacity.desktop
%post
umask 022
update-mime-database %{_datadir}/mime &> /dev/null || :
update-desktop-database &> /dev/null || :
-
+touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
%postun
umask 022
update-mime-database %{_datadir}/mime &> /dev/null || :
update-desktop-database &> /dev/null || :
+if [ $1 -eq 0 ] ; then
+ touch --no-create %{_datadir}/icons/hicolor &>/dev/null
+ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
+fi
+
+%posttrans
+gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%files -f %{realname}.lang
-%defattr(-,root,root,-)
%{_bindir}/%{realname}
%dir %{_datadir}/%{realname}
%{_datadir}/%{realname}/EQDefaultCurves.xml
@@ -156,6 +172,11 @@
%changelog
+* Sat May 4 2013 Hans de Goede <j.w.r.degoede(a)gmail.com> - 2.0.3-1
+- New upstream release 2.0.3
+- Fix FTBFS by using ffmpeg-compat (rf#2707)
+- Disable dynamic loading to force proper Requires for the used libs
+
* Sun Mar 03 2013 Nicolas Chauvet <kwizart(a)gmail.com> - 2.0.1-2
- Mass rebuilt for Fedora 19 Features
@@ -164,7 +185,7 @@
- rebase libmp3lame-default.patch
- rebase desktop.in.patch
-* Wed Jun 26 2012 David Timms <iinet.net.au@dtimms> - 2.0.1-0.1.rc2
+* Tue Jun 26 2012 David Timms <iinet.net.au@dtimms> - 2.0.1-0.1.rc2
- update to 2.0.1 release candidate 2
* Wed Mar 14 2012 David Timms <iinet.net.au@dtimms> - 2.0.0-1
@@ -219,10 +240,10 @@
Applied svn trunk portmixer configure changes.
- del previous patch attempt (unsuccessful)
-* Mon Oct 31 2010 David Timms <iinet.net.au@dtimms> - 1.3.12-0.9.beta
+* Sun Oct 31 2010 David Timms <iinet.net.au@dtimms> - 1.3.12-0.9.beta
- fix build failure due to portmixer configure problems
-* Mon Oct 31 2010 David Timms <iinet.net.au@dtimms> - 1.3.12-0.8.beta
+* Sun Oct 31 2010 David Timms <iinet.net.au@dtimms> - 1.3.12-0.8.beta
- fix hang when play at speed with ratio less than 0.09 is used (#637347)
* Sat Aug 7 2010 David Timms <iinet.net.au@dtimms> - 1.3.12-0.7.beta
@@ -290,10 +311,10 @@
- add support for ffmpeg import and export via BR and --with-ffmpeg
- add patch to allow selection of ffmpeg library on unix.
-* Thu Aug 22 2008 David Timms <iinet.net.au@dtimms> - 1.3.5-0.4.beta
+* Fri Aug 22 2008 David Timms <iinet.net.au@dtimms> - 1.3.5-0.4.beta
- mod patch2 apply command
-* Thu Aug 22 2008 David Timms <iinet.net.au@dtimms> - 1.3.5-0.3.beta
+* Fri Aug 22 2008 David Timms <iinet.net.au@dtimms> - 1.3.5-0.3.beta
- add Requires lame-libs
- update 1.3.4-gcc43.patch to suit 1.3.5, since patch mostly upstreamed.
Index: sources
===================================================================
RCS file: /cvs/free/rpms/audacity-freeworld/devel/sources,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- sources 4 Jul 2012 22:10:27 -0000 1.14
+++ sources 4 May 2013 17:48:37 -0000 1.15
@@ -1 +1 @@
-b694ac336bae68346fb2956b18f17cec audacity-minsrc-2.0.1.tar.bz2
+648cce8a9ce86eebfc53921172ee9d89 audacity-minsrc-2.0.3.tar.xz
--- audacity-2.0.1-desktop.in.patch DELETED ---
11 years, 6 months
rpms/desmume/F-17 .cvsignore, 1.10, 1.11 desmume.spec, 1.19, 1.20 sources, 1.10, 1.11
by Andrea Musuruane
Author: musuruan
Update of /cvs/free/rpms/desmume/F-17
In directory old02.ovh.rpmfusion.lan:/tmp/cvs-serv18168
Modified Files:
.cvsignore desmume.spec sources
Log Message:
* Wed May 01 2013 Andrea Musuruane <musuruan(a)gmail.com> - 0.9.9-1
- Updated to upstream version 0.9.9
- Dropped obsolete Group, Buildroot, %clean and %defattr
- Dropped desktop vendor tag for F19+
Index: .cvsignore
===================================================================
RCS file: /cvs/free/rpms/desmume/F-17/.cvsignore,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- .cvsignore 27 Apr 2012 13:12:57 -0000 1.10
+++ .cvsignore 4 May 2013 16:59:06 -0000 1.11
@@ -1 +1 @@
-desmume-0.9.8.tar.gz
+desmume-0.9.9.tar.gz
Index: desmume.spec
===================================================================
RCS file: /cvs/free/rpms/desmume/F-17/desmume.spec,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- desmume.spec 27 Apr 2012 13:12:57 -0000 1.19
+++ desmume.spec 4 May 2013 16:59:06 -0000 1.20
@@ -1,15 +1,17 @@
+%if (0%{?fedora} && 0%{?fedora}) < 19
+%global with_desktop_vendor_tag 1
+%endif
+
Name: desmume
-Version: 0.9.8
+Version: 0.9.9
Release: 1%{?dist}
Summary: A Nintendo DS emulator
-Group: Applications/Emulators
License: GPLv2+
URL: http://desmume.org/
Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
# Do not look into builddir
Patch0: %{name}-0.9-dontlookinbuilddir.patch
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: gtkglext-devel
BuildRequires: libglade2-devel
@@ -77,7 +79,9 @@
%build
-%configure --enable-openal
+%configure \
+ --enable-openal \
+ --enable-glade
make %{?_smp_mflags}
@@ -97,7 +101,9 @@
mkdir -p %{buildroot}%{_datadir}/applications
desktop-file-install \
--delete-original \
+%if %{with_desktop_vendor_tag}
--vendor dribble \
+%endif
--remove-key Version \
--remove-category GNOME \
--remove-category GTK \
@@ -106,7 +112,9 @@
desktop-file-install \
--delete-original \
+%if %{with_desktop_vendor_tag}
--vendor dribble \
+%endif
--remove-key Version \
--remove-category GNOME \
--remove-category GTK \
@@ -116,10 +124,6 @@
%find_lang %{name}-glade
-%clean
-rm -rf %{buildroot}
-
-
%post
touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
@@ -151,32 +155,45 @@
%files
-%defattr(-,root,root,-)
%{_bindir}/%{name}
%{_datadir}/icons/hicolor/32x32/apps/DeSmuME.xpm
+%if %{with_desktop_vendor_tag}
%{_datadir}/applications/dribble-%{name}.desktop
+%else
+%{_datadir}/applications/%{name}.desktop
+%endif
%{_mandir}/man1/%{name}.1*
%doc AUTHORS ChangeLog COPYING README README.LIN
%files glade -f %{name}-glade.lang
-%defattr(-,root,root,-)
%{_bindir}/%{name}-glade
%{_datadir}/%{name}-glade
%{_datadir}/icons/hicolor/32x32/apps/DeSmuME-glade.xpm
+%if %{with_desktop_vendor_tag}
%{_datadir}/applications/dribble-%{name}-glade.desktop
+%else
+%{_datadir}/applications/%{name}-glade.desktop
+%endif
%{_mandir}/man1/%{name}-glade.1*
%doc AUTHORS ChangeLog COPYING README README.LIN
%files cli
-%defattr(-,root,root,-)
%{_bindir}/%{name}-cli
%{_mandir}/man1/%{name}-cli.1*
%doc AUTHORS ChangeLog COPYING README README.LIN
%changelog
+* Wed May 01 2013 Andrea Musuruane <musuruan(a)gmail.com> - 0.9.9-1
+- Updated to upstream version 0.9.9
+- Dropped obsolete Group, Buildroot, %%clean and %%defattr
+- Dropped desktop vendor tag for F19+
+
+* Sun Mar 03 2013 Nicolas Chauvet <kwizart(a)gmail.com> - 0.9.8-2
+- Mass rebuilt for Fedora 19 Features
+
* Thu Apr 26 2012 Andrea Musuruane <musuruan(a)gmail.com> 0.9.8-1
- Updated to upstream version 0.9.8
Index: sources
===================================================================
RCS file: /cvs/free/rpms/desmume/F-17/sources,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- sources 27 Apr 2012 13:12:57 -0000 1.10
+++ sources 4 May 2013 16:59:06 -0000 1.11
@@ -1 +1 @@
-fb7c984c924087888b9eaaad8cb1875e desmume-0.9.8.tar.gz
+458b5f8b3dbb38a47e6d0518f97aa82a desmume-0.9.9.tar.gz
11 years, 6 months