diff options
author | Pacho Ramos <pacho@gentoo.org> | 2010-06-13 20:36:55 +0000 |
---|---|---|
committer | Pacho Ramos <pacho@gentoo.org> | 2010-06-13 20:36:55 +0000 |
commit | 5e7552153681562d642e13bec60d88e632bbf5a4 (patch) | |
tree | 42a73f57edd282013b6c98922234e394d64f8493 /media-video/totem | |
parent | Mask media-video/totem youtube and iplayer USEs until bug 323845 and 323847 a... (diff) | |
download | gentoo-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/ChangeLog | 11 | ||||
-rw-r--r-- | media-video/totem/files/totem-2.30.1-fix-constant-buffering.patch | 83 | ||||
-rw-r--r-- | media-video/totem/files/totem-2.30.1-fix-gmp-plugin.patch | 87 | ||||
-rw-r--r-- | media-video/totem/files/totem-2.30.1-fix-pygtk-include.patch | 41 | ||||
-rw-r--r-- | media-video/totem/files/totem-2.30.1-fix-qt-eos.patch | 30 | ||||
-rw-r--r-- | media-video/totem/totem-2.30.0-r1.ebuild | 181 |
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 +} |