diff -u gst-plugins-base0.10-0.10.21/debian/control.in gst-plugins-base0.10-0.10.21/debian/control.in --- gst-plugins-base0.10-0.10.21/debian/control.in +++ gst-plugins-base0.10-0.10.21/debian/control.in @@ -1,7 +1,8 @@ Source: gst-plugins-base@GST_ABI@ Section: libs Priority: optional -Maintainer: Maintainers of GStreamer packages +Maintainer: Ubuntu Core Developers +XSBC-Original-Maintainer: Maintainers of GStreamer packages Uploaders: David I. Lehn , Loic Minier , Sebastien Bacher , diff -u gst-plugins-base0.10-0.10.21/debian/control gst-plugins-base0.10-0.10.21/debian/control --- gst-plugins-base0.10-0.10.21/debian/control +++ gst-plugins-base0.10-0.10.21/debian/control @@ -1,13 +1,14 @@ Source: gst-plugins-base0.10 Section: libs Priority: optional -Maintainer: Maintainers of GStreamer packages +Maintainer: Ubuntu Core Developers +XSBC-Original-Maintainer: Maintainers of GStreamer packages Uploaders: David I. Lehn , Loic Minier , Sebastien Bacher , Sebastian Dröge , Sjoerd Simons -Build-Depends: libgstreamer0.10-dev (>= 0.10.21), libasound2-dev (>= 0.9.0) [alpha amd64 arm armeb armel hppa i386 ia64 lpia m32r m68k mips mipsel powerpc ppc64 s390 s390x sh3 sh3eb sh4 sh4eb sparc], autotools-dev, cdbs (>= 0.4.20), debhelper (>= 5), pkg-config (>= 0.11.0), libxv-dev (>= 6.8.2.dfsg.1-3), libxt-dev (>= 6.8.2.dfsg.1-3), libvorbis-dev (>= 1.0.0-2), libcdparanoia0-dev, libgnomevfs2-dev (>= 1:2.20.0-2), liboil0.3-dev (>= 0.3.14), libpango1.0-dev, libtheora-dev (>= 0.0.0.alpha5), libglib2.0-dev (>= 2.15.2), libxml2-dev (>= 2.4.23), zlib1g-dev (>= 1:1.1.4), gtk-doc-tools, type-handling (>= 0.2.14), libvisual-0.4-dev (>= 0.4.0), gstreamer-tools (>= 0.10.14), dpkg-dev (>= 1.14.13), lsb-release, libgtk2.0-dev (>= 2.12.0) +Build-Depends: libgstreamer0.10-dev (>= 0.10.21), libasound2-dev (>= 0.9.0) [alpha amd64 arm armeb armel hppa i386 i686 ia64 lpia m32r m68k mips mipsel powerpc ppc64 s390 s390x sh3 sh3eb sh4 sh4eb sparc], autotools-dev, cdbs (>= 0.4.20), debhelper (>= 5), pkg-config (>= 0.11.0), libxv-dev (>= 6.8.2.dfsg.1-3), libxt-dev (>= 6.8.2.dfsg.1-3), libvorbis-dev (>= 1.0.0-2), libcdparanoia0-dev, libgnomevfs2-dev (>= 1:2.20.0-2), liboil0.3-dev (>= 0.3.14), libpango1.0-dev, libtheora-dev (>= 0.0.0.alpha5), libglib2.0-dev (>= 2.15.2), libxml2-dev (>= 2.4.23), zlib1g-dev (>= 1:1.1.4), gtk-doc-tools, type-handling (>= 0.2.14), libvisual-0.4-dev (>= 0.4.0), gstreamer-tools (>= 0.10.14), dpkg-dev (>= 1.14.13), lsb-release, libgtk2.0-dev (>= 2.12.0) Standards-Version: 3.8.0 Homepage: http://gstreamer.freedesktop.org @@ -85,7 +86,7 @@ the "base" set, an essential exemplary set of elements. Package: gstreamer0.10-alsa -Architecture: alpha amd64 arm armeb armel hppa i386 ia64 lpia m32r m68k mips mipsel powerpc ppc64 s390 s390x sh3 sh3eb sh4 sh4eb sparc +Architecture: alpha amd64 arm armeb armel hppa i386 i686 ia64 lpia m32r m68k mips mipsel powerpc ppc64 s390 s390x sh3 sh3eb sh4 sh4eb sparc Section: libs Depends: ${misc:Depends}, ${shlibs:Depends}, @@ -162,7 +163,7 @@ Architecture: any Section: libdevel Priority: extra -Depends: gstreamer0.10-alsa (= ${binary:Version}) [alpha amd64 arm armeb armel hppa i386 ia64 lpia m32r m68k mips mipsel powerpc ppc64 s390 s390x sh3 sh3eb sh4 sh4eb sparc], +Depends: gstreamer0.10-alsa (= ${binary:Version}) [alpha amd64 arm armeb armel hppa i386 i686 ia64 lpia m32r m68k mips mipsel powerpc ppc64 s390 s390x sh3 sh3eb sh4 sh4eb sparc], gstreamer0.10-gnomevfs (= ${binary:Version}), gstreamer0.10-plugins-base (= ${binary:Version}), gstreamer0.10-x (= ${binary:Version}), diff -u gst-plugins-base0.10-0.10.21/debian/changelog gst-plugins-base0.10-0.10.21/debian/changelog --- gst-plugins-base0.10-0.10.21/debian/changelog +++ gst-plugins-base0.10-0.10.21/debian/changelog @@ -1,3 +1,11 @@ +gst-plugins-base0.10 (0.10.21-3ubuntu1) intrepid; urgency=low + + * debian/patches/11_fix-skippy-volume.patch: + + Fix skippy volume control by reverting mixer methods. (LP: #252237) + * Adhere to DebianMaintainerField spec. + + -- Andy Matteson Fri, 14 Nov 2008 14:18:00 -0500 + gst-plugins-base0.10 (0.10.21-3) experimental; urgency=low * debian/patches/03_image-tag-length.patch: only in patch2: unchanged: --- gst-plugins-base0.10-0.10.21.orig/debian/patches/11_fix-skippy-volume.patch +++ gst-plugins-base0.10-0.10.21/debian/patches/11_fix-skippy-volume.patch @@ -0,0 +1,513 @@ +diff -Nur -x '*.orig' -x '*~' gst-plugins-base0.10-0.10.21/ext/alsa/gstalsamixer.c gst-plugins-base0.10-0.10.21.new/ext/alsa/gstalsamixer.c +--- gst-plugins-base0.10-0.10.21/ext/alsa/gstalsamixer.c 2008-09-10 06:02:38.000000000 -0400 ++++ gst-plugins-base0.10-0.10.21.new/ext/alsa/gstalsamixer.c 2008-11-14 14:16:51.000000000 -0500 +@@ -36,12 +36,6 @@ + + #include "gstalsamixer.h" + +-static void gst_alsa_mixer_update_option (GstAlsaMixer * mixer, +- GstAlsaMixerOptions * alsa_opts); +-static void gst_alsa_mixer_update_track (GstAlsaMixer * mixer, +- GstAlsaMixerTrack * alsa_track); +-static int gst_alsa_mixer_handle_callback (snd_mixer_t * handle, +- unsigned int mask, snd_mixer_elem_t * elem); + + /* First some utils, then the mixer implementation */ + static gboolean +@@ -74,8 +68,6 @@ + goto error; + } + +- snd_mixer_set_callback_private (mixer->handle, mixer); +- snd_mixer_set_callback (mixer->handle, gst_alsa_mixer_handle_callback); + + /* now get the device name, any of this is not fatal */ + g_free (mixer->cardname); +@@ -205,79 +197,16 @@ + } + + static void +-gst_alsa_mixer_update (GstAlsaMixer * mixer, snd_mixer_elem_t * elem) +-{ +- GList *item; +- +- g_return_if_fail (mixer != NULL); +- +- g_static_rec_mutex_lock (mixer->rec_mutex); +- +- for (item = mixer->tracklist; item != NULL; item = item->next) { +- if (GST_IS_ALSA_MIXER_TRACK (item->data)) { +- if (elem && (GST_ALSA_MIXER_TRACK (item->data)->element != elem)) +- continue; +- +- gst_alsa_mixer_update_track (mixer, GST_ALSA_MIXER_TRACK (item->data)); +- } else if (GST_IS_ALSA_MIXER_OPTIONS (item->data)) { +- if (elem && (GST_ALSA_MIXER_OPTIONS (item->data)->element != elem)) +- continue; +- +- gst_alsa_mixer_update_option (mixer, GST_ALSA_MIXER_OPTIONS (item->data)); +- } +- } +- +- g_static_rec_mutex_unlock (mixer->rec_mutex); +-} +- +-static int +-gst_alsa_mixer_elem_handle_callback (snd_mixer_elem_t * elem, unsigned int mask) +-{ +- GstAlsaMixer *mixer = +- (GstAlsaMixer *) snd_mixer_elem_get_callback_private (elem); +- +- GST_LOG ("ALSA elem cb"); +- +- g_return_val_if_fail (mixer != NULL, 1); +- +- gst_alsa_mixer_update (mixer, elem); +- +- return 0; +-} +- +-static int +-gst_alsa_mixer_handle_callback (snd_mixer_t * handle, unsigned int mask, +- snd_mixer_elem_t * elem) +-{ +- GstAlsaMixer *mixer = +- (GstAlsaMixer *) snd_mixer_get_callback_private (handle); +- +- GST_LOG ("ALSA cb"); +- +- g_return_val_if_fail (mixer != NULL, 1); +- +- /* Hopefully won't be call recursively and will handle pending elem events */ +- snd_mixer_handle_events (mixer->handle); +- +- gst_alsa_mixer_update (mixer, elem); +- +- return 0; +-} +- +-static void + gst_alsa_mixer_ensure_track_list (GstAlsaMixer * mixer) + { + gint i, count; + snd_mixer_elem_t *element, *master; +- GList *item; + + g_return_if_fail (mixer->handle != NULL); + + if (mixer->tracklist) + return; + +- g_static_rec_mutex_lock (mixer->rec_mutex); +- + master = gst_alsa_mixer_find_master_mixer (mixer, mixer->handle); + + count = snd_mixer_get_count (mixer->handle); +@@ -385,62 +314,8 @@ + + element = snd_mixer_elem_next (element); + } +- +- for (item = mixer->tracklist; item != NULL; item = item->next) { +- snd_mixer_elem_t *temp; +- +- if (GST_IS_ALSA_MIXER_OPTIONS (item->data)) +- temp = GST_ALSA_MIXER_OPTIONS (item->data)->element; +- else +- temp = GST_ALSA_MIXER_TRACK (item->data)->element; +- +- snd_mixer_elem_set_callback (temp, gst_alsa_mixer_elem_handle_callback); +- snd_mixer_elem_set_callback_private (temp, mixer); +- } +- +- g_static_rec_mutex_unlock (mixer->rec_mutex); + } + +-static void +-task_monitor_alsa (gpointer data) +-{ +- struct pollfd *pfds; +- unsigned int nfds, rnfds; +- unsigned short revents; +- GstAlsaMixer *mixer = (GstAlsaMixer *) data; +- +- g_static_rec_mutex_lock (mixer->rec_mutex); +- +- nfds = snd_mixer_poll_descriptors_count (mixer->handle); +- if (nfds <= 0) { +- GST_ERROR ("snd_mixer_poll_descriptors_count <= 0: %d", nfds); +- /* FIXME: sleep ? stop monitoring ? */ +- return; +- } +- +- pfds = g_newa (struct pollfd, nfds + 1); +- rnfds = snd_mixer_poll_descriptors (mixer->handle, pfds, nfds); +- g_assert (rnfds <= nfds); +- +- pfds[rnfds].fd = mixer->pfd[0]; +- pfds[rnfds].events = POLLIN | POLLPRI | POLLHUP | POLLERR; +- pfds[rnfds].revents = 0; +- +- g_static_rec_mutex_unlock (mixer->rec_mutex); +- +- GST_LOG ("task loop"); +- poll (pfds, rnfds + 1, -1); +- +- g_static_rec_mutex_lock (mixer->rec_mutex); +- +- snd_mixer_poll_descriptors_revents (mixer->handle, pfds, nfds, &revents); +- if (revents & POLLIN || revents & POLLPRI) { +- GST_DEBUG ("Handling events"); +- snd_mixer_handle_events (mixer->handle); +- } +- +- g_static_rec_mutex_unlock (mixer->rec_mutex); +-} + + /* API */ + +@@ -453,28 +328,12 @@ + + ret = g_new0 (GstAlsaMixer, 1); + +- if (pipe (ret->pfd) == -1) +- goto error; +- +- ret->rec_mutex = g_new (GStaticRecMutex, 1); +- g_static_rec_mutex_init (ret->rec_mutex); +- +- ret->task_mutex = g_new (GStaticRecMutex, 1); +- g_static_rec_mutex_init (ret->task_mutex); +- +- ret->task = gst_task_create (task_monitor_alsa, ret); +- gst_task_set_lock (ret->task, ret->task_mutex); +- + ret->device = g_strdup (device); + ret->dir = dir; + + if (!gst_alsa_mixer_open (ret)) + goto error; + +- if (gst_task_start (ret->task) == FALSE) { +- GST_WARNING ("Could not start alsamixer task"); +- } +- + return ret; + + /* ERRORS */ +@@ -490,40 +349,6 @@ + { + g_return_if_fail (mixer != NULL); + +- if (mixer->task) { +- if (write (mixer->pfd[1], "stop", 5) <= 0) { +- GST_ERROR ("Cannot send " "stop" " to alsamixer task"); +- close (mixer->pfd[1]); +- mixer->pfd[1] = -1; +- } +- +- if (gst_task_join (mixer->task) == FALSE) { +- GST_ERROR ("Cannot join alsamixer task"); +- } +- +- gst_object_unref (mixer->task); +- mixer->task = NULL; +- } +- +- g_static_rec_mutex_free (mixer->task_mutex); +- g_free (mixer->task_mutex); +- mixer->task_mutex = NULL; +- +- if (mixer->pfd[0] > 0) { +- close (mixer->pfd[0]); +- mixer->pfd[0] = -1; +- } +- +- if (mixer->pfd[1] > 0) { +- close (mixer->pfd[1]); +- mixer->pfd[1] = -1; +- } +- +- if (mixer->interface) { +- g_object_unref (G_OBJECT (mixer->interface)); +- mixer->interface = NULL; +- } +- + if (mixer->device) { + g_free (mixer->device); + mixer->device = NULL; +@@ -545,10 +370,6 @@ + mixer->handle = NULL; + } + +- g_static_rec_mutex_free (mixer->rec_mutex); +- g_free (mixer->rec_mutex); +- mixer->rec_mutex = NULL; +- + g_free (mixer); + } + +@@ -562,6 +383,16 @@ + return (const GList *) mixer->tracklist; + } + ++static void ++gst_alsa_mixer_update (GstAlsaMixer * mixer, GstAlsaMixerTrack * alsa_track) ++{ ++ snd_mixer_handle_events (mixer->handle); ++ ++ if (alsa_track) ++ gst_alsa_mixer_track_update (alsa_track); ++} ++ ++ + void + gst_alsa_mixer_get_volume (GstAlsaMixer * mixer, GstMixerTrack * track, + gint * volumes) +@@ -571,7 +402,7 @@ + + g_return_if_fail (mixer->handle != NULL); + +- gst_alsa_mixer_track_update (alsa_track); ++ gst_alsa_mixer_update (mixer, alsa_track); + + if (track->flags & GST_MIXER_TRACK_OUTPUT) { /* return playback volume */ + +@@ -632,7 +463,7 @@ + + g_return_if_fail (mixer->handle != NULL); + +- gst_alsa_mixer_track_update (alsa_track); ++ gst_alsa_mixer_update (mixer, alsa_track); + + if (track->flags & GST_MIXER_TRACK_OUTPUT) { + +@@ -688,7 +519,7 @@ + + g_return_if_fail (mixer->handle != NULL); + +- gst_alsa_mixer_track_update (alsa_track); ++ gst_alsa_mixer_update (mixer, alsa_track); + + if (!!(mute) == !!(track->flags & GST_MIXER_TRACK_MUTE)) + return; +@@ -736,7 +567,7 @@ + + g_return_if_fail (mixer->handle != NULL); + +- gst_alsa_mixer_track_update (alsa_track); ++ gst_alsa_mixer_update (mixer, alsa_track); + + if (!!(record) == !!(track->flags & GST_MIXER_TRACK_RECORD)) + return; +@@ -763,7 +594,7 @@ + + if (item_alsa_track->alsa_flags & GST_ALSA_MIXER_TRACK_CSWITCH_EXCL && + item_alsa_track->capture_group == alsa_track->capture_group) { +- gst_alsa_mixer_track_update (item_alsa_track); ++ gst_alsa_mixer_update (mixer, item_alsa_track); + } + } + } +@@ -789,6 +620,8 @@ + + g_return_if_fail (mixer->handle != NULL); + ++ gst_alsa_mixer_update (mixer, NULL); ++ + for (item = opts->values; item != NULL; item = item->next, n++) { + if (!strcmp (item->data, value)) { + idx = n; +@@ -810,94 +643,11 @@ + + g_return_val_if_fail (mixer->handle != NULL, NULL); + ++ gst_alsa_mixer_update (mixer, NULL); ++ + ret = snd_mixer_selem_get_enum_item (alsa_opts->element, 0, &idx); + if (ret == 0) + return g_list_nth_data (opts->values, idx); + else + return snd_strerror (ret); /* feeble attempt at error handling */ + } +- +-GstMixerFlags +-gst_alsa_mixer_get_mixer_flags (GstAlsaMixer * mixer) +-{ +- g_return_val_if_fail (mixer != NULL, GST_MIXER_FLAG_NONE); +- +- return GST_MIXER_FLAG_AUTO_NOTIFICATIONS; +-} +- +-static void +-gst_alsa_mixer_update_option (GstAlsaMixer * mixer, +- GstAlsaMixerOptions * alsa_opts) +-{ +- gint ret; +- guint idx; +- /* const */ gchar *option; +- +- if (mixer->interface == NULL) { +- GST_WARNING ("Cannot send update notifications, no GstMixer * given"); +- return; +- } +- +- ret = snd_mixer_selem_get_enum_item (alsa_opts->element, 0, &idx); +- if (ret == 0) { +- option = g_list_nth_data (GST_MIXER_OPTIONS (alsa_opts)->values, idx); +- gst_mixer_option_changed (mixer->interface, GST_MIXER_OPTIONS (alsa_opts), +- option); +- } +-} +- +-static void +-gst_alsa_mixer_update_track (GstAlsaMixer * mixer, +- GstAlsaMixerTrack * alsa_track) +-{ +- GstMixerTrack *track = (GstMixerTrack *) alsa_track; +- gboolean old_mute; +- gboolean old_record; +- gint i, n_channels; +- gint *old_volumes; +- +- GST_DEBUG ("Updating track %" GST_PTR_FORMAT, alsa_track); +- +- if (mixer->interface == NULL) { +- GST_WARNING ("Cannot send update notifications, no GstMixer * given"); +- return; +- } +- +- old_mute = !!(GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MUTE)); +- old_record = !!(GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_RECORD)); +- old_volumes = g_new (gint, track->num_channels); +- n_channels = track->num_channels; +- memcpy (old_volumes, alsa_track->volumes, +- sizeof (gint) * track->num_channels); +- +- gst_alsa_mixer_track_update (alsa_track); +- +- if (old_record != +- !!(GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_RECORD))) { +- gst_mixer_record_toggled (mixer->interface, track, +- !!GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_RECORD)); +- } +- if (old_mute != !!(GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MUTE))) { +- gst_mixer_mute_toggled (mixer->interface, track, +- !!GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MUTE)); +- } +- +- n_channels = MIN (n_channels, track->num_channels); +- for (i = 0; i < n_channels; i++) { +- if (old_volumes[i] != alsa_track->volumes[i]) { +- gst_mixer_volume_changed (mixer->interface, track, alsa_track->volumes); +- break; +- } +- } +- g_free (old_volumes); +-} +- +-/* utility function for gstalsamixerelement to set the interface */ +-void +-_gst_alsa_mixer_set_interface (GstAlsaMixer * mixer, GstMixer * interface) +-{ +- g_return_if_fail (mixer != NULL && mixer->interface == NULL); +- g_return_if_fail (interface != NULL); +- +- mixer->interface = g_object_ref (G_OBJECT (interface)); +-} +diff -Nur -x '*.orig' -x '*~' gst-plugins-base0.10-0.10.21/ext/alsa/gstalsamixerelement.c gst-plugins-base0.10-0.10.21.new/ext/alsa/gstalsamixerelement.c +--- gst-plugins-base0.10-0.10.21/ext/alsa/gstalsamixerelement.c 2008-09-10 06:02:38.000000000 -0400 ++++ gst-plugins-base0.10-0.10.21.new/ext/alsa/gstalsamixerelement.c 2008-11-14 14:16:51.000000000 -0500 +@@ -44,22 +44,22 @@ + static void gst_alsa_mixer_element_init_interfaces (GType type); + + GST_BOILERPLATE_FULL (GstAlsaMixerElement, gst_alsa_mixer_element, +- GstElement, GST_TYPE_ELEMENT, gst_alsa_mixer_element_init_interfaces); ++ GstElement, GST_TYPE_ELEMENT, gst_alsa_mixer_element_init_interfaces) + + /* massive macro that takes care of all the GstMixer stuff */ +-GST_IMPLEMENT_ALSA_MIXER_METHODS (GstAlsaMixerElement, gst_alsa_mixer_element); ++ GST_IMPLEMENT_ALSA_MIXER_METHODS (GstAlsaMixerElement, gst_alsa_mixer_element); + +-static void gst_alsa_mixer_element_get_property (GObject * object, ++ static void gst_alsa_mixer_element_get_property (GObject * object, + guint prop_id, GValue * value, GParamSpec * pspec); +-static void gst_alsa_mixer_element_set_property (GObject * object, ++ static void gst_alsa_mixer_element_set_property (GObject * object, + guint prop_id, const GValue * value, GParamSpec * pspec); +-static void gst_alsa_mixer_element_finalize (GObject * object); ++ static void gst_alsa_mixer_element_finalize (GObject * object); + +-static GstStateChangeReturn gst_alsa_mixer_element_change_state (GstElement ++ static GstStateChangeReturn gst_alsa_mixer_element_change_state (GstElement + * element, GstStateChange transition); + +-static gboolean +-gst_alsa_mixer_element_interface_supported (GstAlsaMixerElement * this, ++ static gboolean ++ gst_alsa_mixer_element_interface_supported (GstAlsaMixerElement * this, + GType interface_type) + { + if (interface_type == GST_TYPE_MIXER) { +@@ -214,7 +214,6 @@ + this->mixer = gst_alsa_mixer_new (this->device, GST_ALSA_MIXER_ALL); + if (!this->mixer) + goto open_failed; +- _gst_alsa_mixer_set_interface (this->mixer, GST_MIXER (element)); + } + break; + default: +diff -Nur -x '*.orig' -x '*~' gst-plugins-base0.10-0.10.21/ext/alsa/gstalsamixer.h gst-plugins-base0.10-0.10.21.new/ext/alsa/gstalsamixer.h +--- gst-plugins-base0.10-0.10.21/ext/alsa/gstalsamixer.h 2007-07-21 05:21:12.000000000 -0400 ++++ gst-plugins-base0.10-0.10.21.new/ext/alsa/gstalsamixer.h 2008-11-14 14:16:51.000000000 -0500 +@@ -52,13 +52,6 @@ + + snd_mixer_t * handle; + +- GstTask * task; +- GStaticRecMutex * task_mutex; +- GStaticRecMutex * rec_mutex; +- +- int pfd[2]; +- +- GstMixer * interface; + gchar * device; + gchar * cardname; + +@@ -88,9 +81,7 @@ + gchar * value); + const gchar* gst_alsa_mixer_get_option (GstAlsaMixer * mixer, + GstMixerOptions * opts); +-void _gst_alsa_mixer_set_interface (GstAlsaMixer * mixer, +- GstMixer * interface); +-GstMixerFlags gst_alsa_mixer_get_mixer_flags (GstAlsaMixer *mixer); ++ + + #define GST_IMPLEMENT_ALSA_MIXER_METHODS(Type, interface_as_function) \ + static gboolean \ +@@ -183,17 +174,6 @@ + return gst_alsa_mixer_get_option (this->mixer, opts); \ + } \ + \ +-static GstMixerFlags \ +-interface_as_function ## _get_mixer_flags (GstMixer * mixer) \ +-{ \ +- Type *this = (Type*) mixer; \ +- \ +- g_return_val_if_fail (this != NULL, GST_MIXER_FLAG_NONE); \ +- g_return_val_if_fail (this->mixer != NULL, GST_MIXER_FLAG_NONE); \ +- \ +- return gst_alsa_mixer_get_mixer_flags (this->mixer); \ +-} \ +- \ + static void \ + interface_as_function ## _interface_init (GstMixerClass * klass) \ + { \ +@@ -207,7 +187,6 @@ + klass->set_record = interface_as_function ## _set_record; \ + klass->set_option = interface_as_function ## _set_option; \ + klass->get_option = interface_as_function ## _get_option; \ +- klass->get_mixer_flags = interface_as_function ## _get_mixer_flags; \ + } + +