summaryrefslogtreecommitdiffstats
path: root/sys/oss
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim@centricular.net>2008-04-08 19:49:34 +0000
committerTim-Philipp Müller <tim@centricular.net>2008-04-08 19:49:34 +0000
commit0525a5d213bdf3bdb476888c2af8e2bffd1f48d8 (patch)
tree8842ba841e1ccfabf5df3d363ae3fffe6256d564 /sys/oss
parent72f0385606f324d7182e491175cf5418980b5208 (diff)
sys/oss/: More logging when probing (see #518474), some comments in _reset().
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().
Diffstat (limited to 'sys/oss')
-rw-r--r--sys/oss/gstosshelper.c12
-rw-r--r--sys/oss/gstosssink.c12
-rw-r--r--sys/oss/gstosssrc.c11
3 files changed, 15 insertions, 20 deletions
diff --git a/sys/oss/gstosshelper.c b/sys/oss/gstosshelper.c
index dea22ccf..cc81ad81 100644
--- a/sys/oss/gstosshelper.c
+++ b/sys/oss/gstosshelper.c
@@ -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);
diff --git a/sys/oss/gstosssink.c b/sys/oss/gstosssink.c
index 17f3964a..23e177b4 100644
--- a/sys/oss/gstosssink.c
+++ b/sys/oss/gstosssink.c
@@ -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 */
}
diff --git a/sys/oss/gstosssrc.c b/sys/oss/gstosssrc.c
index 417bdcf0..06e17e75 100644
--- a/sys/oss/gstosssrc.c
+++ b/sys/oss/gstosssrc.c
@@ -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 */
}