rpms/gstreamer-plugins-base/F-8 gst-plugins-base-alsa-mixer-same-vols.patch, NONE, 1.1 gst-plugins-base-alsa-mixer-thinkpad.patch, 1.1, 1.2 gstreamer-plugins-base.spec, 1.39, 1.40
Bastien Nocera (hadess)
fedora-extras-commits at redhat.com
Mon Jan 7 17:55:36 UTC 2008
- Previous message (by thread): rpms/python/devel python2.6-set_wakeup_fd4.patch, NONE, 1.1 python.spec, 1.126, 1.127
- Next message (by thread): rpms/SDL/F-8 SDL-1.2.13-dynamic-pulse.patch, NONE, 1.1 SDL-1.2.13-libdir.patch, NONE, 1.1 .cvsignore, 1.15, 1.16 SDL.spec, 1.59, 1.60 SDL_pulseaudio_hack.csh, 1.1, 1.2 SDL_pulseaudio_hack.sh, 1.1, 1.2 sources, 1.15, 1.16
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: hadess
Update of /cvs/pkgs/rpms/gstreamer-plugins-base/F-8
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv7477
Modified Files:
gst-plugins-base-alsa-mixer-thinkpad.patch
gstreamer-plugins-base.spec
Added Files:
gst-plugins-base-alsa-mixer-same-vols.patch
Log Message:
* Mon Jan 07 2008 - Bastien Nocera <bnocera at redhat.com> - 0.10.15-3
- Add the correct patch for the Thinkpad problem, and keep the old
one as it fixes some bugs with the volume control (#344911)
gst-plugins-base-alsa-mixer-same-vols.patch:
--- NEW FILE gst-plugins-base-alsa-mixer-same-vols.patch ---
--- gstalsamixer.c 2008/01/07 13:19:50 1.40
+++ gstalsamixer.c 2008/01/07 13:59:43 1.41
@@ -591,6 +591,22 @@
}
}
+static gboolean
+check_if_volumes_are_the_same (guint num_channels, gint * volumes)
+{
+ guint i;
+
+ if (num_channels <= 1)
+ return TRUE;
+
+ for (i = 1; i < num_channels; i++) {
+ if (volumes[i] != volumes[0])
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
void
gst_alsa_mixer_set_volume (GstAlsaMixer * mixer, GstMixerTrack * track,
gint * volumes)
@@ -610,10 +626,17 @@
for (i = 0; i < track->num_channels; i++)
alsa_track->volumes[i] = volumes[i];
} else {
- for (i = 0; i < track->num_channels; i++) {
- alsa_track->volumes[i] = volumes[i];
- snd_mixer_selem_set_playback_volume (alsa_track->element, i,
- volumes[i]);
+ if (check_if_volumes_are_the_same (track->num_channels, volumes)) {
+ snd_mixer_selem_set_playback_volume_all (alsa_track->element,
+ volumes[0]);
+ for (i = 0; i < track->num_channels; i++)
+ alsa_track->volumes[i] = volumes[0];
+ } else {
+ for (i = 0; i < track->num_channels; i++) {
+ alsa_track->volumes[i] = volumes[i];
+ snd_mixer_selem_set_playback_volume (alsa_track->element, i,
+ volumes[i]);
+ }
}
}
@@ -622,9 +645,17 @@
/* Is emulated record flag activated? */
if (track->flags & GST_MIXER_TRACK_RECORD ||
alsa_track->alsa_flags & GST_ALSA_MIXER_TRACK_CSWITCH) {
- for (i = 0; i < track->num_channels; i++) {
- alsa_track->volumes[i] = volumes[i];
- snd_mixer_selem_set_capture_volume (alsa_track->element, i, volumes[i]);
+ if (check_if_volumes_are_the_same (track->num_channels, volumes)) {
+ snd_mixer_selem_set_capture_volume_all (alsa_track->element,
+ volumes[0]);
+ for (i = 0; i < track->num_channels; i++)
+ alsa_track->volumes[i] = volumes[0];
+ } else {
+ for (i = 0; i < track->num_channels; i++) {
+ alsa_track->volumes[i] = volumes[i];
+ snd_mixer_selem_set_capture_volume (alsa_track->element, i,
+ volumes[i]);
+ }
}
} else {
for (i = 0; i < track->num_channels; i++)
gst-plugins-base-alsa-mixer-thinkpad.patch:
Index: gst-plugins-base-alsa-mixer-thinkpad.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gstreamer-plugins-base/F-8/gst-plugins-base-alsa-mixer-thinkpad.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gst-plugins-base-alsa-mixer-thinkpad.patch 7 Jan 2008 14:46:30 -0000 1.1
+++ gst-plugins-base-alsa-mixer-thinkpad.patch 7 Jan 2008 17:54:37 -0000 1.2
@@ -1,68 +1,19 @@
---- gstalsamixer.c 2008/01/07 13:19:50 1.40
-+++ gstalsamixer.c 2008/01/07 13:59:43 1.41
-@@ -591,6 +591,22 @@
+--- gstalsamixer.c 2007/09/16 01:56:21 1.39
++++ gstalsamixer.c 2008/01/07 13:19:50 1.40
+@@ -155,6 +155,16 @@
+ element = snd_mixer_elem_next (element);
}
- }
-+static gboolean
-+check_if_volumes_are_the_same (guint num_channels, gint * volumes)
-+{
-+ guint i;
-+
-+ if (num_channels <= 1)
-+ return TRUE;
-+
-+ for (i = 1; i < num_channels; i++) {
-+ if (volumes[i] != volumes[0])
-+ return FALSE;
++ /* If not, check if we have a playback mixer labelled as 'PCM' */
++ element = snd_mixer_first_elem (handle);
++ for (i = 0; i < count; i++) {
++ if (snd_mixer_selem_has_playback_volume (element) &&
++ strcmp (snd_mixer_selem_get_name (element), "PCM") == 0) {
++ return element;
++ }
++ element = snd_mixer_elem_next (element);
+ }
+
-+ return TRUE;
-+}
-+
- void
- gst_alsa_mixer_set_volume (GstAlsaMixer * mixer, GstMixerTrack * track,
- gint * volumes)
-@@ -610,10 +626,17 @@
- for (i = 0; i < track->num_channels; i++)
- alsa_track->volumes[i] = volumes[i];
- } else {
-- for (i = 0; i < track->num_channels; i++) {
-- alsa_track->volumes[i] = volumes[i];
-- snd_mixer_selem_set_playback_volume (alsa_track->element, i,
-- volumes[i]);
-+ if (check_if_volumes_are_the_same (track->num_channels, volumes)) {
-+ snd_mixer_selem_set_playback_volume_all (alsa_track->element,
-+ volumes[0]);
-+ for (i = 0; i < track->num_channels; i++)
-+ alsa_track->volumes[i] = volumes[0];
-+ } else {
-+ for (i = 0; i < track->num_channels; i++) {
-+ alsa_track->volumes[i] = volumes[i];
-+ snd_mixer_selem_set_playback_volume (alsa_track->element, i,
-+ volumes[i]);
-+ }
- }
- }
-
-@@ -622,9 +645,17 @@
- /* Is emulated record flag activated? */
- if (track->flags & GST_MIXER_TRACK_RECORD ||
- alsa_track->alsa_flags & GST_ALSA_MIXER_TRACK_CSWITCH) {
-- for (i = 0; i < track->num_channels; i++) {
-- alsa_track->volumes[i] = volumes[i];
-- snd_mixer_selem_set_capture_volume (alsa_track->element, i, volumes[i]);
-+ if (check_if_volumes_are_the_same (track->num_channels, volumes)) {
-+ snd_mixer_selem_set_capture_volume_all (alsa_track->element,
-+ volumes[0]);
-+ for (i = 0; i < track->num_channels; i++)
-+ alsa_track->volumes[i] = volumes[0];
-+ } else {
-+ for (i = 0; i < track->num_channels; i++) {
-+ alsa_track->volumes[i] = volumes[i];
-+ snd_mixer_selem_set_capture_volume (alsa_track->element, i,
-+ volumes[i]);
-+ }
- }
- } else {
- for (i = 0; i < track->num_channels; i++)
+ /* If not, check if we have a playback mixer with both volume and switch */
+ element = snd_mixer_first_elem (handle);
+ for (i = 0; i < count; i++) {
Index: gstreamer-plugins-base.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gstreamer-plugins-base/F-8/gstreamer-plugins-base.spec,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -r1.39 -r1.40
--- gstreamer-plugins-base.spec 7 Jan 2008 14:46:30 -0000 1.39
+++ gstreamer-plugins-base.spec 7 Jan 2008 17:54:37 -0000 1.40
@@ -5,7 +5,7 @@
Name: %{gstreamer}-plugins-base
Version: 0.10.15
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: GStreamer streaming media framework base plug-ins
Group: Applications/Multimedia
@@ -38,6 +38,7 @@
BuildRequires: PyXML
Patch0: gst-plugins-base-alsa-mixer-thinkpad.patch
+Patch1: gst-plugins-base-alsa-mixer-same-vols.patch
%description
GStreamer is a streaming media framework, based on graphs of filters which
@@ -53,6 +54,7 @@
%setup -q -n gst-plugins-base-%{version}
pushd ext/alsa/
%patch0 -p0 -b .mixer-thinkpad
+%patch1 -p0 -b .same-volumes
popd
%build
@@ -245,6 +247,10 @@
%doc %{_datadir}/gtk-doc/html/gst-plugins-base-plugins-%{majorminor}
%changelog
+* Mon Jan 07 2008 - Bastien Nocera <bnocera at redhat.com> - 0.10.15-3
+- Add the correct patch for the Thinkpad problem, and keep the old
+ one as it fixes some bugs with the volume control (#344911)
+
* Mon Jan 07 2008 - Bastien Nocera <bnocera at redhat.com> - 0.10.15-2
- Add upstream patch to fix default track selection on Thinkpads
(#344911)
- Previous message (by thread): rpms/python/devel python2.6-set_wakeup_fd4.patch, NONE, 1.1 python.spec, 1.126, 1.127
- Next message (by thread): rpms/SDL/F-8 SDL-1.2.13-dynamic-pulse.patch, NONE, 1.1 SDL-1.2.13-libdir.patch, NONE, 1.1 .cvsignore, 1.15, 1.16 SDL.spec, 1.59, 1.60 SDL_pulseaudio_hack.csh, 1.1, 1.2 SDL_pulseaudio_hack.sh, 1.1, 1.2 sources, 1.15, 1.16
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list