summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZaheer Abbas Merali <zaheerm@gentoo.org>2005-03-15 22:58:50 +0000
committerZaheer Abbas Merali <zaheerm@gentoo.org>2005-03-15 22:58:50 +0000
commit56cbe650ea18e3343b4e60c502ef0669b8535709 (patch)
tree7bbb687487a8989e95e8de69f3332024ef8cc47c /media-libs/gstreamer
parentFixed bug #84583 (xmms-wma compile failure). Adjusted the ffmpeg version dep... (diff)
downloadhistorical-56cbe650ea18e3343b4e60c502ef0669b8535709.tar.gz
historical-56cbe650ea18e3343b4e60c502ef0669b8535709.tar.bz2
historical-56cbe650ea18e3343b4e60c502ef0669b8535709.zip
Add gstqueue patch that fixes mp3 skipping after a few secs. (#84864)
Package-Manager: portage-2.0.51.19
Diffstat (limited to 'media-libs/gstreamer')
-rw-r--r--media-libs/gstreamer/ChangeLog7
-rw-r--r--media-libs/gstreamer/Manifest3
-rw-r--r--media-libs/gstreamer/files/digest-gstreamer-0.8.9-r31
-rw-r--r--media-libs/gstreamer/files/gstreamer-0.8.9-gstqueue_lock.patch106
-rw-r--r--media-libs/gstreamer/gstreamer-0.8.9-r3.ebuild108
5 files changed, 224 insertions, 1 deletions
diff --git a/media-libs/gstreamer/ChangeLog b/media-libs/gstreamer/ChangeLog
index e013391a1d1c..212a2cdcb53d 100644
--- a/media-libs/gstreamer/ChangeLog
+++ b/media-libs/gstreamer/ChangeLog
@@ -1,6 +1,11 @@
# ChangeLog for media-libs/gstreamer
# Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-libs/gstreamer/ChangeLog,v 1.94 2005/03/09 03:50:35 obz Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-libs/gstreamer/ChangeLog,v 1.95 2005/03/15 22:58:50 zaheerm Exp $
+
+*gstreamer-0.8.9-r3 (15 Mar 2005)
+
+ 15 Mar 2005; <zaheerm@gentoo.org> gstreamer-0.8.9-r3.ebuild:
+ Add gstqueue patch that fixes mp3 skipping after a few secs. (#84864)
09 Mar 2005; Mike Gardiner <obz@gentoo.org> gstreamer-0.8.8.ebuild:
Keyworded ppc
diff --git a/media-libs/gstreamer/Manifest b/media-libs/gstreamer/Manifest
index e1e6dfedcbaa..a6d0bfb8d934 100644
--- a/media-libs/gstreamer/Manifest
+++ b/media-libs/gstreamer/Manifest
@@ -1,6 +1,7 @@
MD5 ac832308ff65da62e5106207d991c87c gstreamer-0.8.1.ebuild 2182
MD5 fba41fba3e573b788bab61d24c36af1f gstreamer-0.8.9-r1.ebuild 2808
MD5 c88ad7799cd84d98f3eca6c03c39870d gstreamer-0.8.8.ebuild 2191
+MD5 737b9c0fa778ca5c00738cf96a07488e gstreamer-0.8.9-r3.ebuild 3012
MD5 c1a600f9c7419d5b41b50356a5210583 gstreamer-0.6.4.ebuild 1834
MD5 5e025d896f851f83d6fb44b6658b74a4 gstreamer-0.8.5.ebuild 2191
MD5 abf62d66d038341af9fd3f7baae1003a gstreamer-0.8.7.ebuild 2156
@@ -11,8 +12,10 @@ MD5 03ad2e6c4ab41244af1015a8bbb0b39f metadata.xml 158
MD5 d219e0115125181e4730a98f86ca463b files/digest-gstreamer-0.8.3-r1 69
MD5 7f5ad30642cb2c0af9d64ac11c9dabb2 files/digest-gstreamer-0.8.9-r1 69
MD5 7f5ad30642cb2c0af9d64ac11c9dabb2 files/digest-gstreamer-0.8.9-r2 69
+MD5 7f5ad30642cb2c0af9d64ac11c9dabb2 files/digest-gstreamer-0.8.9-r3 69
MD5 e74bc34fe33bd6c536feedd4ae91dcbc files/gstreamer-0.8-reiser4_register.patch 684
MD5 eb396dce225d8cbcae77d8c7a60cae55 files/gstreamer-0.8.9-64_dataprotocol.patch 557
+MD5 fd63f7bf7d7eacc104d81267e447fcab files/gstreamer-0.8.9-gstqueue_lock.patch 3975
MD5 c7cf43fd49b58741237224b5e48e188a files/gstreamer-0.8-unclobber_asm.patch 1164
MD5 465e9b8e2f33205128b7a69eca2e2c02 files/gstreamer-0.8.3-jade_fix.patch 1713
MD5 ff15475e2c782144d62016e6d37a99b4 files/digest-gstreamer-0.6.4 69
diff --git a/media-libs/gstreamer/files/digest-gstreamer-0.8.9-r3 b/media-libs/gstreamer/files/digest-gstreamer-0.8.9-r3
new file mode 100644
index 000000000000..242fc1b3b4e1
--- /dev/null
+++ b/media-libs/gstreamer/files/digest-gstreamer-0.8.9-r3
@@ -0,0 +1 @@
+MD5 6769de224de8457ed0dc09016287883a gstreamer-0.8.9.tar.bz2 1456548
diff --git a/media-libs/gstreamer/files/gstreamer-0.8.9-gstqueue_lock.patch b/media-libs/gstreamer/files/gstreamer-0.8.9-gstqueue_lock.patch
new file mode 100644
index 000000000000..b54bc02a02e7
--- /dev/null
+++ b/media-libs/gstreamer/files/gstreamer-0.8.9-gstqueue_lock.patch
@@ -0,0 +1,106 @@
+===================================================================
+RCS file: /cvs/gstreamer/gstreamer/gst/gstqueue.c,v
+retrieving revision 1.117
+retrieving revision 1.117.2.2
+diff -u -r1.117 -r1.117.2.2
+--- gstqueue.c 2005/01/31 23:21:52 1.117
++++ gstqueue.c 2005/03/03 09:56:26 1.117.2.2
+@@ -474,6 +474,8 @@
+ static void
+ gst_queue_locked_flush (GstQueue * queue)
+ {
++ GST_CAT_LOG_OBJECT (queue_dataflow, queue, "Flushing contents...");
++
+ while (!g_queue_is_empty (queue->queue)) {
+ GstData *data = g_queue_pop_head (queue->queue);
+
+@@ -569,7 +571,9 @@
+
+ if (GST_IS_BUFFER (data))
+ GST_CAT_LOG_OBJECT (queue_dataflow, queue,
+- "adding buffer %p of size %d", data, GST_BUFFER_SIZE (data));
++ "adding buffer %p of size %d and time %" GST_TIME_FORMAT,
++ data, GST_BUFFER_SIZE (data),
++ GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (data)));
+
+ /* We make space available if we're "full" according to whatever
+ * the user defined as "full". Note that this only applies to buffers.
+@@ -657,11 +661,11 @@
+ GstScheduler *sched;
+
+ GST_CAT_DEBUG_OBJECT (queue_dataflow, queue, "interrupted");
+- GST_QUEUE_MUTEX_UNLOCK;
+ sched = gst_pad_get_scheduler (queue->sinkpad);
+ if (!sched || gst_scheduler_interrupt (sched, GST_ELEMENT (queue))) {
+- goto out_unref;
++ goto ignore_interrupt;
+ }
++ GST_QUEUE_MUTEX_UNLOCK;
+ /* if we got here because we were unlocked after a
+ * flush, we don't need to add the buffer to the
+ * queue again */
+@@ -693,6 +697,7 @@
+ }
+ }
+
++ ignore_interrupt:
+ /* OK, we've got a serious issue here. Imagine the situation
+ * where the puller (next element) is sending an event here,
+ * so it cannot pull events from the queue, and we cannot
+@@ -701,9 +706,16 @@
+ * that, we handle pending upstream events here, too. */
+ gst_queue_handle_pending_events (queue);
+
+- STATUS (queue, "waiting for item_del signal from thread using qlock");
+- g_cond_wait (queue->item_del, queue->qlock);
+- STATUS (queue, "received item_del signal from thread using qlock");
++ if (!queue->interrupt) {
++ STATUS (queue,
++ "waiting for item_del signal from thread using qlock");
++ g_cond_wait (queue->item_del, queue->qlock);
++ STATUS (queue, "received item_del signal from thread using qlock");
++ } else {
++ GST_CAT_DEBUG_OBJECT (queue_dataflow, queue,
++ "Not waiting, just adding buffer, after interrupt (bad!)");
++ break;
++ }
+ }
+
+ STATUS (queue, "post-full wait");
+@@ -848,6 +860,9 @@
+ queue->cur_level.bytes -= GST_BUFFER_SIZE (data);
+ if (GST_BUFFER_DURATION (data) != GST_CLOCK_TIME_NONE)
+ queue->cur_level.time -= GST_BUFFER_DURATION (data);
++ GST_CAT_LOG_OBJECT (queue_dataflow, queue,
++ "Got buffer of time %" GST_TIME_FORMAT,
++ GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (data)));
+ }
+
+ /* Now that we're done, we can lose our own reference to
+@@ -947,6 +962,7 @@
+ if (GST_EVENT_SEEK_FLAGS (event) & GST_SEEK_FLAG_FLUSH) {
+ gst_queue_locked_flush (queue);
+ }
++ break;
+ default:
+ break;
+ }
+@@ -974,10 +990,16 @@
+ /* FIXME: this code assumes that there's no discont in the queue */
+ switch (*fmt) {
+ case GST_FORMAT_BYTES:
+- *value -= queue->cur_level.bytes;
++ if (*value >= queue->cur_level.bytes)
++ *value -= queue->cur_level.bytes;
++ else
++ *value = 0;
+ break;
+ case GST_FORMAT_TIME:
+- *value -= queue->cur_level.time;
++ if (*value >= queue->cur_level.time)
++ *value -= queue->cur_level.time;
++ else
++ *value = 0;
+ break;
+ default:
+ /* FIXME */
diff --git a/media-libs/gstreamer/gstreamer-0.8.9-r3.ebuild b/media-libs/gstreamer/gstreamer-0.8.9-r3.ebuild
new file mode 100644
index 000000000000..377316499b9f
--- /dev/null
+++ b/media-libs/gstreamer/gstreamer-0.8.9-r3.ebuild
@@ -0,0 +1,108 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-libs/gstreamer/gstreamer-0.8.9-r3.ebuild,v 1.1 2005/03/15 22:58:50 zaheerm Exp $
+
+inherit eutils flag-o-matic libtool gnome2 flag-o-matic
+
+# Create a major/minor combo for our SLOT and executables suffix
+PVP=(${PV//[-\._]/ })
+PV_MAJ_MIN=${PVP[0]}.${PVP[1]}
+
+DESCRIPTION="Streaming media framework"
+HOMEPAGE="http://gstreamer.sourceforge.net"
+SRC_URI="http://gstreamer.freedesktop.org/src/gstreamer/${P}.tar.bz2"
+
+LICENSE="LGPL-2"
+SLOT=${PV_MAJ_MIN}
+KEYWORDS="~x86 ~ppc ~sparc ~alpha ~hppa ~amd64 ~ia64 ~mips ~ppc64 ~arm"
+IUSE="doc"
+
+RDEPEND=">=dev-libs/glib-2.2
+ >=dev-libs/libxml2-2.4.9
+ >=dev-libs/popt-1.6.3"
+
+DEPEND="${RDEPEND}
+ >=sys-devel/gettext-0.11.5
+ dev-util/pkgconfig
+ doc? ( dev-util/gtk-doc
+ =app-text/docbook-xml-dtd-4.2* )"
+
+src_unpack() {
+
+ unpack ${A}
+ cd ${S}
+
+ # Fix doc generation with jade. See bug #55700.
+ epatch ${FILESDIR}/${PN}-0.8.3-jade_fix.patch
+ cd ${S}/libs/gst/dataprotocol
+ # fix dataprotocol bug
+ epatch ${FILESDIR}/${P}-64_dataprotocol.patch
+ # fix queue locking bug - fixes bug #84864
+ cd ${S}/gst
+ epatch ${FILESDIR}/${P}-gstqueue_lock.patch
+
+}
+
+src_compile() {
+
+ # FIXME : Ugly fix for docs generation gst cache problem (#57002)
+ use doc && addpredict /var && addpredict /root
+
+ elibtoolize
+
+ strip-flags
+ replace-flags "-O3" "-O2"
+ replace-flags "-Os" "-O2"
+
+ econf \
+ --with-configdir=/etc/gstreamer \
+ --disable-tests \
+ --disable-examples \
+ `use_enable doc docs-build` \
+ || die "./configure failed"
+
+ # On alpha, amd64 and hppa some innocuous warnings are spit out that break
+ # the build because of -Werror
+ use alpha && find . -name Makefile | xargs sed -i -e 's/-Werror//g'
+ use amd64 && find . -name Makefile | xargs sed -i -e 's/-Werror//g'
+ use hppa && find . -name Makefile | xargs sed -i -e 's/-Werror//g'
+
+ emake || die "compile failed"
+
+}
+
+src_install() {
+
+ make DESTDIR=${D} install || die
+
+ # remove the unversioned binaries gstreamer provide
+ # this is to prevent these binaries to be owned by several SLOTs
+ cd ${D}/usr/bin
+ for gst_bins in `ls *-${PV_MAJ_MIN}`
+ do
+ rm ${gst_bins/-${PV_MAJ_MIN}/}
+ einfo "Removed ${gst_bins/-${PV_MAJ_MIN}/}"
+ done
+
+ cd ${S}
+ dodoc AUTHORS ChangeLog COPYING* DEVEL \
+ NEWS README RELEASE REQUIREMENTS TODO
+
+ dodir /etc/env.d/
+ echo "PRELINK_PATH_MASK=/usr/lib/${PN}-${PV_MAJ_MIN}" > ${D}/etc/env.d/60${PN}-${PV_MAJ_MIN}
+
+}
+
+pkg_postinst() {
+
+ gst-register-${PV_MAJ_MIN}
+
+ einfo "Gstreamer has known problems with prelinking, as a workaround"
+ einfo "this ebuild adds the gstreamer plugins to the prelink mask"
+ einfo "path to stop them from being prelinked. It is imperative"
+ einfo "that you undo & redo prelinking after building this pack for"
+ einfo "this to take effect. Make sure the gstreamer lib path is indeed"
+ einfo "added to the PRELINK_PATH_MASK environment variable."
+ einfo "For more information see http://bugs.gentoo.org/show_bug.cgi?id=81512"
+
+}