Properly reset the internal state without leaking the filehandle
authorWim Taymans <wim.taymans@gmail.com>
Tue, 10 Dec 2002 20:41:06 +0000 (20:41 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Tue, 10 Dec 2002 20:41:06 +0000 (20:41 +0000)
Original commit message from CVS:
Properly reset the internal state without leaking the filehandle

sys/oss/gstosscommon.c
sys/oss/gstosscommon.h
sys/oss/gstosssink.c

index 50128c7..65c8a78 100644 (file)
@@ -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;
index ab5553f..0c35bd0 100644 (file)
@@ -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);
index 2360302..ba86f91 100644 (file)
@@ -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)) {