summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPacho Ramos <pacho@gentoo.org>2010-06-13 20:36:55 +0000
committerPacho Ramos <pacho@gentoo.org>2010-06-13 20:36:55 +0000
commit5e7552153681562d642e13bec60d88e632bbf5a4 (patch)
tree42a73f57edd282013b6c98922234e394d64f8493 /media-video/totem
parentMask media-video/totem youtube and iplayer USEs until bug 323845 and 323847 a... (diff)
downloadgentoo-2-5e7552153681562d642e13bec60d88e632bbf5a4.tar.gz
gentoo-2-5e7552153681562d642e13bec60d88e632bbf5a4.tar.bz2
gentoo-2-5e7552153681562d642e13bec60d88e632bbf5a4.zip
Add new version for Gnome 2.30
(Portage version: 2.1.8.3/cvs/Linux x86_64)
Diffstat (limited to 'media-video/totem')
-rw-r--r--media-video/totem/ChangeLog11
-rw-r--r--media-video/totem/files/totem-2.30.1-fix-constant-buffering.patch83
-rw-r--r--media-video/totem/files/totem-2.30.1-fix-gmp-plugin.patch87
-rw-r--r--media-video/totem/files/totem-2.30.1-fix-pygtk-include.patch41
-rw-r--r--media-video/totem/files/totem-2.30.1-fix-qt-eos.patch30
-rw-r--r--media-video/totem/totem-2.30.0-r1.ebuild181
6 files changed, 432 insertions, 1 deletions
diff --git a/media-video/totem/ChangeLog b/media-video/totem/ChangeLog
index dfcd4efe873c..12dac4c905ec 100644
--- a/media-video/totem/ChangeLog
+++ b/media-video/totem/ChangeLog
@@ -1,6 +1,15 @@
# ChangeLog for media-video/totem
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-video/totem/ChangeLog,v 1.287 2010/06/11 12:23:09 pacho Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-video/totem/ChangeLog,v 1.288 2010/06/13 20:36:55 pacho Exp $
+
+*totem-2.30.0-r1 (13 Jun 2010)
+
+ 13 Jun 2010; Pacho Ramos <pacho@gentoo.org> +totem-2.30.0-r1.ebuild,
+ +files/totem-2.30.1-fix-constant-buffering.patch,
+ +files/totem-2.30.1-fix-gmp-plugin.patch,
+ +files/totem-2.30.1-fix-pygtk-include.patch,
+ +files/totem-2.30.1-fix-qt-eos.patch:
+ Add new version for Gnome 2.30.
11 Jun 2010; Pacho Ramos <pacho@gentoo.org> totem-2.26.3-r1.ebuild,
totem-2.26.5-r1.ebuild, totem-2.28.5-r3.ebuild, -totem-2.28.5-r4.ebuild,
diff --git a/media-video/totem/files/totem-2.30.1-fix-constant-buffering.patch b/media-video/totem/files/totem-2.30.1-fix-constant-buffering.patch
new file mode 100644
index 000000000000..c4f9d6d06cae
--- /dev/null
+++ b/media-video/totem/files/totem-2.30.1-fix-constant-buffering.patch
@@ -0,0 +1,83 @@
+From 261b53120fea3ba2e1959ce56533e7a4d207ae45 Mon Sep 17 00:00:00 2001
+From: Bastien Nocera <hadess@hadess.net>
+Date: Thu, 06 May 2010 09:43:34 +0000
+Subject: Fix constant buffering when playing live streams
+
+When playing Ogg Theora live streams, we should wait until the
+buffer reaches 100% before we start the actual playback.
+Otherwise the buffer will be consumed as it is downloaded, and
+we'll be constantly buffering, which is problematic visually,
+and could cause hiccups during playback.
+
+Fixes constant buffering with the streams at:
+http://dir.xiph.org/by_format/Ogg_Theora
+
+https://bugzilla.gnome.org/show_bug.cgi?id=617791
+---
+diff --git a/src/backend/bacon-video-widget-gst-0.10.c b/src/backend/bacon-video-widget-gst-0.10.c
+index 96b841e..ebd6e8f 100644
+--- a/src/backend/bacon-video-widget-gst-0.10.c
++++ b/src/backend/bacon-video-widget-gst-0.10.c
+@@ -1956,7 +1956,7 @@ text_tags_changed_cb (GstElement *playbin2, gint stream_id, gpointer user_data)
+ }
+
+ static gboolean
+-bvw_buffering_done (BaconVideoWidget *bvw)
++bvw_download_buffering_done (BaconVideoWidget *bvw)
+ {
+ /* When we set buffering left to 0, that means it's ready to play */
+ if (bvw->priv->buffering_left == 0) {
+@@ -2021,20 +2021,17 @@ bvw_handle_buffering_message (GstMessage * message, BaconVideoWidget *bvw)
+ /* if the desired state is playing, go back */
+ if (bvw->priv->target_state == GST_STATE_PLAYING) {
+ GST_DEBUG ("Buffering done, setting pipeline back to PLAYING");
+- gst_element_set_state (bvw->priv->play, GST_STATE_PLAYING);
++ bacon_video_widget_play (bvw, NULL);
+ } else {
+ GST_DEBUG ("Buffering done, keeping pipeline PAUSED");
+ }
+- } else if (bvw->priv->buffering == FALSE &&
+- bvw->priv->target_state == GST_STATE_PLAYING) {
++ } else if (bvw->priv->target_state == GST_STATE_PLAYING) {
+ GstState cur_state;
+
+ gst_element_get_state (bvw->priv->play, &cur_state, NULL, 0);
+- if (cur_state == GST_STATE_PLAYING) {
++ if (cur_state != GST_STATE_PAUSED) {
+ GST_DEBUG ("Buffering ... temporarily pausing playback");
+ gst_element_set_state (bvw->priv->play, GST_STATE_PAUSED);
+- } else {
+- GST_DEBUG ("Buffering ... prerolling, not doing anything");
+ }
+ bvw->priv->buffering = TRUE;
+ } else {
+@@ -2503,7 +2500,7 @@ bvw_query_buffering_timeout (BaconVideoWidget *bvw)
+ bvw->priv->buffering_left = 0;
+
+ /* Start playing when we've downloaded enough */
+- if (bvw_buffering_done (bvw) != FALSE &&
++ if (bvw_download_buffering_done (bvw) != FALSE &&
+ bvw->priv->target_state == GST_STATE_PLAYING) {
+ GST_DEBUG ("Starting playback because the download buffer is filled enough");
+ bacon_video_widget_play (bvw, NULL);
+@@ -3848,11 +3845,17 @@ bacon_video_widget_play (BaconVideoWidget * bvw, GError ** error)
+
+ /* Lie when trying to play a file whilst we're download buffering */
+ if (bvw->priv->download_buffering != FALSE &&
+- bvw_buffering_done (bvw) == FALSE) {
++ bvw_download_buffering_done (bvw) == FALSE) {
+ GST_DEBUG ("download buffering in progress, not playing");
+ return TRUE;
+ }
+
++ /* Or when we're buffering */
++ if (bvw->priv->buffering != FALSE) {
++ GST_DEBUG ("buffering in progress, not playing");
++ return TRUE;
++ }
++
+ /* just lie and do nothing in this case */
+ if (bvw->priv->plugin_install_in_progress && cur_state != GST_STATE_PAUSED) {
+ GST_DEBUG ("plugin install in progress and nothing to play, not playing");
+--
+cgit v0.8.3.1
diff --git a/media-video/totem/files/totem-2.30.1-fix-gmp-plugin.patch b/media-video/totem/files/totem-2.30.1-fix-gmp-plugin.patch
new file mode 100644
index 000000000000..df13ef1d5123
--- /dev/null
+++ b/media-video/totem/files/totem-2.30.1-fix-gmp-plugin.patch
@@ -0,0 +1,87 @@
+From d3b494595f7be012c400a4426bc89dcca1528f66 Mon Sep 17 00:00:00 2001
+From: Bastien Nocera <hadess@hadess.net>
+Date: Wed, 05 May 2010 16:50:52 +0000
+Subject: Fix URL parameter usage in GMP plugin
+
+The URL parameter is never the baseURI, it's the same as the SRC
+parameter, so some websites use both.
+
+Add support for the actual "baseURL" parameter instead.
+
+Fixes playback at:
+http://www.ta3.com/sk/relacie/23_hlavne-spravy/9167_hlavne-spravy-z-27-aprila
+
+https://bugzilla.gnome.org/show_bug.cgi?id=617639
+---
+diff --git a/browser-plugin/totemPlugin.cpp b/browser-plugin/totemPlugin.cpp
+index a30ffcc..25cf7ff 100644
+--- a/browser-plugin/totemPlugin.cpp
++++ b/browser-plugin/totemPlugin.cpp
+@@ -1042,7 +1042,6 @@ totemPlugin::RequestStream (bool aForceViewer)
+ /* Prefer filename over src */
+ if (mURLURI) {
+ requestURI = mURLURI;
+- baseURI = mSrcURI; /* FIXME: that correct? */
+ }
+ #endif /* TOTEM_GMP_PLUGIN */
+
+@@ -1655,7 +1654,23 @@ totemPlugin::SetURL (const char* aURL)
+
+ mURLURI = g_strdup (aURL);
+
+- /* FIXME: what is the correct base for the URL param? mSrcURI or mBaseURI? */
++ /* FIXME: security checks? */
++ /* FIXMEchpe: resolve the URI here? */
++}
++
++void
++totemPlugin::SetBaseURL (const char *aBaseURL)
++{
++ g_free (mBaseURI);
++
++ /* Don't allow empty URL */
++ if (!aBaseURL || !aBaseURL[0]) {
++ mBaseURI = NULL;
++ return;
++ }
++
++ mBaseURI = g_strdup (aBaseURL);
++
+ /* FIXME: security checks? */
+ /* FIXMEchpe: resolve the URI here? */
+ }
+@@ -2006,6 +2021,12 @@ totemPlugin::Init (NPMIMEType mimetype,
+ if (filename) {
+ SetURL (filename);
+ }
++
++ /* http://msdn.microsoft.com/en-us/library/dd564090(v=VS.85).aspx */
++ const char *base = (const char *) g_hash_table_lookup (args, "baseurl");
++ if (base)
++ SetBaseURL (base);
++
+ #endif /* TOTEM_GMP_PLUGIN */
+
+ #ifdef TOTEM_NARROWSPACE_PLUGIN
+@@ -2141,6 +2162,7 @@ totemPlugin::Init (NPMIMEType mimetype,
+
+ /* Dump some disagnostics */
+ D ("mSrcURI: %s", mSrcURI ? mSrcURI : "");
++ D ("mBaseURI: %s", mBaseURI ? mBaseURI : "");
+ D ("mCache: %d", mCache);
+ D ("mControllerHidden: %d", mControllerHidden);
+ D ("mShowStatusbar: %d", mShowStatusbar);
+diff --git a/browser-plugin/totemPlugin.h b/browser-plugin/totemPlugin.h
+index 1cd33d1..d42b9e1 100644
+--- a/browser-plugin/totemPlugin.h
++++ b/browser-plugin/totemPlugin.h
+@@ -284,6 +284,7 @@ class totemPlugin {
+ #ifdef TOTEM_GMP_PLUGIN
+ public:
+ void SetURL (const char* aURL);
++ void SetBaseURL (const char* aBaseURL);
+ const char* URL() const { return mURLURI; }
+
+ private:
+--
+cgit v0.8.3.1
diff --git a/media-video/totem/files/totem-2.30.1-fix-pygtk-include.patch b/media-video/totem/files/totem-2.30.1-fix-pygtk-include.patch
new file mode 100644
index 000000000000..8980dad8becd
--- /dev/null
+++ b/media-video/totem/files/totem-2.30.1-fix-pygtk-include.patch
@@ -0,0 +1,41 @@
+From aeeb165117a80080b044d54d5dc8b64df3128c26 Mon Sep 17 00:00:00 2001
+From: Jonathan Matthew <jonathan@kaolin.wh9.net>
+Date: Fri, 07 May 2010 12:23:17 +0000
+Subject: Fix version requirements for PyGTK
+
+pygtk.require() actually needs the major GTK+ version, and
+doesn't use the minor version in the require.
+
+Also make sure to check for the return value to avoid surprises.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=617821
+---
+diff --git a/src/plugins/totem-python-module.c b/src/plugins/totem-python-module.c
+index 5db787d..7eee97c 100644
+--- a/src/plugins/totem-python-module.c
++++ b/src/plugins/totem-python-module.c
+@@ -151,7 +151,7 @@ totem_python_module_init_python (void)
+
+ PySys_SetArgv (1, argv);
+
+- /* pygtk.require("2.8") */
++ /* pygtk.require("2.0") */
+ pygtk = PyImport_ImportModule ("pygtk");
+ if (pygtk == NULL) {
+ g_warning ("Could not import pygtk, check your installation");
+@@ -161,7 +161,12 @@ totem_python_module_init_python (void)
+
+ mdict = PyModule_GetDict (pygtk);
+ require = PyDict_GetItemString (mdict, "require");
+- PyObject_CallObject (require, Py_BuildValue ("(S)", PyString_FromString ("2.8")));
++ PyObject_CallObject (require, Py_BuildValue ("(S)", PyString_FromString ("2.0")));
++ if (PyErr_Occurred ()) {
++ g_warning ("Could not get required pygtk version, check your installation");
++ PyErr_Print();
++ return;
++ }
+
+ /* import gobject */
+ init_pygobject ();
+--
+cgit v0.8.3.1
diff --git a/media-video/totem/files/totem-2.30.1-fix-qt-eos.patch b/media-video/totem/files/totem-2.30.1-fix-qt-eos.patch
new file mode 100644
index 000000000000..36147aa35e79
--- /dev/null
+++ b/media-video/totem/files/totem-2.30.1-fix-qt-eos.patch
@@ -0,0 +1,30 @@
+From f6fa6e869330bb2e64b67f966f6873412c3ca081 Mon Sep 17 00:00:00 2001
+From: Bastien Nocera <hadess@hadess.net>
+Date: Fri, 07 May 2010 09:10:55 +0000
+Subject: Fix position when QT gets to EOS
+
+When QuickTime reaches the end of a stream, the expected behaviour
+is for the position to stay at the end of the file, rather than
+back at 0.
+---
+diff --git a/browser-plugin/totemPlugin.cpp b/browser-plugin/totemPlugin.cpp
+index 25cf7ff..5382bb2 100644
+--- a/browser-plugin/totemPlugin.cpp
++++ b/browser-plugin/totemPlugin.cpp
+@@ -1276,9 +1276,12 @@ totemPlugin::TickCallback (DBusGProxy *proxy,
+ scriptable->mPluginState = totemNarrowSpacePlayer::eState_Playable;
+ break;
+ case TOTEM_STATE_STOPPED:
+- if (scriptable->mPluginState == totemNarrowSpacePlayer::eState_Playable)
++ if (scriptable->mPluginState == totemNarrowSpacePlayer::eState_Playable) {
+ scriptable->mPluginState = totemNarrowSpacePlayer::eState_Complete;
+- else
++ /* The QuickTime plugin expects the duration to be the
++ * length of the file on EOS */
++ plugin->mTime = plugin->mDuration;
++ } else
+ scriptable->mPluginState = totemNarrowSpacePlayer::eState_Waiting;
+ break;
+ default:
+--
+cgit v0.8.3.1
diff --git a/media-video/totem/totem-2.30.0-r1.ebuild b/media-video/totem/totem-2.30.0-r1.ebuild
new file mode 100644
index 000000000000..8e677aa0ac4e
--- /dev/null
+++ b/media-video/totem/totem-2.30.0-r1.ebuild
@@ -0,0 +1,181 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-video/totem/totem-2.30.0-r1.ebuild,v 1.1 2010/06/13 20:36:55 pacho Exp $
+
+EAPI="2"
+
+inherit autotools eutils gnome2 multilib python
+
+DESCRIPTION="Media player for GNOME"
+HOMEPAGE="http://gnome.org/projects/totem/"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
+
+# FIXME: Enable for now python USE flag per bug #316409
+# this change should only be noticed by people not following current
+# current linux profiles default
+IUSE="bluetooth debug doc galago iplayer lirc nautilus nsplugin +python tracker +youtube" #zeroconf
+
+# TODO:
+# Cone (VLC) plugin needs someone with the right setup (remi ?)
+# check gmyth requirement ? -> waiting for updates in tree
+# coherence plugin not enabled until we have deps in tree
+# vala ( dev-lang/vala ) requires 0.7.5
+RDEPEND=">=dev-libs/glib-2.22
+ >=x11-libs/gtk+-2.19.5
+ >=gnome-base/gconf-2.0
+ >=dev-libs/totem-pl-parser-2.29.1
+ >=x11-themes/gnome-icon-theme-2.16
+ x11-libs/cairo
+ app-text/iso-codes
+ >=dev-libs/libxml2-2.6
+ >=dev-libs/dbus-glib-0.71
+ >=media-libs/gstreamer-0.10.26
+ >=media-libs/gst-plugins-good-0.10
+ >=media-libs/gst-plugins-base-0.10.26
+ >=media-plugins/gst-plugins-gconf-0.10
+
+ >=media-plugins/gst-plugins-taglib-0.10
+ >=media-plugins/gst-plugins-gio-0.10
+ >=media-plugins/gst-plugins-pango-0.10
+ >=media-plugins/gst-plugins-x-0.10
+ >=media-plugins/gst-plugins-meta-0.10-r2
+
+ dev-libs/libunique
+ x11-libs/libSM
+ x11-libs/libX11
+ x11-libs/libXtst
+ >=x11-libs/libXrandr-1.1.1
+ >=x11-libs/libXxf86vm-1.0.1
+
+ bluetooth? ( || (
+ net-wireless/bluez
+ net-wireless/bluez-libs ) )
+ galago? ( >=dev-libs/libgalago-0.5.2 )
+ iplayer? (
+ dev-python/pygobject
+ dev-python/pygtk
+ dev-python/httplib2
+ dev-python/feedparser
+ dev-python/beautifulsoup )
+ lirc? ( app-misc/lirc )
+ nautilus? ( >=gnome-base/nautilus-2.10 )
+ python? (
+ dev-lang/python[threads]
+ >=dev-python/pygtk-2.12
+ dev-python/pyxdg
+ dev-python/gst-python
+ dev-python/dbus-python
+ dev-python/gconf-python )
+ tracker? ( >=app-misc/tracker-0.7.1 )
+ youtube? (
+ >=dev-libs/libgdata-0.4.0
+ media-plugins/gst-plugins-soup )"
+# FIXME: freezes totem
+# zeroconf? ( >=net-libs/libepc-0.3 )
+DEPEND="${RDEPEND}
+ x11-proto/xproto
+ x11-proto/xextproto
+ x11-proto/xf86vidmodeproto
+ app-text/scrollkeeper
+ gnome-base/gnome-common
+ app-text/gnome-doc-utils
+ >=dev-util/intltool-0.40
+ >=dev-util/pkgconfig-0.20
+ dev-util/gtk-doc-am
+ doc? ( >=dev-util/gtk-doc-1.11 )
+ app-text/docbook-xml-dtd:4.5"
+# docbook-xml-dtd is needed for user doc
+
+DOCS="AUTHORS ChangeLog NEWS README TODO"
+
+pkg_setup() {
+ G2CONF="${G2CONF}
+ --disable-scrollkeeper
+ --disable-schemas-install
+ --disable-static
+ --disable-vala
+ --with-dbus
+ --with-smclient
+ --enable-easy-codec-installation
+ $(use_enable nsplugin browser-plugins)"
+
+ # Plugin configuration
+ G2CONF="${G2CONF}
+ BROWSER_PLUGIN_DIR=/usr/$(get_libdir)/nsbrowser/plugins
+ PLUGINDIR=/usr/$(get_libdir)/totem/plugins"
+
+ local plugins="properties,thumbnail,screensaver,ontop,gromit,media-player-keys,skipto,brasero-disc-recorder,screenshot"
+ use bluetooth && plugins="${plugins},bemused"
+ use galago && plugins="${plugins},galago"
+ use iplayer && plugins="${plugins},iplayer"
+ use lirc && plugins="${plugins},lirc"
+ use python && plugins="${plugins},opensubtitles,jamendo,pythonconsole,dbus-service"
+ use tracker && plugins="${plugins},tracker"
+ use youtube && plugins="${plugins},youtube"
+ #use zeroconf && plugins="${plugins},publish"
+
+ G2CONF="${G2CONF} --with-plugins=${plugins}"
+
+ G2CONF="${G2CONF}
+ $(use_enable debug)
+ $(use_enable nautilus)
+ $(use_enable python)"
+}
+
+src_prepare() {
+ gnome2_src_prepare
+
+ # Fix broken smclient option passing
+ epatch "${FILESDIR}/${PN}-2.26.1-smclient-target-detection.patch"
+
+# epatch "${FILESDIR}/${PN}-2.30.1-fix-constant-buffering.patch"
+ epatch "${FILESDIR}/${PN}-2.30.1-fix-gmp-plugin.patch"
+ epatch "${FILESDIR}/${PN}-2.30.1-fix-pygtk-include.patch"
+ epatch "${FILESDIR}/${PN}-2.30.1-fix-qt-eos.patch"
+
+ intltoolize --force --copy --automake || die "intltoolize failed"
+ eautoreconf
+
+ # disable pyc compiling
+ mv py-compile py-compile.orig
+ ln -s $(type -P true) py-compile
+}
+
+src_configure() {
+ # FIXME: why does it need write access here, probably need to set up a fake
+ # home in /var/tmp like other pkgs do
+
+ addpredict "$(unset HOME; echo ~)/.gconf"
+ addpredict "$(unset HOME; echo ~)/.gconfd"
+ addpredict "$(unset HOME; echo ~)/.gnome2"
+
+ gnome2_src_configure
+}
+
+src_install() {
+ gnome2_src_install
+ # Installed for plugins, but they're dlopen()-ed
+ # firefox, totem as well as nautilus
+ find "${D}" -name "*.la" -delete || die "remove of la files failed"
+}
+
+pkg_postinst() {
+ gnome2_pkg_postinst
+ if use python; then
+ python_need_rebuild
+ python_mod_optimize /usr/$(get_libdir)/totem/plugins
+ fi
+
+ ewarn
+ ewarn "If totem doesn't play some video format, please check your"
+ ewarn "USE flags on media-plugins/gst-plugins-meta"
+ ewarn
+}
+
+pkg_postrm() {
+ gnome2_pkg_postrm
+ python_mod_cleanup /usr/$(get_libdir)/totem/plugins
+}