diff options
author | Wim Taymans <wim.taymans@gmail.com> | 2002-05-04 18:52:32 +0000 |
---|---|---|
committer | Wim Taymans <wim.taymans@gmail.com> | 2002-05-04 18:52:32 +0000 |
commit | 7f83fbc9fe5f95cc9d8cbb4287ca5e3c94282038 (patch) | |
tree | 005cf182985d8962a06b8f98ac3a1d4cac98f57e /sys | |
parent | 223ce42ed6a3c551f68005eaafb287d118dd271a (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.c | 3 | ||||
-rw-r--r-- | sys/oss/gstosssink.c | 23 | ||||
-rw-r--r-- | sys/oss/gstosssink.h | 38 |
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 { |