r22186 - in /desktop/unstable/totem/debian: changelog control control.in patches/02_use_gconf_audio_sink.patch
slomo at users.alioth.debian.org
slomo at users.alioth.debian.org
Fri Oct 30 09:51:07 UTC 2009
Author: slomo
Date: Fri Oct 30 09:51:07 2009
New Revision: 22186
URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=22186
Log:
* debian/patches/02_use_gconf_audio_sink.patch,
debian/control.in:
+ Updated from upstream Bugzilla, this patch together with
gst-plugins-base 0.10.25-5 and gst-plugins-good 0.10.16-5
this fixes all volume related issues with totem and pulseaudio.
Modified:
desktop/unstable/totem/debian/changelog
desktop/unstable/totem/debian/control
desktop/unstable/totem/debian/control.in
desktop/unstable/totem/debian/patches/02_use_gconf_audio_sink.patch
Modified: desktop/unstable/totem/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/totem/debian/changelog?rev=22186&op=diff
==============================================================================
--- desktop/unstable/totem/debian/changelog [utf-8] (original)
+++ desktop/unstable/totem/debian/changelog [utf-8] Fri Oct 30 09:51:07 2009
@@ -1,3 +1,13 @@
+totem (2.28.2-2) unstable; urgency=low
+
+ * debian/patches/02_use_gconf_audio_sink.patch,
+ debian/control.in:
+ + Updated from upstream Bugzilla, this patch together with
+ gst-plugins-base 0.10.25-5 and gst-plugins-good 0.10.16-5
+ this fixes all volume related issues with totem and pulseaudio.
+
+ -- Sebastian Dröge <slomo at debian.org> Fri, 30 Oct 2009 10:47:49 +0100
+
totem (2.28.2-1) unstable; urgency=low
* New upstream bugfix release:
Modified: desktop/unstable/totem/debian/control
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/totem/debian/control?rev=22186&op=diff
==============================================================================
--- desktop/unstable/totem/debian/control [utf-8] (original)
+++ desktop/unstable/totem/debian/control [utf-8] Fri Oct 30 09:51:07 2009
@@ -18,10 +18,10 @@
libirman-dev (>= 0.4.2),
gnome-pkg-tools (>= 0.10),
scrollkeeper,
- libgstreamer0.10-dev (>= 0.10.24),
- libgstreamer-plugins-base0.10-dev (>= 0.10.24),
- gstreamer0.10-tools (>= 0.10.24),
- gstreamer0.10-plugins-base (>= 0.10.24),
+ libgstreamer0.10-dev (>= 0.10.25),
+ libgstreamer-plugins-base0.10-dev (>= 0.10.25),
+ gstreamer0.10-tools (>= 0.10.25),
+ gstreamer0.10-plugins-base (>= 0.10.25),
gstreamer0.10-plugins-good,
librsvg2-dev (>= 2.16.0-2),
librsvg2-common (>= 2.16.0-2),
@@ -61,7 +61,7 @@
Depends: ${shlibs:Depends},
${misc:Depends},
${python:Depends},
- gstreamer0.10-plugins-base (>= 0.10.24),
+ gstreamer0.10-plugins-base (>= 0.10.25-5),
gstreamer0.10-alsa | gstreamer0.10-audiosink,
gstreamer0.10-plugins-good (>= 0.10.7),
gstreamer0.10-x,
@@ -84,7 +84,8 @@
gstreamer0.10-plugins-ugly,
gstreamer0.10-plugins-bad,
gstreamer0.10-ffmpeg
-Suggests: gnome-codec-install
+Suggests: gnome-codec-install,
+ gstreamer0.10-pulseaudio (>= 0.10.16-5)
Description: A simple media player for the GNOME desktop based on GStreamer
Totem is a simple yet featureful media player for GNOME which can read
a large number of file formats. It features :
Modified: desktop/unstable/totem/debian/control.in
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/totem/debian/control.in?rev=22186&op=diff
==============================================================================
--- desktop/unstable/totem/debian/control.in [utf-8] (original)
+++ desktop/unstable/totem/debian/control.in [utf-8] Fri Oct 30 09:51:07 2009
@@ -61,7 +61,7 @@
Depends: ${shlibs:Depends},
${misc:Depends},
${python:Depends},
- gstreamer0.10-plugins-base (>= 0.10.25),
+ gstreamer0.10-plugins-base (>= 0.10.25-5),
gstreamer0.10-alsa | gstreamer0.10-audiosink,
gstreamer0.10-plugins-good (>= 0.10.7),
gstreamer0.10-x,
@@ -84,7 +84,8 @@
gstreamer0.10-plugins-ugly,
gstreamer0.10-plugins-bad,
gstreamer0.10-ffmpeg
-Suggests: gnome-codec-install
+Suggests: gnome-codec-install,
+ gstreamer0.10-pulseaudio (>= 0.10.16-5)
Description: A simple media player for the GNOME desktop based on GStreamer
Totem is a simple yet featureful media player for GNOME which can read
a large number of file formats. It features :
Modified: desktop/unstable/totem/debian/patches/02_use_gconf_audio_sink.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/totem/debian/patches/02_use_gconf_audio_sink.patch?rev=22186&op=diff
==============================================================================
--- desktop/unstable/totem/debian/patches/02_use_gconf_audio_sink.patch [utf-8] (original)
+++ desktop/unstable/totem/debian/patches/02_use_gconf_audio_sink.patch [utf-8] Fri Oct 30 09:51:07 2009
@@ -1,19 +1,157 @@
+From 65f1f448d2b900b51c7d5b99a654e338c9d3b65f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian.droege at collabora.co.uk>
+Date: Fri, 30 Oct 2009 09:48:04 +0100
+Subject: [PATCH] Don't special-case pulseaudio and clean up the volume handling
+
+totem now won't use pulsesink by default if it's available but will
+simply use gconfaudiosink, like it did in 2.28.0 and earlier.
+Fixes bug #596164.
+
+For this to work properly, the following GStreamer changesets are necessary
+http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=de1db5ccbdc10a835a2dfdd5984892f3b0c9bcf4
+http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=d85dadc122d40608ee304516702b479fb79c8ed7
+http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=598c9376342b4f67012d1d418c090f432fc26d27
+http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=e72c3029c0e4674e3ce6d9770dc9de665e7a3793
+http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=e4d6a2aa2c6b8b3d9137a38e10d28434eb31a580
+http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=3f541452c4916b31a222043b172b3398647b8091
+
+To give the best user experience with pulseaudio, pulseaudio >= 0.9.20
+is required because of this changeset:
+http://git.0pointer.de/?p=pulseaudio.git;a=commit;h=f27a50691c8fe45bac7dd6b21fac91a359def3a1
+---
+ src/backend/bacon-video-widget-gst-0.10.c | 75 +++++++----------------------
+ 1 files changed, 17 insertions(+), 58 deletions(-)
+
+diff --git a/src/backend/bacon-video-widget-gst-0.10.c b/src/backend/bacon-video-widget-gst-0.10.c
+index 21c7b0b..4e11c9f 100644
--- a/src/backend/bacon-video-widget-gst-0.10.c
+++ b/src/backend/bacon-video-widget-gst-0.10.c
-@@ -6183,8 +6183,6 @@
+@@ -199,7 +199,6 @@ struct BaconVideoWidgetPrivate
+ gboolean fullscreen_mode;
+ gboolean auto_resize;
+ gboolean uses_audio_fakesink;
+- GstElement *pulse_audio_sink;
+ gdouble volume;
+ gboolean is_menu;
+
+@@ -2312,11 +2311,6 @@ bacon_video_widget_finalize (GObject * object)
+ g_free (bvw->priv->vis_element_name);
+ bvw->priv->vis_element_name = NULL;
+
+- if (bvw->priv->pulse_audio_sink) {
+- g_object_unref (bvw->priv->pulse_audio_sink);
+- bvw->priv->pulse_audio_sink = NULL;
+- }
+-
+ if (bvw->priv->vis_plugins_list) {
+ g_list_free (bvw->priv->vis_plugins_list);
+ bvw->priv->vis_plugins_list = NULL;
+@@ -4039,33 +4033,11 @@ bacon_video_widget_set_volume (BaconVideoWidget * bvw, double volume)
+ g_return_if_fail (BACON_IS_VIDEO_WIDGET (bvw));
+ g_return_if_fail (GST_IS_ELEMENT (bvw->priv->play));
+
+- if (bvw->priv->volume < 0.0 && bvw->priv->pulse_audio_sink != NULL) {
+- bvw->priv->volume = volume;
+- return;
+- }
+-
+- if (bacon_video_widget_can_set_volume (bvw) != FALSE)
+- {
++ if (bacon_video_widget_can_set_volume (bvw) != FALSE) {
+ volume = CLAMP (volume, 0.0, 1.0);
+- if (bvw->priv->pulse_audio_sink) {
+- GstState cur_state;
+-
+- gst_element_get_state (bvw->priv->pulse_audio_sink, &cur_state, NULL, 0);
+- if (cur_state == GST_STATE_READY || cur_state == GST_STATE_PLAYING)
+- {
+- if (gst_element_implements_interface (bvw->priv->pulse_audio_sink,
+- GST_TYPE_STREAM_VOLUME)) {
+- gst_stream_volume_set_volume (GST_STREAM_VOLUME (bvw->priv->pulse_audio_sink),
+- GST_STREAM_VOLUME_FORMAT_CUBIC,
+- volume);
+- } else {
+- g_object_set (bvw->priv->pulse_audio_sink, "volume", volume, NULL);
+- }
+- }
+- } else {
+- g_object_set (bvw->priv->play, "volume",
+- (gdouble) volume, NULL);
+- }
++ gst_stream_volume_set_volume (GST_STREAM_VOLUME (bvw->priv->play),
++ GST_STREAM_VOLUME_FORMAT_CUBIC,
++ volume);
+
+ bvw->priv->volume = volume;
+ g_object_notify (G_OBJECT (bvw), "volume");
+@@ -4791,13 +4763,9 @@ notify_volume_idle_cb (BaconVideoWidget *bvw)
+ {
+ gdouble vol;
+
+- if (gst_element_implements_interface (bvw->priv->pulse_audio_sink,
+- GST_TYPE_STREAM_VOLUME)) {
+- vol = gst_stream_volume_get_volume (GST_STREAM_VOLUME (bvw->priv->pulse_audio_sink),
+- GST_STREAM_VOLUME_FORMAT_CUBIC);
+- } else {
+- g_object_get (G_OBJECT (bvw->priv->pulse_audio_sink), "volume", &vol, NULL);
+- }
++ vol = gst_stream_volume_get_volume (GST_STREAM_VOLUME (bvw->priv->play),
++ GST_STREAM_VOLUME_FORMAT_CUBIC);
++
+ bvw->priv->volume = vol;
+
+ g_object_notify (G_OBJECT (bvw), "volume");
+@@ -6368,18 +6336,15 @@ bacon_video_widget_new (int width, int height,
cb_gconf, bvw, NULL, NULL);
if (type == BVW_USE_TYPE_VIDEO || type == BVW_USE_TYPE_AUDIO) {
- audio_sink = gst_element_factory_make ("pulsesink", "audio-sink");
-- if (audio_sink == NULL) {
- audio_sink = gst_element_factory_make ("gconfaudiosink", "audio-sink");
- if (audio_sink == NULL) {
- g_warning ("Could not create element 'gconfaudiosink'");
-@@ -6195,7 +6193,6 @@
- if (g_object_class_find_property (G_OBJECT_GET_CLASS (audio_sink), "profile"))
- g_object_set (G_OBJECT (audio_sink), "profile", 1, NULL);
- }
++ audio_sink = gst_element_factory_make ("gconfaudiosink", "audio-sink");
+ if (audio_sink == NULL) {
+- audio_sink = gst_element_factory_make ("gconfaudiosink", "audio-sink");
+- if (audio_sink == NULL) {
+- g_warning ("Could not create element 'gconfaudiosink'");
+- /* Try to fallback on autoaudiosink */
+- audio_sink = gst_element_factory_make ("autoaudiosink", "audio-sink");
+- } else {
+- /* set the profile property on the gconfaudiosink to "music and movies" */
+- if (g_object_class_find_property (G_OBJECT_GET_CLASS (audio_sink), "profile"))
+- g_object_set (G_OBJECT (audio_sink), "profile", 1, NULL);
+- }
++ g_warning ("Could not create element 'gconfaudiosink'");
++ /* Try to fallback on autoaudiosink */
++ audio_sink = gst_element_factory_make ("autoaudiosink", "audio-sink");
++ } else {
++ /* set the profile property on the gconfaudiosink to "music and movies" */
++ if (g_object_class_find_property (G_OBJECT_GET_CLASS (audio_sink), "profile"))
++ g_object_set (G_OBJECT (audio_sink), "profile", 1, NULL);
+ }
+ } else {
+ audio_sink = gst_element_factory_make ("fakesink", "audio-fake-sink");
+@@ -6529,14 +6494,6 @@ bacon_video_widget_new (int width, int height,
+ bvw->priv->uses_audio_fakesink = TRUE;
+ }
+ gst_object_unref (bus);
+-
+- /* If we're using a sink that has a volume property, then that's what
+- * we need to modify, not playbin's one */
+- if (g_object_class_find_property (G_OBJECT_GET_CLASS (audio_sink), "volume")) {
+- bvw->priv->pulse_audio_sink = g_object_ref (audio_sink);
+- g_signal_connect (G_OBJECT (bvw->priv->pulse_audio_sink), "notify::volume",
+- G_CALLBACK (notify_volume_cb), bvw);
- }
} else {
- audio_sink = gst_element_factory_make ("fakesink", "audio-fake-sink");
- }
+ g_set_error_literal (error, BVW_ERROR, BVW_ERROR_AUDIO_PLUGIN,
+ _("Could not find the audio output. "
+@@ -6575,6 +6532,8 @@ bacon_video_widget_new (int width, int height,
+
+ bvw->priv->vis_plugins_list = NULL;
+
++ g_signal_connect (G_OBJECT (bvw->priv->play), "notify::volume",
++ G_CALLBACK (notify_volume_cb), bvw);
+ g_signal_connect (bvw->priv->play, "notify::source",
+ G_CALLBACK (playbin_source_notify_cb), bvw);
+ g_signal_connect (bvw->priv->play, "video-changed",
+--
+1.6.5
+
More information about the pkg-gnome-commits
mailing list