[arch-commits] Commit in gstreamer0.10-base-plugins/trunk (2 files)
Jan de Groot
jgc at archlinux.org
Sun Jun 1 17:43:04 UTC 2008
Date: Sunday, June 1, 2008 @ 13:43:04
Author: jgc
Revision: 2378
Add patch to "fix" problems with alsa mixer. Improves situation with jumpy volume control, but still not perfect.
Added:
gstreamer0.10-base-plugins/trunk/gstreamer-0.10.19-alsasink-mixed-record-playback-tracks.patch
Modified:
gstreamer0.10-base-plugins/trunk/PKGBUILD
---------------------------------------------------------------+
PKGBUILD | 8 -
gstreamer-0.10.19-alsasink-mixed-record-playback-tracks.patch | 60 ++++++++++
2 files changed, 65 insertions(+), 3 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2008-06-01 17:31:14 UTC (rev 2377)
+++ PKGBUILD 2008-06-01 17:43:04 UTC (rev 2378)
@@ -3,7 +3,7 @@
pkgname=gstreamer0.10-base-plugins
pkgver=0.10.19
-pkgrel=1
+pkgrel=2
pkgdesc="GStreamer Multimedia Framework Base Plugins (gst-plugins-base)"
arch=(i686 x86_64)
license=('GPL' 'LGPL')
@@ -16,11 +16,13 @@
url="http://gstreamer.freedesktop.org/"
groups=('gstreamer0.10-plugins')
_relname=gst-plugins-base
-source=(${url}/src/${_relname}/${_relname}-${pkgver}.tar.bz2)
-md5sums=('9c9614cbb6497b7fee1c954b9d5ae3b7')
+source=(${url}/src/${_relname}/${_relname}-${pkgver}.tar.bz2
+ gstreamer-0.10.19-alsasink-mixed-record-playback-tracks.patch)
+md5sums=('9c9614cbb6497b7fee1c954b9d5ae3b7' '0505a174ec5cfa17d6d71514ab7b1887')
build() {
cd ${startdir}/src/${_relname}-${pkgver}
+ patch -Np1 -i ${startdir}/src/gstreamer-0.10.19-alsasink-mixed-record-playback-tracks.patch || return 1
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
--disable-static --enable-experimental \
--disable-docs-build --disable-plugin-docs \
Added: gstreamer-0.10.19-alsasink-mixed-record-playback-tracks.patch
===================================================================
--- gstreamer-0.10.19-alsasink-mixed-record-playback-tracks.patch (rev 0)
+++ gstreamer-0.10.19-alsasink-mixed-record-playback-tracks.patch 2008-06-01 17:43:04 UTC (rev 2378)
@@ -0,0 +1,60 @@
+diff -Nur -x '*.orig' -x '*~' gst-plugins-base0.10-0.10.18/ext/alsa/gstalsamixertrack.c gst-plugins-base0.10-0.10.18.new/ext/alsa/gstalsamixertrack.c
+--- gst-plugins-base0.10-0.10.18/ext/alsa/gstalsamixertrack.c 2008-03-03 22:29:49.000000000 +0000
++++ gst-plugins-base0.10-0.10.18.new/ext/alsa/gstalsamixertrack.c 2008-04-10 15:15:15.000000000 +0100
+@@ -75,28 +75,40 @@
+ alsa_track->alsa_flags = 0;
+ alsa_track->capture_group = -1;
+
++ /* common flags */
+ if (snd_mixer_selem_has_common_volume (alsa_track->element))
+ alsa_track->alsa_flags |= GST_ALSA_MIXER_TRACK_VOLUME;
+
+- if (snd_mixer_selem_has_playback_volume (alsa_track->element))
+- alsa_track->alsa_flags |= GST_ALSA_MIXER_TRACK_PVOLUME;
+-
+- if (snd_mixer_selem_has_capture_volume (alsa_track->element))
+- alsa_track->alsa_flags |= GST_ALSA_MIXER_TRACK_CVOLUME;
+-
+ if (snd_mixer_selem_has_common_switch (alsa_track->element))
+ alsa_track->alsa_flags |= GST_ALSA_MIXER_TRACK_SWITCH;
+
+- if (snd_mixer_selem_has_playback_switch (alsa_track->element))
+- alsa_track->alsa_flags |= GST_ALSA_MIXER_TRACK_PSWITCH;
+-
+- if (snd_mixer_selem_has_capture_switch (alsa_track->element)) {
+- alsa_track->alsa_flags |= GST_ALSA_MIXER_TRACK_CSWITCH;
+-
+- if (snd_mixer_selem_has_capture_switch_exclusive (alsa_track->element)) {
+- alsa_track->alsa_flags |= GST_ALSA_MIXER_TRACK_CSWITCH_EXCL;
+- alsa_track->capture_group =
+- snd_mixer_selem_get_capture_group (alsa_track->element);
++ /* Since we create two separate mixer track objects for alsa elements that
++ * support both playback and capture, we're going to 'hide' the alsa flags
++ * that don't pertain to this mixer track from alsa_flags, otherwise
++ * gst_alsa_mixer_track_update() is going to do things we don't want */
++
++ /* playback flags */
++ if ((GST_MIXER_TRACK (alsa_track)->flags & GST_MIXER_TRACK_OUTPUT)) {
++ if (snd_mixer_selem_has_playback_volume (alsa_track->element))
++ alsa_track->alsa_flags |= GST_ALSA_MIXER_TRACK_PVOLUME;
++
++ if (snd_mixer_selem_has_playback_switch (alsa_track->element))
++ alsa_track->alsa_flags |= GST_ALSA_MIXER_TRACK_PSWITCH;
++ }
++
++ /* capture flags */
++ if ((GST_MIXER_TRACK (alsa_track)->flags & GST_MIXER_TRACK_INPUT)) {
++ if (snd_mixer_selem_has_capture_volume (alsa_track->element))
++ alsa_track->alsa_flags |= GST_ALSA_MIXER_TRACK_CVOLUME;
++
++ if (snd_mixer_selem_has_capture_switch (alsa_track->element)) {
++ alsa_track->alsa_flags |= GST_ALSA_MIXER_TRACK_CSWITCH;
++
++ if (snd_mixer_selem_has_capture_switch_exclusive (alsa_track->element)) {
++ alsa_track->alsa_flags |= GST_ALSA_MIXER_TRACK_CSWITCH_EXCL;
++ alsa_track->capture_group =
++ snd_mixer_selem_get_capture_group (alsa_track->element);
++ }
+ }
+ }
+
More information about the arch-commits
mailing list