diff options
author | Wim Taymans <wim.taymans@gmail.com> | 2002-05-27 23:15:56 +0000 |
---|---|---|
committer | Wim Taymans <wim.taymans@gmail.com> | 2002-05-27 23:15:56 +0000 |
commit | fc8757bc0160deacd5f3641ac1e22caf1c83e674 (patch) | |
tree | 7b8492030e46c79e3f6a070b45eecd866137d6d6 /sys | |
parent | 7ad2309eea83bfa63296915917f9c6591b63e6d0 (diff) |
Use alternative method for getting delay
Original commit message from CVS:
Use alternative method for getting delay
Diffstat (limited to 'sys')
-rw-r--r-- | sys/oss/gstosssink.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/oss/gstosssink.c b/sys/oss/gstosssink.c index 602b97b0..49fb64b2 100644 --- a/sys/oss/gstosssink.c +++ b/sys/oss/gstosssink.c @@ -464,7 +464,15 @@ gst_osssink_chain (GstPad *pad, GstBuffer *buf) gint64 queued; GstClockTimeDiff jitter; - ioctl (osssink->fd, SNDCTL_DSP_GETODELAY, &delay); + if (ioctl (osssink->fd, SNDCTL_DSP_GETODELAY, &delay) < 0) { + audio_buf_info info; + if (ioctl (osssink->fd, SNDCTL_DSP_GETOSPACE, &info) < 0) { + delay = 0; + } + else { + delay = (info.fragstotal * info.fragsize) - info.bytes; + } + } queued = delay * GST_SECOND / osssink->bps; if (osssink->resync && osssink->sync) { |