summaryrefslogtreecommitdiffstats
path: root/sys/oss/gstosssrc.c
diff options
context:
space:
mode:
authorRonald S. Bultje <rbultje@ronald.bitfreak.net>2004-10-25 08:40:07 +0000
committerRonald S. Bultje <rbultje@ronald.bitfreak.net>2004-10-25 08:40:07 +0000
commitb41cdefc0551d263c84abb2186ee34ca4d4a9ef6 (patch)
tree94f5e1e47991622089af4d91b8e513c3b87e143b /sys/oss/gstosssrc.c
parent7d1805fda41615e2f4ae15cfdaf9d957ea73991b (diff)
sys/oss/gstosssrc.*: OK, so people want offset in DEFAULT. This time, actually fix all cases.
Original commit message from CVS: * sys/oss/gstosssrc.c: (gst_osssrc_get_time), (gst_osssrc_get), (gst_osssrc_src_query): * sys/oss/gstosssrc.h: OK, so people want offset in DEFAULT. This time, actually fix all cases. * sys/v4l2/gstv4l2src.c: (gst_v4l2src_getcaps): Add FPS properly.
Diffstat (limited to 'sys/oss/gstosssrc.c')
-rw-r--r--sys/oss/gstosssrc.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/oss/gstosssrc.c b/sys/oss/gstosssrc.c
index da7e61d7..ffc750d7 100644
--- a/sys/oss/gstosssrc.c
+++ b/sys/oss/gstosssrc.c
@@ -305,7 +305,7 @@ gst_osssrc_get_time (GstClock * clock, gpointer data)
if (ioctl (GST_OSSELEMENT (osssrc)->fd, SNDCTL_DSP_GETISPACE, &info) < 0)
return 0;
- return (osssrc->curoffset +
+ return (osssrc->curoffset * GST_OSSELEMENT (osssrc)->sample_width +
info.bytes) * GST_SECOND / GST_OSSELEMENT (osssrc)->bps;
}
@@ -382,7 +382,7 @@ gst_osssrc_get (GstPad * pad)
GST_BUFFER_SIZE (buf) = readbytes;
GST_BUFFER_OFFSET (buf) = src->curoffset;
- GST_BUFFER_OFFSET_END (buf) = src->curoffset + readbytes;
+ GST_BUFFER_OFFSET_END (buf) = src->curoffset + readsamples;
GST_BUFFER_DURATION (buf) =
readsamples * GST_SECOND / GST_OSSELEMENT (src)->rate;
@@ -391,7 +391,7 @@ gst_osssrc_get (GstPad * pad)
if (src->clock == src->provided_clock) {
/* if it's our own clock, we can be very accurate */
GST_BUFFER_TIMESTAMP (buf) =
- src->curoffset * GST_SECOND / GST_OSSELEMENT (src)->bps;
+ src->curoffset * GST_SECOND / GST_OSSELEMENT (src)->rate;
} else {
/* somebody elses clock, timestamp with that clock, no discontinuity in
* the stream since the OFFSET is updated correctly. Elements can stretch
@@ -404,7 +404,7 @@ gst_osssrc_get (GstPad * pad)
GST_BUFFER_TIMESTAMP (buf) = GST_CLOCK_TIME_NONE;
}
- src->curoffset += readbytes;
+ src->curoffset += readsamples;
GST_DEBUG ("pushed buffer from soundcard of %ld bytes, timestamp %"
G_GINT64_FORMAT, readbytes, GST_BUFFER_TIMESTAMP (buf));
@@ -591,7 +591,7 @@ gst_osssrc_src_query (GstPad * pad, GstQueryType type, GstFormat * format,
switch (type) {
case GST_QUERY_POSITION:
res = gst_osselement_convert (GST_OSSELEMENT (osssrc),
- GST_FORMAT_BYTES, osssrc->curoffset, format, value);
+ GST_FORMAT_DEFAULT, osssrc->curoffset, format, value);
break;
default:
break;