summaryrefslogtreecommitdiffstats
path: root/sys/oss
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@gmail.com>2002-12-10 20:41:06 +0000
committerWim Taymans <wim.taymans@gmail.com>2002-12-10 20:41:06 +0000
commitdff7f0496f2bc5c416c48bc1261203a4fc68cd5a (patch)
treea80aa33d3c3dbf52a2b4ea8bf871b5849e4f6ad5 /sys/oss
parent753a083ade3c301c40d26f2a6382822163d9b312 (diff)
Properly reset the internal state without leaking the filehandle
Original commit message from CVS: Properly reset the internal state without leaking the filehandle
Diffstat (limited to 'sys/oss')
-rw-r--r--sys/oss/gstosscommon.c6
-rw-r--r--sys/oss/gstosscommon.h1
-rw-r--r--sys/oss/gstosssink.c2
3 files changed, 8 insertions, 1 deletions
diff --git a/sys/oss/gstosscommon.c b/sys/oss/gstosscommon.c
index 50128c79..65c8a780 100644
--- a/sys/oss/gstosscommon.c
+++ b/sys/oss/gstosscommon.c
@@ -105,6 +105,12 @@ gst_osscommon_init (GstOssCommon *common)
common->device = g_strdup ("/dev/dsp");
common->fd = -1;
+ gst_osscommon_reset (common);
+}
+
+void
+gst_osscommon_reset (GstOssCommon *common)
+{
common->law = 0;
common->endianness = G_BYTE_ORDER;
common->sign = TRUE;
diff --git a/sys/oss/gstosscommon.h b/sys/oss/gstosscommon.h
index ab5553ff..0c35bd06 100644
--- a/sys/oss/gstosscommon.h
+++ b/sys/oss/gstosscommon.h
@@ -57,6 +57,7 @@ struct _GstOssCommon
};
void gst_osscommon_init (GstOssCommon *common);
+void gst_osscommon_reset (GstOssCommon *common);
gboolean gst_osscommon_open_audio (GstOssCommon *common,
GstOssOpenMode mode, gchar **error);
diff --git a/sys/oss/gstosssink.c b/sys/oss/gstosssink.c
index 23603028..ba86f913 100644
--- a/sys/oss/gstosssink.c
+++ b/sys/oss/gstosssink.c
@@ -589,7 +589,7 @@ gst_osssink_change_state (GstElement *element)
case GST_STATE_PAUSED_TO_READY:
if (GST_FLAG_IS_SET (element, GST_OSSSINK_OPEN))
ioctl (osssink->common.fd, SNDCTL_DSP_RESET, 0);
- gst_osscommon_init (&osssink->common);
+ gst_osscommon_reset (&osssink->common);
break;
case GST_STATE_READY_TO_NULL:
if (GST_FLAG_IS_SET (element, GST_OSSSINK_OPEN)) {