Don't change mixer if there's nothing to change. This caused a bug if the soundcard...
authorRonald S. Bultje <rbultje@ronald.bitfreak.net>
Sun, 9 Nov 2003 10:51:26 +0000 (10:51 +0000)
committerRonald S. Bultje <rbultje@ronald.bitfreak.net>
Sun, 9 Nov 2003 10:51:26 +0000 (10:51 +0000)
Original commit message from CVS:
Don't change mixer if there's nothing to change. This caused a bug if the soundcard only supports one input and I call this function with rec=TRUE twice.

sys/oss/gstossmixer.c

index 7b904ce..7eb2e4b 100644 (file)
@@ -362,6 +362,11 @@ gst_ossmixer_set_record (GstMixer      *mixer,
   g_return_if_fail (oss->mixer_fd != -1);
   g_return_if_fail (gst_ossmixer_contains_track (oss, osstrack));
 
+  /* if there's nothing to do... */
+  if ((record && GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_RECORD)) ||
+      (!record && !GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_RECORD)))
+    return;
+
   /* if we're exclusive, then we need to unset the current one(s) */
   if (oss->mixcaps & SOUND_CAP_EXCL_INPUT) {
     GList *track;