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