summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@gmail.com>2002-05-04 18:52:32 +0000
committerWim Taymans <wim.taymans@gmail.com>2002-05-04 18:52:32 +0000
commit7f83fbc9fe5f95cc9d8cbb4287ca5e3c94282038 (patch)
tree005cf182985d8962a06b8f98ac3a1d4cac98f57e /sys
parent223ce42ed6a3c551f68005eaafb287d118dd271a (diff)
Reset the handled number of samples when going to PAUSED
Original commit message from CVS: Reset the handled number of samples when going to PAUSED Some cleanups
Diffstat (limited to 'sys')
-rw-r--r--sys/oss/gstossclock.c3
-rw-r--r--sys/oss/gstosssink.c23
-rw-r--r--sys/oss/gstosssink.h38
3 files changed, 22 insertions, 42 deletions
diff --git a/sys/oss/gstossclock.c b/sys/oss/gstossclock.c
index b2f784a6..bd1bf8e7 100644
--- a/sys/oss/gstossclock.c
+++ b/sys/oss/gstossclock.c
@@ -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;
}
diff --git a/sys/oss/gstosssink.c b/sys/oss/gstosssink.c
index e7660a10..3765ddd5 100644
--- a/sys/oss/gstosssink.c
+++ b/sys/oss/gstosssink.c
@@ -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:
diff --git a/sys/oss/gstosssink.h b/sys/oss/gstosssink.h
index 8ede9da7..1a600eb3 100644
--- a/sys/oss/gstosssink.h
+++ b/sys/oss/gstosssink.h
@@ -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 {