summaryrefslogtreecommitdiff
path: root/ringbuf.c
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2011-02-01 21:18:21 +0100
committerGravatar waker <wakeroid@gmail.com>2011-02-01 21:18:21 +0100
commit90e1e43539e5b893a2b1c2738f51664a8f5371ed (patch)
treed1e5a626687342a5436c176a773b075049b72fd1 /ringbuf.c
parentc0606a32db2c30abf4ab8f54ab44c6624be89c32 (diff)
fixed streamer transition between tracks with different formats
Diffstat (limited to 'ringbuf.c')
-rw-r--r--ringbuf.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/ringbuf.c b/ringbuf.c
index 797182ba..be82945e 100644
--- a/ringbuf.c
+++ b/ringbuf.c
@@ -59,8 +59,9 @@ ringbuf_write (ringbuf_t *p, char *bytes, size_t size) {
int
ringbuf_read (ringbuf_t *p, char *bytes, size_t size) {
if (p->remaining < size) {
- return -1;
+ size = p->remaining;
}
+ int rb = size;
if (p->size - p->cursor >= size) {
memcpy (bytes, p->bytes + p->cursor, size);
@@ -80,4 +81,5 @@ ringbuf_read (ringbuf_t *p, char *bytes, size_t size) {
p->cursor = size;
p->remaining -= size;
}
+ return rb;
}