Mercurial > libavformat.hg
diff utils.c @ 542:be81a0f1974d libavformat
SCR timestamp fix try #1
author | michael |
---|---|
date | Sun, 03 Oct 2004 02:42:01 +0000 |
parents | 26a477a5ebda |
children | b832a27355ec |
line wrap: on
line diff
--- a/utils.c Fri Oct 01 20:05:04 2004 +0000 +++ b/utils.c Sun Oct 03 02:42:01 2004 +0000 @@ -264,6 +264,34 @@ *wptr_ptr = wptr; } +/* get data from the fifo (return -1 if not enough data) */ +int put_fifo(ByteIOContext *pb, FifoBuffer *f, int buf_size, uint8_t **rptr_ptr) +{ + uint8_t *rptr = *rptr_ptr; + int size, len; + + if (f->wptr >= rptr) { + size = f->wptr - rptr; + } else { + size = (f->end - rptr) + (f->wptr - f->buffer); + } + + if (size < buf_size) + return -1; + while (buf_size > 0) { + len = f->end - rptr; + if (len > buf_size) + len = buf_size; + put_buffer(pb, rptr, len); + rptr += len; + if (rptr >= f->end) + rptr = f->buffer; + buf_size -= len; + } + *rptr_ptr = rptr; + return 0; +} + int filename_number_test(const char *filename) { char buf[1024];