sys/oss/: More logging when probing (see #518474), some comments in _reset().
authorTim-Philipp Müller <tim@centricular.net>
Tue, 8 Apr 2008 19:49:34 +0000 (19:49 +0000)
committerTim-Philipp Müller <tim@centricular.net>
Tue, 8 Apr 2008 19:49:34 +0000 (19:49 +0000)
Original commit message from CVS:
* sys/oss/gstosshelper.c: (gst_oss_helper_rate_check_rate):
* sys/oss/gstosssink.c: (gst_oss_sink_reset):
* sys/oss/gstosssrc.c: (gst_oss_src_reset):
More logging when probing (see #518474), some comments in _reset().

ChangeLog
sys/oss/gstosshelper.c
sys/oss/gstosssink.c
sys/oss/gstosssrc.c

index eea8895..41a28f7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-04-08  Tim-Philipp Müller  <tim at centricular dot net>
+
+       * sys/oss/gstosshelper.c: (gst_oss_helper_rate_check_rate):
+       * sys/oss/gstosssink.c: (gst_oss_sink_reset):
+       * sys/oss/gstosssrc.c: (gst_oss_src_reset):
+         More logging when probing (see #518474), some comments in _reset().
+
 2008-04-07  Julien Moutte  <julien@fluendo.com>
 
        * gst/rtp/gstrtph264pay.c: (gst_rtp_h264_pay_setcaps): Fix build
index dea22cc..cc81ad8 100644 (file)
@@ -352,14 +352,20 @@ gst_oss_helper_rate_check_rate (GstOssProbe * probe, int irate)
   GST_LOG ("checking format %d, channels %d, rate %d",
       format, n_channels, rate);
   ret = ioctl (probe->fd, SNDCTL_DSP_SETFMT, &format);
-  if (ret < 0 || format != probe->format)
+  if (ret < 0 || format != probe->format) {
+    GST_DEBUG ("unsupported format: %d (%d)", probe->format, format);
     return -1;
+  }
   ret = ioctl (probe->fd, SNDCTL_DSP_CHANNELS, &n_channels);
-  if (ret < 0)
+  if (ret < 0 || n_channels != probe->n_channels) {
+    GST_DEBUG ("unsupported channels: %d (%d)", probe->n_channels, n_channels);
     return -1;
+  }
   ret = ioctl (probe->fd, SNDCTL_DSP_SPEED, &rate);
-  if (ret < 0)
+  if (ret < 0) {
+    GST_DEBUG ("unsupported rate: %d (%d)", irate, rate);
     return -1;
+  }
 
   GST_DEBUG ("rate %d -> %d", irate, rate);
 
index 17f3964..23e177b 100644 (file)
@@ -574,13 +574,7 @@ gst_oss_sink_delay (GstAudioSink * asink)
 static void
 gst_oss_sink_reset (GstAudioSink * asink)
 {
-#if 0
-  GstOssSink *oss;
-  gint ret;
-
-  oss = GST_OSSSINK (asink);
-
-  /* deadlocks on my machine... */
-  ret = ioctl (oss->fd, SNDCTL_DSP_RESET, 0);
-#endif
+  /* There's nothing we can do here really: OSS can't handle access to the
+   * same device/fd from multiple threads and might deadlock or blow up in
+   * other ways if we try an ioctl SNDCTL_DSP_RESET or similar */
 }
index 417bdcf..06e17e7 100644 (file)
@@ -542,12 +542,7 @@ gst_oss_src_delay (GstAudioSrc * asrc)
 static void
 gst_oss_src_reset (GstAudioSrc * asrc)
 {
-  GstOssSrc *oss;
-
-  //gint ret;
-
-  oss = GST_OSS_SRC (asrc);
-
-  /* deadlocks on my machine... */
-  //ret = ioctl (oss->fd, SNDCTL_DSP_RESET, 0);
+  /* There's nothing we can do here really: OSS can't handle access to the
+   * same device/fd from multiple threads and might deadlock or blow up in
+   * other ways if we try an ioctl SNDCTL_DSP_RESET or similar */
 }