rpms/gstreamer-plugins-base/devel gstreamer-0.10.19-alsasink-mixed-record-playback-tracks.patch, NONE, 1.1 gstreamer-plugins-base.spec, 1.51, 1.52

Bastien Nocera (hadess) fedora-extras-commits at redhat.com
Fri Apr 18 13:15:11 UTC 2008


Author: hadess

Update of /cvs/pkgs/rpms/gstreamer-plugins-base/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv17774

Modified Files:
	gstreamer-plugins-base.spec 
Added Files:
	gstreamer-0.10.19-alsasink-mixed-record-playback-tracks.patch 
Log Message:
* Fri Apr 18 2008 - Bastien Nocera <bnocera at redhat.com> - 0.10.19-2
- Add patch to avoid sync problems in the ALSA sink when a specific
  track has both playback and record flags


gstreamer-0.10.19-alsasink-mixed-record-playback-tracks.patch:

--- NEW FILE gstreamer-0.10.19-alsasink-mixed-record-playback-tracks.patch ---
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);
+      }
     }
   }
 


Index: gstreamer-plugins-base.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gstreamer-plugins-base/devel/gstreamer-plugins-base.spec,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -r1.51 -r1.52
--- gstreamer-plugins-base.spec	4 Apr 2008 10:45:40 -0000	1.51
+++ gstreamer-plugins-base.spec	18 Apr 2008 13:14:31 -0000	1.52
@@ -5,7 +5,7 @@
 
 Name: 		%{gstreamer}-plugins-base
 Version: 	0.10.19
-Release:  	1%{?dist}	
+Release:  	2%{?dist}	
 Summary: 	GStreamer streaming media framework base plug-ins
 
 Group: 		Applications/Multimedia
@@ -15,6 +15,8 @@
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 Patch0:		gstpb-0.10.15-cd-speed.patch
+# http://bugzilla.gnome.org/show_bug.cgi?id=518082
+Patch1:		gstreamer-0.10.19-alsasink-mixed-record-playback-tracks.patch
 
 Requires:       %{gstreamer} >= %{_gst}
 Requires:	liboil >= 0.3.12-9
@@ -52,6 +54,7 @@
 %prep
 %setup -q -n gst-plugins-base-%{version}
 %patch0 -p1 -b .cd-speed
+%patch1 -p1 -b .alsasink
 
 %build
 %configure \
@@ -246,6 +249,10 @@
 %doc %{_datadir}/gtk-doc/html/gst-plugins-base-plugins-%{majorminor}
 
 %changelog
+* Fri Apr 18 2008 - Bastien Nocera <bnocera at redhat.com> - 0.10.19-2
+- Add patch to avoid sync problems in the ALSA sink when a specific
+  track has both playback and record flags
+
 * Fri Apr 04 2008 - Bastien Nocera <bnocera at redhat.com> - 0.10.19-1
 - Update to 0.10.19
 




More information about the fedora-extras-commits mailing list