Reset the handled number of samples when going to PAUSED
authorWim Taymans <wim.taymans@gmail.com>
Sat, 4 May 2002 18:52:32 +0000 (18:52 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Sat, 4 May 2002 18:52:32 +0000 (18:52 +0000)
Original commit message from CVS:
Reset the handled number of samples when going to PAUSED
Some cleanups

sys/oss/gstossclock.c
sys/oss/gstosssink.c
sys/oss/gstosssink.h

index b2f784a6fd0c54f3c710ca48ad760a740ad933ac..bd1bf8e7033dd8f596b698517fb0ab8085f04362 100644 (file)
@@ -116,13 +116,10 @@ gst_oss_clock_get_internal_time (GstClock *clock)
   if (diff1) {
     oss_clock->adjust -= diff2 - diff1;
   }
-
   /*
   g_print ("diff %lld %lld %lld %lld %lld %lld\n", 
             diff1, diff2, time1, time2, diff2 - diff1, oss_clock->adjust);
             */
-  
-
   return time2 + oss_clock->adjust;
 }
 
index e7660a101b75dd2c266ec3c66c59c24d8f483500..3765ddd592af857bc69cdb53dce23df06dfb7ae6 100644 (file)
@@ -710,31 +710,14 @@ gst_osssink_change_state (GstElement *element)
     case GST_STATE_READY_TO_PAUSED:
       osssink->offset = 0LL;
       osssink->have_offset = FALSE;
+      osssink->handled = 0LL;
       break;
     case GST_STATE_PAUSED_TO_PLAYING:
-      /* gst_clock_adjust (osssink->clock, osssink->offset - gst_clock_get_time (osssink->clock)); */
       break;
     case GST_STATE_PLAYING_TO_PAUSED:
     {
-      if (GST_FLAG_IS_SET (element, GST_OSSSINK_OPEN)) {
-       if (osssink->bps) {
-          GstClockTime time;
-          audio_buf_info ospace;
-          gint queued;
-
-          ioctl (osssink->fd, SNDCTL_DSP_GETOSPACE, &ospace);
-          ioctl (osssink->fd, SNDCTL_DSP_RESET, 0);
-
-          queued = (ospace.fragstotal * ospace.fragsize) - ospace.bytes;
-          time = osssink->offset + (osssink->handled - queued) * 1000000LL / osssink->bps;
-
-          //gst_clock_adjust (osssink->clock, time - gst_clock_get_time (osssink->clock));
-       }
-       else {
-          ioctl (osssink->fd, SNDCTL_DSP_RESET, 0);
-       }
-      }
-
+      if (GST_FLAG_IS_SET (element, GST_OSSSINK_OPEN)) 
+        ioctl (osssink->fd, SNDCTL_DSP_RESET, 0);
       break;
     }
     case GST_STATE_PAUSED_TO_READY:
index 8ede9da767e8e01745fa7dff644795e14805db51..1a600eb3b7850d07d4add0f2fd3096645de7a666 100644 (file)
@@ -56,32 +56,32 @@ typedef struct _GstOssSink GstOssSink;
 typedef struct _GstOssSinkClass GstOssSinkClass;
 
 struct _GstOssSink {
-  GstElement element;
+  GstElement    element;
 
-  GstPad *sinkpad;
+  GstPad       *sinkpad;
   GstBufferPool *sinkpool;
 
-  GstClock *provided_clock;
-  GstClock *clock;
+  GstClock     *provided_clock;
+  GstClock     *clock;
 
   /* device */
-  gchar *device;
+  gchar        *device;
 
   /* soundcard state */
-  int fd;
-  int caps; /* the capabilities */
-  gint format;
-  gint channels;
-  gint frequency;
-  gint fragment;
-  gboolean mute;
-  guint bufsize;
-  guint bps;
-  gboolean have_offset;
-  guint64 offset;
-  guint64 handled;
-
-  guint64 fragment_time;
+  int           fd;
+  int           caps; /* the capabilities */
+  gint                  format;
+  gint                  channels;
+  gint                  frequency;
+  gint                  fragment;
+  gboolean      mute;
+  guint         bufsize;
+  guint         bps;
+  gboolean      have_offset;
+  guint64       offset;
+  guint64       handled;
+
+  guint64       fragment_time;
 };
 
 struct _GstOssSinkClass {